:root{--ink:#1d2527;--muted:#566164;--red:#8b0000;--paper:#fff;--soft:#f1f3f2;--line:#dce1df}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:inherit;text-underline-offset:4px}img{max-width:100%;display:block;object-fit:cover}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bd4c30;outline-offset:4px}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:100}.skip:focus{top:15px}.reviewbar{padding:9px 4%;background:#ece9e3;color:#46443d;display:flex;justify-content:space-between;gap:16px;font-size:11px;letter-spacing:1px}.reviewbar a{font-size:11px;letter-spacing:.2px}header{background:#191f20;color:#fff}.header-inner{max-width:1260px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 36px}.brand{display:flex;align-items:center;text-decoration:none;line-height:1.2;white-space:nowrap;font-weight:800;letter-spacing:2px;font-size:19px}.brand img{width:72px;height:72px;object-fit:contain;transform:scale(1.8);margin-right:20px}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:1.1px;margin-top:8px;color:#bfc5c5}nav{display:flex;align-items:center;gap:23px}nav a{text-decoration:none;font-size:12px;white-space:nowrap;padding:8px 0}nav a:hover,nav a[aria-current]{color:#ffb4aa}.menu-toggle{display:none}.hero{height:min(660px,74vw);min-height:480px;position:relative;color:#fff;overflow:hidden}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-position:center}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,23,25,.77),rgba(10,23,25,.17))}.hero-content{position:relative;z-index:1;max-width:1188px;padding:95px 36px;margin:auto}.eyebrow{font-size:12px;font-weight:700;letter-spacing:3px;margin:0 0 22px;color:var(--red)}.hero .eyebrow{color:#fff;font-size:13px}.hero h1{font-size:clamp(44px,5.2vw,74px);line-height:1.06;letter-spacing:-2px;margin:0;max-width:800px}.hero-name{font-size:19px;letter-spacing:7px;margin:25px 0 32px}.hero-location{position:absolute;z-index:2;bottom:0;padding:20px max(36px,calc((100% - 1116px)/2));width:100%;display:flex;justify-content:space-between;gap:25px;border-top:1px solid #ffffff45;font-size:10px;letter-spacing:2px;white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:8px;background:var(--red);border:1px solid var(--red);padding:14px 25px;color:white;text-decoration:none;font-size:13px;cursor:pointer;min-height:48px}.button:hover{background:#640000}.button:disabled{opacity:.5;cursor:not-allowed}.section{max-width:1188px;margin:auto;padding:90px 36px}h2{font-size:clamp(30px,3.4vw,46px);letter-spacing:-1.2px;line-height:1.16;margin:0 0 26px}h3{font-size:17px;line-height:1.4;text-transform:uppercase;margin:20px 0 16px}p{margin:0 0 24px}.lead{font-size:18px;color:#4b5557;line-height:1.8}.about{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:85px}.about img{width:100%;height:430px}.about-image{position:relative}.about-image:after{content:'';position:absolute;width:90px;height:90px;bottom:-14px;left:-14px;border-bottom:5px solid var(--red);border-left:5px solid var(--red)}.services{text-align:center}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:45px 0}.services-grid article{padding:0 12px}.services-grid p{font-size:15px;color:var(--muted)}.services-grid small{font-size:11px;color:var(--muted)}.service-icon{font-size:42px;color:var(--red);display:block}.text-link{font-size:13px;font-weight:bold}.work-image{height:420px;max-width:1188px;margin:auto;padding:0 36px}.work-image img{height:100%;width:100%;object-position:center}.testimonials{text-align:center;padding-top:70px;padding-bottom:70px}.testimonials h2{font-size:27px;font-weight:500}.testimonials p{color:var(--muted);font-size:13px}.estimate{display:grid;grid-template-columns:1fr 1fr;background:var(--soft)}.estimate>div:first-child img{width:100%;height:100%;min-height:450px;max-height:560px}.estimate-text{padding:70px clamp(30px,6vw,100px);max-width:700px}.estimate-text p{font-size:16px;color:var(--muted)}.estimate-text small{display:block;margin-top:18px;font-size:11px;color:var(--muted)}footer{background:#191f20;color:#d8dedd}.footer-inner{max-width:1188px;margin:auto;padding:55px 36px;display:grid;grid-template-columns:.8fr 1fr 1.4fr;gap:45px;font-size:13px}.footer-inner strong{color:#fff;font-size:11px;letter-spacing:1.5px;display:block;margin-bottom:18px}.footer-inner p{margin:0 0 12px}.footer-bottom{max-width:1116px;margin:auto;padding:20px 0;border-top:1px solid #384042;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#aeb8b8}.page-heading{background:var(--soft);padding:65px 36px;text-align:center}.page-heading h1{font-size:clamp(36px,4.7vw,62px);line-height:1.14;letter-spacing:-1.5px;margin:0 0 20px}.page-heading p:last-child{margin-bottom:0;color:var(--muted)}.source-note{text-align:left;background:#f5f1e9;border-left:3px solid #b49c72;padding:20px 22px;margin:30px 0;font-size:13px;line-height:1.7;color:#62563f}.source-note strong{font-size:11px;letter-spacing:1px;text-transform:uppercase}.source-note p{margin:6px 0 0}.narrow{max-width:850px;min-height:400px}.narrow h2{font-size:30px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}dl{margin:35px 0}dt{font-size:11px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}dd{margin:4px 0 22px;font-size:18px}form{background:var(--soft);padding:35px}form h2{font-size:25px}form p{font-size:13px;color:var(--muted)}label{font-size:13px;display:block;margin:16px 0 7px}input,select,textarea{border:1px solid #adb6b5;border-radius:0;background:white;padding:11px 12px;width:100%;color:var(--ink);font-size:16px}textarea{resize:vertical}form .button{margin-top:22px}output{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}output:not(:empty){border-top:1px solid #aeb8b8;margin-top:25px;padding-top:20px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:13px;vertical-align:top;overflow-wrap:anywhere}td:first-child{min-width:190px}th{background:var(--soft)}.error{text-align:center}.error h1{font-size:44px}
@media(max-width:1050px){.header-inner{padding:12px 22px}.brand{font-size:15px}.brand img{width:52px;height:52px;margin-right:12px}nav{gap:15px}nav a{font-size:11px}.about,.contact-grid{gap:40px}.footer-bottom{margin:0 36px}}
@media(max-width:760px){.reviewbar{font-size:9px;letter-spacing:.4px;flex-wrap:wrap;gap:3px;padding:8px 20px}.reviewbar a{font-size:10px}.header-inner{flex-wrap:wrap;padding:14px 20px}.brand{font-size:17px}.brand small{font-size:7px}.brand img{width:55px;height:55px}.menu-toggle:not([hidden]){display:block;background:transparent;color:white;border:1px solid #576163;padding:8px 14px;font-size:12px}.js nav:not(.open){display:none}nav{width:100%;display:flex;flex-wrap:wrap;gap:5px 24px;padding:15px 0 4px}nav a{font-size:14px;padding:8px 0}.hero{height:570px;min-height:0}.hero-content{padding:83px 24px 60px}.hero h1{font-size:46px;letter-spacing:-1.8px}.hero .eyebrow{font-size:10px;letter-spacing:2.4px}.hero-name{font-size:16px}.hero-location{padding:18px 24px;font-size:9px;white-space:normal}.hero-location span{text-align:right;max-width:150px}.section{padding:55px 24px}.about,.contact-grid{grid-template-columns:1fr;gap:38px}.about img{height:330px}.about-image:after{left:-9px;bottom:-9px;width:60px;height:60px}.lead{font-size:16px}.services-grid{grid-template-columns:1fr;gap:35px;margin:30px 0}.services-grid article{max-width:400px;margin:auto}.services-grid p{margin-bottom:10px}.work-image{height:280px;padding:0 24px}.estimate{grid-template-columns:1fr}.estimate>div:first-child img{height:300px;min-height:0}.estimate-text{padding:45px 24px}.footer-inner{padding:45px 24px;grid-template-columns:1fr 1fr;gap:30px}.footer-inner>div:last-child{grid-column:1/-1}.footer-bottom{margin:0 24px;flex-direction:column;gap:10px}.page-heading{padding:45px 24px}.page-heading h1{font-size:38px}.contact-grid form{padding:25px}.source-note{padding:18px}h2{font-size:35px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Bay Area home service expansion. Historical routes remain unchanged. */
.hero-description{max-width:560px;font-size:19px;line-height:1.65;margin:25px 0 30px;color:#f2f5f3}.home-services-hero h1{font-size:clamp(42px,5vw,68px)}.home-services-hero .hero-content{padding-top:75px}.section-intro{max-width:650px;margin:0 auto;color:var(--muted)}.category-grid{gap:18px;text-align:left}.category-grid article{border:1px solid var(--line);padding:27px;background:#fff;display:flex;flex-direction:column}.category-grid article:hover{border-color:#8b0000}.category-grid h3 a{text-decoration:none}.category-grid .text-link{margin-top:auto}.category-number{color:var(--red);font-size:12px;letter-spacing:2px}.process-section{border-top:1px solid var(--line)}.project-cta{padding:65px 24px;text-align:center;background:var(--soft)}.preview-caption{font-size:12px;color:var(--muted);margin:18px 0 0}.service-detail{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:70px;align-items:start}.service-detail h2{font-size:30px;margin-top:36px}.scope-list{padding-left:22px;margin-bottom:35px}.scope-list li{padding:8px 0}.service-sidebar{padding:30px;background:var(--soft)}.service-sidebar h2{font-size:28px;margin-top:0}.service-sidebar>a{display:block;margin:13px 0}.service-sidebar p{font-size:14px}.brand{font-size:17px;letter-spacing:1px}.brand img{margin-right:12px}nav{gap:18px}
@media(max-width:1050px){.brand{font-size:14px}nav{gap:12px}.service-detail{gap:35px}}
@media(max-width:760px){.home-services-hero{height:590px}.home-services-hero h1{font-size:43px}.home-services-hero .hero-content{padding-top:70px}.hero-description{font-size:17px}.category-grid article{width:100%;max-width:none}.service-detail{grid-template-columns:1fr;gap:32px}.brand{font-size:16px}.brand img{width:48px;height:48px}.category-grid{gap:16px}.process-section .services-grid article{text-align:left;width:100%}.reviewbar{letter-spacing:0}}
/* Service photography: one source per category, shared card/detail mapping. */
.category-grid article{overflow:hidden}.category-photo-link{display:block;margin:-27px -27px 22px;overflow:hidden;background:#e2e7e4}.category-photo-link .service-photo{width:100%;height:auto;aspect-ratio:32/21;object-fit:cover}.category-photo-link:focus-visible{outline-offset:-4px}.service-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:60px;text-align:left;align-items:center;padding:50px max(36px,calc((100% - 1116px)/2))}.service-heading h1{font-size:clamp(32px,3.6vw,52px);overflow-wrap:normal}.service-heading figure{margin:0;min-width:0}.service-heading .service-photo{width:100%;height:auto;aspect-ratio:32/21;object-fit:cover}.service-heading p:last-child{font-size:17px}.service-detail{padding-top:55px}
@media(max-width:1050px){.service-heading{gap:30px}}
@media(max-width:760px){.service-heading{grid-template-columns:1fr;padding:35px 24px;gap:25px}.service-heading h1{font-size:36px}.service-heading .eyebrow{margin-bottom:16px}.service-heading p:last-child{font-size:16px}.category-photo-link{margin-bottom:20px}}

/* Consistent text buttons replace arrow links. */
.button-secondary{background:#fff;color:var(--red);border-color:#c3a5a1;font-weight:600}.button-secondary:hover{background:#f7eeec;color:#640000;border-color:#8b0000}.category-grid .service-button{margin-top:auto;align-self:flex-start;min-width:140px}.reviewbar{align-items:center}.review-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 12px;border:1px solid #a9a59b;border-radius:8px;text-decoration:none}.review-link:hover{background:#fff}

.business-contact{overflow-wrap:anywhere}.business-contact a{display:inline-block;padding:3px 0}#email-request{margin-top:20px}#email-request[hidden]{display:none}

/* Shared contact access and request forms on every content page. */
.header-phone{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:1px solid #78817f;border-radius:8px;white-space:nowrap;text-decoration:none;font-size:14px;font-weight:700}.header-phone:hover{background:#303b3c;border-color:#fff}.request-section{border-top:1px solid var(--line)}.contact-grid>*{min-width:0}
@media(min-width:761px) and (max-width:1100px){.header-inner{flex-wrap:wrap;gap:10px 20px}.header-inner nav{order:3;width:100%;justify-content:flex-end}.header-phone{margin-left:auto}}
@media(max-width:760px){.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px}.brand{grid-column:1;grid-row:1;font-size:13px}.brand img{width:38px;height:38px;margin-right:9px}.header-phone{grid-column:2;grid-row:1;font-size:12px;padding:8px;min-height:44px}.menu-toggle{grid-column:2;grid-row:2;justify-self:end}.header-inner nav{grid-column:1/-1;grid-row:3}.brand small{font-size:6px;letter-spacing:.7px}}
@media(max-width:360px){.header-inner{padding-left:14px;padding-right:14px;column-gap:8px}.brand{font-size:11px}.brand img{width:30px;height:30px}.header-phone{font-size:11px;padding:7px}}
