:root{--blue:#0076bb;--navy:#003a70;--ink:#333;--text:#666;--grey:#f5f5f5;--max:1080px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:15px/1.9 Questrial,Helvetica,Arial,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{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;color:var(--ink);line-height:1.2;margin:0 0 .6em}
h1{font-size:clamp(30px,4vw,46px)}h2{font-size:clamp(26px,3vw,38px)}h3{font-size:22px}h4{font-size:18px}
p{margin:0 0 1em}.wrap{width:80%;max-width:var(--max);margin:0 auto}.narrow{max-width:860px}.center{text-align:center}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
/* header */
.logobar{background:#fff;padding:12px 0}.logo{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.mark{width:44px;height:44px}.lw{display:flex;flex-direction:column;line-height:1}
.lw b{font:900 27px/0.95 Roboto,"Arial Black",Arial,sans-serif;color:#141414;letter-spacing:-.01em}
.lw i{font:900 14.5px/1.15 Roboto,Arial,sans-serif;font-style:normal;color:var(--blue);letter-spacing:-.01em}
.hdr{position:relative;z-index:20;box-shadow:0 1px 0 rgba(0,0,0,.1)}
.menubar{background:var(--blue)}
.mb{display:flex;justify-content:flex-end}
.menu{display:flex;flex-wrap:wrap;justify-content:flex-end}
.menu a{color:#fff;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:600;padding:12px 0 12px 22px;letter-spacing:.02em}
.menu a:hover{opacity:.75}.menu a[aria-current]{color:rgba(255,255,255,.65)}
.menu a.phone{font-weight:700}
.nt,.burger{display:none}
/* hero */
.hero{position:relative;color:#fff;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),var(--img) center/cover no-repeat #222;padding:clamp(70px,9vw,110px) 0}
.hero h1{color:#fff}.hero p{font-size:16px;color:#fff;max-width:900px}
.hero-copy{max-width:900px}.hero-copy.right{margin-left:auto;max-width:540px}
.hero-home{background:linear-gradient(90deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.45) 45%,rgba(0,0,0,.55)),var(--img) center/cover no-repeat #222;padding:clamp(70px,9vw,100px) 0}
.hero-home p{font-size:18px}
.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600;color:#fff;margin-bottom:.8em}
.eyebrow.blue{color:var(--blue)}.eyebrow.blue2{color:var(--navy);letter-spacing:.08em;font-family:"IBM Plex Sans",sans-serif}
/* statements */
.statement{padding:54px 0}.statement.grey{background:var(--grey)}
.st{display:grid;grid-template-columns:1fr 2fr;gap:5%}
.st h4{font-family:Questrial,sans-serif;text-transform:uppercase;font-size:11px;letter-spacing:.08em;color:#444;margin-top:4px}
.st h3{font-size:22px;margin-bottom:1.2em}
/* form */
.touch{padding:54px 0 80px}.touch h2{font-size:30px}
.cf input,.cf textarea{width:100%;font:inherit;font-size:14px;border:1px solid #ddd;border-radius:3px;padding:10px 12px;background:#fff;color:#333}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.formfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.note{font-size:13px;color:#888}
.btn-submit{font:500 18px Roboto,sans-serif;color:var(--blue);background:transparent;border:2px solid var(--blue);border-radius:3px;padding:6px 22px;cursor:pointer}
.btn-submit:hover{background:var(--blue);color:#fff}
.cf.stacked label{display:block;font-size:13px;color:#333;margin-bottom:10px}
.cf.stacked input,.cf.stacked textarea{background:#eee;border:0;margin-top:4px}
/* schedule CTA */
.schedule{position:relative;color:#fff;padding:60px 0 70px;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.45) 35%,rgba(60,60,60,.9) 62%,#4a4a4a 100%),var(--img) center 30%/cover no-repeat #444}
.schedule h2{color:#fff;font-size:clamp(28px,3.4vw,40px);padding-top:30px}
.schedule p{font-size:14px;color:#f1f1f1}
.bigphone{margin:.4em 0 .2em}.bigphone a{color:#4fb3f0;text-decoration:none;font-size:clamp(24px,2.4vw,28px)}
.schedule .alt{font-size:14px}.schedule .alt a{color:#fff}
.ftr{background:#222;color:#666;font-size:12px;padding:16px 0}
/* box cards */
.cardsec{padding:clamp(30px,4vw,30px) 0 clamp(40px,4vw,30px)}
.boxcard{display:grid;grid-template-columns:1fr 1.1fr;gap:6%;align-items:center;background:#fff;padding:3%;box-shadow:0 2px 40px rgba(0,0,0,.12);margin:0 auto}
.boxcard.top{align-items:start}
.boxcard img{border-radius:4px;width:100%;object-fit:cover}
.boxcard h2{font-size:clamp(26px,2.8vw,34px)}.boxcard h2.h2sm{font-size:clamp(22px,2.2vw,26px)}
.boxcard p,.boxcard li{font-size:13.5px;line-height:1.9;color:#555}
.bul{margin:0 0 1em;padding-left:1.2em}
.tagline{font-style:italic;color:var(--blue)!important}
.ccard{margin-top:18px;background:var(--grey);padding:14px 18px;border-left:4px solid var(--blue)}
.ccard h4{margin:0 0 .3em}.ccard p{margin:0;font-size:14px}.ccard span{display:inline-block;width:64px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#888}
/* services */
.svchero{position:relative;overflow:hidden;min-height:430px;display:flex;align-items:center}
.sh{position:relative;z-index:2}.sh-copy{max-width:420px;padding:60px 0}
.sh-copy h1{font-size:clamp(28px,3vw,40px)}
.sh-img{position:absolute;top:0;right:0;bottom:0;width:58%;background: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:#e3e3e3;padding:54px 0}
.svclist h2.blue{color:var(--blue);font-size:clamp(24px,2.6vw,32px)}
.svclist h3{font-size:18px;margin:1em 0 .2em}.svclist p{font-size:13px;color:#555;margin:0}
/* PTDU */
.ptdu{font-family:"IBM Plex Sans",sans-serif}
.ptdu h1,.ptdu h2,.ptdu h3,.ptdu h4{font-family:"IBM Plex Sans",sans-serif;color:#111}
.topbar{background:var(--navy);color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:600;padding:6px 10px}
.pt-hero{background:linear-gradient(90deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.7) 40%,rgba(255,255,255,0) 70%),var(--img) center/cover no-repeat;padding:clamp(60px,7vw,80px) 0}
.pt-copy{max-width:470px}.pt-copy h1{font-size:clamp(34px,4.4vw,54px);font-weight:500}.pt-copy p{color:#333;font-size:15px}
.pill{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;font-weight:600;font-size:13px;border-radius:999px;padding:8px 18px;margin:6px 6px 0 0}
.pill.white{background:#fff;color:var(--navy)}
.bp{background:url('/img/blueprint-tile.jpg') repeat;background-size:700px}
.pt-about{padding:40px 0 30px}
.pt-card{background:#fff;padding:24px 3% 24px;text-align:center;box-shadow:0 0 30px rgba(0,0,0,.08)}
.pt-card p{color:#333}.ptlogo{margin:0 auto 10px;width:200px}
.pt-sec{padding:60px 0;background:rgba(255,255,255,.78)}.pt-sec.grey{background:rgba(235,235,235,.82)}
.pt-sec h2{font-size:24px}.pt-sec h2.big{font-size:clamp(28px,3vw,38px)}.pt-sec p{color:#333;font-size:14px}
.intro{max-width:560px;margin:0 auto 30px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:30px 40px;margin-top:30px}.narrowg{max-width:620px;margin:0 auto}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:30px}
.feat h4{font-size:15px;margin:.4em 0}.ico{width:30px;height:30px;color:var(--navy)}
.quote{margin:0}.quote .ico{width:34px;height:34px}.quote blockquote{margin:12px 0;font-size:14px;color:#333}.quote figcaption{font-weight:500;color:#111}
.pt-cta{background:var(--navy);padding:56px 0}.ptc{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.ptc h3{color:#fff!important;margin:0;font-size:24px}
/* responsive */
@media (max-width:980px){
 .wrap{width:88%}
 .logobar{padding:14px 0}
 .menubar .mb{justify-content:space-between;position:relative}
 .burger{display:flex;align-items:center;gap:10px;color:#fff;font:600 13px Roboto,sans-serif;text-transform:uppercase;padding:12px 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:-6%;right:-6%;top:100%;flex-direction:column;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;border-bottom:1px solid #eee;font-size:13px}.menu a[aria-current]{color:var(--blue)}
 .st,.boxcard,.g2,.g3{grid-template-columns:1fr}.boxcard{padding:6%}
 .hero-copy.right{margin-left:0}
 .row2{grid-template-columns:1fr}
 .svchero{flex-direction:column;align-items:stretch;min-height:0}.sh-img{position:relative;width:100%;height:260px;clip-path:none}.sh-copy{padding:40px 0}
 .pt-hero{background:linear-gradient(rgba(255,255,255,.82),rgba(255,255,255,.82)),var(--img) 70% center/cover no-repeat}
}
/* v2 scale tuning to match the old Divi proportions on desktop */
@media (min-width:981px){
 body{font-size:16px;line-height:2}
 .menu a{font-size:12.5px}
 .hero h1{font-size:50px}.hero p{font-size:18px}.hero-home p{font-size:20px}
 .statement{padding:84px 0 92px}.st h3{font-size:28px;margin-bottom:1.3em}.st p{font-size:16.5px;line-height:2}
 .touch{padding:70px 0 110px}.touch h2{font-size:36px}.cf input,.cf textarea{font-size:15px;padding:12px 14px}
 .schedule{padding:90px 0 120px}.schedule h2{font-size:46px}.schedule p{font-size:15px}.bigphone a{font-size:32px}
 .ftr{padding:22px 0}
 .boxcard p,.boxcard li{font-size:14.5px}.boxcard h2{font-size:40px}.boxcard h2.h2sm{font-size:30px}
 .cardsec{padding:44px 0 50px}
 .svclist p{font-size:14px}.svclist h3{font-size:21px}.svclist h2.blue{font-size:38px}
 .sh-copy h1{font-size:44px}.svchero{min-height:500px}
}
