/* Fonts are self-hosted: the site's CSP is `style-src 'self' 'unsafe-inline'`,
   so a Google Fonts <link>/@import is blocked outright and the page silently
   falls back to system-ui. See public/fonts/fonts.css (latin + latin-ext only). */
@import url('/fonts/fonts.css');

/* BRETIC palette. --lime (#90c545) is THE brand colour and carries the primary
   surfaces: buttons, the CTA band, the header phone button, the mobile call bar.
   White on it is only 2.05:1, so every one of those surfaces puts --forest on
   top instead (6.97:1) — that is what lets the colour be used at full strength
   rather than demoted to an accent. --green (#4A7A17) stays for the cases that
   genuinely need white text or dark text on white (links, small labels). */
/* --accent and --display are the two variables @bext-stack/cms reads: `--accent`
   backs the form submit button, FAQ markers and other kernel chrome (default a
   WordPress blue), and `.el-heading{font-family:var(--display,inherit)}` means
   every Elementor heading falls back to the body face unless --display is set. */
:root{--accent:#4A7A17;--fw-btn-bg:#90c545;--fw-btn-color:#16301B;--display:'Manrope',system-ui,sans-serif;--lime:#90c545;--lime-deep:#7DB233;--lime-soft:#c7e79a;--green:#4A7A17;--green-2:#6FA82B;--forest:#16301B;--forest-2:#1E4226;--orange:#ED7004;--orange-deep:#B85400;--mint:#F1F7E8;--sand:#F7F6F1;--ink:#1D1D1B;--muted:#5F6B5A;--line:#E0E6DA;--white:#fff;--radius:22px;--shadow:0 22px 60px rgba(22,48,27,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:'DM Sans',system-ui,sans-serif;line-height:1.62}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Manrope',system-ui,sans-serif;line-height:1.09;letter-spacing:-.035em}
/* Heading sizes must NOT be declared on Elementor headings. The kernel gives
   `.el-heading` no font-size on purpose: per-widget typography is emitted on the
   widget WRAPPER and reaches the heading by inheritance. A bare `h1{font-size}`
   rule here would beat that inheritance and every heading would render at the
   same size, ignoring what the client sets in the visual editor. So the
   fallback-markup sizes below exclude `.el-heading`, and the Elementor default
   sits on the wrapper inside `:where()` (zero specificity → a widget rule always
   wins). */
h1:not(.el-heading){font-size:clamp(2.45rem,5.4vw,4.9rem);margin-bottom:24px}h2:not(.el-heading){font-size:clamp(1.9rem,4vw,3.4rem);margin-bottom:20px}h3:not(.el-heading){font-size:1.25rem}
:where(.el-w-heading){font-size:clamp(1.9rem,4vw,3.4rem)}
/* …but that wrapper default is level-blind, so a footer <h3> inherited the <h2>
   size and column titles collided. Sizes for h3 and below therefore go directly
   on the element. h1/h2 are deliberately NOT listed: hero H1s carry an explicit
   px size set in the visual editor, which reaches them by inheritance from the
   wrapper and would lose to a direct rule here. */
h3.el-heading,h4.el-heading,h5.el-heading,h6.el-heading{font-size:1.25rem;margin-bottom:12px}
.el-w-icon-box h3.el-heading,.el-w-image-box h3.el-heading{font-size:1.4rem}.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}

/* The kernel sets `.el-col{min-width:220px}` so narrow viewports wrap columns
   into a readable grid — correct on mobile, but on desktop it overrides the
   declared percentage and wraps rows that should sit on one line (a 5-logo strip,
   a 4-step process). Released above 980px only; below that the kernel's own
   220px floor and its <=760px full-width rule take over unchanged.
   Needs `.el-row >` to outrank the kernel, whose <style> block comes after this
   linked sheet at equal specificity. */
@media(min-width:981px){.el-row>.el-col{min-width:0}}

/* header */
.topbar{background:var(--forest);color:#cfe4bd;font-size:13px}.topbar-inner{min-height:36px;display:flex;align-items:center;justify-content:space-between}.topbar-hours{display:flex;gap:8px;align-items:center}section.el-section[class*="header-1"]{position:relative}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid rgba(22,48,27,.09)}.nav-wrap{min-height:84px;display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:12px;margin-right:auto}.brand img{width:132px;height:52px;object-fit:contain}.brand span{font:700 10px/1.2 'Manrope';letter-spacing:.13em;text-transform:uppercase;color:var(--muted);border-left:1px solid var(--line);padding-left:12px}.main-nav{display:flex;align-items:center;gap:20px}.main-nav a{font-weight:600;font-size:17px;padding:30px 0;position:relative;white-space:nowrap}.main-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:18px;height:2px;background:var(--lime);transition:.2s}.main-nav a:hover:after,.main-nav a.active:after{right:0}.phone-cta{display:flex;align-items:center;gap:10px;color:var(--forest);background:var(--lime);border-radius:12px;padding:10px 16px;box-shadow:0 8px 24px rgba(144,197,69,.3)}.phone-cta span{font-weight:800;line-height:1.15}.phone-cta small{display:block;font-size:10px;font-weight:600;opacity:.75;text-transform:uppercase;letter-spacing:.09em}

/* type helpers */
.eyebrow{font:800 12px/1.4 'Manrope';letter-spacing:.18em;text-transform:uppercase;color:var(--green);margin-bottom:16px}.eyebrow.light{color:var(--lime)}.eyebrow.orange{color:var(--orange-deep)}.lead{font-size:clamp(1.05rem,1.6vw,1.22rem);color:var(--muted);max-width:660px}

/* hero */
.hero{background:var(--forest);color:#fff;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;width:540px;height:540px;border:1px solid rgba(144,197,69,.26);border-radius:50%;top:-250px;right:-80px}.hero-grid{min-height:640px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:60px;padding:74px 0}.hero h1{max-width:800px}.hero h1 em{font-style:normal;color:var(--lime)}.hero-copy .lead{color:#cbdcc0;max-width:620px}.hero-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:34px}.hero-visual{position:relative}.hero-visual>img{height:500px;width:100%;object-fit:cover;border-radius:120px 16px 16px 16px}.trust-card{position:absolute;left:-42px;bottom:25px;background:#fff;color:var(--ink);border-radius:18px;padding:18px 22px;box-shadow:var(--shadow);display:flex;gap:16px;align-items:center}.trust-number{font:800 2.5rem/1 'Manrope';color:var(--green)}.trust-card p{margin:0;font-size:13px;color:var(--muted);line-height:1.35}.trust-card strong{display:block;color:var(--ink)}

/* buttons */
.btn{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 22px;border-radius:12px;font-weight:800;font-size:14px;border:1px solid transparent;transition:transform .2s,box-shadow .2s,background .2s;cursor:pointer;font-family:inherit}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--lime);color:var(--forest);box-shadow:0 12px 30px rgba(144,197,69,.32)}.btn-primary:hover{background:var(--lime-deep)}.btn-accent{background:var(--orange-deep);color:#fff;box-shadow:0 12px 30px rgba(184,84,0,.24)}.btn-light{background:#fff;color:var(--forest)}.btn-ghost-light{border-color:rgba(255,255,255,.38);color:#fff}.btn-outline{border-color:var(--line);color:var(--forest);background:#fff}

/* label strip */
.labels{background:var(--mint);border-block:1px solid var(--line)}.labels-inner{display:flex;align-items:center;justify-content:space-between;gap:34px;padding:26px 0;flex-wrap:wrap}.labels-inner img{height:56px;width:auto;object-fit:contain;filter:saturate(.9)}.labels-note{font-weight:700;font-size:13px;color:var(--muted);max-width:230px;line-height:1.4}

/* sections */
.section{padding:100px 0}.section-soft{background:var(--sand)}.section-mint{background:var(--mint)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:42px}.section-head h2{max-width:720px;margin-bottom:0}.section-head p{max-width:430px;color:var(--muted);margin:0}

/* `image-box` used as a service card. The kernel styles that widget for its
   default icon-ish look — `.el-iconbox-media img{max-width:96px;margin:0 auto}`
   and a centred flex column with a gap — so a full-bleed card header needs
   max-width released explicitly, not just width set. Two classes here outrank
   the kernel's one, so source order stops mattering. */
.el-w-image-box{height:100%}
.el-w-image-box .el-iconbox{gap:0;height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-align:left;align-items:stretch;transition:transform .25s,box-shadow .25s}
.el-w-image-box .el-iconbox:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.el-w-image-box .el-iconbox-media{border-radius:0;width:100%}
.el-w-image-box .el-iconbox-media img{max-width:none;width:100%;height:225px;object-fit:cover;border-radius:0;margin:0}
.el-w-image-box .el-iconbox-body{padding:26px}
.el-w-image-box .el-iconbox-title{margin-bottom:10px}

/* Homepage expertise cards. The whole card is already one accessible link;
   the CTA is therefore rendered inside that link instead of nesting anchors. */
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox{
  border-color:#e0e8d8;
  border-radius:22px;
  box-shadow:0 10px 30px rgba(22,48,27,.08);
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox:hover,
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox:focus-visible{
  transform:translateY(-8px);
  border-color:#bcd78e;
  box-shadow:0 22px 48px rgba(22,48,27,.16);
  outline:none;
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox:focus-visible{
  outline:3px solid var(--lime);
  outline-offset:4px;
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-media{overflow:hidden}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-media img{
  height:240px;
  transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease;
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox:hover .el-iconbox-media img,
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox:focus-visible .el-iconbox-media img{
  transform:scale(1.055);
  filter:saturate(1.06) contrast(1.02);
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-body{
  min-height:225px;
  padding:26px 28px 28px;
  border-top:4px solid var(--lime);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-title{
  margin-bottom:12px;
  font-size:1.45rem;
  line-height:1.2;
  color:var(--forest);
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-desc{
  flex:1;
  color:var(--muted);
  line-height:1.6;
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-body:after{
  content:"Découvrir  →";
  display:inline-flex;
  align-items:center;
  min-height:40px;
  margin-top:22px;
  padding:0 17px;
  border-radius:999px;
  background:var(--mint);
  color:var(--green);
  font:800 13px/1 'Manrope',sans-serif;
  transition:background .25s ease,color .25s ease,transform .25s ease;
}
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox:hover .el-iconbox-body:after,
main[data-cms-document-id="1"] .el-w-image-box .el-iconbox:focus-visible .el-iconbox-body:after{
  background:var(--lime);
  color:var(--forest);
  transform:translateX(3px);
}

/* Visual system for icon-led content blocks. Variants are assigned by the CMS
   seed so steps, features, related services and locations share one language
   without forcing the same layout on every use case. */
.bretic-icon-card{
  --spot-x:50%;
  --spot-y:50%;
  position:relative;
}
.bretic-icon-card .el-iconbox{
  position:relative;
  isolation:isolate;
}
.bretic-icon-card .el-iconbox:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:radial-gradient(circle 190px at var(--spot-x) var(--spot-y),rgba(144,197,69,.20),transparent 72%);
  opacity:0;
  transition:opacity .3s ease;
}
.bretic-icon-card:hover .el-iconbox:before{opacity:1}
.bretic-icon-card .el-iconbox-icon,
.bretic-icon-card .el-iconbox-body{
  position:relative;
  z-index:1;
}
.bretic-icon-card .el-iconbox-icon{
  width:58px;
  height:58px;
  flex:0 0 58px;
  padding:0;
  border:1px solid #d2e7b5;
  border-radius:18px;
  background:linear-gradient(145deg,#f7fbf2,#deefc8);
  color:var(--green);
  box-shadow:0 9px 22px rgba(74,122,23,.13),inset 0 1px 0 rgba(255,255,255,.9);
  display:grid;
  place-items:center;
  font-size:27px;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),background .3s ease,box-shadow .3s ease;
}
.bretic-icon-card .el-iconbox-icon .el-icon-svg{width:27px;height:27px}
.bretic-icon-card:hover .el-iconbox-icon{
  transform:translateY(-3px) rotate(-3deg);
  background:linear-gradient(145deg,#a7d363,#7db233);
  color:var(--forest);
  box-shadow:0 13px 28px rgba(74,122,23,.22);
}
.bretic-icon-card .el-iconbox-title{
  color:var(--forest);
  line-height:1.25;
}
.bretic-icon-card .el-iconbox-desc{
  color:var(--muted);
  line-height:1.55;
}

/* Four-step journey on the homepage. */
.bretic-step-card{height:100%}
.bretic-step-card .el-iconbox{
  height:100%;
  min-height:250px;
  gap:22px;
  padding:26px;
  overflow:hidden;
  border:1px solid #e0e8d8;
  border-radius:22px;
  background:linear-gradient(155deg,#fff 58%,#f3f8ec 100%);
  box-shadow:0 10px 30px rgba(22,48,27,.07);
  transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;
}
.bretic-step-card:hover .el-iconbox{
  transform:translateY(-7px);
  border-color:#bdd893;
  box-shadow:0 20px 42px rgba(22,48,27,.14);
}
.bretic-step-card .el-iconbox-icon{width:64px;height:64px;flex-basis:64px;border-radius:20px}
.bretic-step-card .el-iconbox-title{font-size:1.25rem}

/* Compact feature stack used in each service-page intro. */
.bretic-feature-card + .bretic-feature-card{margin-top:10px}
.bretic-feature-card .el-iconbox{
  gap:15px;
  padding:14px;
  overflow:hidden;
  border:1px solid rgba(111,168,43,.18);
  border-radius:17px;
  background:rgba(255,255,255,.7);
  transition:transform .28s ease,background .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.bretic-feature-card:hover .el-iconbox{
  transform:translateX(6px);
  background:#fff;
  border-color:#c7dfa3;
  box-shadow:0 12px 28px rgba(22,48,27,.10);
}
.bretic-feature-card .el-iconbox-icon{width:50px;height:50px;flex-basis:50px;border-radius:15px;font-size:23px}
.bretic-feature-card .el-iconbox-icon .el-icon-svg{width:23px;height:23px}
.bretic-feature-card .el-iconbox-title{font-size:1.08rem}
.bretic-feature-card .el-iconbox-desc{font-size:.92rem}

/* Related-service cards: a clearer interactive block with directional cue. */
.bretic-related-card{
  height:100%;
  overflow:hidden;
  border-radius:20px!important;
  transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;
}
.bretic-related-card:hover{
  transform:translateY(-6px);
  border-color:#bdd893!important;
  box-shadow:0 18px 40px rgba(22,48,27,.13);
}
.bretic-related-card .el-iconbox{height:100%;gap:17px;padding-right:34px}
.bretic-related-card:after{
  content:"→";
  position:absolute;
  z-index:2;
  top:18px;
  right:18px;
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--mint);
  color:var(--green);
  display:grid;
  place-items:center;
  font-weight:900;
  transition:transform .3s ease,background .3s ease;
}
.bretic-related-card:hover:after{transform:translateX(3px);background:var(--lime);color:var(--forest)}
.bretic-related-card .el-iconbox-link:focus-visible{outline:3px solid var(--lime);outline-offset:5px;border-radius:14px}

/* Agency cards retain their existing grid/map layouts but feel less static. */
.bretic-location-card{
  overflow:hidden;
  border-radius:18px!important;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
}
.bretic-location-card:hover{
  transform:translateY(-4px);
  border-color:#bdd893!important;
  box-shadow:0 14px 32px rgba(22,48,27,.12);
}
.bretic-location-card .el-iconbox{gap:15px}
.bretic-location-card .el-iconbox-icon{width:52px;height:52px;flex-basis:52px;border-radius:16px;font-size:24px}
.bretic-location-card .el-iconbox-icon .el-icon-svg{width:24px;height:24px}

@media(prefers-reduced-motion:reduce){
  .bretic-icon-card,.bretic-icon-card .el-iconbox,.bretic-icon-card .el-iconbox-icon,.bretic-related-card:after{transition:none!important;transform:none!important}
  .bretic-icon-card .el-iconbox:before{display:none}
}

/* Equal-height card rows. The section class is set only on actual card grids,
   leaving mixed editorial layouts untouched. */
.bretic-equal-cards .el-row{align-items:stretch}
.bretic-equal-cards .el-row>.el-col{display:flex;flex-direction:column}
.bretic-equal-cards .el-w-image-box,
.bretic-equal-cards .bretic-step-card,
.bretic-equal-cards .bretic-related-card,
.bretic-equal-cards .bretic-location-card,
.bretic-equal-cards .el-w-testimonial,
.bretic-equal-cards .el-testimonial-card{height:100%}
.bretic-equal-cards .el-testimonial-card .el-tn-body,
.bretic-equal-cards .el-testimonial-card .el-tn-main{height:100%}
.bretic-equal-cards .el-testimonial-card .el-tn-content{flex:1}

/* Controls are injected by bretic-ui.js; swipe/scroll-snap still works without
   JavaScript, so the mobile carousels keep a functional no-JS fallback. */
.bretic-carousel-nav{display:none}
.bretic-carousel-btn{
  width:42px;
  height:42px;
  border:1px solid #d7e3ca;
  border-radius:50%;
  background:#fff;
  color:var(--forest);
  display:grid;
  place-items:center;
  font-size:21px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(22,48,27,.09);
}
.bretic-carousel-btn:disabled{opacity:.35;cursor:default}
.bretic-carousel-count{min-width:52px;text-align:center;color:var(--muted);font:800 12px/1 'Manrope',sans-serif}

/* Certification intro stays a compact fixed title; only the logos scroll. */
.bretic-label-layout{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(190px,22%) minmax(0,1fr);
  align-items:center;
  gap:34px;
}
.bretic-label-heading{width:auto!important;max-width:none!important;min-width:0!important}
.bretic-label-layout .el-row{
  width:100%;
  max-width:none;
  margin:0;
  flex-wrap:nowrap!important;
  gap:clamp(18px,3vw,42px)!important;
}
.bretic-label-layout .el-row>.el-col{
  flex:1 1 0!important;
  max-width:none!important;
  min-width:0!important;
}
/* Two source logos are JPEGs with white pixels around the mark. Multiplication
   visually removes that white rectangle on the mint strip while preserving
   the original brand colours and keeping the whole block transparent. */
.bretic-label-carousel img[src$=".jpg"]{mix-blend-mode:multiply}

/* Testimonials are a carousel at every viewport width. Desktop deliberately
   shows a piece of the next card to make the interaction self-evident. */
.bretic-reviews-carousel{padding-bottom:48px!important}
.bretic-reviews-carousel .el-row{
  width:min(1180px,calc(100% - 40px));
  max-width:1180px;
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  gap:20px!important;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:2px;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.bretic-reviews-carousel .el-row::-webkit-scrollbar{display:none}
.bretic-reviews-carousel .el-row>.el-col{
  flex:0 0 40%!important;
  max-width:40%!important;
  min-width:0!important;
  scroll-snap-align:center;
}
.bretic-reviews-carousel .bretic-carousel-nav{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:11px;
  margin-top:18px;
}

/* Editorial CTAs need a visible pause after their checklist. The structural
   selector keeps already-cached CMS pages correct while the explicit class is
   the durable hook stored by the page template. */
.bretic-cms-hero .el-w-button{margin-top:30px!important}
.bretic-service-intro .el-row>.el-col:first-child .el-w-button,
main .el-section:has(> .el-row > .el-col:first-child > .el-w-icon-list + .el-w-button) .el-row>.el-col:first-child>.el-w-button{margin-top:30px!important}

/* More breathing room before the CTA in the company-proof section. */
.bretic-why-section .el-w-button{margin-top:24px}

/* Homepage conversion path: diagnostic first, human contact second. */
.bretic-hero-contact{
  margin-top:17px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 16px;
  color:#cbdcc0;
  font-size:14px;
}
.bretic-hero-contact>a{
  min-height:38px;
  padding:0 15px;
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(255,255,255,.35);
  border-radius:10px;
  color:#fff;
  font-weight:800;
  transition:background .2s ease,border-color .2s ease;
}
.bretic-hero-contact>a:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.62)}
.bretic-hero-contact span a{color:var(--lime);font-weight:800}

/* Central energy-simulation feature, immediately after the six services. */
.bretic-energy-cta{padding:0 0 72px!important;background:#fff}
.bretic-energy-cta>.el-row{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  align-items:center;
  padding:54px;
  border-radius:30px;
  background:linear-gradient(135deg,#102616 0%,#16301b 58%,#1d4325 100%);
  box-shadow:0 26px 65px rgba(22,48,27,.18);
}
.bretic-energy-cta>.el-row:before{
  content:"";
  position:absolute;
  z-index:0;
  width:420px;
  height:420px;
  right:-170px;
  top:-210px;
  border:1px solid rgba(144,197,69,.24);
  border-radius:50%;
  box-shadow:0 0 0 70px rgba(144,197,69,.035),0 0 0 140px rgba(144,197,69,.025);
}
.bretic-energy-cta>.el-row>.el-col{position:relative;z-index:1}
.bretic-energy-note{margin:15px 0 0!important;color:#aeca9e;font-size:13px;font-weight:700}
.bretic-energy-tool + .bretic-energy-tool{margin-top:12px}
.bretic-energy-tool .el-iconbox{
  gap:16px;
  padding:17px 18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(8px);
  transition:transform .28s ease,background .28s ease,border-color .28s ease;
}
.bretic-energy-tool:hover .el-iconbox{
  transform:translateX(6px);
  background:rgba(255,255,255,.12);
  border-color:rgba(144,197,69,.5);
}
.bretic-energy-tool .el-iconbox-icon{
  width:50px;
  height:50px;
  flex-basis:50px;
  border-color:rgba(144,197,69,.38);
  background:rgba(144,197,69,.14);
  color:var(--lime);
  box-shadow:none;
  font-size:23px;
}
.bretic-energy-tool .el-iconbox-icon .el-icon-svg{width:23px;height:23px}
.bretic-energy-tool .el-iconbox-title{color:#fff;font-size:1.08rem}
.bretic-energy-tool .el-iconbox-desc{color:#bfd2b5;font-size:.9rem}
.bretic-energy-tool .el-iconbox-link:focus-visible{outline:3px solid var(--lime);outline-offset:3px}

@media(max-width:900px){
  /* Compact CMS heroes: less vertical padding and a shorter visual. */
  .bretic-cms-hero{padding:46px 0 26px!important}
  .bretic-cms-hero .el-row{gap:26px!important}
  .bretic-cms-hero .el-row>.el-col{min-width:0!important}
  .bretic-cms-hero .el-w-image img{height:225px!important;border-radius:58px 14px 14px 14px!important}
  .bretic-cms-hero-contain .el-w-image img{height:235px!important;border-radius:0!important}

  /* Certifications and reviews become touch carousels with a visible next
     slide edge. This signals horizontal movement before the first swipe. */
  .bretic-label-carousel{padding:20px 0 16px!important}
  .bretic-label-layout{width:100%;display:block}
  .bretic-label-heading{
    margin:0 18px 12px;
    padding:0!important;
    display:block!important;
    text-align:center;
  }
  .bretic-label-heading p{font-size:13px!important;line-height:1.45!important}
  .bretic-reviews-carousel{padding-bottom:34px!important}
  .bretic-label-carousel .el-row,
  .bretic-reviews-carousel .el-row{
    width:100%;
    max-width:none;
    margin:0;
    padding:4px 18px 12px;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    gap:14px!important;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:18px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .bretic-label-carousel .el-row{
    --bretic-label-slide:72%;
    padding:4px 0 12px;
  }
  /* Symmetric flex spacers let the first and last transparent slides reach the
     exact centre of the viewport, just like every intermediate logo. */
  .bretic-label-carousel .el-row:before,
  .bretic-label-carousel .el-row:after{
    content:"";
    flex:0 0 calc((100% - var(--bretic-label-slide))/2 - 14px);
  }
  .bretic-label-carousel .el-row::-webkit-scrollbar,
  .bretic-reviews-carousel .el-row::-webkit-scrollbar{display:none}
  .bretic-label-carousel .el-row>.el-col{
    flex:0 0 var(--bretic-label-slide)!important;
    max-width:var(--bretic-label-slide)!important;
    min-width:0!important;
    min-height:92px;
    padding:14px 10px;
    justify-content:center;
    align-items:center;
    scroll-snap-align:center;
    border:0;
    border-radius:0;
    background:transparent;
  }
  .bretic-label-carousel .el-row>.el-col:first-child{text-align:center}
  .bretic-label-carousel .el-row>.el-col>.el-widget,
  .bretic-label-carousel .el-row>.el-col .el-image{width:100%}
  .bretic-label-carousel .el-row>.el-col .el-image{
    margin:0;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .bretic-label-carousel .el-row>.el-col img{height:52px!important;max-width:180px;margin:0 auto!important}
  .bretic-reviews-carousel .el-row>.el-col{
    flex:0 0 86%!important;
    max-width:86%!important;
    min-width:0!important;
    scroll-snap-align:center;
  }
  .bretic-reviews-carousel .el-w-testimonial,
  .bretic-reviews-carousel .el-testimonial-card{height:100%}
  .bretic-carousel-nav{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:11px;
    margin-top:6px;
  }

  /* Three compact proof points on a single row. */
  .bretic-stats-strip{padding:38px 0 24px!important}
  .bretic-stats-strip .el-row{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0!important;
    align-items:stretch;
  }
  .bretic-stats-strip .el-row>.el-col{
    min-width:0!important;
    max-width:none!important;
    padding:6px 9px;
    border-right:1px solid var(--line);
  }
  .bretic-stats-strip .el-row>.el-col:last-child{border-right:0}
  .bretic-stats-strip .el-counter-num{font-size:clamp(1.7rem,8vw,2.15rem)}
  .bretic-stats-strip .el-counter-label{font-size:10.5px;line-height:1.25}

  .bretic-why-section,
  .bretic-detail-section,
  main .el-section:has(> .el-row > .el-col:first-child .el-w-image):has(.el-w-icon-list){padding:64px 0!important}
  .bretic-why-section .el-row>.el-col:first-child .el-w-image img,
  .bretic-detail-section .el-row>.el-col:first-child .el-w-image img,
  main .el-section:has(> .el-row > .el-col:first-child .el-w-image):has(.el-w-icon-list) .el-row>.el-col:first-child .el-w-image img{height:330px!important}

  .bretic-energy-cta{padding:0 0 58px!important}
  .bretic-energy-cta>.el-row{padding:38px;border-radius:26px}
  .bretic-energy-cta>.el-row>.el-col:last-child{margin-top:28px}
}
@media(min-width:681px) and (max-width:900px){
  .bretic-cms-hero{padding:58px 0 38px!important}
  .bretic-cms-hero .el-w-image img{height:330px!important}
  .bretic-cms-hero-contain .el-w-image img{height:350px!important}
  .bretic-label-carousel .el-row{--bretic-label-slide:42%}
  .bretic-reviews-carousel .el-row>.el-col{flex-basis:58%!important;max-width:58%!important}
}
@media(max-width:680px){
  .bretic-cms-hero .el-w-button{margin-top:24px!important}
  .bretic-service-intro .el-row>.el-col:first-child .el-w-button,
  main .el-section:has(> .el-row > .el-col:first-child > .el-w-icon-list + .el-w-button) .el-row>.el-col:first-child>.el-w-button{margin-top:24px!important}

  /* The six trades stay fully readable but switch to compact horizontal cards:
     less image height, tighter copy and a shorter CTA. */
  .bretic-services-row{padding-bottom:14px!important}
  .bretic-services-row + .bretic-services-row{padding-top:0!important;padding-bottom:34px!important}
  .bretic-services-row>.el-row{gap:12px!important}
  .bretic-services-row>.el-row>.el-col{min-width:0!important}
  main[data-cms-document-id="1"] .el-section:has(.el-w-image-box)>.el-row{gap:12px!important}
  main[data-cms-document-id="1"] .el-section:has(.el-w-image-box)>.el-row>.el-col{min-width:0!important}
  main[data-cms-document-id="1"] .el-w-image-box .el-iconbox{
    height:184px;
    min-height:184px;
    flex-direction:row;
    border-radius:17px;
  }
  main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-media{
    width:34%;
    height:100%;
    flex:0 0 34%;
  }
  main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-media img{
    width:100%;
    height:100%;
    min-height:184px;
  }
  main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-body{
    min-width:0;
    min-height:0;
    padding:15px 14px 14px;
    border-top:0;
    border-left:3px solid var(--lime);
  }
  main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-title{
    margin-bottom:7px;
    font-size:1.05rem;
    line-height:1.16;
  }
  main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-desc{
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    font-size:.78rem;
    line-height:1.4;
  }
  main[data-cms-document-id="1"] .el-w-image-box .el-iconbox-body:after{
    min-height:30px;
    margin-top:9px;
    padding:7px 10px;
    font-size:11px;
  }

  .bretic-why-section,
  .bretic-detail-section,
  main .el-section:has(> .el-row > .el-col:first-child .el-w-image):has(.el-w-icon-list){padding:52px 0!important}
  .bretic-why-section .el-row>.el-col:first-child .el-w-image img,
  .bretic-detail-section .el-row>.el-col:first-child .el-w-image img,
  main .el-section:has(> .el-row > .el-col:first-child .el-w-image):has(.el-w-icon-list) .el-row>.el-col:first-child .el-w-image img{height:255px!important}
  .bretic-why-section .el-w-button{margin-top:28px}
  .bretic-hero-primary,.bretic-hero-primary .el-btn-wrap,.bretic-hero-primary .el-btn{width:100%}
  .bretic-hero-contact{align-items:stretch;flex-direction:column}
  .bretic-hero-contact>a{align-self:flex-start}
  .bretic-energy-cta{padding:0 14px 38px!important}
  .bretic-energy-cta>.el-row{width:100%;padding:23px 18px;border-radius:20px}
  .bretic-energy-cta>.el-row:before{width:300px;height:300px;right:-170px;top:-150px}
  .bretic-energy-cta>.el-row>.el-col:last-child{margin-top:19px}
  .bretic-energy-cta .el-w-heading .el-heading{margin-bottom:12px;font-size:1.62rem;line-height:1.13}
  .bretic-energy-cta>.el-row>.el-col:first-child .el-w-text-editor:nth-of-type(3) p{font-size:15px!important;line-height:1.48}
  .bretic-energy-cta .el-w-button{margin-top:16px!important}
  .bretic-energy-note{margin-top:10px!important;font-size:11.5px}
  .bretic-energy-tool + .bretic-energy-tool{margin-top:8px}
  .bretic-energy-tool .el-iconbox{min-height:54px;padding:9px 11px;gap:10px;border-radius:14px}
  .bretic-energy-tool .el-iconbox-icon{width:36px;height:36px;flex-basis:36px;font-size:18px}
  .bretic-energy-tool .el-iconbox-icon .el-icon-svg{width:18px;height:18px}
  .bretic-energy-cta .bretic-energy-tool .el-iconbox-title{font-size:.94rem;line-height:1.2}
  .bretic-energy-tool .el-iconbox-desc{display:none}
}

/* service cards */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.service-card img{width:100%;height:225px;object-fit:cover}.service-body{padding:26px;display:flex;flex-direction:column;flex:1}.service-body .eyebrow{font-size:10px;margin-bottom:11px;letter-spacing:.14em}.service-body h3{font-size:1.55rem;margin-bottom:12px}.service-body p{color:var(--muted);flex:1}.text-link{display:inline-flex;gap:8px;align-items:center;font-weight:800;color:var(--green)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px}.stat b{display:block;font:800 3.1rem/1 'Manrope';color:var(--green);letter-spacing:-.04em}.stat span{color:var(--muted);font-weight:600}

/* split + checks */
.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.split-image{position:relative}.split-image>img{height:520px;width:100%;object-fit:cover;border-radius:var(--radius)}.feature-stamp{position:absolute;right:-24px;bottom:30px;background:var(--lime);color:var(--forest);width:150px;height:150px;border-radius:50%;display:grid;place-content:center;text-align:center;transform:rotate(-7deg);font-weight:800;font-family:'Manrope';line-height:1.15;padding:12px}.check-list{display:grid;gap:16px;margin:30px 0}.check-item{display:flex;gap:14px;align-items:flex-start}.check-icon{flex:none;width:28px;height:28px;border-radius:50%;background:var(--mint);color:var(--green);display:grid;place-items:center}.check-item strong{display:block;font-family:'Manrope'}.check-item span{font-size:14px;color:var(--muted)}

/* before / after */
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:38px}.ba{position:relative;border-radius:var(--radius);overflow:hidden}.ba img{width:100%;height:340px;object-fit:cover}.ba b{position:absolute;top:16px;left:16px;background:#fff;color:var(--forest);border-radius:999px;padding:7px 16px;font:800 12px/1 'Manrope';letter-spacing:.12em;text-transform:uppercase}

/* process */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.process-item{padding:26px;border-left:1px solid var(--line)}.process-num{font:800 3.4rem/1 'Manrope';color:var(--lime-soft)}.process-item h3{margin:16px 0 10px}.process-item p{color:var(--muted);margin:0;font-size:15px}

/* reviews + areas */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.review{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:0 12px 40px rgba(22,48,27,.07)}.stars{color:var(--orange);letter-spacing:3px}.review blockquote{margin:20px 0;font-size:1.02rem}.review cite{font-style:normal;font-weight:800}.areas{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.area{padding:9px 15px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:600;font-size:14px;display:inline-flex;gap:7px;align-items:center}

/* cta band */
.cta-band{background:var(--lime);color:var(--forest);padding:64px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:50px}.cta-inner h2{font-size:clamp(1.9rem,3.8vw,3.2rem);margin-bottom:10px}.cta-inner p:not(.eyebrow){max-width:680px;margin-bottom:0;color:#24401f}.cta-band .eyebrow{color:#2d4a24}.cta-band .btn-light{background:var(--forest);color:#fff}

/* interior pages */
.page-hero{background:var(--forest);color:#fff;overflow:hidden}.page-hero-grid{min-height:450px;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;padding:64px 0}.page-hero h1{font-size:clamp(2.4rem,4.9vw,4.2rem)}.page-hero .lead{color:#cbdcc0}.page-hero img{height:360px;width:100%;object-fit:cover;border-radius:100px 16px 16px 16px}.content-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:start}.content-grid h2{font-size:clamp(1.9rem,3.8vw,3rem)}.content-grid>aside{background:var(--mint);border-radius:var(--radius);padding:30px;position:sticky;top:110px}.content-grid>aside h3{margin-bottom:20px}.mini-list{display:grid;gap:13px}.mini-list a,.mini-list div{display:flex;gap:12px;align-items:center;padding-bottom:13px;border-bottom:1px solid #dceac6;font-weight:600}.mini-list a:last-child,.mini-list div:last-child{border:0;padding-bottom:0}.mini-list a:hover{color:var(--green)}

/* faq */
.faq{display:grid;gap:12px;max-width:860px}.faq details{border:1px solid var(--line);border-radius:14px;background:#fff;padding:18px 22px}.faq summary{font-family:'Manrope';font-weight:800;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--green);font-size:1.5rem;line-height:1}.faq details[open] summary:after{content:"–"}.faq p{margin:14px 0 0;color:var(--muted)}

/* contact */
.contact-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:58px}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field-group{display:grid;gap:7px}.field-group.full{grid-column:1/-1}.field-group label{font-size:13px;font-weight:800}.field,.field-group input,.field-group select,.field-group textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:14px 15px;background:#fff;color:var(--ink);font:inherit}.field-group textarea{min-height:145px;resize:vertical}.contact-aside{background:var(--forest);color:#fff;border-radius:var(--radius);padding:36px}.contact-row{display:flex;gap:15px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.15)}.contact-row:last-child{border:0}.contact-row p{margin:0;color:#c7dbba}.contact-row strong{display:block;color:#fff}.notice{padding:15px 18px;background:#eaf7ee;border:1px solid #9fd3ae;color:#1c6134;border-radius:12px;margin-bottom:24px}.notice.error{background:#fdeeea;border-color:#f0b3a2;color:#8d2c11}.privacy{max-width:820px}.privacy h2{font-size:1.6rem;margin-top:42px}.privacy p,.privacy li{color:var(--muted)}
.bretic-contact-page .el-fw-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bretic-contact-page .el-fw-field:has(textarea){grid-column:1/-1}
@media(max-width:680px){.bretic-contact-page .el-fw-fields{grid-template-columns:1fr}}

/* outils : échelle DPE + cartes de recommandation */
.dpe-scale{display:flex;gap:5px;margin:14px 0 18px}
.dpe-step{flex:1;text-align:center;font:800 13px/30px 'Manrope';border-radius:6px;background:var(--c);color:#1D1D1B;opacity:.32;transition:.2s}
.dpe-step.on{opacity:1;transform:scale(1.16);box-shadow:0 4px 14px rgba(22,48,27,.3)}
.dpe-figures{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.dpe-figures div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 10px;text-align:center}
.dpe-figures b{display:block;font:800 1.5rem/1.1 'Manrope';color:var(--forest)}
.dpe-figures span{font-size:11.5px;color:var(--muted)}
.reco-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.reco-card h3{margin-bottom:10px}
.reco-card p{color:var(--muted);margin-bottom:14px}
.reco-figs{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.reco-figs span{font-weight:800;color:var(--forest);background:var(--mint);border-radius:999px;padding:6px 13px;font-size:13px}
.reco-figs .reco-save{background:var(--lime);color:var(--forest)}
/* estimateur */
.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.qty{display:flex;align-items:center;gap:9px}
.qty input{flex:1}
.qty span{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}
.estimate-project-form{display:grid;gap:0}
.estimate-group-head{margin:28px 0 12px}
.estimate-group-head>div{display:flex;align-items:center;gap:11px}
.estimate-group-head>div>span{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:var(--forest);color:var(--lime);font:800 12px/1 'Manrope'}
.estimate-group-head p{display:grid;gap:1px;margin:0}.estimate-group-head strong{color:var(--forest)}.estimate-group-head small{color:var(--muted);font-size:11.5px}
.estimate-work-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.estimate-work-card{padding:11px;border:2px solid #dbe5d2;border-radius:15px;background:#fff;transition:border-color .2s,box-shadow .2s,opacity .2s}
.estimate-work-card:not(.is-selected){opacity:.72}
.estimate-work-card.is-selected{border-color:var(--lime);box-shadow:0 10px 28px rgba(64,112,22,.1)}
.estimate-work-identity{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:10px;align-items:center}
.estimate-work-identity .project-visual-photo{width:78px;height:58px}
.estimate-work-identity h3{margin:2px 0 0;font-size:14px;line-height:1.2}
.estimate-work-identity p{margin:3px 0 0;color:var(--muted);font-size:10.5px;line-height:1.3}
.estimate-work-toggle,.estimate-segmented input,.estimate-binary-choice input{width:21px;height:21px;margin:0;accent-color:var(--green);cursor:pointer}
.estimate-specialty{display:inline-block;padding:3px 6px;border-radius:999px;background:#e7f3d5;color:var(--green);font-size:8px!important;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.estimate-quantity{display:grid;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.estimate-quantity>label{font-size:11px;font-weight:800;color:var(--forest)}
.estimate-quantity .qty input{min-width:0;padding:9px 10px}
.estimate-quantity>small{color:var(--muted);font-size:9.5px;line-height:1.3}
.estimate-work-card:not(.is-selected) .estimate-quantity{opacity:.42}
.estimate-choice-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;padding:12px;border:2px solid #dbe5d2;border-radius:15px;background:#fff}
.estimate-choice-card>.project-visual-photo{width:112px;height:92px}
.estimate-segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.estimate-segmented label{display:grid;grid-template-columns:20px 1fr;gap:6px;align-items:start;padding:9px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.estimate-segmented label:has(input:checked){border-color:var(--lime);background:#f1f7e8;box-shadow:0 0 0 2px rgba(144,197,69,.14)}
.estimate-segmented label>span{display:grid;gap:2px}.estimate-segmented b{font-size:11.5px;color:var(--forest)}.estimate-segmented small{font-size:9.5px;line-height:1.3;color:var(--muted)}
.estimate-binary-choice{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:10px;border:2px solid #dbe5d2;border-radius:15px;background:#fff}
.estimate-binary-choice label{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-weight:800;font-size:12px;cursor:pointer}
.estimate-binary-choice label:has(input:checked){border-color:var(--lime);background:#f1f7e8;color:var(--green)}
.field-help{color:var(--muted);font-size:11px;line-height:1.45}
.optional-label{margin-left:5px;color:var(--green);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.roi-helper{margin:15px 0 0;padding:11px 12px;border-radius:10px;background:#fff;color:var(--muted);font-size:12.5px;line-height:1.45}
#estimateur,#devis-estimation{scroll-margin-top:92px}
.estimate-devis-grid .field-group textarea{min-height:90px}
.estimate-devis-grid .field-group.full>.btn{width:100%}
.est-total{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
.est-total b{display:block;font:800 2.1rem/1.1 'Manrope';color:var(--forest);letter-spacing:-.03em}
.est-total span{font-size:12.5px;color:var(--muted)}
.est-table{margin-top:34px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.est-row{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr 1fr;gap:14px;padding:15px 22px;border-bottom:1px solid var(--line);align-items:center}
.est-row:last-child{border-bottom:0}
.est-head{background:var(--sand);font:800 11.5px/1.4 'Manrope';letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
/* simulateur d'aides */
.aides{display:grid;gap:10px}
.aide-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.aide-row strong{display:block;font-family:'Manrope';font-size:14.5px}
.aide-row span{font-size:12.5px;color:var(--muted)}
.aide-row b{font:800 1.15rem/1 'Manrope';color:var(--green);white-space:nowrap}
.aides-project-form{max-width:760px}
.aides-situation-grid{padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--sand)}
.aides-situation-grid .field-group{align-content:start}
.aides-situation-grid .field-group>label{display:flex;align-items:flex-end;min-height:34px;line-height:1.3}
.aides-situation-grid .field-group>input,.aides-situation-grid .field-group>select{height:50px;padding-top:0;padding-bottom:0}
.aides-situation-grid .field-help{min-height:32px}
.aides-ventilation-card{margin-top:12px}
.aides-choice-title{display:block;margin-bottom:8px;color:var(--forest);font:800 13px/1.3 'Manrope'}
.aid-result-overview{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.aid-result-overview>div{display:grid;gap:4px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff}
.aid-result-overview small{color:var(--muted);font-size:10.5px;line-height:1.3}
.aid-result-overview strong{color:var(--forest);font:800 1.35rem/1.1 'Manrope'}
.official-aides-note{margin-top:24px;color:var(--muted);font-size:13px}
.official-aides-note a{color:var(--green);font-weight:800;text-decoration:underline}
#simulateur-aides,#devis-aides{scroll-margin-top:92px}
.aides-devis-grid .field-group textarea{min-height:90px}
@media(max-width:680px){.aides-situation-grid{padding:14px}.aides-situation-grid .field-group>label{min-height:auto}.aides-situation-grid .field-help{min-height:auto}.aid-result-overview{grid-template-columns:1fr}.aides-ventilation-card>.project-visual-photo{height:108px}}
.reste{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;background:var(--forest);color:#fff;border-radius:14px;padding:16px 18px}
.reste span{font-weight:700;font-size:13.5px}
.reste b{font:800 1.5rem/1 'Manrope';color:var(--lime)}
/* carte des agences */
.bretic-map{height:440px;border-radius:var(--radius);border:1px solid var(--line);background:var(--mint);z-index:0}
.bretic-map .leaflet-control-attribution{font-size:10.5px;background:rgba(255,255,255,.85)}
/* Marqueur maison : pastille à la couleur de marque, cerclée de blanc pour
   rester lisible aussi bien sur la mer que sur le bâti dense. */
.bretic-pin span{display:block;width:22px;height:22px;border-radius:50%;background:var(--lime);border:3px solid #fff;box-shadow:0 2px 8px rgba(22,48,27,.45)}
.leaflet-popup-content{font-family:'DM Sans',system-ui,sans-serif;font-size:13.5px;line-height:1.5}
@media(max-width:980px){.bretic-map{height:340px}}

/* page hub /outils */
.tool-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;transition:transform .25s,box-shadow .25s,border-color .25s}
.tool-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--lime)}
.tool-duree{align-self:flex-start;background:var(--mint);color:var(--green);font:800 11px/1 'Manrope';letter-spacing:.12em;text-transform:uppercase;padding:7px 12px;border-radius:999px;margin-bottom:18px}
.tool-card h2{font-size:1.5rem;margin-bottom:12px}
.tool-card p{color:var(--muted);flex:1;margin-bottom:18px}

/* Le <ul> du menu est un flex en `align-items:normal`, donc les <li> (30px)
   restent collés en haut de la colonne (80px) : avec le menu à un seul niveau
   ça ne se voyait pas, avec l'arbre le décalage devient visible (nav 25px plus
   haut que le logo et le téléphone). Ici on est dans NOTRE feuille, pas dans
   custom_css, donc le combinateur enfant est utilisable. */
nav.el-nav-menu > ul{align-items:center}

/* Sous-menus du kernel : le menu du site est clair, ses dropdowns doivent
   l'être aussi (le défaut kernel est un panneau blanc générique). */
@media(min-width:769px){
  .el-nav-sub{border:1px solid var(--line);box-shadow:0 14px 38px rgba(22,48,27,.16)!important;padding:10px!important;text-align:left}
  .el-nav-sub .el-nav-link{font-weight:600;font-size:15px}
  .el-nav-sub .el-nav-link:hover{background:var(--mint)!important;color:var(--green)}
}
/* En mobile le kernel repasse les sous-menus en `position:static` : dans un
   <ul> en flex-wrap ils se retrouvent alors À CÔTÉ des entrées suivantes, qui
   passent derrière le panneau. Les empiler verticalement donnerait un en-tête
   de 13 lignes. On les masque donc : chaque parent a une vraie destination
   (Toiture → /toiture-couverture, Outils → /outils), la barre reste compacte et
   tout reste atteignable en un tap de plus. Le chevron disparaît avec eux,
   sinon il annoncerait un déploiement qui n'existe plus. */
/* ── Menu burger ─────────────────────────────────────────────────────────
   Le widget nav-menu du kernel n'a pas de bascule mobile : le bouton est
   injecté par islands/bretic-ui.js et bascule `.nav-open` sur la section
   d'en-tête. Tout est sous `html.js`, la classe posée par ce script — sans JS
   le menu reste déplié plutôt que définitivement fermé. */
/* `top` fixe et non 50% : une fois le menu ouvert la section devient haute, et
   un bouton centré dessus se retrouverait au milieu du panneau au lieu de rester
   à côté du logo. */
.nav-burger{display:none;position:absolute;right:18px;top:22px;z-index:90;
  width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;
  cursor:pointer;padding:0;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.nav-burger span{display:block;width:20px;height:2px;background:var(--forest);border-radius:2px;transition:transform .2s,opacity .2s}
.nav-open .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .nav-burger span:nth-child(2){opacity:0}
.nav-open .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Appel direct à côté du burger : en mobile la colonne téléphone est repliée
   dans le tiroir, or c'est l'action n°1 d'un visiteur d'artisan. Le numéro est
   lu dans le DOM par bretic-ui.js, donc il suit le CMS sans duplication. */
.nav-phone{display:none;position:absolute;right:74px;top:22px;z-index:90;
  width:46px;height:46px;border-radius:12px;background:var(--lime);color:var(--forest);
  align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(144,197,69,.4)}
.nav-phone:active{background:var(--lime-deep)}

.scroll-top{position:fixed;right:22px;bottom:24px;z-index:70;width:46px;height:46px;border:0;border-radius:50%;
  background:var(--lime);color:var(--forest);cursor:pointer;display:grid;place-items:center;
  box-shadow:0 8px 24px rgba(22,48,27,.28);opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s,transform .2s,visibility .2s}
.scroll-top.on{opacity:1;visibility:visible;transform:none}
.scroll-top:hover{background:var(--lime-deep)}

@media(max-width:980px){
  html.js .nav-burger{display:flex}
  html.js .nav-phone{display:flex}
  /* La barre d'appel fixe occupe déjà le bas de l'écran : on remonte au-dessus. */
  .scroll-top{bottom:78px;right:16px}
  /* Colonnes nav + téléphone repliées derrière le burger.
     `display:flex` est posé en style INLINE sur chaque colonne par le
     renderer : sans !important la règle ne peut pas gagner. */
  html.js section.el-section[class*="header-1"] > .el-row > .el-col:nth-child(2),
  html.js section.el-section[class*="header-1"] > .el-row > .el-col:nth-child(3){display:none!important}
  html.js section.el-section[class*="header-1"].nav-open > .el-row > .el-col:nth-child(2),
  html.js section.el-section[class*="header-1"].nav-open > .el-row > .el-col:nth-child(3){display:flex!important;flex:0 0 100%!important;max-width:100%!important}
  /* Ouvert : liste verticale, sous-menus dépliés et indentés. */
  .nav-open nav.el-nav-menu > ul{flex-direction:column;align-items:stretch;gap:0}
  .nav-open nav.el-nav-menu > ul > li{border-bottom:1px solid var(--line)}
  /* Un tiroir vertical se lit aligné à gauche ; le menu hérite sinon du
     centrage de la barre horizontale. */
  .nav-open nav.el-nav-menu{text-align:left}
  .nav-open .el-nav-list,.nav-open .el-nav-sub{text-align:left}
  .nav-open .el-nav-link{display:block;padding:13px 4px;text-align:left}
  .nav-open .el-nav-sub{display:block!important;padding:0 0 8px 18px!important;border:0!important;box-shadow:none!important}
  .nav-open .el-nav-sub .el-nav-item{border:0}
  .nav-open .el-nav-sub .el-nav-link{padding:9px 4px;color:var(--muted)}
  .el-nav-item.el-nav-has-sub > .el-nav-link > .el-nav-txt::after{content:none!important}
}
@media(max-width:680px){.dpe-step{font-size:11px;line-height:26px}.dpe-figures{grid-template-columns:1fr}
.works-grid{grid-template-columns:1fr}
.estimate-work-grid{grid-template-columns:1fr}.estimate-work-identity{grid-template-columns:86px minmax(0,1fr) auto}.estimate-work-identity .project-visual-photo{width:86px;height:62px}.estimate-choice-card{grid-template-columns:1fr}.estimate-choice-card>.project-visual-photo{width:100%;height:128px}.estimate-segmented{grid-template-columns:1fr}.estimate-binary-choice{grid-template-columns:1fr}
.est-head{display:none}
.est-row{grid-template-columns:1fr;gap:6px;padding:16px 18px}
.est-row span[data-l]:before{content:attr(data-l) " : ";font-weight:800;color:var(--muted);font-size:12px}}

/* footer */
.footer{background:#0F2113;color:#c3d5b7;padding:70px 0 28px}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:56px}.footer h3{font-size:14px;color:#fff;text-transform:uppercase;letter-spacing:.12em}.footer a,.footer span{display:block;margin:8px 0;font-size:14px}.footer a:hover{color:var(--lime)}.brand-footer img{filter:brightness(0) invert(1);width:150px}.brand-footer{margin-bottom:20px}.footer-grid>div:first-child p{max-width:360px}.footer-bottom{border-top:1px solid rgba(255,255,255,.13);padding-top:24px;margin-top:48px;display:flex;justify-content:space-between;font-size:12px}.mobile-call{display:none}

/* Elementor headings carry a fixed px size set in the visual editor, which has
   no responsive variant — a 56px hero H1 costs five lines on a 390px screen.
   Targeting `.el-heading` directly beats the size inherited from the widget
   wrapper without needing !important, and only inside these queries. */
@media(max-width:900px){.el-w-heading .el-heading{font-size:clamp(1.9rem,6.4vw,2.9rem)}}
@media(max-width:900px){.el-w-image-box .el-iconbox-title,.el-w-icon-box .el-heading{font-size:1.3rem}}
/* The CMS header replaces the React fallback, so `.main-nav` rules don't reach
   it — the Elementor nav needs its own tightening on small screens. */
@media(max-width:900px){.el-w-nav-menu a{font-size:13px}.el-w-nav-menu{--nav-gap:12px}}

@media(max-width:1080px){.main-nav{gap:15px}.main-nav a{font-size:14px}}
@media(max-width:980px){.main-nav{display:none}.nav-wrap{min-height:74px}.hero-grid,.page-hero-grid,.split,.content-grid,.contact-layout{grid-template-columns:1fr}.hero-grid{padding:58px 0 76px}.hero-visual>img{height:390px}.services-grid,.reviews-grid,.stats{grid-template-columns:1fr 1fr}.process-grid{grid-template-columns:1fr 1fr}.page-hero-grid{padding:62px 0}.page-hero img{display:none}.footer-grid{grid-template-columns:1fr 1fr}.section{padding:76px 0}.content-grid>aside{position:static}}
/* Bandeau fermé : on retire la réserve de place et on redescend le retour en
   haut, sinon il flotterait au-dessus d'un vide. */
html.callbar-off .mobile-call{display:none!important}
@media(max-width:980px){html.callbar-off .scroll-top{bottom:24px}}
@media(max-width:680px){html.callbar-off body{padding-bottom:0}}

@media(max-width:680px){body{padding-bottom:64px}.container{width:min(100% - 28px,1180px)}.topbar-hours,.phone-cta{display:none}.topbar-inner{justify-content:center}.brand span{display:none}.site-header{position:relative}.hero-grid{min-height:auto}.hero h1{font-size:2.5rem}.hero-visual>img{height:315px;border-radius:70px 12px 12px 12px}.trust-card{left:12px;right:12px;bottom:-24px}.services-grid,.process-grid,.reviews-grid,.stats,.ba-grid{grid-template-columns:1fr}.section-head,.cta-inner{display:block}.section-head p{margin-top:18px}.section{padding:64px 0}.split{gap:40px}.split-image>img{height:360px}.feature-stamp{right:8px;width:125px;height:125px}.process-item{border-left:0;border-top:1px solid var(--line)}.cta-inner .btn{margin-top:24px}.contact-form{grid-template-columns:1fr}.field-group.full{grid-column:auto}.labels-inner{justify-content:center;gap:24px}.labels-inner img{height:44px}.footer-grid{grid-template-columns:1fr;gap:28px}.footer-bottom{display:block}.mobile-call{display:flex;position:fixed;z-index:60;left:0;right:0;bottom:0;height:64px;background:var(--lime);color:var(--forest);align-items:center;justify-content:center;gap:10px;font-weight:800;box-shadow:0 -8px 25px rgba(22,48,27,.22)}
.mobile-call-link{display:flex;align-items:center;gap:10px;flex:1;justify-content:center;height:100%}
.mobile-call-close{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;background:transparent;color:var(--forest);opacity:.65;cursor:pointer;display:grid;place-items:center;border-radius:10px}
.mobile-call-close:active{background:rgba(22,48,27,.12)}}

/* ——— /outils/bilan-thermique : la vue « résultat ». Le diagnostic thermique
   passe en pastilles dans le bandeau (result-pills) et les CHANTIERS prennent la
   première section : c'est ce que BRETIC vend, pas une classe DPE. ——— */
.result-pills{display:flex;flex-wrap:wrap;gap:11px;margin-top:28px}
.result-pills span{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:9px 17px;font-size:14px;color:#cbdcc0}
.result-pills b{font-weight:800;color:var(--lime)}
.hero-link{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-weight:800;color:var(--lime)}
.reco-card{display:flex;flex-direction:column}
.reco-rank{align-self:flex-start;background:var(--forest);color:#fff;border-radius:999px;padding:5px 13px;margin-bottom:14px;font:800 10.5px/1.7 'Manrope';letter-spacing:.14em;text-transform:uppercase}
.reco-card.is-first .reco-rank{background:var(--lime);color:var(--forest)}
.reco-card .reco-figs{margin-top:auto}
.reco-gain{background:var(--forest)!important;color:#fff!important}
.reco-actions{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.works-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:36px}
.side-note{background:var(--sand);border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px;margin-top:36px}
.side-note h3{font-size:1.2rem;margin-bottom:10px}
.side-note p{color:var(--muted);margin:0}
.side-note a{color:var(--green);font-weight:700}
.other-list{margin:14px 0 0;padding-left:20px;color:var(--muted)}
.other-list li{margin-bottom:7px}
.other-list li:last-child{margin-bottom:0}
.bilan-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px 36px;margin-top:34px;display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:start}
.bilan-card h3{font-size:1.2rem;margin-bottom:12px}
.bilan-cost{font:800 2.2rem/1 'Manrope';color:var(--forest);margin-bottom:8px}
.bilan-cost span{font-size:1rem;font-weight:700;color:var(--muted)}
@media(max-width:980px){.bilan-card{grid-template-columns:1fr;gap:30px;padding:28px}}
@media(max-width:680px){.works-cta .btn{width:100%}.result-pills span{width:100%}.side-note{padding:22px}}
/* Le résultat est un parcours, pas une succession de blocs : cette navigation
   reste sous le header et matérialise l'étape lue, les étapes franchies et la
   progression globale. Le JS de la page ne fait que poser les classes d'état. */
.journey-progress{position:sticky;top:0;z-index:45;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);box-shadow:0 10px 32px rgba(15,33,19,.08);backdrop-filter:blur(14px)}
body:has(.site-header) .journey-progress{top:84px}
.journey-progress-inner{min-height:92px;display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:34px}
.journey-progress-summary{display:grid;gap:4px;padding-right:28px;border-right:1px solid var(--line)}
.journey-progress-summary>span{font:800 10px/1.2 'Manrope';letter-spacing:.13em;text-transform:uppercase;color:var(--green)}
.journey-progress-summary strong{font-size:14px;color:var(--forest)}
.journey-progress-summary strong b{font-size:16px}
.journey-progress-track{display:block;width:100%;height:4px;margin-top:4px;background:#e6eddf;border-radius:99px;overflow:hidden}
.journey-progress-track>i{display:block;width:20%;height:100%;background:var(--lime);border-radius:inherit;transition:width .35s ease}
.journey-progress ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.journey-progress ol:before{content:"";position:absolute;z-index:0;top:17px;left:10%;right:10%;height:2px;background:#dfe8d8}
.journey-progress li{position:relative;z-index:1;min-width:0}
.journey-progress a{display:flex;flex-direction:column;align-items:center;gap:7px;color:#778274;text-align:center}
.journey-progress a>span{display:grid;place-items:center;width:36px;height:36px;border:2px solid #dfe8d8;border-radius:50%;background:#fff;color:#778274;font:800 12px/1 'Manrope';transition:background .2s,border-color .2s,color .2s,transform .2s}
.journey-progress a>b{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:12px;white-space:nowrap}
.journey-progress a:hover>span{border-color:var(--lime);color:var(--forest);transform:translateY(-1px)}
.journey-progress li.is-complete a{color:var(--green)}
.journey-progress li.is-complete a>span{border-color:var(--green);background:var(--green);color:transparent}
.journey-progress li.is-complete a>span:after{content:"✓";position:absolute;color:#fff;font-size:15px}
.journey-progress li.is-active a{color:var(--forest)}
.journey-progress li.is-active a>span{border-color:var(--lime);background:var(--lime);color:var(--forest);box-shadow:0 0 0 5px rgba(144,197,69,.18)}
.journey-progress li.is-active a>b{font-weight:800}
.journey-section{min-height:calc(100svh - 92px);display:flex;align-items:center;padding:clamp(36px,5vh,64px) 0;scroll-margin-top:92px}
.journey-section>.container{width:min(1180px,calc(100% - 40px));min-height:calc(100svh - 192px);display:flex;flex-direction:column;justify-content:center;padding-bottom:78px}
html:has(.journey-progress){scroll-behavior:smooth}
@media(min-width:981px) and (prefers-reduced-motion:no-preference){html:has(.journey-progress){scroll-snap-type:y mandatory}.journey-section{scroll-snap-align:start;scroll-snap-stop:always}[data-cms-region="header"]{scroll-snap-align:start;scroll-snap-stop:always}[data-cms-region="footer"]{scroll-snap-align:end;scroll-snap-stop:always}}
.project-form{display:flex;flex:0 1 auto;flex-direction:column}
.journey-dock{position:fixed;z-index:58;left:50%;bottom:16px;transform:translateX(-50%);width:min(1180px,calc(100% - 40px));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:9px 11px;border:1px solid rgba(22,48,27,.14);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 16px 45px rgba(15,33,19,.18);backdrop-filter:blur(14px);transition:opacity .25s,transform .25s}
.journey-dock.is-footer-visible{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 40px))}
.journey-dock [hidden]{display:none!important}
.journey-dock-button{min-height:52px;display:flex;align-items:center;gap:11px;padding:6px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--forest);font-family:inherit;cursor:pointer}
.journey-dock-button>span{display:grid;gap:1px;text-align:left}
.journey-dock-button small,.journey-dock-call small{font-size:10.5px;color:var(--muted)}
.journey-dock-button strong,.journey-dock-call strong{font-size:13px}
.journey-dock-prev{grid-column:1;justify-self:start}
.journey-dock-next{grid-column:3;justify-self:end;border-color:var(--lime);background:var(--lime);box-shadow:0 10px 26px rgba(144,197,69,.26)}
.journey-dock-call{grid-column:2;display:flex;align-items:center;gap:10px;padding:7px 16px;border-radius:11px;color:var(--forest);transition:background .2s}
.journey-dock-call:hover{background:var(--mint)}
.journey-dock-call>span{display:grid;gap:1px}
main:has(.journey-dock){padding-bottom:88px}
.project-choice-intro{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-top:8px}
.project-choice-intro>p{max-width:770px;margin:0;color:var(--muted)}
.project-choice-intro>p strong{color:var(--forest)}
.project-selection-summary{flex:0 0 auto;display:grid;gap:2px;min-width:190px;padding:10px 14px;border-radius:11px;background:var(--forest);color:#fff}
.project-selection-summary span{font-size:10px;color:#cbdcc0;text-transform:uppercase;letter-spacing:.1em}
.project-selection-summary strong{font-size:13px;color:var(--lime)}
.project-selection-summary small{max-width:205px;font-size:9.5px;line-height:1.25;color:#cbdcc0}
.project-grid{margin-top:20px}
.project-carousel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:15px 0 -7px;color:var(--muted);font-size:12px;font-weight:700}
.project-carousel-toolbar>div{display:flex;align-items:center;gap:10px}
.project-carousel-toolbar strong{min-width:70px;color:var(--forest);text-align:center;font-size:12px}
.project-carousel-toolbar button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--forest);font:800 16px/1 'Manrope';cursor:pointer}
.project-carousel-toolbar button:hover:not(:disabled){border-color:var(--lime);background:var(--lime)}
.project-carousel-toolbar button:disabled{opacity:.35;cursor:default}
.project-grid.project-carousel{display:flex;grid-template-columns:none;align-items:flex-start;gap:18px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none}
.project-grid.project-carousel::-webkit-scrollbar{display:none}
.project-grid.project-carousel>[data-project-card]{flex:0 0 calc((100% - 18px)/2);scroll-snap-align:start;scroll-snap-stop:always}
.project-grid .reco-card{padding:0;overflow:hidden}
.project-card,.ventilation-card{border:2px solid #dbe5d2;transition:border-color .2s,box-shadow .2s,transform .2s}
.project-card:has(.project-toggle input:checked),.project-card.is-project-selected{border-color:var(--lime);box-shadow:0 14px 38px rgba(64,112,22,.12)}
.project-card:has(.project-toggle input:not(:checked)){opacity:.72}
.project-card-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px 13px;align-items:center;padding:15px 18px;background:linear-gradient(135deg,#f6faed,#fff);border-bottom:1px solid var(--line)}
.project-card-header .project-toggle{grid-column:1/-1;width:100%;justify-content:center}
.project-visual{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;color:var(--forest)}
.project-visual-roof{background:#dff0c7}.project-visual-wall{background:#f3e5cf}.project-visual-air{background:#dceff0}
.project-visual-photo{position:relative;display:block;width:124px;height:78px;overflow:hidden;border:1px solid rgba(22,48,27,.1);border-radius:13px;background:#fff}
.project-visual-photo>img{display:block;width:100%;height:100%;object-fit:cover}
.project-visual-photo>span{position:absolute;left:7px;bottom:7px;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.92);color:var(--forest);box-shadow:0 5px 14px rgba(22,48,27,.16);backdrop-filter:blur(6px)}
.project-card-title{min-width:0}.project-card-title>span{display:block;margin-bottom:3px;font-size:10px;font-weight:800;color:var(--green);text-transform:uppercase;letter-spacing:.1em}
.project-card-title h3{margin:0!important;font-size:1.2rem}
.project-toggle{display:flex;align-items:center;gap:8px;margin:0;padding:9px 11px;border-radius:10px;background:var(--sand);color:var(--forest);font-weight:800;font-size:12px;cursor:pointer;white-space:nowrap}
.project-toggle input,.ventilation-options input{width:20px;height:20px;margin:0;accent-color:var(--green);cursor:pointer}
.project-toggle:has(input:checked){background:#e7f3d5;color:var(--green)}
.project-card-content{display:flex;flex:1;flex-direction:column;padding:15px 18px 17px;transition:opacity .2s}
.project-card:not(:has(.project-toggle input:checked)) .project-card-content{opacity:.48}
.project-reason{min-height:42px;margin:0 0 10px!important;color:var(--muted)}
.project-house-visual{position:relative;display:flex;flex:1;align-items:center;justify-content:center;min-height:130px;margin:-4px 0 7px;overflow:hidden;border-radius:12px;background:linear-gradient(135deg,#f5f8f0,#eef5e3)}
.project-house-visual img{width:56%;height:126px;object-fit:contain;object-position:center}
.project-house-visual>span{display:grid;gap:3px;max-width:190px;padding-right:16px;font-size:11.5px;line-height:1.45;color:var(--muted)}
.project-house-visual strong{font-size:12px;color:var(--forest)}
.project-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:3px 0 2px}
.project-metric{display:grid;align-content:center;gap:4px;min-height:72px;padding:10px 11px;border-radius:11px;background:var(--sand)}
.project-metric small{font-size:10.5px;line-height:1.25;color:var(--muted)}
.project-metric strong{font-size:13px;line-height:1.25;color:var(--forest)}
.project-metric-saving{background:var(--forest)}
.project-metric-saving small{color:#cbdcc0}.project-metric-saving strong{color:#fff}
.project-metric-energy{background:#e7f3d5}.project-metric-energy strong{color:var(--green)}
.project-metric-cost{border:1px solid #dce5d3;background:#fff}
.ventilation-card{background:#fff}
.ventilation-options{display:grid;gap:7px;margin:12px 0}
.ventilation-options label{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.ventilation-options label:has(input:checked){border-color:var(--lime);box-shadow:0 0 0 3px rgba(144,197,69,.16)}
.ventilation-options span{display:grid;gap:2px}
.ventilation-options b{font-size:13px;color:var(--forest)}
.ventilation-options small{font-size:11.5px;color:var(--muted)}
.project-details{padding:14px 18px}
.project-details summary{cursor:pointer;color:var(--forest);font-weight:800}
.project-details[open] summary{margin-bottom:12px}
.technician-details{margin-top:14px}
#travaux .eyebrow{margin-bottom:9px}
#travaux .project-form>h2{font-size:clamp(2rem,3.5vw,3.2rem)}
#travaux .project-form>p{margin-bottom:0}
.empty-project{max-width:760px;margin-top:32px;padding:32px 34px;border:1px solid var(--line);border-radius:var(--radius);background:var(--sand)}
.empty-project h3{margin-bottom:10px}
.empty-project p{color:var(--muted);margin-bottom:20px}
.budget-pending{display:flex;gap:10px;align-items:flex-start;max-width:760px;margin:20px 0 -4px;padding:13px 15px;border-radius:11px;background:#edf5df;color:var(--forest);font-size:13px}
.budget-pending svg{flex:0 0 auto;margin-top:1px;color:var(--green)}
.conversion-choice{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:center;margin-top:28px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--sand)}
.conversion-choice>div,.call-choice{display:flex;align-items:center;gap:13px}
.conversion-choice p,.conversion-choice span{margin:0}
.conversion-choice p{display:grid;gap:3px}
.conversion-choice small{display:block;color:var(--muted);font-size:12px}
.conversion-choice-icon{display:grid!important;place-items:center;flex:0 0 42px;height:42px;border-radius:50%;background:var(--lime);color:var(--forest)}
.conversion-or{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--muted)}
.call-choice{padding:13px 16px;border-radius:12px;background:var(--forest);color:#fff}
.call-choice>span{display:grid;gap:2px}
.call-choice small{color:#cbdcc0}
.call-choice strong{font-size:18px;color:var(--lime)}
.devis-call-card{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;align-items:center;margin:-8px -8px 26px;padding:18px;border-radius:14px;background:#fff;border:1px solid #dceac6}
.devis-call-card>svg{grid-row:1/3;color:var(--green)}
.devis-call-card>div{display:grid;gap:2px}
.devis-call-card>div span{font-size:12px;color:var(--muted)}
.devis-call-card .btn{grid-column:1/-1;margin-top:9px}
.inline-link{color:var(--green);font-weight:700;text-decoration:underline}
.chiffrage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}
.chiffrage-grid .est-total{display:flex;flex-direction:column;justify-content:center;gap:6px}
.devis-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:start;margin-top:8px}
.devis-grid>aside{background:var(--mint);border-radius:var(--radius);padding:22px;margin-top:26px}
.devis-grid>aside h3{margin-bottom:12px}
.contact-wizard{display:block}
.contact-wizard-progress{display:grid;gap:7px;margin-bottom:20px}
.contact-wizard-progress>span{font-size:11px;font-weight:800;color:var(--green);text-transform:uppercase;letter-spacing:.08em}
.contact-wizard-progress>i{display:block;height:5px;overflow:hidden;border-radius:999px;background:#e4ebde}
.contact-wizard-progress>i>i{display:block;width:50%;height:100%;border-radius:inherit;background:var(--lime);transition:width .25s ease}
.contact-wizard-step{margin:0;padding:0;border:0}
.contact-wizard-step[hidden]{display:none!important}
.contact-wizard-step legend{padding:0;font:800 1.35rem/1.25 'Manrope';color:var(--ink)}
.contact-wizard-step>p{margin:5px 0 18px;color:var(--muted);font-size:13px}
.contact-wizard-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px 18px}
.contact-wizard .field-group textarea{min-height:92px}
.contact-wizard-step[data-contact-step="2"] .contact-wizard-fields{gap:10px 14px}
.contact-wizard-step[data-contact-step="2"] .field-group{gap:4px}
.contact-wizard-step[data-contact-step="2"] .field-group input,.contact-wizard-step[data-contact-step="2"] .field-group select{padding:10px 12px}
.contact-optional{grid-column:1/-1;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--sand)}
.contact-optional summary{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--forest);font-size:12px;font-weight:800;cursor:pointer}
.contact-optional summary span{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.contact-optional[open] summary{margin-bottom:10px}
.contact-wizard-actions{display:flex;justify-content:flex-end;margin-top:20px}
.contact-wizard-actions.is-split{justify-content:space-between;gap:12px}
.devis-summary{display:grid;gap:10px}
.devis-summary-item{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;padding:10px;border:1px solid #d7e5cc;border-radius:13px;background:#fff}
.devis-summary-item>span:last-child{display:grid;gap:2px;min-width:0}
.devis-summary-item small{font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.devis-summary-item strong{color:var(--forest);font-size:14px}
.devis-summary-item em{overflow:hidden;color:var(--muted);font-size:11.5px;font-style:normal;line-height:1.4;text-overflow:ellipsis}
.devis-dpe-badge,.devis-summary-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:var(--dpe-color);color:#fff;font:800 1.45rem/1 'Manrope';box-shadow:0 7px 18px color-mix(in srgb,var(--dpe-color) 30%,transparent)}
.devis-summary-icon{background:var(--lime);color:var(--forest);box-shadow:none}
.devis-summary-icon.is-budget{background:var(--forest);color:var(--lime);font-size:19px}
#devis .conversion-choice{margin-top:18px;padding:13px 16px}
#devis .contact-wizard{margin-top:18px!important}
#devis .contact-wizard-progress{margin-bottom:12px}
#devis .contact-wizard-step>p{margin:3px 0 12px}
#devis .contact-wizard-actions{margin-top:12px}
#devis .contact-wizard-step[data-contact-step="2"] .contact-wizard-actions{margin-top:0}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
#aides .bilan-card{background:#fff}
@media(max-width:980px){.chiffrage-grid{grid-template-columns:1fr 1fr}.devis-grid{grid-template-columns:1fr;gap:0}}
@media(max-width:980px){body:has(.site-header) .journey-progress{top:74px}.journey-progress-inner{grid-template-columns:150px minmax(0,1fr);gap:18px}.journey-progress-summary{padding-right:18px}.journey-section{scroll-margin-top:92px}.conversion-choice{grid-template-columns:1fr}.conversion-or{display:none}}
@media(min-width:981px) and (max-height:850px){.journey-section{padding:18px 0}.journey-section>.container{min-height:calc(100svh - 128px);padding-bottom:68px}#travaux .eyebrow{display:none}#travaux .project-form>h2{font-size:2.45rem}#travaux .project-choice-intro{margin-top:3px}#travaux .project-choice-intro>p{font-size:13px;line-height:1.45}#travaux .project-selection-summary{padding:7px 11px}#travaux .project-carousel-toolbar{margin-top:6px}#travaux .project-grid{margin-top:8px}#travaux .project-card-header{padding:8px 12px;gap:6px 10px}#travaux .project-card-header .project-toggle{padding:6px 9px}#travaux .project-visual{width:42px;height:42px}#travaux .project-visual-photo{width:86px;height:54px}#travaux .project-visual-photo>span{left:5px;bottom:5px;width:28px;height:28px}#travaux .project-card-content{padding:8px 12px 10px}#travaux .project-reason{min-height:0;margin-bottom:5px!important;font-size:12px;line-height:1.35}#travaux .project-house-visual{display:none}#travaux .project-metric{min-height:56px;padding:7px 9px}#travaux .project-metric small{font-size:9.5px}#travaux .ventilation-options{gap:4px;margin:5px 0}#travaux .ventilation-options label{padding:5px 8px}#travaux .ventilation-options span{display:flex;align-items:center;justify-content:space-between;gap:10px}#travaux .ventilation-options small{white-space:nowrap}#travaux .reco-actions{margin-top:5px;padding-top:6px}#travaux .technician-details{display:none}#chiffrage .est-table{margin-top:20px}.journey-dock{padding:7px 9px}.journey-dock-button{min-height:46px}}
@media(min-width:981px) and (max-height:850px){#devis .eyebrow,#devis>.container>p{display:none}#devis>.container>h2{font-size:2.35rem}#devis .conversion-choice{margin-top:12px;padding:10px 14px}#devis .devis-grid{margin-top:0}#devis .devis-grid>aside{margin-top:14px;padding:18px}#devis .devis-grid>aside h3{margin-bottom:10px;font-size:1.15rem}#devis .contact-wizard{margin-top:14px!important}#devis .contact-wizard-progress{margin-bottom:8px}#devis .contact-wizard-step legend{font-size:1.15rem}#devis .contact-wizard-step>p{display:none}#devis .contact-wizard-fields{gap:7px 12px}#devis .field-group{gap:4px}#devis .field-group input,#devis .field-group select,#devis .field-group textarea{padding:8px 10px}#devis .contact-wizard .field-group textarea{min-height:64px}#devis .contact-wizard-actions{margin-top:7px}#devis .contact-wizard-actions .btn{padding:9px 13px}#devis .devis-summary{gap:6px}#devis .devis-summary-item{grid-template-columns:40px minmax(0,1fr);padding:7px 9px}#devis .devis-dpe-badge,#devis .devis-summary-icon{width:40px;height:40px}}
@media(min-width:981px){#travaux:has(.project-carousel) .technician-details{display:none}#travaux .project-carousel .ventilation-options{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}#travaux .project-carousel .ventilation-options label{grid-template-columns:18px minmax(0,1fr);gap:7px;align-items:start}#travaux .project-carousel .ventilation-options span{display:grid;gap:3px}#travaux .project-carousel .ventilation-options small{white-space:normal}}
@media(max-width:680px){body:has(.journey-dock) .mobile-call{display:none!important}.chiffrage-grid{grid-template-columns:1fr}.journey-progress,body:has(.site-header) .journey-progress{top:0}.journey-progress-inner{display:block;width:100%;min-height:72px;padding:0 14px}.journey-progress-summary{display:none}.journey-progress ol{display:flex;overflow-x:auto;gap:4px;padding:10px 0 8px;scrollbar-width:none;scroll-snap-type:x proximity}.journey-progress ol::-webkit-scrollbar{display:none}.journey-progress ol:before{display:none}.journey-progress li{flex:0 0 104px;scroll-snap-align:center}.journey-progress a{gap:5px}.journey-progress a>span{width:32px;height:32px}.journey-progress a>b{font-size:10.5px}.journey-section{min-height:calc(100svh - 72px);padding:34px 0;scroll-margin-top:72px}.journey-section>.container{width:min(100% - 28px,1180px);min-height:calc(100svh - 140px);padding-bottom:74px}.journey-dock{bottom:8px;width:calc(100% - 18px);grid-template-columns:1fr auto 1fr;gap:5px;padding:6px;border-radius:14px}.journey-dock-button{min-height:48px;padding:5px 9px}.journey-dock-button small{display:none}.journey-dock-button strong{font-size:11px}.journey-dock-prev{justify-self:stretch}.journey-dock-next{justify-self:stretch}.journey-dock-call{padding:7px 9px}.journey-dock-call small{display:none}.journey-dock-call strong{font-size:0}.journey-dock-call strong:after{content:"Appeler";font-size:11px}.project-choice-intro{display:block}.project-choice-intro>p{font-size:14px}.project-selection-summary{margin-top:12px;min-width:0}.project-grid{margin-top:18px}.project-grid .reco-card{padding:0}.project-card-header{grid-template-columns:auto minmax(0,1fr);padding:14px}.project-card-header .project-toggle{grid-column:1/-1;justify-content:center}.project-visual{width:48px;height:48px}.project-card-content{padding:14px}.project-reason{min-height:0}.project-house-visual{display:none}.conversion-choice{padding:15px}.call-choice{width:100%}.empty-project{padding:24px}}
@media(max-width:680px){.project-carousel-toolbar{margin-top:14px}.project-carousel-toolbar>span{display:none}.project-grid.project-carousel>[data-project-card]{flex-basis:100%}.project-visual-photo{width:96px;height:64px}.project-visual-photo>span{left:5px;bottom:5px;width:29px;height:29px}.project-metrics{grid-template-columns:1fr 1fr}.project-metric-cost{grid-column:1/-1}.project-metric{min-height:64px}}
@media(max-width:680px){.contact-wizard-fields{grid-template-columns:1fr;gap:13px}.contact-wizard-actions,.contact-wizard-actions.is-split{display:grid;grid-template-columns:1fr;gap:9px}.contact-wizard-actions .btn{width:100%}.contact-wizard-actions.is-split .btn-outline{order:2}.devis-grid>aside{order:-1;margin:22px 0 18px;padding:20px}#devis .contact-wizard{margin-top:0!important}.devis-summary-item{grid-template-columns:44px minmax(0,1fr);padding:10px}.devis-dpe-badge,.devis-summary-icon{width:44px;height:44px}}
.services-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.services-grid.cols-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:980px){.services-grid.cols-2,.services-grid.cols-3{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.services-grid.cols-2,.services-grid.cols-3{grid-template-columns:1fr}}
