*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:Arial,"Helvetica Neue",sans-serif;font-size:1rem;line-height:1.6}
a{color:inherit;text-underline-offset:.2em}
button,a{touch-action:manipulation}
img{max-width:100%;display:block}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-height:1.05;letter-spacing:-.035em}
h1{max-width:12ch;margin-bottom:1.25rem;font-size:clamp(2.9rem,8vw,6.8rem)}
h2{font-size:clamp(2.1rem,5vw,4rem);max-width:14ch}
h3{font-size:1.25rem}
.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}
.skip-link{position:fixed;z-index:100;top:.5rem;left:.5rem;padding:.75rem 1rem;background:#fff;color:#000;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.site-header{min-height:5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem clamp(1rem,4vw,4rem);border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:#fff}
.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:900;letter-spacing:-.02em}
.brand__mark{display:grid;place-items:center;width:2.75rem;aspect-ratio:1;color:#fff;background:var(--primary);border-radius:50%;font-size:.78rem;letter-spacing:.04em}
[data-style="precision"] .brand__mark{border-radius:.35rem;background:var(--primary-dark);box-shadow:inset 0 -5px 0 var(--accent)}
.brand__logo{max-width:12rem;max-height:3.5rem;object-fit:contain}
[data-style="precision"] .brand__logo{max-width:13rem}
nav{display:flex;align-items:center;gap:clamp(1rem,3vw,2rem);font-weight:700}
nav a{text-decoration:none}
nav a:hover{text-decoration:underline}
.nav-call{padding:.65rem 1rem;color:#fff;background:var(--primary)}
.nav-toggle{display:none;width:2.75rem;height:2.75rem;border:0;background:var(--ink)}
.nav-toggle span[aria-hidden]{display:block;width:1.25rem;height:2px;margin:auto;background:#fff;box-shadow:0 -6px #fff,0 6px #fff}
.hero{min-height:calc(100svh - 5rem);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);overflow:hidden;background:var(--surface)}
.hero__content{align-self:center;padding:clamp(4rem,9vw,8rem) clamp(1rem,7vw,8rem)}
.kicker{margin-bottom:1rem;color:var(--primary);font-size:.85rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.hero__lead,.large-copy{max-width:42rem;font-size:clamp(1.1rem,2vw,1.35rem)}
.button-row{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.button{display:inline-flex;min-height:3.2rem;align-items:center;justify-content:center;padding:.8rem 1.2rem;border:2px solid var(--ink);text-decoration:none;font-weight:900}
.button--primary{color:#fff;border-color:var(--primary);background:var(--primary)}
.button--secondary{background:transparent}
.button:hover{transform:translateY(-2px)}
.hero__visual{position:relative;display:grid;place-items:center;min-height:24rem;background:var(--primary-dark);clip-path:polygon(14% 0,100% 0,100% 100%,0 100%)}
.hero__brand{display:grid;place-items:center;width:min(32vw,28rem);min-height:15rem;padding:2rem;background:#fff;box-shadow:1.5rem 1.5rem 0 var(--ink);transform:rotate(-4deg)}
.hero__brand img{width:100%;height:auto;max-height:13rem;object-fit:contain}
.hero__brand span{text-align:center;font-size:2rem;font-weight:900;line-height:1.1}
[data-style="precision"] .hero__visual{clip-path:polygon(9% 0,100% 0,100% 100%,9% 100%,0 50%)}
[data-style="precision"] .hero__brand{border-radius:.25rem;box-shadow:1.2rem 1.2rem 0 var(--accent);transform:rotate(3deg)}
.section{padding:clamp(4.5rem,9vw,8rem) clamp(1rem,7vw,8rem)}
.section-heading{display:grid;grid-template-columns:minmax(12rem,.6fr) 1fr;column-gap:4rem;align-items:start;margin-bottom:3rem}
.section-heading .kicker{grid-column:1}.section-heading h2{grid-column:1}.section-heading>p:last-child{grid-column:2;grid-row:2;max-width:35rem}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));border-top:3px solid var(--ink);border-bottom:1px solid var(--ink)}
.service-card{position:relative;min-height:16rem;padding:2rem;border-right:1px solid color-mix(in srgb,var(--ink) 28%,transparent)}
.service-card__image{width:calc(100% + 4rem);height:12rem;margin:-2rem -2rem 2rem;object-fit:cover;border-bottom:1px solid color-mix(in srgb,var(--ink) 28%,transparent)}
.service-card__visual{display:grid;place-items:center;width:calc(100% + 4rem);height:12rem;margin:-2rem -2rem 2rem;background:repeating-linear-gradient(130deg,var(--primary-dark),var(--primary-dark) 22px,var(--primary) 22px,var(--primary) 25px);color:#fff;border-bottom:4px solid var(--accent)}
.service-card__visual span{font-size:3rem;font-weight:900;letter-spacing:-.08em}
.service-card:last-child{border-right:0}.service-card__number{display:block;margin-bottom:4rem;color:var(--primary);font-size:.8rem;font-weight:900}
.service-card p{color:var(--muted)}.service-card:has(.service-card__image,.service-card__visual) .service-card__number{margin-bottom:2rem}
.trust{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,8rem);padding:clamp(4rem,8vw,7rem) clamp(1rem,7vw,8rem);color:#fff;background:var(--ink)}
.trust .kicker{color:var(--accent)}.trust ul{display:grid;gap:0;margin:0;padding:0;list-style:none}.trust li{display:grid;grid-template-columns:2rem 1fr;gap:1rem;padding:1.5rem 0;border-top:1px solid #ffffff40}.trust li>span{color:var(--accent);font-weight:900}.trust p{margin:0;color:#ffffffbf}
.about{display:grid;grid-template-columns:.55fr 1fr;gap:clamp(3rem,8vw,8rem);background:#fff}
.about__label{align-self:start;padding-top:1rem;border-top:8px solid var(--accent);color:var(--muted);font-size:.8rem;font-weight:900;letter-spacing:.2em}
.reviews{background:var(--surface)}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.review-grid figure{margin:0;padding:2rem;background:#fff}.review-grid blockquote{margin:0 0 1.5rem;font-size:1.1rem}.review-grid figcaption{color:var(--muted);font-size:.875rem}
.review-links{display:flex;flex-wrap:wrap;gap:1.5rem}
.visit{padding:clamp(4rem,8vw,7rem) clamp(1rem,7vw,8rem);color:#fff;background:var(--primary-dark)}
.visit__intro{margin-bottom:3rem}.visit .kicker{color:var(--accent)}.visit__details{display:flex;flex-wrap:wrap;gap:1px;background:#ffffff35}.visit__details>div{flex:1 1 17rem;padding:2rem;background:var(--primary-dark)}.visit__details a{display:block}.contact-value{font-size:clamp(1.4rem,3vw,2rem);font-weight:900}.hours{margin:0}.hours div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #ffffff25}.hours dd{margin:0;text-align:right}.text-link{display:inline-block;margin-top:1rem;font-weight:900}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem clamp(1rem,4vw,4rem);background:#fff}.site-footer p{margin:0}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(max-width:800px){
  .site-header{position:relative}.nav-toggle{display:none}.js .nav-toggle{display:block}.site-header nav{flex-wrap:wrap}.js .site-header nav{position:absolute;z-index:20;top:100%;right:0;left:0;display:none;align-items:stretch;padding:1rem;background:#fff;border-bottom:2px solid var(--ink);box-shadow:0 1rem 2rem #0002}.js .site-header nav.is-open{display:grid}.site-header nav a{padding:.7rem}
  .hero{min-height:auto;grid-template-columns:1fr}.hero__visual{min-height:19rem;clip-path:none}.hero__brand{width:min(70vw,25rem);min-height:10rem}
  .section-heading,.trust,.about,.visit__intro{grid-template-columns:1fr}.section-heading>p:last-child{grid-column:1;grid-row:auto}.service-grid{grid-template-columns:1fr 1fr}.service-card:nth-child(2){border-right:0}
  .site-footer{align-items:flex-start;flex-direction:column}
}
@media(max-width:500px){.service-grid,.review-grid{grid-template-columns:1fr}.service-card{min-height:0;border-right:0;border-bottom:1px solid #0003}.service-card__number{margin-bottom:2rem}.button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button:hover{transform:none}}
