/*
Theme Name: Bootscore
Theme URI: https://bootscore.me/
Author: Bootscore
Author URI: https://bootscore.me
Description: Flexible Bootstrap WordPress starter-theme for developers with full WooCommerce support. <a href="https://bootscore.me/category/documentation/" target="_blank">Documentation</a>
Version: 6.3.0
Requires at least: 5.0
Tested up to: 6.8
Requires PHP: 7.4
License: MIT License
License URI: https://github.com/bootscore/bootscore/blob/main/LICENSE
Text Domain: bootscore
Tags: featured-images, threaded-comments, translation-ready

Use this theme to make something cool, have fun, and share what you've learned with others.

Bootscore is based on Underscores https://underscores.me/, (C) 2012-2024 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.
*/

/* 
All style editing is done via /assets/scss/_bootscore-custom.scss
*/

/* Kickin Ash global design tokens */
:root {
  /* Brand colors */
  --ka-color-bg: #050507;          /* near-black background */
  --ka-color-surface: #111217;     /* card / section surface */
  --ka-color-primary: #A21212;     /* fire orange primary */
  --ka-color-primary-soft: #F73718;/* softer fire accent */
  --ka-color-accent: #F9C73F;      /* warm accent highlight */
  --ka-color-text: #f9fafb;        /* main text on dark */
  --ka-color-muted: #b7b8b9;       /* muted / secondary text */

  /* UI tokens */
  --ka-color-border-subtle: rgba(255, 255, 255, 0.06);
  --ka-color-topbar-bg: #000000;

  /* Link decoration */
  --ka-link-underline: rgba(255, 107, 53, 0.6);
  --ka-link-underline-hover: rgba(255, 159, 95, 0.9);

  /* Button foreground on primary backgrounds */
  --ka-color-on-primary-strong: #0b0b0b;
  --ka-color-on-primary: #050507;

  /* Semantic tokens */
  --ka-color-success: #22c55e;
  --ka-color-warning: #facc15;
  --ka-color-danger: #ef4444;

  /* Typography */
  --ka-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ka-font-heading: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
  font-family: var(--ka-font-sans);
  color: var(--ka-color-text);
  background-color: var(--ka-color-bg);
}

/* Remove extra bottom padding on main so final CTA can sit flush with footer */
.site-main {
  padding-bottom: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ka-font-heading);
  color: var(--ka-color-accent);
  font-weight: 700;
}

/* Muted text readability on dark backgrounds */
.text-muted,
.small.text-muted {
  color: var(--ka-color-muted) !important;
}

/* Review card meta line (e.g. reviewer name + source) */
.card p.mb-0.small.text-muted.mt-auto {
  color: #ffffff !important;
  font-size: 0.9rem;
  font-weight: 500;
}

/* Emergency service notice below hero */
.page-template-page-full-width-image p.small.text-muted.mb-3 {
  color: #ffffff !important;
  font-size: 0.95rem;
  font-weight: 500;
}

/* Service guarantees line in services section */
p.small.text-muted.mt-2 {
  color: var(--ka-color-text) !important;
  font-size: 0.95rem;
  font-weight: 500;
}

/* Remove stray empty paragraphs that WordPress injects between sections */
.entry-content > p:empty {
  margin: 0;
  padding: 0;
  display: none;
}

/* Services grid: hide bare paragraphs directly inside the grid columns
   (WordPress sometimes injects <p>&nbsp;</p> here, which shows as blank boxes) */
.services-grid-section .row > [class^="col"] > p:not([class]) {
  margin: 0;
  padding: 0;
  display: none;
}

/* Content lists: replace default bullets with checkmarks (SEO-safe, semantic HTML) */
.entry-content ul {
  list-style: none;
  padding-left: 0;
}

.entry-content ul li {
  position: relative;
  padding-left: 1.5rem;
}

.entry-content ul li::before {
  content: "\2713"; /* checkmark character */
  position: absolute;
  left: 0;
  top: 0.1em;
  color: var(--ka-color-accent);
  font-weight: 700;
}

/* Nearby communities span in hero/service area text */
span.text-muted.ms-1 {
  color: var(--ka-color-text) !important;
}

/* Card styling for dark theme (used by services section) */
.card {
  background-color: var(--ka-color-surface);
  border: 1px solid var(--ka-color-border-subtle);
  color: var(--ka-color-text);
}

.card-title {
  color: var(--ka-color-accent);
}

.card-text,
.card ul li {
  color: var(--ka-color-text);
}

/* Glow effect for review cards in reviews section */
.reviews-section .card {
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.8),
    0 0 36px rgba(249, 199, 63, 0.55); /* stronger glow based on --ka-color-accent */
  transition: box-shadow 0.2s ease-out, transform 0.2s ease-out;
}

.reviews-section .card:hover,
.reviews-section .card:focus-within {
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.9),
    0 0 48px rgba(249, 199, 63, 0.75);
  transform: translateY(-2px);
}

/* Review stars (Font Awesome) used in review cards */
.card .fa-star {
  margin-right: 0.15rem;
  vertical-align: middle;
}

/* Keep review star rows horizontal even if editor injects <br> tags */
.card p.mb-1.text-warning {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
}

.card p.mb-1.text-warning br {
  display: none;
}

/* Badge styling (used in Service Area strip) */
.badge {
  font-family: var(--ka-font-sans);
}

.badge.text-bg-primary,
.badge.bg-primary {
  background-color: var(--ka-color-primary-soft) !important;
  color: var(--ka-color-on-primary-strong) !important;
}

.badge.text-bg-primary:hover,
.badge.text-bg-primary:focus,
.badge.bg-primary:hover,
.badge.bg-primary:focus {
  background-color: var(--ka-color-primary) !important;
  color: var(--ka-color-on-primary) !important;
}

/* Service area buttons: add location icon and remove underline */
.service-area-section .badge {
  position: relative;
  padding-left: 1.5rem; /* space for icon */
  text-decoration: none;

  /* Make badge a pill with centered text so stray <br>s don't affect vertical alignment */
  display: inline-flex;
  align-items: center;
  line-height: 1.2;
}

/* Hide editor-inserted <br> tags inside service area badges (they break pills onto multiple lines) */
.service-area-section .badge br {
  display: none;
}

/* Also hide stray <br> tags between badges and in the nearby-communities span */
.service-area-section .d-flex.flex-wrap.gap-2 > br,
.service-area-section span.text-muted.ms-1 br {
  display: none;
}

.service-area-section .badge::before {
  content: "\f3c5"; /* Font Awesome map-marker-alt / location-dot */
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  position: absolute;
  left: 0.6rem;
  top: 50%;
  transform: translateY(-50%);
}

.service-area-section .badge:hover,
.service-area-section .badge:focus {
  text-decoration: none;
}

/* Service area strip full-width background */
.service-area-section {
  /* Full-bleed trick inside a constrained container */
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 991.98px) {
  body[class*="page-template-page-blank"] {
    overflow-x: hidden;
  }

  body[class*="page-template-page-blank"] .service-area-section,
  body[class*="page-template-page-blank"] .final-cta-section,
  body[class*="page-template-page-blank"] .reviews-section,
  body[class*="page-template-page-blank"] .services-grid-section {
    width: 100%;
    margin-left: 0;
    transform: none;
  }
}

.service-area-section > .container {
  /* Keep inner content aligned with other containers */
  max-width: 1320px; /* same as reviews/final-cta */
}

/* Header / navbar brand styling */
.site-header,
#masthead {
  background-color: var(--ka-color-surface);
}

.site-header {
  border-bottom: 1px solid var(--ka-color-primary);
}

/* Constrain navbar logo size for SEO/performance and mobile */
.navbar-brand img {
  max-height: 68px; /* larger than original, but keeps navbar from getting too tall */
  height: auto;
  width: auto;
}

@media (min-width: 992px) {
  /* Desktop: allow a slightly larger logo without overwhelming the navbar */
  .navbar-brand img {
    max-height: 96px;
  }
}

/* Main nav bar background (desktop) */
#nav-main.navbar {
  background-color: var(--ka-color-surface);
}

/* Tighten vertical spacing inside the header container to keep navbar height in check */
#masthead #nav-main .container {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

/* Offcanvas mobile nav background */
#offcanvas-navbar.offcanvas {
  background-color: var(--ka-color-surface);
  color: var(--ka-color-text);
}

/* Make the offcanvas mobile menu close X white for visibility on dark background */
#offcanvas-navbar .btn-close {
  filter: invert(1);
  opacity: 1;
}

/* Navbar link weight and vertical spacing */
.navbar .nav-link {
  font-weight: 600;
  font-size: 1.05rem;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

@media (min-width: 992px) {
  /* Desktop: slightly larger nav text to match larger logo */
  .navbar .nav-link {
    font-size: 1.18rem;
  }
}

/* Top bar above navbar (Bootscore top-bar widget area) */
.widget-area.top-bar,
#top-bar,
.top-bar {
  background-color: var(--ka-color-topbar-bg);
  color: var(--ka-color-text);
  font-size: 0.875rem;
}

.widget-area.top-bar a,
#top-bar a,
.top-bar a {
  color: var(--ka-color-primary-soft);
  text-decoration: none;
}

.widget-area.top-bar a:hover,
.widget-area.top-bar a:focus,
#top-bar a:hover,
#top-bar a:focus,
.top-bar a:hover,
.top-bar a:focus {
  color: var(--ka-color-primary);
}

/* Top bar specific button tweaks for readability on dark background */
.widget-area.top-bar .btn-primary,
#top-bar .btn-primary,
.top-bar .btn-primary {
  background-color: var(--ka-color-primary-soft);
  border-color: var(--ka-color-primary-soft);
  color: var(--ka-color-on-primary-strong);
  font-weight: 600;
}

.widget-area.top-bar .btn-primary:hover,
.widget-area.top-bar .btn-primary:focus,
.widget-area.top-bar .btn-primary:active,
#top-bar .btn-primary:hover,
#top-bar .btn-primary:focus,
#top-bar .btn-primary:active,
.top-bar .btn-primary:hover,
.top-bar .btn-primary:focus,
.top-bar .btn-primary:active {
  background-color: var(--ka-color-primary);
  border-color: var(--ka-color-primary);
  color: var(--ka-color-on-primary);
}

.widget-area.top-bar .btn-outline-primary,
#top-bar .btn-outline-primary,
.top-bar .btn-outline-primary {
  color: var(--ka-color-primary-soft);
  border-color: var(--ka-color-primary-soft);
  font-weight: 600;
}

.widget-area.top-bar .btn-outline-primary:hover,
.widget-area.top-bar .btn-outline-primary:focus,
.widget-area.top-bar .btn-outline-primary:active,
#top-bar .btn-outline-primary:hover,
#top-bar .btn-outline-primary:focus,
#top-bar .btn-outline-primary:active,
.top-bar .btn-outline-primary:hover,
.top-bar .btn-outline-primary:focus,
.top-bar .btn-outline-primary:active {
  color: var(--ka-color-on-primary);
  background-color: var(--ka-color-primary-soft);
  border-color: var(--ka-color-primary-soft);
}

.widget-area.top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.35rem 1rem;
}

/* Top bar address: mobile toggle behavior */
@media (max-width: 767.98px) {
  .top-bar-address-link {
    display: none;
  }

  .top-bar-address.is-open .top-bar-address-link {
    display: inline;
  }
}

@media (min-width: 768px) {
  .top-bar-address-link {
    display: inline;
  }
}

/* Top bar location icon color (all breakpoints) */
.top-bar-address-toggle {
  color: var(--ka-color-primary-soft);
}

/* Mobile: make top bar sticky at top, let main navbar scroll */
@media (max-width: 767.98px) {
  /* Top bar sticks to top */
  .widget-area.top-bar,
  #top-bar,
  .top-bar {
    position: sticky;
    top: 0;
    z-index: 1; /* keep it above content but below offcanvas menu */
  }

  /* Disable sticky behavior of main header/nav on small screens */
  body .site-header.sticky-top {
    position: static !important;
  }
}

/* Make sure offcanvas navbar always appears above sticky top bar on mobile */
#offcanvas-navbar.offcanvas {
  z-index: 1050;
}

/* Brand-mapped components */
a {
  color: var(--ka-color-primary);
  text-decoration-color: var(--ka-link-underline);
}

a:hover,
a:focus {
  color: var(--ka-color-primary-soft);
  text-decoration-color: var(--ka-link-underline-hover);
}

.btn-primary {
  background-color: var(--ka-color-primary-soft);
  border-color: var(--ka-color-primary-soft);
  color: var(--ka-color-on-primary-strong);
  font-weight: 600;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--ka-color-primary);
  border-color: var(--ka-color-primary);
  color: var(--ka-color-on-primary);
}

.btn-outline-primary {
  color: var(--ka-color-primary-soft);
  border-color: var(--ka-color-primary-soft);
  font-weight: 600;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
  color: var(--ka-color-on-primary);
  background-color: var(--ka-color-primary-soft);
  border-color: var(--ka-color-primary-soft);
}

/* Tweak small button sizing so label is visually centered */
.btn-sm {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  line-height: 1.2;
}

/* Mobile menu (hamburger) button sizing */
@media (max-width: 991.98px) {
  .nav-toggler.btn {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    font-size: 1.05rem;
  }

  .nav-toggler.btn i {
    font-size: 1.1em;
  }
}

/* Desktop: slightly larger buttons in hero and request-service sections */
@media (min-width: 992px) {
  .page-template-page-full-width-image .btn-sm {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    padding-left: 1.1rem;
    padding-right: 1.1rem;
    font-size: 0.95rem;
  }
}

/* On the Full Width Image page, use flexbox for buttons to keep labels vertically centered
   even if the editor injects extra whitespace or line breaks inside the <a> tag. */
.page-template-page-full-width-image .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}

/* Final homepage CTA section full-width background */
.final-cta-section {
  background: linear-gradient(135deg, var(--ka-color-surface), #000000);
  border-top: 1px solid var(--ka-color-border-subtle);

  /* Full-bleed trick inside a constrained container */
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);

  /* Balanced vertical spacing top and bottom */
  padding-bottom: 3rem !important;  /* match Bootstrap py-5 bottom padding */
  margin-bottom: 0;                 /* no pull into footer */
}

.final-cta-section > .container {
  /* Keep inner content aligned with other containers */
  max-width: 1320px; /* same value you used for reviews-section */
}

.final-cta-section h2 {
  color: var(--ka-color-accent);
}

.final-cta-section p {
  color: var(--ka-color-text);
}

.nav-link {
  color: var(--ka-color-muted);
}

.nav-link:hover,
.nav-link:focus {
  color: var(--ka-color-primary-soft);
}

.nav-link.active,
.nav-link.show,
.current-menu-item > .nav-link {
  color: var(--ka-color-primary);
}

/* Header main nav links: ensure good contrast on dark navbar */
.site-header .nav-link {
  color: var(--ka-color-text);
}

.site-header .nav-link:hover,
.site-header .nav-link:focus {
  color: var(--ka-color-primary-soft);
}

.site-header .nav-link.active,
.site-header .nav-link.show,
.site-header .current-menu-item > .nav-link {
  color: var(--ka-color-accent);
}

/* Header dropdowns: make submenu items match main menu typography/colors */
.site-header .dropdown-menu {
  background-color: var(--ka-color-surface);
  border: 1px solid var(--ka-color-border-subtle);
}

.site-header .dropdown-menu .dropdown-item {
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--ka-color-text);
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

@media (min-width: 992px) {
  .site-header .dropdown-menu .dropdown-item {
    font-size: 1.18rem;
  }
}

.site-header .dropdown-menu .dropdown-item:hover,
.site-header .dropdown-menu .dropdown-item:focus {
  color: var(--ka-color-primary-soft);
  background-color: transparent;
}

.site-header .dropdown-menu .dropdown-item.active,
.site-header .dropdown-menu .dropdown-item:active {
  color: var(--ka-color-accent);
  background-color: transparent;
}

/* Separate submenu toggle button (injected by navwalker):
   - Mobile/offcanvas: clear tap target
   - Desktop: hidden (hover opens submenu)
*/
.site-header .navbar-nav .nav-item {
  position: relative;
}

.site-header .navbar-nav .bs-submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0.25rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--ka-color-border-subtle);
  border-radius: 0.5rem;
  background-color: transparent;
  color: var(--ka-color-text);
}

.site-header .navbar-nav .bs-submenu-toggle:hover,
.site-header .navbar-nav .bs-submenu-toggle:focus {
  border-color: var(--ka-color-primary-soft);
  color: var(--ka-color-primary-soft);
}

@media (max-width: 991.98px) {
  #offcanvas-navbar .navbar-nav .nav-item.dropdown {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }

  #offcanvas-navbar .navbar-nav .nav-item.dropdown > a.nav-link {
    flex: 1 1 auto;
    min-width: 0;
  }

  #offcanvas-navbar .navbar-nav .nav-item.dropdown > .bs-submenu-toggle {
    margin-left: auto;
    flex: 0 0 auto;
  }

  #offcanvas-navbar .navbar-nav .nav-item.dropdown > .dropdown-menu {
    flex: 0 0 100%;
    width: 100%;
  }
}

@media (min-width: 992px) {
  .site-header .navbar-nav .bs-submenu-toggle {
    display: none;
  }
}

/* Footer main background and text colors (dark bg, primary text) */
.bootscore-footer-columns,
.bootscore-footer-info {
	background-color: var(--ka-color-bg);
	color: var(--ka-color-primary);
}

/* Remove extra top spacing before footer/comments area */
.entry-footer,
#comments {
  margin-top: 0;
  padding-top: 0;
}

/* Footer headings */
.bootscore-footer .widget-title,
.bootscore-footer h2,
.bootscore-footer h3,
.bootscore-footer h4 {
	font-family: var(--ka-font-heading);
	color: var(--ka-color-primary-soft);
	font-weight: 600;
}

/* Make footer menu section titles white to match other key footer text */
.bootscore-footer .footer-menu-heading {
	color: var(--ka-color-text);
}

/* Footer links */
.bootscore-footer a {
	color: var(--ka-color-primary-soft);
	text-decoration: none;
}

.bootscore-footer a:hover,
.bootscore-footer a:focus {
	color: var(--ka-color-accent);
	text-decoration: underline;
}

.bootscore-footer-info {
  border-top: 1px solid var(--ka-color-border-subtle);
}

/* Footer menu nav links: align with new primary-on-dark scheme */
.bootscore-footer .nav-link {
	color: var(--ka-color-primary-soft) !important;
	font-weight: 600;
	padding-top: 0.1rem;
	padding-bottom: 0.1rem;
	padding-left: 0.75rem;
	padding-right: 0.75rem;
}

.bootscore-footer .nav-link:hover,
.bootscore-footer .nav-link:focus {
	color: var(--ka-color-accent) !important;
	text-decoration: underline;
}

/* Footer specific spacing and icon styling */
.bootscore-footer-columns {
  padding-top: 1.5rem;
  padding-bottom: 2.5rem;
}

/* Footer menu columns: stack links vertically and align them consistently */
.bootscore-footer-columns .row > div:nth-child(2) .nav,
.bootscore-footer-columns .row > div:nth-child(3) .nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
}

/* Give the first footer menu column (Services) a touch more left inset */
.bootscore-footer-columns .row > div:nth-child(2) .nav {
	padding-left: 1rem;
}

/* Footer brand and contact text */
.footer-brand p,
.footer-contact p {
	color: var(--ka-color-text);
	font-size: 0.95rem;
	font-weight: 500;
}

/* Footer contact muted line (service areas) */
.footer-contact p.text-muted {
	color: var(--ka-color-text);
}

.footer-contact i {
  color: var(--ka-color-primary-soft);
}

.footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background-color: var(--ka-color-surface);
  color: var(--ka-color-primary-soft);
  margin-right: 0.35rem;
}

.footer-social a:hover,
.footer-social a:focus {
  background-color: var(--ka-color-primary);
  color: var(--ka-color-on-primary-strong);
}

.height-50 {
  height: 50vh;
}

.height-75 {
  height: 55vh;
}

.height-85 {
  height: 85vh;
}

.height-100 {
  height: 100vh;
}

/* Full-width hero image for Bootscore "Full Width Image" templates */
.featured-full-width-img {
  position: relative;
  overflow: hidden;
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
  background-size: cover;
  background-position: center;
}

.featured-full-width-img__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Optional: tweak spacing below hero on the page template */
.page-template-page-full-width-image .featured-full-width-img {
  padding-top: 72px; /* offset sticky navbar height while keeping background visible */
  margin-bottom: 0;
}

/* Hero title pill on Full Width Image template */
.page-template-page-full-width-image h1.entry-title {
  display: inline-block;
  padding: 0.45rem 1.1rem;
  border-radius: 999px;
  background-color: var(--ka-color-primary);
  color: var(--ka-color-text);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.85);
}

/* Mobile: make full-width hero image more like a YouTube thumbnail */
@media (max-width: 767.98px) {
  .page-template-page-full-width-image .featured-full-width-img {
    position: relative;
    overflow: hidden;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    height: 200px !important;  /* override inline height set by JS on .height-75 */
    padding-top: 0;
    margin-bottom: 0;
  }

  .page-template-page-full-width-image .featured-full-width-img::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: inherit;
    background-size: cover;
    background-position: center;
    filter: none;
    transform: none;
    opacity: 0;
    z-index: 0;
  }

  .page-template-page-full-width-image .featured-full-width-img > * {
    position: relative;
    z-index: 1;
  }
}

/* Mobile: reduce H1 sizes (including page titles) */
@media (max-width: 767.98px) {
  h1,
  .h1 {
    font-size: clamp(1.3rem, 5vw, 1.6rem);
    line-height: 1.15;
  }
}

/* Desktop: also make hero more like a cinematic strip instead of super tall */
@media (min-width: 992px) {
  .page-template-page-full-width-image .featured-full-width-img {
    height: auto;              /* override height-75 */
    padding-top: 32vw;         /* shorter 16:9-ish strip on wide screens */
    margin-bottom: 0;
  }
}

/* Remove extra bottom padding on content wrapper so final CTA can meet footer */
.container.pb-5 {
  padding-bottom: 0;
}

/* Desktop: on Full Width Image template, make header non-sticky so hero starts directly below it */
@media (min-width: 992px) {
  body.page-template-page-full-width-image #masthead {
    position: static !important;
  }
  .page-template-page-full-width-image .featured-full-width-img {
    padding-top: 22vw;         /* shorter hero strip on wide screens */
    background-position: top center;
  }
}
/* Reviews section full-width background */
.reviews-section {
  background-color: var(--ka-color-primary);
  /* Full-bleed trick inside a constrained container */
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
}

.reviews-section > .container {
  /* Keep inner content aligned with other containers */
  max-width: 1320px; /* or whatever Bootscore uses as container max-width */
}

/* Hero services icon grid under the full-width hero */
.hero-services-grid {
  background-color: var(--ka-color-surface);
  border-bottom: 1px solid var(--ka-color-border-subtle);
  padding-top: 0.5rem; /* reduce gap under hero image */
}


.hero-service-item {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--ka-color-text);
  text-decoration: none;
}

.hero-service-icon {
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.4rem;
  background-color: var(--ka-color-primary-soft);
  color: var(--ka-color-on-primary-strong);
  font-size: 1.4rem;
}

.hero-service-icon img {
  width: 1.6rem;
  height: 1.6rem;
  display: block;
}

.hero-service-item p {
  font-size: 0.95rem;
  font-weight: 600;
}

@media (min-width: 992px) {
  .hero-services-grid {
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
  }

  .hero-service-icon {
    width: 3.75rem;
    height: 3.75rem;
    margin-bottom: 0.55rem;
  }

  .hero-service-icon img {
    width: 2.05rem;
    height: 2.05rem;
  }

  .hero-service-item p {
    font-size: 1.05rem;
  }
}
/* Additional services grid */
.services-grid-section {
  background-color: var(--ka-color-surface);

  /* Full-bleed trick inside a constrained container */
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
}

.services-grid-section > .container {
  /* Keep inner content aligned with other containers */
  max-width: 1320px;
}

.service-grid-item {
  background-color: var(--ka-color-bg);
  border-radius: 0.75rem;
  /* Slightly less padding on top, a bit more on bottom for visual centering */
  padding: 0.9rem 1.5rem 1.6rem;
  text-decoration: none;
  border: 1px solid var(--ka-color-border-subtle);
  color: var(--ka-color-text);
  transition: border-color 0.15s ease-out, box-shadow 0.15s ease-out, transform 0.15s ease-out;

  /* Center content within each service box */
  text-align: center;
}

.service-grid-item h3 {
  color: var(--ka-color-accent);
  font-family: var(--ka-font-heading);
  font-weight: 600;
}

.service-grid-item p {
  font-family: var(--ka-font-sans);
  color: var(--ka-color-text);
}

.service-grid-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.5rem;
  margin-left: auto;
  margin-right: auto;
  background-color: var(--ka-color-primary-soft);
  color: var(--ka-color-on-primary-strong);
}

.service-grid-item:hover,
.service-grid-item:focus {
  border-color: var(--ka-color-primary-soft);
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.45);
  transform: translateY(-2px);
  color: var(--ka-color-text);
}

/* Trust / EEAT and FAQ sections */
.trust-section {
  background-color: var(--ka-color-surface);
}

.faq-section {
  background-color: var(--ka-color-bg);
  border-top: 1px solid var(--ka-color-border-subtle);
}

.faq-section h3 {
  font-family: var(--ka-font-heading);
  color: var(--ka-color-accent);
  margin-bottom: 0.35rem;
  position: relative;
  padding-left: 1.75rem;
}

.faq-section p {
  margin-bottom: 0;
  color: var(--ka-color-text);
}

.faq-section h3::before {
  content: "\f05a";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 0.05em;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ka-color-on-primary-strong);
  background-color: var(--ka-color-primary-soft);
}

.faq-section .col-md-6 {
  background-color: var(--ka-color-surface);
  border-radius: 0.75rem;
  border: 1px solid var(--ka-color-border-subtle);
  padding: 1.1rem 1.35rem;
  margin-bottom: 0;
  transition: background-color 0.15s ease-out, border-color 0.15s ease-out, transform 0.15s ease-out;
}

.faq-section .col-md-6:hover,
.faq-section .col-md-6:focus-within {
  background-color: var(--ka-color-bg);
  border-color: var(--ka-color-primary-soft);
  transform: translateY(-1px);
}