.elementor-1317 .elementor-element.elementor-element-fef8310{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1317 .elementor-element.elementor-element-de0cbbd{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-1317 .elementor-element.elementor-element-a8d4d35{text-align:start;}.elementor-1317 .elementor-element.elementor-element-a8d4d35 img{width:100px;}.elementor-1317 .elementor-element.elementor-element-92a6131{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-1317 .elementor-element.elementor-element-a9b40c3 .elementor-menu-toggle{margin:0 auto;}.elementor-1317 .elementor-element.elementor-element-4709fa9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:767px){.elementor-1317 .elementor-element.elementor-element-de0cbbd{--width:120px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--flex-wrap:nowrap;}.elementor-1317 .elementor-element.elementor-element-92a6131.e-con{--align-self:flex-end;}.elementor-1317 .elementor-element.elementor-element-a9b40c3{width:100%;max-width:100%;}.elementor-1317 .elementor-element.elementor-element-a9b40c3.elementor-element{--align-self:flex-end;}}@media(min-width:768px){.elementor-1317 .elementor-element.elementor-element-de0cbbd{--width:20%;}.elementor-1317 .elementor-element.elementor-element-92a6131{--width:60%;}.elementor-1317 .elementor-element.elementor-element-4709fa9{--width:20%;}}/* Start custom CSS for nav-menu, class: .elementor-element-a9b40c3 *//* ================================================
   ACCESSIBILITY PROS - COMPLETE HEADER CSS
   WCAG 2.1 AA Compliant
   ================================================ */

/* ================================================
   DESKTOP STYLES
   ================================================ */

.elementor-nav-menu--main .elementor-nav-menu > li > a {
  color: #3d0075 !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  font-family: 'PT Serif', Georgia, serif !important;
  padding: 8px 15px !important;
  text-decoration: none !important;
  position: relative !important;
  transition: color 0.2s ease !important;
}


/* Desktop nav hover */
.elementor-nav-menu--main .elementor-nav-menu > li > a:hover {
  color: #6600cc !important;
  text-decoration: underline !important;
}

/* Desktop nav focus */
.elementor-nav-menu--main .elementor-nav-menu > li > a:focus,
.elementor-nav-menu--main .elementor-nav-menu > li > a:focus-visible {
  outline: 3px solid #000000 !important;
  outline-offset: 3px !important;
  border-radius: 3px !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

/* Remove Elementor animated underline on focus */
.e--pointer-underline .elementor-nav-menu > li > a:focus::before,
.e--pointer-underline .elementor-nav-menu > li > a:focus::after,
.e--animation-fade .elementor-nav-menu > li > a:focus::before,
.e--animation-fade .elementor-nav-menu > li > a:focus::after {
  display: none !important;
  width: 0 !important;
  opacity: 0 !important;
}

/* Current page indicator */
.elementor-nav-menu--main .elementor-nav-menu > li.current-menu-item > a,
.elementor-nav-menu--main .elementor-nav-menu > li.current-menu-ancestor > a {
  color: #6600cc !important;
  border-bottom: 2px solid #6600cc !important;
}

/* Each li position relative for dropdown */
.elementor-nav-menu--main .elementor-nav-menu > li {
  position: relative !important;
}

/* Desktop dropdown hidden by default */
.elementor-nav-menu--main .elementor-nav-menu--dropdown {
  display: none !important;
}

/* Desktop dropdown open via JS .open class only */
.elementor-nav-menu--main .menu-item-has-children.open > .elementor-nav-menu--dropdown {
  display: flex !important;
  flex-direction: column !important;
  width: 280px !important;
  background: #ffffff !important;
  border-top: 3px solid #6600cc !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  padding: 8px 0 !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  z-index: 9999 !important;
}

/* Desktop dropdown links */
.elementor-nav-menu--main .elementor-nav-menu--dropdown li a {
  display: block !important;
  padding: 12px 20px !important;
  color: #3d0075 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  border-bottom: 1px solid #eeeeee !important;
  background: #ffffff !important;
  transition: background-color 0.2s ease !important;
}

/* Desktop dropdown hover */
.elementor-nav-menu--main .elementor-nav-menu--dropdown li a:hover {
  background-color: #f3e6ff !important;
  color: #3d0075 !important;
  text-decoration: underline !important;
}

/* Desktop dropdown focus */
.elementor-nav-menu--main .elementor-nav-menu--dropdown li a:focus,
.elementor-nav-menu--main .elementor-nav-menu--dropdown li a:focus-visible {
  outline: 3px solid #000000 !important;
  outline-offset: -3px !important;
  background-color: #f3e6ff !important;
  color: #3d0075 !important;
}

/* Dropdown arrow */
.elementor-nav-menu--main .menu-item-has-children > a .sub-arrow {
  margin-left: 5px !important;
  font-size: 11px !important;
  display: inline-block !important;
  transition: transform 0.2s ease !important;
}

/* Rotate arrow when open */
.elementor-nav-menu--main .menu-item-has-children.open > a .sub-arrow {
  transform: rotate(180deg) !important;
}

/* Get a Free Quote button */
a.elementor-button[href*="contact-us"] {
  background-color: #6600cc !important;
  color: #ffffff !important;
  border: 2px solid #6600cc !important;
  border-radius: 25px !important;
  padding: 12px 24px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: background-color 0.3s ease, color 0.3s ease !important;
}

/* Button hover */
a.elementor-button[href*="contact-us"]:hover {
  background-color: #ffffff !important;
  color: #6600cc !important;
  border: 2px solid #6600cc !important;
}

/* Button focus */
a.elementor-button[href*="contact-us"]:focus,
a.elementor-button[href*="contact-us"]:focus-visible {
  outline: 3px solid #000000 !important;
  outline-offset: 3px !important;
}

/* ================================================
   MOBILE STYLES
   ================================================ */

@media (max-width: 1024px) {

  /* Main header row */
  .elementor-element-fef8310 > .e-con-inner {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    padding: 10px 15px !important;
    position: relative !important;
    z-index: 100000 !important;
    background: #ffffff !important;
  }

  /* Logo container */
  .elementor-element-de0cbbd {
    flex: 0 0 auto !important;
    width: auto !important;
    position: relative !important;
    z-index: 100000 !important;
  }

  /* Logo size */
  .elementor-element-de0cbbd img {
    width: 110px !important;
    height: auto !important;
  }

  /* Nav container */
  .elementor-element-92a6131 {
    flex: 0 0 auto !important;
    width: auto !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    position: relative !important;
    z-index: 100000 !important;
  }

  /* Hide button on mobile */
  .elementor-element-4709fa9 {
    display: none !important;
  }

  /* Hide desktop nav */
  .elementor-element-a9b40c3 .elementor-nav-menu--main {
    display: none !important;
  }

  /* Nav widget container */
  .elementor-element-a9b40c3 .elementor-widget-container {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    padding: 0 !important;
  }

  /* Hamburger */
  .elementor-element-a9b40c3 .elementor-menu-toggle {
    display: flex !important;
    color: #6600cc !important;
    position: relative !important;
    z-index: 100000 !important;
  }

  /* Hamburger focus */
  .elementor-element-a9b40c3 .elementor-menu-toggle:focus,
  .elementor-element-a9b40c3 .elementor-menu-toggle:focus-visible {
    outline: 3px solid #000000 !important;
    outline-offset: 3px !important;
    border-radius: 3px !important;
  }

  /* Mobile full screen overlay */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    background: #ffffff !important;
    z-index: 99998 !important;
    overflow-y: auto !important;
    padding: 0 !important;
    border-top: none !important;
    box-shadow: none !important;
  }

  /* Menu header inside overlay - "Menu" text + X button */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown.elementor-nav-menu__container::before {
    content: "Menu" !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 20px 25px !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #3d0075 !important;
    border-bottom: 1px solid #eeeeee !important;
    position: sticky !important;
    top: 0 !important;
    background: #ffffff !important;
    z-index: 1 !important;
  }

  /* Mobile menu links */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown .elementor-nav-menu > li > a {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 16px 25px !important;
    color: #3d0075 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    border-bottom: 1px solid #eeeeee !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  /* Mobile current page */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown .elementor-nav-menu > li.current-menu-item > a {
    background-color: #f3e6ff !important;
    color: #6600cc !important;
    border-left: 3px solid #6600cc !important;
  }

  /* Mobile link hover */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown .elementor-nav-menu > li > a:hover {
    background-color: #f3e6ff !important;
    color: #6600cc !important;
    text-decoration: underline !important;
  }

  /* Mobile link focus */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown .elementor-nav-menu > li > a:focus,
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown .elementor-nav-menu > li > a:focus-visible {
    outline: 3px solid #000000 !important;
    outline-offset: -3px !important;
    background-color: #f3e6ff !important;
  }

  /* Mobile submenu arrow */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown .menu-item-has-children > a .sub-arrow {
    float: right !important;
    margin-left: auto !important;
    transition: transform 0.2s ease !important;
  }

  /* Mobile submenu arrow rotates up when open */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown .menu-item-has-children.open > a .sub-arrow {
    transform: rotate(180deg) !important;
  }

  /* Mobile submenu hidden */
  #menu-2-a9b40c3 .sub-menu {
    display: none !important;
  }

  /* Mobile submenu open - inline push down */
  #menu-2-a9b40c3 .menu-item-has-children.open > .sub-menu {
    display: block !important;
    background: #f9f0ff !important;
    width: 100% !important;
    padding: 0 !important;
    border-left: 3px solid #6600cc !important;
  }

  /* Mobile submenu links */
  #menu-2-a9b40c3 .menu-item-has-children.open > .sub-menu li a {
    display: block !important;
    padding: 14px 45px !important;
    font-size: 14px !important;
    color: #3d0075 !important;
    border-bottom: 1px solid #dddddd !important;
    text-decoration: none !important;
    white-space: normal !important;
    word-wrap: break-word !important;
  }

  /* Mobile submenu hover */
  #menu-2-a9b40c3 .menu-item-has-children.open > .sub-menu li a:hover {
    background-color: #e6ccff !important;
    text-decoration: underline !important;
  }

  /* Mobile submenu focus */
  #menu-2-a9b40c3 .menu-item-has-children.open > .sub-menu li a:focus,
  #menu-2-a9b40c3 .menu-item-has-children.open > .sub-menu li a:focus-visible {
    outline: 3px solid #000000 !important;
    outline-offset: -3px !important;
    background-color: #e6ccff !important;
  }

}

@media (max-width: 1024px) {

  /* Keep header above overlay using z-index only */
  .elementor-element-fef8310 > .e-con-inner {
    position: relative !important;
    z-index: 100001 !important;
    background: #ffffff !important;
  }

  /* Logo above overlay */
  .elementor-element-de0cbbd {
    position: relative !important;
    z-index: 100001 !important;
  }

  /* Hamburger above overlay */
  .elementor-element-92a6131 {
    position: relative !important;
    z-index: 100001 !important;
  }

  /* Mobile overlay starts below header */
  .elementor-element-a9b40c3 .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    padding-top: 80px !important;
    z-index: 99998 !important;
  }

}/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-7135506 *//* Get a Free Quote button - WCAG AA compliant */
a.elementor-button[href*="contact-us"] {
  background-color: #8a2be2 !important;
  color: #ffffff !important;
  border: 2px solid #6600cc !important;
  border-radius: 25px !important;
  padding: 12px 24px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: background-color 0.3s ease, color 0.3s ease !important;
  font-family: 'PT Serif', Georgia, serif !important;
}

/* Hover state */
a.elementor-button[href*="contact-us"]:hover {
  background-color: #ffffff !important;
  color: #6600cc !important;
  border: 2px solid #6600cc !important;
}

/* Focus indicator - black outline */
a.elementor-button[href*="contact-us"]:focus,
a.elementor-button[href*="contact-us"]:focus-visible {
  outline: 3px solid #000000 !important;
  outline-offset: 3px !important;
}

@media (max-width: 1024px) {

  /* Hide the button COLUMN on mobile, not just the button */
  .elementor-widget-button {
    display: none !important;
  }

  /* Hide the container holding the button on mobile */
  .elementor-widget-button .elementor-widget-container,
  .elementor-widget-button closest container {
    display: none !important;
  }

}/* End custom CSS */