/* Components for generated pages (city pages, articles, hubs, blog index). Mobile-first; classes prefixed .pg- */
@font-face{font-family:"Outfit";font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;src:url(../uploads/elementor/google-fonts/fonts/outfit-qgyvz_mvcbenp4njtetq.woff2) format("woff2")}

:root{--pg-primary:#0b0b0c;--pg-accent:#d5a944;--pg-accent-dk:#8f6b16;--pg-dark:#050505;--pg-text:#3a3a3a;--pg-muted:#5a5a5a;--pg-line:#e4dcc8;--pg-soft:#f6f2e7;--pg-warm:#f6ecd2;--pg-r:14px;--pg-head:"Outfit",system-ui,sans-serif;--pg-body:"Inter",system-ui,sans-serif}

.pg{display:block;font-family:var(--pg-body);color:var(--pg-text);font-size:17px;line-height:1.65;background:#fff}
.pg *,.pg *::before,.pg *::after{box-sizing:border-box}
.pg .pg-wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 16px}
.pg .pg-main{padding-top:8px;padding-bottom:24px}
.pg p{margin:0 0 1em}
.pg a{color:var(--pg-primary);text-underline-offset:3px}
.pg a:hover{color:var(--pg-accent-dk)}
.pg a:focus-visible,.pg summary:focus-visible,.pg .pg-btn:focus-visible{outline:3px solid var(--pg-accent);outline-offset:3px;border-radius:6px}
.pg img{max-width:100%;height:auto;display:block}

/* headings */
.pg .pg-h1,.pg .pg-h2,.pg .pg-h3,.pg .pg-card__title{font-family:var(--pg-head);font-weight:700;letter-spacing:-.01em;text-transform:none}
.pg .pg-h1{font-size:clamp(30px,7.4vw,52px);line-height:1.08;margin:0 0 12px;color:#fff}
.pg .pg-h2{font-size:clamp(24px,4.6vw,32px);line-height:1.2;margin:0 0 16px;color:var(--pg-dark)}
.pg .pg-h3{font-size:20px;line-height:1.3;margin:28px 0 12px;color:var(--pg-dark)}

/* buttons */
.pg .pg-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border-radius:999px;font-family:var(--pg-head);font-weight:700;font-size:19px;line-height:1.2;text-decoration:none;border:2px solid transparent;transition:background-color .2s,color .2s,border-color .2s}
.pg .pg-btn--accent{background:var(--pg-accent);color:#fff}
.pg .pg-btn--accent:hover{background:var(--pg-accent-dk);color:#fff}
.pg .pg-btn--ghost{border-color:rgba(255,255,255,.85);color:#fff;background:rgba(5,5,5,.25)}
.pg .pg-btn--ghost:hover{background:#fff;color:var(--pg-dark)}
.pg .pg-btn--light{background:#fff;color:var(--pg-primary)}
.pg .pg-btn--light:hover{background:var(--pg-soft);color:var(--pg-primary)}

/* hero */
/* the site header is transparent and overlaps the first section, as on the service pages (offsets match app/hardwood) */
.pg .pg-hero{--pg-under:152px;position:relative;isolation:isolate;display:flex;align-items:flex-end;margin-top:calc(-1*var(--pg-under));padding-top:var(--pg-under);min-height:calc(min(480px,62vh) + var(--pg-under));overflow:hidden;color:#fff;background:var(--pg-dark)}
.pg .pg-hero picture,.pg .pg-hero__img{position:absolute;inset:0;width:100%;height:100%}
.pg .pg-hero__img{object-fit:cover;z-index:-2}
.pg .pg-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,5,5,.45) 0%,rgba(5,5,5,.62) 45%,rgba(5,5,5,.88) 100%)}
.pg .pg-hero__in{padding-top:24px;padding-bottom:32px}
.pg .pg-lede{font-size:18px;margin:0 0 4px;color:rgba(255,255,255,.92);max-width:46ch}
.pg .pg-hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.pg .pg-hero .pg-cat{margin:0 0 12px}
.pg .pg-byline{font-size:15px;color:rgba(255,255,255,.88);margin:0}

/* breadcrumb */
.pg .pg-crumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:0 0 16px;padding:0;font-size:14px}
.pg .pg-crumbs li{display:inline-flex;align-items:center;color:rgba(255,255,255,.85)}
.pg .pg-crumbs li+li::before{content:"/";margin:0 8px;opacity:.6}
.pg .pg-crumbs a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.5);padding:6px 0}
.pg .pg-crumbs a:hover{color:#fff;text-decoration-color:#fff}
.pg .pg-crumbs [aria-current]{max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}

/* quick answer */
.pg .pg-quick{margin:0 0 8px;padding:32px 0 0;max-width:820px;font-size:19px;line-height:1.65;color:var(--pg-dark)}
.pg .pg-quick__label{display:flex;align-items:center;gap:10px;font-family:var(--pg-head);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pg-accent-dk);margin:0 0 8px}
.pg .pg-quick__label::before{content:"";width:28px;height:3px;background:var(--pg-accent)}

/* sections */
.pg .pg-sec{padding:32px 0 8px;max-width:100%}
.pg .pg-sec>p,.pg .pg-prose p,.pg .pg-list{max-width:72ch}
.pg .pg-list{margin:0 0 1em;padding-left:1.25em}
.pg .pg-list li{margin:0 0 6px}
.pg .pg-more{margin-top:16px;font-weight:600}

/* table of contents */
.pg .pg-toc{margin:28px 0 0;padding:18px 20px;background:var(--pg-soft);border-radius:var(--pg-r);max-width:72ch}
.pg .pg-toc__label{font-family:var(--pg-head);font-weight:700;color:var(--pg-dark);margin:0 0 8px}
.pg .pg-toc ol{margin:0;padding-left:1.25em}
.pg .pg-toc li{margin:0;padding:4px 0}
.pg .pg-toc a{display:inline}
.pg .pg-article .pg-sec{scroll-margin-top:96px}
.pg .pg-figure{margin:28px 0 0;max-width:760px}
.pg .pg-figure img{border-radius:var(--pg-r);width:100%;aspect-ratio:16/9;object-fit:cover}

/* chips */
.pg .pg-chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.pg .pg-chip{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:999px;background:var(--pg-soft);border:1px solid var(--pg-line);color:var(--pg-dark);font-size:15px;font-weight:500;text-decoration:none}
.pg a.pg-chip{color:var(--pg-primary)}
.pg a.pg-chip:hover{background:var(--pg-primary);border-color:var(--pg-primary);color:#fff}
.pg .pg-cat{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--pg-warm);color:#9A3A0B;font-family:var(--pg-head);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;line-height:1.4}

/* services grid */
.pg .pg-svcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.pg .pg-svcs--why{grid-template-columns:1fr}
.pg .pg-svc a{display:flex;flex-direction:column;height:100%;border:1px solid var(--pg-line);border-radius:var(--pg-r);overflow:hidden;background:#fff;text-decoration:none;color:var(--pg-dark);transition:box-shadow .2s,transform .2s}
.pg .pg-svc a:hover{box-shadow:0 10px 28px rgba(5,5,5,.12);transform:translateY(-2px);color:var(--pg-dark)}
.pg .pg-svc__img{width:100%;aspect-ratio:4/3;object-fit:cover}
.pg .pg-svc__name{display:block;padding:12px 14px;font-family:var(--pg-head);font-weight:600;font-size:16px;line-height:1.3}
.pg .pg-svc__why{display:block;padding:0 14px 14px;margin-top:-4px;font-size:15px;color:var(--pg-text)}
.pg .pg-svcs--why .pg-svc a{display:grid;grid-template-columns:38% 1fr;grid-template-rows:auto 1fr}
.pg .pg-svcs--why .pg-svc__img{grid-row:1/3;height:100%;aspect-ratio:auto}
.pg .pg-svcs--why .pg-svc__name{padding-top:14px}

/* project photos */
.pg .pg-shots{display:grid;grid-template-columns:1fr;gap:16px;list-style:none;margin:0;padding:0}
.pg .pg-shots figure{margin:0}
.pg .pg-shots img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--pg-r)}
.pg .pg-shots figcaption{font-size:14px;color:var(--pg-muted);margin-top:8px}

/* FAQ */
.pg .pg-faq{max-width:820px;border-top:1px solid var(--pg-line)}
.pg .pg-faq__item{border-bottom:1px solid var(--pg-line)}
.pg .pg-faq summary{position:relative;display:block;list-style:none;cursor:pointer;padding:18px 44px 18px 0;font-family:var(--pg-head);font-weight:600;font-size:18px;line-height:1.35;color:var(--pg-dark)}
.pg .pg-faq summary::-webkit-details-marker{display:none}
.pg .pg-faq summary::after{content:"";position:absolute;right:8px;top:24px;width:10px;height:10px;border-right:2px solid var(--pg-primary);border-bottom:2px solid var(--pg-primary);transform:rotate(45deg);transition:transform .2s}
.pg .pg-faq [open] summary::after{transform:rotate(-135deg);top:28px}
.pg .pg-faq__a{padding:0 0 12px;max-width:72ch}

/* CTA band */
.pg .pg-cta{margin:40px 0 0;padding:48px 0;background:var(--pg-primary);background:linear-gradient(135deg,var(--pg-primary) 0%,#021f5e 100%);color:#fff}
.pg .pg-cta .pg-h2{color:#fff}
.pg .pg-cta p{color:rgba(255,255,255,.9);max-width:60ch}
.pg .pg-cta__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}

/* reviews block spacing */
.pg .pg-reviews .grv{margin:0}

/* related links */
.pg .pg-links{display:grid;grid-template-columns:1fr;gap:12px;list-style:none;margin:0;padding:0}
.pg .pg-links a{display:block;height:100%;padding:16px 18px;border:1px solid var(--pg-line);border-radius:var(--pg-r);text-decoration:none;font-family:var(--pg-head);font-weight:600;font-size:17px;line-height:1.35;color:var(--pg-dark);background:#fff}
.pg .pg-links a:hover{border-color:var(--pg-primary);color:var(--pg-primary)}
.pg .pg-links__cat{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--pg-accent-dk);margin-bottom:4px}

/* service-area hub */
.pg .pg-cities{display:grid;grid-template-columns:1fr;gap:12px;list-style:none;margin:0;padding:0}
.pg .pg-city>a,.pg .pg-city>div{display:block;height:100%;padding:16px 18px;border:1px solid var(--pg-line);border-radius:var(--pg-r);background:#fff;color:var(--pg-text);text-decoration:none}
.pg .pg-city>a:hover{border-color:var(--pg-primary);box-shadow:0 8px 24px rgba(5,5,5,.08);color:var(--pg-text)}
.pg .pg-city__name{display:block;font-family:var(--pg-head);font-weight:700;font-size:19px;color:var(--pg-primary)}
.pg .pg-city>div .pg-city__name{color:var(--pg-dark)}
.pg .pg-city__dist{display:block;font-size:14px;color:var(--pg-muted);margin:2px 0 6px}
.pg .pg-city__blurb{display:block;font-size:15px;line-height:1.5}
.pg .pg-areas .pg-h3:first-of-type{margin-top:8px}

/* blog cards */
.pg .pg-cards{display:grid;grid-template-columns:1fr;gap:24px;padding-top:32px}
.pg .pg-card{margin:0}
.pg .pg-card__link{display:flex;flex-direction:column;height:100%;border:1px solid var(--pg-line);border-radius:var(--pg-r);overflow:hidden;background:#fff;text-decoration:none;color:var(--pg-text);transition:box-shadow .2s,transform .2s}
.pg .pg-card__link:hover{box-shadow:0 12px 32px rgba(5,5,5,.12);transform:translateY(-2px);color:var(--pg-text)}
.pg .pg-card__link:focus-visible{outline:3px solid var(--pg-accent);outline-offset:3px}
.pg .pg-card__media{aspect-ratio:16/10;overflow:hidden;background:var(--pg-soft)}
.pg .pg-card__media img{width:100%;height:100%;object-fit:cover}
.pg .pg-card__body{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px;gap:10px}
.pg .pg-card__body .pg-cat{align-self:flex-start}
.pg .pg-card__title{font-size:21px;line-height:1.25;margin:0;color:var(--pg-dark)}
.pg .pg-card__ex{margin:0;font-size:15px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pg .pg-card__foot{display:flex;justify-content:space-between;align-items:center;margin:auto 0 0;padding-top:6px;font-size:14px;color:var(--pg-muted)}
.pg .pg-card__more{font-family:var(--pg-head);font-weight:600;color:var(--pg-primary)}
.pg .pg-card__link:hover .pg-card__more{color:var(--pg-accent-dk)}

@media (min-width:600px){
  .pg .pg-svcs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pg .pg-svcs--why{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pg .pg-shots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pg .pg-cities,.pg .pg-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pg .pg-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:768px){
  .pg .pg-wrap{padding:0 24px}
  .pg .pg-hero{--pg-under:158px;min-height:calc(min(520px,70vh) + var(--pg-under))}
  .pg .pg-hero__in{padding-top:40px;padding-bottom:56px}
  .pg .pg-quick{font-size:21px;padding-top:48px}
  .pg .pg-sec{padding-top:48px}
  .pg .pg-cta{padding:64px 0}
}
@media (min-width:1025px){
  .pg .pg-hero{--pg-under:176px}
}
@media (min-width:1024px){
  .pg .pg-svcs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pg .pg-svcs--why{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pg .pg-shots,.pg .pg-cities,.pg .pg-links,.pg .pg-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
  .pg *,.pg *::before,.pg *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .pg .pg-svc a:hover,.pg .pg-card__link:hover{transform:none}
}
/* active main-nav item: the hardwood CSS bundle was purged of this state (rule copied from the pricing bundle) */
.elementor-2949 .elementor-element.elementor-element-60c40129 .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--e-global-color-0db4f03)}
/* burger shows both icons when open (same purge gap): show only the close icon */
.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open{display:none}
