@font-face{font-family:Bricolage Grotesque;src:url(/fonts/bricolage-grotesque.woff2)format("woff2");font-weight:600 800;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/fonts/source-sans-3.woff2)format("woff2");font-weight:400 800;font-display:swap}:root{color-scheme:light;background:var(--paper);color:var(--ink);font-family:"Source Sans 3",system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;color:var(--ink);margin:0}body,button,input,textarea{font:400 1rem/1.5 "Source Sans 3",system-ui,sans-serif}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.section-inner{width:min(1120px,100% - 32px);margin-inline:auto}.site-header{z-index:20;border-bottom:1px solid color-mix(in srgb, var(--border), transparent 20%);background:color-mix(in srgb, var(--paper), white 8%);min-height:72px;box-shadow:0 12px 28px color-mix(in srgb, var(--ink), transparent 92%);justify-content:space-between;align-items:center;gap:16px;padding:10px max(16px,50vw - 560px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;min-width:0;display:inline-flex}.brand-mark{background:var(--brand);width:42px;height:42px;color:var(--brand-ink);border-radius:14px;flex:0 0 42px;place-items:center;font-family:Bricolage Grotesque,system-ui,sans-serif;font-weight:800;display:grid}.brand strong,h1,h2,h3{letter-spacing:0;font-family:Bricolage Grotesque,system-ui,sans-serif}.brand strong,.brand small{text-overflow:ellipsis;white-space:nowrap;max-width:44vw;display:block;overflow:hidden}.brand small{color:var(--muted);font-size:.82rem}.phone-button,.button{border-radius:999px;justify-content:center;align-items:center;min-height:46px;font-weight:800;line-height:1;transition:transform .16s,background .16s,color .16s,box-shadow .16s;display:inline-flex}.phone-button{background:var(--brand);color:var(--brand-ink);box-shadow:0 10px 20px color-mix(in srgb, var(--brand), transparent 76%);flex:none;padding:0 18px}.button{padding:0 22px}.button:hover,.phone-button:hover{transform:translateY(-1px)}.button:active,.phone-button:active{transform:translateY(1px)}.button-primary{background:var(--brand);color:var(--brand-ink);box-shadow:0 14px 28px color-mix(in srgb, var(--brand), transparent 78%)}.button-secondary{color:#fff;background:#ffffff24;border:1px solid #ffffff8a}.button-secondary.light{border-color:var(--border);background:var(--paper);color:var(--ink)}.hero{isolation:isolate;min-height:clamp(620px,78dvh,840px);display:grid;position:relative;overflow:hidden}.hero-image,.hero-shade{width:100%;height:100%;position:absolute;inset:0}.hero-image{object-fit:cover;z-index:0}.hero-shade{z-index:1;background:linear-gradient(90deg,#000000d1,#00000085 48%,#0000003d),linear-gradient(#0000 64%,#0000007a)}.hero-content{z-index:2;color:#fff;align-self:center;padding-block:96px 72px;position:relative}.section-kicker{color:var(--brand);align-items:center;gap:12px;margin:0 0 14px;font-weight:800;display:flex}.hero .section-kicker{color:#fff}.section-kicker:before{content:"";background:var(--accent);border-radius:999px;width:44px;height:4px}h1,h2,h3,p{margin-top:0}h1{max-width:780px;margin-bottom:20px;font-size:clamp(3.4rem,11vw,7.8rem);line-height:.92}.hero-subhead{color:#ffffffe6;max-width:620px;margin-bottom:28px;font-size:clamp(1.2rem,2.4vw,1.55rem)}.cta-row{flex-wrap:wrap;gap:12px;display:flex}.proof-strip{background:var(--ink);color:#fff}.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-block:18px;display:grid}.proof-grid p{color:#ffffffeb;margin:0;font-weight:800}.section{padding-block:clamp(72px,10vw,128px)}.services-section,.reviews-section{background:var(--paper)}.gallery-section,.location-section{background:var(--paper-tint)}.section-heading{max-width:720px;margin-bottom:34px}.section-heading.compact{max-width:820px}h2{margin-bottom:0;font-size:clamp(2.3rem,6vw,5rem);line-height:.98}h3{margin-bottom:8px;font-size:1.35rem;line-height:1.1}.service-grid,.review-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.service-card,.review-card{border:1px solid var(--border);background:color-mix(in srgb, var(--paper), white 12%);box-shadow:0 20px 50px color-mix(in srgb, var(--ink), transparent 92%);border-radius:18px;overflow:hidden}.service-card img{aspect-ratio:9/7;object-fit:cover;width:100%}.service-card-body{gap:18px;padding:20px;display:grid}.service-card p,.review-card blockquote{color:var(--muted)}.service-card strong{color:var(--brand);font-size:1.08rem}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:14px;display:grid}.gallery-grid img{aspect-ratio:1;object-fit:cover;width:100%;box-shadow:0 18px 42px color-mix(in srgb, var(--ink), transparent 90%);border-radius:18px}.gallery-grid .wide{grid-area:span 2/span 2}.review-card{padding:24px}.review-card blockquote{margin:0 0 20px;font-size:1.18rem;line-height:1.42}.review-card figcaption{color:var(--ink);font-weight:800}.location-grid{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:start;gap:40px;display:grid}.location-address{max-width:460px;color:var(--muted);margin-block:18px 26px;font-size:1.18rem}.hours-table{border-collapse:collapse;border:1px solid var(--border);background:var(--paper);width:100%;box-shadow:0 20px 50px color-mix(in srgb, var(--ink), transparent 92%);border-radius:18px;overflow:hidden}.hours-table caption{text-align:left;padding:18px 20px;font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:1.4rem;font-weight:800}.hours-table tr+tr{border-top:1px solid var(--border)}.hours-table th,.hours-table td{text-align:left;padding:12px 20px}.hours-table td{color:var(--muted);text-align:right}.site-footer{border-top:1px solid var(--border);background:var(--ink);color:#fff;padding-block:32px 92px}.footer-grid{justify-content:space-between;align-items:center;gap:18px;display:flex}.footer-grid p{color:#fffc;margin:0}.footer-grid strong,.footer-grid a{color:#fff}@media (width<=820px){.site-header{min-height:66px}.brand small{display:none}.phone-button{min-height:44px;padding-inline:14px;font-size:.95rem}.hero{min-height:690px}.hero-shade{background:linear-gradient(#0000006b,#000000db)}.hero-content{align-self:end;padding-block:84px 54px}h1{font-size:clamp(3.1rem,15vw,5.4rem)}.proof-grid,.service-grid,.review-grid,.location-grid,.footer-grid{grid-template-columns:1fr}.proof-grid,.footer-grid{display:grid}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid .wide{aspect-ratio:16/10;grid-area:span 1/span 2}.hours-table td{text-align:left}}
