@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600&display=swap');

:root { --navy:#0739b9; --navy-2:#0051f5; --copper:#ffc400; --cream:#ffc400; --white:#fff; --ink:#032b87; --muted:#173e8f; --line:rgba(3,43,135,.24); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"Manrope",sans-serif; font-size:16px; line-height:1.65; }
a { color:inherit; text-decoration:none; }
.urgency-bar { position:absolute; z-index:11; inset:0 0 auto; min-height:42px; display:flex; align-items:center; justify-content:center; gap:18px; padding:8px 20px; background:var(--copper); color:#04266f; font-size:.78rem; font-weight:700; letter-spacing:.02em; }
.urgency-bar a { border-bottom:1px solid currentColor; }.urgency-bar b { margin-left:6px; }
.site-header { position:fixed; z-index:10; top:42px; left:0; width:100%; height:96px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(24px,5vw,76px); color:white; border-bottom:1px solid rgba(255,255,255,.22); transition:top .25s,height .25s,background .25s,box-shadow .25s; }
.site-header.is-scrolled { top:0; height:76px; background:rgba(0,42,143,.97); box-shadow:0 10px 35px rgba(0,25,95,.24); backdrop-filter:blur(12px); }
.brand { display:flex; align-items:center; gap:14px; line-height:1; }
.brand b { display:block; font-family:"DM Sans",sans-serif; font-size:1.15rem; letter-spacing:.12em; }
.brand b span { color:#fff; }.brand b em { color:var(--copper); font-style:normal; }
.brand small { display:block; margin-top:7px; color:var(--copper); font-size:.65rem; font-weight:700; letter-spacing:.09em; opacity:1; }
.brand-mark { position:relative; display:block; width:37px; height:37px; border:2px solid var(--copper); transform:rotate(45deg); }
.brand-mark:before,.brand-mark span { content:""; position:absolute; background:var(--copper); }
.brand-mark:before { width:2px; height:25px; left:10px; top:5px; }
.brand-mark span { width:2px; height:25px; right:10px; top:5px; }
.site-header nav { display:flex; align-items:center; gap:24px; font-size:.8rem; font-weight:600; }
.site-header nav a:not(.nav-cta) { font-weight:700; opacity:1; transition:.2s; }
.site-header nav a:hover { opacity:1; }
.nav-cta { padding:12px 19px; border:1px solid rgba(255,255,255,.55); }
.menu-button { display:none; background:transparent; border:0; width:42px; height:42px; }
.hero { position:relative; min-height:900px; color:white; display:flex; align-items:center; justify-content:space-between; gap:clamp(35px,5vw,85px); padding:155px clamp(24px,5vw,76px) 55px; overflow:hidden; }
.hero-media { position:absolute; inset:0; background:url("entrepot-couvretech.webp") center/cover no-repeat; transform:scale(1.015); animation:settle 1.5s ease forwards; }
@keyframes settle { to { transform:scale(1); } }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,45,157,.96) 0%,rgba(0,67,220,.76) 43%,rgba(0,64,210,.08) 78%); }
.hero-content { position:relative; z-index:1; width:min(620px,48%); }
.eyebrow,.section-kicker { margin:0 0 22px; color:var(--copper); text-transform:uppercase; font-size:.72rem; font-weight:700; letter-spacing:.18em; }
.eyebrow span { display:inline-block; width:34px; height:1px; background:var(--copper); margin:0 10px 4px 0; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:"DM Sans",sans-serif; line-height:1.04; letter-spacing:-.045em; }
h1 { margin-bottom:28px; font-size:clamp(3.4rem,5.5vw,6.4rem); font-weight:600; }
h1 em,h2 em { color:var(--copper); font-style:normal; }
.hero-copy { max-width:585px; margin-bottom:38px; color:rgba(255,255,255,.96); font-size:1.08rem; font-weight:500; }
.hero-services { display:flex; flex-wrap:wrap; gap:10px; margin:-12px 0 18px; }
.hero-services span, .hero-services a { padding:11px 15px; background:var(--copper); color:#032b87; font-size:.88rem; font-weight:800; line-height:1; text-transform:uppercase; letter-spacing:.035em; box-shadow:0 5px 18px rgba(0,28,100,.2); }
.hero-area { margin:0 0 30px; color:var(--copper); font-size:1.08rem; font-weight:800; line-height:1.4; letter-spacing:.01em; text-shadow:0 2px 12px rgba(0,24,90,.4); }
.hero-actions { display:flex; align-items:center; gap:30px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-width:210px; padding:16px 20px; font-size:.83rem; font-weight:700; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--copper); color:#032b87; }
.text-link { color:white; font-size:.8rem; font-weight:700; border-bottom:1px solid rgba(255,255,255,.8); padding:10px 0; }
.text-link span { margin-left:10px; color:var(--copper); }
.hero-index { position:absolute; right:clamp(24px,5vw,76px); bottom:42px; display:flex; align-items:center; gap:12px; font-size:.7rem; }
.hero-index b { color:var(--copper); }.hero-index span { width:75px; height:1px; background:rgba(255,255,255,.55); }
.proof-strip { position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); margin-top:-1px; padding:0 clamp(24px,5vw,76px); background:var(--copper); color:#032b87; }
.proof-strip div { min-height:138px; display:flex; flex-direction:column; justify-content:center; padding:25px clamp(14px,2.5vw,38px); border-right:1px solid rgba(3,43,135,.2); }
.proof-strip div:last-child { border-right:0; }
.proof-strip strong { font-family:"DM Sans",sans-serif; font-size:clamp(1.25rem,2vw,2rem); line-height:1.1; letter-spacing:-.03em; }
.proof-strip span { margin-top:8px; font-size:.72rem; font-weight:700; line-height:1.35; text-transform:uppercase; letter-spacing:.08em; }
.section-pad { padding:clamp(78px,10vw,150px) clamp(24px,8vw,130px); }
section[id] { scroll-margin-top:90px; }
.intro .section-kicker,.areas-home .section-kicker,.safety .section-kicker,.reviews .section-kicker,.local-intro .section-kicker,.local-safety .section-kicker,.nearby .section-kicker,.department .section-kicker { color:#032b87; }
.intro-grid,.contact-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(50px,9vw,150px); }
.intro h2,.contact h2,.method h2 { font-size:clamp(2.7rem,5vw,5.3rem); font-weight:500; }
.intro-grid>div { padding-top:12px; color:var(--muted); font-size:1.05rem; }
.expertises { background:var(--navy); color:white; }
.section-kicker.light { color:var(--copper); }
.section-heading { display:grid; grid-template-columns:1.4fr .6fr; align-items:end; gap:80px; margin-bottom:65px; }
.section-heading h2 { margin:0; font-size:clamp(2.7rem,5vw,5rem); font-weight:500; }
.section-heading>p { color:rgba(255,255,255,.94); font-weight:500; }
.service-list { border-top:1px solid rgba(255,255,255,.18); }
.service-list article { display:grid; grid-template-columns:80px 1fr 48px; gap:25px; align-items:center; padding:34px 24px; border-left:4px solid var(--copper); border-bottom:1px solid rgba(255,255,255,.18); background:linear-gradient(90deg,rgba(255,196,0,.1),transparent 42%); transition:padding .25s,background .25s; }
.service-list article:hover { padding-left:34px; background:linear-gradient(90deg,rgba(255,196,0,.17),transparent 55%); }
.service-list article>span { width:44px; height:44px; display:grid; place-items:center; background:var(--copper); color:#032b87; font-size:.75rem; font-weight:800; }
.service-list h3 { margin:0 0 4px; color:var(--copper); font-family:"DM Sans"; font-size:1.45rem; font-weight:600; }
.service-list p { margin:0; color:rgba(255,255,255,.9); font-size:.92rem; font-weight:500; }
.service-list i { width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:var(--copper); font-style:normal; }
.service-feature { background:linear-gradient(90deg,rgba(255,196,0,.22),rgba(255,196,0,.04) 70%)!important; }
.service-detail-link,.card-link { display:inline-block; margin-top:13px; color:var(--copper); border-bottom:1px solid currentColor; font-size:.78rem; font-weight:800; }
.mid-cta { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(28px,5vw,78px); padding:34px clamp(24px,5vw,76px); background:var(--copper); color:#032b87; border-top:1px solid rgba(3,43,135,.22); border-bottom:1px solid rgba(3,43,135,.22); }
.mid-cta-brand { min-width:245px; }
.mid-cta-brand .brand-mark { border-color:#032b87; }
.mid-cta-brand .brand-mark:before,.mid-cta-brand .brand-mark span { background:#032b87; }
.mid-cta-brand b span,.mid-cta-brand b em,.mid-cta-brand small { color:#032b87; }
.mid-cta-brand small { font-size:.62rem; }
.mid-cta p { display:flex; flex-direction:column; margin:0; line-height:1.15; }
.mid-cta p span { margin-bottom:6px; font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.13em; }
.mid-cta p strong { font-family:"DM Sans"; font-size:clamp(1.35rem,2.3vw,2.4rem); letter-spacing:-.035em; }
.mid-cta-actions { display:flex; align-items:stretch; gap:10px; }
.mid-cta-actions a { display:flex; align-items:center; justify-content:center; min-height:54px; padding:13px 18px; border:2px solid #032b87; font-size:.78rem; font-weight:700; white-space:nowrap; }
.mid-cta-actions a:first-child { background:#032b87; color:white; }
.mid-cta-actions a:last-child span { margin-left:12px; }
.method { background:var(--navy-2); color:white; }
.method-title { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:60px; }
.method-title h2 { margin:0; }
.steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.3); }
.steps li { padding:28px 28px 10px 0; border-right:1px solid rgba(255,255,255,.3); min-height:210px; }
.steps li+li { padding-left:28px; }
.steps li:last-child { border-right:0; }
.steps span { color:var(--copper); font-size:.72rem; font-weight:700; }
.steps h3 { margin:45px 0 10px; font-family:"DM Sans"; font-size:1.25rem; }
.steps p { color:rgba(255,255,255,.9); font-size:.88rem; font-weight:500; }
.safety { background:var(--copper); color:#032b87; }
.safety-heading { display:grid; grid-template-columns:.35fr 1fr .8fr; gap:clamp(28px,6vw,90px); align-items:start; margin-bottom:65px; }
.safety-heading h2 { margin:0; font-size:clamp(2.7rem,4.8vw,5rem); font-weight:500; }
.safety-heading>p:last-child { color:#123a88; padding-top:10px; font-weight:500; }
.safety-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:3px solid var(--navy-2); }
.safety-grid article { min-height:260px; padding:28px 26px 20px; border-right:1px solid var(--line); }
.safety-grid article:last-child { border-right:0; }
.safety-grid span { color:var(--navy-2); font-size:.72rem; font-weight:700; }
.safety-grid h3 { margin:55px 0 12px; font-family:"DM Sans"; font-size:1.18rem; line-height:1.25; }
.safety-grid p { color:#123a88; font-size:.86rem; font-weight:500; }
.promise { display:grid; grid-template-columns:1.1fr .9fr; min-height:690px; background:var(--navy-2); color:white; overflow:hidden; }
.promise-copy { display:flex; flex-direction:column; justify-content:center; }
.promise h2 { font-size:clamp(3rem,5vw,5.5rem); font-weight:500; }
.promise-copy>p:not(.section-kicker) { max-width:600px; color:rgba(255,255,255,.94); font-weight:500; }
.promise-points { display:flex; gap:25px; flex-wrap:wrap; margin-top:35px; }
.promise-points span { padding-left:16px; border-left:2px solid var(--copper); font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; }
.promise-visuals { display:grid; grid-template-columns:1.15fr .85fr; grid-template-rows:1fr 1fr; min-height:690px; gap:4px; background:var(--copper); }
.promise-visuals figure { position:relative; min-width:0; min-height:0; margin:0; overflow:hidden; }
.promise-visuals .promise-visual-main { grid-row:1/3; }
.promise-visuals img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s ease; }
.promise-visuals figure:hover img { transform:scale(1.025); }
.promise-visuals figure:after { content:""; position:absolute; inset:42% 0 0; background:linear-gradient(transparent,rgba(0,42,143,.88)); }
.promise-visuals figcaption { position:absolute; z-index:1; left:22px; bottom:18px; color:var(--copper); font-family:"DM Sans"; font-size:clamp(1rem,1.8vw,1.65rem); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.roof-detail { position:relative; min-height:500px; background:var(--copper); }
.roof-detail:before { content:""; position:absolute; inset:14% -10% -8% 18%; border:2px solid rgba(255,255,255,.55); transform:skewY(-10deg); }
.roof-detail .line { position:absolute; height:2px; background:rgba(255,255,255,.7); transform:rotate(-10deg); transform-origin:left; }
.roof-detail .one { width:85%; left:8%; top:37%; }.roof-detail .two { width:64%; left:20%; top:52%; }.roof-detail .three { width:43%; left:32%; top:67%; }
.roof-detail span { position:absolute; bottom:8%; right:8%; font-family:"DM Sans"; font-weight:700; font-size:clamp(2rem,4vw,4.5rem); letter-spacing:.08em; color:rgba(0,65,215,.42); writing-mode:vertical-rl; }
.contact { background:var(--navy); color:white; }
.contact-early { border-top:5px solid var(--copper); padding-top:clamp(70px,8vw,110px); padding-bottom:clamp(70px,8vw,110px); }
.contact-early .contact-form { margin-top:50px; }
.contact-intro { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(50px,9vw,150px); align-items:end; }
.contact-intro h2 { font-size:clamp(2.7rem,5vw,5.3rem); font-weight:500; }.contact-intro h2 em { color:var(--copper); }
.contact-intro>div:last-child>p { color:rgba(255,255,255,.94); font-weight:500; }
.phone-link { display:flex; flex-direction:column; margin-top:28px; padding:18px 20px; background:var(--copper); color:#032b87; }.phone-link span { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }.phone-link strong { font-family:"DM Sans"; font-size:1.7rem; }
.email-link { display:inline-block; margin-top:14px; color:var(--copper); font-weight:700; border-bottom:1px solid currentColor; }
.contact-form { margin-top:70px; padding:clamp(28px,5vw,62px); background:#0038a8; box-shadow:0 24px 80px rgba(0,22,90,.28); }
.form-head { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; padding-bottom:28px; border-bottom:1px solid rgba(255,255,255,.28); }.form-head span { color:var(--copper); font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.13em; }.form-head h3 { margin:6px 0 0; font-family:"DM Sans"; font-size:1.8rem; }.form-head p { margin:0; color:rgba(255,255,255,.9); font-size:.75rem; font-weight:500; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px 28px; margin-top:35px; }.form-grid label { display:flex; flex-direction:column; gap:8px; font-size:.78rem; font-weight:700; }.form-grid .wide { grid-column:1/-1; }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; border:2px solid var(--copper); border-radius:0; background:var(--copper); color:#032b87; padding:14px 15px; font:inherit; font-size:.9rem; font-weight:600; outline:none; }.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus { border-color:white; box-shadow:0 0 0 3px rgba(255,255,255,.22); }.form-grid textarea { resize:vertical; }
.consent { display:flex; align-items:flex-start; gap:10px; margin-top:24px; color:rgba(255,255,255,.92); font-size:.78rem; font-weight:500; }.consent input { margin-top:5px; accent-color:var(--copper); }.consent a { color:var(--copper); text-decoration:underline; text-underline-offset:2px; }
.form-honey { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-actions { display:flex; align-items:center; gap:25px; margin-top:28px; }.form-actions button { border:0; cursor:pointer; }.form-actions button:disabled { cursor:wait; opacity:.68; }.form-actions p { max-width:410px; margin:0; color:rgba(255,255,255,.86); font-size:.72rem; font-weight:500; }.form-status { margin:18px 0 0; color:var(--copper); font-weight:700; }.form-status.is-success { padding:14px 16px; background:#ffcf21; color:#032b87; }.form-status.is-error { padding:14px 16px; background:#fff; color:#8c1d18; }.form-status.is-sending { color:#fff; }
.contact-anchor { position:absolute; top:100px; right:0; }
.hero-quick-form { position:relative; z-index:2; width:min(620px,46%); margin:40px 0 0; padding:28px 30px; background:rgba(0,42,143,.97); border-top:5px solid var(--copper); box-shadow:0 28px 80px rgba(0,20,80,.42); }
.hero-quick-form .form-head { padding-bottom:18px; }
.hero-quick-form .form-head h3 { color:white; font-size:1.55rem; }
.hero-quick-form .form-head p { color:var(--copper); font-weight:700; }
.hero-quick-form .form-grid { gap:14px 16px; margin-top:20px; }
.hero-quick-form .form-grid label { gap:5px; color:white; font-size:.78rem; text-transform:uppercase; letter-spacing:.035em; }
.hero-quick-form .form-grid input,.hero-quick-form .form-grid select,.hero-quick-form .form-grid textarea { padding:10px 12px; border-width:1px; text-transform:none; letter-spacing:0; }
.hero-quick-form .consent { margin-top:15px; font-size:.75rem; }
.hero-quick-form .form-actions { justify-content:space-between; margin-top:17px; }
.hero-quick-form .form-actions .button { margin:0; background:var(--copper); color:#032b87; }
.hero-quick-form .form-actions a { color:var(--copper); font-size:.76rem; font-weight:700; border-bottom:1px solid currentColor; }
.hero-quick-form .form-status { margin-top:10px; }
.commercial-page .page-hero { align-items:center; justify-content:space-between; gap:clamp(36px,5vw,80px); padding-top:180px; padding-bottom:65px; }
.commercial-page .page-hero-content { width:min(760px,52%); }
.commercial-page .page-hero h1 { font-size:clamp(2.8rem,4.8vw,5.5rem); }
.inner-lead-form { position:relative; z-index:2; width:min(580px,44%); margin:28px 0 0; padding:26px 28px; border:2px solid var(--copper); box-shadow:0 24px 70px rgba(0,20,80,.38); }
.inner-lead-form .form-head { padding-bottom:16px; }
.inner-lead-form .form-head h3 { color:white; font-size:1.45rem; }
.inner-lead-form .form-grid { gap:12px 14px; margin-top:17px; }
.inner-lead-form .form-grid label { gap:5px; color:white; }
.inner-lead-form .form-grid input,.inner-lead-form .form-grid select,.inner-lead-form .form-grid textarea { padding:9px 11px; border-width:1px; }
.inner-lead-form .consent { margin-top:14px; font-size:.72rem; }
.inner-lead-form .form-actions { justify-content:space-between; margin-top:16px; }
.inner-lead-form .form-actions .button { margin:0; background:var(--copper); color:#032b87; }
.inner-lead-form .form-actions a { color:var(--copper); font-size:.74rem; font-weight:700; border-bottom:1px solid currentColor; }
.local-cta.has-contact-form .inner-lead-form { grid-column:1/-1; width:100%; margin-top:22px; }
.final-contact { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(45px,7vw,105px); align-items:start; background:var(--navy); color:white; border-top:6px solid var(--copper); }
.final-contact-copy { position:sticky; top:105px; }
.final-contact h2 { margin-bottom:24px; font-size:clamp(2.8rem,5vw,5.3rem); font-weight:500; }
.final-contact-copy>p { color:white; font-size:1.02rem; font-weight:600; }
.contact-reassurance { list-style:none; margin:32px 0; padding:0; border-top:1px solid rgba(255,255,255,.25); }
.contact-reassurance li { position:relative; padding:13px 0 13px 30px; border-bottom:1px solid rgba(255,255,255,.25); font-weight:700; }
.contact-reassurance li:before { content:"✓"; position:absolute; left:0; color:var(--copper); }
.final-contact-direct { display:grid; gap:10px; }
.final-contact-direct a { display:flex; flex-direction:column; padding:16px 18px; background:var(--copper); color:#032b87; }
.final-contact-direct span { font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.final-contact-direct strong { margin-top:3px; font-family:"DM Sans"; font-size:1.16rem; overflow-wrap:anywhere; }
.final-contact-form { margin:0; background:#0038a8; border:2px solid var(--copper); box-shadow:0 28px 80px rgba(0,20,80,.42); }
.button-dark { margin-top:25px; background:var(--navy); color:white; }
.contact small { display:block; margin-top:15px; font-size:.72rem; font-weight:600; opacity:.95; }
.areas-home { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(45px,8vw,120px); background:var(--copper); color:#032b87; }
.areas-home h2 { font-size:clamp(2.7rem,4.8vw,5rem); font-weight:500; }
.areas-home-copy>p:not(.section-kicker) { max-width:570px; color:#123a88; font-weight:500; }
.area-links { display:grid; grid-template-columns:1fr 1fr; align-content:start; border-top:3px solid var(--navy-2); }
.area-links a { display:flex; flex-direction:column; min-height:120px; padding:24px; border-right:1px solid rgba(255,255,255,.28); border-bottom:1px solid rgba(255,255,255,.28); background:var(--navy); color:white; transition:.2s; }
.area-links a:nth-child(2n) { border-right:0; }
.area-links a:hover { color:var(--copper); background:var(--navy-2); }
.area-links strong { font-family:"DM Sans"; font-size:1.18rem; }
.area-links span { margin-top:7px; color:rgba(255,255,255,.9); font-size:.76rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }

.interventions { background:var(--navy); color:white; }
.interventions-head,.reviews-head { display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(40px,8vw,120px); align-items:end; margin-bottom:58px; }
.interventions-head h2,.client-types-head h2,.reviews-head h2 { margin:0; font-size:clamp(2.7rem,4.8vw,5rem); font-weight:500; }
.interventions-head>p,.client-types-head>p,.reviews-head>p { margin:0; color:rgba(255,255,255,.92); font-weight:500; }
.intervention-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 28px; }
.intervention-gallery figure { margin:0; overflow:hidden; background:#0036ad; border-bottom:5px solid var(--copper); }
.intervention-gallery img { width:100%; aspect-ratio:16/10; display:block; object-fit:cover; transition:transform .45s ease; }
.intervention-gallery img.photo-soudure { object-position:center 62%; }
.intervention-gallery img.photo-fumigene,.intervention-gallery img.photo-entretien,.intervention-gallery img.photo-gouttiere { object-position:center top; }
.intervention-gallery figure:hover img { transform:scale(1.025); }
.intervention-gallery figcaption { min-height:118px; display:grid; grid-template-columns:52px 1fr; gap:18px; align-items:center; padding:22px 26px; color:white; }
.intervention-gallery figcaption span { width:46px; height:46px; display:grid; place-items:center; background:var(--copper); color:#032b87; font-size:.78rem; font-weight:800; }
.intervention-gallery figcaption div { display:flex; flex-direction:column; gap:5px; }
.intervention-gallery figcaption strong { color:var(--copper); font-family:"DM Sans"; font-size:1.18rem; line-height:1.2; }
.intervention-gallery figcaption small { color:white; font-size:.78rem; font-weight:600; }

.client-types { background:linear-gradient(135deg,#002a8f 0%,#0051f5 100%); color:white; }
.client-types-head { display:grid; grid-template-columns:.45fr 1fr .75fr; gap:clamp(30px,5vw,80px); align-items:start; margin-bottom:58px; }
.client-types-head>p:last-child { color:rgba(255,255,255,.94); padding-top:9px; font-weight:500; }
.client-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.client-grid article { min-height:590px; padding:0; border:1px solid rgba(255,255,255,.28); background:rgba(0,42,143,.48); overflow:hidden; transition:border-color .25s,transform .25s; }
.client-grid article:hover { border-color:var(--copper); transform:translateY(-5px); }
.client-image { height:205px; overflow:hidden; border-bottom:4px solid var(--copper); }
.client-image img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s ease; }
.client-grid article:hover .client-image img { transform:scale(1.035); }
.client-card-body { padding:25px 28px 30px; }
.client-number { width:42px; height:42px; display:grid; place-items:center; margin-bottom:24px; border:1px solid rgba(255,196,0,.55); border-radius:50%; color:var(--copper); font-family:"DM Sans"; font-size:.75rem; }
.client-grid h3 { min-height:62px; margin-bottom:14px; color:var(--copper); font-family:"DM Sans"; font-size:1.55rem; line-height:1.2; }
.client-grid>article>p { min-height:90px; color:rgba(255,255,255,.92); font-size:.88rem; font-weight:500; }
.client-grid ul { list-style:none; margin:22px 0 0; padding:0; }
.client-grid li { position:relative; padding:13px 0 13px 25px; border-top:1px solid rgba(255,255,255,.22); color:rgba(255,255,255,.96); font-size:.82rem; font-weight:600; }
.client-grid li:before { content:"✓"; position:absolute; left:0; color:var(--copper); font-weight:700; }

.reviews { background:var(--copper); color:#032b87; }
.reviews-head>p { color:#123a88; }
.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.review-grid.single-review { grid-template-columns:minmax(0,900px); }
.review-grid.single-review article { min-height:330px; }
.review-grid.single-review blockquote { font-size:clamp(1.25rem,2vw,1.65rem); }
.review-grid.two-reviews { grid-template-columns:repeat(2,minmax(0,1fr)); }
.review-grid article { min-height:285px; display:flex; flex-direction:column; padding:34px; background:var(--navy); color:white; border-top:4px solid var(--navy-2); box-shadow:0 14px 45px rgba(0,46,156,.18); }
.review-stars { color:var(--copper); letter-spacing:.18em; font-size:.92rem; }
.review-grid blockquote { flex:1; margin:28px 0; color:white; font-family:"DM Sans"; font-size:1.25rem; font-weight:500; line-height:1.45; }
.review-grid article>p { display:flex; flex-direction:column; margin:0; padding-top:18px; border-top:1px solid var(--line); }
.review-grid strong { font-size:.82rem; }.review-grid span { margin-top:3px; color:rgba(255,255,255,.88); font-size:.73rem; font-weight:600; }
.bottom-cta { display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(40px,7vw,110px); align-items:center; padding:clamp(70px,8vw,110px) clamp(24px,8vw,130px); background:var(--navy); color:white; border-top:6px solid var(--copper); }
.bottom-cta h2 { margin-bottom:24px; font-size:clamp(2.8rem,5vw,5.3rem); font-weight:500; }
.bottom-cta>div>p:last-child { max-width:760px; margin:0; color:white; font-size:1.05rem; font-weight:600; }
.bottom-cta-actions { display:flex; flex-direction:column; align-items:stretch; gap:14px; }
.bottom-cta-actions .button { width:100%; }
.bottom-cta-actions>a:last-child { display:flex; flex-direction:column; padding:18px 20px; background:var(--copper); color:#032b87; }
.bottom-cta-actions>a:last-child span { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.bottom-cta-actions>a:last-child strong { margin-top:4px; font-family:"DM Sans"; font-size:1.55rem; }

.inner-page .site-header { background:rgba(0,42,143,.96); }
.inner-page .urgency-bar { position:absolute; }
.page-hero { min-height:590px; display:flex; align-items:flex-end; padding:220px clamp(24px,8vw,130px) 90px; color:white; background:linear-gradient(120deg,#002a8f 0%,#0051f5 72%,#1166ff 100%); position:relative; overflow:hidden; }
.page-hero:after { content:""; position:absolute; width:460px; height:460px; right:-100px; bottom:-230px; border:2px solid rgba(255,196,0,.48); transform:rotate(45deg); }
.page-hero-content { position:relative; z-index:1; max-width:900px; }
.breadcrumbs { display:flex; gap:8px; margin-bottom:25px; color:rgba(255,255,255,.9); font-size:.76rem; font-weight:600; }
.breadcrumbs a { border-bottom:1px solid rgba(255,255,255,.35); }
.page-hero h1 { font-size:clamp(3rem,6vw,6.2rem); }
.page-hero-copy { max-width:720px; color:rgba(255,255,255,.95); font-size:1.08rem; font-weight:500; }
.legal-hero { min-height:500px; }
.legal-page { display:grid; grid-template-columns:minmax(0,900px); gap:18px; background:#ffcf21; color:#032b87; }
.legal-page article { padding:clamp(24px,4vw,42px); background:#0038a8; color:white; border-left:5px solid #ffcf21; box-shadow:0 16px 45px rgba(0,22,90,.16); }
.legal-page h2 { margin-bottom:16px; color:#ffcf21; font-size:clamp(1.35rem,2.2vw,2rem); }
.legal-page p,.legal-page li { color:rgba(255,255,255,.94); font-weight:500; }
.legal-page a { color:#ffcf21; text-decoration:underline; text-underline-offset:3px; }
.legal-page dl { display:grid; gap:0; margin:24px 0 0; }
.legal-page dl div { display:grid; grid-template-columns:minmax(150px,.4fr) 1fr; gap:20px; padding:13px 0; border-top:1px solid rgba(255,255,255,.25); }
.legal-page dt { color:#ffcf21; font-weight:700; }.legal-page dd { margin:0; color:white; }
.legal-update { margin:12px 0 0; color:#032b87!important; font-size:.78rem; font-weight:700!important; }
.page-actions { display:flex; flex-wrap:wrap; gap:18px; margin-top:30px; }
.button-outline { border:1px solid rgba(255,255,255,.55); color:white; }
.local-intro { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(45px,8vw,120px); }
.local-intro h2,.zones-lead h2,.local-services h2,.local-faq h2 { font-size:clamp(2.5rem,4.5vw,4.8rem); font-weight:500; }
.local-intro { background:var(--copper); color:#032b87; }
.local-copy { color:#123a88; font-size:1.02rem; font-weight:500; }
.local-note { margin-top:28px; padding:24px; border-left:4px solid var(--copper); background:var(--navy); color:white; }
.local-services { background:var(--navy); color:white; }
.local-services-head { display:grid; grid-template-columns:1fr .7fr; gap:60px; align-items:end; margin-bottom:50px; }
.local-services-head>p { color:rgba(255,255,255,.94); font-weight:500; }
.service-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.2); }
.service-cards article { min-height:285px; padding:32px; background:var(--navy); }
.service-cards span { color:var(--copper); font-size:.72rem; font-weight:700; }
.service-cards h3 { margin:48px 0 12px; font-family:"DM Sans"; font-size:1.35rem; }
.service-cards p { color:rgba(255,255,255,.92); font-size:.9rem; font-weight:500; }
.local-safety { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(45px,8vw,120px); background:var(--copper); color:#032b87; }
.local-safety h2 { font-size:clamp(2.5rem,4vw,4.3rem); font-weight:500; }
.check-list { list-style:none; margin:0; padding:0; border-top:3px solid var(--navy-2); }
.check-list li { padding:20px 0 20px 36px; border-bottom:1px solid var(--line); position:relative; }
.check-list li:before { content:"✓"; position:absolute; left:0; color:var(--navy-2); font-weight:700; }
.local-faq { background:var(--navy); color:white; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 55px; }
.faq-grid details { padding:24px 0; border-top:1px solid rgba(255,255,255,.28); }
.faq-grid summary { cursor:pointer; font-family:"DM Sans"; font-size:1.08rem; font-weight:600; }
.faq-grid details p { margin:15px 0 0; color:rgba(255,255,255,.92); font-weight:500; }
.nearby { background:var(--cream); }
.nearby h2 { margin-bottom:35px; font-size:clamp(2rem,3.5vw,3.5rem); font-weight:500; }
.nearby-links { display:flex; flex-wrap:wrap; gap:12px; }
.nearby-links a { padding:12px 16px; border:1px solid var(--navy); background:var(--navy); font-weight:700; color:white; }
.local-cta { display:grid; grid-template-columns:1.25fr .75fr; gap:50px; align-items:center; background:var(--copper); color:#032b87; }
.local-cta h2 { margin:0; font-size:clamp(2.5rem,4.5vw,4.8rem); font-weight:500; }
.local-cta-actions { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
.local-cta-actions .button { background:var(--navy); color:white; }
.local-cta-actions .email-link { color:#032b87; align-self:flex-start; }
.maintenance-visual { margin:0; min-height:450px; overflow:hidden; box-shadow:0 24px 60px rgba(0,25,95,.2); }
.maintenance-visual img { width:100%; height:100%; min-height:450px; display:block; object-fit:cover; }
.maintenance-lead { grid-template-columns:.8fr 1.2fr; align-items:center; }
.maintenance-points { background:var(--navy); color:white; }
.maintenance-points .section-heading { margin-bottom:46px; }
.maintenance-points-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(255,255,255,.22); }
.maintenance-points-grid article { min-height:200px; padding:30px; background:var(--navy); border-left:4px solid var(--copper); }
.maintenance-points-grid span { color:var(--copper); font-size:.72rem; font-weight:800; }
.maintenance-points-grid h3 { margin:32px 0 8px; color:var(--copper); font-family:"DM Sans"; font-size:1.25rem; }
.maintenance-points-grid p { margin:0; color:rgba(255,255,255,.94); font-size:.9rem; font-weight:500; }
.maintenance-followup { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; background:var(--navy); }
.maintenance-followup figure { position:relative; min-height:470px; margin:0; overflow:hidden; }
.maintenance-followup img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.maintenance-followup figcaption { position:absolute; inset:auto 0 0; padding:26px; background:linear-gradient(transparent,rgba(0,35,120,.94)); color:white; font-weight:700; }
.maintenance-outcomes { background:var(--copper); }
.maintenance-outcomes h2 { font-size:clamp(2.5rem,4.5vw,4.8rem); font-weight:500; }
.maintenance-outcomes .check-list { max-width:950px; margin-top:42px; }
.zones-lead { display:grid; grid-template-columns:1fr .8fr; gap:70px; }
.zones-lead { color:white; }
.zones-lead>p { color:rgba(255,255,255,.92); font-size:1.05rem; font-weight:500; }
.department-list { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:55px; }
.department { padding:30px; background:var(--copper); color:#032b87; box-shadow:0 12px 40px rgba(0,22,90,.2); }
.department h2 { font-size:1.6rem; letter-spacing:-.02em; }
.department small { color:#123a88; font-weight:600; }
.department ul { list-style:none; margin:24px 0 0; padding:0; }
.department li { border-top:1px solid var(--line); }
.department a { display:flex; justify-content:space-between; padding:14px 0; color:var(--navy-2); font-weight:700; }
.coverage-footer { padding:64px clamp(24px,5vw,76px) 58px; background:#0038a8; color:white; border-top:6px solid var(--copper); }
.coverage-intro { max-width:1540px; }
.coverage-intro h2 { margin-bottom:18px; font-family:"DM Sans"; font-size:clamp(1.15rem,1.65vw,1.65rem); font-weight:700; letter-spacing:-.02em; }
.coverage-intro p { max-width:1500px; margin-bottom:42px; color:rgba(255,255,255,.9); font-size:.9rem; font-weight:500; }
.coverage-intro strong,.coverage-grid strong { color:white; }
.coverage-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:clamp(24px,3vw,54px); }
.coverage-grid h3 { margin-bottom:15px; color:var(--copper); font-family:"DM Sans"; font-size:.88rem; font-weight:700; line-height:1.35; text-transform:uppercase; letter-spacing:.025em; }
.coverage-grid p { margin:0; color:rgba(255,255,255,.82); font-size:.82rem; font-weight:500; line-height:1.8; }
.coverage-grid a { transition:color .2s; }
.coverage-grid a:hover { color:var(--copper); }
.coverage-link { display:inline-block; margin-top:38px; padding-bottom:3px; color:var(--copper); border-bottom:1px solid currentColor; font-size:.78rem; font-weight:700; }
footer { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:42px clamp(24px,5vw,76px); background:#002a8f; color:white; font-size:.72rem; }
footer p { margin:0; color:rgba(255,255,255,.88); font-weight:600; }.footer-brand .brand-mark { width:29px;height:29px; }.footer-brand .brand-mark:before,.footer-brand .brand-mark span { height:19px; top:3px; }.footer-brand b { font-size:.85rem; }.footer-brand small { display:none; }
.footer-legal { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 22px; }.footer-legal a { color:#ffcf21; font-weight:700; }.footer-legal a:hover { text-decoration:underline; text-underline-offset:3px; }
.quick-contact { position:fixed; z-index:9; right:22px; bottom:22px; display:flex; align-items:stretch; gap:2px; padding:3px; background:#032b87; box-shadow:0 15px 45px rgba(0,20,80,.32); transition:opacity .22s,transform .22s; }
.quick-contact.is-hidden { opacity:0; transform:translateY(18px); pointer-events:none; }
.quick-contact a { min-width:180px; display:flex; flex-direction:column; justify-content:center; padding:11px 16px; background:var(--copper); color:#032b87; line-height:1.25; }
.quick-contact a:first-child { background:#032b87; color:white; }
.quick-contact span { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.quick-contact strong { margin-top:3px; font-family:"DM Sans"; font-size:.82rem; }
@media(max-width:1100px){
  .hero { min-height:0; flex-direction:column; align-items:stretch; padding-top:180px; padding-bottom:72px; }
  .hero-content { width:100%; max-width:780px; }
  .hero-quick-form { width:100%; max-width:850px; margin:10px 0 0; }
  .hero-overlay { background:linear-gradient(90deg,rgba(0,45,157,.97),rgba(0,69,224,.82)); }
  .commercial-page .page-hero { align-items:stretch; flex-direction:column; padding-top:190px; }
  .commercial-page .page-hero-content,.inner-lead-form { width:100%; max-width:850px; }
}
@media(max-width:860px){
  .final-contact { grid-template-columns:1fr; }.final-contact-copy { position:static; }
  .review-grid.two-reviews { grid-template-columns:1fr; }
  .urgency-bar { justify-content:space-between; font-size:.7rem; }.site-header { height:78px; }.menu-button { display:block; position:relative; z-index:12; }.menu-button span { display:block; width:26px; height:2px; margin:7px auto; background:white; transition:.2s; }
  .site-header nav { display:none; position:absolute; inset:0 0 auto; padding:105px 26px 32px; flex-direction:column; align-items:flex-start; background:var(--navy); }.nav-open nav { display:flex; }.nav-open .menu-button span:first-child { transform:translateY(4px) rotate(45deg); }.nav-open .menu-button span:last-child { transform:translateY(-5px) rotate(-45deg); }
  .hero { min-height:0; }.hero-overlay { background:linear-gradient(90deg,rgba(0,45,157,.96),rgba(0,69,224,.78)); }.hero-content { margin-left:0; }.hero-copy { max-width:90%; }.hero-index { display:none; }
  .proof-strip { grid-template-columns:1fr 1fr; }.proof-strip div:nth-child(2) { border-right:0; }.proof-strip div:nth-child(n+3) { border-top:1px solid rgba(3,43,135,.2); }.intro-grid,.contact-grid,.contact-intro,.section-heading,.promise,.areas-home,.local-intro,.local-services-head,.local-safety,.local-cta,.zones-lead,.interventions-head,.reviews-head,.bottom-cta,.maintenance-lead { grid-template-columns:1fr; }.section-heading { gap:20px; }.mid-cta { grid-template-columns:1fr 1fr; }.mid-cta p { order:3; grid-column:1/-1; }.steps { grid-template-columns:1fr 1fr; }.steps li:nth-child(2) { border-right:0; }.steps li:nth-child(n+3) { border-top:1px solid var(--line); }.safety-heading,.client-types-head { grid-template-columns:1fr; gap:18px; }.safety-grid,.client-grid { grid-template-columns:1fr 1fr; }.safety-grid article:nth-child(2) { border-right:0; }.safety-grid article:nth-child(n+3) { border-top:1px solid var(--line); }.roof-detail { min-height:430px; }.promise-copy { padding-bottom:85px; }.promise-visuals { min-height:520px; }.service-cards { grid-template-columns:1fr; }.service-cards article { min-height:auto; }.department-list { grid-template-columns:1fr; }.coverage-grid { grid-template-columns:repeat(2,1fr); }.review-grid { grid-template-columns:1fr; }
}
@media(max-width:540px){
  .brand small { display:none; }.brand b { font-size:.9rem; }.hero { height:auto; padding:165px 24px 62px; }.hero-content { margin-right:0; }.hero-actions { align-items:flex-start; flex-direction:column; gap:14px; }.hero-quick-form { padding:24px 20px; }.hero-quick-form .form-actions { gap:14px; }.proof-strip { grid-template-columns:1fr; }.proof-strip div,.proof-strip div:nth-child(2) { min-height:110px; border-right:0; border-top:1px solid rgba(3,43,135,.2); }.proof-strip div:first-child { border-top:0; }.mid-cta { grid-template-columns:1fr; gap:22px; padding:30px 24px; }.mid-cta p { order:initial; grid-column:auto; }.mid-cta-actions { flex-direction:column; }.mid-cta-actions a { width:100%; }.quick-contact { right:0; bottom:0; left:0; gap:1px; padding:2px; }.quick-contact a { flex:1; min-width:0; padding:10px 12px; }.quick-contact strong { font-size:.74rem; }.steps,.safety-grid,.client-grid,.maintenance-points-grid,.maintenance-followup { grid-template-columns:1fr; }.steps li,.steps li+li,.safety-grid article,.safety-grid article:nth-child(2) { border-right:0; border-top:1px solid var(--line); padding:24px 0; min-height:auto; }.steps h3,.safety-grid h3 { margin:22px 0 6px; }.method-title { display:block; }.form-grid { grid-template-columns:1fr; }.form-grid .wide { grid-column:auto; }.form-head,.form-actions { align-items:flex-start; flex-direction:column; } .roof-detail { min-height:350px; }.promise-visuals { min-height:0; grid-template-columns:1fr 1fr; grid-template-rows:320px 190px; }.promise-visuals .promise-visual-main { grid-column:1/3; grid-row:auto; } footer { align-items:flex-start; flex-direction:column; padding-bottom:120px; }.area-links,.faq-grid,.coverage-grid,.intervention-gallery { grid-template-columns:1fr; }.area-links a { border-right:0; }.page-hero { min-height:610px; padding-top:205px; }.department { padding:23px; }.intervention-gallery figcaption { min-height:105px; padding:18px 20px; }.intervention-gallery figcaption strong { font-size:1rem; }.client-grid article { min-height:auto; }.client-number { margin-bottom:44px; }.client-grid>article>p { min-height:auto; }.maintenance-followup figure { min-height:340px; }
}
@media(max-width:540px){ .legal-page dl div { grid-template-columns:1fr; gap:4px; }.legal-page article { padding:24px 20px; } }
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto}.hero-media{animation:none}.button,.service-list article{transition:none} }

.hero-services a { text-decoration:none; }
.hero-services a:hover { background:#ffe16a; }
.hero-services a:focus-visible { outline:3px solid white; outline-offset:4px; }
