/* ================================================================
   PATRIOT BUILDING SOLUTIONS — Premium Theme CSS
   Paste into: Appearance → Customize → Additional CSS
   Version: 1.0 | 2026-03-08
   ================================================================ */

/* ─── §1 FONTS ─── */
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@400;500;600;700&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap');

/* ─── §2 VARIABLES ─── */
:root {
  --pbs-navy:       #0A1628;
  --pbs-red:        #8B0000;
  --pbs-red-bright: #9B1111;
  --pbs-gold:       #C9A84C;
  --pbs-white:      #F5F5F0;
  --pbs-steel:      #8A9BB0;
  --pbs-dark:       #060E1A;
}

/* ─── §3 GLOBAL BODY ─── */
html { scroll-behavior: smooth; }

body {
  background: var(--pbs-navy) !important;
  color: var(--pbs-white) !important;
  font-family: 'Source Serif 4', Georgia, serif !important;
  font-weight: 400;
  line-height: 1.75;
  margin: 0;
  padding: 0;
  overflow-x: hidden !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Prevent any horizontal overflow */
html, body, #page, .wrapper, .neve-main, .nv-single-page-wrap {
  max-width: 100vw !important;
  overflow-x: hidden !important;
}

/* ─── §4 TYPOGRAPHY ─── */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pbs-white) !important;
  line-height: 1.1;
  margin: 0 0 16px;
}

a {
  color: var(--pbs-gold) !important;
  text-decoration: none;
  transition: color 0.3s ease;
}
a:hover { color: var(--pbs-red-bright) !important; }

img { max-width: 100%; height: auto; }

/* ─── §5 NEVE NAVIGATION ─── */

/* Tri-color flag bar */
.hfg_header::before {
  content: '';
  display: block;
  height: 3px;
  background: linear-gradient(
    to right,
    #B22222 0%, #B22222 33.33%,
    #FFFFFF 33.33%, #FFFFFF 66.66%,
    #1B3A6B 66.66%, #1B3A6B 100%
  );
  position: relative;
  z-index: 9999;
}

/* Sticky glass nav */
.hfg_header {
  position: sticky !important;
  top: 0;
  z-index: 999;
}

.hfg_header .header--row {
  background: rgba(6, 14, 26, 0.95) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(201, 168, 76, 0.1);
}

/* Pad the inner container (whatever class it has) — background stays full-width */
.hfg_header .header--row > * {
  padding-left: clamp(24px, 4vw, 60px) !important;
  padding-right: clamp(24px, 4vw, 60px) !important;
  box-sizing: border-box !important;
}

/* Nav links */
#nv-primary-navigation-main ul li a,
.nav-menu-primary .nav-ul li a,
.hfg_header .builder-item a {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--pbs-white) !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  position: relative;
  transition: color 0.3s ease;
}

#nv-primary-navigation-main ul li a:hover,
.nav-menu-primary .nav-ul li a:hover {
  color: var(--pbs-gold) !important;
}

/* Gold underline slides in from left */
#nv-primary-navigation-main ul li a::after,
.nav-menu-primary .nav-ul li a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--pbs-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

#nv-primary-navigation-main ul li a:hover::after,
.nav-menu-primary .nav-ul li a:hover::after {
  transform: scaleX(1);
}

/* Dropdown menus — desktop only */
#nv-primary-navigation-main .sub-menu,
.nav-menu-primary .sub-menu,
.hfg_header .nav-ul .sub-menu,
.hfg_header #nv-primary-navigation-main ul.sub-menu {
  background: rgba(6, 14, 26, 0.98) !important;
  background-color: rgba(6, 14, 26, 0.98) !important;
  border: 1px solid rgba(201, 168, 76, 0.15) !important;
  border-top: 2px solid var(--pbs-red) !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5) !important;
}

#nv-primary-navigation-main .sub-menu li,
.nav-menu-primary .sub-menu li,
.hfg_header .nav-ul .sub-menu li {
  background: transparent !important;
  background-color: transparent !important;
}

#nv-primary-navigation-main .sub-menu li a,
.nav-menu-primary .sub-menu li a,
.hfg_header .nav-ul .sub-menu li a {
  font-size: 13px !important;
  letter-spacing: 0.08em !important;
  color: var(--pbs-white) !important;
  background: transparent !important;
  background-color: transparent !important;
}

#nv-primary-navigation-main .sub-menu li a:hover,
.nav-menu-primary .sub-menu li a:hover,
.hfg_header .nav-ul .sub-menu li a:hover {
  color: var(--pbs-gold) !important;
  background: rgba(201, 168, 76, 0.08) !important;
}

#nv-primary-navigation-main .sub-menu .sub-menu,
.nav-menu-primary .sub-menu .sub-menu,
.hfg_header .nav-ul .sub-menu .sub-menu {
  background: rgba(6, 14, 26, 0.98) !important;
  background-color: rgba(6, 14, 26, 0.98) !important;
}

/* Mobile menu — sidebar drawer */
.header-menu-sidebar,
.header-menu-sidebar .header-menu-sidebar-bg,
.header-menu-sidebar .header-menu-sidebar-inner,
.header-menu-sidebar .nv-nav-wrap,
.header-menu-sidebar-bg {
  background: var(--pbs-dark) !important;
}
.header-menu-sidebar .nav-ul li a,
.header-menu-sidebar .nav-menu-primary li a,
.header-menu-sidebar a {
  color: var(--pbs-white) !important;
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  border-bottom: 1px solid rgba(201, 168, 76, 0.1) !important;
}
/* Mobile submenu dropdown — white text on dark bg (scoped to mobile sidebar only) */
.header-menu-sidebar .nav-ul .sub-menu li a,
.header-menu-sidebar .sub-menu a,
.header-menu-sidebar .nav-ul li.menu-item-has-children .sub-menu a,
.header-menu-sidebar .sub-menu li a {
  color: var(--pbs-white) !important;
}
.header-menu-sidebar .nav-ul .sub-menu li a:hover,
.header-menu-sidebar .sub-menu a:hover {
  color: var(--pbs-gold) !important;
}
/* Mobile submenu caret/toggle button */
.header-menu-sidebar .caret-wrap,
.header-menu-sidebar button.caret-wrap {
  color: var(--pbs-white) !important;
}

/* ─── §6 HERO ─── */

/* Override existing hero — new navy bg with diagonal stripes */
.hm-hero {
  background: var(--pbs-navy) !important;
  min-height: 100svh !important;
  position: relative !important;
  overflow: hidden !important;
}

/* Diagonal stripe texture */
.hm-hero::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  background: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 40px,
    rgba(255, 255, 255, 0.02) 40px,
    rgba(255, 255, 255, 0.02) 80px
  ) !important;
  transform: none !important;
  border-radius: 0 !important;
  top: 0 !important;
  left: 0 !important;
  pointer-events: none;
  z-index: 0;
}

/* Star field — scattered white dots via box-shadow */
.hm-hero::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  background: transparent;
  box-shadow:
    3vw 7vh 0 0.5px rgba(255,255,255,0.25),
    8vw 23vh 0 1px rgba(255,255,255,0.15),
    12vw 62vh 0 0.5px rgba(255,255,255,0.3),
    18vw 15vh 0 1px rgba(255,255,255,0.2),
    24vw 83vh 0 0.5px rgba(255,255,255,0.25),
    29vw 37vh 0 1px rgba(255,255,255,0.15),
    33vw 56vh 0 0.5px rgba(255,255,255,0.2),
    38vw 5vh 0 1px rgba(255,255,255,0.3),
    42vw 71vh 0 0.5px rgba(255,255,255,0.15),
    47vw 29vh 0 1px rgba(255,255,255,0.2),
    51vw 88vh 0 0.5px rgba(255,255,255,0.25),
    55vw 16vh 0 1px rgba(255,255,255,0.15),
    59vw 52vh 0 0.5px rgba(255,255,255,0.3),
    63vw 75vh 0 1px rgba(255,255,255,0.2),
    67vw 9vh 0 0.5px rgba(255,255,255,0.15),
    71vw 44vh 0 1px rgba(255,255,255,0.25),
    75vw 67vh 0 0.5px rgba(255,255,255,0.2),
    79vw 21vh 0 1px rgba(255,255,255,0.15),
    83vw 91vh 0 0.5px rgba(255,255,255,0.3),
    87vw 33vh 0 1px rgba(255,255,255,0.2),
    91vw 58vh 0 0.5px rgba(255,255,255,0.15),
    95vw 85vh 0 1px rgba(255,255,255,0.25),
    5vw 51vh 0 0.5px rgba(255,255,255,0.2),
    11vw 18vh 0 1px rgba(255,255,255,0.15),
    17vw 72vh 0 0.5px rgba(255,255,255,0.3),
    22vw 94vh 0 1px rgba(255,255,255,0.15),
    27vw 8vh 0 0.5px rgba(255,255,255,0.2),
    32vw 47vh 0 1px rgba(255,255,255,0.25),
    37vw 79vh 0 0.5px rgba(255,255,255,0.15),
    41vw 14vh 0 1px rgba(255,255,255,0.2),
    46vw 62vh 0 0.5px rgba(255,255,255,0.3),
    50vw 35vh 0 1px rgba(255,255,255,0.15),
    54vw 96vh 0 0.5px rgba(255,255,255,0.2),
    58vw 22vh 0 1px rgba(255,255,255,0.25),
    62vw 59vh 0 0.5px rgba(255,255,255,0.15),
    66vw 81vh 0 1px rgba(255,255,255,0.2),
    70vw 3vh 0 0.5px rgba(255,255,255,0.3),
    74vw 49vh 0 1px rgba(255,255,255,0.15),
    78vw 73vh 0 0.5px rgba(255,255,255,0.2),
    82vw 15vh 0 1px rgba(255,255,255,0.25),
    86vw 42vh 0 0.5px rgba(255,255,255,0.15),
    90vw 86vh 0 1px rgba(255,255,255,0.2),
    94vw 68vh 0 0.5px rgba(255,255,255,0.25),
    7vw 46vh 0 1px rgba(255,255,255,0.15),
    16vw 31vh 0 0.5px rgba(255,255,255,0.2),
    26vw 55vh 0 1px rgba(255,255,255,0.15),
    36vw 91vh 0 0.5px rgba(255,255,255,0.25),
    44vw 38vh 0 1px rgba(255,255,255,0.15),
    56vw 78vh 0 0.5px rgba(255,255,255,0.2),
    68vw 46vh 0 1px rgba(255,255,255,0.25);
  pointer-events: none;
  z-index: 0;
}

/* Hero content z-index above stars */
.hm-hero .hm-inner {
  position: relative !important;
  z-index: 2 !important;
}

/* Hero headline */
.hm-hero h1 {
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(3rem, 8vw, 7rem) !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  animation: pbsFadeSlideUp 0.8s ease 0.1s both !important;
}

/* Red accent on key word */
.hm-gold {
  color: var(--pbs-red) !important;
  position: relative;
  display: inline;
}
.hm-gold::after { display: none; }

/* Hero subtext */
.hm-hero-sub {
  font-family: 'Source Serif 4', serif !important;
  color: var(--pbs-steel) !important;
  font-size: clamp(16px, 2vw, 20px) !important;
  max-width: 60ch !important;
  animation: pbsFadeSlideUp 0.8s ease 0.3s both !important;
}

/* Hero CTA stagger */
.hm-hero-ctas {
  animation: pbsFadeSlideUp 0.8s ease 0.5s both !important;
}

/* Hero badges */
.hm-hero-badges span {
  background: rgba(10, 22, 40, 0.6) !important;
  border: 1px solid rgba(201, 168, 76, 0.2) !important;
  color: var(--pbs-steel) !important;
  border-radius: 0 !important;
  font-family: 'Oswald', sans-serif !important;
  letter-spacing: 0.12em !important;
}

/* Gold horizontal rule — removed from top, moved to trust bottom via border */
.hm-hero + .hm-full::before,
.hm-trust::before { display: none; }

/* ─── §7 SECTION HEADERS — Military Rank Stripe ─── */

/* Small gold label above section title */
.hm-label {
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  font-size: 13px !important;
  letter-spacing: 0.3em !important;
  background: linear-gradient(
    90deg,
    var(--pbs-gold) 0%,
    #fff8e7 50%,
    var(--pbs-gold) 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: pbsShimmer 3s linear infinite;
  margin-bottom: 12px;
}

/* Section titles — vertical red bar */
.hm-section h2 {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  position: relative;
  padding-left: 20px;
}

.hm-section h2::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 40px;
  background: var(--pbs-red);
}

.hm-section-center h2 { padding-left: 0; }
.hm-section-center h2::before { display: none; }

/* ─── §8 SERVICE CARDS — Mission Briefing Panels ─── */

.hm-card {
  background: var(--pbs-navy) !important;
  border: 1px solid rgba(201, 168, 76, 0.2) !important;
  border-left: 1px solid rgba(201, 168, 76, 0.2) !important;
  border-radius: 0 !important;
  position: relative;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

/* Gold bracket — top-left */
.hm-card::before {
  content: '' !important;
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  width: 20px !important;
  height: 20px !important;
  border-top: 2px solid var(--pbs-gold) !important;
  border-left: 2px solid var(--pbs-gold) !important;
  background: transparent !important;
  border-radius: 0 !important;
  transform: none !important;
  pointer-events: none;
}

/* Gold bracket — bottom-right */
.hm-card::after {
  content: '';
  position: absolute;
  bottom: 12px;
  right: 12px;
  width: 20px;
  height: 20px;
  border-bottom: 2px solid var(--pbs-gold);
  border-right: 2px solid var(--pbs-gold);
  pointer-events: none;
}

/* Card hover: glow + lift */
.hm-card:hover {
  border-color: rgba(201, 168, 76, 0.6) !important;
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4) !important;
}

/* Card number accent */
.hm-card-num {
  font-family: 'Bebas Neue', sans-serif !important;
  color: var(--pbs-red) !important;
  opacity: 0.5 !important;
}

/* Card title link */
.hm-card h3 {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.hm-card h3 a {
  color: var(--pbs-white) !important;
}
.hm-card h3 a:hover {
  color: var(--pbs-gold) !important;
}

/* Card body text */
.hm-card p {
  color: var(--pbs-steel) !important;
  font-family: 'Source Serif 4', serif !important;
}

/* ─── §9 STATS / TRUST BAR ─── */

.hm-trust {
  background: var(--pbs-dark) !important;
  border-top: none !important;
  border-bottom: 2px solid var(--pbs-gold) !important;
}

.hm-trust-num {
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: clamp(2.5rem, 5vw, 5rem) !important;
  color: var(--pbs-gold) !important;
}

.hm-trust-label {
  font-family: 'Oswald', sans-serif !important;
  color: var(--pbs-steel) !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: clamp(11px, 1.2vw, 13px) !important;
}

/* ─── §10 STORY / ABOUT ─── */

.hm-story {
  background: var(--pbs-dark) !important;
  border-top: 1px solid rgba(201, 168, 76, 0.15) !important;
  border-bottom: 1px solid rgba(201, 168, 76, 0.15) !important;
  position: relative;
}

/* Faint American flag stripes behind story */
.hm-story::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    to bottom,
    rgba(178, 34, 34, 0.04) 0px,
    rgba(178, 34, 34, 0.04) 20px,
    transparent 20px,
    transparent 40px
  );
  pointer-events: none;
  z-index: 0;
}

.hm-story .hm-inner {
  position: relative;
  z-index: 1;
}

.hm-story-content p {
  color: var(--pbs-steel) !important;
  font-family: 'Source Serif 4', serif !important;
}

/* Veteran badge — pentagon with star */
.pbs-vet-badge {
  width: 80px;
  height: 76px;
  background: var(--pbs-red);
  clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: var(--pbs-gold);
  flex-shrink: 0;
}

/* Veteran tag pill */
.pbs-vet-tag {
  display: inline-block;
  background: var(--pbs-red);
  color: var(--pbs-gold);
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 12px;
  padding: 6px 16px;
  border-radius: 0;
}

/* ─── §11 WHY / DIFFERENTIATOR SECTION ─── */

.hm-why-icon {
  background: transparent !important;
  border: 2px solid var(--pbs-gold) !important;
  border-radius: 50% !important;
  color: var(--pbs-gold);
}

.hm-why-item h3 {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.hm-why-item p {
  color: var(--pbs-steel) !important;
  font-family: 'Source Serif 4', serif !important;
}

/* ─── §12 SERVE COLUMNS ─── */

.hm-serve-col {
  background: var(--pbs-dark) !important;
  border: 1px solid rgba(201, 168, 76, 0.2) !important;
  border-radius: 0 !important;
}

.hm-serve-col h3 {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
}

.hm-serve-col p {
  color: var(--pbs-steel) !important;
  font-family: 'Source Serif 4', serif !important;
}

/* ─── §13 GUARANTEE ─── */

.hm-guarantee-wrap {
  background: var(--pbs-red) !important;
  border: none !important;
  border-radius: 4px !important;
  position: relative;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5), 0 4px 12px rgba(0, 0, 0, 0.3);
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s ease;
}

.hm-guarantee-wrap:hover {
  transform: translateY(-8px) scale(1.01);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6), 0 8px 20px rgba(178, 34, 34, 0.3);
}

.hm-guarantee-wrap h2 {
  color: #fff !important;
}

.hm-guarantee-wrap .hm-gold {
  color: var(--pbs-navy) !important;
}
.hm-guarantee-wrap .hm-gold::after { display: none; }

.hm-guarantee-wrap p {
  color: rgba(255, 255, 255, 0.9) !important;
  font-family: 'Source Serif 4', serif !important;
}

/* ─── §14 AREA PILLS ─── */

.hm-areas-pills a {
  background: var(--pbs-dark) !important;
  border: 1px solid rgba(201, 168, 76, 0.2) !important;
  border-radius: 0 !important;
  color: var(--pbs-white) !important;
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  font-size: 13px !important;
}

.hm-areas-pills a:hover {
  border-color: var(--pbs-gold) !important;
  color: var(--pbs-gold) !important;
  background: rgba(201, 168, 76, 0.08) !important;
}

/* ─── §15 FAQ ─── */

.hm-faq details {
  border-bottom: 1px solid rgba(201, 168, 76, 0.15) !important;
}

.hm-faq summary {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.hm-faq summary::after {
  color: var(--pbs-red) !important;
}

.hm-faq details p {
  color: var(--pbs-steel) !important;
  font-family: 'Source Serif 4', serif !important;
}

/* ─── §16 SECTION INTRO TEXT ─── */

.hm-section-intro {
  color: var(--pbs-steel) !important;
  font-family: 'Source Serif 4', serif !important;
}

/* ─── §17 CTA SECTION ─── */

.hm-cta-section {
  background: var(--pbs-dark) !important;
  border-top: 2px solid var(--pbs-gold) !important;
}

.hm-cta-section h2 {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
}

.hm-cta-section p {
  color: var(--pbs-steel) !important;
  font-family: 'Source Serif 4', serif !important;
}

/* ─── §18 BUTTONS ─── */

/* Primary — Red CTA */
.hm-btn {
  background: var(--pbs-red-bright) !important;
  color: #fff !important;
  border: 2px solid var(--pbs-red-bright) !important;
  border-radius: 0 !important;
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  box-shadow: 0 0 20px rgba(139, 0, 0, 0.4);
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

.hm-btn:hover {
  background: #A01010 !important;
  border-color: #A01010 !important;
  color: #fff !important;
  box-shadow: 0 0 30px rgba(139, 0, 0, 0.6);
  transform: scale(1.03);
}

.hm-btn::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent) !important;
}

/* Secondary — Gold outline */
.hm-btn-outline {
  background: transparent !important;
  color: var(--pbs-gold) !important;
  border: 2px solid var(--pbs-gold) !important;
  border-radius: 0 !important;
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  transition: all 0.3s ease !important;
}

.hm-btn-outline:hover {
  background: var(--pbs-gold) !important;
  color: var(--pbs-dark) !important;
}

/* Link style */
.hm-link {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--pbs-gold) !important;
}

/* ─── §19 NEW PBS CTA BANNER (use with .pbs-cta-banner class) ─── */

.pbs-cta-banner {
  background: var(--pbs-red);
  clip-path: polygon(0 8%, 100% 0, 100% 92%, 0 100%);
  padding: clamp(100px, 14vw, 180px) 0;
  text-align: center;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.pbs-cta-banner h2 {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(2.5rem, 6vw, 5rem);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 24px;
}

.pbs-btn-white-outline {
  display: inline-block;
  padding: 16px 48px;
  border: 2px solid #fff;
  color: #fff;
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 16px;
  background: transparent;
  transition: all 0.3s ease;
}

.pbs-btn-white-outline:hover {
  background: #fff;
  color: var(--pbs-red) !important;
}

/* ─── §20 TESTIMONIAL CARDS (use with .pbs-testimonial) ─── */

.pbs-testimonial {
  background: var(--pbs-navy);
  border-left: 4px solid var(--pbs-red);
  border-radius: 0;
  padding: clamp(24px, 4vw, 40px);
  position: relative;
  overflow: hidden;
}

/* Noise texture */
.pbs-testimonial::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events: none;
}

/* Giant quote mark */
.pbs-testimonial::after {
  content: '\201C';
  position: absolute;
  top: -10px;
  left: 16px;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 8rem;
  color: var(--pbs-red);
  opacity: 0.2;
  line-height: 1;
  pointer-events: none;
}

.pbs-stars {
  color: var(--pbs-gold);
  letter-spacing: 3px;
  margin-bottom: 12px;
}

/* ─── §21 NEVE FOOTER ─── */

.hfg_footer,
.hfg_footer .footer--row,
.hfg_footer .footer--row-inner,
.hfg_footer .footer--row[data-row-id],
.hfg_footer .builder-row,
.hfg_footer .builder-row--top,
.hfg_footer .builder-row--main,
.hfg_footer .builder-row--bottom {
  background: #060E1A !important;
  background-color: #060E1A !important;
}

.hfg_footer {
  position: relative;
}

/* Gold rule at top */
.hfg_footer::before {
  content: '';
  display: block;
  height: 2px;
  background: var(--pbs-gold);
}

/* Pad the inner container of each footer row — background stays full-width */
.hfg_footer .footer--row > *,
.hfg_footer .builder-row > * {
  padding-left: clamp(24px, 4vw, 60px) !important;
  padding-right: clamp(24px, 4vw, 60px) !important;
  padding-top: clamp(40px, 5vw, 72px) !important;
  padding-bottom: clamp(32px, 4vw, 56px) !important;
  box-sizing: border-box !important;
}

.hfg_footer,
.hfg_footer .builder-item,
.hfg_footer p,
.hfg_footer a,
.hfg_footer .widget-area {
  color: var(--pbs-white) !important;
}

.hfg_footer a:hover {
  color: var(--pbs-gold) !important;
}

.hfg_footer h4,
.hfg_footer .widget-title {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--pbs-gold) !important;
  font-size: 14px !important;
}

/* Footer containment — generous column spacing */
.hfg_footer .builder-row--main .builder-item {
  padding: 0 clamp(16px, 2.5vw, 36px) !important;
}

/* Footer logo */
.pbs-footer-logo {
  max-width: 160px !important;
  height: auto;
  margin-bottom: 16px;
}

.pbs-footer-tagline {
  color: var(--pbs-white) !important;
  font-size: 13px;
  font-style: italic;
  margin: 0 0 20px;
  line-height: 1.6;
}

/* Footer columns */
.pbs-footer-col h4 {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: var(--pbs-white) !important;
  font-size: 15px !important;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--pbs-red);
  display: inline-block;
}

.pbs-footer-links {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.pbs-footer-links li {
  padding: 7px 0;
}

.pbs-footer-links li a {
  color: var(--pbs-white) !important;
  font-size: 14px;
  transition: color 0.3s ease, padding-left 0.3s ease;
}

.pbs-footer-links li a:hover {
  color: var(--pbs-white) !important;
  padding-left: 4px;
}

/* Footer contact list */
.pbs-footer-contact {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.pbs-footer-contact li {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 12px 0;
  border-bottom: 1px solid rgba(201, 168, 76, 0.08);
}

.pbs-footer-contact li:last-child {
  border-bottom: none;
}

.pbs-fc-icon {
  font-size: 18px;
  color: var(--pbs-red);
  flex-shrink: 0;
  margin-top: 2px;
}

.pbs-footer-contact strong {
  color: var(--pbs-white) !important;
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 12px;
}

.pbs-footer-contact a {
  color: var(--pbs-white) !important;
  font-size: 14px;
}

.pbs-footer-contact a:hover {
  color: var(--pbs-white) !important;
}

/* Footer bottom bar */
.hfg_footer .builder-row--bottom {
  border-top: 1px solid rgba(201, 168, 76, 0.1) !important;
  font-size: 13px;
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}

/* Social icons in header/footer */
.builder-item--social_icons .social-icons-container a {
  color: var(--pbs-steel) !important;
  transition: color 0.3s ease, transform 0.3s ease;
}

.builder-item--social_icons .social-icons-container a:hover {
  color: var(--pbs-white) !important;
  transform: scale(1.2);
}

.hfg_header .builder-item--social_icons .social-icons-container a {
  color: rgba(255, 255, 255, 0.6) !important;
}

.hfg_header .builder-item--social_icons .social-icons-container a:hover {
  color: var(--pbs-gold) !important;
}

/* Veteran seal in footer */
.pbs-footer-seal {
  width: 60px;
  height: 60px;
  border: 2px solid var(--pbs-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: var(--pbs-gold);
}

/* ─── §21b SITE IMAGES ─── */

.pbs-img-block {
  width: 100%;
  margin: clamp(32px, 5vw, 56px) 0;
  overflow: hidden;
  border: 1px solid rgba(201, 168, 76, 0.15);
  position: relative;
}

.pbs-img-block img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/5;
  object-fit: cover;
  display: block;
  filter: brightness(0.9);
  transition: filter 0.4s ease;
}

.pbs-img-block:hover img {
  filter: brightness(1);
}

.pbs-img-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: clamp(12px, 2vw, 20px);
  margin: clamp(32px, 5vw, 56px) 0;
}

.pbs-img-row .pbs-img-block {
  margin: 0;
}

.pbs-img-row .pbs-img-block img {
  aspect-ratio: 4/5;
}

/* Gallery real images */
.gl-grid .pbs-img-block {
  margin: 0;
  aspect-ratio: 4/5;
}

.gl-grid .pbs-img-block img {
  height: 100%;
  max-height: none;
}

/* ─── §22 SCROLL REVEAL CLASSES ─── */

.pbs-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.pbs-reveal.pbs-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children — set --i inline: style="--i:0" style="--i:1" etc. */
.pbs-reveal > [style*="--i"] {
  transition-delay: calc(var(--i) * 0.1s);
}

/* ─── §23 KEYFRAMES ─── */

@keyframes pbsFadeSlideUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pbsShimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}

/* Redefine old keyframes to keep page-load animations working */
@keyframes hmFadeUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes hmShimmer {
  from { left: -100%; }
  to   { left: 100%; }
}

/* ─── §24 RESPONSIVE — TABLET (≤ 768px) ─── */

@media (max-width: 768px) {

  /* ── Site-wide content padding ── */
  .neve-main > .container,
  .neve-main > .container-fluid,
  .nv-single-page-wrap,
  .nv-content-wrap,
  .entry-content {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* ── Header ── */
  .hfg_header .header--row > * {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* ── Hero ── */
  .hm-hero {
    min-height: auto !important;
    padding: 60px 0 40px !important;
  }

  .hm-hero h1 {
    font-size: clamp(2.2rem, 9vw, 3.5rem) !important;
  }

  .hm-hero-sub {
    font-size: 16px !important;
  }

  .hm-hero::after {
    opacity: 0.5;
  }

  .hm-hero-badges {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }

  .hm-hero-badges span {
    font-size: 10px !important;
    padding: 6px 10px !important;
  }

  /* ── Section titles ── */
  .hm-section h2 {
    font-size: clamp(1.5rem, 6vw, 2rem) !important;
    padding-left: 16px !important;
  }

  .hm-section h2::before {
    height: 30px;
    width: 3px;
  }

  /* ── Trust bar ── */
  .hm-trust-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }

  .hm-trust-num {
    font-size: clamp(2rem, 8vw, 3rem) !important;
  }

  /* ── Cards — 1-column stack ── */
  .hm-card-grid,
  .hm-cards-wrap,
  [class*="hm-cards"],
  .hm-serve-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .hm-card {
    margin-bottom: 0 !important;
  }

  /* ── Story / About ── */
  .hm-story-grid,
  .hm-story-content {
    grid-template-columns: 1fr !important;
  }

  /* ── Why / Differentiator ── */
  .hm-why-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* ── Serve columns ── */
  .hm-serve-col {
    margin-bottom: 16px !important;
  }

  /* ── Guarantee ── */
  .hm-guarantee-wrap {
    padding: 32px 20px !important;
  }

  .hm-guarantee-wrap h2 {
    font-size: clamp(1.5rem, 6vw, 2rem) !important;
  }

  /* ── Area pills ── */
  .hm-areas-pills {
    gap: 8px !important;
  }

  .hm-areas-pills a {
    font-size: 12px !important;
    padding: 8px 14px !important;
  }

  /* ── FAQ ── */
  .hm-faq summary {
    font-size: 15px !important;
    padding: 16px 0 !important;
  }

  .hm-faq details p {
    font-size: 14px !important;
    padding: 0 0 16px !important;
  }

  /* ── CTA section ── */
  .hm-cta-section {
    padding: 40px 20px !important;
    text-align: center !important;
  }

  .hm-cta-section h2 {
    font-size: clamp(1.5rem, 6vw, 2.2rem) !important;
  }

  /* ── CTA banner ── */
  .pbs-cta-banner {
    clip-path: polygon(0 3%, 100% 0, 100% 97%, 0 100%);
    padding: clamp(60px, 10vw, 100px) 20px !important;
  }

  .pbs-cta-banner h2 {
    font-size: clamp(1.8rem, 7vw, 3rem) !important;
  }

  /* ── Buttons (all pages) ── */
  .hm-btn,
  .hm-btn-outline,
  .pbs-btn-white-outline {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding: 16px 24px !important;
  }

  /* CTA containers — ALL page types stack vertically */
  .hm-hero-ctas,
  .hm-cta-btns,
  .cc-hero-ctas, .cc-cta-btns,
  .rc-hero-ctas, .rc-cta-btns,
  .pc-hero-ctas, .pc-cta-btns,
  .dp-hero-ctas, .dp-cta-btns,
  .dc-hero-ctas, .dc-cta-btns, .dc-move-btns,
  .gc-hero-ctas, .gc-cta-btns,
  .pw-hero-btns, .pw-cta-btns,
  .wc-hero-ctas, .wc-cta-btns,
  .sg-hero-btns, .sg-cta-btns,
  .ct-sp-hero-ctas, .ct-sp-cta-btns,
  .ct-mp-hero-ctas, .ct-mp-cta-btns,
  .ct-eg-hero-ctas, .ct-eg-cta-btns,
  .ct-igh-hero-ctas, .ct-igh-cta-btns,
  .hm-hero-city-ctas,
  .cy-hero-ctas, .cy-cta-btns,
  .ab-cta-btns,
  .ct-cta-btns,
  .gl-cta-btns,
  .sv-cta-btns,
  .sa-cta-btns {
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
  }

  .hm-hero-ctas a,
  .hm-cta-btns a,
  .cc-hero-ctas a, .cc-cta-btns a,
  .rc-hero-ctas a, .rc-cta-btns a,
  .pc-hero-ctas a, .pc-cta-btns a,
  .dp-hero-ctas a, .dp-cta-btns a,
  .dc-hero-ctas a, .dc-cta-btns a, .dc-move-btns a,
  .gc-hero-ctas a, .gc-cta-btns a,
  .pw-hero-btns a, .pw-cta-btns a,
  .wc-hero-ctas a, .wc-cta-btns a,
  .sg-hero-btns a, .sg-cta-btns a,
  .ct-sp-hero-ctas a, .ct-sp-cta-btns a,
  .ct-mp-hero-ctas a, .ct-mp-cta-btns a,
  .ct-eg-hero-ctas a, .ct-eg-cta-btns a,
  .ct-igh-hero-ctas a, .ct-igh-cta-btns a,
  .hm-hero-city-ctas a,
  .cy-hero-ctas a, .cy-cta-btns a,
  .ab-cta-btns a,
  .ct-cta-btns a,
  .gl-cta-btns a,
  .sv-cta-btns a,
  .sa-cta-btns a {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }

  /* ── Service page grids — stack on tablet ── */
  .cc-fac-grid,
  .cc-process-steps,
  .cc-inc-grid,
  .rc-fac-grid, .rc-process-steps, .rc-inc-grid,
  .pc-fac-grid, .pc-process-steps, .pc-inc-grid,
  .dp-grid, .dp-process-steps, .dp-inc-grid,
  .dc-grid, .dc-process-steps, .dc-inc-grid,
  .gc-grid, .gc-process-steps, .gc-inc-grid,
  .pw-grid, .pw-process-steps,
  .wc-grid, .wc-process-steps,
  .sg-grid, .sg-process-steps {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  /* ── City page grids — stack on tablet ── */
  .ct-sp-grid,
  .ct-mp-grid,
  .ct-eg-grid,
  .ct-igh-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  /* ── County page grids — stack on tablet ── */
  .cy-city-grid,
  .cy-services-grid,
  .cy-why-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  /* ── About page grid ── */
  .ab-value {
    grid-template-columns: 1fr !important;
  }

  /* ── Service/city/county hero — reduce height ── */
  .cc-hero, .rc-hero, .pc-hero,
  .dp-hero, .dc-hero, .gc-hero,
  .pw-hero, .wc-hero, .sg-hero,
  .ct-sp-hero, .ct-mp-hero, .ct-eg-hero, .ct-igh-hero {
    padding: 60px 0 40px !important;
  }

  .cy-hero {
    min-height: auto !important;
    padding: 60px 0 40px !important;
  }

  /* ── Service/city/county hero h1 ── */
  .cc-hero h1, .rc-hero h1, .pc-hero h1,
  .dp-hero h1, .dc-hero h1, .gc-hero h1,
  .pw-hero h1, .wc-hero h1, .sg-hero h1,
  .ct-sp-hero h1, .ct-mp-hero h1, .ct-eg-hero h1, .ct-igh-hero h1,
  .cy-hero h1 {
    font-size: clamp(1.8rem, 7vw, 2.8rem) !important;
  }

  /* ── All FAQ summaries — tighter on tablet ── */
  .cc-faq summary, .rc-faq summary, .pc-faq summary,
  .dp-faq summary, .dc-faq summary, .gc-faq summary,
  .pw-faq summary, .wc-faq summary, .sg-faq summary,
  .ct-sp-faq summary, .ct-mp-faq summary, .ct-eg-faq summary, .ct-igh-faq summary,
  .cy-faq summary {
    font-size: 15px !important;
    padding: 16px 0 !important;
  }

  .cc-faq details p, .rc-faq details p, .pc-faq details p,
  .dp-faq details p, .dc-faq details p, .gc-faq details p,
  .pw-faq details p, .wc-faq details p, .sg-faq details p,
  .ct-sp-faq details p, .ct-mp-faq details p, .ct-eg-faq details p, .ct-igh-faq details p,
  .cy-faq details p {
    font-size: 14px !important;
    padding: 0 0 16px !important;
  }

  /* ── Service/city/county CTA sections ── */
  .cc-cta, .rc-cta, .pc-cta,
  .dp-cta, .dc-cta, .gc-cta,
  .pw-cta, .wc-cta, .sg-cta,
  .ct-sp-cta, .ct-mp-cta, .ct-eg-cta, .ct-igh-cta,
  .cy-cta {
    text-align: center !important;
  }

  .cc-cta h2, .rc-cta h2, .pc-cta h2,
  .dp-cta h2, .dc-cta h2, .gc-cta h2,
  .pw-cta h2, .wc-cta h2, .sg-cta h2,
  .ct-sp-cta h2, .ct-mp-cta h2, .ct-eg-cta h2, .ct-igh-cta h2,
  .cy-cta h2 {
    font-size: clamp(1.5rem, 6vw, 2.2rem) !important;
  }

  /* ── Nearby/cross-sell pills — tighter ── */
  .ct-sp-nearby, .ct-mp-nearby, .ct-eg-nearby, .ct-igh-nearby,
  .cc-cross, .cc-industries {
    gap: 8px !important;
  }

  .ct-sp-nearby a, .ct-mp-nearby a, .ct-eg-nearby a, .ct-igh-nearby a,
  .cc-cross a, .cc-industries span {
    font-size: 12px !important;
    padding: 8px 14px !important;
  }

  /* ── Map iframe — reduce height ── */
  .pbs-map iframe {
    height: 300px !important;
  }

  /* ── Footer ── */
  .hfg_footer .footer--row > *,
  .hfg_footer .builder-row > * {
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-top: 32px !important;
    padding-bottom: 24px !important;
  }

  .hfg_footer .builder-row--main .builder-item {
    padding: 12px 0 !important;
  }

  .pbs-footer-col h4 {
    font-size: 14px !important;
    margin-bottom: 14px !important;
  }

  /* ── Images ── */
  .pbs-img-row {
    grid-template-columns: 1fr !important;
  }

  .pbs-img-block img {
    aspect-ratio: 4/5 !important;
  }

  /* ── Testimonials ── */
  .pbs-testimonial {
    padding: 24px 16px !important;
  }

  .pbs-testimonial::after {
    font-size: 5rem !important;
  }

  /* ── Vet badge ── */
  .pbs-vet-badge {
    width: 60px !important;
    height: 57px !important;
    font-size: 1.5rem !important;
  }

  /* ── General inner containers ── */
  .hm-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* ─── §24b RESPONSIVE — SMALL MOBILE (≤ 480px) ─── */

@media (max-width: 480px) {

  /* Even tighter side padding */
  .neve-main > .container,
  .neve-main > .container-fluid,
  .nv-single-page-wrap,
  .nv-content-wrap,
  .entry-content {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .hm-hero h1 {
    font-size: clamp(1.8rem, 9vw, 2.8rem) !important;
  }

  .hm-trust-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }

  .hm-trust-num {
    font-size: clamp(1.8rem, 8vw, 2.5rem) !important;
  }

  .hm-section h2 {
    font-size: clamp(1.3rem, 6vw, 1.7rem) !important;
  }

  .hm-guarantee-wrap {
    padding: 24px 16px !important;
  }

  .pbs-cta-banner {
    clip-path: none !important;
    padding: 48px 16px !important;
  }

  .pbs-cta-banner h2 {
    font-size: clamp(1.5rem, 7vw, 2.2rem) !important;
  }

  .hfg_header .header--row > * {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .hfg_footer .footer--row > *,
  .hfg_footer .builder-row > * {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* ── Service/city/county hero h1 — even smaller ── */
  .cc-hero h1, .rc-hero h1, .pc-hero h1,
  .dp-hero h1, .dc-hero h1, .gc-hero h1,
  .pw-hero h1, .wc-hero h1, .sg-hero h1,
  .ct-sp-hero h1, .ct-mp-hero h1, .ct-eg-hero h1, .ct-igh-hero h1,
  .cy-hero h1 {
    font-size: clamp(1.5rem, 8vw, 2.2rem) !important;
  }

  /* ── County hero sub — tighter ── */
  .cy-hero-sub,
  .cc-hero-sub, .rc-hero-sub, .pc-hero-sub,
  .ct-sp-hero-sub, .ct-mp-hero-sub, .ct-eg-hero-sub, .ct-igh-hero-sub {
    font-size: 15px !important;
  }

  /* ── All section h2 equivalents ── */
  .hm-sec h2 {
    font-size: clamp(1.3rem, 6vw, 1.7rem) !important;
  }

  /* ── Map iframe — even shorter ── */
  .pbs-map iframe {
    height: 250px !important;
  }

  /* ── About value numbers ── */
  .ab-value-num {
    font-size: 48px !important;
  }
}

/* ─── §25 REDUCED MOTION ─── */

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
  .hm-hero::after { display: none; }
  .pbs-reveal { opacity: 1; transform: none; }
}

/* ─── §26 WORDPRESS ADMIN SAFETY ─── */

.nv-page-title-wrap { display: none !important; }