@font-face{font-family:'Barlow Condensed';src:url('/assets/fonts/barlow-condensed-semibold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
/* --edge is the left inset of .container, for use as padding on one half of a 50/50 split. */
:root{--paper:#f7f5f2;--white:#fff;--ink:#202020;--muted:#615c56;--line:#ded9d3;--accent:#b54a24;--button-fill:#c45125;--accent-hover:#923a1c;--highlight:#f09a58;--wash:#f4e7df;--band:#202020;--band-deep:#161514;--band-text:#f7f5f2;--band-muted:#d5cec7;--band-line:#57504a;--display:'Barlow Condensed','Trebuchet MS',sans-serif;--body:Manrope,'Segoe UI',sans-serif;--gutter:clamp(24px,5vw,80px);--max:1280px;--radius:4px;--space:clamp(56px,6.5vw,96px);--edge:max(var(--gutter),calc(100% - var(--max)/2));--bleed:max(var(--gutter),calc(50% - var(--max)/2))}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px;scrollbar-color:#938a80 var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--body);-webkit-font-smoothing:antialiased}
::selection{background:var(--wash);color:var(--ink)}
a{color:inherit;text-decoration:none;text-underline-offset:.25em;text-decoration-thickness:1px}
button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default}
img{display:block;max-width:100%;height:auto}svg{flex-shrink:0}
p{margin:0 0 1.25em}h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.05;letter-spacing:-.012em;margin:0;overflow-wrap:anywhere;text-wrap:balance}
h1{font-size:clamp(2.5rem,4.5vw,3.5rem);text-transform:uppercase}h2{font-size:clamp(2.25rem,3.5vw,3rem);text-transform:uppercase}h3{font-size:1.75rem;line-height:1.1;letter-spacing:0}
a,button,input,textarea,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:2px}
[hidden]{display:none!important}
.container{width:calc(100% - var(--gutter)*2);max-width:var(--max);margin-inline:auto}
.icon{width:22px;height:22px;vertical-align:middle}
figcaption{font-size:.8125rem;line-height:1.5}
.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:56px;padding:15px 24px;border:1px solid var(--button-fill);border-radius:var(--radius);background:var(--button-fill);color:var(--white);font-size:1.0625rem;font-weight:600;line-height:1.5;text-align:center;white-space:normal;transition:background .18s,border-color .18s}
.button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.button:active{background:#793018;border-color:#793018}
.button:disabled{background:#ddd7cf;border-color:#a29a91;color:#4a453f}
.button .icon{width:19px;height:19px}
.button:focus-visible{outline-color:var(--ink);box-shadow:0 0 0 2px #fff}
.phone-link{background:var(--ink);border-color:var(--ink);gap:10px}
.phone-link:hover,.phone-link:active{background:#41403d;border-color:#41403d}
.text-link{display:inline-flex;gap:8px;align-items:center;min-height:44px;color:var(--accent);text-decoration:underline;font-size:.9375rem;font-weight:600}
.text-link:hover{color:var(--accent-hover)}.text-link .icon{width:19px;height:19px}
.skip-link{position:fixed;top:10px;left:10px;z-index:100;background:var(--white);padding:12px 20px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}
.contact-actions{display:flex;align-items:stretch;flex-wrap:wrap;gap:12px}
.urgent-note{margin-top:18px;font-size:.875rem;line-height:1.75;color:var(--muted)}
.urgent-note p{margin:0 0 6px}.urgent-note a{color:var(--accent);text-decoration:underline;font-weight:600}

/* Charcoal and copper fields. Copper and the text on both are the same in either colour scheme. */
.band-surface{background:var(--band);color:var(--band-text)}
.band-surface .phone-link{border-color:#716b64}.band-surface .phone-link:hover{background:#33312e;border-color:#938a80}
.band-surface .urgent-note,.hero .urgent-note{color:#ded8d2}.band-surface .urgent-note a,.hero .urgent-note a{color:var(--highlight)}
.band-surface .text-link{color:var(--highlight)}.band-surface .text-link:hover{color:#ffb577}
.band-surface :focus-visible,.hero :focus-visible,.site-header :focus-visible,.about-section :focus-visible,.site-footer :focus-visible,.tile-dark:focus-visible{outline-color:var(--highlight)}
.band-surface .button:focus-visible,.site-header .button:focus-visible{outline-color:var(--highlight);box-shadow:0 0 0 2px var(--band)}
.accent-surface{background:var(--button-fill);color:#fff}
.accent-surface a:not(.button){color:#fff;text-decoration:underline}
.accent-surface .button{background:#fff;border-color:#fff;color:#202020}.accent-surface .button:hover{background:#f4e7df;border-color:#f4e7df}
.accent-surface .phone-link{background:#202020;border-color:#202020;color:#fff}.accent-surface .phone-link:hover{background:#41403d;border-color:#41403d}
.accent-surface .button:disabled{background:transparent;border-style:dashed;border-color:#fff;color:#fff}
.accent-surface .urgent-note{color:#fff}
.accent-surface :focus-visible,.tile-accent:focus-visible{outline-color:#fff}.accent-surface .button:focus-visible{outline-color:#fff;box-shadow:0 0 0 2px #202020}

.site-header{position:sticky;top:0;z-index:30;background:var(--band);color:var(--band-text);border-bottom:1px solid var(--band-line)}
.header-inner{display:flex;align-items:center;gap:22px;min-height:78px;padding-block:12px;flex-wrap:wrap}
.brand{display:inline-flex;align-items:center;flex-shrink:0}.brand img{width:auto;height:44px}
.brand-name{font:600 1.875rem/1 var(--display);letter-spacing:.035em}
.brand-name>span{display:block;font:700 .5625rem/1 var(--body);letter-spacing:.38em;margin-top:9px;padding-left:2px}
.main-nav{display:flex;align-items:center;gap:26px;margin-left:auto;flex-wrap:wrap}
.main-nav>a{font-size:.875rem;font-weight:600;min-height:44px;display:flex;align-items:center}
.main-nav>a:hover,.main-nav>a[aria-current]{text-decoration:underline;text-decoration-color:var(--highlight);text-decoration-thickness:2px;text-underline-offset:8px}
.header-contact{display:flex;gap:12px;flex-wrap:wrap}
.header-contact .button{font-size:1rem;min-height:50px;padding:12px 18px;gap:10px}
.header-contact .phone-link{background:transparent;border-color:#716b64}.header-contact .phone-link:hover{background:#33312e;border-color:#938a80}
.header-contact .icon{display:none}.menu-toggle{display:none;color:inherit}
.call-bar{display:none}

.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--band);color:var(--band-text)}
.hero-inner{display:flex;flex-direction:column;justify-content:center;min-height:clamp(540px,calc(100svh - 79px),780px);padding-block:clamp(48px,6vw,80px)}
.hero h1{font-size:clamp(2.75rem,4.7vw,4.25rem);line-height:1.02;max-width:min(680px,52vw)}
.hero-description{font-size:1.125rem;line-height:1.75;max-width:min(600px,48vw);margin:24px 0 0;color:#ded8d2}
.hero-dock{display:flex;flex-wrap:wrap;margin-top:32px}
.cta-tile{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:76px;padding:18px 30px;border:1px solid var(--button-fill);background:var(--button-fill);color:#fff;font-size:1.1875rem;font-weight:700;line-height:1.3;transition:background .18s,border-color .18s}
.cta-tile:first-child{border-radius:var(--radius) 0 0 var(--radius)}.cta-tile:last-child{border-radius:0 var(--radius) var(--radius) 0}.cta-tile:only-child{border-radius:var(--radius)}
.cta-tile:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.cta-tile:active{background:#793018;border-color:#793018}
.cta-tile:focus-visible{outline-offset:3px;box-shadow:0 0 0 2px var(--band)}
.cta-call{background:var(--band-deep);border-color:#716b64}.cta-call:hover,.cta-call:active{background:#33312e;border-color:#938a80}
.hero .urgent-note{margin-top:20px}
.hero-photo{position:absolute;inset:0 0 0 auto;z-index:-1;width:66%;margin:0}
.hero-photo picture{display:block;height:100%}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--band) 0,var(--band) 10%,color-mix(in srgb,var(--band) 90%,transparent) 28%,color-mix(in srgb,var(--band) 34%,transparent) 62%,color-mix(in srgb,var(--band) 10%,transparent) 100%)}
.hero-photo figcaption,.split-photo figcaption,.inner-photo figcaption{position:absolute;right:0;bottom:0;z-index:1;padding:6px 12px;border-radius:var(--radius) 0 0;background:#202020d9;color:#f7f5f2;font-size:.75rem;font-weight:600}

.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.split-copy{min-width:0;padding:var(--space) clamp(32px,5vw,80px) var(--space) var(--edge)}
.split-photo,.inner-photo{position:relative;min-width:0;min-height:440px;margin:0;overflow:hidden;background:var(--band-deep)}
.split-photo img,.inner-photo img{position:absolute;inset:0;width:100%;height:100%}
.fact-panel h2{max-width:13em;margin-bottom:20px}
.fact-panel .split-copy>p{max-width:54ch;margin:0;font-size:1.0625rem;line-height:1.75}
.chip-grid{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:580px}
.chip-grid li{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid #ffffff80;border-radius:var(--radius);font-size:.9375rem;font-weight:600;line-height:1.4}
.chip-grid .icon{width:19px;height:19px}

.section{padding-block:var(--space)}
.section-heading{margin-bottom:36px}
.section-heading p{max-width:65ch;margin:14px 0 0;font-size:1.0625rem}
.heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 48px;flex-wrap:wrap}
.heading-row>p{max-width:34ch;margin:0;text-align:right}
.photo-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.service-card{position:relative;display:flex;flex-direction:column;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 16px #20202005;transition:border-color .18s,box-shadow .18s}
.service-card:hover,.service-card:focus-within{border-color:var(--accent);box-shadow:0 8px 24px #2020200d}
.card-image{position:relative;aspect-ratio:3/2;background:#ebe5dc;overflow:hidden;border-radius:3px 3px 0 0}
.card-image img{width:100%;height:100%}
.card-badge{position:absolute;top:0;right:0;display:grid;place-items:center;width:52px;height:52px;border-radius:0 0 0 var(--radius);background:var(--button-fill);color:#fff}
.card-badge .icon{width:24px;height:24px}
.stock-tag{position:absolute;left:10px;bottom:10px;padding:3px 8px;border-radius:2px;background:#202020cc;color:#f7f5f2;font-size:.75rem;font-weight:600;line-height:1.5}
.card-content{display:flex;flex-direction:column;flex:1;min-width:0;padding:28px}
.card-content h3{font-size:2rem;margin-bottom:12px;text-wrap:pretty}
.card-content h3 a::after{content:'';position:absolute;inset:0;border-radius:var(--radius)}
.card-content h3 a:focus-visible{outline:0}.card-content h3 a:focus-visible::after{outline:3px solid var(--accent);outline-offset:4px}
.card-content p{font-size:1rem;flex:1;margin-bottom:22px}
.card-link{display:flex;align-items:center;gap:8px;min-height:28px;font-size:.9375rem;font-weight:600;color:var(--accent);text-decoration:underline}
.card-link .icon{width:19px;height:19px}
.services-followup{display:flex;align-items:center;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;padding-top:28px}
.multi-job-note{font-size:.9375rem;margin:0}.multi-job-note a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);text-decoration:underline}

.about-section{background:var(--band);color:var(--band-text);padding-block:var(--space)}
.about-section h2{margin-bottom:28px}
.about-columns{columns:2;column-gap:clamp(32px,5vw,80px)}
.about-columns p{font-size:1.0625rem;line-height:1.75}.about-columns p:last-child{margin-bottom:0}
.experience-note{color:var(--accent);font-size:1rem;font-weight:600;line-height:1.65;margin:28px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.tile-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.tile{display:flex;justify-content:center;height:100%;padding:clamp(28px,3.4vw,44px) 24px;transition:background .18s}
.tile-inner{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;gap:6px 18px;width:100%;max-width:400px}
.tile-inner .icon{grid-row:1/3;width:30px;height:30px;margin-top:2px}
.tile-title{font:600 1.75rem/1.1 var(--display)}
.tile-text{font-size:.9375rem;line-height:1.6}
.tile-dark{background:var(--band-deep);color:var(--band-text)}.tile-dark .icon{color:var(--highlight)}
.tile-accent{background:var(--button-fill);color:#fff}a.tile-accent:hover{background:var(--accent-hover)}
.tile-light{background:var(--white);color:var(--ink)}.tile-light .icon{color:var(--accent)}a.tile-light:hover{background:var(--wash)}
a.tile:hover .tile-title{text-decoration:underline;text-decoration-thickness:2px}
a.tile:focus-visible{outline-offset:-6px}
.hours span{display:block}

.area-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.area-cards a{display:block;height:100%}
.area-thumb{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:var(--radius);background:#ebe5dc}.area-thumb img{width:100%;height:100%}
.area-thumb .stock-tag{left:6px;bottom:6px;padding:2px 6px;font-size:.6875rem}
.area-cards .area-thumb{margin-bottom:16px}
.area-cards h3{font-size:1.5rem;margin-bottom:8px}.area-cards p{margin:0;font-size:.875rem;line-height:1.6;color:var(--muted)}
.area-cards a:hover h3{color:var(--accent);text-decoration:underline}
.area-links{list-style:none;padding:0;margin:0 0 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.area-links a{display:flex;align-items:center;gap:10px;min-height:50px;border-top:1px solid var(--line);font-weight:600;font-size:.9375rem;text-decoration:none}
.area-links a:hover span{text-decoration:underline}.area-links .icon{width:19px;height:19px;color:var(--accent)}
.accent-surface .area-links a{border-top-color:#ffffff73;text-decoration:none}.accent-surface .area-links .icon{color:#fff}
.band-surface .area-links a{border-top-color:var(--band-line)}.band-surface .area-links .icon{color:var(--highlight)}

.work-section,.recent-work{background:var(--white)}
.strip-controls{display:none;align-items:center;gap:12px}.js .strip-controls{display:flex}
.strip-button{display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:var(--paper);transition:background .18s,border-color .18s}
.strip-button:hover{background:var(--button-fill);border-color:var(--button-fill);color:#fff}
.strip-button[aria-disabled=true]{background:transparent;border-color:var(--line);color:#938a80;cursor:default}
.strip-count{min-width:5ch;text-align:center;font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums}
.work-strip{--strip-h:clamp(240px,30vw,420px);position:relative;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--bleed);scrollbar-width:thin;scrollbar-color:#938a80 transparent}
.work-strip ul{list-style:none;display:flex;gap:20px;width:max-content;margin:0;padding:0 var(--bleed) 18px}
.work-strip li{flex:none;width:calc(var(--strip-h)*var(--ar));scroll-snap-align:start}
.work-strip figure{margin:0}
.work-strip img{width:100%;height:var(--strip-h);border-radius:var(--radius);background:var(--paper)}
.work-strip figcaption{padding-top:14px}.work-strip h3{font-size:1.375rem;margin-bottom:6px}.work-strip p{margin:0;font-size:.875rem;line-height:1.6;color:var(--muted)}
.work-strip:focus-visible{outline-offset:-3px}
.work-section .services-followup{padding-top:20px}
.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:28px}
.project-grid figure{margin:0;min-width:0}.project-grid img{width:100%;height:auto;border-radius:var(--radius);background:var(--paper)}
.project-grid figcaption{padding-top:16px;font-size:1rem}.project-grid h3{font-size:1.5rem;margin-bottom:8px}.project-grid p{font-size:.9375rem;line-height:1.6;color:var(--muted);margin-bottom:6px}
.project-grid.masonry{display:block;columns:2;column-gap:28px}.masonry figure{break-inside:avoid;margin-bottom:32px}.project-grid.masonry-wide{columns:3}
.project-grid.trio{display:flex;align-items:flex-start;gap:24px}.trio figure{flex:var(--ar) 1 0}

.closing h2{margin-bottom:18px}.closing .split-copy>p{max-width:48ch;font-size:1.0625rem;color:#ded8d2}
.closing .split-copy>.phone-link{margin-top:8px}

.site-footer{background:var(--band);color:var(--band-text);padding-top:56px}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr)) minmax(0,1.15fr);gap:40px;padding-bottom:40px}
.footer-grid>*{min-width:0}.footer-grid a{overflow-wrap:anywhere}
.footer-logo{display:inline-block;margin-bottom:24px;font:600 1.5rem/1.2 var(--display)}.footer-logo img{width:156px;height:auto}
.footer-brand>p{max-width:340px;margin:0;color:var(--band-muted);font-size:.875rem}
.footer-grid nav{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.footer-heading{font:700 .875rem/1.5 var(--body);margin:2px 0 16px}
.footer-grid nav a{font-size:.875rem;min-height:36px;padding-block:6px;line-height:1.65;color:#e2dcd5}
.footer-grid a:hover{text-decoration:underline}
.footer-grid .contact-details{margin:0;gap:14px}
.footer-grid .contact-details dt{font-size:.8125rem;font-weight:400;color:var(--band-muted)}.footer-grid .contact-details dd{font-size:.875rem}
.footer-bottom{border-top:1px solid #4e4943;display:flex;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;padding-block:22px;font-size:.8125rem;color:var(--band-muted)}

.breadcrumbs{background:var(--paper);border-bottom:1px solid var(--line)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;list-style:none;gap:6px 12px;padding:14px 0;margin-block:0;color:var(--muted);font-size:.8125rem}
.breadcrumbs li+li::before{content:'/';margin-right:12px}.breadcrumbs a{text-decoration:underline}
.inner-hero{background:var(--band)}
.inner-hero .split-copy{display:flex;flex-direction:column;justify-content:center;padding-block:clamp(48px,6vw,88px)}
.inner-hero h1{max-width:13em;margin-bottom:22px}
.inner-hero p{max-width:58ch}.inner-hero .intro{font-size:1.125rem;line-height:1.75;color:#ded8d2}
.inner-hero .contact-actions{margin-top:10px}
.service-coverage{font-size:.9375rem;color:var(--band-muted)}.service-coverage a{text-decoration:underline}.service-coverage a:hover{color:var(--highlight)}
.inner-visual{display:grid;place-items:center;min-width:0;padding:clamp(24px,4vw,56px);background:var(--paper);color:var(--ink)}
.page-intro{padding-block:48px 32px}.page-intro h1{max-width:960px;margin-bottom:20px}.page-intro h1:last-child{margin-bottom:0}
.page-intro p{max-width:70ch;font-size:1.125rem;line-height:1.7;margin-bottom:0}

/* A heading in the narrow column, its content in the wide one. */
.split-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:28px clamp(40px,6vw,96px);align-items:start}
.split-section>*{min-width:0}
.check-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.check-list li{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-weight:600}
.check-list .icon{width:20px;height:20px;margin-top:3px;color:var(--accent)}
.detail-columns{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);margin-bottom:var(--space);border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
.service-subsection{min-width:0;padding:28px;border-left:1px solid var(--line)}.service-subsection:first-child{border-left:0}
.service-subsection h2{font-size:1.75rem;margin-bottom:14px}.service-subsection p{font-size:1rem;margin-bottom:0}.service-subsection .text-link{margin-top:10px}
.detail-single{grid-auto-flow:row}.detail-single .service-subsection{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px clamp(40px,6vw,96px);padding:32px}
.detail-single .service-subsection h2{margin:0}.detail-single .service-subsection p{max-width:70ch}
.service-examples{padding-bottom:var(--space)}.service-examples h2{font-size:1.875rem;margin-bottom:24px}
.request-band{padding-block:var(--space)}
.request-band p{max-width:60ch;font-size:1.0625rem;color:#ded8d2}.request-band .contact-actions{margin-top:24px}
.service-faq>h2{font-size:clamp(2rem,3vw,2.5rem)}
.related-services{padding-bottom:var(--space)}.service-faq+.related-services{padding-top:0}.request-band+.related-services{padding-top:var(--space)}
.related-services h2{font-size:1.25rem;margin-bottom:12px}
.related-services ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;border-top:1px solid var(--line)}
.related-services a{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:56px;padding-block:14px;border-bottom:1px solid var(--line);font-size:.9375rem;font-weight:600;text-decoration:underline}
.related-services a:hover{color:var(--accent)}.related-services .icon{width:19px;height:19px}
.accent-block{margin-bottom:var(--space);padding:clamp(32px,5vw,64px);border-radius:var(--radius)}
.accent-block h2{margin-bottom:16px}.accent-block>p{max-width:60ch;font-size:1.0625rem}
.accent-block .contact-actions{margin-top:8px}.recent-work+.accent-block{margin-top:var(--space)}
.areas-block .area-links{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px}.areas-block .text-link{color:#fff}
.other-areas{margin-top:36px}.other-areas h3{margin-bottom:6px}.other-areas .area-links{margin:14px 0 0}

.service-index-groups{display:grid;gap:var(--space)}
.group-intro>.icon{display:block;width:30px;height:30px;margin-bottom:16px;color:var(--accent)}
.group-intro h2{font-size:clamp(2rem,3vw,2.5rem);margin-bottom:14px}.group-intro p{max-width:46ch;margin-bottom:8px}
.index-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.index-rows li{padding-block:6px;border-bottom:1px solid var(--line)}
.index-rows a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;font-size:1.0625rem;font-weight:600;text-decoration:underline}
.index-rows a:hover{color:var(--accent)}.index-rows .icon{width:19px;height:19px}
.index-rows p{max-width:62ch;margin:0 0 10px;font-size:.9375rem;line-height:1.6;color:var(--muted)}

.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;display:flex;align-items:center;gap:24px;cursor:pointer;min-height:72px;padding-block:20px;font-weight:600;font-size:1.0625rem;line-height:1.5}
.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:hover{color:var(--accent)}
.faq-plus{position:relative;flex-shrink:0;width:18px;height:18px;margin-left:auto}.faq-plus::before,.faq-plus::after{content:'';position:absolute;left:2px;right:2px;top:8px;height:1px;background:currentColor}.faq-plus::after{transform:rotate(90deg)}details[open] .faq-plus::after{transform:none}
.faq-answer{padding:0 36px 24px 0}.faq-answer p{font-size:1rem;line-height:1.7;max-width:70ch;margin:0}
.split-lead{position:sticky;top:110px}.split-lead h1{margin-bottom:28px}

.area-map{width:100%;max-width:560px;margin:0}.area-map svg{display:block;width:100%;height:auto}.area-map figcaption{margin-top:10px;color:var(--muted)}
.map-county{fill:var(--wash);stroke:#cdbfb3;stroke-width:1.5;stroke-linejoin:round}.map-county-alt{fill:#ebe5dc}
.map-road{fill:none;stroke:#b9aea3;stroke-width:1.5;stroke-dasharray:5 6}
.map-city{fill:var(--band);stroke:var(--band);stroke-width:10;stroke-linejoin:round}
.map-town{fill:var(--button-fill);stroke:var(--paper);stroke-width:3}
.map-label{font:600 17px var(--body);fill:var(--ink)}.map-label-city{fill:var(--band-text);font-size:19px}
.map-label-county{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;fill:var(--muted)}
.map-north path{fill:none;stroke:var(--muted);stroke-width:1.5}.map-north text{font:700 12px var(--body);fill:var(--muted)}
.area-hub{padding-bottom:48px}
.area-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.area-list a{display:grid;grid-template-columns:168px minmax(0,1fr) auto;gap:24px;align-items:center;height:100%;padding:20px 0;border-top:1px solid var(--line)}
.area-list h2{font-size:1.75rem;margin-bottom:8px}.area-list p{margin:0;font-size:.9375rem;line-height:1.6;color:var(--muted)}
.area-list a:hover h2{color:var(--accent)}.area-list .icon{color:var(--accent)}
.area-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 64px;padding-bottom:var(--space)}.area-notes h2{font-size:1.75rem;margin-bottom:14px}.area-notes p{max-width:60ch;margin:0}.area-notes a{text-decoration:underline;font-weight:600}
.area-body,.about-page{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:72px;align-items:start}
.area-main{min-width:0}.area-main h2{font-size:1.875rem;margin:48px 0 16px}.area-main h2:first-child{margin-top:0}.area-main p{max-width:70ch}
.focus-list{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.focus-list li{border-top:1px solid var(--line);padding:10px 0 18px}
.focus-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-weight:600;text-decoration:underline}
.focus-list a:hover{color:var(--accent)}.focus-list .icon{width:19px;height:19px}.focus-list p{font-size:.9375rem;line-height:1.6;color:var(--muted);margin:2px 0 0}
.all-services{font-size:.9375rem;margin:20px 0 0}.all-services a{text-decoration:underline}.all-services a:hover{color:var(--accent)}
.place-list{list-style:none;padding:0;margin:16px 0 0;columns:3;column-gap:32px;max-width:70ch}.place-list li{padding:7px 0;break-inside:avoid;border-bottom:1px solid var(--line);font-size:.9375rem}
.area-aside{position:sticky;top:110px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px}.area-aside h2{font-size:1.5rem;margin-bottom:14px}
.facts{margin:0}.facts>div{padding:11px 0;border-top:1px solid var(--line)}.facts>div:last-child{padding-bottom:0}
.facts dt{font-size:.8125rem;font-weight:700;color:var(--muted)}.facts dd{margin:2px 0 0;font-size:.9375rem}.facts a{text-decoration:underline}
.about-story{min-width:0}.about-story p{max-width:68ch;font-size:1.0625rem;line-height:1.75}.about-story .experience-note{max-width:68ch}

.contact-intro h1{margin-bottom:24px}.contact-intro>p{max-width:52ch;font-size:1.0625rem;color:#ded8d2}

.contact-details{display:grid;gap:18px;margin:32px 0}.contact-details dt{font-size:.8125rem;font-weight:700;margin-bottom:2px}.contact-details dd{margin:0;font-size:1rem;overflow-wrap:anywhere}
.contact-details a{display:inline-flex;align-items:center;min-height:32px;text-decoration:underline}
.contact-intro .contact-details dt{color:var(--band-muted)}
.contact-coverage{border-top:1px solid var(--band-line);margin-top:28px;padding-top:24px}.contact-coverage h2{font-size:1.25rem;margin-bottom:14px}.contact-coverage .area-links{margin:0}
.request-panel{min-width:0;padding:var(--space) var(--edge) var(--space) clamp(32px,5vw,80px);scroll-margin-top:24px}
.form-heading h2{font-size:clamp(2rem,3vw,2.5rem);margin-bottom:18px}.form-heading .urgent-note{margin:0 0 20px;font-size:.875rem}
.form-preview{margin-bottom:28px;padding:14px 16px;border-radius:var(--radius);background:#fff;color:#202020;font-size:.875rem;line-height:1.75}
.request-panel .form-preview a,.request-panel .form-feedback a{color:#202020;font-weight:600}
.form-fields{border:0;padding:0;margin:0;min-width:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}
.form-grid label{display:block;min-width:0;font-size:.9375rem;font-weight:600;line-height:1.6}
.required,.optional{font-size:.8125rem;font-weight:400}
.form-grid input,.form-grid textarea{display:block;width:100%;min-width:0;min-height:50px;margin-top:9px;padding:12px;border:0;border-bottom:2px solid #fff;border-radius:var(--radius) var(--radius) 0 0;background:#00000024;color:#fff;font-size:1rem;font-weight:400;line-height:1.5;caret-color:#fff}
.form-grid input:focus,.form-grid textarea:focus{outline:2px solid #fff;outline-offset:2px;background:#00000040}
.form-grid input:disabled,.form-grid textarea:disabled{border-bottom-style:dashed;background:#00000014}
.form-grid input:-webkit-autofill{-webkit-text-fill-color:#202020;caret-color:#202020}
.form-grid textarea{resize:vertical;min-height:145px}.form-wide{grid-column:1/-1}
.form-grid select{display:block;width:100%;min-width:0;min-height:50px;margin-top:9px;padding:12px;border:0;border-bottom:2px solid #fff;border-radius:var(--radius) var(--radius) 0 0;background:#00000024;color:#fff;font:inherit;font-weight:400;color-scheme:dark}
.form-grid select:focus{outline:2px solid #fff;outline-offset:2px;background:#00000040}
.form-grid select option{background:#302e2b;color:#fff}
.form-grid [hidden]{display:none}
.form-grid input[type=date]{color-scheme:dark}
.field-help{display:block;font-size:.8125rem;font-weight:400;line-height:1.75;margin-top:8px}
.form-submit{width:100%;margin-top:28px;transition:none}.form-note{font-size:.875rem;margin:18px 0 10px}.privacy-note{font-size:.8125rem;margin:0}
.form-feedback{margin-top:24px;padding:18px;border-radius:var(--radius);background:#fff;color:#202020;font-size:1rem;scroll-margin:24px 0 96px}.form-feedback p{font-size:.9375rem;margin:10px 0 0}
.form-submit.is-sending{opacity:1;cursor:wait}
.form-submit.is-sending::before{content:"";display:inline-block;width:1em;height:1em;margin-right:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:form-progress .8s linear infinite}
@keyframes form-progress{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.form-submit.is-sending::before{animation:none}}
.prose{max-width:880px;padding-bottom:var(--space)}.prose h2{font-size:1.75rem;margin:32px 0 16px}.prose p{font-size:1rem;max-width:70ch}.prose a{color:var(--accent);text-decoration:underline}.prose .privacy-updated{font-size:.875rem;color:var(--muted)}
.not-found{padding-block:var(--space)}.not-found h1{margin-bottom:20px}
.not-found-links{list-style:none;padding:0;margin:0 0 32px;columns:2;column-gap:32px;max-width:640px}.not-found-links li{break-inside:avoid;border-bottom:1px solid var(--line)}.not-found-links a{display:flex;align-items:center;min-height:48px;font-weight:600;text-decoration:underline}

@media(min-width:1001px) and (max-width:1220px){.header-inner{gap:18px}.brand img{height:38px}.main-nav{gap:18px}.header-contact{gap:10px}.header-contact .button{padding:11px 14px;font-size:.9375rem}}
@media(max-width:1100px){.area-cards{grid-template-columns:1fr;gap:0;border-bottom:1px solid var(--line)}.area-cards a{display:grid;grid-template-columns:168px minmax(0,1fr);gap:24px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.area-cards .area-thumb{margin:0}.footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.footer-brand{grid-column:1/-1}.area-body,.about-page{grid-template-columns:minmax(0,1fr) 280px;gap:40px}.area-list{grid-template-columns:1fr}.place-list{columns:2}.detail-columns{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-single{grid-template-columns:1fr}.service-subsection:nth-child(odd){border-left:0}.service-subsection:nth-child(n+3){border-top:1px solid var(--line)}.form-grid{grid-template-columns:1fr}}
@media(max-width:1000px){
  html{scroll-padding-top:16px}.site-header{position:relative}.header-inner{min-height:0;gap:12px}.brand img{height:38px}
  .header-contact{order:1;margin-left:auto;gap:10px}.header-contact .button{min-height:46px;padding:10px 14px;font-size:.9375rem}
  .menu-toggle{order:2;align-items:center;justify-content:center;gap:14px;min-height:46px;padding:10px 14px;background:transparent;border:1px solid #938a80;border-radius:var(--radius);font-size:.875rem;font-weight:600}.js .menu-toggle{display:flex}
  .menu-lines{position:relative;width:18px;height:12px;border-block:1px solid currentColor}.menu-lines::after{content:'';position:absolute;left:0;right:0;top:5px;height:1px;background:currentColor}
  .menu-toggle[aria-expanded=true] .menu-lines{border:0}.menu-toggle[aria-expanded=true] .menu-lines::before,.menu-toggle[aria-expanded=true] .menu-lines::after{content:'';position:absolute;left:0;right:0;top:5px;height:1px;background:currentColor;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-lines::after{transform:rotate(-45deg)}
  .main-nav{order:3;width:100%;flex-direction:column;align-items:stretch;gap:0;margin:0;padding-top:12px}.js .main-nav{display:none}.js .main-nav.is-open{display:flex}
  .main-nav>a{font-size:1rem;min-height:50px;padding-block:12px;border-bottom:1px solid var(--band-line)}.main-nav>a:last-child{border-bottom:0}
  .split-lead,.area-aside{top:24px}
}
@media(max-width:900px){
  .split{grid-template-columns:1fr}.split-copy,.request-panel{padding:var(--space) var(--gutter)}
  .split-photo,.inner-photo{min-height:0;aspect-ratio:3/2}
  .hero{display:flex;flex-direction:column}.hero-inner{min-height:0;padding-block:40px}.hero h1,.hero-description{max-width:none}
  .hero-photo{position:relative;inset:auto;z-index:0;width:100%}.hero-photo::after{display:none}.hero-photo picture,.hero-photo img{height:auto}
  .about-columns{columns:1}.tile-row{grid-template-columns:1fr}.tile{justify-content:flex-start;padding-inline:var(--gutter)}.tile-inner{max-width:560px}
  .split-section{grid-template-columns:1fr}.split-lead{position:static}.split-lead h1{margin-bottom:24px}
  .detail-single .service-subsection{grid-template-columns:1fr}
  .project-grid.masonry-wide{columns:2}.related-services ul{grid-template-columns:1fr}.areas-block .area-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .area-notes{grid-template-columns:1fr}
}
@media(max-width:760px){
  html{scroll-padding-bottom:88px}.header-inner{gap:0}
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .brand-name{font-size:1.75rem}.brand-name>span{font-size:.5rem}
  .menu-toggle{margin-left:auto}
  .header-contact{display:none}
  .call-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:8px;padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line);box-shadow:0 -6px 20px #20202014;transition:transform .28s cubic-bezier(.16,1,.3,1),visibility .28s}
  .call-bar.is-held{transform:translateY(105%);visibility:hidden}
  .call-bar-single{grid-template-columns:minmax(0,1fr)}.call-bar .button{min-height:52px;padding:10px 8px;font-size:1rem;gap:8px}
  .hero-inner{padding-block:32px 36px}.hero h1{font-size:2.375rem;line-height:1.08}
  .hero-dock{flex-direction:column;gap:12px}.cta-tile,.cta-tile:first-child,.cta-tile:last-child{width:100%;min-height:60px;border-radius:var(--radius)}
  .contact-actions{flex-direction:column;width:100%}.contact-actions .button{width:100%;min-height:56px}
  .chip-grid{grid-template-columns:1fr}.heading-row>p{text-align:left}
  .photo-services{grid-template-columns:1fr}.card-content{padding:24px}.card-content h3{font-size:1.75rem}
  .area-cards a,.area-list a{grid-template-columns:96px minmax(0,1fr);gap:16px;padding:18px 0}.area-thumb .stock-tag span{display:none}.area-list .icon{display:none}.area-cards h3,.area-list h2{font-size:1.5rem;margin-bottom:6px}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.footer-brand,.footer-contact{grid-column:1/-1}.footer-grid nav a{min-height:44px;padding-block:10px}.footer-heading{margin-bottom:12px}.footer-logo img{width:136px}
  .breadcrumbs ol{font-size:.75rem;padding-block:12px}.page-intro{padding-block:32px}.page-intro p{font-size:1.0625rem}
  .inner-hero h1,.contact-intro h1,.split-lead h1{font-size:2.375rem}.inner-hero .intro{font-size:1.0625rem}
  .detail-columns{grid-template-columns:1fr}.service-subsection,.detail-single .service-subsection{padding:24px;border-left:0}.service-subsection+.service-subsection{border-top:1px solid var(--line)}
  .project-grid.masonry,.project-grid.masonry-wide{columns:1}.project-grid.trio{flex-direction:column}.trio figure{flex:none;width:100%}
  .areas-block .area-links,.focus-list{grid-template-columns:1fr}.accent-block{padding:28px 24px}
  .faq-list summary{min-height:68px;font-size:1rem;gap:20px}.faq-answer{padding-right:0}
  .area-body,.about-page{grid-template-columns:1fr;gap:40px}.area-aside{position:static;padding:24px}.area-main h2{font-size:1.75rem;margin-top:40px}.place-list{column-gap:24px}
  .contact-intro>.phone-link,.closing .split-copy>.phone-link{width:100%}.contact-intro>p{font-size:1rem}
  .form-heading h2{font-size:1.875rem}.form-grid{gap:22px}.form-grid label{font-size:.875rem}.required,.optional{font-size:.75rem}
}
@media(max-width:359px){:root{--gutter:20px}.call-bar{padding-inline:12px}.call-bar .button{font-size:.9375rem}.footer-grid{grid-template-columns:1fr}.footer-brand,.footer-contact{grid-column:auto}.area-links,.areas-block .area-links,.place-list{grid-template-columns:1fr;columns:1}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header,.site-footer,.breadcrumbs,.skip-link,.button,.cta-tile,.call-bar,.strip-controls{display:none!important}body{background:#fff;color:#000;padding-bottom:0}.container{width:100%;max-width:none}.split,.split-section,.area-body,.about-page{display:block}.section{padding-block:24px}.hero,.band-surface,.accent-surface,.about-section,.tile{background:#fff;color:#000}.hero-photo{position:static;width:100%}.hero-photo::after{display:none}.work-strip{overflow:visible}.work-strip ul{flex-wrap:wrap;width:auto}.request-panel{break-inside:avoid}}

/* System dark preference keeps the same brand and reading hierarchy. The charcoal bands
   drop a step below the page so the light/dark rhythm of the sections survives. */
@media(prefers-color-scheme:dark){
  :root{--paper:#262422;--white:#302e2b;--ink:#f4f1ed;--muted:#c4bcb3;--line:#5a534b;--accent:#f09a58;--accent-hover:#ffb577;--wash:#3d3129;--button-fill:#c45125;--band:#151413;--band-deep:#0c0b0b;--band-text:#f4f1ed;--band-line:#4a443e}
  body{color:#f4f1ed}
  .button{color:#fff}.button:hover,.button:active{background:#923a1c;border-color:#923a1c}.phone-link{background:#151413;border-color:#938a80}.phone-link:hover{background:#393631;border-color:#bbb2a7}
  .button:focus-visible{outline-color:#f09a58;box-shadow:0 0 0 2px #262422}
  .cta-tile:hover,a.tile-accent:hover{background:#923a1c}.cta-tile:hover{border-color:#923a1c}.cta-call:hover{background:#33312e;border-color:#938a80}
  .strip-button{color:#262422}.strip-button:hover{color:#fff}.strip-button[aria-disabled=true]{color:#938a80}
  .card-image,.area-thumb{background:#3a3733}.map-county{stroke:#6a6159}.map-county-alt{fill:#34312d}.map-road{stroke:#7a7067}.map-city{fill:#0d0c0c;stroke:#0d0c0c}.map-town{stroke:#262422}
  .call-bar{box-shadow:0 -6px 20px #00000066}
  .skip-link{background:#302e2b;color:#f4f1ed}::selection{background:#62422d;color:#fff}
}

/* Owner refinement: quieter surfaces, consistent services, concise coverage. */
.owner-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:72px;align-items:center}.owner-copy{max-width:58ch}.owner-copy h2{text-transform:none;margin-bottom:24px}.owner-copy p{color:var(--band-muted)}.owner-copy .owner-eyebrow{color:var(--highlight);font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.owner-copy .text-link{color:var(--highlight)}.owner-portrait{margin:0}.owner-portrait img{width:100%;height:auto;border-radius:4px}.owner-portrait figcaption{padding-top:12px;color:var(--band-muted)}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.review-card{margin:0;padding:28px;background:var(--white);border:1px solid var(--line);border-top:2px solid #a97250;border-radius:4px;display:flex;flex-direction:column}.review-stars{color:var(--accent);letter-spacing:3px;font-size:1rem}.review-card blockquote{margin:18px 0 24px;flex:1}.review-card blockquote p{margin:0;font-size:1.125rem;line-height:1.6}.review-card figcaption{display:grid;gap:4px}.review-card figcaption span{color:var(--muted)}
.refined-surface{background:#e9e5df;color:#292b2b;border-top:3px solid #a97250}
.refined-surface a{text-decoration:underline;text-decoration-color:#a97250;text-underline-offset:4px}
.refined-surface .chip-grid{gap:0 20px;margin-top:24px}
.refined-surface .chip-grid li{padding:14px 0;border:0;border-top:1px solid #c7c0b6;border-radius:0}
.refined-surface .chip-grid .icon{color:#885437}
.fact-panel .split-copy{padding-block:56px}.fact-panel h2{text-transform:none;font-size:clamp(2.1rem,3vw,2.8rem)}
.fact-panel .split-photo{min-height:380px}
.fact-panel .split-photo{aspect-ratio:4/3;min-height:0;align-self:center}
.lighting-detail{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:center}
.lighting-detail-photo{margin:0}.lighting-detail-photo img{display:block;width:100%;height:auto}
@media(max-width:760px){.lighting-detail{grid-template-columns:1fr;gap:24px}}
.photo-services{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.card-image{aspect-ratio:8/5}.card-content{padding:24px}.card-content h3{font-size:1.75rem}
.card-content p{font-size:.9375rem;line-height:1.65}.card-badge{width:44px;height:44px;background:#292b2b}
.inner-copy h1,.service-subsection h2,.section-heading h2{text-transform:none}
.coverage-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:56px;align-items:center}
.coverage-layout h3{margin-bottom:24px}.coverage-layout .area-links{grid-template-columns:1fr}
.area-map{max-width:none;width:100%;margin:0}.area-map iframe{display:block;width:100%;height:420px;border:1px solid var(--line);border-radius:4px;background:var(--white)}
.area-map figcaption a{text-decoration:underline}.inner-visual .area-map{max-width:none}
@media(max-width:1100px){.photo-services{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.photo-services,.coverage-layout{grid-template-columns:1fr}.coverage-layout{gap:24px}.area-map iframe{height:340px}.fact-panel .split-copy{padding-block:40px}}
@media(max-width:760px){.review-grid{grid-template-columns:1fr}}
@media(max-width:900px){.owner-layout{grid-template-columns:1fr;gap:32px}.owner-portrait{width:min(100%,420px);margin-inline:auto}}
@media(prefers-color-scheme:dark){.refined-surface{background:#303130;color:#f7f5f2}.refined-surface .chip-grid li{border-color:#65645f}.refined-surface .chip-grid .icon{color:#daa980}}
.inner-hero h1{text-transform:none}

.coverage-photo{margin:0;width:100%}.coverage-photo img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}.coverage-photo figcaption{font-size:.75rem;padding:10px 0;color:inherit}
/* Shared homepage and service-area coverage section. */
.coverage-heading{max-width:850px}.coverage-eyebrow{font-size:.8125rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.coverage-heading h1,.coverage-heading h2{text-transform:none;font-size:clamp(2.4rem,4.5vw,4rem);line-height:1.08;margin-bottom:24px}.coverage-heading h1 span,.coverage-heading h2 span{color:var(--muted)}
.coverage-heading>p:last-child{max-width:660px;color:var(--muted);font-size:1.0625rem}
.community-cards{list-style:none;padding:0;margin:36px 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.community-cards li{min-width:0}.community-cards a{height:100%;min-height:170px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:20px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:4px;transition:border-color .18s,background .18s}
.community-cards a:hover{border-color:var(--accent);background:var(--wash)}.community-pin{color:var(--accent)}.community-name{font:600 1.6rem/1.15 var(--display)}.community-cards a>.icon{margin-top:auto;align-self:flex-end;width:20px}
.coverage-contact{padding-top:28px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.coverage-contact>p{margin:0;font-weight:600}.coverage-contact .contact-actions{margin:0}.coverage-phone{display:inline-flex;gap:10px;align-items:center;min-height:48px;font-weight:700}.coverage-phone:hover{text-decoration:underline}
@media(max-width:1000px){.community-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.community-cards{grid-template-columns:1fr;gap:10px}.community-cards a{min-height:80px;flex-direction:row;align-items:center;padding:18px;gap:16px}.community-cards a>.icon{margin:0 0 0 auto;align-self:center}.community-name{font-size:1.5rem}.coverage-contact .contact-actions{align-items:flex-start;flex-direction:column}}
.icon-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.icon-services .card-content{padding:30px}.icon-services .service-card{border-top:3px solid var(--accent)}
.service-symbol{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:24px;border:1px solid var(--line);border-radius:4px;color:var(--accent)}.service-symbol .icon{width:28px;height:28px}
.inner-hero-text{display:block;background:var(--band)}.inner-hero-text .split-copy{padding:64px var(--gutter);max-width:calc(var(--max) + var(--gutter)*2);margin-inline:auto}.inner-hero-text .intro{max-width:760px}.inner-hero-text h1{max-width:900px}
@media(max-width:1100px){.icon-services{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.icon-services{grid-template-columns:1fr}.icon-services .card-content{padding:24px}.inner-hero-text .split-copy{padding-block:40px}}
.about-header-portrait{margin:0;background:var(--band);display:flex;justify-content:center;max-height:560px;overflow:hidden}.about-header-portrait img{height:100%;max-height:560px;width:auto;object-fit:contain}.about-summary{align-self:start}.about-summary h2{text-transform:none}.about-summary .facts>div{padding-block:14px}.about-story{max-width:720px}.about-story p{margin-bottom:24px}
@media(max-width:900px){.about-header-portrait{max-height:460px}.about-header-portrait img{max-height:460px}}
/* Softer project-photo edges; preserve full installations and blend spare space. */
.fact-panel .split-photo,.inner-photo,.about-header-portrait{background:var(--band);border-radius:14px;overflow:hidden}
.fact-panel .split-photo img,.inner-photo img{inset:auto;top:50%;left:50%;width:auto;height:auto;max-width:100%;max-height:100%;transform:translate(-50%,-50%);border-radius:12px}
.fact-panel .split-photo img,.inner-photo img,.about-header-portrait img{mask-image:linear-gradient(to right,transparent,#000 2%,#000 98%,transparent),linear-gradient(to bottom,transparent,#000 2%,#000 98%,transparent);mask-composite:intersect}
.owner-portrait img,.lighting-detail-photo img{border-radius:12px}
.hero-title-phone{display:none}
@media screen and (max-width:600px){
  .hero-title-standard,.hero-photo figcaption{display:none}
  .hero-title-phone{display:inline}
  .hero .hero-photo{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
  .hero-photo picture,.hero-photo img{height:100%;width:100%}
  .hero-photo img{object-fit:cover;object-position:60% center!important}
  .hero-photo::after{display:block;background:linear-gradient(180deg,rgba(13,12,11,.18),rgba(13,12,11,.72) 26%,rgba(13,12,11,.88) 76%)}
  .hero-inner{padding-block:clamp(105px,31vw,155px) 26px}
  .hero-description{color:white;margin-top:14px;line-height:1.5}
  .hero-dock{margin-top:22px;gap:8px}
  .hero .urgent-note{margin-top:14px}
}

/* Owner identification below the About portrait. */
.about-header-portrait{flex-direction:column;align-items:center;max-height:none}
.about-header-portrait img{display:block;max-width:100%;height:auto;flex-shrink:0}
.about-header-portrait figcaption{padding:12px 18px;text-align:center;color:var(--band-muted);max-width:52ch}


/* Use the complete supplied logo lockup consistently. */
.brand img{display:block;width:156px;height:auto}
.footer-logo img{width:156px;height:auto}
@media(max-width:1000px){.brand img{width:132px;height:auto}}

.about-page{display:block}
.about-page .about-story{max-width:760px;margin-inline:auto}





/* Copper architecture and shared electric-blue interaction accents. */
.home-preview .hero{background:radial-gradient(ellipse at 8% 90%,#30302d,transparent 60%),#171819}
main{position:relative}
main::after{content:'';position:absolute;inset:12px;border:1px solid #b88b6875;border-radius:14px;box-shadow:inset 0 0 0 4px #202020,inset 0 0 0 5px #b88b6825;pointer-events:none;z-index:3}
.footer-current{height:54px;max-width:1000px;margin:-22px auto 32px;pointer-events:none;overflow:hidden}
.footer-current svg{display:block;width:100%;height:100%;fill:none}
.frame-pulse{stroke:#53d4ff;stroke-width:1.7;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:145 1000;filter:drop-shadow(0 0 4px #00aaff);animation:free-current 7s linear infinite}
@keyframes free-current{0%,12%{stroke-dashoffset:150;opacity:0}17%,48%{opacity:1}55%,100%{stroke-dashoffset:-1000;opacity:0}}
.service-card,.community-cards a,.area-cards a,a.tile,.button,.cta-tile{transition:border-color .2s,box-shadow .2s,background .2s}
.service-card:hover,.service-card:focus-within,.community-cards a:hover,.community-cards a:focus-visible,.area-cards a:hover,.area-cards a:focus-visible,a.tile:hover,a.tile:focus-visible,.button:not(:disabled):hover,.button:focus-visible,.cta-tile:hover,.cta-tile:focus-visible{border-color:#45bbeb;box-shadow:0 0 0 1px #45bbeb55,0 6px 24px #008cff18}
.service-card:hover .service-symbol,.service-card:focus-within .service-symbol,.text-link:hover,.text-link:focus-visible,.main-nav a:hover,.main-nav a:focus-visible,.footer-grid nav a:hover,.footer-grid nav a:focus-visible{color:#62ceff}
@media(max-width:600px){main::after{inset:8px 5px;border-radius:8px;box-shadow:inset 0 0 0 3px #202020,inset 0 0 0 4px #b88b6825}.footer-current{height:40px}}
@media(prefers-reduced-motion:reduce){.frame-pulse{animation:none;display:none}.service-card,.community-cards a,.area-cards a,a.tile,.button,.cta-tile{transition:none}}
@media print{main::after,.footer-current{display:none}}

/* A single continuous perimeter; section dividers no longer cross the frame. */
main{margin-inline:12px;border:1px solid #a97852;border-radius:0;overflow:clip}
main::after{display:none}
.refined-surface{border-top:0}
.footer-current{height:48px;max-width:none;margin:0;padding-inline:8%;background:linear-gradient(90deg,#202020,#252b30 50%,#202020);border-block:1px solid #a9785245}
.frame-pulse{animation:visible-current 5s linear infinite;stroke-dasharray:190 850}
@keyframes visible-current{from{stroke-dashoffset:190}to{stroke-dashoffset:-850}}
.brand,.footer-logo{position:relative}
.logo-current{position:absolute;inset:0;width:100%;height:100%;fill:#53d4ff;pointer-events:none;opacity:0;filter:drop-shadow(0 0 7px #00aaff)}
.brand:hover .logo-current,.brand:focus-visible .logo-current,.footer-logo:hover .logo-current,.footer-logo:focus-visible .logo-current{animation:logo-jet 1.05s ease-out}
@keyframes logo-jet{0%{opacity:1;clip-path:inset(0 100% 0 0)}50%{opacity:1;clip-path:inset(0 40% 0 40%)}85%{opacity:1}100%{opacity:0;clip-path:inset(0 0 0 100%)}}
@media(max-width:600px){main{margin-inline:5px}.footer-current{height:38px;padding-inline:4%}}
@media(prefers-reduced-motion:reduce){.frame-pulse{animation:none;display:block;stroke-dashoffset:-350;opacity:.6}.brand:hover .logo-current,.brand:focus-visible .logo-current,.footer-logo:hover .logo-current,.footer-logo:focus-visible .logo-current{animation:none;opacity:1}}
@media print{main{margin:0;border:0}.footer-current,.logo-current{display:none}}

/* Controls energize on intent, with a single contained press pulse. */
.button,.cta-tile,.service-card{position:relative;isolation:isolate}
.button:not(:disabled):hover,.button:focus-visible,.cta-tile:hover,.cta-tile:focus-visible,.service-card:hover,.service-card:focus-within{border-color:#67dcff;box-shadow:0 0 0 1px #45bbeb70,0 0 20px #009dff35,inset 0 0 14px #008cff12;animation:power-on .32s ease-out}
@keyframes power-on{from{box-shadow:0 0 0 1px #45bbeb20,0 0 2px #009dff10}60%{box-shadow:0 0 0 1px #9beaff,0 0 24px #009dff50,inset 0 0 16px #008cff18}}
.button:not(:disabled):active,.cta-tile:active{transform:translateY(1px)}
.power-press{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:5;background:radial-gradient(ellipse at var(--press-x,50%) var(--press-y,50%),#d8f6ff75 0%,#22bfff35 32%,transparent 72%);box-shadow:inset 0 0 0 1px #a4ebff;animation:power-press .3s ease-out forwards}
@keyframes power-press{0%{opacity:.8}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.button:not(:disabled):hover,.button:focus-visible,.cta-tile:hover,.cta-tile:focus-visible,.service-card:hover,.service-card:focus-within{animation:none}.power-press{display:none}.button:active,.cta-tile:active{transform:none}}


/* Homepage photography: shared charcoal and long, continuous fades. */
.home-preview .hero,.fact-panel{background:#161514}
.home-preview .hero-inner{position:relative;z-index:2}
.home-preview .hero-photo::after{background:linear-gradient(90deg,#161514 0%,#161514 7%,rgba(22,21,20,.94) 22%,rgba(22,21,20,.65) 40%,rgba(22,21,20,.22) 65%,rgba(22,21,20,.05) 100%)}
.home-preview .hero::before{content:'';position:absolute;left:0;top:0;bottom:0;width:42%;z-index:0;pointer-events:none;background:url('/assets/hero-copper-traces.svg') left center/100% 100% no-repeat;opacity:.18;mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.5) 55%,transparent 100%)}
.fact-panel{position:relative;isolation:isolate;overflow:hidden;min-height:max(540px,37.5vw)}
.fact-panel .split-copy{position:relative;z-index:2;background:transparent;color:#f7f5f2}
.fact-panel .refined-surface .chip-grid li{border-color:#65645f}
.fact-panel .refined-surface .chip-grid .icon{color:#daa980}
.fact-panel .split-photo{position:absolute;inset:0 0 0 auto;width:65%;height:100%;aspect-ratio:auto;z-index:0;background:#161514;border-radius:0}
.fact-panel .split-photo img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover!important;object-position:center!important;border-radius:0;mask-image:none}
.fact-panel .split-photo::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#161514 0%,rgba(22,21,20,.97) 8%,rgba(22,21,20,.8) 20%,rgba(22,21,20,.35) 40%,transparent 65%)}
main{border-image:linear-gradient(155deg,#d3a37a 0%,#805d43 25%,#b98862 55%,#624936 78%,#c99b73 100%) 1}
@media(max-width:900px){.fact-panel{min-height:0}.fact-panel .split-photo{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:4/3}.fact-panel .split-photo::after{background:linear-gradient(180deg,#161514 0%,rgba(22,21,20,.7) 8%,rgba(22,21,20,.2) 22%,transparent 40%)}}
@media(max-width:600px){.home-preview .hero-photo::after{background:linear-gradient(180deg,rgba(22,21,20,.18),rgba(22,21,20,.78) 28%,#161514 100%)}.home-preview .hero::before{width:65%;opacity:.1}}

/* Mobile presentation: photographs get their own space, independent of text. */
@media screen and (max-width:760px){
  :root{--space:64px}
  .home-preview .hero{display:flex;flex-direction:column}
  .home-preview .hero-inner{padding-block:36px 32px;min-height:0}
  .hero-description{line-height:1.7;margin-top:22px}
  .hero-dock{margin-top:26px;gap:14px}
  .home-preview .hero .hero-photo{position:relative;inset:auto;width:100%;height:auto;z-index:0;order:2;margin:0}
  .home-preview .hero-photo picture{height:auto}
  .home-preview .hero-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center!important}
  .home-preview .hero-photo::after{display:block;background:linear-gradient(180deg,#161514 0%,rgba(22,21,20,.25) 12%,transparent 26%);pointer-events:none}
  .fact-panel{display:flex;flex-direction:column}
  .fact-panel .split-copy{padding:42px var(--gutter) 24px}
  .fact-panel .split-photo{position:relative;inset:auto;aspect-ratio:auto;width:100%;height:auto;min-height:0}
  .fact-panel .split-photo img{position:static;inset:auto;transform:none;display:block;width:100%;height:auto;max-height:none;object-fit:contain!important;mask-image:none}
  .fact-panel .split-photo::after{background:linear-gradient(180deg,#161514 0%,rgba(22,21,20,.2) 8%,transparent 20%)}
  .inner-photo{width:100%;aspect-ratio:auto;min-height:0}
  .inner-photo img{position:static;inset:auto;transform:none;width:100%;height:auto;max-height:none;object-fit:contain!important;mask-image:linear-gradient(to bottom,transparent,#000 4%,#000 97%,transparent)}
  .icon-services{gap:20px}
  .icon-services .card-content{padding:28px 24px}
  .owner-layout{gap:36px}
  .chip-grid{grid-template-columns:1fr}
}

/* Touch devices have no hover: keep the brand's current moving automatically. */
@media screen and (max-width:760px){
  .footer-current{display:block;height:56px;padding-inline:0;overflow:hidden}
  .footer-current svg{width:160%;max-width:none;height:100%;margin-left:-30%}
  .footer-current .frame-pulse{stroke-width:2.2;stroke-dasharray:260 780}
}
@media (hover:none) and (pointer:coarse){
  .brand .logo-current,.footer-logo .logo-current{animation:logo-jet 2.4s linear infinite}
}
@media(prefers-reduced-motion:reduce){
  .brand .logo-current,.footer-logo .logo-current{animation:none;opacity:.65}
  .footer-current .frame-pulse{animation:none;display:block;stroke-dashoffset:-350;opacity:.65}
}

.home-about-link{margin-top:24px;color:#f09a58}.home-coverage{max-width:900px;text-align:center}.home-coverage h2,.home-contact h2{margin-bottom:20px}.home-contact{background:#161514;text-align:center}.home-contact .contact-actions{justify-content:center}.home-contact p{max-width:56ch;margin-inline:auto}
