
:root {
  --black:#090909;
  --soft:#111111;
  --panel:#151515;
  --white:#f6f4ef;
  --muted:#b5b0a7;
  --gold:#c7a24f;
  --gold2:#e0c378;
  --line:rgba(255,255,255,.13);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--black);
  color:var(--white);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  line-height:1.6;
  overflow-x:hidden;
}
img{display:block;width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.container{width:min(var(--max),calc(100% - 38px));margin:0 auto}
.gold{color:var(--gold)}
.eyebrow{
  text-transform:uppercase;
  color:var(--gold);
  letter-spacing:.18em;
  font-size:.75rem;
  font-weight:800;
}
.section{padding:92px 0;border-top:1px solid var(--line)}
h1,h2,h3,p{margin-top:0}
h2{
  font-size:clamp(2.3rem,5vw,4.8rem);
  line-height:.98;
  letter-spacing:-.045em;
  margin:12px 0 22px;
}
.lead{font-size:1.2rem;color:#e5e0d7}
.muted{color:var(--muted)}

/* NAV */
.nav{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(9,9,9,.88);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  min-height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.logo{
  font-size:1.28rem;
  font-weight:900;
  letter-spacing:.20em;
}
.nav-links{display:flex;gap:24px;align-items:center}
.nav-links>a:not(.btn){color:#ddd8cf;font-size:.9rem}
.nav-links>a:hover{color:var(--gold)}
.mobile-menu{
  display:none;
  border:1px solid var(--line);
  background:transparent;
  color:white;
  padding:8px 12px;
}
.btn{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:48px;
  padding:0 22px;
  border:1px solid var(--gold);
  background:var(--gold);
  color:#111;
  font-weight:800;
  cursor:pointer;
  transition:.2s ease;
}
.btn:hover{background:var(--gold2);border-color:var(--gold2)}
.btn.outline{background:transparent;color:white}
.btn.outline:hover{background:var(--gold);color:#111}
.btn.small{min-height:40px;padding:0 16px;font-size:.86rem}

/* HERO */
.hero{
  min-height:800px;
  height:92vh;
  max-height:980px;
  position:relative;
  display:flex;
  align-items:center;
  background-image:url("4db5f45d20c8.webp");
  background-size:cover;
  background-position:center;
}
.hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.72) 42%,rgba(0,0,0,.20) 82%),
    linear-gradient(180deg,rgba(0,0,0,.16),rgba(0,0,0,.60));
}
.hero-content{position:relative;z-index:2;padding:70px 0 25px}
.hero h1{
  max-width:880px;
  font-size:clamp(3.7rem,8vw,7.8rem);
  line-height:.90;
  letter-spacing:-.06em;
  margin:16px 0 26px;
}
.hero p{
  max-width:680px;
  color:#e1ddd5;
  font-size:clamp(1rem,2vw,1.25rem);
}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.hero-note{
  margin-top:24px;
  color:#bcb6ad;
  font-size:.83rem;
}

/* INTRO */
.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:start;
}

/* SERVICES */
.services{background:var(--soft)}
.section-head{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:50px;
  align-items:end;
  margin-bottom:42px;
}
.section-head p{color:var(--muted);margin-bottom:6px}
.cards{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
.card{
  background:#0d0d0d;
  border:1px solid var(--line);
  overflow:hidden;
}
.card-image{position:relative;overflow:hidden}
.card-image img{
  aspect-ratio:16/10;
  object-fit:cover;
  transition:transform .45s ease;
}
.card:hover img{transform:scale(1.025)}
.card-body{padding:25px}
.card h3{font-size:1.34rem;margin-bottom:9px}
.card p{color:var(--muted);min-height:76px}
.text-link{color:var(--gold);font-weight:800}

/* FEATURE */
.feature-grid{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:64px;
  align-items:center;
}
.feature-img img{min-height:540px;object-fit:cover}
.checks{display:grid;gap:12px;margin:28px 0 34px}
.check{
  border-top:1px solid var(--line);
  padding-top:12px;
  display:flex;
  gap:12px;
  color:#e7e2d9;
}
.dot{color:var(--gold);font-weight:900}

/* BRANDS */
.brands{background:#0e0e0e}
.brand-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.brand-grid div{
  min-height:88px;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:18px;
  text-align:center;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:1.05rem;
  font-weight:700;
}
.disclaimer{
  margin-top:20px;
  color:#8f8a83;
  font-size:.78rem;
}

/* PROCESS */
.process-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:38px;
}
.step{
  padding:28px;
  border:1px solid var(--line);
  background:#0e0e0e;
}
.number{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--gold);
  color:var(--gold);
  font-weight:900;
  margin-bottom:22px;
}
.step h3{margin-bottom:10px}
.step p{color:var(--muted);margin-bottom:0}

/* AREAS */
.areas{text-align:center;background:var(--soft)}
.area-tags{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:32px;
}
.area-tags span{
  border:1px solid var(--line);
  padding:12px 18px;
  color:#ded9d0;
}

/* CONTACT — CALL ONLY */
.call-cta{max-width:820px;margin:0 auto;text-align:center}
.call-cta .lead{max-width:640px;margin:0 auto 34px}
.call-number{
  display:inline-block;
  font-size:clamp(2.4rem,6vw,3.9rem);
  font-weight:900;
  line-height:1;
  letter-spacing:-.04em;
  color:var(--gold);
  transition:color .2s ease;
}
.call-number:hover{color:var(--gold2)}
.call-actions{margin-top:32px}
.btn.large{min-height:66px;padding:0 42px;font-size:1.05rem}
.call-note{
  margin:24px 0 0;
  color:#8f8a83;
  font-size:.83rem;
}

/* FOOTER */
footer{padding:42px 0;background:#060606;border-top:1px solid var(--line)}
.footer-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  align-items:end;
}
footer p{color:#98938b;margin:5px 0;font-size:.86rem}
.footer-right{text-align:right}
.footer-legal{
  margin-top:30px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
}
.footer-legal a{
  color:#8b867e;
  font-size:.78rem;
  letter-spacing:.02em;
}
.footer-legal a:hover{color:var(--gold)}
.footer-legal span{color:#3a3833;font-size:.78rem}

/* MOBILE STICKY */
.mobile-cta{display:none}

@media(max-width:900px){
  .nav-links{
    display:none;
    position:absolute;
    top:74px;left:0;right:0;
    background:#090909;
    padding:20px;
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:stretch;
  }
  .nav-links.open{display:flex}
  .mobile-menu{display:block}
  .hero{height:auto;min-height:760px;background-position:62% center}
  .hero h1{font-size:clamp(3.2rem,12vw,5.5rem)}
  .two-col,.section-head,.feature-grid,.footer-grid{grid-template-columns:1fr;gap:30px}
  .cards{grid-template-columns:1fr}
  .brand-grid{grid-template-columns:repeat(2,1fr)}
  .process-grid{grid-template-columns:1fr}
  .section{padding:72px 0}
  .feature-img img{min-height:360px}
  .footer-right{text-align:left}
  .mobile-cta{
    position:fixed;
    z-index:200;
    left:10px;right:10px;bottom:10px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:8px;
    background:rgba(9,9,9,.92);
    border:1px solid var(--line);
    backdrop-filter:blur(12px);
  }
  .mobile-cta .btn{min-height:46px;padding:0 10px;font-size:.82rem}
  body{padding-bottom:76px}
}
@media(max-width:560px){
  .container{width:min(var(--max),calc(100% - 24px))}
  .hero{min-height:720px}
  .hero h1{font-size:3.35rem}
  .brand-grid{grid-template-columns:1fr}
}

section[id],header[id]{scroll-margin-top:90px}
:focus-visible{outline:3px solid var(--gold2);outline-offset:5px}
.hero-location{display:block;font-size:.42em;letter-spacing:-.025em;margin-top:22px;line-height:1.1;color:var(--white)}
.service-hero{padding:76px 0 64px;border-bottom:1px solid var(--line)}
.service-hero h1{font-size:clamp(2.8rem,6vw,5.6rem);line-height:1.02;letter-spacing:-.045em;max-width:900px;margin:20px 0}
.service-hero .lead{max-width:800px}.breadcrumb{font-size:.9rem;color:var(--muted)}
.service-copy{max-width:820px}.service-copy h2{font-size:clamp(2rem,4vw,3rem);line-height:1.1}.service-copy p,.service-copy li{color:var(--muted)}
.service-copy li{margin:12px 0}.service-photo{aspect-ratio:16/10;object-fit:cover;border:1px solid var(--line)}
.faq{max-width:850px}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;font-weight:700;font-size:1.1rem}.faq p{color:var(--muted);margin:14px 0 0}
.related{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px}.related a{color:var(--gold);text-decoration:underline}
@media(min-width:901px){.nav-links{gap:18px}.nav-inner{gap:20px}}
@media(max-width:560px){.hero h1{font-size:clamp(2.65rem,10.2vw,3.35rem)}.hero{min-height:720px}.btn.large{padding:0 22px}.service-hero{padding:48px 0}.mobile-cta{grid-template-columns:1fr;padding-bottom:max(8px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

img{height:auto}
.mobile-cta{grid-template-columns:1fr}
/* Extory project portfolio and source-specific review summaries. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.reputation-strip{border-top:1px solid var(--line);background:#12110e}
.reputation-strip .container{display:flex;justify-content:space-between;gap:18px;padding-top:21px;padding-bottom:21px;color:#c9c3b7;font-size:.88rem}
.reputation-strip a{color:var(--gold2)}
.work-section{background:#0e0e0e}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.work-card{background:#131313;border:1px solid var(--line);overflow:hidden}
.work-image{display:block;overflow:hidden;background:#1b1a17}
.work-image img{aspect-ratio:4/5;object-fit:cover;object-position:center 42%;transition:transform .35s ease}
.work-card:hover .work-image img{transform:scale(1.025)}
.work-card-copy{padding:28px 30px 30px}
.work-location{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:var(--gold2);margin-bottom:13px}
.work-card h3{font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:-.025em;line-height:1.2;margin-bottom:16px}
.work-repair{color:var(--muted);font-size:.95rem;min-height:1.6em;margin-bottom:24px}
.work-card .text-link{font-size:.88rem}
.work-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:28px;color:var(--muted);font-size:.92rem}
.reviews-section{background:linear-gradient(140deg,#18160f 0%,#0d0d0d 65%)}
.review-platforms{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.review-platform{border:1px solid rgba(199,162,79,.35);padding:36px;background:rgba(0,0,0,.17)}
.platform-name{font-size:1.2rem;font-weight:750;margin-bottom:22px}
.review-number{font-size:clamp(3.5rem,6vw,5.6rem);font-weight:750;line-height:1;letter-spacing:-.06em}
.review-scale{font-size:1.3rem;color:var(--muted);letter-spacing:0;font-weight:400}
.review-plus{color:var(--gold2);font-weight:400}
.review-stars{color:var(--gold2);letter-spacing:.14em;font-size:1.2rem;margin:16px 0 12px}
.review-platform p{color:var(--muted);font-size:.96rem;margin:0 0 23px}
.review-platform .review-count-caption{margin:19px 0 16px;color:var(--gold2);font-size:1.12rem}
.compact-heading{font-size:clamp(1.8rem,3vw,3rem);line-height:1.08}
.project-header h1{max-width:1000px}
.project-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:start}
.project-main-photo,.project-gallery figure{margin:0}
.project-main-photo img{width:100%;height:auto;border:1px solid var(--line)}
.project-main-photo figcaption,.project-gallery figcaption{font-size:.79rem;color:var(--muted);margin-top:12px}
.project-description .lead{font-size:1.08rem;line-height:1.75}
.project-facts{margin:30px 0;border-top:1px solid var(--line)}
.project-facts>div{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.project-facts dt{font-size:.82rem;color:var(--muted)}
.project-facts dd{margin:0;font-size:.94rem}
.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:30px}
.project-gallery img{width:100%;height:auto}
.project-back{padding-top:30px;padding-bottom:40px}
.catalog-section{padding:32px 0}
.catalog-reference summary{cursor:pointer;color:var(--gold2);font-size:.9rem}
.catalog-reference figure{display:flex;gap:24px;align-items:center;margin:25px 0 0}
.catalog-reference img{width:min(260px,100%);height:auto;background:white}
.catalog-reference figcaption{max-width:500px;font-size:.82rem;color:var(--muted)}
.catalog-reference figcaption a{display:block;margin-top:10px;color:var(--gold2)}
.service-project-links .related{margin-bottom:28px}
@media(min-width:901px) and (max-width:1120px){.nav-links{gap:11px}.nav-links>a:not(.btn){font-size:.78rem}.nav-inner{gap:12px}.nav-links .btn{padding:0 12px;font-size:.78rem}}
@media(max-width:900px){.project-layout{grid-template-columns:1fr;gap:36px}.project-main-photo{max-width:680px;margin:0 auto}.review-platform{padding:26px}.work-grid{gap:20px}.work-card-copy{padding:22px}.work-bottom{flex-direction:column;gap:10px}.reputation-strip .container{flex-wrap:wrap;gap:8px}.project-story{padding-top:42px}}
@media(max-width:600px){.work-grid,.review-platforms,.project-gallery{grid-template-columns:1fr}.work-image img{aspect-ratio:4/5}.work-repair{min-height:0}.work-card-copy{padding:24px}.review-platform{padding:28px}.project-facts>div{grid-template-columns:100px 1fr;gap:12px}.catalog-reference figure{display:block}.catalog-reference figcaption{margin-top:16px}.project-header h1{font-size:2.8rem}}

/* Customer reviews transcribed from supplied Google and Thumbtack screenshots. */
.customer-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:28px}
.customer-review{display:flex;flex-direction:column;padding:28px;border:1px solid var(--line);background:#121212}
.review-topic{color:var(--gold2);font-size:.73rem;letter-spacing:.11em;text-transform:uppercase;line-height:1.5}
.customer-review .review-stars{font-size:1rem;margin:16px 0 20px}
.customer-review blockquote{margin:0 0 20px;flex:1}
.customer-review blockquote p{font-size:1.02rem;line-height:1.65;margin:0;color:#eeeae3}
.review-excerpt-label{font-size:.72rem;color:var(--muted);margin:-8px 0 18px}
.review-author{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--line);padding-top:18px}
.review-author strong{font-size:.94rem}.review-author time,.review-author span{color:var(--muted);font-size:.76rem;line-height:1.5}
.review-source{color:var(--gold2);font-size:.76rem;margin-top:13px;align-self:flex-start}
.reviews-note{font-size:.77rem;line-height:1.7;color:var(--muted);max-width:900px;margin:23px 0 0}
@media(max-width:1000px){.customer-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.customer-review-grid{grid-template-columns:1fr;gap:18px}.customer-review{padding:26px}.customer-review blockquote p{font-size:1.05rem}.reviews-note{font-size:.76rem}}

/* Expandable customer reviews. */
.review-platform-label{font-size:.78rem;color:var(--gold2);line-height:1.6;margin:16px 0 20px}
.more-customer-reviews{margin-top:26px}
.more-customer-reviews summary{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:380px;min-height:52px;padding:14px 20px;list-style:none;border:1px solid rgba(199,162,79,.5);color:var(--gold2);font-size:.9rem;cursor:pointer}
.more-customer-reviews summary::-webkit-details-marker{display:none}
.review-expand-icon{font-size:1.5rem;line-height:1;transition:transform .2s ease}
.more-customer-reviews[open] .review-expand-icon{transform:rotate(45deg)}
.more-customer-reviews summary:hover{background:rgba(199,162,79,.07)}

/* Family team and existing limited-warranty summary. */
.team-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.team-photo{margin:0}.team-photo img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.team-photo figcaption{color:var(--muted);font-size:.78rem;line-height:1.6;margin-top:12px}
.team-copy h2{font-size:clamp(2rem,3.3vw,3.4rem);line-height:1.1;letter-spacing:-.035em;margin:18px 0 26px}
.team-copy p{line-height:1.75;margin-bottom:22px}.team-copy .text-link{display:inline-block;margin-top:4px}
.warranty-highlight{padding:54px 0;border-top:1px solid rgba(199,162,79,.35);border-bottom:1px solid rgba(199,162,79,.35);background:#17150f}
.warranty-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:64px;align-items:start}
.warranty-layout h2{font-size:clamp(1.9rem,3vw,2.8rem);letter-spacing:-.035em;line-height:1.12;margin:18px 0 0}
.warranty-copy p{font-size:.95rem;line-height:1.75;margin:0 0 18px}.warranty-copy .muted{font-size:.86rem}
@media(max-width:900px){.team-layout,.warranty-layout{grid-template-columns:1fr;gap:32px}.team-photo{width:100%;max-width:540px;margin:0 auto}.warranty-highlight{padding:42px 0}}

.review-platform .review-checked{font-size:.73rem;line-height:1.5;margin:0 0 20px;color:var(--muted)}

/* Keyboard shortcuts and comfortable mobile navigation. */
.skip-link{position:fixed;top:12px;left:12px;z-index:300;padding:12px 20px;background:var(--gold2);color:#111;font-weight:800;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
#main-content:focus{outline:none}
html{scroll-padding-bottom:100px}
@media(max-width:900px){
  .mobile-menu{min-height:44px;min-width:64px}
  .nav-links{gap:8px;max-height:calc(100vh - 164px);max-height:calc(100dvh - 164px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain}
  .nav-links>a{display:flex;align-items:center;min-height:44px}
  .nav-links>a:not(.btn){padding:8px 12px;font-size:1rem}
  .footer-legal a{display:inline-flex;align-items:center;min-height:44px;font-size:.86rem}
  .card-body>.text-link,.work-card-copy>.text-link,.work-bottom>.text-link{display:inline-flex;align-items:center;min-height:44px}
  body{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
}
