/* Lafleur r3 — composition only. Load after the two existing stylesheets.
   Existing original logos, Inter files, palette and shared page styles stay intact. */
.r3-hero,.r3-services,.r3-approach,.r3-zones,.r3-faq,.r3-cta{--r3-space:clamp(44px,5vw,72px);font-family:Inter,Arial,sans-serif}
.r3-hero .container,.r3-services .container,.r3-approach .container,.r3-zones .container,.r3-faq .container,.r3-cta .container{width:min(1280px,calc(100% - 64px));margin-inline:auto}
.r3-services,.r3-approach,.r3-zones,.r3-faq{padding-block:var(--r3-space)}
.r3-services .section-title,.r3-approach .section-title,.r3-zones .section-title,.r3-faq .section-title,.r3-cta .section-title{font-size:clamp(28px,3.1vw,42px);line-height:1.16;letter-spacing:-.035em;font-weight:700;margin:0;max-width:none;color:#1B1AFF}
.r3-hero a,.r3-services a,.r3-approach a,.r3-zones a,.r3-cta a{min-height:44px}
.r3-hero .text-link,.r3-services .text-link,.r3-approach .text-link,.r3-zones .text-link{display:inline-flex;align-items:center}
.r3-hero :focus-visible,.r3-cta :focus-visible{outline-color:#E57716;outline-offset:5px}
.r3-services :focus-visible,.r3-approach :focus-visible,.r3-zones :focus-visible,.r3-faq :focus-visible{outline:3px solid #1B1AFF;outline-offset:5px}

/* Text left / real source photo right; no padded white mat inside the photo. */
.brand-hero.r3-hero{background:#1E3A8A;color:#FFFFFF;padding-block:clamp(36px,4vw,58px)}
.brand-hero.r3-hero .hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.97fr);gap:clamp(28px,4.5vw,64px);align-items:center}
.brand-hero.r3-hero .hero-copy{padding:0;min-width:0;text-align:left}
.brand-hero.r3-hero .eyebrow{color:#FFFFFF;justify-content:flex-start;margin:0 0 18px;font-size:11px}
.brand-hero.r3-hero h1{font-size:clamp(35px,4.2vw,58px);line-height:1.1;letter-spacing:-.035em;margin-bottom:22px}
.brand-hero.r3-hero h1 em{display:block;color:#E57716}
.brand-hero.r3-hero h1 .hero-ending{font-size:.58em;line-height:1.3;margin-top:15px;max-width:20ch}
.brand-hero.r3-hero .lead{font-size:clamp(15px,1.25vw,17px);line-height:1.75;max-width:52ch;margin:0 0 24px;color:#FFFFFF}
.brand-hero.r3-hero .actions{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px 22px;flex-wrap:wrap}
.brand-hero.r3-hero .btn{background:#C5630C;color:#FFFFFF;min-height:54px;padding:14px 22px;font-size:19px;gap:18px;white-space:normal;max-width:100%}
.brand-hero.r3-hero .btn:hover{background:#101214}
.brand-hero.r3-hero .text-link{color:#FFFFFF;font-size:14px}
.brand-hero.r3-hero .brand-proof{margin-top:20px;gap:8px 20px;justify-content:flex-start;font-size:11px;line-height:1.6}
.brand-hero.r3-hero .brand-proof span{min-width:0;gap:7px}
.brand-hero.r3-hero .brand-proof .icon{color:#E57716;flex-shrink:0}
.brand-hero.r3-hero .hero-figure{margin:0;padding:0;border:0;border-radius:0;min-width:0;background:transparent}
.brand-hero.r3-hero .hero-photo{display:block;width:100%;height:clamp(340px,34vw,472px);object-fit:cover;object-position:center;border-radius:16px}
.brand-hero.r3-hero .photo-credit{font-size:10px;line-height:1.5;margin:8px 0 0;padding:0;color:#FFFFFF;text-align:left}

/* The recognizable métier grid remains; the heading is independently centered. */
.r3-services{background:#FFFFFF}
.r3-services .original-services-panel{padding:clamp(24px,3vw,40px);border-radius:20px;background:#F5F8FE}
.r3-services__heading{display:block;text-align:center;max-width:800px;margin:0 auto 28px}
.r3-services__heading .eyebrow{justify-content:center;margin-bottom:12px}
.r3-services__heading .section-title{max-width:700px;margin-inline:auto}
.r3-services__heading .services-intro{max-width:58ch;margin:14px auto 0;font-size:15px;line-height:1.7;color:#333333}
.r3-services .original-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.r3-services .original-service-card{min-width:0;min-height:248px;padding:24px 22px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow-wrap:anywhere}
.r3-services .original-service-icon{margin-bottom:14px;width:50px;height:50px;flex-shrink:0}
.r3-services .original-service-card h3{font-size:19px;line-height:1.3;margin-bottom:10px}
.r3-services .original-service-card p{font-size:13px;line-height:1.7;margin-bottom:10px}
.r3-services .original-service-card .card-link{min-height:44px;font-size:12px;gap:8px}
.r3-services .original-treatment{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;gap:16px 24px;margin-top:16px;min-width:0}
.r3-services .original-treatment>div{min-width:0}
.r3-services .original-treatment h3{font-size:21px;line-height:1.3}
.r3-services .original-treatment .text-link{flex-shrink:0;font-size:13px}
.r3-services__all{display:flex;justify-content:center;margin-top:14px}

/* Deliberately opposite the hero: photograph FIRST, explanatory content second. */
.r3-approach{background:#F5F8FE}
.r3-approach__layout{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:clamp(28px,4.5vw,64px);align-items:center}
.r3-approach__media{margin:0;min-width:0}
.r3-approach__photo{display:block;width:100%;height:auto;aspect-ratio:1.04;object-fit:cover;object-position:center;border-radius:16px}
.r3-approach__media figcaption{font-size:10px;line-height:1.5;color:#333333;margin-top:8px}
.r3-approach__copy{min-width:0;text-align:left}
.r3-approach__copy .eyebrow{margin-bottom:14px;justify-content:flex-start}
.r3-approach__copy .section-title{max-width:19ch}
.r3-approach__intro{font-size:15px;line-height:1.75;color:#333333;margin-top:18px;max-width:60ch}
.r3-approach__steps{display:grid;margin:20px 0 12px;padding:0;list-style:none;counter-reset:none}
.r3-approach__steps li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;padding:13px 0;border-top:1px solid #E7E7E7}
.r3-approach__number{font-size:12px;line-height:1.5;color:#1B1AFF;font-weight:700;padding-top:3px}
.r3-approach__steps h3{font-size:17px;line-height:1.35;letter-spacing:-.02em;color:#181B1F}
.r3-approach__steps p{font-size:13px;line-height:1.65;color:#333333;margin-top:5px}
.r3-approach__copy>.text-link{font-size:13px;margin-top:0}

/* A second title-left/content-right block is avoided on service interiors as well. */
.service-details .service-split{display:block;text-align:center;max-width:1040px;margin-inline:auto}
.service-details .eyebrow{justify-content:center}
.service-details .section-title{max-width:27ch;margin-inline:auto;font-size:clamp(28px,3.1vw,42px);line-height:1.16;text-align:center}
.service-details .lead{max-width:760px;margin-inline:auto;font-size:16px}
.service-details .check-list{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;max-width:1000px;margin:28px auto 0}
.service-details .check-list li{margin:0;max-width:100%;border:1px solid #E7E7E7;border-radius:26px;padding:10px 16px;background:#FFFFFF;font-size:14px;line-height:1.6;text-align:left;gap:9px}
.service-details .check-list li:before{font-size:14px;flex-shrink:0}
.service-details .scope-note{max-width:760px;margin:22px auto 0;border:0;padding:0;font-size:13px;line-height:1.8;text-align:center}

/* No title-left/towns-right repetition: all towns participate in one centered band. */
.r3-zones{background:#F5F8FE}
.r3-zones__inner{text-align:center}
.r3-zones__heading{max-width:800px;margin-inline:auto;text-align:center}
.r3-zones__heading .eyebrow{justify-content:center;margin-bottom:12px}
.r3-zones__heading .section-title{max-width:24ch;margin-inline:auto}
.r3-zones__heading>p:not(.eyebrow){font-size:15px;line-height:1.75;color:#333333;max-width:62ch;margin:16px auto 0}
.r3-zones__heading .r3-zones__location{display:flex;align-items:center;justify-content:center;gap:8px;color:#1B1AFF!important;font-size:12px!important;font-weight:650;margin-top:12px!important}
.r3-zones__towns{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:25px auto 0;padding:0;list-style:none;max-width:980px}
.r3-zones__towns li{min-width:0;max-width:100%}
.r3-zones__towns a{display:flex;align-items:center;justify-content:center;gap:13px;min-height:46px;padding:10px 17px;background:#FFFFFF;border:1px solid #E7E7E7;border-radius:30px;color:#181B1F;font-size:13px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.r3-zones__towns a .icon{width:15px;height:15px;flex-shrink:0;color:#1B1AFF}
.r3-zones__towns a:hover{border-color:#1B1AFF;color:#1B1AFF}
.r3-zones__note{font-size:12px;line-height:1.7;color:#333333;max-width:70ch;margin:18px auto 0}
.r3-zones__inner>.text-link{margin-top:10px;font-size:13px}

/* Title ABOVE accordion, never beside it; no secondary contact action here. */
.r3-faq{background:#FFFFFF}
.r3-faq .r3-faq__inner{max-width:850px}
.r3-faq__heading{display:block;text-align:center;max-width:730px;margin:0 auto 28px}
.r3-faq__heading .eyebrow{justify-content:center;margin-bottom:12px}
.r3-faq__heading>p:not(.eyebrow){font-size:15px;line-height:1.75;color:#333333;margin-top:14px}
.r3-faq .faq-list{display:block;width:100%;margin:0;border-top:1px solid #E7E7E7;text-align:left}
.r3-faq .faq-list details{border-bottom:1px solid #E7E7E7}
.r3-faq .faq-list summary{min-height:66px;padding:18px 4px;gap:18px;font-size:15px;line-height:1.6;font-weight:650;color:#181B1F;overflow-wrap:anywhere}
.r3-faq .faq-list summary:after{flex:0 0 28px;color:#1B1AFF}
.r3-faq .faq-list details p{padding:0 46px 21px 4px;font-size:14px;line-height:1.8;color:#333333;max-width:78ch;overflow-wrap:anywhere}

/* One actual brand-blue panel, centered as a whole (not a split contact band). */
.r3-cta{padding:0 0 var(--r3-space);background:#FFFFFF}
.r3-cta__panel{padding:clamp(30px,4vw,54px) clamp(20px,4vw,50px);border-radius:20px;background:#1E3A8A;color:#FFFFFF;text-align:center}
.r3-cta__content{display:flex;flex-direction:column;align-items:center;width:100%;max-width:740px;min-width:0;margin-inline:auto;text-align:center}
.r3-cta .eyebrow{justify-content:center;color:#FFFFFF;margin-bottom:14px}
.r3-cta .section-title{color:#FFFFFF;max-width:25ch}
.r3-cta__content>p:not(.eyebrow):not(.r3-cta__notice){font-size:15px;line-height:1.75;color:#FFFFFF;max-width:60ch;margin-top:17px}
.r3-cta__actions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;width:100%;margin-top:25px}
.r3-cta .btn{min-height:54px;background:#1B1AFF;color:#FFFFFF;max-width:100%;white-space:normal;font-size:15px;gap:20px;padding:14px 24px}
.r3-cta .btn:hover{background:#101214}
.r3-cta__phone{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;font-size:18px;font-weight:700;color:#FFFFFF;max-width:100%;overflow-wrap:anywhere}
.r3-cta__phone .icon{width:19px;height:19px}
.r3-cta__notice{font-size:11px;line-height:1.6;margin-top:12px;color:#FFFFFF}

@media(max-width:1049px){
 .brand-hero.r3-hero .hero-layout{gap:30px}
 .brand-hero.r3-hero .hero-photo{height:410px}
 .brand-hero.r3-hero .actions{gap:10px 17px}
 .brand-hero.r3-hero .btn{font-size:19px;padding-inline:19px}
 .r3-services .original-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .r3-services .original-service-card{min-height:230px}
 .r3-services .original-treatment{flex-wrap:wrap}
 .r3-approach__layout{gap:32px}
}
@media(max-width:899px){
 .r3-approach__layout{grid-template-columns:minmax(0,1fr)}
 .r3-approach__media{max-width:680px;width:100%;margin-inline:auto}
 .r3-approach__photo{aspect-ratio:16/10;max-height:420px}
 .r3-approach__copy{max-width:680px;width:100%;margin-inline:auto}
 .r3-approach__copy .section-title{max-width:24ch}
}
@media(max-width:767px){
 .r3-hero .container,.r3-services .container,.r3-approach .container,.r3-zones .container,.r3-faq .container,.r3-cta .container{width:calc(100% - 40px)}
 .brand-hero.r3-hero .hero-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
 .brand-hero.r3-hero .hero-copy{text-align:left;max-width:590px}
 .brand-hero.r3-hero h1{font-size:clamp(35px,7.8vw,48px)}
 .brand-hero.r3-hero h1 .hero-ending{font-size:.62em;max-width:25ch}
 .brand-hero.r3-hero .eyebrow{font-size:10px;justify-content:flex-start}
 .brand-hero.r3-hero .hero-photo{height:auto;aspect-ratio:4/3;max-height:420px}
 .brand-hero.r3-hero .lead{font-size:15px;max-width:56ch}
 .brand-hero.r3-hero .brand-proof{justify-content:flex-start;gap:8px 16px;margin-top:17px}
 .r3-services .original-services-panel{padding:26px 18px}
 .r3-services__heading{margin-bottom:24px}
 .r3-services__heading .services-intro{font-size:14px}
 .r3-services .original-service-grid{gap:13px}
 .r3-services .original-service-card{padding:22px 16px 15px;min-height:0}
 .r3-services .original-service-card h3{font-size:18px}
 .r3-services .original-treatment{align-items:flex-start;flex-direction:column;gap:10px;padding:20px}
 .r3-services .original-treatment h3{font-size:19px}
 .r3-services .original-treatment .text-link{flex-shrink:1}
 .r3-approach__layout{gap:25px}
 .r3-approach__intro{font-size:14px;margin-top:15px}
 .r3-approach__steps{margin-top:17px}
 .r3-zones__towns{gap:8px;margin-top:22px}
 .r3-zones__towns a{padding:10px 14px;font-size:12px;gap:9px}
 .r3-faq__heading{margin-bottom:24px}
 .r3-faq .faq-list summary{font-size:14px;gap:12px;min-height:64px}
 .r3-faq .faq-list details p{padding-right:22px;font-size:13px}
 .r3-cta__panel{border-radius:16px}
 .r3-cta__phone{font-size:17px}
}
@media(max-width:559px){
 .r3-services .original-service-grid{grid-template-columns:minmax(0,1fr)}
 .r3-services .original-service-card{display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:15px;row-gap:2px;align-items:center;text-align:left;padding:16px 17px}
 .r3-services .original-service-icon{width:42px;height:42px;margin:0;grid-column:1;grid-row:1/3;align-self:center}
 .r3-services .original-service-icon .icon{width:25px;height:25px}
 .r3-services .original-service-card h3{grid-column:2;margin:0;font-size:17px;line-height:1.35;overflow-wrap:normal}
 .r3-services .original-service-card p{display:none}
 .r3-services .original-service-card .card-link{grid-column:2;margin:0;justify-content:flex-start;min-height:44px;font-size:11px;line-height:1.5;gap:7px}
 .r3-services .original-service-card .card-link .icon{width:16px;height:16px;flex-shrink:0}
}
@media(max-width:359px){
 .r3-hero .container,.r3-services .container,.r3-approach .container,.r3-zones .container,.r3-faq .container,.r3-cta .container{width:calc(100% - 32px)}
 .brand-hero.r3-hero .actions{flex-direction:column;align-items:flex-start;gap:8px}
 .brand-hero.r3-hero .btn{font-size:19px;gap:16px}
 .brand-hero.r3-hero .brand-proof{font-size:10px}
 .r3-services .original-services-panel{padding:24px 14px}
 .r3-services .original-service-card{padding-inline:17px}
 .r3-services .original-treatment{padding:18px 16px}
 .r3-services .original-treatment .text-link{font-size:12px;gap:9px}
 .r3-cta .btn{padding-inline:17px;gap:12px;font-size:14px}
 .r3-cta__phone{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
 .r3-hero *,.r3-services *,.r3-approach *,.r3-zones *,.r3-faq *,.r3-cta *{animation:none!important;transition:none!important}
 .r3-hero a:hover,.r3-hero a:active,.r3-services a:hover,.r3-services a:active,.r3-approach a:hover,.r3-zones a:hover,.r3-cta a:hover,.r3-cta a:active,
 .r3-hero .text-link:hover svg,.r3-services .text-link:hover svg,.r3-approach .text-link:hover svg,.r3-zones .text-link:hover svg{transform:none!important}
}
@media print{
 .brand-hero.r3-hero,.r3-cta__panel{background:#FFFFFF;color:#181B1F}
 .brand-hero.r3-hero h1,.brand-hero.r3-hero .lead,.brand-hero.r3-hero .eyebrow,.brand-hero.r3-hero .brand-proof,.brand-hero.r3-hero .photo-credit,.r3-cta .section-title,.r3-cta .eyebrow,.r3-cta__notice{color:#181B1F}
 .r3-services,.r3-approach,.r3-zones,.r3-faq{padding-block:24px}
 .r3-cta{display:none}
}
