/* Hallmark · macrostructure: Photographic · theme: studied-DNA (source: https://m2mini.com/)
 * BP adaptation: yellow, supplied media, verified services; no copied testimonials or claims.
 * nav: two-tier contractor masthead · footer: service index requested by reference
 * pre-emit critique: P4 H4 E4 S5 R4 V4 */
/* Reference-specific tokens are in tokens.css. */
svg.arrow-icon{display:inline-block;width:1em;height:1em;min-width:1em;flex-shrink:0;vertical-align:-.12em;pointer-events:none}
@font-face{font-family:'Open Sans';src:url('assets/open-sans-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Open Sans';src:url('assets/open-sans-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Open Sans';src:url('assets/open-sans-700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Oswald';src:url('assets/oswald-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Oswald';src:url('assets/oswald-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Oswald';src:url('assets/oswald-700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@media(min-width:47.01rem) and (max-width:64rem){.hero .hero-inner{grid-template-columns:minmax(0,1fr);min-height:540px}.hero .hero-copy{max-width:680px}.hero .hero-copy h1{font-size:3rem}}
body{line-height:1.65}
h1,h2,h3{letter-spacing:0;line-height:1.2}
.wrap{max-width:1260px}
.mast-inner{display:flex;justify-content:space-between;min-height:104px;gap:var(--space-lg)}
.brand{display:flex;align-items:center;gap:var(--space-md);width:auto}
.brand img{width:68px;height:80px;object-fit:contain}
.brand span{display:grid;gap:var(--space-2xs)}
.brand strong{font:700 1.375rem/1.15 var(--font-display);letter-spacing:.03em}
.brand small{font:500 .75rem/1.2 var(--font-display);letter-spacing:.09em;color:var(--color-accent-text)}
.mast-contact{display:flex;align-items:center;gap:var(--space-lg)}
.mast-contact>a:first-child{font:700 1.375rem/1 var(--font-display)}
.mast-contact .button{padding-inline:var(--space-xl)}
.menu-toggle{display:none}
.mobile-call{display:none}
.desktop-nav{display:block;background:var(--color-paper-2);border-block:1px solid var(--color-rule)}
.desktop-nav .wrap{display:flex;align-items:center;gap:0}
.desktop-nav a{display:flex;align-items:center;min-height:52px;padding-inline:var(--space-md);font:600 .875rem/1 var(--font-display);letter-spacing:.07em;text-transform:uppercase}
.desktop-nav a[aria-current="location"]{background:color-mix(in oklch,var(--color-accent) 15%,transparent);color:var(--color-accent-text)}
.button,.text-link{font-family:var(--font-display);font-weight:600;letter-spacing:.045em;text-transform:uppercase;font-size:.875rem;line-height:1;min-height:50px}
.button{gap:var(--space-sm);padding:var(--space-md) var(--space-xl)}
.text-link{text-decoration:none;justify-self:start}
.hero-inner{grid-template-columns:minmax(0,1.42fr) minmax(0,1fr);min-height:600px;gap:var(--space-lg);padding-block:var(--space-2xl) var(--space-2xl);align-items:center}
.hero-copy{gap:var(--space-lg);max-width:none}
.hero-copy h1{line-height:1.1;font-size:var(--text-display)}
.hero-copy>p{max-width:52ch;font-size:var(--text-lead)}
.hero-copy .hero-location{justify-self:start;max-width:none;background:var(--color-accent);color:var(--color-accent-ink);font:600 .75rem/1.2 var(--font-display);letter-spacing:.08em;padding:var(--space-xs) var(--space-sm)}
.hero-actions{align-items:center;gap:var(--space-md);margin-top:var(--space-xs)}
.hero::before{background:color-mix(in oklch,var(--color-overlay) 63%,transparent)}
.hero-contact{background:color-mix(in oklch,var(--color-panel) 95%,transparent);color:var(--color-paper);padding:var(--space-xl);display:grid;gap:var(--space-lg);border-radius:var(--radius-control)}
.hero-contact h2{font-size:1.875rem}
.hero-contact p{color:var(--color-on-dark-muted);font-size:var(--text-base)}
.hero-contact>a{font:600 1.75rem/1.2 var(--font-display);color:var(--color-accent);justify-self:start;min-height:44px;display:flex;align-items:center}
.hero-contact>span{font-size:var(--text-sm);color:var(--color-on-dark-muted)}
.service-band{background:var(--color-ink);color:var(--color-paper);border:0}
.service-band .wrap{display:flex;justify-content:center;align-items:center;gap:var(--space-xl);min-height:56px;flex-wrap:wrap;padding-block:var(--space-xs)}
.service-band span{font:500 .875rem/1.3 var(--font-display);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.section{padding-block:var(--space-section)}
.services-section{background:var(--color-paper-2)}
.section-heading{display:block;text-align:center;margin-bottom:var(--space-xl)}
.section-heading h2::after{content:'';display:block;width:48px;height:3px;background:var(--color-accent-text);margin:var(--space-md) auto var(--space-lg)}
.section-heading p{max-width:72ch;margin-inline:auto}
.services-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg)}
.service-card{background:var(--color-paper);box-shadow:0 1px 4px color-mix(in oklch,var(--color-shadow) 9%,transparent);display:flex;flex-direction:column;border-radius:var(--radius-control);overflow:clip}
.service-card>img{aspect-ratio:1.4;object-fit:cover}
.service-card>div{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:var(--space-card);gap:var(--space-md)}
.service-card h3{font-size:1.5rem;min-height:2.4em}
.service-card p{font-size:.9375rem;line-height:1.65}
.service-card .text-link{margin-top:auto;padding-top:var(--space-md);color:var(--color-accent-text)}
.projects{background:var(--color-paper)}
.projects-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xl)}
.project-grid{gap:var(--space-lg)}
.project-picture{aspect-ratio:16/10}
.project-controls{padding-block:var(--space-sm)}
.project-link{font-family:var(--font-display);font-size:var(--text-base);text-transform:uppercase;letter-spacing:.04em;padding-block:var(--space-xs);min-height:48px}
.project-link span{border-radius:var(--radius-control);width:36px;min-height:36px}
.project-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg);margin-top:var(--space-lg)}
.project-photos button{position:relative;padding:0;border:0;background:var(--color-ink);color:var(--color-paper);text-align:left;overflow:clip}
.project-photos img{aspect-ratio:4/3;object-fit:cover}
.project-photos span{position:absolute;bottom:var(--space-xs);right:var(--space-xs);font:500 .75rem/1 var(--font-display);padding:var(--space-sm);background:var(--color-ink);color:var(--color-paper)}
.about-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-xl);align-items:center}
.about-copy h2{font-size:var(--text-title)}
.about-copy{gap:var(--space-lg)}
.about-copy .button{justify-self:start}
.about-photo img{height:340px;aspect-ratio:auto;object-position:center 25%}
.about-facts{display:grid;gap:var(--space-lg)}
.about-facts h3{font-size:1.25rem;margin-bottom:var(--space-xs)}
.about-facts p{font-size:.9375rem;color:var(--color-on-dark-muted)}
.area-section,.faq-section{background:var(--color-paper-2);padding-block:var(--space-xl)}
.area-layout,.faq-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-xl)}
.area-layout>div{align-self:center;max-width:65ch;color:var(--color-muted)}
.faq-section.wrap{width:100%;max-width:none;padding-inline:0}
.faq-layout{max-width:1260px;padding-inline:var(--page-gutter);margin-inline:auto}
.faq-layout>div:first-child{gap:var(--space-md)}
.faq-list summary{font-weight:600;font-size:.9375rem;min-height:60px;padding-block:var(--space-md)}
.faq-list summary::after{top:var(--space-md)}
.contact{background:var(--color-ink-2);color:var(--color-paper);text-align:center;padding-block:var(--space-2xl)}
.contact>.wrap>p{max-width:70ch;margin:var(--space-lg) auto;color:var(--color-on-dark-muted)}
.contact-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-md)}
.contact-draft{max-width:700px;margin:var(--space-lg) auto 0;text-align:left}
.contact-draft>summary{cursor:pointer;text-align:center;padding:var(--space-md);min-height:48px;text-decoration:underline;font-size:var(--text-sm)}
.contact-draft .estimate-form{margin-top:var(--space-lg)}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr .8fr 1.2fr;gap:var(--space-xl);padding-block:var(--space-xl)}
.footer-grid h3{font-size:1.125rem;text-transform:uppercase;margin-bottom:var(--space-md)}
.footer-grid p{font-size:.875rem;color:var(--color-on-dark-muted);margin-bottom:var(--space-md)}
.footer-grid a{display:flex;align-items:center;min-height:44px;font-size:.875rem;white-space:nowrap}
.footer-bottom{padding-block:var(--space-lg);border-top:1px solid var(--color-dark-rule);font-size:.75rem;color:var(--color-on-dark-muted);text-align:center}
@media(hover:hover){.hero-contact>a:hover,.footer-grid a:hover{text-decoration:underline}.project-photos button:hover img{opacity:.85}.faq-list summary:hover{color:var(--color-accent-text)}}
a:active,summary:active{opacity:.8}
.service-band span{white-space:normal}
.hero-video-toggle{min-height:44px}
.contact :focus-visible{outline-color:var(--color-accent)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}
html:has(dialog[open]){overflow-y:hidden}
.form-note a{overflow-wrap:anywhere;text-decoration:underline}
.contact .estimate-form :focus-visible{outline-color:var(--color-focus)}
.lightbox-top h2{min-width:0}
@media(max-width:30rem){.lightbox-bottom{flex-direction:column;align-items:stretch}.lightbox-buttons{justify-content:flex-end}.lightbox-top{align-items:flex-start}}
@media(max-width:64rem){.mast-contact .button{padding-inline:var(--space-lg)}.hero-inner{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--space-lg)}.hero-contact{padding:var(--space-lg)}.hero-copy h1{font-size:3.25rem}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card h3{min-height:0}.about-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.about-facts{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:47rem){:root{--space-section:3rem;--page-gutter:1.25rem}.mast-inner{min-height:92px;gap:var(--space-sm)}.brand img{width:48px;height:64px}.brand{gap:var(--space-xs)}.brand strong{font-size:1rem}.brand small{font-size:.625rem}.mast-contact{display:none}.menu-toggle{display:block;font-family:var(--font-display);text-transform:uppercase;min-width:48px}.desktop-nav{display:none}.mobile-nav{display:block!important}.mobile-nav[hidden]{display:none!important}.hero-inner{grid-template-columns:minmax(0,1fr);padding-block:var(--space-xl) var(--space-2xl);min-height:0}.hero-copy{gap:var(--space-lg)}.hero-copy h1{font-size:clamp(2.125rem,6.5vw,3rem)}.hero-copy>p{font-size:1rem}.hero-contact{display:none}.hero-actions{gap:var(--space-sm)}.button{padding-inline:var(--space-lg);min-height:48px}.hero-video-toggle{bottom:var(--space-xs);font-size:.75rem;min-height:36px}.service-band .wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);padding-block:var(--space-md)}.service-band span{font-size:.75rem}.services-grid{gap:var(--space-lg)}.service-card>div{padding:var(--space-md)}.service-card h3{font-size:1.375rem}.service-card .text-link{font-size:.75rem;letter-spacing:0}.project-grid{grid-template-columns:minmax(0,1fr)}.projects-heading{flex-wrap:wrap;gap:var(--space-md)}.project-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.about-layout,.area-layout,.faq-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.about-photo img{height:360px}.about-facts{grid-template-columns:minmax(0,1fr)}.footer-grid{gap:var(--space-lg)}.footer-grid>div:first-child,.footer-grid>div:last-child{grid-column:1/-1}.contact h2{font-size:1.875rem}.contact-draft>summary{white-space:nowrap}}
@media(max-width:35rem){.services-grid{grid-template-columns:minmax(0,1fr)}.service-card>img{aspect-ratio:1.6}.service-card>div{padding:var(--space-lg)}.hero-actions .button{font-size:.8125rem}.project-controls{flex-wrap:wrap}.footer-grid{grid-template-columns:minmax(0,1fr)}.footer-grid>div{grid-column:auto}}

/* Meeting polish: retain the established layout, improve reading and touch rhythm. */
.hero::before{background:linear-gradient(90deg,color-mix(in oklch,var(--color-overlay) 80%,transparent),color-mix(in oklch,var(--color-overlay) 42%,transparent))}
.hero-copy>p{max-width:48ch}
.service-card>img{width:100%}
.projects-heading{margin-bottom:var(--space-lg)}
.project-link{min-height:56px}
.area-section{padding-block:var(--space-2xl)}
.faq-section{border-top:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-2xl)}
.contact-draft{margin-top:var(--space-xl)}
.contact-draft .estimate-form{margin-top:0;gap:var(--space-lg)}
@media(max-width:35rem){
  .hero-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:var(--space-sm)}
  .hero-actions .button{width:100%;font-size:var(--text-sm)}
  .hero::before{background:color-mix(in oklch,var(--color-overlay) 68%,transparent)}
  .project-controls{align-items:center;gap:var(--space-xs)}
  .project-type{font-size:.75rem}
  .contact-actions{display:grid;grid-template-columns:minmax(0,1fr)}
  .estimate-form .button{width:100%}
}
