/*
Theme Name: Bootscore - Hearthside Helpers Edition
Theme URI: https://bootscore.me/
Author: Robur Solutions
Author URI: https://robursolutions.io
Description: Bootscore theme customized for Hearthside Helpers with brand colors and styling. Flexible Bootstrap WordPress starter-theme for developers with full WooCommerce support.
Version: 6.3.0-hh
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

Hearthside Helpers branded edition based on Bootscore.

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

/* Hearthside Helpers v2 global design tokens */
:root {
  /* Standardized heading colors - optimized for dark backgrounds */
  --heading-h1: #ffffff;
  --heading-h2: var(--color-secondary);
  --heading-h3: #FFD866;
  --heading-h4: #ffffff;
  --heading-h5: #ffffff;
  --heading-h6: #e0e0e0;

  /* Brand colors */
  --color-primary: #017DFE;       /* brand primary (brighter blue for contrast) */
  --color-primary-weak: #419dff;  /* lighter primary (blue) */
  --color-secondary: #1E2BA3;     /* brand secondary (lighter blue for readability) */
  --color-link: #7289da;          /* link color - lighter for dark backgrounds */
  --color-accent: #1d5a8b;        /* brand accent from logo */
  --color-azure-dark: #142b34;    /* dark azure from logo */
  --color-warm-100: #e2e0f5;      /* light warm background */
  --color-secondary-weak: #569dc6;/* lighter secondary */

  /* Lighter, friendly blue surfaces for a cozy, helpful brand */
  --color-bg: #1e4668;            /* base background (lighter navy) */
  --color-surface: #2b6391;       /* elevated surface */
  --color-surface-1: #3e7fb3;     /* mid surface */
  --color-surface-2: var(--color-secondary); /* borders/secondary surfaces */

  --color-text: #ffffff;          /* primary text */
  --color-text-inverse: #000000;  /* text on light/primary */
  --color-text-muted: #e0e0e0;    /* muted text */
  --color-neutral-100: #f5e8d7;   /* warm light background */
  --color-neutral-200: #ecd6bb;   /* light orange from logo */

  /* RGB helpers for consistent alphas */
  --color-primary-rgb: 88, 101, 242;   /* matches #5865f2 */
  --color-secondary-rgb: 30, 43, 163;  /* matches #1E2BA3 */
  --color-bg-rgb: 30, 70, 104;    /* #1e4668 */
  --color-surface-rgb: 43, 99, 145;/* #2b6391 */

  /* Highlight color for emphasized headings */
  --h2-bg: #ffd866; /* yellowish-gold highlight */
  --h2-fg: var(--color-secondary); /* blue (secondary) text */
  
  /* Hero section colors */
  --hero-text: #e0e0e0; /* lighter text for hero subhead */
  
  /* Border radius for softer, friendlier appearance */
  --border-radius: 1rem;
  --border-radius-sm: 0.75rem;
  --border-radius-lg: 1.25rem;

  /* Legacy variable mappings for compatibility */
  --ka-color-bg: var(--color-bg);
  --ka-color-surface: var(--color-surface);
  --ka-color-primary: var(--color-primary);
  --ka-color-primary-soft: var(--color-primary-weak);
  --ka-color-accent: #ffd866;      /* use highlight color as accent */
  --ka-color-text: var(--color-text);
  --ka-color-muted: var(--color-text-muted);
  --ka-color-border-subtle: rgba(255, 255, 255, 0.06);
  --ka-color-topbar-bg: #ffd866;
  --ka-color-topbar-text: var(--color-secondary);
  --ka-color-topbar-link: var(--color-secondary);
  --ka-link-underline: rgba(79, 47, 223, 0.6);
  --ka-link-underline-hover: rgba(63, 75, 245, 0.9);
  --ka-color-on-primary-strong: #ffffff;
  --ka-color-on-primary: var(--color-text);
  --ka-color-success: #22c55e;
  --ka-color-warning: #facc15;
  --ka-color-danger: #ef4444;

  /* Typography */
  --ka-font-sans: 'TikTok Sans', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ka-font-heading: 'TikTok Sans', 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);
  font-weight: 600; /* slightly heavier body text for improved legibility */
}

/* 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);
  font-weight: 800;
}

h1 { color: var(--heading-h1); }
h2 { 
  color: var(--h2-fg);
  background: var(--h2-bg);
  display: inline-block;
  padding: 0.15em 0.45em;
  border-radius: var(--border-radius-sm);
  box-shadow: 0 2px 0 rgba(0,0,0,0.06);
}
h3 { color: var(--heading-h3); }
h4 { color: var(--heading-h4); }
h5 { color: var(--heading-h5); }
h6 { color: var(--heading-h6); }

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

/* Hero section text styling */
.hs-hero__subhead {
  color: var(--hero-text) !important;
  font-size: 1.15rem;
  line-height: 1.6;
}

/* Hero benefits pills */
.hero-benefits {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  padding: 0;
  margin: 16px 0;
}

.hero-benefits li {
  background: rgba(0, 0, 0, 0.55);
  border-radius: 999px;
  padding: 6px 14px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: #ffffff;
}

/* Hero footnote text */
.hero-footnote {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 10px;
}

/* Hero CTA buttons - yellow style */
.hs-hero__ctas .btn-light {
  background-color: #ffd866;
  border-color: #ffd866;
  color: var(--color-secondary);
  font-weight: 700;
  padding: 0.65rem 1.5rem;
  font-size: 1rem;
}

.hs-hero__ctas .btn-light:hover,
.hs-hero__ctas .btn-light:focus {
  background-color: #ffb020;
  border-color: #ffb020;
  color: var(--color-primary);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.hs-hero__ctas .btn-outline-light {
  background-color: transparent;
  border: 2px solid #ffd866;
  color: #ffd866;
  font-weight: 700;
  padding: 0.65rem 1.5rem;
  font-size: 1rem;
}

.hs-hero__ctas .btn-outline-light:hover,
.hs-hero__ctas .btn-outline-light:focus {
  background-color: #ffd866;
  border-color: #ffd866;
  color: var(--color-secondary);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

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

/* Override Bootstrap rounded class for more pronounced corners */
.rounded {
  border-radius: var(--border-radius) !important;
}

/* Add rounded corners to tables */
.table {
  border-radius: var(--border-radius);
  overflow: hidden;
}

.table-bordered {
  border-radius: var(--border-radius);
  border-collapse: separate;
  border-spacing: 0;
}

.table-bordered thead tr:first-child th:first-child {
  border-top-left-radius: var(--border-radius);
}

.table-bordered thead tr:first-child th:last-child {
  border-top-right-radius: var(--border-radius);
}

.table-bordered tbody tr:last-child td:first-child {
  border-bottom-left-radius: var(--border-radius);
}

.table-bordered tbody tr:last-child td:last-child {
  border-bottom-right-radius: var(--border-radius);
}

/* Sections with background colors */
section[style*="background-color"] {
  border-radius: var(--border-radius-lg);
  overflow: hidden;
}

/* 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);
  border-radius: var(--border-radius);
}

.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);
  border-radius: var(--border-radius-sm);
}

.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 styling */
.service-area-section .badge {
  padding: 6px 12px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.85rem;
  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: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(--color-secondary);
}

.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(--color-secondary);
}

/* 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(--color-secondary);
  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-topbar-text);
  font-size: 0.875rem;
  font-weight: 600;
}

.widget-area.top-bar a,
#top-bar a,
.top-bar a {
  color: var(--ka-color-topbar-link);
  text-decoration: none;
  font-weight: 600;
}

.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: #ffd866;
  font-weight: 700;
}

/* 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;
  border-radius: var(--border-radius-sm);
}

.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;
  border-radius: var(--border-radius-sm);
}

.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-topbar-link);
  font-weight: 600;
}

/* Top bar text elements */
.top-bar .small.text-muted,
.top-bar-address {
  color: var(--ka-color-topbar-text) !important;
  font-weight: 600;
}

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

/* Global CTA button styling - make all primary buttons yellow */
.btn-primary,
.btn-sm.btn-primary {
  background-color: #ffd866;
  border-color: #ffd866;
  color: var(--color-secondary);
  font-weight: 700;
  border-radius: var(--border-radius-sm);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-sm.btn-primary:hover,
.btn-sm.btn-primary:focus,
.btn-sm.btn-primary:active {
  background-color: #ffb020;
  border-color: #ffb020;
  color: var(--color-primary);
}

.btn-outline-primary,
.btn-sm.btn-outline-primary {
  background-color: transparent;
  border: 2px solid #ffd866;
  color: #ffd866;
  font-weight: 700;
  border-radius: var(--border-radius-sm);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-sm.btn-outline-primary:hover,
.btn-sm.btn-outline-primary:focus,
.btn-sm.btn-outline-primary:active {
  background-color: #ffd866;
  border-color: #ffd866;
  color: var(--color-secondary);
}

/* 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;
  border-radius: var(--border-radius-sm);
}

.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;
  border-radius: var(--border-radius-sm);
}

.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(--color-secondary);
  background: var(--h2-bg);
}

.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);
  border-radius: var(--border-radius);
}

.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: var(--border-radius-sm);
  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;
}

/* Override height-75 globally on full-width template */
.page-template-page-full-width-image .height-75 {
  height: auto !important;
}

.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: calc(-50vw + 50%);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

/* Dark blue overlay on hero image */
.featured-full-width-img::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(var(--color-secondary-rgb), 0.65) 0%,
    rgba(var(--color-bg-rgb), 0.7) 100%
  );
  z-index: 1;
  pointer-events: none;
}

.featured-full-width-img > * {
  position: relative;
  z-index: 2;
}

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

/* Hero spacing controlled by media queries at end of stylesheet */
.page-template-page-full-width-image .featured-full-width-img {
  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: var(--border-radius-sm);
  background-color: var(--ka-color-primary);
  color: var(--ka-color-text);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.85);
}

/* Mobile hero styling removed - now controlled by final media queries at end of stylesheet */

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

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

/* Full-width page template: remove container padding so content sections can be full-width */
.page-template-page-full-width-image .site-main > .container {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* Keep the title area with normal container padding */
.page-template-page-full-width-image .site-main > .container.py-3 {
  padding-left: var(--bs-gutter-x, 0.75rem);
  padding-right: var(--bs-gutter-x, 0.75rem);
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

/* Add padding to entry-content direct children (intro content before sections) */
.page-template-page-full-width-image .entry-content > h1,
.page-template-page-full-width-image .entry-content > p,
.page-template-page-full-width-image .entry-content > ul,
.page-template-page-full-width-image .entry-content > ol,
.page-template-page-full-width-image .entry-content > hr {
  padding-left: var(--bs-gutter-x, 0.75rem);
  padding-right: var(--bs-gutter-x, 0.75rem);
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

/* Keep sections full-width without padding */
.page-template-page-full-width-image .entry-content > section {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* Blank page template: same padding fix as full-width template */
body[class*="page-template-page-blank"] .site-main > .container {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* Add spacing between header and content on blank page templates */
body[class*="page-template-page-blank"] .site-main {
  padding-top: 2rem;
}

@media (min-width: 768px) {
  body[class*="page-template-page-blank"] .site-main {
    padding-top: 3rem;
  }
}

/* Add padding to entry-content direct children on blank template */
body[class*="page-template-page-blank"] .entry-content > h1,
body[class*="page-template-page-blank"] .entry-content > p,
body[class*="page-template-page-blank"] .entry-content > ul,
body[class*="page-template-page-blank"] .entry-content > ol,
body[class*="page-template-page-blank"] .entry-content > hr {
  padding-left: var(--bs-gutter-x, 0.75rem);
  padding-right: var(--bs-gutter-x, 0.75rem);
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

/* Keep sections full-width on blank template */
body[class*="page-template-page-blank"] .entry-content > section {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* NUCLEAR OPTION: Remove ALL space on full-width template */
body.page-template-page-full-width-image {
  padding-top: 0 !important;
}

body.page-template-page-full-width-image #page {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.page-template-page-full-width-image #content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.page-template-page-full-width-image .site-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.page-template-page-full-width-image .site-main {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.page-template-page-full-width-image .entry-header {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.page-template-page-full-width-image .entry-header.featured-full-width-img {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  min-height: 0 !important;
}

.page-template-page-full-width-img .featured-full-width-img {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.page-template-page-full-width-image .site-main > .container:first-child {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Override margin bottom on hero */
.page-template-page-full-width-image .entry-header.mb-4 {
  margin-bottom: 0 !important;
}

/* Override height classes - but will be overridden by media queries below */
.page-template-page-full-width-image .height-75,
.page-template-page-full-width-image .height-50,
.page-template-page-full-width-image .height-85,
.page-template-page-full-width-image .height-100 {
  min-height: 0 !important;
}

/* Add spacing between hero and title container */
.page-template-page-full-width-image .site-main > .container.py-3:first-of-type {
  padding-top: 2rem !important;
}

@media (min-width: 768px) {
  .page-template-page-full-width-image .site-main > .container.py-3:first-of-type {
    padding-top: 3rem !important;
  }
}

/* Override any Bootstrap spacing classes on hero */
.page-template-page-full-width-image .featured-full-width-img.mb-4 {
  margin-bottom: 0 !important;
}

/* Override height-75 class */
.page-template-page-full-width-image .featured-full-width-img.height-75 {
  min-height: 0 !important;
  max-height: none !important;
}

/* Desktop: on Full Width Image template, make header non-sticky */
@media (min-width: 992px) {
  body.page-template-page-full-width-image #masthead {
    position: static !important;
  }
}

/* FINAL HERO SIZING - THESE MUST BE LAST TO OVERRIDE EVERYTHING ABOVE */
@media (max-width: 767.98px) {
  .page-template-page-full-width-image .featured-full-width-img {
    height: 0 !important;
    padding-top: 75vw !important;
  }
}

@media (min-width: 768px) {
  .page-template-page-full-width-image .featured-full-width-img {
    height: 0 !important;
    padding-top: 22vw !important;
  }
}

/* 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 {
  display: none; /* Hidden on full-width page template */
}


.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;
  }
}
/* Homepage service tiles wrapper - full-width background */
.hs-services-grid-wrapper {
  background-color: #ffd866;
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
  padding: 3rem 0;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.hs-services-grid-wrapper > .container {
  max-width: 1320px;
}

/* Homepage service tiles - blue card style */
.hs-service-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: var(--color-secondary);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border: 3px solid var(--color-primary);
  border-radius: var(--border-radius-lg);
  padding: 2rem 1rem;
  text-decoration: none;
  min-height: 180px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  position: relative;
  overflow: hidden;
}

/* Add overlay to make text readable over background images */
.hs-service-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(var(--color-secondary-rgb), 0.60) 0%,
    rgba(var(--color-secondary-rgb), 0.50) 100%
  );
  z-index: 1;
  transition: all 0.3s ease;
}

/* Ensure content appears above overlay */
.hs-service-tile > * {
  position: relative;
  z-index: 2;
}

/* Background images for each service tile */
.hs-service-tile--seo {
  background-image: url('assets/img/seo-agency-bg.webp');
}

.hs-service-tile--web-design {
  background-image: url('assets/img/web-design-agency-bg.webp');
}

.hs-service-tile--ppc {
  background-image: url('assets/img/ppc-agency-bg.webp');
}

.hs-service-tile--branding {
  background-image: url('assets/img/branding-bg.webp');
}

.hs-service-tile:hover,
.hs-service-tile:focus {
  background-color: var(--color-primary);
  border-color: var(--color-primary-weak);
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

/* Lighten overlay on hover to reveal more of the background image */
.hs-service-tile:hover::before {
  background: linear-gradient(
    135deg,
    rgba(var(--color-primary-rgb), 0.75) 0%,
    rgba(var(--color-primary-rgb), 0.65) 100%
  );
}

.hs-service-tile__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 1rem;
}

.hs-service-tile__line1,
.hs-service-tile__line2 {
  font-family: var(--ka-font-heading);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.2;
}

.hs-service-tile__line1 {
  font-size: 1.25rem;
}

.hs-service-tile__line2 {
  font-size: 1.1rem;
}

.hs-service-tile__icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.hs-service-tile__icon-badge {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background-color: #ffd866;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.hs-service-tile__icon-badge i {
  color: var(--color-secondary);
  font-size: 2rem !important;
}

.hs-service-tile:hover .hs-service-tile__icon-badge {
  background-color: #ffb020;
  transform: scale(1.1);
}

/* Service area strip styling */
.service-area-section {
  background-color: var(--ka-color-surface);
}

/* Reviews section styling */
.reviews-section {
  background-color: var(--color-bg);
}

.reviews-section .card {
  background-color: var(--ka-color-surface);
  border: 1px solid var(--ka-color-border-subtle);
  height: 100%;
  border-radius: var(--border-radius);
}

.reviews-section .card-body {
  display: flex;
  flex-direction: column;
}

.reviews-section .text-warning i {
  color: #ffd866 !important;
}

/* Services accordion section */
.services-grid-section {
  background-color: var(--ka-color-surface);
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
}

.services-grid-section > .container {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

.services-grid-section .accordion {
  --bs-accordion-bg: var(--color-bg);
  --bs-accordion-border-color: var(--ka-color-border-subtle);
  --bs-accordion-btn-bg: var(--color-bg);
  --bs-accordion-active-bg: var(--color-secondary);
  --bs-accordion-btn-color: #ffd866;
  --bs-accordion-active-color: #ffffff;
  --bs-accordion-btn-focus-border-color: var(--ka-color-border-subtle);
  --bs-accordion-btn-focus-box-shadow: none;
  border-radius: var(--border-radius);
}

.services-grid-section .accordion-button {
  font-weight: 700;
  font-size: 1.1rem;
  padding: 1.25rem 1.5rem;
  background-color: var(--color-bg);
  color: #ffd866;
  border-radius: var(--border-radius-sm);
}

.services-grid-section .accordion-button:not(.collapsed) {
  background-color: var(--color-secondary);
  color: #ffffff;
  box-shadow: none;
}

.services-grid-section .accordion-button:focus {
  box-shadow: none;
  border-color: var(--ka-color-border-subtle);
}

.services-grid-section .accordion-button::after {
  filter: brightness(0) saturate(100%) invert(84%) sepia(48%) saturate(583%) hue-rotate(359deg) brightness(104%) contrast(101%);
}

.services-grid-section .accordion-button:not(.collapsed)::after {
  filter: brightness(0) saturate(100%) invert(100%);
}

.services-grid-section .accordion-body {
  padding: 2rem 1.5rem;
  background-color: var(--ka-color-surface);
  border-radius: var(--border-radius);
}

.services-grid-section .accordion-item {
  background-color: var(--color-bg);
  border: 1px solid var(--ka-color-border-subtle);
  margin-bottom: 0;
  border-radius: var(--border-radius);
}

.services-grid-section .accordion {
  width: 100%;
}

.services-grid-section .row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}

.services-grid-section .row > .col-12 {
  flex: 0 0 100%;
  max-width: 100%;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

@media (min-width: 992px) {
  .services-grid-section .row > .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

/* Content breaks between accordion items */
.service-accordion-break {
  background-color: rgba(var(--color-secondary-rgb), 0.15);
  border-left: 4px solid #ffd866;
  padding: 1rem 1.5rem;
  margin: 1.5rem 0;
  border-radius: var(--border-radius);
}

.service-accordion-break p {
  color: var(--ka-color-text);
  font-size: 0.95rem;
}

.service-accordion-break a {
  color: #ffd866;
  font-weight: 700;
  text-decoration: underline;
}

.service-accordion-break a:hover {
  color: #ffb020;
}

/* Service list items inside accordion */
.service-list-item {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  background-color: var(--color-bg);
  border-radius: var(--border-radius);
  border: 1px solid var(--ka-color-border-subtle);
  transition: all 0.2s ease;
}

.service-list-item:hover {
  border-color: var(--color-secondary);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.service-list-item i {
  font-size: 2rem;
  color: #ffd866;
  flex-shrink: 0;
  margin-top: 0.25rem;
}

.service-list-item h4 {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.service-list-item h4 a {
  color: #ffd866;
  text-decoration: none;
}

.service-list-item h4 a:hover {
  color: #ffb020;
  text-decoration: underline;
}

.service-list-item p {
  font-size: 0.9rem;
  color: var(--ka-color-text);
  margin-bottom: 0;
  line-height: 1.5;
}

/* Mobile adjustments */
@media (max-width: 767.98px) {
  .services-grid-section .accordion-button {
    font-size: 0.95rem;
    padding: 1rem;
  }
  
  .services-grid-section .accordion-body {
    padding: 1rem;
  }
  
  .service-list-item {
    flex-direction: column;
    gap: 0.5rem;
  }
  
  .service-list-item i {
    font-size: 1.5rem;
  }
  
  .service-accordion-break {
    padding: 0.75rem 1rem;
    margin: 1rem 0;
  }
}

.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: var(--border-radius-lg);
  padding: 0.9rem 1.5rem 1.6rem;
  text-decoration: none;
  border: 1px solid var(--ka-color-border-subtle);
  color: var(--ka-color-text);
  transition: all 0.25s ease;
  display: block;
  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 section styling */
.trust-section {
  background-color: var(--ka-color-surface);
}

.trust-section .card,
.trust-section .rounded {
  background-color: var(--color-bg);
  border: 1px solid var(--ka-color-border-subtle);
}

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

.faq-section .h5 {
  font-family: var(--ka-font-heading);
  color: #ffd866;
  margin-bottom: 0.5rem;
  font-weight: 700;
}

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

.faq-section .col-md-6 {
  margin-bottom: 1rem;
}

/* Final CTA section styling */
.final-cta-section {
  background: linear-gradient(135deg, var(--ka-color-surface), #000000);
  border-top: 1px solid var(--ka-color-border-subtle);
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
  margin-bottom: 0;
}

.final-cta-section > .container {
  max-width: 1320px;
}

.final-cta-section h2 {
  color: var(--color-secondary);
  background: var(--h2-bg);
}

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

/* Card styling for content sections */
.card {
  background-color: var(--ka-color-surface);
  border: 1px solid var(--ka-color-border-subtle);
  color: var(--ka-color-text);
}

.card-title {
  color: #ffd866;
  font-weight: 700;
}

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

/* Content section backgrounds */
section#request-service {
  background-color: var(--color-bg);
}

/* Rounded boxes in content */
.rounded[style*="background-color"] {
  color: var(--ka-color-text);
}

/* ============================================
   WPForms Custom Styling - Match Bootstrap Forms
   ============================================ */

/* Form container styling */
.wpforms-container {
  margin: 0;
}

.wpforms-form {
  margin: 0;
}

/* Form fields - match Bootstrap form-control */
.wpforms-field input[type="text"],
.wpforms-field input[type="email"],
.wpforms-field input[type="tel"],
.wpforms-field input[type="url"],
.wpforms-field select,
.wpforms-field textarea {
  display: block;
  width: 100%;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--ka-color-text);
  background-color: var(--color-bg);
  background-clip: padding-box;
  border: 1px solid var(--ka-color-border);
  border-radius: 0.375rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.wpforms-field input[type="text"]:focus,
.wpforms-field input[type="email"]:focus,
.wpforms-field input[type="tel"]:focus,
.wpforms-field input[type="url"]:focus,
.wpforms-field select:focus,
.wpforms-field textarea:focus {
  color: var(--ka-color-text);
  background-color: var(--color-bg);
  border-color: var(--color-primary);
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(255, 216, 102, 0.25);
}

/* Field labels - match Bootstrap form-label */
.wpforms-field-label {
  display: inline-block;
  margin-bottom: 0.5rem;
  font-weight: 400;
  color: var(--ka-color-text);
}

/* Required field asterisk styling */
.wpforms-required-label {
  color: #dc3545;
  margin-left: 0.25rem;
}

/* Field descriptions - match Bootstrap form-text */
.wpforms-field-description,
.wpforms-field-sublabel {
  margin-top: 0.25rem;
  font-size: 0.875em;
  color: var(--ka-color-text-muted);
}

/* Row layout for multi-column forms */
.wpforms-field-row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -0.75rem;
  margin-left: -0.75rem;
  row-gap: 1rem;
}

.wpforms-field-row .wpforms-field {
  padding-right: 0.75rem;
  padding-left: 0.75rem;
  flex: 0 0 auto;
}

/* Two-column layout */
.wpforms-field-row .wpforms-one-half {
  width: 50%;
}

/* Single column layout */
.wpforms-field-row .wpforms-one-full {
  width: 100%;
}

/* Responsive: Stack columns on mobile */
@media (max-width: 767px) {
  .wpforms-field-row .wpforms-one-half {
    width: 100%;
  }
}

/* Checkbox styling */
.wpforms-field-checkbox input[type="checkbox"],
.wpforms-field-gdpr-checkbox input[type="checkbox"] {
  width: 1em;
  height: 1em;
  margin-top: 0.25em;
  margin-right: 0.5rem;
  vertical-align: top;
  background-color: var(--color-bg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  border: 1px solid var(--ka-color-border);
  border-radius: 0.25em;
  cursor: pointer;
}

.wpforms-field-checkbox label,
.wpforms-field-gdpr-checkbox label {
  display: inline-block;
  margin-bottom: 0;
  font-size: 0.875rem;
  cursor: pointer;
}

/* Submit button - match Bootstrap btn-primary */
.wpforms-submit-container {
  margin-top: 1rem;
}

.wpforms-submit {
  display: inline-block;
  font-weight: 400;
  line-height: 1.5;
  color: #000;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  border-radius: 0.375rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.wpforms-submit:hover {
  color: #000;
  background-color: #ffb020;
  border-color: #ffb020;
}

.wpforms-submit:focus {
  color: #000;
  background-color: #ffb020;
  border-color: #ffb020;
  box-shadow: 0 0 0 0.25rem rgba(255, 216, 102, 0.5);
}

/* Large button variant */
.wpforms-submit.wpforms-submit-lg {
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  border-radius: 0.5rem;
}

/* Full width button */
.wpforms-submit.wpforms-submit-full-width {
  width: 100%;
  display: block;
}

/* Error messages */
.wpforms-error {
  color: #dc3545;
  font-size: 0.875em;
  margin-top: 0.25rem;
}

.wpforms-field.wpforms-has-error input,
.wpforms-field.wpforms-has-error select,
.wpforms-field.wpforms-has-error textarea {
  border-color: #dc3545;
}

/* Success message */
.wpforms-confirmation-container-full {
  background-color: #d4edda;
  border: 1px solid #c3e6cb;
  color: #155724;
  padding: 1rem;
  border-radius: 0.375rem;
  margin-bottom: 1rem;
}

/* Loading spinner */
.wpforms-submit-spinner {
  margin-left: 0.5rem;
}

/* Field spacing */
.wpforms-field {
  margin-bottom: 1rem;
}

/* Select dropdown styling */
.wpforms-field select {
  cursor: pointer;
}

/* Textarea specific */
.wpforms-field textarea {
  resize: vertical;
  min-height: calc(1.5em + 0.75rem + 2px);
}

/* Remove default WPForms container margins */
.wpforms-container-full .wpforms-form {
  margin: 0;
  padding: 0;
}