/* J4T complete header – all selectors scoped to the standalone widget. */
.elementor-widget-j4t_complete_header{position:relative;z-index:1100!important}
.elementor-widget-j4t_complete_header>.elementor-widget-container{position:relative}
.j4t-full-header{--j4t-header-accent:#3b4d98;position:relative;z-index:1100;width:100%;background:#fff;color:#142138;font-family:Inter,Arial,sans-serif;box-shadow:0 1px 0 rgba(16,29,59,.08);isolation:isolate}
.j4t-full-header,.j4t-full-header *{box-sizing:border-box}
.j4t-full-header a{text-decoration:none!important}
.j4t-full-header a:focus-visible,.j4t-full-header button:focus-visible{outline:3px solid #6d8ae1;outline-offset:3px}
.j4t-full-header button{font-family:inherit}
.j4t-full-header__top{background:#344b99;color:#fff}
.j4t-full-header__top-inner{display:flex;align-items:center;justify-content:flex-end;gap:22px;width:90%;max-width:1300px;min-height:37px;margin:0 auto}
.j4t-full-header__top-link{font-size:12px;font-weight:600;color:#fff!important}
.j4t-full-header__inner{width:90%;max-width:1300px;min-height:126px;margin:0 auto;display:grid;grid-template-columns:minmax(100px,1fr) auto minmax(220px,1fr);align-items:center;gap:26px;position:relative}
.j4t-full-header__brand{display:inline-flex;align-items:center;justify-content:flex-start;min-width:0;width:max-content;max-width:100%;color:#20326d!important}
.j4t-full-header__brand img{display:block;width:112px;max-width:100%;max-height:119px;height:auto;object-fit:contain}
.j4t-full-header__brand-fallback{display:block;max-width:180px;font-size:15px;font-weight:900;letter-spacing:-.025em}
.j4t-full-header__nav{display:flex;align-items:center;justify-content:center;gap:23px;white-space:nowrap}
.j4t-full-header__nav-item{position:relative;display:inline-flex;align-items:center;gap:4px;min-height:48px}
.j4t-full-header__nav-link{position:relative;display:inline-flex;align-items:center;min-height:48px;color:#142138;font-size:17px;font-weight:800;line-height:1.2;transition:color .2s ease}
.j4t-full-header__nav-link:after{content:"";position:absolute;bottom:4px;left:0;right:100%;height:2px;background:var(--j4t-header-accent);transition:right .2s ease}
.j4t-full-header__nav-item:hover .j4t-full-header__nav-link,.j4t-full-header__nav-item.is-active .j4t-full-header__nav-link{color:var(--j4t-header-accent)}
.j4t-full-header__nav-item:hover .j4t-full-header__nav-link:after,.j4t-full-header__nav-item.is-active .j4t-full-header__nav-link:after{right:0}
.j4t-full-header__nav-arrow{display:inline-flex;align-items:center;justify-content:center;min-width:22px;min-height:38px;padding:0 1px 0 3px;border:0;background:transparent;color:#142138;cursor:pointer}
.j4t-full-header__nav-arrow svg{transition:transform .2s ease}
.j4t-full-header__nav-item.is-active .j4t-full-header__nav-arrow svg{transform:rotate(180deg)}
.j4t-full-header__cta{display:inline-flex;align-items:center;justify-content:center;justify-self:end;min-height:49px;padding:14px 22px;white-space:nowrap;border-radius:5px;background:#3b4d98;color:#fff!important;font-size:12px;font-weight:800;line-height:1.25;text-align:center;box-shadow:0 7px 16px rgba(46,65,128,.08);transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.j4t-full-header__cta:hover{background:#283b82!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 10px 22px rgba(46,65,128,.2)}
.j4t-full-header__cta-mobile{display:none}
.j4t-full-header__burger,.j4t-full-header__mobile-drawer{display:none}
/* Desktop dropdowns overlap page content; they do not push the hero down. */
.j4t-full-header__panels{position:absolute;top:100%;left:0;right:0;z-index:1110;pointer-events:none}
.j4t-full-header__panel{position:absolute;top:0;left:0;width:100%;padding-top:8px;opacity:0;visibility:hidden;transform:translateY(9px);pointer-events:none;transition:opacity .22s ease,transform .22s ease,visibility .22s ease}
.j4t-full-header__panel.is-open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.j4t-full-header__panel-card{width:calc(100% - 36px);max-width:1180px;margin:0 auto;padding:26px 30px 0;background:#fff;border:1px solid #dfe5ef;border-top:3px solid var(--j4t-header-accent);border-radius:0 0 13px 13px;box-shadow:0 18px 50px rgba(19,34,75,.18);overflow:hidden}
.j4t-full-header__panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #e9edf3}
.j4t-full-header__eyebrow{display:block;margin-bottom:6px;font-size:10px;font-weight:800;letter-spacing:.13em;color:var(--j4t-header-accent)}
.j4t-full-header__panel-title{margin:0!important;font-family:Manrope,Inter,Arial,sans-serif;font-size:23px!important;font-weight:800!important;line-height:1.27!important;color:#152341!important}
.j4t-full-header__panel-head-link{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;padding:11px 17px;border:1px solid #d6deef;border-radius:6px;color:var(--j4t-header-accent)!important;font-size:12px;font-weight:800;transition:background .2s ease}
.j4t-full-header__panel-head-link:hover{background:#f2f5fc}
.j4t-full-header__columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding-bottom:22px}
.j4t-full-header__group{min-width:0;padding:0 23px}
.j4t-full-header__group:first-child{padding-left:0}
.j4t-full-header__group:last-child{padding-right:0}
.j4t-full-header__group+.j4t-full-header__group{border-left:1px solid #e8edf4}
.j4t-full-header__group-title{margin:0 0 11px!important;padding-bottom:10px;border-bottom:1px solid #e6eaf3;color:#152341!important;font-size:15px!important;font-weight:800!important;line-height:1.35!important}
.j4t-full-header__group-links{display:flex;flex-direction:column}
.j4t-full-header__service-link,.j4t-full-header__location-link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 8px;min-height:43px;color:#354158;font-size:13px;font-weight:600;line-height:1.35;border-bottom:1px solid #f0f2f7;border-radius:5px;transition:background .2s ease,color .2s ease,transform .2s ease}
.j4t-full-header__service-link svg,.j4t-full-header__location-link svg{flex:0 0 15px;opacity:.2;transition:opacity .2s ease,transform .2s ease}
.j4t-full-header__service-link:hover,.j4t-full-header__location-link:hover{background:#f3f6ff;color:var(--j4t-header-accent)!important;transform:translateX(2px)}
.j4t-full-header__service-link:hover svg,.j4t-full-header__location-link:hover svg{opacity:1;transform:translateX(2px)}
.j4t-full-header__panel-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin:0 -30px;padding:15px 30px;background:#f4f6fb;color:#59677f;font-size:12px;font-weight:600}
.j4t-full-header__panel-bottom>span:first-child{color:#59677f}
.j4t-full-header__panel-bottom a{color:var(--j4t-header-accent)!important;font-weight:800}
.j4t-full-header__panel--locations .j4t-full-header__panel-card{max-width:480px;margin:0 auto;padding:22px 24px 25px}
.j4t-full-header__panel--locations .j4t-full-header__panel-title{font-size:18px!important;margin-bottom:17px!important}
.j4t-full-header__locations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}
.j4t-full-header__location-link{font-size:13px}
@media(max-width:1380px){
  .j4t-full-header__inner{gap:17px}
  .j4t-full-header__nav{gap:16px}
  .j4t-full-header__nav-link{font-size:15px}
  .j4t-full-header__cta{padding:13px 15px;font-size:11px}
}
@media(max-width:1199px){
  .j4t-full-header__inner{grid-template-columns:minmax(90px,1fr) auto auto;gap:15px;min-height:84px}
  .j4t-full-header__brand img{width:83px;max-height:82px}
  .j4t-full-header__nav,.j4t-full-header__panels{display:none!important}
  .j4t-full-header__cta{margin-left:auto;min-height:42px;padding:12px 15px}
  .j4t-full-header__cta-desktop{display:none}
  .j4t-full-header__cta-mobile{display:inline}
  .j4t-full-header__burger{display:flex;position:relative;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:47px;height:44px;padding:0;border:1px solid #dce2f0;border-radius:7px;background:#f7f8fc;color:#26396f;cursor:pointer}
  .j4t-full-header__burger span{display:block;width:22px;height:2px;background:currentColor;border-radius:3px;transition:transform .23s ease,opacity .23s ease}
  .j4t-full-header__burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .j4t-full-header__burger.is-open span:nth-child(2){opacity:0}
  .j4t-full-header__burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .j4t-full-header__mobile-drawer{position:absolute;top:100%;left:0;right:0;width:100%;display:block;max-height:0;padding:0 5%;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;background:#fff;border-top:1px solid #edf0f6;box-shadow:0 16px 32px rgba(18,31,65,.13);transition:max-height .26s ease,opacity .22s ease,visibility .22s ease}
  .j4t-full-header__mobile-drawer.is-open{max-height:min(82vh,760px);padding-top:10px;padding-bottom:20px;overflow-y:auto;overscroll-behavior:contain;opacity:1;visibility:visible;pointer-events:auto}
  .j4t-full-header__mobile-item,.j4t-full-header__mobile-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:49px;padding:13px 12px;background:transparent;border:0;border-bottom:1px solid #edf0f5;color:#26344f!important;text-align:left;font-size:15px;font-weight:700;line-height:1.35;cursor:pointer}
  .j4t-full-header__mobile-item span{color:var(--j4t-header-accent)}
  .j4t-full-header__mobile-toggle svg{transition:transform .2s ease}
  .j4t-full-header__mobile-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
  .j4t-full-header__mobile-submenu{display:none;padding:4px 15px 17px;border-radius:0 0 9px 9px;background:#f7f9fd}
  .j4t-full-header__mobile-submenu.is-open{display:block}
  .j4t-full-header__mobile-submenu .j4t-full-header__group{padding:12px 0 0;border:0}
  .j4t-full-header__mobile-submenu .j4t-full-header__group-title{margin:0 0 2px!important;border-bottom:0;padding-bottom:2px;font-size:12px!important;color:var(--j4t-header-accent)!important;text-transform:uppercase;letter-spacing:.02em}
  .j4t-full-header__mobile-sublink{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:39px;padding:9px 6px;border-bottom:1px solid #e9edf5;color:#354158!important;font-size:13.5px;font-weight:600;line-height:1.35}
  .j4t-full-header__mobile-sublink:hover{color:var(--j4t-header-accent)!important}
  .j4t-full-header__mobile-all{display:block;margin:17px 0 0;padding:14px;border-radius:5px;background:var(--j4t-header-accent);color:#fff!important;text-align:center;font-size:13px;font-weight:800}
}
@media(max-width:767px){
  .j4t-full-header__inner,.j4t-full-header__top-inner{width:90%}
  .j4t-full-header__inner{min-height:79px;grid-template-columns:1fr auto auto;gap:8px}
  .j4t-full-header__brand img{width:77px;max-height:75px}
  .j4t-full-header__cta{font-size:10px;padding:11px 10px;min-height:40px}
  .j4t-full-header__burger{width:43px;height:42px}
  .j4t-full-header__top-inner{justify-content:center;flex-wrap:wrap;gap:3px 12px;padding:6px 0}
  .j4t-full-header__top-link{font-size:11px}
}
@media(max-width:375px){.j4t-full-header__cta{font-size:9px;padding:10px 8px}.j4t-full-header__inner{gap:6px}.j4t-full-header__brand img{width:66px}}
@media(prefers-reduced-motion:reduce){.j4t-full-header *{transition:none!important;animation:none!important}}

/* Elementor's theme kit styles buttons, sometimes with big blue padding and
   backgrounds. Restore the dropdown caret as a truly transparent inline icon. */
.elementor .j4t-full-header .j4t-full-header__nav-arrow,
.j4t-full-header .j4t-full-header__nav-arrow {
  display: inline-flex !important;
  flex: 0 0 16px !important;
  justify-content: center !important;
  align-items: center !important;
  width: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  height: 30px !important;
  min-height: 30px !important;
  max-height: 30px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline-offset: 2px;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-size: 0 !important;
  line-height: 1 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
  vertical-align: middle;
}
.elementor .j4t-full-header .j4t-full-header__nav-arrow:is(:hover, :focus, :active),
.j4t-full-header .j4t-full-header__nav-arrow:is(:hover, :focus, :active) {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: var(--j4t-header-accent) !important;
}
.j4t-full-header .j4t-full-header__nav-arrow svg {
  display: block !important;
  flex: none !important;
  width: 11px !important;
  height: 8px !important;
  fill: currentColor !important;
  stroke: none !important;
}
/* The menu item and arrow should read as ONE group, not two distant buttons. */
.j4t-full-header .j4t-full-header__nav-item.has-dropdown { gap: 2px !important; }
/* Keep Elementor global button selectors from distorting the mobile triggers. */
.elementor .j4t-full-header .j4t-full-header__burger {
  display: none;
  padding: 0 !important;
  background: #f7f8fc !important;
  border: 1px solid #dce2f0 !important;
  border-radius: 7px !important;
  box-shadow: none !important;
}
@media(max-width:1199px){
  .elementor .j4t-full-header .j4t-full-header__burger {display:flex!important;}
  .elementor .j4t-full-header .j4t-full-header__mobile-toggle {
    background:transparent!important;
    border:0!important;
    border-bottom:1px solid #edf0f5!important;
    border-radius:0!important;
    box-shadow:none!important;
    padding:13px 12px!important;
    color:#26344f!important;
  }
}

/* v81: Match the compact filled triangle in the reference menu.
   Keep the small arrow a transparent, keyboard-accessible button. */
.j4t-full-header .j4t-full-header__nav-arrow svg path,
.j4t-full-header .j4t-full-header__mobile-toggle svg path {
  fill: currentColor !important;
  stroke: none !important;
}
.j4t-full-header .j4t-full-header__nav { flex-wrap: nowrap !important; }
.j4t-full-header .j4t-full-header__nav-link { font-weight: 800; }
@media(max-width:1199px){
  .j4t-full-header .j4t-full-header__mobile-item,
  .j4t-full-header .j4t-full-header__mobile-toggle { font-weight: 800; }
  .j4t-full-header .j4t-full-header__mobile-toggle svg { width: 11px; height: 8px; }
}

/* v82: Match the provided simple, TWO-column Services template. The service
   flyout consists only of Residential + Commercial links: no top heading,
   "View All", secondary CTA, tagline, footer ribbon or decorative arrows. */
.j4t-full-header__panel--services .j4t-full-header__panel-card {
  padding: 24px 30px 26px;
}
.j4t-full-header__panel--services .j4t-full-header__columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  padding-bottom: 0;
}
.j4t-full-header__panel--services .j4t-full-header__group-title {
  margin: 0 0 10px !important;
  padding: 0 8px 13px;
  font-size: 17px !important;
  font-weight: 800 !important;
}
.j4t-full-header__panel--services .j4t-full-header__service-link {
  min-height: 42px;
  padding: 10px 8px;
}
.j4t-full-header__panel--services .j4t-full-header__group {
  padding: 0 25px;
}
.j4t-full-header__panel--services .j4t-full-header__group:first-child {
  padding-left: 0;
}
.j4t-full-header__panel--services .j4t-full-header__group:last-child {
  padding-right: 0;
}
/* The mobile accordion keeps the same two labels and service links. */
@media(max-width:1199px){
  .j4t-full-header__mobile-submenu .j4t-full-header__group-title {
    font-weight: 800 !important;
  }
}

/* v83: Keep the dropdown close to the Services / Location nav labels instead
   of anchoring it to the header's lower edge. The JS measures the actual nav
   height so the gap remains compact with tall logos and an optional top bar. */
@media (min-width: 1200px) {
  .j4t-full-header .j4t-full-header__panels {
    top: var(--j4t-panel-top, calc(100% - 34px));
  }
  .j4t-full-header .j4t-full-header__panel {
    padding-top: 0;
  }
}


/* v85 — MENU ONLY. The header's logo, contact strip and estimate CTA are
   ordinary Elementor widgets, OUTSIDE widget 39. We provide no full header
   height, background block or three-column grid inside the navigation widget. */
.elementor-widget-j4t_complete_header,
.elementor-widget-j4t_complete_header > .elementor-widget-container {
  min-width: 0;
  width: 100%;
}
.elementor .j4t-full-header,
.j4t-full-header {
  width: 100%;
  min-height: 0;
  padding: 0;
  margin: 0;
  background: transparent !important;
  box-shadow: none !important;
  isolation: auto;
  overflow: visible;
}
.elementor .j4t-full-header__inner,
.j4t-full-header__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: none;
  min-height: 48px;
  padding: 0;
  margin: 0;
  gap: 0;
}
.j4t-full-header__nav {
  width: 100%;
  justify-content: center;
}
/* Calculate the dropdown's left edge relative to this center-column widget.
   Its flyout can then extend over the FULL viewport without adding layout
   width or nudging the logo/estimate button. */
@media(min-width:1200px) {
  .j4t-full-header .j4t-full-header__panels {
    top: var(--j4t-panel-top, calc(100% + 7px));
    left: var(--j4t-panel-left, 0px);
    right: auto;
    width: var(--j4t-panel-width, 100vw);
    max-width: none;
  }
}
@media(max-width:1199px) {
  .elementor .j4t-full-header__inner,
  .j4t-full-header__inner {
    display: flex;
    justify-content: flex-end;
    min-height: 44px;
    width: 100%;
    padding: 0;
    margin: 0;
  }
  .j4t-full-header .j4t-full-header__burger { flex: 0 0 auto; }
  .j4t-full-header .j4t-full-header__mobile-drawer {
    top: var(--j4t-mobile-top, 100%);
    left: var(--j4t-panel-left, 0px);
    right: auto;
    width: var(--j4t-panel-width, 100vw);
    max-width: none;
    z-index: 1110;
  }
}

/* v94 – Widget 39: the CURRENT page stays blue even when a dropdown closes.
   Do not use .is-active for this: that class is only the open/hover state.
   !important wins over Elementor's saved link-color rules and theme links. */
.j4t-full-header .j4t-full-header__service-link.is-current,
.j4t-full-header .j4t-full-header__location-link.is-current,
.j4t-full-header .j4t-full-header__service-link[aria-current="page"],
.j4t-full-header .j4t-full-header__location-link[aria-current="page"] {
  color:var(--j4t-header-accent,#3b4d98)!important;
  background:#eef2ff!important;
  font-weight:800!important;
}
.j4t-full-header .j4t-full-header__service-link.is-current span,
.j4t-full-header .j4t-full-header__location-link.is-current span,
.j4t-full-header .j4t-full-header__service-link[aria-current="page"] span,
.j4t-full-header .j4t-full-header__location-link[aria-current="page"] span {
  color:inherit!important;
}
.j4t-full-header .j4t-full-header__nav-link.is-current,
.j4t-full-header .j4t-full-header__nav-item.is-current-parent .j4t-full-header__nav-link {
  color:var(--j4t-header-accent,#3b4d98)!important;
}
.j4t-full-header .j4t-full-header__nav-link.is-current:after,
.j4t-full-header .j4t-full-header__nav-item.is-current-parent .j4t-full-header__nav-link:after {right:0;}
@media(max-width:1199px){
  .j4t-full-header .j4t-full-header__mobile-sublink.is-current,
  .j4t-full-header .j4t-full-header__mobile-item.is-current,
  .j4t-full-header .j4t-full-header__mobile-sublink[aria-current="page"],
  .j4t-full-header .j4t-full-header__mobile-item[aria-current="page"] {
    color:var(--j4t-header-accent,#3b4d98)!important;
    background:#eef2ff!important;
    font-weight:800!important;
  }
  .j4t-full-header .j4t-full-header__mobile-group.is-current-parent > .j4t-full-header__mobile-toggle {
    color:var(--j4t-header-accent,#3b4d98)!important;
  }
}
