:root{--bone:#f6f3ec;--paper:#fffdf8;--ink:#1f2328;--ink2:#2c3138;--brick:#a8402c;--brick-d:#8a3322;--tape:#f2c230;--muted:#5b6068;--line:#d9d3c4}
*{box-sizing:border-box}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Instrument Sans',system-ui,sans-serif;font-size:1.06rem;line-height:1.65;color:var(--ink);background:var(--bone);overflow-x:hidden}
h1,h2,h3,h4,.brand-name{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;line-height:1.05;letter-spacing:-.015em}
h2{font-size:clamp(2rem,4.6vw,3.3rem);margin-bottom:1rem}
h3{font-size:1.45rem}
.mono{font-family:'IBM Plex Mono',monospace;font-size:.78rem;letter-spacing:.04em}
a{color:var(--brick)}
a:hover{color:var(--brick-d)}
:focus-visible{outline:3px solid var(--tape);outline-offset:2px}
/* utility bar */
.util{background:var(--ink);color:#e9e6dd;font-size:.82rem;padding:.35rem 0}
.util a{color:#fff;text-decoration:none;font-weight:600}
.util .sep{opacity:.4;margin:0 .6rem}
/* nav */
.site-nav{background:var(--paper);border-bottom:3px solid var(--ink);padding:.55rem 0}
.site-nav .navbar-brand{display:flex;flex-direction:column;color:var(--ink);font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.55rem;line-height:1;white-space:normal}
.site-nav .navbar-brand small{font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:.68rem;letter-spacing:.06em;color:var(--brick);margin-top:.25rem}
.site-nav .nav-link{color:var(--ink);font-weight:600;padding:.5rem .85rem}
.site-nav .nav-link:hover{color:var(--brick)}
.btn-brick{background:var(--brick);color:#fff;border:2px solid var(--brick);font-weight:700;padding:.7rem 1.4rem;border-radius:3px}
.btn-brick:hover{background:var(--brick-d);border-color:var(--brick-d);color:#fff}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.55);font-weight:700;padding:.7rem 1.4rem;border-radius:3px}
.btn-ghost:hover{background:#fff;color:var(--ink)}
/* tape-measure signature */
.tape{height:26px;background:var(--tape);position:relative;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);
 background-image:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 12px),repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 60px);
 background-size:100% 9px,100% 18px;background-repeat:no-repeat;background-position:0 0,0 0}
.tape-s{height:16px;background-size:100% 6px,100% 12px}
/* hero */
.hero{background:var(--ink);color:#fff}
.hero .row{min-height:min(560px,calc(100vh - 150px))}
.hero-copy{padding:3.2rem 0 3rem}
.hero h1{font-size:clamp(2.6rem,6vw,4.7rem);margin-bottom:1rem}
.hero .lede{font-size:1.2rem;max-width:34rem;color:#e6e3da;margin-bottom:1.6rem}
.hero .hours{margin-top:1.6rem;color:#cfcbbf}
.hero-mosaic{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:6px;height:clamp(300px,42vw,520px)}
.hero-mosaic img{width:100%;height:100%;object-fit:cover;display:block}
.hero-mosaic .big{grid-row:1/3;object-position:35% 50%}
/* sections */
section{padding:5rem 0}
.alt{background:var(--paper)}
.dark{background:var(--ink);color:#fff}
.dark h2,.dark h3{color:#fff}
.kicker{font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--brick);margin-bottom:.6rem;display:block}
.dark .kicker{color:var(--tape)}
.lead2{font-size:1.15rem;max-width:40rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:1.2rem 0 0}
.chips li{border:2px solid var(--ink);padding:.35rem .9rem;font-weight:700;background:var(--paper);border-radius:3px}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:.55rem 0 .55rem 1.9rem;border-bottom:1px solid var(--line);position:relative}
.checks li:before{content:"";position:absolute;left:0;top:1.05rem;width:14px;height:6px;background:var(--tape);border:1.5px solid var(--ink)}
.photo{width:100%;object-fit:cover;display:block;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--tape)}
.ar-43{aspect-ratio:4/3}
/* designers */
.designer{background:var(--paper);border:2px solid var(--ink);padding:1.8rem;height:100%;position:relative}
.designer .role{font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--brick);margin-bottom:.8rem;display:block}
.designer .mark{width:64px;height:64px;background:var(--tape);border:2px solid var(--ink);display:grid;place-items:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.6rem;margin-bottom:1rem}
/* steps */
.steps{list-style:none;padding:0;margin:2rem 0 0;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding:0 0 1.6rem 4rem}
.steps li:before{content:counter(s);position:absolute;left:0;top:0;width:2.7rem;height:2.7rem;background:var(--tape);color:var(--ink);font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.4rem;display:grid;place-items:center;border:2px solid var(--ink)}
.steps li:after{content:"";position:absolute;left:1.3rem;top:2.8rem;bottom:.2rem;width:2px;background:rgba(255,255,255,.3)}
.steps li:last-child:after{display:none}
.steps b{font-family:'Bricolage Grotesque',sans-serif;font-size:1.2rem;display:block}
.areas{color:#d7d3c7}
/* gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;border:2px solid var(--ink)}
.gallery figcaption{font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--muted);padding-top:.4rem}
/* more services */
.card-p{background:var(--paper);border:2px solid var(--ink);height:100%;display:flex;flex-direction:column}
.card-p img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border-bottom:2px solid var(--ink)}
.card-p div{padding:1.2rem 1.3rem 1.4rem}
.card-p h3{font-size:1.25rem;margin-bottom:.4rem}
.card-p p{margin:0;font-size:.98rem;color:var(--muted)}
/* locations */
.loc{border:2px solid var(--ink);background:var(--paper);padding:1.6rem;height:100%}
.loc h3{margin-bottom:.5rem}
.loc dl{margin:1rem 0 0}
.loc dt{font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--brick);font-weight:500;margin-top:.7rem}
.loc dd{margin:0}
.map{border:3px solid var(--ink);width:100%;height:340px;display:block}
footer{background:var(--ink);color:#d7d3c7;padding:2.5rem 0}
footer a{color:#fff}
.chip{background:#fff;padding:.4rem .7rem;display:inline-block;border-radius:3px}
.chip img{display:block;height:36px;width:auto}
.powered{font-size:.9rem}
@media(max-width:991px){
 .hero .row{min-height:0}
 .hero-copy{padding:2.2rem 0 1.6rem}
 .hero-mosaic{height:280px;margin-bottom:0}
 .gallery{grid-template-columns:repeat(2,1fr)}
 section{padding:3.6rem 0}
}
@media(max-width:575px){
 .site-nav .navbar-brand{font-size:1.3rem}
 .util .hide-s{display:none}
 .photo{box-shadow:5px 5px 0 var(--tape)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
