/* Readable type across desktop, tablet, and phone layouts. */
body{font-size:18px;line-height:1.6}
.brand-name{font-size:21px;line-height:1.2}
.brand-name small{font-size:12px;letter-spacing:4px;margin-top:6px}
nav{font-size:17px;gap:26px;line-height:1.4}
.button{font-size:18px;line-height:1.35;padding:17px 24px;gap:24px}
.menu{font-size:17px;line-height:1.3}
.eyebrow{font-size:13px;letter-spacing:2px;line-height:1.7}
.hero-copy{font-size:19px;line-height:1.75;max-width:460px;margin-bottom:32px}
.hero-bottom{font-size:13px;letter-spacing:1.1px;line-height:1.5}
.ticker{font-size:13px;letter-spacing:1.6px;line-height:1.5;flex-wrap:wrap}
.section-top p{font-size:18px;line-height:1.8;max-width:420px}
.service{min-height:325px;padding:32px}
.service-num{font-size:13px;line-height:1.5}
h3{font-size:24px;line-height:1.3}
.service p{font-size:17px;line-height:1.75;max-width:330px}
.service a{font-size:28px}
.image-label{font-size:12px;line-height:1.5}
.feature-text p{font-size:18px;line-height:1.8}
.principles div{font-size:17px;line-height:1.5;gap:16px}
.process-step h3{font-size:24px}
.process-step p{font-size:18px;line-height:1.8}
.area p{font-size:18px;line-height:1.8;max-width:440px}
.towns{max-width:530px}
.towns button{font-size:16px;line-height:1.4}
.estimate p{font-size:18px;line-height:1.8;max-width:410px}
.estimate .note{font-size:14px;line-height:1.8}
label{font-size:14px;letter-spacing:1px;line-height:1.5}
input,select,textarea{font-size:17px;line-height:1.5;padding:16px}
.form-status{font-size:17px;line-height:1.7}
summary{font-size:19px;line-height:1.6;align-items:center}
details p{font-size:18px;line-height:1.8;max-width:850px}
.footer-top p{font-size:16px;line-height:1.8}
.footer-bottom{font-size:13px;line-height:1.6}
@media(min-width:601px) and (max-width:1050px){nav{font-size:18px}.menu{font-size:17px}.brand-name{font-size:20px}}
@media(max-width:850px){.section-top p{max-width:550px}.feature-text{padding:60px 9%}.feature{grid-template-columns:1fr}.feature-image{height:430px}.area{flex-direction:column;align-items:flex-start}.area p{max-width:550px}.towns{max-width:none}.estimate{grid-template-columns:1fr;gap:45px}.estimate p{max-width:550px}.process-row{gap:24px}}
@media(max-width:600px){
body{font-size:17px}
.brand-name{font-size:17px;letter-spacing:1.6px}
.brand-name small{font-size:10px;letter-spacing:3px}
nav{font-size:18px}
.button,.hero-content .button{font-size:17px;padding:16px 20px;gap:22px}
.eyebrow{font-size:12px;letter-spacing:1.4px}
.hero{min-height:740px}
.hero-copy{font-size:18px;line-height:1.7;max-width:350px}
.hero-bottom{font-size:11px;letter-spacing:.6px;gap:20px}
.hero-bottom span{max-width:160px}
.hero-bottom a{gap:12px;max-width:150px}
.ticker{font-size:12px;gap:16px;letter-spacing:1px}
.section-top p,.feature-text p,.process-step p,.area p,.estimate p,details p{font-size:17px;line-height:1.8}
.service{min-height:285px;padding:28px}
.service-num{font-size:12px}
.service h3{font-size:24px;margin-top:50px;max-width:100%}
.service-icon{top:22px;right:28px;height:48px;margin:0}
.service-icon svg{height:45px;width:58px}
.service a{right:27px;top:78px}
.service p{font-size:17px;max-width:100%}
.feature-image{height:350px}
.feature-text{padding:55px 6%}
.image-label{font-size:11px}
.principles div{font-size:16px}
.process-step h3{font-size:22px}
.towns button{font-size:15px;padding:11px 14px}
.estimate .note{font-size:14px}
label{font-size:13px;letter-spacing:.7px}
input,select,textarea{font-size:17px;padding:14px}
.form-grid{grid-template-columns:1fr}
.field{grid-column:1/-1}
summary{font-size:18px}
.footer-top p{font-size:16px}
.footer-bottom{font-size:13px}
}
/* Compact the two primary calls to action without shrinking their lettering. */
header .button,.hero-content .button{
  padding:11px 17px;
  gap:16px;
  line-height:1.3;
  min-height:46px;
  width:fit-content;
  max-width:100%;
}
header .button{white-space:nowrap}

/* Original Pure Concrete wordmark, displayed light on the dark background. */
.brand{flex-shrink:0}
.brand-logo{display:block;width:270px;height:auto;filter:none;mix-blend-mode:normal}
.footer-top .brand-logo{width:285px}
@media(max-width:1050px){header .brand-logo{width:250px}}
@media(max-width:600px){header .brand-logo{width:215px}.footer-top .brand-logo{width:250px}}
@media(max-width:360px){header .brand-logo{width:190px}.menu{padding:10px}}

.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:24px;overflow-wrap:anywhere}
.contact-links a{font-size:18px;color:var(--ink);line-height:1.5;border-bottom:1px solid #ffffff35;padding-bottom:4px}
.contact-links a:hover{color:var(--accent);border-color:var(--accent)}
.contact-links span{margin-left:8px}
.footer-contact .contact-links{margin-top:12px;gap:7px}
.footer-contact .contact-links a{font-size:16px}
.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.hero-call{font-size:17px;line-height:1.5;border-bottom:1px solid #ffffff60;padding:8px 0}
.hero-call:hover{color:var(--accent)}
.form-status .send-note{font-size:15px;margin:8px 0 12px}
@media(max-width:600px){.hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.hero-call{font-size:16px}.hero{min-height:810px}.contact-links a{font-size:17px}.form-status .button{width:100%;margin-top:12px}.footer-top{align-items:flex-start}}

.towns button{background:transparent;font-family:inherit;cursor:pointer;text-align:center;transition:background .2s,color .2s,border-color .2s;min-height:44px}
.towns button:hover{background:#30342b;color:var(--ink);border-color:#b9bfaa}
.towns button[aria-pressed="true"]{background:#e1e3d8;color:#141512;border-color:#e1e3d8}
.towns button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* Search-friendly service navigation and readable service guides. */
.service h3 a{position:static;display:inline;color:inherit;font-size:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.footer-services{position:static;display:flex;flex-wrap:wrap;gap:14px 32px;font-size:16px;margin-bottom:40px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.footer-services a:hover,.related-links a:hover{color:var(--accent)}
.skip-link{position:fixed;top:10px;left:10px;transform:translateY(-150%);background:var(--ink);color:var(--bg);padding:12px 18px;z-index:100;font-size:16px}
.skip-link:focus{transform:none}
.service-page header{position:relative}
.service-hero{padding:45px 7% 75px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at right,#30342a 0%,#111211 70%)}
.breadcrumbs{display:flex;gap:14px;font-size:14px;color:var(--muted);margin-bottom:40px;flex-wrap:wrap}
.breadcrumbs a{text-decoration:underline}
.service-hero h1{font-family:'DM Sans',Arial,sans-serif;text-transform:none;font-size:clamp(25px,2.8vw,40px);font-weight:500;letter-spacing:-.7px;line-height:1.2;max-width:800px;margin:23px 0}
.service-tagline{font-size:clamp(65px,8vw,115px);line-height:.95;letter-spacing:-1px;margin:0 0 30px}
.service-intro{font-size:19px;line-height:1.8;max-width:800px;color:#c3c4bd;margin-bottom:30px}
.service-editorial{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:8%;align-items:start}
.service-copy-block{margin-bottom:45px}
.service-copy-block:last-child{margin-bottom:0}
.service-copy-block h2{font-family:'DM Sans',Arial,sans-serif;text-transform:none;font-size:28px;line-height:1.3;letter-spacing:-.5px;margin:0 0 18px;font-weight:500}
.service-copy-block p{font-size:18px;line-height:1.9;color:var(--muted)}
.service-aside{position:sticky;top:30px;background:var(--panel);padding:30px;border:1px solid var(--line)}
.service-aside h2{font-size:43px;line-height:1.05;margin:25px 0}
.service-aside p,.service-aside li{font-size:16px;line-height:1.8;color:var(--muted)}
.service-aside .button{margin-top:25px;font-size:16px;padding:14px 16px}
.aside-phone{display:block;font-size:21px;margin:25px 0;color:var(--ink)}
.service-aside ul{padding-left:20px;margin-bottom:0}
.service-coverage h2{font-size:50px}.service-coverage p{max-width:680px}
.service-page .faq h2{font-size:50px}
.related-services{padding-top:25px}
.related-services h2{font-size:48px;margin-bottom:30px}
.related-links{display:flex;flex-wrap:wrap;gap:16px 30px;font-size:18px}
.related-links a{border-bottom:1px solid var(--line);padding-bottom:8px}
@media(max-width:850px){.service-editorial{grid-template-columns:1fr;gap:45px}.service-aside{position:static}.service-hero{padding:35px 6% 60px}.service-intro{font-size:18px}.service-coverage h2{font-size:46px}}
@media(max-width:600px){.footer-services{display:flex;flex-direction:column;align-items:flex-start;font-size:16px;gap:18px}.service-hero h1{font-size:27px}.service-tagline{font-size:62px}.service-copy-block h2{font-size:25px}.service-copy-block p{font-size:17px}.service-page .faq h2{font-size:42px}.service-coverage h2{font-size:42px}.related-services h2{font-size:42px}.breadcrumbs{font-size:13px;margin-bottom:30px}.related-links{flex-direction:column;align-items:flex-start}.service-aside{padding:25px}.service-hero .hero-actions{gap:16px}}
@media(max-width:600px){.hero{height:auto;max-height:none}}
