:root{--ink:#152e39;--gold:#e3b457;--muted:#586870;--line:#dce3e5;--paper:#fff;--light:#f1f5f6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif}a{color:inherit}a:focus-visible,summary:focus-visible{outline:3px solid #b47b13;outline-offset:5px}header{max-width:1440px;margin:auto;padding:25px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;font-weight:800;font-size:22px;line-height:1.1;letter-spacing:2px}.brand small{display:block;font-size:11px;letter-spacing:2px;margin-top:8px}.monogram{font:700 45px/1 Georgia,serif}.monogram span{color:#b47b13}nav{display:flex;gap:30px}nav a{text-decoration:none;font-size:14px;font-weight:600}.header-call{font-size:15px;font-weight:700;text-decoration:none;border-bottom:2px solid var(--gold)}.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1fr;padding-left:5%;min-height:650px}.hero-copy{padding:56px 9% 45px 0;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:12px;letter-spacing:2.5px;font-weight:700;margin:0 0 22px;color:#647880}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-2px;line-height:1.06;margin:0}h1{font-size:clamp(46px,5.2vw,76px)}h1 em{font-weight:400;color:#956821}h2{font-size:clamp(36px,3.8vw,54px)}h3{font-size:21px;line-height:1.35;letter-spacing:-.3px;margin:16px 0 12px}p{margin:0 0 20px}.intro{font-size:18px;max-width:450px;margin-top:28px;color:var(--muted)}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin:10px 0 40px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:14px 22px;text-decoration:none;font-weight:700;font-size:15px}.gold{background:var(--gold)}.gold:hover{background:#edc473}.text-link{font-size:15px;font-weight:700;text-decoration-thickness:1px;text-underline-offset:6px}.hero-note{display:flex;gap:22px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:20px;font-size:12px;color:var(--muted)}figure{margin:0}.hero-photo{position:relative;min-width:0;background:var(--light)}.hero-photo img{width:100%;height:100%;max-height:730px;object-fit:cover;display:block}.hero-photo figcaption{position:absolute;bottom:30px;left:30px;background:#152e39ed;color:#fff;padding:20px 27px;display:flex;flex-direction:column}.hero-photo figcaption span{font-size:11px;letter-spacing:1.8px;color:#d0dadd}.hero-photo figcaption strong{font:26px/1.5 Georgia,serif}.service-strip{background:var(--ink);color:white;display:flex;justify-content:center;gap:5%;flex-wrap:wrap;padding:22px 5%;font-size:14px}.service-strip span{white-space:nowrap}.section{max-width:1280px;margin:auto;padding:95px 5%}.section-heading{display:grid;grid-template-columns:1.25fr 1fr;align-items:end;gap:12%;margin-bottom:48px}.section-heading>p{color:var(--muted);max-width:370px;margin-bottom:4px}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.services-grid article{border-top:1px solid var(--line);padding-top:25px}.number{color:#926820;font:24px Georgia,serif}.services-grid p{font-size:15px;color:var(--muted)}.work{padding-top:45px}.gallery{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:20px}.gallery img{display:block;width:100%;height:370px;object-fit:cover}.gallery .wide img{object-position:center}.gallery figcaption{display:flex;flex-direction:column;padding:18px 0;font-size:15px}.gallery figcaption span{font-size:13px;color:var(--muted);margin-top:4px}.comparison{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:15px 0 30px;padding:18px 0}.comparison summary{cursor:pointer;font-size:15px;font-weight:700}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:740px;margin-top:24px}.comparison-grid img{width:100%;height:430px;object-fit:cover}.comparison-grid figcaption{font-weight:700;padding-top:8px}.about{display:grid;grid-template-columns:1fr 1fr;gap:12%;background:var(--light);max-width:1440px;padding-left:max(5%,calc((100% - 1152px)/2));padding-right:max(5%,calc((100% - 1152px)/2))}.about .about-lead{font-size:22px;line-height:1.5}.about p{color:var(--muted)}.area{border-left:3px solid var(--gold);padding-left:22px;margin-top:30px}.area p{font-size:15px;margin:8px 0 0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.steps span{font-size:12px;letter-spacing:1.3px;color:#926820;font-weight:700}.steps p{color:var(--muted);font-size:15px}.contact{background:var(--ink);color:#fff;max-width:1440px;display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-left:max(5%,calc((100% - 1152px)/2));padding-right:max(5%,calc((100% - 1152px)/2))}.contact .eyebrow{color:var(--gold)}.contact h2{margin-bottom:25px}.contact p{color:#c8d4d9;max-width:410px}.contact-options a{display:block;border-bottom:1px solid #45606c;padding:22px 0;text-decoration:none}.contact-options a:first-child{padding-top:0}.contact-options span{display:block;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:2px;margin-bottom:8px}.contact-options strong{font-size:clamp(18px,2vw,25px);overflow-wrap:anywhere}.contact-options a:hover strong{text-decoration:underline;text-underline-offset:5px}footer{display:flex;justify-content:space-between;gap:20px;max-width:1280px;margin:auto;padding:30px 5%;font-size:13px;color:var(--muted)}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;background:white;z-index:10;padding:10px}.mobile-contact{display:none}@media(min-width:1600px){.hero{min-height:700px}}@media(max-width:900px){header{padding:20px 5%}nav{gap:18px}.brand{font-size:18px}.hero{min-height:570px}.hero-copy{padding-top:35px}.intro{font-size:16px}.actions{gap:20px}.section{padding:65px 5%}.services-grid{grid-template-columns:repeat(2,1fr)}.gallery img{height:300px}.section-heading{gap:6%}.about,.contact{gap:6%}.steps{gap:25px}.service-strip{gap:20px;font-size:12px}.hero-note{gap:10px}}@media(max-width:640px){header{gap:12px}.brand{font-size:17px}.brand small{font-size:9px}.monogram{font-size:37px}nav{display:none}.header-call{font-size:13px}.hero{padding-left:0;grid-template-columns:1fr}.hero-copy{padding:38px 6% 32px}h1{font-size:55px}.intro{font-size:17px;max-width:100%;margin-top:23px}.eyebrow{font-size:11px;letter-spacing:1.8px}.actions{margin-bottom:26px}.hero-photo{height:390px}.hero-photo img{object-position:center 50%}.hero-photo figcaption{left:20px;bottom:20px;padding:14px 20px}.hero-photo figcaption strong{font-size:22px}.hero-note{font-size:12px;gap:16px}.service-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px 15px;font-size:12px;padding:20px 6%}.section{padding:55px 6%}.section-heading{grid-template-columns:1fr;gap:25px;margin-bottom:30px}h2{font-size:39px}.section-heading>p{max-width:100%}.services-grid{gap:18px}.services-grid h3{font-size:18px}.services-grid p{font-size:14px}.gallery{grid-template-columns:1fr 1fr;gap:16px}.gallery .wide{grid-column:1/-1}.gallery .wide img{height:360px}.gallery img{height:240px}.gallery figcaption strong{font-size:14px}.gallery figcaption span{font-size:12px}.comparison-grid img{height:270px}.about,.contact{grid-template-columns:1fr;gap:30px}.about .about-lead{font-size:20px}.steps{grid-template-columns:1fr;gap:20px}.steps article{border-top:1px solid var(--line);padding-top:20px}.steps h3{margin-top:8px}.contact-options strong{font-size:21px}footer{flex-wrap:wrap;padding-bottom:95px}.mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:5;background:var(--ink);border-top:1px solid #4b626b;padding-bottom:env(safe-area-inset-bottom)}.mobile-contact a{width:50%;text-align:center;padding:15px 5px;font-size:14px;font-weight:700;text-decoration:none;color:#fff}.mobile-contact a:last-child{background:var(--gold);color:var(--ink)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Supplied business logo: preserve the complete artwork and proportions. */
header .brand{display:block;flex:0 1 310px;min-width:0}
.brand-logo{display:block;width:100%;height:auto}
footer{align-items:center}
.footer-brand{display:block;width:220px;max-width:100%;flex-shrink:0}
.footer-brand img{display:block;width:100%;height:auto}
@media(max-width:760px){header nav{display:none}header .brand{flex:0 1 270px}}
@media(max-width:640px){header{padding:16px 5%;gap:12px}header .brand{flex:0 1 auto;width:clamp(166px,55vw,220px)}.header-call{white-space:nowrap;flex-shrink:0}.footer-brand{width:220px;flex-basis:100%}.footer-brand img{max-width:220px}}

/* Customer-supplied Google review excerpts. */
.reviews{padding-bottom:25px}
.review-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:32px}
.review-heading>p{max-width:330px;color:var(--muted);margin:0}
.review-heading h2{font-size:clamp(34px,3.3vw,47px)}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.review-card{min-width:0;padding:26px;background:var(--light);border-top:3px solid #567f9b;display:flex;flex-direction:column}
.review-rating{color:#956821;font-size:21px;letter-spacing:3px;line-height:1.3;margin-bottom:16px}
.review-project{color:var(--muted);font-size:14px;margin-bottom:12px}
.review-card blockquote{margin:0 0 24px;font:19px/1.6 Georgia,'Times New Roman',serif;flex:1}
.review-card blockquote p{margin:0}
.review-card figcaption{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:17px;gap:3px}
.review-card figcaption strong{font-size:15px}
.review-card figcaption span{font-size:13px;color:var(--muted)}
@media(max-width:800px){.reviews-grid{grid-template-columns:1fr}.review-heading{display:block}.review-heading>p{max-width:100%;margin-top:20px}.review-card{padding:25px}.review-card blockquote{font-size:20px}.reviews{padding-bottom:10px}}

/* Expandable project gallery; originals remain available without JavaScript. */
.project-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.project-card{min-width:0}
.project-image{display:block;background:var(--light);overflow:hidden;cursor:zoom-in}
.project-gallery .project-image img{display:block;width:100%;height:280px;object-fit:cover;transition:transform .2s ease}
.project-image:hover img{transform:scale(1.025)}
.project-gallery .collage img{object-fit:contain}
#project-viewer{width:min(1100px,95vw);max-height:94dvh;border:0;padding:18px;background:#10232c;color:#fff;overflow:auto}
#project-viewer::backdrop{background:#06131bec}
.viewer-toolbar,.viewer-nav{display:flex;align-items:center;justify-content:space-between;gap:16px}
.viewer-toolbar p{margin:0;font-size:14px;color:#d6e2e7}
#project-viewer button{border:1px solid #91a8b4;background:transparent;color:#fff;padding:11px 16px;font:600 14px Arial,sans-serif;min-height:44px;cursor:pointer}
#project-viewer button:hover{background:#294752}
#viewer-image{display:block;width:100%;height:65dvh;object-fit:contain;margin:14px 0;background:#0b1a21}
#viewer-caption{font-size:16px;line-height:1.5;margin:14px 0}
body.viewer-open{overflow:hidden}
@media(max-width:900px){.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project-gallery .project-image img{height:260px}}
@media(max-width:640px){.project-gallery{gap:18px 14px}.project-gallery .project-image img{height:190px}.project-gallery figcaption strong{font-size:14px}.project-gallery figcaption span{font-size:13px}.viewer-nav button{flex:1;padding:11px 8px}#viewer-image{height:58dvh}#project-viewer{padding:14px}}
@media(max-width:360px){.project-gallery{grid-template-columns:1fr}.project-gallery .project-image img{height:250px}}
@media(prefers-reduced-motion:reduce){.project-image img{transition:none}.project-image:hover img{transform:none}}
