:root { --ink:#18201d; --charcoal:#202724; --muted:#59615d; --paper:#f7f5ef; --white:#fff; --line:#d9ddd7; --orange:#ef6a24; --orange-dark:#c84e14; --page:min(1180px, calc(100% - 48px)); --display:"Barlow Condensed", Arial Narrow, sans-serif; --body:"IBM Plex Sans", Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--body); font-size:15px; line-height:1.6; }
img { display:block; width:100%; max-width:100%; }
a { color:inherit; }
button, input, select, textarea { font:inherit; }
::selection { background:var(--orange); color:var(--ink); }
:focus-visible { outline:3px solid var(--orange); outline-offset:3px; }
.preview-banner { display:flex; justify-content:center; gap:12px; min-height:28px; padding:6px 18px; background:#34404d; color:#fff; font-size:10px; letter-spacing:.04em; text-align:center; text-transform:uppercase; }
.preview-banner strong { font-weight:700; }
.preview-banner span { color:#dbe0e4; }
.site-header { background:var(--white); border-bottom:1px solid var(--line); }
.site-header__inner { display:flex; align-items:center; gap:28px; width:var(--page); min-height:82px; margin:auto; }
.wordmark { display:grid; flex:0 0 auto; gap:1px; color:var(--ink); line-height:1; text-decoration:none; }
.wordmark__name { font-family:var(--display); font-size:28px; font-weight:800; letter-spacing:-.015em; text-transform:uppercase; }
.wordmark__place { color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.wordmark__logo { width:auto; max-width:200px; max-height:52px; object-fit:contain; object-position:left center; }
.main-nav { display:flex; align-items:center; justify-content:flex-end; gap:20px; flex:1; }
.main-nav a { color:#3f4643; font-family:var(--display); font-size:15px; font-weight:700; text-decoration:none; text-transform:uppercase; transition:color .18s ease; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color:var(--orange-dark); }
.header-quote, .hero-quote, .primary-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 19px; background:var(--orange); color:#181b19; border:1px solid var(--orange); font-family:var(--display); font-size:17px; font-weight:800; letter-spacing:.015em; text-decoration:none; text-transform:uppercase; transition:background-color .18s ease, color .18s ease, border-color .18s ease; }
.header-quote { margin-left:auto; white-space:nowrap; }
.header-quote:hover, .hero-quote:hover, .primary-button:hover { background:var(--ink); border-color:var(--ink); color:#fff; }
.menu-button { display:none; padding:8px; background:none; border:0; color:var(--ink); cursor:pointer; }
.menu-button svg { width:27px; fill:none; stroke:currentColor; stroke-width:2; }
.home-hero, .interior-hero { display:grid; grid-template-columns:minmax(0, .95fr) minmax(440px, 1.05fr); gap:clamp(42px, 7vw, 96px); width:var(--page); margin:0 auto; padding:clamp(54px, 7vw, 96px) 0; }
.home-hero__copy, .interior-hero__copy { align-self:center; max-width:560px; }
h1, h2, h3 { margin:0; font-family:var(--display); font-weight:800; letter-spacing:-.022em; line-height:.94; text-transform:uppercase; }
h1 { max-width:11ch; font-size:clamp(50px, 5.3vw, 78px); }
h2 { font-size:clamp(37px, 4.2vw, 60px); }
p { margin:0; }
.home-hero__copy > p, .interior-hero__copy > p { max-width:56ch; margin-top:22px; color:var(--muted); font-size:16px; }
.home-hero__media, .interior-hero__photo { position:relative; min-height:490px; margin:0; overflow:hidden; background:#e6e9e4; }
.home-hero__media img, .interior-hero__photo img { height:100%; min-height:490px; object-fit:cover; object-position:center; }
.home-hero__media figcaption, .interior-hero__photo figcaption { position:absolute; right:0; bottom:0; left:0; padding:10px 14px; background:rgba(24,32,29,.85); color:#fff; font-size:10px; }
.hero-actions, .interior-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.phone-button, .interior-actions .quote-action, .contact-phone { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 18px; background:var(--ink); color:#fff; border:1px solid var(--ink); font-family:var(--display); font-size:18px; font-weight:800; text-decoration:none; text-transform:uppercase; transition:background-color .18s ease; }
.phone-button:hover, .interior-actions .quote-action:hover { background:var(--orange-dark); border-color:var(--orange-dark); }
.hero-note { margin-top:14px; color:var(--muted); font-size:12px; }
.trust-strip { display:grid; grid-template-columns:repeat(3, 1fr); width:100%; background:var(--ink); color:#fff; }
.trust-strip > div { display:grid; gap:5px; padding:26px max(24px, calc((100vw - 1180px)/6)); border-right:1px solid #43504a; }
.trust-strip > div:last-child { border:0; }
.trust-strip strong { font-family:var(--display); font-size:23px; text-transform:uppercase; }
.trust-strip span { color:#d1d8d2; font-size:13px; }
.home-services, .home-work, .home-process, .service-ledger, .scope-sheet, .process-sheet, .material-band, .about-principles, .owner-truth, .area-sheet, .area-answer { width:var(--page); margin:0 auto; padding:clamp(64px, 8vw, 104px) 0; }
.section-intro { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:36px; }
.section-intro p { max-width:48ch; color:var(--muted); }
.section-intro a { color:var(--ink); font-weight:700; text-decoration-color:var(--orange-dark); text-decoration-thickness:2px; text-underline-offset:5px; }
.service-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
.service-grid a { display:grid; gap:15px; color:var(--ink); text-decoration:none; }
.service-grid img { height:235px; object-fit:cover; }
.service-grid span { font-family:var(--display); font-size:32px; font-weight:800; line-height:1; text-transform:uppercase; }
.service-grid p { color:var(--muted); }
.work-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:18px; }
.work-grid figure { position:relative; min-height:300px; margin:0; overflow:hidden; background:#dde1dc; }
.work-grid__large { grid-row:span 2; min-height:618px !important; }
.work-grid img { height:100%; object-fit:cover; }
.work-grid figcaption { position:absolute; right:0; bottom:0; left:0; padding:12px 14px; background:rgba(20,25,22,.9); color:#fff; font-size:12px; }
.quote-section { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(34px, 6vw, 76px); padding:clamp(62px, 8vw, 100px) max(24px, calc((100vw - 1180px)/2)); background:#e8ece7; }
.quote-section__intro { max-width:390px; }
.quote-section__intro p { margin:18px 0; color:var(--muted); }
.quote-section__intro a { color:var(--ink); font-weight:700; text-decoration-color:var(--orange-dark); text-decoration-thickness:2px; text-underline-offset:5px; }
.quote-form, .contact-form { display:grid; grid-template-columns:repeat(2, 1fr); gap:15px; align-items:end; }
.quote-form label, .contact-form label { display:grid; gap:6px; min-width:0; }
.quote-form label > span, .contact-form label > span { color:#47504b; font-family:var(--display); font-size:14px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.quote-form input, .quote-form select, .quote-form textarea, .contact-form input, .contact-form select, .contact-form textarea { width:100%; min-height:48px; padding:11px 12px; background:#fff; color:var(--ink); border:1px solid #b8c1ba; border-radius:0; }
.quote-form textarea, .contact-form textarea { min-height:105px; resize:vertical; }
.quote-form__service, .quote-form__message, .contact-form label:nth-of-type(5), .contact-form label:nth-of-type(6) { grid-column:span 2; }
.quote-form__submit, .contact-form button { min-height:50px; padding:0 18px; background:var(--orange); color:var(--ink); border:1px solid var(--orange); font-family:var(--display); font-size:18px; font-weight:800; text-transform:uppercase; cursor:pointer; transition:background-color .18s ease, color .18s ease; }
.quote-form__submit:hover, .contact-form button:hover { background:var(--ink); color:#fff; border-color:var(--ink); }
.quote-form__result, .contact-form__result { grid-column:1 / -1; padding:12px; background:#fff; border:1px solid #b8c1ba; }
.form-trap { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.home-process { display:grid; grid-template-columns:.75fr 1.25fr; gap:60px; }
.home-process ol { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin:0; padding:0; list-style:none; }
.home-process li { display:grid; gap:10px; padding-top:16px; border-top:3px solid var(--orange); }
.home-process li strong { font-family:var(--display); font-size:25px; line-height:1; text-transform:uppercase; }
.home-process li span { color:var(--muted); font-size:13px; }
.site-footer { padding:54px max(24px, calc((100vw - 1180px)/2)) 26px; background:var(--ink); color:#fff; }
.site-footer__main { display:grid; grid-template-columns:1.45fr 1fr 1fr 1fr; gap:34px; }
.site-footer strong { font-family:var(--display); font-size:27px; text-transform:uppercase; }
.site-footer p { max-width:36ch; margin-top:12px; color:#c9d0ca; font-size:13px; }
.site-footer__main > div:not(:first-child) { display:grid; align-content:start; gap:8px; }
.site-footer__main > div:not(:first-child) span { color:#aeb8b0; font-family:var(--display); font-size:14px; font-weight:800; text-transform:uppercase; }
.site-footer a { color:#fff; font-size:13px; text-decoration:none; }
.site-footer a:hover { color:#ffad78; }
.site-footer__legal { margin-top:38px; padding-top:18px; border-top:1px solid #43504a; color:#b7c0b9; font-size:11px; }
.mobile-dock { display:none; }
/* Interior pages: shared, calm service-page frame */
.crumbs { color:var(--orange-dark); font-size:12px; font-weight:700; text-transform:uppercase; }
.crumbs a { text-underline-offset:4px; }
.interior-hero { padding-top:60px; padding-bottom:60px; }
.interior-hero__copy h1 { margin-top:18px; max-width:12ch; font-size:clamp(45px, 4.8vw, 70px); }
.interior-hero__photo, .interior-hero__photo img { min-height:430px; height:430px; }
.interior-hero--dark { width:100%; padding-right:max(24px, calc((100vw - 1180px)/2)); padding-left:max(24px, calc((100vw - 1180px)/2)); background:var(--ink); color:#fff; }
.interior-hero--dark .interior-hero__copy > p { color:#d1d8d2; }
.page-hero { width:var(--page); margin:0 auto; padding:70px 0 46px; }
.page-hero h1 { margin-top:18px; max-width:12ch; font-size:clamp(46px, 5vw, 70px); }
.page-hero .lede { max-width:62ch; margin-top:18px; color:var(--muted); }
.page-hero .interior-actions { margin-top:28px; }
.scope-sheet, .about-principles { display:grid; grid-template-columns:.75fr 1.25fr; gap:72px; border-top:1px solid var(--line); }
.scope-sheet h2, .about-principles h2, .owner-truth h2 { font-size:clamp(36px, 3.6vw, 54px); }
.scope-sheet p, .about-principles p, .owner-truth p { color:var(--muted); }
.scope-sheet ul, .about-principles ol, .material-band ul { margin:0; padding:0; list-style:none; }
.scope-sheet li, .about-principles li { display:grid; grid-template-columns:190px 1fr; gap:24px; padding:19px 0; border-top:1px solid var(--line); }
.scope-sheet li strong, .about-principles li strong { font-family:var(--display); font-size:24px; line-height:1; text-transform:uppercase; }
.scope-sheet li span, .about-principles li span { color:var(--muted); }
.process-sheet { background:#e8ece7; }
.process-sheet > div, .process-sheet ol { width:var(--page); margin:auto; }
.process-sheet > div { margin-bottom:32px; }
.process-sheet h2 { font-size:clamp(36px, 3.6vw, 54px); }
.process-sheet ol { display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; padding:0; list-style:none; }
.process-sheet li { padding:20px 0 0; border-top:3px solid var(--orange); }
.process-sheet li strong { display:block; font-family:var(--display); font-size:27px; line-height:1; text-transform:uppercase; }
.process-sheet li span { display:block; margin-top:10px; color:var(--muted); }
.material-band { background:var(--ink); color:#fff; }
.material-band > div, .material-band ul { width:var(--page); margin:auto; }
.material-band > div { margin-bottom:32px; }
.material-band h2 { font-size:clamp(36px, 3.6vw, 54px); }
.material-band p { color:#d1d8d2; }
.material-band ul { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.material-band li { color:#fff; font-family:var(--display); font-size:24px; text-transform:uppercase; }
.project-archive { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; width:var(--page); margin:0 auto 80px; }
.archive-job { background:#fff; border:1px solid var(--line); }
.archive-job figure { height:230px; margin:0; }
.archive-job img { height:100%; object-fit:cover; }
.archive-job > div { padding:20px; }
.archive-job span { color:var(--orange-dark); font-size:10px; font-weight:700; text-transform:uppercase; }
.archive-job h2 { margin:8px 0; font-size:31px; }
.archive-job p { color:var(--muted); font-size:13px; }
.area-sheet { display:grid; grid-template-columns:.7fr 1.3fr; gap:60px; }
.area-sheet__home { display:grid; align-content:start; gap:3px; padding:34px; background:var(--ink); color:#fff; }
.area-sheet__home strong { font-family:var(--display); font-size:45px; line-height:.9; text-transform:uppercase; }
.area-sheet__home small { color:#d1d8d2; font-size:13px; }
.area-sheet ul { margin:0; padding:0; list-style:none; }
.area-sheet li { display:grid; grid-template-columns:180px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
.area-sheet li strong { font-family:var(--display); font-size:28px; line-height:1; text-transform:uppercase; }
.area-sheet li span { color:var(--muted); }
.area-answer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-top:0; }
.area-answer h2 { font-size:clamp(36px, 3.6vw, 54px); }
.area-answer p { max-width:58ch; margin-top:12px; color:var(--muted); }
.area-answer a { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 18px; background:var(--orange); font-family:var(--display); font-size:18px; font-weight:800; text-decoration:none; text-transform:uppercase; }
.interior-cta { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:48px max(24px, calc((100vw - 1180px)/2)); background:var(--orange); }
.interior-cta h2 { max-width:16ch; font-size:clamp(36px, 3.6vw, 55px); }
.interior-cta a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 16px; background:var(--ink); color:#fff; font-family:var(--display); font-size:16px; font-weight:800; text-decoration:none; text-transform:uppercase; }
.owner-truth { display:grid; grid-template-columns:.75fr 1.25fr; gap:72px; background:var(--ink); color:#fff; }
.owner-truth p { color:#d1d8d2; }
.interior-hero__photo--placeholder { display:grid; place-items:center; background:#dfe4de; color:var(--ink); }
.interior-hero__photo--placeholder > div { max-width:300px; padding:28px; text-align:center; }
.interior-hero__photo--placeholder strong { display:block; font-family:var(--display); font-size:30px; line-height:1; text-transform:uppercase; }
.interior-hero__photo--placeholder span { display:block; margin-top:12px; color:var(--muted); font-size:13px; }
.contact-sheet { display:grid; grid-template-columns:.75fr 1.25fr; gap:60px; width:var(--page); margin:0 auto; padding:70px 0; }
.contact-sheet__intro { padding:40px; background:var(--ink); color:#fff; }
.contact-sheet__intro h2 { margin:14px 0; font-size:clamp(36px, 3.5vw, 52px); }
.contact-sheet__intro p { color:#d1d8d2; }
.contact-form { align-self:start; }
@media (max-width: 900px) { .site-header__inner { gap:18px; } .main-nav { gap:13px; } .main-nav a { font-size:13px; } .home-hero, .interior-hero { grid-template-columns:1fr 1fr; gap:36px; } .project-archive { grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 760px) { :root { --page:min(100% - 36px, 1180px); } body { padding-bottom:58px; } .preview-banner { font-size:8px; gap:6px; } .preview-banner span { display:none; } .site-header__inner { min-height:68px; } .wordmark__name { font-size:24px; } .main-nav { position:absolute; top:96px; right:18px; left:18px; z-index:20; display:none; padding:18px; background:#fff; border:1px solid var(--line); box-shadow:0 18px 42px rgba(24,32,29,.14); } .main-nav.is-open { display:grid; gap:14px; } .menu-button { display:block; margin-left:auto; } .header-quote { display:none; } .home-hero, .interior-hero { grid-template-columns:1fr; gap:30px; padding:46px 0; } .home-hero__media, .interior-hero__photo, .interior-hero__photo img { min-height:270px; height:270px; } h1 { font-size:clamp(47px, 14vw, 66px); } .trust-strip { grid-template-columns:1fr; } .trust-strip > div { padding:18px; border-right:0; border-bottom:1px solid #43504a; } .trust-strip > div:last-child { border:0; } .section-intro, .area-answer, .interior-cta { align-items:flex-start; flex-direction:column; } .service-grid, .work-grid, .home-process, .quote-section, .scope-sheet, .about-principles, .area-sheet, .owner-truth, .contact-sheet { grid-template-columns:1fr; gap:28px; } .service-grid img { height:220px; } .work-grid figure, .work-grid__large { min-height:270px !important; grid-row:auto; } .quote-section { padding:60px 18px; } .home-process ol, .process-sheet ol, .material-band ul { grid-template-columns:1fr; } .site-footer__main { grid-template-columns:1fr 1fr; gap:28px; } .mobile-dock { position:fixed; right:0; bottom:0; left:0; z-index:50; display:grid; grid-template-columns:1fr 1fr; min-height:58px; box-shadow:0 -10px 26px rgba(0,0,0,.2); } .mobile-dock a { display:flex; align-items:center; justify-content:center; background:var(--ink); color:#fff; font-family:var(--display); font-size:19px; font-weight:800; text-decoration:none; text-transform:uppercase; } .mobile-dock a:last-child { background:var(--orange); color:var(--ink); } .interior-hero--dark { width:100%; padding-right:18px; padding-left:18px; } .scope-sheet li, .about-principles li, .area-sheet li { grid-template-columns:1fr; gap:8px; } .project-archive { grid-template-columns:1fr; } }
@media (max-width: 460px) { :root { --page:calc(100% - 28px); } .wordmark__name { font-size:21px; } .quote-form, .contact-form { grid-template-columns:1fr; } .quote-form__service, .quote-form__message, .contact-form label:nth-of-type(5), .contact-form label:nth-of-type(6) { grid-column:auto; } .hero-actions { display:grid; grid-template-columns:1fr; } .site-footer__main { grid-template-columns:1fr; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; } }
/* Reference-led refinements: calm contractor hierarchy, deliberate image crops, and one honest Google-proof location. */
.home-hero { align-items:start; }
.home-hero__copy { align-self:start; padding-top:clamp(18px, 4vw, 58px); }
.home-hero__media { height:clamp(440px, 42vw, 560px); min-height:0; isolation:isolate; }
.home-hero__media::after, .page-hero__media::after { position:absolute; z-index:1; inset:0; content:""; background:linear-gradient(180deg, transparent 58%, rgba(18, 28, 24, .72)); pointer-events:none; }
.home-hero__media img { min-height:0; height:100%; object-position:center 58%; transition:transform .7s cubic-bezier(.2,0,0,1); }
.home-hero__media:hover img, .page-hero__media:hover img { transform:scale(1.035); }
.home-hero__media figcaption, .page-hero__media figcaption { z-index:2; }
.google-proof-band { display:grid; grid-template-columns:minmax(0, .92fr) minmax(360px, 1.08fr); align-items:center; gap:clamp(36px, 7vw, 100px); width:var(--page); margin:0 auto; padding:clamp(64px, 8vw, 96px) 0; }
.google-proof-band h2 { max-width:10ch; }
.google-proof-band p { max-width:55ch; margin-top:16px; color:var(--muted); }
.google-proof-slot { display:grid; gap:12px; padding:34px; background:var(--white); border-top:4px solid var(--orange); box-shadow:0 16px 34px rgba(24,32,29,.08); }
.google-proof-slot span { color:var(--orange-dark); font-size:12px; font-weight:700; text-transform:uppercase; }
.google-proof-slot strong { font-family:var(--display); font-size:32px; line-height:1; text-transform:uppercase; }
.google-proof-slot p { margin:0; font-size:13px; }
.google-proof-slot a { width:max-content; color:var(--ink); font-weight:700; text-underline-offset:5px; }
.page-hero--media { display:grid; grid-template-columns:minmax(0, .9fr) minmax(430px, 1.1fr); align-items:center; gap:clamp(42px, 7vw, 96px); padding:clamp(56px, 7vw, 88px) 0; }
.page-hero--media .page-hero__copy { max-width:560px; }
.page-hero--media h1 { margin-top:18px; }
.page-hero__media { position:relative; min-height:430px; height:430px; margin:0; overflow:hidden; background:#e6e9e4; isolation:isolate; }
.page-hero__media img { height:100%; object-fit:cover; object-position:center 55%; transition:transform .7s cubic-bezier(.2,0,0,1); }
.page-hero__media figcaption { position:absolute; right:0; bottom:0; left:0; padding:10px 14px; background:rgba(24,32,29,.85); color:#fff; font-size:10px; }
.site-header { position:sticky; top:0; z-index:40; transition:box-shadow .2s ease, min-height .2s ease; }
.site-header.is-scrolled { box-shadow:0 10px 24px rgba(24,32,29,.1); }
[data-reveal] { opacity:0; transform:translateY(18px); transition:opacity .55s cubic-bezier(.2,0,0,1), transform .55s cubic-bezier(.2,0,0,1); }
[data-reveal].is-visible { opacity:1; transform:none; }
@media (max-width:760px) { .home-hero__copy { padding-top:0; } .home-hero__media { height:300px; min-height:300px; } .home-hero__media img { height:300px; } .google-proof-band, .page-hero--media { grid-template-columns:1fr; gap:28px; } .google-proof-band { padding:58px 0; } .google-proof-slot { padding:26px; } .page-hero--media { padding:46px 0; } .page-hero__media { height:270px; min-height:270px; } }
@media (prefers-reduced-motion: reduce) { [data-reveal] { opacity:1; transform:none; transition:none; } .home-hero__media img, .page-hero__media img { transition:none; } }

/* Audit fixes: consistent CTA geometry, contrast, and usable touch targets. */
.interior-actions > a:last-child { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 18px; background:var(--orange); color:var(--ink); border:1px solid var(--orange); font-family:var(--display); font-size:17px; font-weight:800; text-decoration:none; text-transform:uppercase; }
.interior-actions > a:last-child:hover { background:var(--ink); border-color:var(--ink); color:#fff; }
.site-footer a, .google-proof-slot a { display:inline-flex; align-items:center; min-height:28px; }
@media (max-width:760px) { .main-nav a { display:flex; align-items:center; min-height:44px; } .site-footer a, .google-proof-slot a { min-height:44px; } }
