/*
Theme Name: Kickin Ash v1
Theme URI: https://kickinashchimneypros.com/
Author: Kickin Ash Chimney Pros
Author URI: https://kickinashchimneypros.com/
Description: Chimney Sweep & Chimney Repair Services WordPress Theme
Requires at least: 5.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: Kickin Ash

/* Kickin Ash global design tokens */
:root {
  /* Brand colors */
  --ka-color-bg: #f5f3f0;          /* warm off-white background */
  --ka-color-surface: #ffffff;     /* card / section surface */
  --ka-color-primary: #111111;     /* near-black primary */
  --ka-color-primary-soft: #c9a27a;/* soft wood-tone accent */
  --ka-color-accent: #111111;      /* heading / key text accent */
  --ka-color-text: #222222;        /* main text on light */
  --ka-color-muted: #6c757d;       /* muted / secondary text */

  /* UI tokens */
  --ka-color-border-subtle: rgba(0, 0, 0, 0.08);
  --ka-color-topbar-bg: #111111;

  /* Link decoration */
  --ka-link-underline: rgba(0, 0, 0, 0.35);
  --ka-link-underline-hover: rgba(0, 0, 0, 0.7);

  /* Button foreground on primary backgrounds */
  --ka-color-on-primary-strong: #ffffff;
  --ka-color-on-primary: #f5f3f0;

  /* Semantic tokens */
  --ka-color-success: #15803d;
  --ka-color-warning: #ca8a04;
  --ka-color-danger: #b91c1c;

  /* Typography */
  --ka-font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ka-font-heading: "Playfair Display", "Cormorant Garamond", "Libre Baskerville", 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;
}

/* Give H1s extra weight so main page titles feel like farmhouse signs */
h1 {
  font-weight: 800;
  letter-spacing: 0.02em;
}

/* Page title H1 pill using soft primary color (e.g. main entry titles) */
h1.entry-title {
  display: inline-block;
  padding: 0.4rem 1.1rem;
  border-radius: 999px;
  background-color: var(--ka-color-primary-soft);
  color: var(--ka-color-on-primary-strong);
}

/* Full Width Image template (e.g. homepage): slightly smaller pill title on all screens */
.page-template-page-full-width-image h1.entry-title {
  font-size: 2rem;
}

/* Mobile: further reduce pill title size on Full Width Image template */
@media (max-width: 767.98px) {
  .page-template-page-full-width-image h1.entry-title {
    font-size: 1.2rem;
    padding: 0.3rem 0.9rem;
  }
}

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

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

/* Small muted notice paragraphs on Full Width Image template */
.page-template-page-full-width-image p.small.text-muted.mb-3 {
  color: var(--ka-color-text);
  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);
}

/* Light surface info cards inside dark sections (e.g. Talk to a Carpenter box) */
.p-4.rounded[style*="var(--ka-color-surface)"] {
  color: var(--ka-color-text) !important;
}

.p-4.rounded[style*="var(--ka-color-surface)"] h3,
.p-4.rounded[style*="var(--ka-color-surface)"] p,
.p-4.rounded[style*="var(--ka-color-surface)"] strong,
.p-4.rounded[style*="var(--ka-color-surface)"] .small.text-muted {
  color: var(--ka-color-text) !important;
}

/* 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%);
}

.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; /* mobile / default */
  height: auto;
  width: auto;
}

/* Desktop: larger logo that clearly floats above navbar without making bar much taller */
@media (min-width: 992px) {
  .site-header .navbar-brand img {
    max-height: 150px;
    margin-top: 0;         /* keep top aligned with navbar */
    margin-bottom: -44px;  /* let more of the logo hang down into hero area */
  }

  /* Tighten vertical spacing on desktop nav container to compensate */
  #masthead #nav-main .container {
    padding-top: 0;
    padding-bottom: 0;
  }

  /* Cap navbar height on desktop so it doesnt grow with the logo */
  #masthead #nav-main {
    min-height: 64px;
    height: 64px;
    align-items: center;
  }
}

/* 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: none;
  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;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

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

/* Mobile offcanvas nav submenu toggle (chevron overlays on right, submenu slides down) */
@media (max-width: 991.98px) {
  #bootscore-navbar li.menu-item-has-children {
    position: relative;
  }

  #bootscore-navbar li.menu-item-has-children > a.nav-link {
    display: inline-block;
    width: auto;
    padding-right: 1.5rem; /* still reserve space for chevron toggle, but avoid full-width button look */
  }

  .nav-submenu-toggle {
    position: absolute;
    top: 0.6rem;      /* pin to top of parent row */
    right: 0.75rem;
    transform: none;  /* no vertical shifting when submenu opens */
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ka-color-text);
    box-shadow: none;
  }

  .nav-submenu-toggle i {
    font-size: 0.8rem;
  }

  /* Hide Bootstrap's built-in caret on mobile; we use our own toggle icon */
  #bootscore-navbar .dropdown-toggle::after {
    display: none !important;
  }

  /* Smooth slide-down for mobile submenus */
  #bootscore-navbar .dropdown-menu {
    display: block;          /* allow height animation */
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    transition: max-height 0.25s ease, opacity 0.25s ease, padding 0.25s ease;
  }

  #bootscore-navbar .dropdown-menu.show {
    max-height: 400px;       /* enough for a few items */
    opacity: 1;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }
}

/* 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 dropdown under icon without moving buttons */
@media (max-width: 767.98px) {
  /* Let the top bar sit above the navbar when showing the dropdown */
  .widget-area.top-bar {
    position: relative;
    z-index: 1030;
  }

  /* Address wrapper: relative so text can drop down under the icon */
  .top-bar-address {
    position: relative;
    display: inline-flex;
    align-items: center;
  }

  /* Address text: hidden by default; when open, shows as dropdown under icon */
  .top-bar-address-link {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    margin-left: 0;
    padding: 0.35rem 0.75rem;
    min-width: 70vw;
    max-width: 90vw;
    white-space: normal;
    background-color: var(--ka-color-topbar-bg);
    color: var(--ka-color-on-primary-strong);
    border-radius: 0.25rem;
    z-index: 1040;
  }

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

/* Remove hover highlight from top-bar address dropdown */
.top-bar-address-link:hover,
.top-bar-address-link:focus,
.top-bar-address-link:active {
  color: var(--ka-color-on-primary-strong);
  background-color: var(--ka-color-topbar-bg);
  text-decoration: none;
}

@media (min-width: 768px) {
  .top-bar-address-link {
    display: inline;
    position: static;
    padding: 0;
    background: none;
  }
}

/* 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) {
  /* On mobile, let the top bar scroll normally so the offcanvas menu can fully cover it */
  .widget-area.top-bar,
  #top-bar,
  .top-bar {
    position: static;
    top: auto;
    z-index: auto;
  }

  /* Keep main header/nav non-sticky 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);
}

/* 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);
	font-family: var(--ka-font-heading);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* 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 Romans 8:18 toggle: make the button look like inline text/link */
.footer-verse-toggle {
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

.footer-verse-text {
  margin-left: 0.35rem;
}

/* 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;
}

/* Make footer brand name and Contact label match other footer headings */
.bootscore-footer .footer-brand p.mb-2 strong,
.bootscore-footer .footer-contact p.mb-1 strong {
  font-family: var(--ka-font-heading);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ka-color-text);
}

/* 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);
}

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

/* 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;
}

/* Mobile: make full-width hero image more like a landscape video (shorter height) */
@media (max-width: 767.98px) {
  .page-template-page-full-width-image .featured-full-width-img {
    /* Video-like landscape height without cutting off title/buttons */
    height: auto;              /* override height-75 */
    padding-top: 40vw;         /* slightly shorter than 16:9 */
    margin-bottom: 0;
  }
}

/* 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 */
}

/* Heading and intro text at top of reviews section on dark background */
.reviews-section > .container > .row.mb-4 h2,
.reviews-section > .container > .row.mb-4 p {
  color: #ffffff;
}

/* 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: 4rem;
  height: 4rem;
  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.9rem;
}

.hero-service-item p {
  font-size: 1.05rem;
  font-weight: 600;
}
/* 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);
}

/* Desktop: add extra top spacing for blank page templates so large logo/header
   doesn’t overlap the first content block. Targets both Blank and Blank with
   container templates via their body class pattern. */
@media (min-width: 992px) {
  body[class*="page-blank"] #content.site-content,
  body[class*="page-blank"] .entry-content {
    padding-top: 2rem;
  }
}

/* Desktop: on Blank templates, use the top bar as the sticky element and
   allow the main navbar/header to scroll away with the page content. */
@media (min-width: 992px) {
  /* Disable sticky behavior on the main header for blank templates */
  body[class*="page-template-page-blank"] #masthead {
    position: static !important;
  }

  /* Make the top bar stick to the top instead */
  body[class*="page-template-page-blank"] .widget-area.top-bar,
  body[class*="page-template-page-blank"] #top-bar,
  body[class*="page-template-page-blank"] .top-bar {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
}

/* Desktop: show dropdown menus on hover in main navbar so parent links can
   navigate on click without relying on the dropdown-toggle click behavior. */
@media (min-width: 992px) {
  #bootscore-navbar .dropdown:hover > .dropdown-menu {
    display: block;
  }
}