/* v3 (2026-11-11): typography, spacing and layout matched to computed styles measured on davidsonreinforcing.com (Divi) at 1440px and 390px. */
:root{--blue:#0076bb;--navy:#003b6f;--ink:#333;--text:#414042;--grey:#f7f7f7;--max:1080px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:500 14px/1.7 Questrial,Helvetica,Arial,Lucida,sans-serif;color:var(--text);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}a{color:var(--blue)}
h1,h2,h3,h4,h5{font-family:Roboto,Helvetica,Arial,Lucida,sans-serif;font-weight:500;color:var(--ink);line-height:1.15;margin:0;padding-bottom:10px}
h1{font-size:60px}h2{font-size:40px}h3{font-size:32px;line-height:1.3}h4{font-size:14px;line-height:1.4}
p{margin:0;padding-bottom:1em}p:last-child{padding-bottom:0}
.wrap{width:80%;max-width:var(--max);margin:0 auto}.narrow{max-width:800px}.center{text-align:center}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* header (Divi theme-builder header: 85px white logo row + 50px blue menu row) */
.hdr{position:relative;z-index:20}
.hdr .wrap{width:auto;max-width:none;margin:0 72px}
.logobar{background:#fff;padding:20px 0}.logobar .wrap{display:flex;align-items:center;height:45px}
.logo{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.mark{width:45px;height:45px}.lw{display:flex;flex-direction:column;line-height:1}
.lw b{font:900 28px/0.95 Roboto,"Arial Black",Arial,sans-serif;color:#141414;letter-spacing:-.01em}
.lw i{font:900 15px/1.15 Roboto,Arial,sans-serif;font-style:normal;color:var(--blue);letter-spacing:-.01em}
.menubar{background:var(--blue)}
.mb{display:flex;justify-content:flex-end;align-items:center;height:50px;padding-right:18px}
.menu{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:0 22px}
.menu a{color:#fff;text-decoration:none;text-transform:uppercase;font:700 14px/14px Questrial,Helvetica,Arial,sans-serif;padding:0 0 8px;margin-top:8px}
.menu a:hover{opacity:.7}.menu a[aria-current]{color:#fff;box-shadow:inset 0 -2px 0 #fff}
.nt,.burger{display:none}
/* hero (inner pages: section 115.2px padding + 27px row padding) */
.hero{position:relative;color:#fff;--grad:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5));background:var(--grad),var(--img-webp,var(--img)) center/cover no-repeat #222;padding:142px 0}
.hero h1{color:#fff;font-size:60px;line-height:1.15}
.hero p{font-size:20px;line-height:1.5;color:#fff;padding-top:5px}
.hero-copy{max-width:none}
.hero-home{--grad:linear-gradient(90deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.45) 45%,rgba(0,0,0,.55));background:var(--grad),var(--img-webp,var(--img)) center/cover no-repeat #222;padding:84px 0 140px}
.hero-copy.right{margin-left:31.95%;max-width:62.5%}
.hero-home p{font-size:26px;line-height:1.4;padding-top:15px}
.eyebrow{text-transform:uppercase;letter-spacing:1px;font-size:14px;line-height:1.4;font-weight:600;color:#fff;padding-bottom:20px}
.hero .eyebrow{font-size:14px;line-height:1.4;padding-top:0;padding-bottom:20px}
.eyebrow.blue{color:var(--blue)}.eyebrow.blue2{color:var(--navy);font-family:"IBM Plex Sans",sans-serif;font-weight:500}
/* statements (54px section + 27px row padding) */
.statement{padding:81px 0}.statement.grey{background:var(--grey)}.statement h1.nf{font-size:40px;line-height:1.15;color:var(--ink)}
.st{display:grid;grid-template-columns:29.63% 64.81%;gap:0 5.56%}
.st h4,.st h2.st-label{font-family:Questrial,Helvetica,Arial,sans-serif;font-weight:500;text-transform:uppercase;font-size:14px;line-height:1.4;letter-spacing:1px;color:var(--ink);padding-bottom:10px}
.st h3{font-size:32px;line-height:1.3;margin-bottom:37px}
.st p{font-size:22px;line-height:1.75}
/* form (Divi contact module) */
.touch{padding:81px 0 54px}.touch h2{font-size:40px;line-height:1.15}
.cf input,.cf textarea{width:100%;font:400 16px Questrial,Helvetica,Arial,sans-serif;border:2px solid rgba(0,0,0,.08);border-radius:6px;padding:18px 16px;background:transparent;color:#333;height:56px}
.cf textarea{height:150px;display:block}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:35px}
.formfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:45px;flex-wrap:wrap}
.note{font-size:13px;color:#666}
.btn-submit{font:700 14px/1.7 Questrial,Helvetica,Arial,sans-serif;color:#fff;background:var(--blue);border:0;border-radius:100px;padding:12px 24px;cursor:pointer}
.btn-submit:hover{background:var(--navy)}
.cf.stacked label{display:block;font-size:14px;line-height:1.7;color:var(--ink);margin-bottom:19px}
.cf.stacked input,.cf.stacked textarea{background:#eee;color:#333;border:0;border-radius:0;margin-top:0;padding:16px;font-size:14px;height:46px}
.cf.stacked textarea{height:240px}
.cf.stacked .btn-submit{font:700 14px/1.7 Questrial,Helvetica,Arial,sans-serif;color:#fff;background:var(--blue);border:0;border-radius:100px;padding:12px 24px;margin-top:10px}
.cf.stacked .btn-submit:hover{background:var(--navy)}
/* schedule CTA (115.2px section + 27px row, 800px row) */
.schedule{position:relative;color:#fff;padding:142px 0;--grad:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.45) 35%,rgba(60,60,60,.9) 62%,#4a4a4a 100%);background:var(--grad),var(--img-webp,var(--img)) center 30%/cover no-repeat #444}
.schedule .wrap{max-width:800px}
.schedule h2{color:#fff;font-size:50px;line-height:1.2}
.schedule p{font-size:16px;line-height:1.75;color:#fff}
.bigphone{margin:0;padding:0}.bigphone a{color:#51b6f1;text-decoration:none;font:500 32px/1.3 Roboto,Helvetica,Arial,sans-serif}
.schedule .alt{font-size:14px;padding-top:6px}.schedule .alt a{color:#fff}
.ftr{background:#222;color:#999;font-size:14px;line-height:1.7;padding:15px 0}
.ftr a{color:#bbb;text-decoration:none}.ftr a:hover{color:#fff;text-decoration:underline}
.also-resi{padding-top:.4em;font-size:14px;line-height:1.6}
.also-resi a{color:var(--blue);text-decoration:none}.also-resi a:hover{text-decoration:underline}
/* box cards (Divi row: 30px padding, 6px radius, 56px column gap) */
.cardsec{padding:54px 0}
.boxcard{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;background:#fff;padding:30px;border-radius:6px;box-shadow:0 24px 72px -12px rgba(0,0,0,.12);margin:0 auto}
.boxcard picture{width:100%;display:block}.boxcard img{border-radius:6px;width:100%;object-fit:cover}
.boxcard h2{font-size:50px;line-height:1.2;padding-bottom:26px}.boxcard h2.h2sm{font-size:36px}
.page-commercial .boxcard h2{font-size:45px}.page-contact .boxcard h2.h2sm{font-size:35px;padding-bottom:20px}
.boxcard p,.boxcard li{font-size:16px;line-height:1.75;color:var(--text)}
.bul{margin:0;padding:0 0 23px 1em;list-style:disc}.boxcard .bul li{line-height:26px}
.tagline{font-style:italic;color:var(--blue)!important}
.ccard{margin-top:18px;background:#f7f7f7;padding:14px 18px;border-left:4px solid var(--blue);border-radius:0 6px 6px 0}
.ccard h4,.ccard h2.contact-name{font-size:18px;line-height:1.15;padding-bottom:4px}.ccard p{padding:0;font-size:14px}.ccard span{display:inline-block;width:64px;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#888}
/* services */
.svchero{position:relative;overflow:hidden;min-height:534px;display:flex;align-items:center}
.sh{position:relative;z-index:2}.sh-copy{max-width:510px;padding:128px 0}
.sh-copy h1{font-size:50px;line-height:1.15;padding-bottom:20px}
.sh-copy .eyebrow{font-size:14px;line-height:1.4;padding-bottom:20px}
.sh-copy p{font-size:16px;line-height:1.75}
.sh-img{position:absolute;top:0;right:0;bottom:0;width:58%;background:var(--img-webp,var(--img)) 70% center/cover no-repeat;clip-path:polygon(0 0,100% 0,100% 100%,40% 100%)}
.sh-img::before,.sh-img::after{content:"";position:absolute;top:0;bottom:0;width:26px;background:#fff;transform:skewX(-25deg);transform-origin:top}
.sh-img::before{left:43%}.sh-img::after{left:78%}
.svclist{background:#e0e0e0;padding:81px 0 54px}
.svclist h2.blue{color:var(--blue);font-size:40px;line-height:1.2;margin-bottom:10px}
.svclist h3{font-size:22px;line-height:1;margin:0}.svclist p{font-size:14px;line-height:1.7;color:var(--text);padding-bottom:14px}
/* PTDU (IBM Plex Sans body, IBM Plex Sans Condensed headings) */
.ptdu{font-family:"IBM Plex Sans",Helvetica,Arial,sans-serif}
.ptdu h1,.ptdu h2,.ptdu h3,.ptdu h4,.ptdu h5{font-family:"IBM Plex Sans Condensed","IBM Plex Sans",sans-serif;font-weight:500;color:#111}
.ptdu p,.ptdu blockquote{font-size:16px;line-height:1.75}
.topbar{background:var(--navy);color:#fff;text-align:center;text-transform:uppercase;letter-spacing:1px;font-size:14px;line-height:1.4;font-weight:500;padding:8px 10px}
.pt-hero{--grad:linear-gradient(90deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.7) 40%,rgba(255,255,255,0) 70%);background:var(--grad),var(--img-webp,var(--img)) center/cover no-repeat;padding:81px 0}
.pt-copy{max-width:510px}.pt-copy h1{font-size:72px;line-height:1.15;padding-bottom:20px}.pt-copy p{color:#333}
.ptdu .eyebrow.blue2{font-family:"IBM Plex Sans",sans-serif;font-size:14px;line-height:1.4;letter-spacing:1px;font-weight:500;padding-bottom:20px}
.pill{display:inline-block;background:#0b4e84;color:#fff;text-decoration:none;font:700 14px/1.7 "IBM Plex Sans",sans-serif;border-radius:100px;padding:12px 24px;margin:20px 8px 0 0}
.pill.white{background:#fff;color:var(--navy);margin:0}
.bp{background:url('/img/blueprint-tile.webp') repeat;background-size:700px}
.pt-about{padding:54px 0}
.pt-card{background:#fff;padding:27px 30px;text-align:center;border-radius:6px;box-shadow:0 24px 72px -12px rgba(0,0,0,.12)}
.pt-card p{color:#333}.ptlogo{margin:0 auto 10px;width:200px}.pt-card h2{font-size:50px;line-height:1.2}
.pt-sec{padding:81px 0;background:rgba(255,255,255,.7)}.pt-sec.grey{background:rgba(215,215,215,.4)}
.pt-sec h2{font-size:32px;line-height:1.3}.pt-sec h2.big{font-size:50px;line-height:1.2}.pt-sec p{color:#333}
.intro{max-width:800px;margin:0 auto 27px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:54px 60px;margin-top:54px;text-align:left}.narrowg{max-width:800px;margin:54px auto 0;gap:54px 44px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;margin-top:54px;text-align:left}
.feat h4,.feat h3{font-size:18px;line-height:1.4;margin:.4em 0 0}.ico{width:30px;height:30px;color:var(--navy)}
.quote{margin:0}.quote .ico{width:34px;height:34px}.quote blockquote{margin:12px 0;color:#333}
.quote figcaption{font:500 18px/1.4 "IBM Plex Sans Condensed","IBM Plex Sans",sans-serif;color:#111}
.pt-cta{background:var(--navy);padding:81px 0}.ptc{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.ptc h3{color:#fff!important;font-size:32px;line-height:1.3;padding:0}
/* responsive (Divi breakpoint 980px) */
@media (max-width:980px){
 body{font-size:14px}
 h1{font-size:24px}h2{font-size:20px;line-height:1.2}h3{font-size:17px}h4{font-size:13px}
 .hdr .wrap{margin:0 20px}
 .logobar{padding:20px 0 61px}
 .menubar .wrap.mb{margin:0 10%;height:52px;justify-content:flex-end;position:relative}
 .burger{display:flex;align-items:center;font-size:0;color:#fff;padding:15px 0;cursor:pointer}
 .burger span,.burger span::before,.burger span::after{display:block;width:22px;height:2px;background:#fff;position:relative;content:""}
 .burger span::before{position:absolute;top:-7px}.burger span::after{position:absolute;top:7px}
 .menu{display:none;position:absolute;left:-12.5%;right:-12.5%;top:100%;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-top:3px solid var(--blue);box-shadow:0 2px 5px rgba(0,0,0,.1);padding:5% 6%}
 .nt:checked~.menu{display:flex}
 .menu a{color:#333;padding:10px 0;margin:0;border-bottom:1px solid #eee;font-size:14px;line-height:1.4}.menu a[aria-current]{color:var(--blue);box-shadow:none}
 .hero{padding:61px 0}
 .hero,.schedule,.sh-img{background-image:var(--grad,none),var(--img-sm,var(--img-webp,var(--img)))}
 .hero h1{font-size:24px}.hero p{font-size:14px;line-height:1.5;padding-top:15px}
 .hero .eyebrow{font-size:13px;padding-bottom:10px}
 .hero-home{padding:70px 0 54px;--grad:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45));background:var(--grad),var(--img-sm,var(--img-webp,var(--img))) center/cover no-repeat #222}
 .hero-copy.right{margin:0;max-width:none;padding:0 20px}
 .hero-home p{font-size:14px;line-height:1.4;padding-top:30px}
 .statement{padding:80px 0}
 .st{grid-template-columns:1fr}
 .st h4,.st h2.st-label{font-size:13px;padding-bottom:50px}.st h3{font-size:17px;margin-bottom:30px}.st p{font-size:14px}
 .touch{padding:80px 0 50px}.touch h2{font-size:24px}
 .row2{grid-template-columns:1fr 1fr;gap:15px}
 .schedule{padding:61px 0}.schedule h2{font-size:20px}.schedule p{font-size:14px}.bigphone a{font-size:17px}
 .cardsec{padding:50px 0}
 .boxcard,.g2,.g3{grid-template-columns:1fr}.boxcard{padding:30px 20px;gap:30px}
 .boxcard>img,.boxcard>picture,.boxcard>div:first-child:has(img){order:2}
 .boxcard h2,.boxcard h2.h2sm,.page-commercial .boxcard h2,.page-contact .boxcard h2.h2sm{font-size:20px;padding-bottom:20px}
 .boxcard p,.boxcard li{font-size:14px}
 .svchero{flex-direction:column;align-items:stretch;min-height:0}.sh-img{position:relative;width:100%;height:260px;clip-path:none}.sh-copy{padding:61px 0 40px}
 .sh-copy h1{font-size:24px}.sh-copy .eyebrow{font-size:13px}.sh-copy p{font-size:14px}
 .svclist{padding:80px 0 50px}.svclist h2.blue{font-size:20px;margin-bottom:20px}
 .ptdu p,.ptdu blockquote{font-size:14px}
 .pt-hero{padding:80px 0;--grad:linear-gradient(rgba(255,255,255,.82),rgba(255,255,255,.82));background:var(--grad),var(--img-sm,var(--img-webp,var(--img))) 70% center/cover no-repeat}
 .pt-copy h1{font-size:24px}.ptdu .eyebrow.blue2,.topbar{font-size:13px}
 .pt-card{padding:30px 20px}.pt-card h2,.pt-sec h2.big{font-size:20px}.pt-sec h2{font-size:17px}
 .pt-sec,.pt-about,.pt-cta{padding:80px 0}
 .feat h4,.feat h3{font-size:13px}.statement h1.nf{font-size:20px;line-height:1.2}.quote figcaption{font-size:14px}
 .formfoot .btn-submit{margin-left:auto}
 .menubar .wrap.mb{padding-right:0}.ptc h3{font-size:17px}
 .ftr{padding:15px 0}
}
/* contact form backend (2026-11-11) */
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
p.formmsg:empty{display:none}
.formmsg.ok{color:#2e7d32}
.formmsg.err{color:#b3261e}
.formmsg a{color:inherit;text-decoration:underline}
