/* Off Duty Fireman Construction — clean PHP rebuild
   Brand: black + red + white, fireman/military identity */
:root{
  --black:#0a0a0a;
  --black-2:#141414;
  --black-3:#1c1c1c;
  --red:#cc0000;
  --red-2:#a50000;
  --red-3:#8a0000;
  --white:#ffffff;
  --light:#f5f5f5;
  --light-2:#ececec;
  --gray:#444;
  --gray-2:#666;
  --gray-3:#999;
  --border:#dcdcdc;
  --container:1240px;
  --shadow-sm:0 2px 6px rgba(0,0,0,.08);
  --shadow:0 6px 24px rgba(0,0,0,.12);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:'Inter','Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  color:#222;background:#fff;line-height:1.55;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto}
a{color:var(--red);text-decoration:none}
a:hover{color:var(--red-2)}
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:'Inter','Segoe UI',sans-serif;font-weight:800;line-height:1.15;margin:0 0 .5em;letter-spacing:-.2px}
h1{font-size:clamp(1.9rem,3.6vw,3rem)}
h2{font-size:clamp(1.6rem,2.6vw,2.2rem)}
h3{font-size:1.35rem}
p{margin:0 0 1em}

/* ---------- Buttons ---------- */
.btn{display:inline-block;padding:14px 28px;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;font-size:.95rem;border:none;cursor:pointer;transition:background .15s,transform .15s;line-height:1}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-2);color:#fff;transform:translateY(-1px)}
.btn-white{background:#fff;color:#111}
.btn-white:hover{background:#eee;color:#000}
.btn-ghost{background:transparent;color:#fff;border:2px solid #fff}
.btn-ghost:hover{background:#fff;color:#111}
.btn-dark{background:#1a1a1a;color:#fff;border:1px solid rgba(255,255,255,.18)}
.btn-dark:hover{background:#000;color:#fff}
.btn-block{display:block;width:100%}

/* ---------- Top bar + Header ---------- */
.topbar{background:var(--black);color:#fff;font-size:.85rem;position:relative;z-index:100}
.topbar .row{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-height:36px;padding:2px 0;flex-wrap:wrap}
.topbar a.tb-call{background:var(--red);color:#fff;padding:8px 16px;border-radius:3px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:.82rem;display:inline-flex;align-items:center;gap:6px}
.topbar a.tb-call:hover{background:var(--red-2);color:#fff}
.tb-socials{display:inline-flex;gap:6px}
.tb-socials a{width:26px;height:26px;display:grid;place-items:center;border-radius:3px;background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.78rem;font-weight:700;text-decoration:none}
.tb-socials a:hover{background:var(--red);border-color:var(--red);color:#fff}
.tb-veteran{display:inline-flex;align-items:center;gap:10px;background:#0d2e5e;color:#fff;padding:6px 16px;border-radius:3px;font-weight:800;text-transform:uppercase;font-size:.78rem;letter-spacing:.6px;border:1px solid #1d4998;line-height:1.05}
.tb-veteran .star{color:#ffc20e;font-size:1.2rem}
.tb-veteran small{font-size:.62rem;font-weight:700;letter-spacing:.4px;display:block;color:#cfd8e8}

.site-header{background:var(--black);color:#fff;position:relative;z-index:300;box-shadow:0 1px 0 rgba(255,255,255,.08)}
.nav-wrap{position:relative}
.nav-row{display:flex;align-items:center;min-height:104px;padding-left:140px;gap:20px}
/* Vertically center the logo within the combined topbar+nav black area.
   topbar = ~40px, nav-row = 104px, total = 144. Logo 120px, centered: top = -(40 - (144-120)/2) = -28 */
.brand{position:absolute;left:0;top:-28px;display:block;z-index:250}
.brand img{width:120px;height:120px;max-width:120px;max-height:120px;display:block;background:transparent;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5))}
.brand .sr-only{position:absolute;left:-9999px}

.primary-nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.primary-nav > ul{display:flex;list-style:none;margin:0;padding:0;gap:2px}
.primary-nav > ul > li{position:relative}
.primary-nav > ul > li > a{display:block;padding:14px 14px;color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.6px;font-size:.85rem;border-radius:3px}
.primary-nav > ul > li > a:hover,
.primary-nav > ul > li.is-active > a{color:var(--red)}
.primary-nav > ul > li.has-sub > a::after{content:'\25BE';margin-left:6px;font-size:.7rem;opacity:.7}

.primary-nav ul.sub-nav{display:none;position:absolute;top:100%;left:0;min-width:240px;background:var(--black-2);border-top:3px solid var(--red);list-style:none;margin:0;padding:8px 0;box-shadow:var(--shadow);z-index:90}
.primary-nav > ul > li:hover ul.sub-nav,
.primary-nav > ul > li:focus-within ul.sub-nav{display:block}
.primary-nav ul.sub-nav li a{display:block;padding:9px 18px;color:#fff;font-size:.85rem;text-transform:none;letter-spacing:0;font-weight:500;white-space:nowrap}
.primary-nav ul.sub-nav li a:hover{background:var(--red);color:#fff}

/* Mega-menu (Services) — anchored to nav-row, not the li, so all 3 columns fit */
.primary-nav > ul > li.has-mega{position:static}
.primary-nav ul.sub-nav.mega{left:auto;right:24px;min-width:920px;max-width:calc(100vw - 48px);padding:20px 26px;display:none;grid-template-columns:repeat(4,1fr);gap:4px 28px;background:var(--black-2)}
.primary-nav > ul > li.has-mega:hover ul.sub-nav.mega,
.primary-nav > ul > li.has-mega:focus-within ul.sub-nav.mega,
.primary-nav > ul > li.has-mega.mega-open ul.sub-nav.mega{display:grid}
.primary-nav ul.sub-nav.mega .mega-head{grid-column:span 1;color:var(--red);font-weight:800;text-transform:uppercase;letter-spacing:1.2px;font-size:.78rem;padding:6px 0 6px;border-bottom:1px solid rgba(255,255,255,.18);margin-bottom:6px;white-space:nowrap}
.primary-nav ul.sub-nav.mega li{grid-column:span 1}
.primary-nav ul.sub-nav.mega li a{padding:6px 0;border-radius:3px;display:block;color:#fff}
.primary-nav ul.sub-nav.mega li a:hover{background:transparent;color:var(--red)}
@media (max-width:1100px){
  .primary-nav ul.sub-nav.mega{position:static;display:grid !important;grid-template-columns:1fr;min-width:0;padding:0;background:var(--black-3);box-shadow:none;border-top:none}
  .primary-nav ul.sub-nav.mega .mega-head{grid-column:1;padding:10px 36px 4px;border-bottom:none;font-size:.72rem;color:var(--red);background:rgba(0,0,0,.25)}
  .primary-nav ul.sub-nav.mega li a{padding:8px 36px}
}

.nav-cta{margin-left:8px;background:var(--red);color:#fff;padding:10px 18px;border-radius:3px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:.8rem}
.nav-cta:hover{background:var(--red-2);color:#fff}

.nav-toggle{margin-left:auto;display:none;background:transparent;border:0;color:#fff;font-size:1.6rem;cursor:pointer;padding:8px}

@media (max-width:1100px){
  .nav-row{min-height:84px;padding-left:128px}
  .brand{top:-20px}
  .brand img{width:108px;height:108px;max-width:108px;max-height:108px}
  .nav-toggle{display:block}
  .primary-nav{position:absolute;top:100%;left:0;right:0;background:var(--black-2);display:none;flex-direction:column;align-items:stretch;border-top:3px solid var(--red);max-height:75vh;overflow:auto}
  .primary-nav.open{display:flex}
  .primary-nav > ul{flex-direction:column;width:100%;gap:0}
  .primary-nav > ul > li{border-bottom:1px solid rgba(255,255,255,.08)}
  .primary-nav > ul > li > a{padding:14px 24px}
  .primary-nav ul.sub-nav{position:static;display:block;background:var(--black-3);border-top:none;box-shadow:none;padding:0}
  .primary-nav ul.sub-nav li a{padding:10px 36px;font-size:.85rem}
  .nav-cta{margin:12px 24px;text-align:center}
}
@media (max-width:560px){
  .topbar .row{justify-content:flex-end;min-height:36px;gap:8px;padding:4px 0}
  .tb-veteran{display:none}
  .tb-socials{display:none}
  .brand img{width:76px;height:76px;max-width:76px;max-height:76px}
  .brand{top:-18px}
  .nav-row{padding-left:88px;min-height:64px}
}

/* ---------- Hero (home) ---------- */
.hero{position:relative;min-height:560px;color:#fff;display:flex;align-items:center;background:#000;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.55) 60%,rgba(0,0,0,.45) 100%);backdrop-filter:saturate(1.05) contrast(1.02)}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}
picture.hero-bg{display:block}
picture.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.hero .container{position:relative;z-index:2;padding-block:80px;width:100%}
.hero h1{color:#fff;max-width:1180px;margin-bottom:.5em;font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.1;text-shadow:0 2px 4px rgba(0,0,0,.9), 0 4px 18px rgba(0,0,0,.85), 0 0 30px rgba(0,0,0,.65)}
.hero p.lede{color:#f1f1f1;font-size:1.1rem;max-width:780px;margin-bottom:1.8em;text-shadow:0 1px 3px rgba(0,0,0,.95), 0 2px 12px rgba(0,0,0,.85)}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-call{color:#fff;font-weight:700;font-size:1.05rem;letter-spacing:.5px}
.hero-call .ico{display:inline-block;background:#fff;color:var(--red);width:36px;height:36px;border-radius:50%;text-align:center;line-height:36px;margin-right:8px;font-weight:900}
@media (max-width:760px){
  .hero{min-height:460px}
  .hero .container{padding-block:60px}
}

/* ---------- Hero split (image + quote form right) ---------- */
.hero-split{min-height:640px;align-items:stretch}
.hero-split .container{padding-block:60px}
.hero-grid{display:grid;grid-template-columns:1.25fr 420px;gap:48px;align-items:center}
.hero-copy h1{margin-bottom:.45em}
.hero-form{background:rgba(10,10,10,.86);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:26px 26px 22px;box-shadow:0 18px 60px rgba(0,0,0,.55);color:#fff;backdrop-filter:blur(4px)}
.hero-form h2{color:#fff;font-size:1.45rem;margin:0 0 4px;font-weight:800;letter-spacing:-.2px}
.hero-form-sub{color:#cfcfcf;font-size:.88rem;margin:0 0 14px}
.hero-form input,.hero-form select,.hero-form textarea{width:100%;padding:11px 13px;border-radius:5px;border:1px solid rgba(255,255,255,.18);background:#fff;color:#111;font-size:.95rem;font-family:inherit;margin-bottom:10px}
.hero-form textarea{resize:vertical;min-height:84px}
.hero-form button{background:var(--red);color:#fff;border:none;padding:13px 16px;border-radius:5px;font-weight:800;font-size:1rem;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;width:100%;margin-top:2px}
.hero-form button:hover{background:var(--red-2)}
.hero-form .website{position:absolute;left:-9999px}
.hero-form-disclaim{font-size:.72rem;color:#888;margin:8px 0 0;text-align:center}
/* Shared 2-col row used by quote-form.php inside both hero and cta wrappers */
.qf-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.qf-row > input{margin-bottom:0}
.cta-form .qf-row{margin-bottom:10px}
.contact-form .qf-row{margin-bottom:12px}
@media (max-width:520px){.qf-row{grid-template-columns:1fr}}
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:32px}
  .hero-form{order:2}
  .hero-split{min-height:auto}
}

/* ---------- Trust bar under hero ---------- */
.trust-bar{background:#0d0d0d;color:#fff;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.trust-bar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;align-items:center}
.tb-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:6px 4px}
.tb-item .stars{color:#ffb000;letter-spacing:1px;font-size:.95rem}
.tb-item .ico{font-size:1.2rem}
.tb-item strong{color:#fff;font-size:.95rem;font-weight:700;display:block}
.tb-item small{color:#9aa0a8;font-size:.75rem;line-height:1.2}
@media (max-width:880px){
  .trust-bar-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .tb-item:nth-child(5){grid-column:1/-1}
}

/* ---------- Service Areas band ---------- */
.service-areas{background:#fff;padding:60px 0;border-top:1px solid var(--border)}
.service-areas h2{color:#111}
.city-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:980px;margin-inline:auto}
.city-pills li a{display:inline-block;padding:9px 16px;background:#f5f5f5;color:#222;border:1px solid var(--border);border-radius:99px;font-weight:600;font-size:.88rem;transition:background .15s,color .15s,border-color .15s}
.city-pills li a:hover{background:var(--red);color:#fff;border-color:var(--red)}

/* ---------- FAQ ---------- */
.faq{background:var(--light);padding:70px 0}
.faq h2{color:#111}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:6px;margin-bottom:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.faq-item summary{cursor:pointer;padding:16px 22px;font-weight:700;font-size:1.02rem;color:#111;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--red);font-size:1.5rem;font-weight:300;transition:transform .2s}
.faq-item[open] summary::after{content:"−";transform:rotate(0deg)}
.faq-item summary:hover{background:#fafafa}
.faq-body{padding:0 22px 18px;color:#444;line-height:1.65}
.faq-body p{margin:0}
.faq-body a{color:var(--red);font-weight:600}
/* Direct <p> children inside <details class="faq-item"> (when no .faq-body wrapper is used) */
.faq-item > p{padding:4px 22px 18px;margin:0;color:#444;line-height:1.65;font-size:.98rem}
.faq-item > p a{color:var(--red);font-weight:600}
.faq-item > *:not(summary):not(p){padding:0 22px 18px}

/* ---------- Sticky mobile CTA bar ---------- */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;display:none;z-index:300;background:#0a0a0a;border-top:2px solid var(--red);padding:8px;gap:8px;box-shadow:0 -4px 12px rgba(0,0,0,.4)}
.sticky-cta .sc-btn{flex:1;text-align:center;padding:12px 8px;border-radius:5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;font-size:.95rem;line-height:1}
.sc-call{background:#1a1a1a;color:#fff;border:1px solid rgba(255,255,255,.18)}
.sc-quote{background:var(--red);color:#fff}
@media (max-width:780px){
  .sticky-cta{display:flex}
  body{padding-bottom:64px}
}

/* ---------- Page banner (interior pages) ---------- */
.page-banner{position:relative;color:#fff;background:#000;min-height:260px;display:flex;align-items:center;overflow:hidden}
.page-banner::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(152deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.65) 60%, rgba(0,0,0,.55) 100%)}
.page-banner-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center}
.page-banner .container{position:relative;z-index:2;padding-block:60px;width:100%}
.page-banner h1{color:#fff;max-width:880px;text-shadow:0 2px 16px rgba(0,0,0,.55)}
.page-banner .lede{color:#eee;max-width:720px;margin-top:.6em}
.page-banner .pb-cta{margin-top:1.4em;display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* ---------- Section helpers ---------- */
section{padding:60px 0}
.section-dark{background:var(--black);color:#fff}
.section-dark h1,.section-dark h2,.section-dark h3{color:#fff}
.section-light{background:var(--light)}
.section-tight{padding:36px 0}
.center{text-align:center}
.kicker{display:inline-block;color:var(--red);font-weight:800;text-transform:uppercase;letter-spacing:1.4px;font-size:.85rem;margin-bottom:.6em}

/* ---------- Intro strip (home) ---------- */
.intro-strip{background:#fff;padding:36px 0;border-bottom:1px solid var(--border)}
.intro-strip p{max-width:1000px;margin:0 auto;text-align:center;color:#333;font-size:1.05rem;line-height:1.65}

/* ---------- Home About band ---------- */
.home-about .about-heading{font-size:clamp(2.4rem,5vw,3.6rem);margin-bottom:30px;color:#fff;letter-spacing:1px}
.home-about .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.home-about .about-grid h3{color:#fff;font-size:1.35rem;margin-bottom:.6em}
.home-about .about-grid p{color:#cfcfcf}
.home-about .about-grid a{color:#ff8080}
.home-about .about-grid a:hover{color:#fff;text-decoration:underline}
@media (max-width:860px){.home-about .about-grid{grid-template-columns:1fr;gap:30px}}

/* ---------- Mission band (home) — dark gray, like live ---------- */
.mission{background:#262626;color:#fff;padding:80px 0}
.mission .kicker{color:#ccc;font-size:.85rem;font-weight:600;letter-spacing:.4px;text-transform:none;margin-bottom:.4em}
.mission h2{font-size:clamp(2.4rem,4.6vw,3.2rem);color:#fff;letter-spacing:1.5px;margin-bottom:.6em}
.mission-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center}
.mission-grid p{color:#ddd;font-size:1rem;line-height:1.7}
.mission-flame img,.mission-flame video{width:100%;max-width:520px;height:auto;display:block;border-radius:4px;aspect-ratio:16/9;object-fit:cover;background:#0a0a0a}
@media (max-width:860px){
  .mission-grid{grid-template-columns:1fr}
  .mission-flame{order:-1}
  .mission-flame img{margin:0 auto;max-width:380px}
}

/* ---------- Home services 5-card row ---------- */
.home-services{background:var(--black);padding:80px 0}
.home-services h2{color:#fff;font-size:clamp(2rem,3.6vw,2.6rem)}
.svc-grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
@media (max-width:1100px){.svc-grid-5{grid-template-columns:repeat(3,1fr)}}
@media (max-width:780px){.svc-grid-5{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.svc-grid-5{grid-template-columns:1fr}}
.home-services .svc-card{background:#fff;border-radius:6px;border:none}
.home-services .svc-card .body{padding:18px 18px 22px;text-align:center}
.home-services .svc-card h3{font-size:1.05rem;margin-bottom:8px}
.home-services .svc-card p{font-size:.85rem;color:#666;margin-bottom:14px;min-height:2.5em}
.home-services .svc-card .more{display:block;text-align:center;background:var(--red);color:#fff;padding:9px 16px;border-radius:3px;font-weight:700;text-transform:none;letter-spacing:.3px;font-size:.85rem}
.home-services .svc-card .more:hover{background:var(--red-2)}

/* ---------- Home About — left text + image right ---------- */
.home-about{padding:80px 0;background:var(--black)}
.home-about .about-twocol{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.home-about .about-heading{font-size:clamp(2.6rem,5vw,3.6rem);color:#fff;letter-spacing:1.5px;margin-bottom:18px}
.home-about h3{color:#fff;font-size:1.1rem;font-weight:700;margin-bottom:14px}
.home-about p{color:#cfcfcf;line-height:1.7}
.home-about .about-img img{width:100%;border-radius:6px;box-shadow:0 12px 32px rgba(0,0,0,.5)}
@media (max-width:880px){.home-about .about-twocol{grid-template-columns:1fr;gap:34px}}

/* ---------- Testimonial — red quote box left + heading right ---------- */
.home-tquote{background:var(--black);padding:60px 0 80px}
.tquote-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:50px;align-items:center}
.tquote-box{background:var(--red);color:#fff;padding:30px 32px;border-radius:4px;position:relative;font-style:italic;line-height:1.55;box-shadow:0 8px 24px rgba(204,0,0,.25)}
.tquote-box p{margin:0 0 14px;color:#fff;font-size:.96rem}
.tquote-who{font-style:normal;font-weight:800;display:flex;align-items:center;gap:10px;margin-top:10px}
.tquote-avatar{width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.35);display:grid;place-items:center;font-size:.95rem}
.tquote-side h2{color:#fff;font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.15}
.tquote-eyebrow{color:#cfcfcf;font-size:.95rem;font-weight:600;letter-spacing:.2px;margin-bottom:10px}
.link-arrow{color:#fff;font-weight:600;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px}
.link-arrow:hover{color:var(--red);border-color:var(--red)}
.tquote-dots{margin-top:22px;display:flex;gap:8px}
.tquote-dots .dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.3)}
.tquote-dots .dot.active{background:#fff}
@media (max-width:880px){.tquote-grid{grid-template-columns:1fr;gap:30px}.tquote-side{order:-1}}

/* ---------- Portfolio: polished project cards ---------- */
.portfolio-intro{background:#fff;padding:50px 0 30px}
.portfolio-projects{background:var(--light);padding:30px 0 70px}
.portfolio-projects .container{max-width:1100px}

.proj-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.08);margin-bottom:48px;border:1px solid #e8e8e8}
.proj-card:last-child{margin-bottom:0}

.proj-head{background:#0a0a0a;color:#fff;padding:22px 30px;display:flex;align-items:center;gap:22px;border-bottom:4px solid var(--red)}
.proj-head .proj-num{font-family:'Inter',sans-serif;font-weight:900;font-size:2.4rem;color:var(--red);line-height:1;letter-spacing:-2px;min-width:60px}
.proj-head h3{color:#fff;margin:0 0 4px;font-size:1.45rem;font-weight:800;letter-spacing:-.3px}
.proj-head .proj-meta{color:#aaa;font-size:.85rem;letter-spacing:.4px;text-transform:uppercase;font-weight:600}

.proj-media{padding:0;background:#000}
.proj-media .lite-yt{aspect-ratio:16/9;border-radius:0;max-width:none;margin:0}

.proj-body{padding:30px 36px}
.proj-body p{color:#3a3a3a;line-height:1.75;margin:0 0 1em;font-size:1rem}
.proj-body p:last-child{margin-bottom:0}

.proj-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 36px 36px}
.proj-gallery .pg-tile{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:6px;background:#000;cursor:zoom-in;position:relative}
.proj-gallery .pg-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease,opacity .15s}
.proj-gallery .pg-tile::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,0);transition:background .2s}
.proj-gallery .pg-tile:hover img{transform:scale(1.08)}
.proj-gallery .pg-tile:hover::after{background:rgba(204,0,0,.12)}

@media (max-width:880px){
  .proj-head{padding:18px 22px;gap:16px}
  .proj-head .proj-num{font-size:2rem;min-width:48px}
  .proj-head h3{font-size:1.2rem}
  .proj-body{padding:24px 22px}
  .proj-gallery{grid-template-columns:repeat(3,1fr);padding:0 22px 22px}
}
@media (max-width:560px){
  .proj-gallery{grid-template-columns:repeat(2,1fr);gap:6px}
}

/* ---------- BuilderTrend intro panel (polished) ---------- */
.bt-intro{background:linear-gradient(180deg, #f7f8fb 0%, #fff 100%);padding:60px 0 40px;border-bottom:1px solid #e5e7eb}
.bt-intro .container{max-width:1180px}
.bt-intro-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:50px;align-items:center}
@media (max-width:900px){.bt-intro-grid{grid-template-columns:1fr;gap:30px}}

.bt-eyebrow{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--red);background:rgba(204,0,0,.08);padding:6px 12px;border-radius:99px;margin-bottom:14px}
.bt-intro-text h2{color:#0a0a0a;font-size:clamp(1.7rem,3vw,2.2rem);margin:0 0 16px;line-height:1.2;letter-spacing:-.5px}
.bt-intro-text p.bt-lede{font-size:1.1rem;line-height:1.65;color:#222;margin:0 0 16px}
.bt-intro-text p{color:#444;line-height:1.7;margin:0 0 14px}
.bt-intro-text strong{color:#111;font-weight:700}

.bt-feats{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
@media (max-width:560px){.bt-feats{grid-template-columns:1fr}}
.bt-feats li{position:relative;padding:8px 0 8px 38px;color:#333;font-size:.92rem;line-height:1.4}
.bt-feats li .bt-feat-ico{position:absolute;left:0;top:6px;width:28px;height:28px;display:grid;place-items:center;background:rgba(204,0,0,.08);border-radius:6px;font-size:.95rem}
.bt-feats li strong{color:#111;font-weight:700;margin-right:4px}

.bt-intro-image{position:relative}
.bt-intro-image img{width:100%;height:auto;display:block;border-radius:6px;filter:drop-shadow(0 12px 26px rgba(15,23,42,.15))}

/* Step callout */
.bt-step{background:#0a0a0a;color:#fff;border-radius:12px;padding:28px 32px;margin-top:50px;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;border-left:5px solid var(--red)}
@media (max-width:680px){.bt-step{grid-template-columns:1fr;padding:24px 22px;gap:16px}}
.bt-step-num{font-family:'Inter',sans-serif;font-weight:900;font-size:1.4rem;color:var(--red);letter-spacing:1px;text-transform:uppercase;padding:14px 18px;border:2px solid var(--red);border-radius:6px;white-space:nowrap}
.bt-step-body h3{color:#fff;margin:0 0 8px;font-size:1.2rem;font-weight:700;line-height:1.35}
.bt-step-body p{color:#cfcfcf;margin:0 0 14px;line-height:1.6;font-size:.95rem}

/* ---------- BuilderTrend video grid (lite-youtube lazy embeds) ---------- */
.bt-videos{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin:40px 0}
@media (max-width:780px){.bt-videos{grid-template-columns:1fr;gap:24px}}
.bt-video-card{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm)}
.bt-video-title{margin:0;padding:14px 18px;background:#0a0a0a;color:#fff;font-size:1rem;font-weight:700}
.lite-yt{position:relative;aspect-ratio:16/9;cursor:pointer;background:#000;display:block;overflow:hidden}
.lite-yt img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .2s}
.lite-yt:hover img{opacity:.85}
.lite-yt-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68px;height:48px;border-radius:14px;background:rgba(204,0,0,.92);color:#fff;font-size:24px;border:none;cursor:pointer;display:grid;place-items:center;padding-left:4px;box-shadow:0 4px 14px rgba(0,0,0,.5);transition:background .15s,transform .15s}
.lite-yt:hover .lite-yt-play{background:#cc0000;transform:translate(-50%,-50%) scale(1.08)}
.lite-yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- Trust badges row ---------- */
.trust-row{background:#0d0d0d;padding:36px 0;border-top:1px solid rgba(255,255,255,.05)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:center;justify-items:center}
.trust-item img{max-width:160px;max-height:80px;width:auto;height:auto;object-fit:contain;opacity:.92;filter:brightness(1.1)}
.trust-item img:hover{opacity:1}
@media (max-width:760px){.trust-grid{grid-template-columns:repeat(2,1fr);gap:24px}}

/* ---------- About row (home) ---------- */
.about-row{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.about-row .img-wrap{aspect-ratio:4/3;overflow:hidden;border-radius:6px;box-shadow:var(--shadow)}
.about-row .img-wrap img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.about-row{grid-template-columns:1fr}}

/* ---------- Service cards grid ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.svc-card{background:#fff;border-radius:6px;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;border:1px solid var(--border);transition:transform .2s,box-shadow .2s}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.svc-card .img{aspect-ratio:4/3;overflow:hidden}
.svc-card .img img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.svc-card:hover .img img{transform:scale(1.04)}
.svc-card .body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.svc-card h3{margin:0 0 10px;color:#111}
.svc-card p{color:#444;font-size:.95rem;flex:1;margin-bottom:18px}
.svc-card .more{align-self:flex-start;background:var(--red);color:#fff;padding:10px 22px;border-radius:3px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:.82rem}
.svc-card .more:hover{background:var(--red-2);color:#fff}
@media (max-width:980px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.svc-grid{grid-template-columns:1fr}}

/* ---------- Alternating row layout (sub-pages, services) ---------- */
.row-alt{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin:0 0 60px}
.row-alt:last-child{margin-bottom:0}
.row-alt .img-wrap{aspect-ratio:4/3;overflow:hidden;border-radius:6px;box-shadow:var(--shadow-sm)}
.row-alt .img-wrap img{width:100%;height:100%;object-fit:cover}
.row-alt.reverse > .img-wrap{order:2}
@media (max-width:900px){
  .row-alt,.row-alt.reverse{grid-template-columns:1fr}
  .row-alt.reverse > .img-wrap{order:0}
}

/* ---------- Testimonials band ---------- */
.tband{background:var(--red);color:#fff;padding:70px 0;text-align:center}
.tband h2{color:#fff}
.tband-quote{font-size:1.15rem;font-style:italic;max-width:780px;margin:14px auto 22px;color:#fff}
.tband-author{font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:.85rem;color:#fff}
.tband-stars{color:#ffd24d;font-size:1.2rem;letter-spacing:3px;margin-bottom:8px}

/* ---------- CTA "Get In Touch Today" ---------- */
.cta-band{background:var(--black-2);color:#fff;padding:60px 0}
.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.cta-grid h2{color:#fff;margin-bottom:.4em}
.cta-grid p{color:#ddd}
.cta-grid .hours{margin-top:24px}
.cta-grid .hours h4{color:var(--red);margin:0 0 10px;font-size:1.1rem;text-transform:uppercase;letter-spacing:1px}
.cta-grid .hours-rows{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;color:#ddd;font-size:.94rem}
.cta-form{background:#0e0e0e;padding:30px;border-radius:8px;border:1px solid rgba(255,255,255,.06)}
.cta-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cta-form input,.cta-form textarea,.cta-form select{width:100%;padding:12px 14px;border-radius:4px;border:1px solid #333;background:#fff;color:#111;font-size:.95rem;font-family:inherit;margin-bottom:14px}
.cta-form textarea{min-height:130px;resize:vertical}
.cta-form button{width:100%;background:var(--red);color:#fff;padding:14px;border:none;border-radius:4px;font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;cursor:pointer}
.cta-form button:hover{background:var(--red-2)}
.cta-form .website{position:absolute;left:-9999px}
.cta-form .privacy{font-size:.78rem;color:#999;margin:8px 0 0}
@media (max-width:860px){.cta-grid{grid-template-columns:1fr}.cta-form .row{grid-template-columns:1fr}}

/* ---------- Form messages ---------- */
.form-msg{padding:12px 16px;border-radius:4px;margin-bottom:16px;font-size:.92rem}
.form-msg.err{background:#fde2e2;color:#7a1212;border:1px solid #f3b3b3}
.form-msg.ok{background:#d6f3df;color:#1d5b34;border:1px solid #a3d8b3}

/* ---------- Contact page ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:44px;align-items:start}

/* Polished contact form */
.contact-form{background:#fff;border:1px solid var(--border);border-radius:8px;padding:34px 32px;box-shadow:0 6px 22px rgba(0,0,0,.06)}
.contact-form h2{font-size:1.7rem;color:#111;margin:0 0 6px}
.contact-form .cf-sub{color:#666;margin:0 0 22px;font-size:.95rem}
.contact-form .cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-form .cf-field{margin-bottom:14px}
.contact-form .cf-field label{display:block;font-size:.82rem;font-weight:700;color:#222;margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.contact-form .cf-field .req{color:var(--red)}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form input[type=tel],
.contact-form select,
.contact-form textarea{width:100%;padding:11px 14px;border:1px solid #d4d4d4;border-radius:5px;background:#fff;color:#111;font-size:.96rem;font-family:inherit;transition:border-color .15s,box-shadow .15s}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(204,0,0,.12)}
.contact-form textarea{resize:vertical;min-height:120px}
.contact-form .cf-radios{display:flex;gap:18px;flex-wrap:wrap;padding-top:4px}
.contact-form .cf-radios label{font-size:.92rem;font-weight:500;text-transform:none;letter-spacing:0;color:#333;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.contact-form .cf-radios input{accent-color:var(--red)}
.contact-form button[type=submit]{margin-top:8px;padding:14px 18px;font-size:1rem}
.contact-form .cf-disclaim{font-size:.78rem;color:#888;margin:10px 0 0;text-align:center}
.contact-form .website{position:absolute;left:-9999px}
@media (max-width:600px){
  .contact-form{padding:26px 22px}
  .contact-form .cf-row{grid-template-columns:1fr}
}
.contact-info{background:#0e0e0e;color:#fff;padding:34px;border-radius:8px}
.contact-info h3{color:#fff;margin-top:0}
.contact-info ul{list-style:none;padding:0;margin:0}
.contact-info li{position:relative;padding-left:34px;margin:12px 0;color:#ddd}
.contact-info li .ico{position:absolute;left:0;top:2px;color:var(--red);width:22px;text-align:center;font-size:1.05rem}
.contact-info .socials{display:flex;gap:10px;margin-top:18px}
.contact-info .socials a{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--red);color:#fff;font-size:.9rem}
.contact-info .socials a:hover{background:var(--red-2)}
.map-wrap{margin-top:0;border-top:4px solid var(--red);background:#000}
.map-wrap iframe{width:100%;height:440px;border:0;display:block}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}

/* ---------- Portfolio grid ---------- */
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.portfolio-tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:#222}
.portfolio-tile img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.portfolio-tile:hover img{transform:scale(1.06)}
.portfolio-tile .label{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.85));color:#fff;padding:30px 18px 14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:.92rem}
@media (max-width:860px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.portfolio-grid{grid-template-columns:1fr}}

/* ============================================================ */
/* SERVICE-PAGE PIZZAZZ COMPONENTS                                 */
/* Stats strip, lead grid, pull-quote, feature tiles, process,    */
/* gallery, mid-page CTA card.                                    */
/* ============================================================ */

/* Stats strip (sitewide trust signals under service-page banner) */
.svc-stats{background:#0a0a0a;color:#fff;padding:22px 0;border-bottom:3px solid var(--red)}
.svc-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;text-align:center}
@media (max-width:780px){.svc-stats-grid{grid-template-columns:repeat(2,1fr);gap:18px}}
.svc-stat{display:flex;flex-direction:column;align-items:center;gap:2px}
.svc-stat .ss-num{font-size:1.8rem;font-weight:900;color:var(--red);line-height:1;letter-spacing:-1px}
.svc-stat .ss-lbl{font-size:.92rem;font-weight:700;color:#fff;margin-top:6px}
.svc-stat .ss-sub{font-size:.74rem;color:#9aa0a8;letter-spacing:.3px}

/* Lead grid (image left, intro text right) */
.svc-lead{background:#fff;padding:50px 0 30px}
.svc-lead-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center;max-width:1180px;margin:0 auto}
@media (max-width:880px){.svc-lead-grid{grid-template-columns:1fr;gap:24px}.svc-lead-img{order:-1}}
.svc-lead-img img{width:100%;height:auto;border-radius:8px;display:block;aspect-ratio:4/3;object-fit:cover;box-shadow:0 14px 30px rgba(0,0,0,.14)}
.svc-lead-text h2{font-size:clamp(1.7rem,3vw,2.2rem);color:#0a0a0a;margin:8px 0 14px;letter-spacing:-.4px;line-height:1.2}
.svc-lead-text p{color:#444;line-height:1.7;margin:0 0 14px}
.svc-lead-text strong{color:#111}

/* Pull-quote callout */
.svc-quote{background:linear-gradient(135deg,rgba(204,0,0,.06) 0%,rgba(204,0,0,.02) 100%);border-left:5px solid var(--red);margin:30px 0;padding:24px 28px;border-radius:6px;position:relative}
.svc-quote::before{content:"\201C";position:absolute;top:-6px;left:14px;font-family:Georgia,serif;font-size:3.2rem;color:var(--red);opacity:.4;line-height:1}
.svc-quote p{font-size:1.08rem;line-height:1.6;color:#222;margin:0 0 10px;font-style:italic}
.svc-quote p strong{color:var(--red);font-style:normal}
.svc-quote cite{font-style:normal;font-size:.85rem;color:#777;letter-spacing:.4px;text-transform:uppercase;font-weight:600}

/* Feature tiles (3-col grid of icon + title + description) */
.svc-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0 8px}
@media (max-width:780px){.svc-feats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.svc-feats{grid-template-columns:1fr}}
.svc-feat{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:20px;transition:transform .15s,box-shadow .15s,border-color .15s}
.svc-feat:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.08);border-color:var(--red)}
.svc-feat-ico{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:8px;background:rgba(204,0,0,.08);font-size:1.2rem;margin-bottom:10px}
.svc-feat h4{margin:0 0 6px;color:#111;font-size:1rem;font-weight:700}
.svc-feat p{margin:0;color:#555;font-size:.9rem;line-height:1.55}

/* Process steps (numbered cards in a row) */
.svc-process{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 8px;counter-reset:proc}
@media (max-width:880px){.svc-process{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.svc-process{grid-template-columns:1fr}}
.svc-step{background:#0a0a0a;color:#fff;border-radius:8px;padding:22px 18px;position:relative;overflow:hidden;border-top:3px solid var(--red)}
.svc-step .ss-num{display:block;font-family:'Inter',sans-serif;font-weight:900;font-size:2rem;color:var(--red);line-height:1;margin-bottom:8px;letter-spacing:-1px}
.svc-step h4{margin:0 0 6px;color:#fff;font-size:1rem;font-weight:700}
.svc-step p{margin:0;color:#cfcfcf;font-size:.85rem;line-height:1.5}

/* Featured project gallery (4-col mini thumbnails) */
.svc-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 4px}
@media (max-width:780px){.svc-gallery{grid-template-columns:repeat(2,1fr)}}
.svc-gallery > a,.svc-gallery .sg-tile{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:#000}
.svc-gallery > a img,.svc-gallery .sg-tile img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .15s}
.svc-gallery > a:hover img,.svc-gallery .sg-tile:hover img{transform:scale(1.08);opacity:.92}

/* News listing grid + post page styling */
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin:8px 0}
@media (max-width:780px){.news-grid{grid-template-columns:1fr}}
.news-card{background:#fff;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden;box-shadow:0 3px 10px rgba(0,0,0,.05);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.news-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.1)}
.news-card-img{display:block;aspect-ratio:16/9;overflow:hidden;background:#000}
.news-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.news-card:hover .news-card-img img{transform:scale(1.04)}
.news-card-body{padding:18px 20px;display:flex;flex-direction:column;flex:1}
.news-date{font-size:.75rem;color:var(--red);font-weight:800;letter-spacing:1px;text-transform:uppercase;display:inline-block;margin-bottom:6px}
.news-card-body h3{margin:0 0 10px;font-size:1.05rem;line-height:1.3}
.news-card-body h3 a{color:#0a0a0a;text-decoration:none}
.news-card-body h3 a:hover{color:var(--red)}
.news-card-body p{color:#555;font-size:.88rem;line-height:1.55;margin:0 0 12px;flex:1}
.news-readmore{color:var(--red);font-weight:700;font-size:.88rem;text-decoration:none;align-self:flex-start}
.news-readmore:hover{text-decoration:underline}

/* Blog post article styling */
.article.post p{font-size:1rem;line-height:1.75;color:#333;margin:0 0 1em}
.article.post p:first-of-type{font-size:1.08rem;color:#111}

/* Reviews summary banner */
.reviews-summary{background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);color:#fff;padding:36px 0;border-bottom:3px solid var(--red)}
.reviews-summary-inner{display:flex;align-items:center;gap:30px;flex-wrap:wrap;justify-content:center;max-width:980px;margin:0 auto}
.rs-rating{text-align:center;min-width:160px}
.rs-rating .rs-num{font-size:3.2rem;font-weight:900;color:var(--red);line-height:1;letter-spacing:-2px}
.rs-rating .rs-stars{color:#ffb000;letter-spacing:3px;font-size:1.3rem;margin:2px 0 6px}
.rs-rating .rs-label{font-size:.75rem;color:#aaa;text-transform:uppercase;letter-spacing:1px;font-weight:600}
.reviews-summary .rs-blurb{flex:1;min-width:260px;color:#cfcfcf;line-height:1.6;font-size:.96rem;margin:0;text-align:center}
.reviews-summary .btn{flex-shrink:0}

/* Big review card (real reviews page) */
.big-review{background:#fff;border:1px solid var(--border);border-radius:8px;padding:28px 30px;box-shadow:var(--shadow-sm);margin-bottom:20px}
.big-review .stars{color:#ffb000;letter-spacing:2px;font-size:1.1rem;margin-bottom:10px}
.big-review .rev-title{font-size:1.4rem;color:#0a0a0a;font-style:italic;font-weight:700;margin:0 0 12px}
.big-review .quote{font-size:1rem;color:#333;line-height:1.7;margin:0 0 12px}
.big-review .who{font-weight:700;color:var(--red);font-size:.95rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.big-review .rev-meta{font-weight:500;color:#888;font-size:.82rem}
.big-review .rev-avatar{width:30px;height:30px;border-radius:50%;background:#0a0a0a;color:#fff;display:grid;place-items:center;font-size:.85rem}

/* Whole-Home Remodel: 3-tier style showcase */
.style-showcase{background:#fff;padding:60px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1180px;margin:0 auto}
@media (max-width:860px){.style-grid{grid-template-columns:1fr}}
.style-card{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e8e8e8;box-shadow:0 3px 12px rgba(0,0,0,.06);transition:transform .2s,box-shadow .2s}
.style-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.1)}
.style-card img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.style-body{padding:18px 22px}
.style-body h3{margin:0 0 8px;color:var(--red);font-size:1.15rem}
.style-body p{margin:0;color:#444;font-size:.92rem;line-height:1.5}

/* Reviewer row (whole-home) */
.rev-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
@media (max-width:680px){.rev-row{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.rev-row{grid-template-columns:1fr}}
.rev-name{background:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:10px 14px;font-weight:700;color:#111;font-size:.95rem}
.rev-name span{display:block;color:#666;font-weight:500;font-size:.78rem;margin-top:2px}

/* Showroom: 25% OFF Fabuwood promo band */
.promo-band{background:linear-gradient(135deg, var(--red) 0%, #8a0000 100%);color:#fff;padding:36px 0;text-align:center;position:relative;overflow:hidden}
.promo-band::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.12),transparent 50%)}
.promo-inner{position:relative;z-index:2;max-width:780px;margin:0 auto}
.promo-eyebrow{display:inline-block;background:rgba(0,0,0,.25);color:#fff;padding:5px 14px;border-radius:99px;font-size:.75rem;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:10px}
.promo-h{font-size:clamp(2.4rem,6vw,3.8rem);font-weight:900;color:#fff;margin:0 0 4px;letter-spacing:-1.5px;line-height:1}
.promo-sub{font-size:clamp(1.4rem,3vw,2rem);color:#fff;margin:0 0 12px;font-weight:600;letter-spacing:.2px}
.promo-inner p{color:#fff;font-size:.95rem;margin:0;opacity:.95}
.promo-inner a{color:#fff;text-decoration:underline;font-weight:700}

/* Showroom Matterport videos grid (3 lazy embeds) */
.showroom-videos{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:20px 0}
.showroom-videos .lite-yt:first-child{grid-column:1/-1;aspect-ratio:16/9}
.showroom-videos .lite-yt{aspect-ratio:16/9;border-radius:8px}
@media (max-width:680px){.showroom-videos{grid-template-columns:1fr}}

/* Handyman: Pricing tier cards */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:18px 0}
@media (max-width:880px){.pricing-grid{grid-template-columns:1fr}}
.price-card{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:26px 24px;display:flex;flex-direction:column;box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .15s,box-shadow .15s}
.price-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.10)}
.price-card-featured{border:2px solid var(--red);box-shadow:0 8px 24px rgba(204,0,0,.18)}
.price-badge{position:absolute;top:-12px;right:18px;background:var(--red);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;padding:5px 12px;border-radius:99px}
.price-card h3{margin:0 0 6px;font-size:1.25rem;color:#111}
.price-blurb{color:#666;font-size:.88rem;margin:0 0 14px;line-height:1.5}
.price-tag{display:flex;align-items:baseline;gap:6px;margin:6px 0 12px}
.price-amt{font-size:2.4rem;font-weight:900;color:var(--red);letter-spacing:-1px;line-height:1}
.price-per{font-size:.9rem;color:#666;font-weight:600}
.price-card ul{list-style:none;padding:0;margin:0 0 20px;flex:1}
.price-card ul li{padding:7px 0;color:#333;font-size:.93rem;border-bottom:1px solid #f0f0f0;position:relative;padding-left:24px}
.price-card ul li::before{content:"✓";position:absolute;left:0;color:var(--red);font-weight:900}
.price-card ul li:last-child{border-bottom:none}

/* Handyman: 9 Category cards (alternating image/text) */
.hm-cat{display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:center;background:#fff;border:1px solid #ececec;border-radius:10px;overflow:hidden;margin:22px 0;box-shadow:0 3px 10px rgba(0,0,0,.04)}
.hm-cat:nth-child(even){grid-template-columns:1fr 340px}
.hm-cat:nth-child(even) .hm-cat-media{order:2}
@media (max-width:780px){.hm-cat,.hm-cat:nth-child(even){grid-template-columns:1fr}.hm-cat:nth-child(even) .hm-cat-media{order:0}}
.hm-cat-media{background:#000}
.hm-cat-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;display:block}
@media (max-width:780px){.hm-cat-media img{aspect-ratio:16/9}}
.hm-cat-body{padding:24px 30px}
.hm-cat-tagline{font-size:.78rem;text-transform:uppercase;letter-spacing:1.2px;font-weight:700;color:var(--red)}
.hm-cat-body h3{margin:6px 0 10px;font-size:1.35rem;color:#0a0a0a}
.hm-cat-body p{color:#444;line-height:1.65;margin:0 0 12px;font-size:.95rem}
.hm-cat-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}
@media (max-width:520px){.hm-cat-list{grid-template-columns:1fr}}
.hm-cat-list li{padding:5px 0 5px 22px;position:relative;color:#333;font-size:.87rem;line-height:1.4}
.hm-cat-list li::before{content:"●";position:absolute;left:4px;color:var(--red);font-size:.6rem;top:11px}

/* Handyman: Who We Serve audience cards */
.hm-audience{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:18px 0}
@media (max-width:880px){.hm-audience{grid-template-columns:1fr}}
.hm-aud-card{background:#fff;border:1px solid #e8e8e8;border-radius:10px;overflow:hidden;box-shadow:0 3px 10px rgba(0,0,0,.05);transition:transform .15s,box-shadow .15s}
.hm-aud-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.10)}
.hm-aud-card img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.hm-aud-body{padding:18px 20px}
.hm-aud-body h3{margin:0 0 6px;font-size:1.15rem;color:var(--red)}
.hm-aud-body p{color:#555;font-size:.9rem;margin:0 0 10px;line-height:1.5}
.hm-aud-body ul{list-style:none;padding:0;margin:0}
.hm-aud-body ul li{padding:5px 0 5px 18px;position:relative;color:#333;font-size:.88rem}
.hm-aud-body ul li::before{content:"✓";position:absolute;left:0;color:var(--red);font-weight:900;font-size:.85rem}

/* Tool block (Design & Architecture: Matterport / Hover / Chief Architect) */
.tool-block{background:#fff;border:1px solid #e8e8e8;border-radius:10px;overflow:hidden;margin:24px 0;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.tool-head{background:#0a0a0a;color:#fff;padding:14px 22px;border-bottom:3px solid var(--red);display:flex;align-items:center;gap:14px}
.tool-head .tool-badge{font-size:.7rem;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:#fff;background:var(--red);padding:5px 10px;border-radius:99px;white-space:nowrap}
.tool-head h3{margin:0;color:#fff;font-size:1.4rem;font-weight:800;letter-spacing:-.3px}
.tool-body{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:24px 26px;align-items:center}
.tool-body-reverse{grid-template-columns:1fr 1.2fr}
.tool-body-reverse .tool-video{order:0}
.tool-body-reverse .tool-text{order:1}
.tool-body-text-only{grid-template-columns:1fr}
.tool-text p{color:#333;line-height:1.7;margin:0 0 1em;font-size:.96rem}
.tool-text p:last-child{margin-bottom:0}
.tool-video .lite-yt{aspect-ratio:16/9;border-radius:8px;width:100%}
@media (max-width:880px){
  .tool-body,.tool-body-reverse{grid-template-columns:1fr;padding:20px}
  .tool-body-reverse .tool-video{order:0}
  .tool-body-reverse .tool-text{order:1}
}

/* Mid-page CTA card */
.svc-mid-cta{background:#0a0a0a;color:#fff;border-radius:10px;padding:28px 32px;margin:38px 0 10px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border-left:5px solid var(--red)}
.svc-mid-cta h3{margin:0 0 6px;color:#fff;font-size:1.25rem;font-weight:800}
.svc-mid-cta p{margin:0;color:#cfcfcf;font-size:.95rem}
.svc-mid-cta-actions{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:680px){.svc-mid-cta{padding:22px;flex-direction:column;align-items:stretch;text-align:center}.svc-mid-cta-actions{justify-content:center}}

/* ---------- With-sidebar layout (reviews + other future pages) ---------- */
.with-sidebar{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start}
@media (max-width:920px){.with-sidebar{grid-template-columns:1fr;gap:30px}.ws-side{order:2}}
.ws-side{position:sticky;top:24px;display:flex;flex-direction:column;gap:18px}
.ws-card{background:#0e0e0e;color:#fff;padding:24px 22px;border-radius:8px;box-shadow:var(--shadow-sm)}
.ws-card h3{color:#fff;margin:0 0 14px;font-size:1.15rem;border-bottom:2px solid var(--red);padding-bottom:8px;display:inline-block}
.ws-contact ul{list-style:none;padding:0;margin:0}
.ws-contact li{position:relative;padding-left:30px;margin:10px 0;color:#cfcfcf;font-size:.93rem;line-height:1.5}
.ws-contact li .ico{position:absolute;left:0;top:2px;color:var(--red);width:22px;text-align:center}
.ws-contact a:not(.btn){color:#fff}
.ws-contact a:not(.btn):hover{color:var(--red)}
.ws-contact .socials{display:flex;gap:8px}
.ws-contact .socials a{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--red);color:#fff;font-size:.85rem;text-decoration:none}
.ws-contact .socials a:hover{background:var(--red-2)}
.ws-svc-list{list-style:none;padding:0;margin:0}
.ws-svc-list li{margin:0}
.ws-svc-list li a{display:block;padding:9px 0;color:#cfcfcf;border-bottom:1px solid rgba(255,255,255,.07);font-size:.92rem;text-decoration:none}
.ws-svc-list li:last-child a{border-bottom:none}
.ws-svc-list li a:hover{color:#fff}
.ws-svc-list li.is-current a{color:var(--red);font-weight:700;border-left:3px solid var(--red);padding-left:10px;margin-left:-13px}

/* ---------- Reviews list ---------- */
.review-card{background:#fff;border:1px solid var(--border);border-radius:6px;padding:24px;box-shadow:var(--shadow-sm);margin-bottom:18px}
.review-card .stars{color:#ffb000;letter-spacing:2px}
.review-card .who{font-weight:700;margin-top:6px;color:#111}
.review-card .quote{color:#333;margin-top:8px;font-size:1rem}

/* ---------- Sub-page article ---------- */
.article-wrap{padding:60px 0;background:#fff}
.article{max-width:900px;margin:0 auto}
.article .lead{aspect-ratio:16/9;max-height:430px;overflow:hidden;border-radius:6px;margin-bottom:28px;box-shadow:var(--shadow-sm)}
.article .lead img{width:100%;height:100%;object-fit:cover}
.article h2{color:#111;margin-top:1.4em}
.article h3{color:var(--red);margin-top:1.2em}
.article ul{padding-left:22px}
.article ul li{margin:6px 0}

/* ---------- Related services ---------- */
.related{background:var(--light);padding:60px 0}
.related h2{text-align:center;margin-bottom:28px}
.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.related-card{background:#fff;border:1px solid var(--border);border-radius:6px;overflow:hidden;display:block;color:#111;transition:transform .2s,box-shadow .2s}
.related-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.related-card .img{aspect-ratio:4/3;overflow:hidden}
.related-card .img img{width:100%;height:100%;object-fit:cover}
.related-card .body{padding:14px 16px}
.related-card .body h4{margin:0;font-size:1rem;color:#111}
.related-card .body p{margin:4px 0 0;font-size:.85rem;color:#555}
@media (max-width:920px){.related-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.related-grid{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.site-footer{background:var(--black);color:#cfcfcf;padding:60px 0 0}
.site-footer h4{color:#fff;margin:0 0 14px;text-transform:uppercase;letter-spacing:1px;font-size:.95rem;border-bottom:2px solid var(--red);padding-bottom:8px;display:inline-block}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr 1.1fr;gap:36px;padding-bottom:36px}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer ul li{margin:6px 0}
.site-footer ul li a{color:#cfcfcf;font-size:.92rem}
.site-footer ul li a:hover{color:#fff;text-decoration:underline}
.footer-contact li{position:relative;padding-left:28px}
.footer-contact li .ico{position:absolute;left:0;top:5px;width:20px;text-align:center;color:var(--red)}
.footer-socials{display:flex;gap:8px;margin-top:14px}
.footer-socials a{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--red);color:#fff;font-size:.85rem}
.footer-socials a:hover{background:var(--red-2)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:18px 0;text-align:center;font-size:.85rem;color:#999}
.footer-bottom a{color:#ddd}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr;gap:24px}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}}

/* ---------- Reveal animations ---------- */
html.js-on .reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}
html.js-on .reveal.in{opacity:1;transform:none}

/* ---------- Utilities ---------- */
.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}
.bg-white{background:#fff}
.bg-light{background:#f5f5f5}

/* ---------- Service-page content bands (auto-alternating contrast) ----------
   Grid-based content groups (feature tiles, process strips, galleries, FAQs)
   automatically get a light-gray tinted band. Headings + prose stay on white
   = natural visual rhythm between "text on white" and "structured grid on tint". */
.ws-main .svc-feats,
.ws-main .svc-process,
.ws-main .svc-gallery,
.ws-main .faq-list{
  background:#f5f5f5;
  padding:26px 24px;
  border-radius:10px;
  margin:14px -12px 28px;
}
.ws-main .svc-mid-cta{margin-left:-12px;margin-right:-12px}
@media (max-width:780px){
  .ws-main .svc-feats,
  .ws-main .svc-process,
  .ws-main .svc-gallery,
  .ws-main .faq-list{margin-left:0;margin-right:0;padding:20px 16px}
  .ws-main .svc-mid-cta{margin-left:0;margin-right:0}
}
/* Tighten heading top margins so the bands feel grouped with their h2 */
.ws-main h2{margin-top:32px}
.ws-main h2:first-child{margin-top:0}
/* Trim excess bottom space on the last paragraph before a band */
.ws-main p + .svc-feats,
.ws-main p + .svc-process,
.ws-main p + .svc-gallery,
.ws-main p + .faq-list{margin-top:6px}

/* ---------- Handyman page section layout (tighter, alternating bg) ---------- */
.hm-section{padding:44px 0}
.hm-section + .hm-section{padding-top:44px}
.hm-head{max-width:880px;margin:0 auto 28px;text-align:center}
.hm-head h2{margin:0 0 8px;color:#0a0a0a;font-size:clamp(1.6rem,3vw,2.1rem)}
.hm-head p{margin:0;color:#555;font-size:1rem;line-height:1.6}
.hm-subhead{margin:32px 0 16px;color:#0a0a0a;font-size:clamp(1.4rem,2.6vw,1.8rem)}
.hm-subhead-2{margin:36px 0 14px;font-size:1.25rem}
.hm-cta-line{margin:24px 0 0;text-align:center}
.hm-intro{max-width:980px;margin:0 auto}
.hm-intro h2{margin:8px 0 4px;color:#0a0a0a;font-size:clamp(1.7rem,3vw,2.2rem)}
.hm-intro p{color:#333;line-height:1.7;margin:0 0 12px}
.hm-eyebrow{text-transform:uppercase;letter-spacing:1px;color:#666;font-weight:700;font-size:.85rem;margin:0 0 18px}

/* ---------- Skip-to-content (a11y) ---------- */
.skip-link{position:absolute;left:-9999px;top:8px;background:var(--red);color:#fff;padding:10px 18px;border-radius:4px;font-weight:700;text-decoration:none;z-index:9999}
.skip-link:focus{left:8px;outline:3px solid #fff;color:#fff}

/* ---------- Underline links in body content (a11y: don't rely on color alone) ---------- */
.article p a:not(.btn),
.svc-lead p a:not(.btn),
.team-bio p a:not(.btn),
.about-intro p a:not(.btn),
.faq-item p a:not(.btn),
.community-text p a:not(.btn){
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}
.article p a:not(.btn):hover,
.svc-lead p a:not(.btn):hover,
.team-bio p a:not(.btn):hover,
.about-intro p a:not(.btn):hover,
.faq-item p a:not(.btn):hover,
.community-text p a:not(.btn):hover{text-decoration-thickness:2px}

/* ---------- Services Hub (services.php) ---------- */
.hub-intro{padding:54px 0 18px;text-align:center}
.hub-intro h2{margin:0 0 12px}
.hub-intro p{max-width:780px;margin:0 auto;color:#444;font-size:1.05rem}
.hub-cats{padding:24px 0 64px}
.hub-cat{margin-bottom:54px}
.hub-cat:last-child{margin-bottom:0}
.hub-cat-head{display:flex;align-items:center;gap:18px;margin-bottom:24px;padding-bottom:14px;border-bottom:3px solid var(--red)}
.hub-cat-head .hcat-num{font-family:'Inter',sans-serif;font-weight:900;font-size:2.2rem;color:var(--red);line-height:1;letter-spacing:-1px}
.hub-cat-head h2{margin:0;font-size:clamp(1.5rem,2.6vw,2rem);color:#111}
.hub-cat-head .hcat-tag{margin-left:auto;background:var(--black);color:#fff;font-size:.72rem;letter-spacing:1px;padding:6px 14px;border-radius:3px;text-transform:uppercase;font-weight:700}
.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.hub-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit}
.hub-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);color:inherit}
.hub-card .img{aspect-ratio:4/3;overflow:hidden;background:#eaeaea;position:relative}
.hub-card .img img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.hub-card:hover .img img{transform:scale(1.06)}
.hub-card .img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55));pointer-events:none}
.hub-card .img .hc-pill{position:absolute;bottom:10px;left:12px;z-index:2;color:#fff;font-size:.74rem;text-transform:uppercase;letter-spacing:1px;font-weight:700;background:var(--red);padding:5px 10px;border-radius:3px}
.hub-card .body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.hub-card .body h3{margin:0 0 8px;color:#111;font-size:1.18rem}
.hub-card .body p{color:#555;font-size:.93rem;margin:0 0 16px;flex:1}
.hub-card .more{align-self:flex-start;color:var(--red);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.6px;border-bottom:2px solid var(--red);padding-bottom:2px}
.hub-card:hover .more{color:var(--red-2);border-color:var(--red-2)}
@media (max-width:980px){.hub-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.hub-grid{grid-template-columns:1fr}.hub-cat-head .hcat-tag{display:none}}

/* ---------- About page ---------- */
.about-intro{padding:60px 0 30px}
.about-intro-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:48px;align-items:start}
.about-intro h2{margin:0 0 16px;color:#111}
.about-intro p{color:#333;line-height:1.75;font-size:1.02rem}
.about-values{background:#0a0a0a;color:#fff;border-radius:10px;padding:28px;border-top:4px solid var(--red);position:sticky;top:120px}
.about-values h3{color:#fff;margin:0 0 16px;font-size:1.3rem;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px}
.values-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px}
.values-list li{display:flex;align-items:center;gap:10px;font-size:.95rem;font-weight:600;color:#fff}
.values-list li span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(204,0,0,.18);font-size:1rem;flex-shrink:0}
@media (max-width:880px){.about-intro-grid{grid-template-columns:1fr;gap:30px}.about-values{position:static}}

.team-section{padding:60px 0;background:#f7f7f7}
.team-header{text-align:center;margin-bottom:48px}
.team-header h2{margin:0 0 8px}
.team-header p{color:#666;font-size:1rem;margin:0}
.team-row{display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:start;background:#fff;border-radius:12px;padding:36px;box-shadow:var(--shadow-sm);margin-bottom:32px;border-top:4px solid var(--red)}
.team-row.reverse{grid-template-columns:1fr 340px}
.team-row.reverse .team-photo{order:2}
.team-photo{aspect-ratio:3/4;overflow:hidden;border-radius:8px;background:#eaeaea}
.team-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.team-bio h3{margin:0 0 4px;color:#0a0a0a;font-size:1.6rem}
.team-role{margin:0 0 18px;color:var(--red);font-weight:700;font-size:.95rem;text-transform:uppercase;letter-spacing:.6px}
.team-bio p{color:#333;line-height:1.75;font-size:1rem;margin:0 0 14px}
@media (max-width:880px){
  .team-row,.team-row.reverse{grid-template-columns:1fr;gap:24px;padding:24px}
  .team-row.reverse .team-photo{order:0}
  .team-photo{max-width:340px;margin:0 auto}
}

.community-strip{padding:60px 0;background:#0a0a0a;color:#fff;border-top:4px solid var(--red);border-bottom:4px solid var(--red)}
.community-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center}
.community-text h2{color:#fff;margin:0 0 14px}
.community-text p{color:#cfcfcf;line-height:1.7;margin:0 0 16px}
.community-list{list-style:none;padding:0;margin:0}
.community-list li{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08);color:#e5e5e5;font-size:.96rem;line-height:1.55}
.community-list li:last-child{border-bottom:0}
.community-list li strong{color:#fff}
.community-cta{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:30px;text-align:center}
.community-cta h3{color:#fff;margin:0 0 8px;font-size:1.3rem}
.community-cta p{color:#bbb;margin:0 0 20px;font-size:.95rem}
.community-cta .btn{display:block;margin-bottom:10px}
.btn-dark-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}
.btn-dark-ghost:hover{background:#fff;color:#0a0a0a}
@media (max-width:880px){.community-inner{grid-template-columns:1fr;gap:30px}}

/* ---------- Sitemap (human-readable) ---------- */
.sm-jump{background:#0a0a0a;border-bottom:3px solid var(--red);padding:14px 0;position:sticky;top:0;z-index:60}
.sm-jump .container{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.sm-jump a{display:inline-block;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);padding:8px 14px;border-radius:50px;font-size:.85rem;font-weight:600;letter-spacing:.3px}
.sm-jump a:hover{background:var(--red);border-color:var(--red);color:#fff}

.sitemap-section{padding:54px 0 80px;background:#fff}
.sm-block{background:#fff;border:1px solid var(--border);border-radius:10px;padding:32px 36px;margin-bottom:24px;box-shadow:var(--shadow-sm);border-top:4px solid var(--red);scroll-margin-top:84px}
.sm-block h2{display:flex;align-items:center;gap:14px;margin:0 0 22px;color:#0a0a0a;font-size:1.55rem;padding-bottom:14px;border-bottom:1px solid var(--border)}
.sm-num{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:8px;background:var(--red);color:#fff;font-weight:900;font-size:1rem;letter-spacing:.5px;flex-shrink:0}
.sm-tag{margin-left:auto;background:#0a0a0a;color:#fff;font-size:.7rem;letter-spacing:1px;padding:5px 12px;border-radius:99px;text-transform:uppercase;font-weight:700}
.sm-list{list-style:none;padding:0;margin:0;display:grid;gap:10px 24px}
.sm-list.cols-2{grid-template-columns:repeat(2,1fr)}
.sm-list.cols-3{grid-template-columns:repeat(3,1fr)}
.sm-list li{position:relative;padding:9px 14px 9px 30px;border-radius:6px;transition:background .12s,transform .12s}
.sm-list li::before{content:"▸";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--red);font-size:.85rem}
.sm-list li:hover{background:#f7f7f7;transform:translateX(2px)}
.sm-list a{color:#111;font-weight:600;font-size:.95rem;text-decoration:none}
.sm-list a:hover{color:var(--red)}
.sm-date{display:inline-block;margin-left:8px;color:#888;font-weight:500;font-size:.78rem;letter-spacing:.3px}

.sm-cities{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sm-city{background:#f7f7f7;border:1px solid var(--border);border-radius:8px;padding:18px 20px}
.sm-city h4{margin:0 0 12px;color:var(--red);font-size:1rem;border-bottom:2px solid var(--red);padding-bottom:6px;display:inline-block}
.sm-city ul{list-style:none;padding:0;margin:0}
.sm-city li{padding:5px 0;font-size:.9rem}
.sm-city li a{color:#222;font-weight:500}
.sm-city li a:hover{color:var(--red)}

.sm-posts{grid-template-columns:repeat(2,1fr) !important}
.sm-posts li{padding:6px 14px 6px 26px;font-size:.88rem}
.sm-posts a{font-weight:500}

@media (max-width:900px){
  .sm-list.cols-3,.sm-list.cols-2,.sm-posts,.sm-cities{grid-template-columns:1fr !important}
  .sm-block{padding:22px 18px}
  .sm-block h2{font-size:1.3rem}
}

/* ---------- LP Pizzazz sections (service-area pages) ---------- */
.lp-feats-wrap{padding:64px 0 50px;background:#fff;border-top:1px solid var(--border)}
.lp-feats-wrap h2{color:#0a0a0a}
.lp-feats-wrap .svc-feats{max-width:1100px;margin:0 auto}

.lp-trust{padding:36px 0;background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);color:#fff;border-top:4px solid var(--red);border-bottom:4px solid var(--red)}
.lp-trust-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;max-width:1080px;margin:0 auto}
.lp-trust-item{text-align:center;padding:12px 8px;border-right:1px solid rgba(255,255,255,.1)}
.lp-trust-item:last-child{border-right:0}
.lpt-num{font-family:'Inter',sans-serif;font-weight:900;font-size:2.2rem;color:var(--red);line-height:1;letter-spacing:-1px;margin-bottom:6px}
.lpt-num sup{font-size:1.2rem;color:#fff;font-weight:700;margin-left:1px;top:-.6em}
.lpt-label{font-size:.78rem;color:#cfcfcf;text-transform:uppercase;letter-spacing:1.2px;font-weight:600}
@media (max-width:780px){.lp-trust-grid{grid-template-columns:repeat(2,1fr);gap:18px}.lp-trust-item{border-right:0;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:14px}}
@media (max-width:380px){.lp-trust-grid{grid-template-columns:1fr}}

.lp-process-wrap{padding:64px 0;background:#f7f7f7}
.lp-process-wrap h2{color:#0a0a0a}
.lp-process-wrap .svc-process{max-width:1080px;margin:0 auto}

.lp-testimonial-wrap{padding:60px 24px;background:#fff;border-top:1px solid var(--border)}
.lp-testimonial{max-width:780px;margin:0 auto;text-align:center;background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);color:#fff;border-radius:12px;padding:40px 32px;border-left:6px solid var(--red);box-shadow:0 6px 28px rgba(0,0,0,.18)}
.lp-testimonial p{font-style:italic;font-size:1.2rem;line-height:1.6;color:#fff;margin:0 0 16px}
.lp-testimonial footer{color:#cfcfcf;font-weight:600;font-size:.95rem;font-style:normal;letter-spacing:.4px}
.lpt-stars{color:#ffb000;font-size:1.4rem;letter-spacing:3px;display:block;margin-bottom:12px}

.lp-faq-wrap{padding:64px 0 70px;background:#f7f7f7;border-top:1px solid var(--border)}
.lp-faq-wrap h2{color:#0a0a0a}

/* ---------- Restoration emergency strip ---------- */
.emergency-strip{background:linear-gradient(135deg,var(--red) 0%,#8a0000 100%);color:#fff;padding:18px 0;border-bottom:3px solid #5a0000;position:relative;overflow:hidden}
.emergency-strip::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(0,0,0,.06) 0,rgba(0,0,0,.06) 12px,transparent 12px,transparent 24px);pointer-events:none}
.emergency-inner{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:center;position:relative;z-index:2}
.emergency-icon{font-size:2rem;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.emergency-text{display:flex;flex-direction:column}
.emergency-text strong{font-size:1.1rem;letter-spacing:1px;text-transform:uppercase}
.emergency-text span{font-size:.92rem;opacity:.92}
.emergency-strip .btn-white{font-size:1.05rem}

/* ---------- Community page ---------- */
.charity-strip{padding:48px 0 60px;background:#fff}
.charity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.charity-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:22px;text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;border-top:4px solid var(--red)}
.charity-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.charity-img{aspect-ratio:3/2;overflow:hidden;border-radius:8px;background:#f0f0f0;margin-bottom:16px}
.charity-img img{width:100%;height:100%;object-fit:contain;display:block;padding:14px}
.charity-card h3{margin:0 0 10px;color:#0a0a0a;font-size:1.18rem}
.charity-card p{color:#444;font-size:.93rem;line-height:1.6;margin:0 0 14px}
.charity-link{color:var(--red);font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--red);padding-bottom:2px}
.charity-link:hover{color:var(--red-2);border-color:var(--red-2)}
@media (max-width:880px){.charity-grid{grid-template-columns:1fr;gap:18px}}

.charity-testimonial{padding:56px 24px;background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);color:#fff;border-top:4px solid var(--red)}
.charity-testimonial blockquote{max-width:780px;margin:0 auto;text-align:center;font-style:italic;font-size:1.25rem;line-height:1.6;color:#fff;position:relative}
.charity-testimonial .quote-mark{font-family:Georgia,serif;font-size:5rem;line-height:.5;color:var(--red);margin:0 0 -10px;font-style:normal}
.charity-testimonial blockquote p:nth-child(2){margin:0 0 16px;color:#e5e5e5}
.charity-testimonial footer{color:var(--red);font-weight:700;font-size:1rem;font-style:normal;letter-spacing:.6px}

/* Service-areas pill row inside hub */
.hub-areas{background:var(--black);color:#fff;padding:48px 0;border-radius:8px;margin-top:18px}
.hub-areas-inner{max-width:1080px;margin:0 auto;padding:0 24px;text-align:center}
.hub-areas h2{color:#fff;margin:0 0 10px}
.hub-areas p{color:#bbb;margin:0 0 22px}
.hub-areas-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.hub-areas-pills a{display:inline-block;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:#fff;padding:9px 18px;border-radius:50px;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s}
.hub-areas-pills a:hover{background:var(--red);border-color:var(--red);color:#fff}

/* Process strip on hub */
.hub-process{padding:60px 0;background:#f7f7f7}
.hub-process h2{text-align:center;margin:0 0 32px}
.hub-process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1100px;margin:0 auto}
.hub-step{background:#fff;border:1px solid var(--border);border-radius:6px;padding:24px;text-align:center;box-shadow:var(--shadow-sm)}
.hub-step .num{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--red);color:#fff;font-weight:900;font-size:1.2rem;margin-bottom:14px}
.hub-step h4{margin:0 0 8px;color:#111;font-size:1.05rem}
.hub-step p{margin:0;font-size:.9rem;color:#555}
@media (max-width:900px){.hub-process-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.hub-process-grid{grid-template-columns:1fr}}
.bg-flame{background-image:radial-gradient(circle at 20% 80%,rgba(204,0,0,.18),transparent 60%),radial-gradient(circle at 90% 10%,rgba(204,0,0,.10),transparent 55%)}
