/* =========================================================
   KC SPLASH — MASTER CORE CSS
   Code Snippets Plugin — Snippet: "KC Splash Master Core CSS"
   Last updated: 2026
   =========================================================

   TABLE OF CONTENTS

   01. Brand Tokens
   02. Typography System
   03. Button System
   04. Pill / Chip System
   05. Layout Helpers
   06. Footer CTA System
   07. Menu / Offcanvas Header + Drawer
   08. Mega Dropdown Menu
   09. YouTube Lightbox + Video Cards
   10. YouTube Bleed Kill Patch
   11. Hero Color Fixes (all pages)
   12. Gap Kill — Page to Footer
   13. BREADCRUMB — NAV CLEARANCE
   14. HERO OVERLAY — Sitewide Standard
   ========================================================= */


/* =========================================================
   01. BRAND TOKENS
========================================================= */
:root{
  --kc-ink:#0B1220;
  --kc-white:#ffffff;
  --kc-gold:#B8953F;
  --kc-gold-dark:#a88233;
  --kc-teal-deep:#047C84;
  --kc-teal-mid:#08A1A3;
  --kc-teal-bright:#11B8B8;
  --kc-radius:999px;
  --kc-shadow-soft:0 18px 55px rgba(2,6,23,.10);
}


/* =========================================================
   02. TYPOGRAPHY SYSTEM
========================================================= */

/* ---------- 02.1 Global Type Base ---------- */
body{
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--kc-ink);
  font-weight:500;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* ---------- 02.2 Hero / H1 ---------- */
h1,
.kc-h1,
#kc-home-hero .kc-hero__h1,
[class*="hero"] h1,
.kc-hero__h1{
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.04;
  font-size:clamp(2.7rem, 3.15vw + 1.15rem, 4.85rem);
  color:var(--kc-ink);
  margin:0 0 .42em;
  text-wrap:balance;
}

/* ---------- 02.3 H2 ---------- */
h2,
.kc-h2{
  font-weight:900;
  letter-spacing:-.028em;
  line-height:1.11;
  font-size:clamp(1.9rem, .9vw + 1.45rem, 2.7rem);
  color:var(--kc-ink);
  margin:0 0 .5em;
}

/* ---------- 02.4 H3 ---------- */
h3,
.kc-h3{
  font-weight:800;
  letter-spacing:-.018em;
  line-height:1.18;
  font-size:clamp(1.12rem, .28vw + 1.02rem, 1.45rem);
  color:var(--kc-ink);
  margin:0 0 .45em;
}

/* ---------- 02.5 H4 ---------- */
h4{
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.24;
  font-size:clamp(1rem, .12vw + .98rem, 1.12rem);
  color:var(--kc-ink);
  margin:0 0 .4em;
}

/* ---------- 02.6 Body Copy ---------- */
p,
.kc-p,
li{
  font-weight:500;
  letter-spacing:-.002em;
  line-height:1.7;
  font-size:clamp(1rem, .08vw + .985rem, 1.06rem);
  color:rgba(11,18,32,.76);
}

li{ margin-bottom:.32em; }

/* ---------- 02.7 Hero Paragraphs ---------- */
.kc-hero__p,
[class*="hero"] p{
  font-size:clamp(1rem, .22vw + .98rem, 1.08rem);
  line-height:1.66;
  font-weight:600;
  max-width:78ch;
}

/* ---------- 02.8 Kickers / Eyebrows ---------- */
.kc-kicker,
.kc-hero__kicker,
[class*="kicker"],
[class*="eyebrow"]{
  font-weight:800;
  letter-spacing:.14em;
  line-height:1.2;
  text-transform:uppercase;
  font-size:12.5px;
}

/* ---------- 02.9 Readability Widths ---------- */
.kc-p,
p{ max-width:72ch; }

.kc-authority-lead,
.kc-results__sub,
.kc-router__sub,
.kc-faqs__sub,
.kc-sa__sub{ max-width:68ch; }

/* ---------- 02.10 Section Rhythm ---------- */
section h2 + p,
section .kc-h2 + .kc-p,
section .kc-h2 + p{ margin-top:.15rem; }

section p + p{ margin-top:.8rem; }

section h3 + p,
section .kc-h3 + .kc-p{ margin-top:.2rem; }

/* ---------- 02.11 Mobile Tuning ---------- */
@media (max-width:768px){
  h1,.kc-h1,#kc-home-hero .kc-hero__h1,[class*="hero"] h1,.kc-hero__h1{
    font-size:clamp(2.15rem, 6.4vw, 3.35rem);
    line-height:1.04;
  }
  h2,.kc-h2{ font-size:clamp(1.65rem, 4.6vw, 2.2rem); }
  h3,.kc-h3{ font-size:clamp(1.05rem, 3.4vw, 1.28rem); }
  p,.kc-p,li{ font-size:1rem; line-height:1.68; }
  .kc-hero__p{ max-width:35ch; line-height:1.62; }
}


/* =========================================================
   03. BUTTON SYSTEM
========================================================= */

/* ---------- 03.1 Button Rows ---------- */
.hero-cta-buttons,
.kc-hero-buttons,
.kc-btns,
.btn-row,
.wp-block-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
}

/* ---------- 03.2 Base Button ---------- */
a.theme-btn,
a.outline-btn,
a.call-btn,
.theme-btn,
.outline-btn,
.call-btn,
.wp-block-button__link{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:46px !important;
  min-width:188px !important;
  padding:12px 22px !important;
  border-radius:999px !important;
  font-size:15px !important;
  font-weight:800 !important;
  letter-spacing:-.01em !important;
  text-decoration:none !important;
  transition:background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .08s ease !important;
}

/* ---------- 03.3 Gold Primary ---------- */
a.theme-btn,
.theme-btn{
  background:linear-gradient(135deg, #8b5f1d 0%, #b8953f 28%, #e3cd88 50%, #b38a33 72%, #8a5c1b 100%) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.22) !important;
  box-shadow:0 14px 30px rgba(11,18,32,.16), inset 0 1px 0 rgba(255,255,255,.22), inset 0 -10px 16px rgba(0,0,0,.12) !important;
  text-shadow:0 1px 10px rgba(0,0,0,.16) !important;
}

/* ---------- 03.4 White Outline / Call ---------- */
a.outline-btn,
a.call-btn,
.outline-btn,
.call-btn{
  background:#fff !important;
  color:var(--kc-ink) !important;
  border:2px solid rgba(184,149,63,.78) !important;
  box-shadow:0 8px 22px rgba(11,18,32,.10) !important;
}

/* ---------- 03.5 Hover / Focus ---------- */
a.theme-btn:hover,a.theme-btn:focus,
.theme-btn:hover,.theme-btn:focus,
a.outline-btn:hover,a.outline-btn:focus,
.outline-btn:hover,.outline-btn:focus,
a.call-btn:hover,a.call-btn:focus,
.call-btn:hover,.call-btn:focus{
  background:
    linear-gradient(180deg, rgba(255,255,255,.26) 0%, rgba(255,255,255,.10) 22%, rgba(255,255,255,0) 58%),
    linear-gradient(135deg, #047C84 0%, #08A1A3 56%, #11B8B8 100%) !important;
  color:#fff !important;
  border-color:#047C84 !important;
  box-shadow:0 18px 40px rgba(11,18,32,.18), 0 10px 18px rgba(4,124,132,.20), inset 0 1px 0 rgba(255,255,255,.18) !important;
}

a.theme-btn:active,a.outline-btn:active,a.call-btn:active,
.theme-btn:active,.outline-btn:active,.call-btn:active{
  transform:scale(.985) !important;
}

/* ---------- 03.6 Mobile Button Layout ---------- */
@media (max-width:768px){
  .hero-cta-buttons,.kc-hero-buttons,.kc-btns,.btn-row,.wp-block-buttons{
    flex-direction:column;
  }
  a.theme-btn,a.outline-btn,a.call-btn,
  .theme-btn,.outline-btn,.call-btn{
    width:100% !important;
    max-width:520px !important;
  }
}


/* =========================================================
   04. PILL / CHIP SYSTEM
========================================================= */

/* ---------- 04.1 Pill Groups ---------- */
.kc-pills,
.kc-sa__pills,
.kc-router .kc-pills,
.kc-resi-mini .kc-pills,
.kc-service-areas .kc-pills{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  align-items:center !important;
}

/* ---------- 04.2 Base Pill ---------- */
.kc-pill,
.kc-pills a,
.kc-sa__pills a,
.kc-router .kc-pills a,
.kc-resi-mini .kc-pills a,
.kc-service-areas .kc-pills a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:34px !important;
  padding:6px 13px !important;
  border-radius:999px !important;
  border:1px solid rgba(4,124,132,.18) !important;
  background:linear-gradient(180deg, rgba(255,255,255,.26) 0%, rgba(255,255,255,0) 100%), rgba(4,124,132,.08) !important;
  color:rgba(4,124,132,.95) !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  font-size:13.5px !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:.01em !important;
  box-shadow:0 4px 12px rgba(15,23,42,.04), inset 0 1px 0 rgba(255,255,255,.34) !important;
  transition:transform .16s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease !important;
}

/* ---------- 04.3 Hover / Focus ---------- */
.kc-pill:hover,.kc-pill:focus,
.kc-pills a:hover,.kc-pills a:focus,
.kc-sa__pills a:hover,.kc-sa__pills a:focus,
.kc-router .kc-pills a:hover,.kc-router .kc-pills a:focus,
.kc-resi-mini .kc-pills a:hover,.kc-resi-mini .kc-pills a:focus,
.kc-service-areas .kc-pills a:hover,.kc-service-areas .kc-pills a:focus{
  background:linear-gradient(180deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 100%), rgba(4,124,132,.14) !important;
  border-color:rgba(4,124,132,.30) !important;
  color:rgba(4,124,132,.98) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 8px 18px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.30) !important;
}

/* ---------- 04.4 Active ---------- */
.kc-pill:active,
.kc-pills a:active,
.kc-sa__pills a:active{ transform:scale(.985) !important; }

/* ---------- 04.5 Service Area Spacing ---------- */
.kc-service-areas .kc-sa__pills{ margin-top:10px !important; margin-bottom:10px !important; }
.kc-service-areas .kc-sa-summary{ margin-bottom:8px !important; }

/* ---------- 04.6 Mobile ---------- */
@media (max-width:768px){
  .kc-pill,
  .kc-pills a,
  .kc-sa__pills a,
  .kc-router .kc-pills a,
  .kc-resi-mini .kc-pills a,
  .kc-service-areas .kc-pills a{
    min-height:32px !important;
    padding:6px 11px !important;
    font-size:13px !important;
  }
}


/* =========================================================
   05. LAYOUT HELPERS
========================================================= */
.kc-wrap{
  width:min(1120px,calc(100% - 2rem));
  margin-inline:auto;
}

.kc-grid-2{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}

.kc-grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

@media (max-width:960px){
  .kc-grid-2,
  .kc-grid-3{ grid-template-columns:1fr; }
}


/* =========================================================
   06. FOOTER CTA SYSTEM
========================================================= */
#kc-footer-cta{
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  min-height:var(--h-d,46vh);
  overflow:hidden;
  isolation:isolate;
  display:flex;
  align-items:center;
  justify-content:center;
  background-color:#0B1220;
}

#kc-footer-cta::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background-image:linear-gradient(180deg, rgba(11,18,32,.38), rgba(11,18,32,.58)), var(--bg-url);
  background-position:center, var(--bg-x,50%) var(--bg-y,50%);
  background-size:cover, cover;
  background-repeat:no-repeat, no-repeat;
  transform:scale(1.04);
  will-change:transform;
}

@media (min-width:769px){
  #kc-footer-cta.parallax::before{ background-attachment:scroll, fixed; }
}

#kc-footer-cta .gloss{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 26%),
    linear-gradient(0deg, rgba(0,0,0,.10), rgba(0,0,0,0));
}

#kc-footer-cta .inner{
  position:relative; z-index:2;
  width:min(1200px, calc(100% - 32px));
  margin:0 auto; padding:44px 20px;
}

#kc-footer-cta .copy{ max-width:860px; margin:0 auto; text-align:center; }

#kc-footer-cta .kc-footer-cta__h2,
#kc-footer-cta .kc-footer-cta__h2 .kc-footer-cta__accent{
  color:#fff !important;
  text-shadow:0 10px 28px rgba(0,0,0,.28);
}

#kc-footer-cta .kc-footer-cta__h2{
  margin:0 0 14px;
  font-size:clamp(2rem, 1.5vw + 1.5rem, 3.3rem);
  line-height:1.06; letter-spacing:-.03em; font-weight:900;
}

#kc-footer-cta .kc-footer-cta__lead{
  margin:0 auto 22px; max-width:720px;
  color:rgba(255,255,255,.94);
  font-size:clamp(1rem, .25vw + .95rem, 1.12rem);
  line-height:1.7; font-weight:600;
  text-shadow:0 4px 18px rgba(0,0,0,.18);
}

#kc-footer-cta .btn-row{
  display:flex; flex-wrap:wrap; align-items:center;
  justify-content:center; gap:14px; margin-top:8px;
}

#kc-footer-cta .btn-row a{ width:min(100%, var(--btn-w,260px)); justify-content:center; }

@media (max-width:768px){
  #kc-footer-cta{ min-height:var(--h-m,60vh); }
  #kc-footer-cta::before{ background-attachment:scroll, scroll !important; transform:scale(1.02); }
  #kc-footer-cta .inner{ padding:40px 18px; }
  #kc-footer-cta .btn-row{ flex-direction:column; gap:12px; }
  #kc-footer-cta .btn-row a{ width:100%; max-width:420px; }
}


/* =========================================================
   07. MENU / OFFCANVAS HEADER + DRAWER
========================================================= */

.ct-header,
.ct-header [data-row],
.ct-header [data-column],
header,
header .ct-container{
  background:#fff !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  background-image:none !important;
}

.ct-header::after,
.ct-header [data-row]::after,
.ct-header [data-column]::after,
.ct-header .ct-container::after{
  content:none !important;
  display:none !important;
}

.ct-header .menu > li > a{
  color:var(--kc-gold) !important;
  font-weight:800 !important;
  white-space:nowrap !important;
  text-decoration:none !important;
  letter-spacing:-.01em !important;
  padding:6px 12px !important;
  font-size:14.5px !important;
  transition:color .18s ease, opacity .18s ease !important;
}

.ct-header .menu > li > a:hover,
.ct-header .menu > li:hover > a,
.ct-header .menu > li.current-menu-item > a,
.ct-header .menu > li.current-menu-ancestor > a{
  color:var(--kc-teal-deep) !important;
}

.ct-header .menu > li > a::after{ display:none !important; }
.ct-header .menu{ gap:0 !important; }

.ct-header .sub-menu{
  background:#fff !important;
  border:1px solid rgba(11,18,32,.08) !important;
  border-radius:16px !important;
  box-shadow:0 16px 34px rgba(11,18,32,.10) !important;
  padding:10px !important;
}

.ct-header .menu .sub-menu a{
  color:var(--kc-ink) !important;
  font-weight:700 !important;
  padding:10px 14px !important;
  border-radius:10px !important;
  text-decoration:none !important;
  transition:background .18s ease, color .18s ease, transform .12s ease !important;
}

.ct-header .menu .sub-menu a:hover,
.ct-header .menu .sub-menu li:hover > a{
  color:var(--kc-teal-deep) !important;
  background:rgba(4,124,132,.08) !important;
  transform:translateX(2px);
}

.ct-header button.ct-hamburger,
.ct-header .ct-hamburger{ color:var(--kc-gold) !important; }

.ct-header button.ct-hamburger span,
.ct-header .ct-hamburger span{ background:var(--kc-gold) !important; }

.ct-header button.ct-hamburger:hover span,
.ct-header button.ct-hamburger:focus span,
.ct-header .ct-hamburger:hover span,
.ct-header .ct-hamburger:focus span{ background:var(--kc-teal-deep) !important; }

html body{ --kc-offcanvas-w:min(92vw, 420px); }

html body .ct-panel[data-panel="offcanvas"],
html body [data-panel="offcanvas"] .ct-panel,
html body .ct-drawer,
html body .ct-offcanvas-panel,
html body #offcanvas{
  width:var(--kc-offcanvas-w) !important;
  max-width:92vw !important;
  --panel-width:var(--kc-offcanvas-w) !important;
  --drawer-width:var(--kc-offcanvas-w) !important;
}

.ct-panel,.ct-drawer,.ct-offcanvas,.ct-offcanvas-panel,
[data-panel="offcanvas"],#offcanvas,
#offcanvas .ct-panel-content,
#offcanvas .ct-panel-content-inner{
  background:linear-gradient(180deg,#ffffff 0%, #fbfbfd 100%) !important;
  color:var(--kc-ink) !important;
}

#offcanvas .ct-panel-content-inner{ padding:32px 28px 40px !important; }
#offcanvas .ct-panel-heading{ display:none !important; }

html body .ct-panel[data-panel="offcanvas"] a,
html body .ct-drawer a,
html body #offcanvas a,
#offcanvas nav.mobile-menu,
#offcanvas nav.mobile-menu a{
  direction:ltr !important;
  unicode-bidi:normal !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  word-spacing:normal !important;
  letter-spacing:normal !important;
  hyphens:none !important;
}

#offcanvas nav.mobile-menu > ul > li{
  margin-bottom:22px !important;
  border-bottom:1px solid rgba(11,18,32,.06) !important;
  padding-bottom:16px !important;
}
#offcanvas nav.mobile-menu > ul > li:last-child{ border-bottom:0 !important; }

#offcanvas nav.mobile-menu > ul > li > a{
  font-size:19px !important; font-weight:700 !important;
  line-height:1.22 !important; letter-spacing:-.01em !important;
  color:var(--kc-ink) !important; text-decoration:none !important;
  transition:color .18s ease, transform .18s ease !important;
}

#offcanvas nav.mobile-menu > ul > li > a:hover,
#offcanvas nav.mobile-menu > ul > li.current-menu-item > a,
#offcanvas nav.mobile-menu > ul > li.current-menu-ancestor > a{
  color:var(--kc-gold) !important;
  transform:translateX(4px);
}

#offcanvas nav.mobile-menu .sub-menu{
  margin-top:10px !important; padding:12px 14px !important;
  background:#f8f9fb !important; border:1px solid rgba(11,18,32,.06) !important;
  border-radius:14px !important; box-shadow:0 8px 24px rgba(11,18,32,.06) !important;
}
#offcanvas nav.mobile-menu .sub-menu li{ margin-bottom:10px !important; }
#offcanvas nav.mobile-menu .sub-menu li:last-child{ margin-bottom:0 !important; }
#offcanvas nav.mobile-menu .sub-menu a{
  font-size:16px !important; font-weight:600 !important;
  line-height:1.3 !important; color:#3a4a5a !important;
  text-decoration:none !important;
  transition:color .18s ease, transform .18s ease !important;
}
#offcanvas nav.mobile-menu .sub-menu a:hover,
#offcanvas nav.mobile-menu .sub-menu li.current-menu-item > a{
  color:var(--kc-gold) !important; transform:translateX(3px);
}

.ct-panel-actions,
.ct-panel-actions .ct-close-button{ display:none !important; }

#offcanvas .ct-close-button{
  position:absolute !important; top:14px !important; right:14px !important;
  z-index:9999 !important; width:44px !important; height:44px !important;
  border-radius:12px !important;
  background:rgba(184,149,63,.16) !important;
  border:1px solid rgba(184,149,63,.35) !important;
  box-shadow:0 10px 24px rgba(11,18,32,.12) !important;
  opacity:1 !important;
}

#offcanvas .ct-close-button svg,
#offcanvas .ct-close-button svg *{
  stroke:var(--kc-gold) !important; fill:none !important; stroke-width:2.25 !important;
}

#offcanvas .theme-btn,
#offcanvas .call-btn,
#offcanvas .outline-btn{ width:100% !important; margin-top:24px !important; }

@media (min-width:768px) and (max-width:1024px){
  #offcanvas{ width:420px !important; max-width:420px !important; }
}


/* =========================================================
   08. MEGA DROPDOWN MENU
========================================================= */

.ct-header .menu > li.menu-item-has-children > .sub-menu {
  border-radius: 18px !important;
  border: 1px solid rgba(11,18,32,.09) !important;
  box-shadow: 0 24px 60px rgba(11,18,32,.13), 0 4px 12px rgba(11,18,32,.06), inset 0 0 0 1px rgba(255,255,255,.8) !important;
  background: #fff !important;
  padding: 10px !important;
  overflow: visible !important;
  min-width: 220px !important;
  opacity: 0 !important;
  transform: translateY(6px) !important;
  transition: opacity .18s ease, transform .18s ease !important;
  pointer-events: none !important;
}

.ct-header .menu > li.menu-item-has-children:hover > .sub-menu,
.ct-header .menu > li.menu-item-has-children:focus-within > .sub-menu {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

.ct-header .menu > li > .sub-menu li.menu-item-has-children > .sub-menu {
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
  transition: none !important;
  border-radius: 14px !important;
  border: 1px solid rgba(11,18,32,.09) !important;
  box-shadow: 0 16px 40px rgba(11,18,32,.12) !important;
  background: #fff !important;
  padding: 8px !important;
  min-width: 200px !important;
}

.ct-header .menu > li.menu-item-has-children:hover > a,
.ct-header .menu > li.menu-item-has-children:focus-within > a {
  color: var(--kc-teal-deep) !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu > li > a {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  padding: 10px 12px !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  white-space: normal !important;
  line-height: 1.3 !important;
  color: var(--kc-ink) !important;
  font-weight: 700 !important;
  font-size: 13.5px !important;
  border: 1px solid transparent !important;
  transition: background .15s ease, color .15s ease, transform .12s ease, border-color .15s ease !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu > li > a:hover {
  background: rgba(4,124,132,.06) !important;
  color: var(--kc-teal-deep) !important;
  border-color: rgba(4,124,132,.12) !important;
  transform: translateX(2px) !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu > li > a::before {
  content: "" !important;
  width: 6px !important; height: 6px !important;
  border-radius: 50% !important;
  background: rgba(184,149,63,.45) !important;
  flex-shrink: 0 !important;
  transition: background .15s ease, transform .15s ease !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu > li > a:hover::before {
  background: var(--kc-teal-deep) !important;
  transform: scale(1.4) !important;
}

.ct-header .menu > li > .sub-menu > li.menu-item-has-children > a::after {
  content: "›" !important;
  margin-left: auto !important;
  font-size: 16px !important;
  color: rgba(11,18,32,.35) !important;
  line-height: 1 !important;
}

.ct-header .menu > li > .sub-menu li.menu-item-has-children > .sub-menu > li > a {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 9px 12px !important;
  border-radius: 9px !important;
  color: var(--kc-ink) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-decoration: none !important;
  border: 1px solid transparent !important;
  transition: background .15s ease, color .15s ease !important;
}

.ct-header .menu > li > .sub-menu li.menu-item-has-children > .sub-menu > li > a:hover {
  background: rgba(4,124,132,.06) !important;
  color: var(--kc-teal-deep) !important;
  border-color: rgba(4,124,132,.12) !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)) {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  min-width: 520px !important;
  max-width: 560px !important;
  gap: 3px !important;
  padding: 10px 10px 0 10px !important;
  background: radial-gradient(600px 160px at 50% 0%, rgba(184,149,63,.04), transparent 70%), #fff !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(9)) > li:nth-last-child(2) {
  grid-column: 1 / -1 !important;
  margin-top: 8px !important;
  border-top: 1px solid rgba(11,18,32,.07) !important;
  padding-top: 6px !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(9)) > li:nth-last-child(2) > a {
  justify-content: center !important;
  background: linear-gradient(135deg, rgba(4,124,132,.08), rgba(4,124,132,.14)) !important;
  border: 1px solid rgba(4,124,132,.22) !important;
  color: var(--kc-teal-deep) !important;
  font-weight: 900 !important;
  font-size: 13px !important;
  transform: none !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(9)) > li:nth-last-child(2) > a:hover {
  background: linear-gradient(135deg, rgba(4,124,132,.14), rgba(4,124,132,.22)) !important;
  border-color: rgba(4,124,132,.35) !important;
  transform: none !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(9)) > li:nth-last-child(2) > a::before { display: none !important; }

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(9)) > li:nth-last-child(2) > a::after {
  content: "→" !important; font-size: 14px !important; margin-left: 4px !important; transition: transform .15s ease !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(9)) > li:nth-last-child(2) > a:hover::after { transform: translateX(3px) !important; }

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)):not(:has(> li:nth-child(10))) > li:last-child {
  grid-column: 1 / -1 !important;
  margin-top: 8px !important;
  border-top: 1px solid rgba(11,18,32,.07) !important;
  padding: 6px 0 10px !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)):not(:has(> li:nth-child(10))) > li:last-child > a {
  justify-content: center !important;
  background: linear-gradient(135deg, rgba(184,149,63,.10), rgba(184,149,63,.18)) !important;
  border: 1px solid rgba(184,149,63,.30) !important;
  color: var(--kc-gold) !important;
  font-weight: 900 !important; font-size: 13px !important; transform: none !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)):not(:has(> li:nth-child(10))) > li:last-child > a:hover {
  background: linear-gradient(135deg, rgba(184,149,63,.18), rgba(184,149,63,.28)) !important;
  border-color: rgba(184,149,63,.48) !important;
  color: var(--kc-gold-dark) !important; transform: none !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)):not(:has(> li:nth-child(10))) > li:last-child > a::before { display: none !important; }
.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)):not(:has(> li:nth-child(10))) > li:last-child > a::after {
  content: "→" !important; font-size: 14px !important; margin-left: 4px !important; transition: transform .15s ease !important;
}
.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)):not(:has(> li:nth-child(10))) > li:last-child > a:hover::after { transform: translateX(3px) !important; }

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(10)) { padding-bottom: 0 !important; }

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(10))::after {
  content: "Real KC Splash Results" !important;
  grid-column: 1 / -1 !important;
  display: block !important;
  text-align: center !important;
  font-size: 9.5px !important;
  font-weight: 900 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: rgba(11,18,32,.25) !important;
  padding: 8px 0 10px !important;
  border-top: 1px solid rgba(11,18,32,.06) !important;
  margin-top: 4px !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:not(:has(> li:nth-child(5))) {
  min-width: 200px !important;
  padding: 10px !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:not(:has(> li:nth-child(5)))::before {
  content: "About KC Splash" !important;
  display: block !important;
  font-size: 9.5px !important; font-weight: 900 !important;
  letter-spacing: .14em !important; text-transform: uppercase !important;
  color: var(--kc-gold) !important;
  padding: 2px 12px 8px !important;
  border-bottom: 1px solid rgba(184,149,63,.15) !important;
  margin-bottom: 4px !important;
}

.ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(3)):not(:has(> li:nth-child(4)))::before {
  display: none !important;
}

@media (max-width: 1024px) {
  .ct-header .menu > li.menu-item-has-children > .sub-menu {
    opacity: 1 !important; transform: none !important;
    pointer-events: auto !important; overflow: hidden !important;
    min-width: unset !important; padding: 10px !important;
    background: #fff !important; border-radius: 16px !important;
  }

  .ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)) {
    display: block !important; grid-template-columns: unset !important;
    min-width: unset !important; max-width: unset !important;
    padding: 10px !important; background: #fff !important;
  }

  .ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)):not(:has(> li:nth-child(10))) > li:last-child,
  .ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(9)) > li:nth-last-child(2) {
    grid-column: unset !important; border-top: none !important;
    margin-top: 0 !important; padding: 0 !important;
  }

  .ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(5)):not(:has(> li:nth-child(10))) > li:last-child > a,
  .ct-header .menu > li.menu-item-has-children > .sub-menu:has(> li:nth-child(9)) > li:nth-last-child(2) > a {
    background: transparent !important; border: 1px solid transparent !important;
    color: var(--kc-ink) !important; font-weight: 700 !important;
    justify-content: flex-start !important; padding: 10px 14px !important;
  }

  .ct-header .menu > li.menu-item-has-children > .sub-menu::before,
  .ct-header .menu > li.menu-item-has-children > .sub-menu::after { display: none !important; }

  .ct-header .menu > li.menu-item-has-children > .sub-menu > li > a::before,
  .ct-header .menu > li.menu-item-has-children > .sub-menu > li > a::after,
  .ct-header .menu > li > .sub-menu > li.menu-item-has-children > a::after { display: none !important; }

  .ct-header .menu > li > a { padding: 8px 12px !important; }
}

@supports not selector(:has(a)) {
  .ct-header .menu > li.menu-item-has-children > .sub-menu {
    min-width: 240px !important; opacity: 1 !important;
    transform: none !important; pointer-events: auto !important;
  }
}


/* =========================================================
   09. YOUTUBE LIGHTBOX + VIDEO CARDS
========================================================= */

.kc-yt{
  position:relative; width:100%; aspect-ratio:16 / 9;
  border-radius:18px; overflow:hidden; background:#0b1220;
  box-shadow:0 16px 38px rgba(15,23,42,.10);
}

.kc-yt img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block; transition:transform .35s ease;
}

.kc-yt:hover img{ transform:scale(1.02); }
.kc-yt iframe{ width:100% !important; height:100% !important; display:block; border:0; }

.kc-yt__overlay{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  background:linear-gradient(180deg, rgba(11,18,32,.08), rgba(11,18,32,.30));
  transition:background .25s ease;
}
.kc-yt:hover .kc-yt__overlay{ background:linear-gradient(180deg, rgba(11,18,32,.06), rgba(11,18,32,.22)); }

.kc-yt__btn{
  width:72px; height:72px; border-radius:999px;
  background:rgba(255,255,255,.88); border:1px solid rgba(255,255,255,.55);
  box-shadow:0 14px 36px rgba(0,0,0,.18);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  position:relative; transition:transform .18s ease, background .18s ease;
}
.kc-yt:hover .kc-yt__btn{ transform:scale(1.04); background:rgba(255,255,255,.94); }
.kc-yt__btn::before{
  content:""; position:absolute; top:50%; left:50%;
  transform:translate(-38%,-50%);
  border-top:12px solid transparent; border-bottom:12px solid transparent; border-left:18px solid #0B1220;
}
.kc-yt__overlay:focus{ outline:3px solid rgba(184,149,63,.45); outline-offset:-3px; }
.kc-yt::before{ content:none !important; display:none !important; }

#kc-yt-modal{ position:fixed; inset:0; display:none; z-index:999999; }
#kc-yt-modal.kc-open{ display:block; }
#kc-yt-modal .kc-yt-backdrop{ position:absolute; inset:0; background:rgba(3,7,18,.84); }
#kc-yt-modal .kc-yt-panel{
  position:absolute; left:50%; top:50%; transform:translate(-50%, -50%);
  width:min(1200px, calc(100vw - 24px)); border-radius:18px;
  overflow:hidden; background:#000; box-shadow:0 22px 80px rgba(0,0,0,.45);
}
#kc-yt-modal .kc-yt-frame{ width:100%; aspect-ratio:16 / 9; display:block; border:0; background:#000; }
#kc-yt-modal .kc-yt-close{
  position:absolute; top:12px; right:12px; width:42px; height:42px;
  border-radius:999px; border:1px solid rgba(255,255,255,.20);
  background:rgba(0,0,0,.42); color:#fff; font-size:24px; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:3;
}
body.kc-yt-lock{ overflow:hidden; }

@media (max-width:768px){
  .kc-yt__btn{ width:62px; height:62px; }
  .kc-yt__btn::before{
    border-top:10px solid transparent; border-bottom:10px solid transparent; border-left:16px solid #0B1220;
  }
  #kc-yt-modal .kc-yt-panel{
    width:100vw; max-width:100vw; left:0; top:50%;
    transform:translate(0, -50%); border-radius:0;
  }
}


/* =========================================================
   10. YOUTUBE BLEED KILL PATCH
========================================================= */
#kc-why-different .kc-card,
#kc-why-pm .kc-card{ overflow:hidden; }

#kc-why-different .kc-card .kc-yt,
#kc-why-pm .kc-card .kc-yt{
  margin-left:0 !important; margin-right:0 !important;
  margin-bottom:0 !important; width:100% !important; max-width:100% !important;
}


/* =========================================================
   11. HERO COLOR FIXES
========================================================= */

.kc-pgc-hero__h1, .kc-hub-hero__h1, .kc-bw-hero__h1,
.kc-lot-hero__h1, .kc-cc-hero__h1, .kc-gr-hero__h1,
.kc-hr-hero__h1, .kc-awn-hero__h1, .kc-cs-hero__h1,
.kc-case-hero__h1, .kc-tool-hero__h1,
.kc-svc-hero__h1 {
  color: #ffffff !important;
}

.kc-pgc-hero__gold, .kc-hub-hero__gold, .kc-bw-hero__gold,
.kc-lot-hero__gold, .kc-cc-hero__gold, .kc-gr-hero__gold,
.kc-hr-hero__gold, .kc-awn-hero__gold, .kc-cs-hero__gold,
.kc-case-hero__gold, .kc-tool-hero__gold,
.kc-svc-hero__gold {
  color: #D4AF4A !important;
  display: block;
}

.kc-pgc-hero__p, .kc-hub-hero__p, .kc-bw-hero__p,
.kc-lot-hero__p, .kc-cc-hero__p, .kc-gr-hero__p,
.kc-hr-hero__p, .kc-awn-hero__p, .kc-cs-hero__p,
.kc-tool-hero__p, .kc-svc-hero__sub {
  color: rgba(255,255,255,0.94) !important;
}

.kc-pgc-hero__kicker, .kc-hub-hero__kicker, .kc-bw-hero__kicker,
.kc-lot-hero__kicker, .kc-cc-hero__kicker, .kc-gr-hero__kicker,
.kc-hr-hero__kicker, .kc-awn-hero__kicker, .kc-cs-hero__kicker,
.kc-case-hero__kicker, .kc-tool-hero__kicker {
  color: #ffffff !important;
}

.kc-pgc-hero__trust, .kc-hub-hero__trust, .kc-bw-hero__trust,
.kc-lot-hero__trust, .kc-cc-hero__trust, .kc-gr-hero__trust,
.kc-hr-hero__trust, .kc-awn-hero__trust, .kc-tool-hero__trust,
.kc-svc-hero__trust {
  color: rgba(255,255,255,0.82) !important;
}

.kc-case-hero__gold {
  color: #D4AF4A !important;
  display: block;
  font-size: 0.72em;
  font-weight: 800;
}

.kc-hub-equipment__h2 { color: #ffffff !important; }
.kc-hub-equipment__accent { color: #D4AF4A !important; }

.kc-hub-footer-cta__h2, .kc-pgc-footer-cta__h2, .kc-lot-footer-cta__h2,
.kc-bw-footer-cta__h2, .kc-cc-footer-cta__h2, .kc-gr-footer-cta__h2,
.kc-hr-footer-cta__h2, .kc-awn-footer-cta__h2, .kc-cs-footer-cta__h2 {
  color: #ffffff !important;
}

.kc-hub-footer-cta__accent, .kc-pgc-footer-cta__accent, .kc-lot-footer-cta__accent,
.kc-bw-footer-cta__accent, .kc-cc-footer-cta__accent, .kc-gr-footer-cta__accent,
.kc-hr-footer-cta__accent, .kc-awn-footer-cta__accent, .kc-cs-footer-cta__accent {
  color: #D4AF4A !important;
}

.kc-hub-footer-cta__p, .kc-pgc-footer-cta__p, .kc-lot-footer-cta__p,
.kc-bw-footer-cta__p, .kc-cc-footer-cta__p, .kc-gr-footer-cta__p,
.kc-hr-footer-cta__p, .kc-awn-footer-cta__p, .kc-cs-footer-cta__p {
  color: rgba(255,255,255,0.88) !important;
}


/* =========================================================
   12. GAP KILL — PAGE CONTENT TO FOOTER
========================================================= */

.ct-content,
.ct-content-area,
.ct-container,
.ct-main,
main.ct-main,
.site-main,
.entry-content {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.ct-content > *:last-child,
.ct-content-area > *:last-child,
.ct-main > *:last-child,
main > *:last-child,
.site-main > *:last-child,
.entry-content > *:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.wp-block-post-content,
.wp-site-blocks > main,
.wp-block-group:last-child,
.wp-block-html:last-child {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.kc-foot,
footer.kc-foot {
  margin-top: 0 !important;
}


/* =========================================================
   13. BREADCRUMB — NAV CLEARANCE
   Pushes residential breadcrumb below sticky header.
   Adjust value if nav height changes.
========================================================= */
.kc-rp-breadcrumb {
  padding-top: 80px;
}

/* =========================================================
   14. HERO OVERLAY — Sitewide Standard
   Matches the commercial building washing page look.
   Light enough to see the video, dark enough to read the heading.
   Commercial pages use their own scoped overlay classes
   (.kc-bw-hero__overlay etc.) and are NOT affected by this rule.
   To override on any specific page, add a scoped rule in that
   page's inline CSS and it will win over this master rule.
========================================================= */

/* Residential service page heroes */
.kc-rp-hero .overlay,
/* Residential hub hero */
.krhv1 .hero .overlay,
/* Homepage hero */
#kc-home-hero .kc-hero__overlay,
/* City page heroes */
.kcs-hero .kcs-hero__overlay {
  background:
    radial-gradient(900px 520px at 50% 35%, rgba(0,0,0,.08), rgba(0,0,0,.44) 72%),
    linear-gradient(180deg, rgba(6,10,18,.46) 0%, rgba(6,10,18,.28) 52%, rgba(6,10,18,.58) 100%) !important;
}

/* --- Hide sticky Call Now / Get a Quote bar while the quote popup / embedded free-quote form is open (added 2026-07-10) --- */
html.kc-calc-embed-mode-html .kccta-bar,
body.kc-calc-embed-mode .kccta-bar,
html.kc-quote-lock .kccta-bar { display: none !important; }


/* === Sticky header glide — reveal on scroll-up (2026-07-20) === */
.mswbar{transition:transform .34s cubic-bezier(.4,0,.2,1),box-shadow .3s ease;will-change:transform;}
.mswbar.kc-hdr-hidden{transform:translateY(-102%);}
.mswbar.kc-hdr-float{box-shadow:0 10px 30px rgba(0,0,0,.28);}


/* ===== Money-page band subheader centering (global) — 2026-07-27 ===== */
.price-band p{margin-left:auto!important;margin-right:auto!important}
.final .wrap p{margin-left:auto!important;margin-right:auto!important}

/* KC 2026-08-21: trust strip mobile tidy — hide dot separators + stray breaks on phones. Desktop untouched. */
@media (max-width: 768px){
  .trust .dot{ display:none !important; }
  .trust .wrap br{ display:none !important; }
  .trust .wrap{ gap:10px 22px !important; justify-content:center !important; text-align:center !important; }
}


/* COOKIE BANNER VISIBILITY FIX (added 2026-09-05) - delete to revert
   Blocksy sets background:var(--backgroundColor) on .cookie-notification but that variable
   is never defined, so the banner rendered FULLY TRANSPARENT on mobile while still sitting
   position:fixed at z-index 999999 over the bottom-left of every page. Invisible means never
   dismissed, so it silently swallowed taps on whatever sat under it (Clarity: 100 dead-click
   sessions in 30 days; 59% of traffic is mobile). */
.cookie-notification[data-type="type-1"],
.cookie-notification[data-type="type-1"] .container{background:#0b1220!important;border-radius:12px}
.cookie-notification .ct-cookies-content,
.cookie-notification .ct-cookies-content *{color:#f6f2e6!important}
.cookie-notification .ct-cookies-content a{color:#c8a24a!important;text-decoration:underline}
@media (max-width:689.98px){
.cookie-notification[data-type="type-1"]{left:8px!important;right:8px!important;width:auto!important;max-width:none!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;box-shadow:0 8px 30px rgba(0,0,0,.45)}
}
/* END COOKIE BANNER VISIBILITY FIX */
