/* ============================================================
   THEME 48 — SIGNAL YELLOW — F4 waterdamagerestorationfairfaxva.online
   Path B selector overrides (Plumco style.css has no CSS variables).
   Loaded LAST. Never edit style.css directly.
   AA: yellow (#FACC15) backgrounds always pair with #111111 text.
   ============================================================ */
:root {
  --primary: #111111;
  --primary-dark: #000000;
  --primary-light: #2A2A2A;
  --accent: #FACC15;
  --accent-hover: #EAB308;
  --accent-text: #111111;
  --body-text: #3a3f4c;
  --surface: #f7f7f5;
}

/* ---- global type + links ---- */
body { color: var(--body-text); }
h1, h2, h3, h4, h5, h6,
.wpo-section-title h2 { color: var(--primary); }
a { color: var(--primary); }
a:hover, a:focus { color: var(--accent-hover); }

/* ---- buttons: template blue -> Signal yellow ---- */
.theme-btn, .btn.theme-btn, .view-cart-btn {
  background: var(--accent);
  color: var(--accent-text);
  border: none;
  font-weight: 700;
}
.theme-btn:hover, .btn.theme-btn:hover, .theme-btn:focus {
  background: var(--primary);
  color: #ffffff;
}

/* ---- topbar + header ---- */
.topbar { background: var(--primary-dark); }
.topbar .contact-intro ul li,
.topbar .contact-info ul li a { color: #ffffff; }
.topbar .contact-info ul li a:hover { color: var(--accent); }
.topbar i { color: var(--accent); margin-right: 6px; }
.wpo-site-header { background: #ffffff; }
.wpo-site-header .navigation-holder .nav > li > a { color: var(--primary); }
.wpo-site-header .navigation-holder .nav > li > a:hover,
.wpo-site-header .navigation-holder .nav > li > a.active { color: var(--accent-hover); }
.wpo-site-header .navigation-holder .nav .sub-menu { border-top: 3px solid var(--accent); }
.navbar-brand.brand-text {
  font-family: "Manrope", sans-serif;
  font-weight: 800;
  font-size: 22px;
  color: var(--primary);
  letter-spacing: -0.5px;
}
.navbar-brand.brand-text:hover { color: var(--primary); }
.header-call-btn { white-space: nowrap; }

/* ---- hero ---- */
.wpo-hero-section-1 { background: var(--surface); }
.wpo-hero-section-1 .wpo-hero-subtitle span {
  background: var(--primary);
  color: var(--accent);
  padding: 8px 16px;
  display: inline-block;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.4px;
}
.wpo-hero-section-1 .wpo-hero-title h1,
.wpo-hero-section-1 .wpo-hero-title h2 { color: var(--primary); }
.wpo-hero-section-1 .wpo-hero-title h1 span,
.wpo-hero-section-1 .wpo-hero-title h2 span { color: var(--accent-hover); }

/* ---- trust bar ---- */
.trust-bar { background: var(--primary); padding: 22px 0; }
.trust-bar .wpo-features-item .wpo-features-text h4 {
  color: #ffffff; font-size: 15px; margin: 0; font-weight: 600;
}
.trust-bar .wpo-features-item { display: flex; align-items: center; justify-content: center; padding: 8px 0; }

/* ---- 4-step strip ---- */
.four-step-strip { background: var(--accent); padding: 34px 0; }
.four-step-strip .wpo-work-item { display: flex; align-items: center; gap: 14px; padding: 10px 0; }
.four-step-strip .step-num {
  background: var(--primary); color: var(--accent);
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 20px; flex: 0 0 44px;
}
.four-step-strip .wpo-work-text h2,
.four-step-strip .wpo-work-text h2 a {
  color: var(--accent-text); font-size: 18px; margin: 0; font-weight: 700;
}

/* ---- stat band (compliant) ---- */
.stat-band { background: var(--primary); padding: 56px 0; }
.stat-band .stat-item { text-align: center; padding: 12px; }
.stat-band .stat-item h3 { color: var(--accent); font-size: 40px; font-weight: 800; margin-bottom: 6px; }
.stat-band .stat-item p { color: #d9d9d9; margin: 0; font-size: 15px; }

/* ---- service cards ---- */
.wpo-service-item .wpo-service-text h2 a { color: var(--primary); }
.wpo-service-item .wpo-service-text h2 a:hover { color: var(--accent-hover); }
.wpo-service-item .wpo-service-img { aspect-ratio: 10 / 7; overflow: hidden; background: var(--surface); }
.wpo-service-item .wpo-service-img img { width: 100%; height: 100%; object-fit: cover; }

/* ---- page title band ---- */
.wpo-page-title { background: var(--primary); }
.wpo-page-title .wpo-breadcumb-wrap h1,
.wpo-page-title .wpo-breadcumb-wrap h2 { color: #ffffff; }
.wpo-page-title .wpo-breadcumb-wrap ol li,
.wpo-page-title .wpo-breadcumb-wrap ol li a { color: #e5e5e5; }
.wpo-page-title .wpo-breadcumb-wrap ol li a:hover { color: var(--accent); }

/* ---- service sidebar ---- */
.sidebar-call-card {
  background: var(--primary); color: #ffffff;
  padding: 28px 24px; margin-bottom: 28px;
}
.sidebar-call-card h3 { color: var(--accent); margin-bottom: 10px; }
.sidebar-call-card p { color: #d9d9d9; }
.sidebar-links { background: var(--surface); padding: 24px; margin-bottom: 28px; }
.sidebar-links h3 { font-size: 18px; margin-bottom: 14px; }
.sidebar-links ul { list-style: none; margin: 0; padding: 0; }
.sidebar-links ul li { padding: 6px 0; border-bottom: 1px solid #e8e8e4; }
.sidebar-links ul li:last-child { border-bottom: none; }
.sidebar-links ul li a { color: var(--body-text); font-size: 15px; }
.sidebar-links ul li a:hover { color: var(--accent-hover); }

/* ---- CTA blocks ---- */
.service-cta-block {
  background: var(--surface); border-left: 5px solid var(--accent);
  padding: 30px 28px; margin-top: 36px;
}
.call-cta { background: var(--primary); }
.call-cta h2 { color: #ffffff; }
.call-cta p { color: #d9d9d9; }
.cta-tel { font-size: 20px; padding: 16px 34px; }

/* ---- location chassis ---- */
.location-map-band { background: var(--surface); padding: 60px 0; }
.location-map-band .map-embed iframe { width: 100%; height: 340px; border: 0; display: block; }
.location-facts h2 { margin-bottom: 16px; }
.loc-service-chip {
  display: block; background: var(--surface); color: var(--primary);
  padding: 14px 16px; margin-bottom: 14px; font-weight: 600;
  border-left: 4px solid var(--accent); font-size: 15px;
}
.loc-service-chip:hover { background: var(--accent); color: var(--accent-text); }
.location-services-strip { padding: 60px 0; }
.location-services-strip h2 { margin-bottom: 28px; }

/* ---- footer ---- */
.wpo-site-footer .wpo-upper-footer { background: var(--primary-dark); }
.wpo-site-footer .widget-title h3, .footer-brand {
  color: #ffffff; font-family: "Manrope", sans-serif; font-weight: 800; font-size: 20px;
}
.wpo-site-footer p, .wpo-site-footer .widget ul li a { color: #c9c9c9; }
.wpo-site-footer .widget ul li a:hover { color: var(--accent); }
.footer-tel { color: var(--accent) !important; font-weight: 700; font-size: 18px; }
.wpo-lower-footer { background: #000000; padding: 22px 0; }
.wpo-lower-footer .ftc-disclaimer { color: #a5a5a5; font-size: 13px; line-height: 1.6; margin-bottom: 10px; }
.wpo-lower-footer .copyright { color: #8a8a8a; font-size: 13px; margin: 0; }

/* ---- sticky call bar ---- */
.sticky-call-bar {
  display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 999;
  background: var(--accent); color: var(--accent-text);
  text-align: center; padding: 15px 10px;
  font-weight: 800; font-size: 17px;
  box-shadow: 0 -3px 12px rgba(0,0,0,0.25);
}
.sticky-call-bar:hover { color: var(--accent-text); }
@media (max-width: 991px) {
  .sticky-call-bar { display: block; }
  body { padding-bottom: 56px; }
}

/* ---- misc compliance/cleanup ---- */
.preloader { display: none !important; }
.error-404 .error-code { font-size: 110px; font-weight: 800; color: var(--accent); line-height: 1; }
.standard-page h2, .home-intro h2, .location-body h2 { margin-top: 28px; margin-bottom: 14px; }
.wpo-p-details-section h2 { margin-top: 26px; margin-bottom: 14px; }
.accordion-button:not(.collapsed) { background: var(--accent); color: var(--accent-text); }
.accordion-button:focus { box-shadow: none; border-color: var(--accent); }

/* ---- detail figures (M-supplied WebP) ---- */
.service-detail-img { margin: 26px 0; }
.service-detail-img img { width: 100%; height: auto; display: block; border-left: 5px solid var(--accent); }

/* ---- blog rich media ---- */
.blog-svg { margin: 26px 0; }
.blog-svg svg { width: 100%; height: auto; display: block; border: 1px solid #e6e6e0; }
.blog-svg figcaption, .blog-table caption { font-size: 14px; color: #555; padding: 8px 2px; text-align: left; caption-side: bottom; }
.blog-table-wrap { overflow-x: auto; margin: 26px 0; }
.blog-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.blog-table th { background: #111111; color: #FACC15; text-align: left; padding: 10px 12px; }
.blog-table td { border: 1px solid #e6e6e0; padding: 10px 12px; vertical-align: top; }
.blog-table tr:nth-child(even) td { background: #faf9f6; }
