:root{--ink:#202124;--paper:#f7f7f5;--brand:#65676b;--accent:#c5c7ca;--line:rgba(32,33,36,.16)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif}a{color:inherit;text-decoration:none}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;border-bottom:1px solid var(--line);position:relative;z-index:2}.brand{display:flex;align-items:center;gap:14px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.brand-logo{display:block;width:104px;height:auto;object-fit:contain}.brand-name{font-size:14px}.footer-brand .brand-logo{width:118px}nav{display:flex;align-items:center;gap:32px;font-weight:600;font-size:14px}.nav-phone{font-weight:800;white-space:nowrap;color:var(--brand)}.nav-phone:hover{text-decoration:underline;text-underline-offset:4px}.nav-cta{border:1px solid var(--ink);padding:12px 18px}.hero{min-height:660px;display:grid;grid-template-columns:1.4fr .6fr;align-items:center;padding:70px 6vw;background:radial-gradient(circle at 80% 40%,rgba(101,103,107,.14),transparent 28%),linear-gradient(120deg,var(--paper) 65%,#e5e6e7 65%)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:800;color:var(--brand)}.hero h1,.section h2,.contact h2{font-family:Oswald,sans-serif;text-transform:uppercase;line-height:.98;margin:16px 0 24px}.hero h1{font-size:clamp(64px,8vw,116px);letter-spacing:-.025em}.hero h1 span{color:var(--brand)}.hero-copy{font-size:20px;line-height:1.65;max-width:610px;color:#4e524d}.hero-actions{display:flex;gap:14px;margin-top:36px}.button{display:inline-block;padding:16px 22px;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;transition:.2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--brand);color:white}.button-secondary{border:1px solid var(--ink)}.hero-card{justify-self:end;width:min(100%,340px);height:390px;background:var(--brand);color:white;padding:32px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:22px 22px 0 var(--accent)}.card-number{font-family:Oswald;font-size:110px;font-weight:700;line-height:1;color:var(--accent)}.hero-card p{font-size:20px;line-height:1.5}.trust-strip{display:flex;justify-content:center;gap:7vw;padding:22px 4vw;background:var(--ink);color:white;text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:700}.trust-strip span:before{content:'✦';color:var(--accent);margin-right:14px}.section{padding:110px 6vw}.section-heading{display:grid;grid-template-columns:1fr 2fr;align-items:start}.section h2,.contact h2{font-size:clamp(42px,5vw,72px);max-width:850px;margin-top:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:60px}.service-grid article{background:var(--paper);padding:42px;min-height:280px}.service-grid article span{font-family:Oswald;font-size:14px;color:var(--brand)}.service-grid h3{font-family:Oswald;font-size:34px;text-transform:uppercase;margin:56px 0 15px}.service-grid p{color:#595d57;line-height:1.65}.split{display:grid;grid-template-columns:1fr 1fr;gap:8vw;background:#ececed}.check-list p{display:flex;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);line-height:1.6}.check-list b{font-family:Oswald;color:var(--brand)}.contact{text-align:center;padding:120px 6vw;background:var(--brand);color:white}.contact .eyebrow{color:#dfe0e2}.contact h2{max-width:none}.contact>p:not(.eyebrow){color:#e1e2e3;font-size:18px}.button-light{background:white;color:var(--ink);margin-top:22px}footer{padding:42px 6vw;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;border-top:1px solid var(--line);font-size:13px}footer p:nth-child(2){text-align:center}footer p:last-child{text-align:right}@media(max-width:800px){.site-header{padding:0 20px}.brand-logo{width:86px}.brand-name{display:none}.hero{grid-template-columns:1fr;padding:70px 24px 90px;background:var(--paper)}.hero h1{font-size:58px}.hero-card{display:none}.trust-strip{flex-direction:column;gap:14px;padding:24px}.section{padding:75px 24px}.section-heading,.split{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}.service-grid article{min-height:auto}.split{gap:30px}.contact{padding:80px 24px}footer{grid-template-columns:1fr;gap:25px;text-align:center}footer p:nth-child(2),footer p:last-child{text-align:center}.hero-actions{flex-direction:column;align-items:flex-start}}


.card-number{color:#fff}
.gallery-section{padding-top:110px;padding-bottom:110px}
.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:42px}
.gallery-heading>div{max-width:700px}
.gallery-heading>p{max-width:430px;margin:0 0 8px;color:#595d57;line-height:1.7}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,240px);gap:18px}
.gallery-item{margin:0;overflow:hidden;background:#e5e6e7;border:1px solid var(--line)}
.gallery-featured{grid-row:span 2}
.gallery-placeholder{height:100%;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;background:linear-gradient(145deg,#dfe0e2,#ececed)}
.gallery-placeholder:before{content:"";position:absolute;inset:16px;border:1px solid rgba(101,103,107,.22)}
.gallery-placeholder span{position:absolute;top:28px;right:30px;color:var(--brand);font-family:Oswald,sans-serif;font-size:18px}
.gallery-placeholder strong{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:22px;letter-spacing:.02em;z-index:1}
.gallery-placeholder small{margin-top:5px;color:#65676b;text-transform:uppercase;letter-spacing:.12em;font-size:10px;z-index:1}
@media(max-width:780px){.gallery-heading{display:block}.gallery-heading>p{margin-top:18px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:320px repeat(2,190px)}.gallery-featured{grid-column:span 2;grid-row:auto}}
@media(max-width:520px){.gallery-grid{grid-template-columns:1fr;grid-template-rows:290px repeat(4,190px)}.gallery-featured{grid-column:auto}}

.contact-phone{margin-top:20px;font-weight:600}.contact-phone a,.footer-phone{font-weight:800;text-decoration:underline;text-underline-offset:4px}.contact-phone a:hover,.footer-phone:hover{color:var(--brand)}
.contact{padding-top:96px;padding-bottom:96px}
.contact-intro{max-width:720px;margin:0 auto 38px}
.estimate-form{max-width:860px;margin:0 auto;background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.16);text-align:left}
.estimate-form iframe{display:block;width:100%!important;min-height:620px;border:0}
@media(max-width:780px){.contact{padding-top:72px;padding-bottom:72px}.estimate-form{margin-left:-2vw;margin-right:-2vw}}

/* Separate gallery page */
.gallery-page-hero{padding:110px 6vw 75px;text-align:center;background:var(--brand);color:#fff}
.gallery-page-hero .eyebrow{color:#fff}
.gallery-page-hero h1{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:clamp(56px,8vw,104px);line-height:.95;margin:16px 0 24px}
.gallery-page-hero>p:last-child{max-width:680px;margin:0 auto;color:rgba(255,255,255,.86);font-size:18px;line-height:1.65}
.gallery-page{padding-top:72px}
.gallery-cta{text-align:center;margin-top:72px;padding:58px 24px;background:#fff;border:1px solid var(--line)}
.gallery-cta h2{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:clamp(32px,5vw,56px);margin:12px 0 28px}
nav a[aria-current="page"]{border-bottom:2px solid var(--brand);padding-bottom:5px}

/* Completed project photo grid */
.gallery-page .gallery-grid{display:block;columns:3;column-gap:18px}
.gallery-page .gallery-item{display:inline-block;width:100%;margin:0 0 18px;break-inside:avoid;background:#e5e6e7;border:1px solid var(--line);box-shadow:0 8px 22px rgba(32,33,36,.08)}
.gallery-page .gallery-item a{display:block;overflow:hidden}
.gallery-page .gallery-item img{display:block;width:100%;height:auto;transition:transform .35s ease,filter .35s ease}
.gallery-page .gallery-item a:hover img{transform:scale(1.02);filter:contrast(1.03)}
@media(max-width:900px){.gallery-page .gallery-grid{columns:2}}
@media(max-width:520px){.gallery-page .gallery-grid{columns:1}.gallery-page .gallery-item{margin-bottom:14px}}
@media(max-width:780px){.gallery-page-hero{padding:75px 6vw 58px}.gallery-page{padding-top:48px}.gallery-cta{margin-top:48px}}

/* Full-screen gallery viewer */
body.lightbox-open{overflow:hidden}
.lightbox[hidden]{display:none}
.lightbox{position:fixed;inset:0;z-index:1000;display:grid;grid-template-columns:minmax(56px,1fr) minmax(0,1200px) minmax(56px,1fr);align-items:center;background:rgba(10,10,11,.96);padding:56px 18px 24px}
.lightbox-content{grid-column:2;margin:0;display:flex;min-width:0;height:calc(100vh - 80px);flex-direction:column;align-items:center;justify-content:center}
.lightbox-image{display:block;max-width:100%;max-height:calc(100vh - 118px);width:auto;height:auto;object-fit:contain;box-shadow:0 14px 50px rgba(0,0,0,.4)}
.lightbox-count{min-height:28px;padding-top:12px;color:#fff;font-size:14px;font-weight:700;letter-spacing:.08em}
.lightbox button{appearance:none;border:0;color:#fff;cursor:pointer;font-family:Arial,sans-serif;transition:background .2s ease,transform .2s ease}
.lightbox-close{position:absolute;top:14px;right:18px;width:46px;height:46px;border-radius:50%;background:rgba(101,103,107,.85);font-size:34px;line-height:1}
.lightbox-nav{z-index:1;width:52px;height:68px;border-radius:4px;background:rgba(101,103,107,.85);font-size:52px;line-height:1}
.lightbox-prev{grid-column:1;justify-self:center}
.lightbox-next{grid-column:3;justify-self:center}
.lightbox button:hover,.lightbox button:focus-visible{background:#65676b;transform:scale(1.06);outline:2px solid #fff;outline-offset:3px}
@media(max-width:700px){.lightbox{display:block;padding:58px 10px 76px}.lightbox-content{height:calc(100vh - 134px)}.lightbox-image{max-height:calc(100vh - 170px)}.lightbox-nav{position:absolute;bottom:14px;width:64px;height:50px;font-size:42px}.lightbox-prev{left:calc(50% - 74px)}.lightbox-next{right:calc(50% - 74px)}.lightbox-close{top:8px;right:10px}}

/* Privacy policy */
.footer-policy{text-decoration:underline;text-underline-offset:4px}
.policy-page{background:var(--paper)}.policy-hero{padding:90px 7% 55px;background:var(--ink);color:#fff}.policy-hero h1{margin:8px 0 12px;font-size:clamp(42px,7vw,76px)}.policy-hero p:last-child{color:#d7d8da}.policy-content{max-width:860px;margin:0 auto;padding:70px 7% 95px}.policy-content h2{margin:46px 0 14px;font-size:clamp(25px,3vw,34px);color:var(--ink)}.policy-content h3{margin:25px 0 8px;font-size:20px}.policy-content p,.policy-content li{color:#45474b;line-height:1.8}.policy-content ul{padding-left:24px}.policy-content li+li{margin-top:7px}.policy-content a{text-decoration:underline;text-underline-offset:3px;font-weight:700}

/* Mobile navigation and iOS-friendly controls */
.menu-toggle{display:none;width:48px;height:48px;padding:11px;border:0;background:transparent;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.menu-toggle span{display:block;width:26px;height:2px;margin:5px auto;background:currentColor;transition:transform .2s ease,opacity .2s ease}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:900px){
  html{-webkit-text-size-adjust:100%}
  body{overflow-x:hidden}
  body.menu-open{overflow:hidden}
  .site-header{height:74px;padding-left:max(4vw,env(safe-area-inset-left));padding-right:max(4vw,env(safe-area-inset-right));z-index:100;background:var(--paper)}
  .site-header .brand{min-width:0;gap:10px}.site-header .brand-logo{width:82px}.site-header .brand-name{font-size:12px;white-space:nowrap}
  .menu-toggle{display:block;flex:0 0 48px}
  .site-header nav{display:none;position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - 74px);overflow-y:auto;padding:12px max(5vw,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(5vw,env(safe-area-inset-left));background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 16px 30px rgba(32,33,36,.14);flex-direction:column;align-items:stretch;gap:0}
  .menu-open .site-header nav{display:flex}
  .site-header nav a{display:flex;align-items:center;min-height:52px;padding:12px 6px;border-bottom:1px solid var(--line);font-size:16px}
  .site-header nav a[aria-current="page"]{padding-bottom:12px;border-bottom:2px solid var(--brand)}
  .site-header nav .nav-phone{color:var(--brand)}
  .site-header nav .nav-cta{justify-content:center;margin-top:14px;padding:14px 18px;border:1px solid var(--ink);background:var(--ink);color:#fff}
  a,button{-webkit-tap-highlight-color:rgba(101,103,107,.18);touch-action:manipulation}
  .button{min-height:48px}
  .hero-actions{flex-wrap:wrap}
}
@media(max-width:430px){.site-header .brand-name{display:none}.hero{padding-left:5vw;padding-right:5vw}.hero h1{font-size:clamp(52px,17vw,72px)}.hero-actions{display:grid}.hero-actions .button{text-align:center}.policy-hero{padding:65px 6vw 42px}.policy-content{padding:48px 6vw 72px}.policy-content h2{margin-top:36px}}
@supports(padding:max(0px)){footer{padding-bottom:max(45px,calc(30px + env(safe-area-inset-bottom)))}}
