/* === Footer and Header Backgrounds === */
.footer {
  background-color: #EEECE7 !important;
  background-image: none !important;
}

.header {
  background-color: #ffffff !important;
  background-image: none !important;
  padding: 10px 10px 0 10px;
  padding-bottom: 0px !important;
}

/* === Flex Layout for Header === */
header#header .grid-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 2rem;
  width: 100%;
  padding: 10px 25px 0px 25px !important;
}

.grid-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 25px 0px 25px !important;
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  gap: 2rem;
}

/* === Logo (left) === */
.logo-module {
  flex: 0 0 auto;
  order: 1;
  margin: 0;
  padding: 0;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.logo-module .mod-custom p {
  padding: 0px !important;
  margin: 0px;
}

.logo-module img {
  display: block;
  max-height: 50px;
  object-fit: contain;
  vertical-align: middle;
}

/* === Menu (center) === */
ul.mod-menu {
  flex: 1 1 auto;
  order: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1;
}

ul.mod-menu > li > a {
  color: #00285A !important;
  text-decoration: none;
  position: relative;
  padding: 0.25rem 0;
  font-weight: 500;
  display: inline-block;
  font-size: 1rem;
  line-height: 1.2;
}

ul.mod-menu > li > a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  width: 100%;
  background-color: #EE7D11;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

ul.mod-menu > li > a:hover::after,
ul.mod-menu > li.current > a::after,
ul.mod-menu > li.active > a::after,
ul.mod-menu > li > a.active::after {
  transform: scaleX(1);
}

ul.mod-menu {
  flex-wrap: nowrap;         /* Prevent wrapping */
  gap: 1.25rem;               /* Reduce spacing slightly */
  overflow: hidden;          /* Prevent horizontal scroll if squeezing hard */
}

ul.mod-menu > li {
  flex-shrink: 1;             /* Allow menu items to shrink */
  min-width: 0;               /* Prevent natural overflow */
}

ul.mod-menu > li > a {
  font-size: 0.95rem;         /* Slightly smaller font */
  white-space: nowrap;        /* Prevent wrapping inside items */
  padding: 0.25rem 0.5rem;    /* Reduce horizontal space if needed */
  display: inline-block;
}


/* === Button module (right) === */
.button-module {
  flex: 0 0 auto;
  order: 3;
  margin-left: auto;
  display: flex;
  align-items: center;
  align-self: center;
  padding: 0;
  line-height: 1;
}

.button-module p {
  margin: 0;
  padding: 0;
}

/* === Pill-style button with icon === */
.button-module .header-button {
  background-color: #EE7D11;
  color: white;
  padding: 0.5rem 1.5rem;
  border-radius: 999px;
  text-decoration: none !important;
  font-weight: bold;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  line-height: 1.2;
  border: none;
  transition: background-color 0.3s ease;
}

.button-module .header-button:hover {
  background-color: #d66a0f;
}

.button-module .header-button .icon {
  font-size: 1.2rem;
  font-weight: bold;
  line-height: 1;
  display: inline-block;
}

/* === Footer: force single-column layout === */
footer .grid-child,
footer.container-footer .grid-child {
  display: block !important;
  padding: 0rem 0rem !important;
}

footer .grid-child > * {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto 1rem auto !important;
  text-align: center !important;
  flex: none !important;
}

/* Optional: hide empty footer grid modules */
footer .grid-child > div:empty {
  display: none !important;
}

/* === General Link Styles === */
a {
  text-decoration: none !important;
}

a:hover,
a:focus,
a:active,
a:visited {
  text-decoration: none !important;
}

/* === Modal Styles === */
.custom-modal-wrapper {
  position: relative;
  background: white;
  padding-top: 3rem;
  border-radius: 8px;
  overflow: hidden;
  max-width: 1200px;
  margin: auto;
}

.custom-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: #EE7D11;
  color: #00285A;
  border: none;
  font-size: 1.5rem;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 1000;
}

.mfp-close {
  display: none !important;
}

/* === Panel Styles === */
.sppb-panel-body:empty {
  display: none !important;
}

.sppb-panel-body:empty + .sppb-panel-heading .sppb-panel-title::after {
  display: none !important;
}

.sppb-panel-body:empty + .sppb-panel-heading {
  pointer-events: none !important;
  cursor: default !important;
}

/* === Mobile Menu Styles === */
#mobile-fab {
  display: none;
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: 60px;
  height: 60px;
  background-color: #EE7D11;
  border-radius: 50%;
  color: white;
  font-size: 2.5rem;
  text-align: center;
  line-height: 60px;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  z-index: 1001;
}

.mobile-popup-menu {
  display: none;
  position: fixed;
  bottom: 90px;
  right: 1.5rem;
  background: white;
  border-radius: 10px;
  padding: 0.75rem 1rem;
  box-shadow: 0 2px 12px rgba(0,0,0,0.3);
  z-index: 1000;
}

.mobile-popup-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mobile-popup-menu li {
  margin: 0.5rem 0;
  text-align: right;
}

.mobile-popup-menu a {
  text-decoration: none;
  color: #00285A;
  font-weight: bold;
}

#mobile-menu-fab,
#mobile-menu-overlay {
display: none !important;
}

/*#mobile-menu-overlay {
outline: 2px dashed red;
}*/

@media (max-width: 992px) {
.sppb-col-sm-6 {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
    ul.mod-menu {
      display: none !important;
  }
}



/* === Mobile Styles === */
@media only screen and (max-width: 768px) {
  /* Hide menu on mobile */
  ul.mod-menu {
      display: none !important;
  }

@media (max-width: 768px) {
.sppb-col-sm-6 {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}
}


#mobile-menu-fab {
  display: block !important;
}

#mobile-menu-overlay {
  display: none !important; /* still hidden until fab is clicked */
}

#mobile-menu-fab.open + #mobile-menu-overlay {
  display: block !important;
}

  /* Header adjustments */
  header.header.container-header {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: #ffffff;
      padding: 0.5rem 0;
      box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  }

  /* Layout adjustments */
  .grid-child {
      padding: 0.25rem 0.75rem !important;
      gap: 0.5rem;
  }

  /* Logo adjustments */
  .logo-module {
      flex: 0 0 auto;
      margin-right: auto;
  }
  .logo-module img {
      max-height: 32px;
      width: auto;
  }

  /* Button adjustments */
  .button-module {
      flex: 0 0 auto;
      margin-left: auto;
  }
  .button-module .header-button {
      padding: 0.3rem 1rem;
      font-size: 0.85rem;
  }

  /* Show mobile menu button */
  #mobile-fab {
      display: block;
  }

  /* Slider adjustments */
  .sp-slider-outer-stage,
  .sp-slider-content-wrap,
  .sp-item {
      height: 80vh !important;
      min-height: 80vh !important;
      position: relative;
  }

  .sp-slider-content-wrap + .sp-background {
      position: absolute !important;
      top: 0;
      left: 0;
      width: 100% !important;
      height: 100% !important;
      background-size: cover !important;
      background-repeat: no-repeat !important;
      background-position: center center !important;
      z-index: -1;
  }

  .sp-slider-content-wrap {
      position: relative;
      z-index: 1;
  }

  /* Slider content layout */
  .sp-slider-content-wrap .sppb-row {
      display: flex !important;
      flex-direction: column-reverse !important;
      align-items: center !important;
      justify-content: center !important;
      text-align: center !important;
  }

  .sp-slider-content-wrap .sppb-col-xs-8,
  .sp-slider-content-wrap .sppb-col-xs-4 {
      width: 100% !important;
      max-width: 100% !important;
      padding: 1rem 0 !important;
      margin: 0 auto !important;
      text-align: center !important;
  }

  /* Slider text and image adjustments */
  .sp-slider-content-align-left,
  .sppb-sp-slider-title,
  .sppb-sp-slider-text {
      text-align: center !important;
      margin-left: auto !important;
      margin-right: auto !important;
  }

  .sp-slider-image-align-right,
  .sp-slider-image-align-right img {
      text-align: center !important;
      display: block !important;
      margin: 0 auto !important;
      max-width: 100% !important;
      height: auto !important;
  }

  .sp-slider-image-align-right img {
      width: 80% !important;
      height: auto;
      margin: 0 auto;
      display: block;
  }

  /* Button adjustments */
  .sppb-sp-slider-button {
      display: inline-block !important;
      margin: 1rem auto 0 auto !important;
      text-align: center !important;
  }

  .logo-module .mod-custom p,
.logo-module .mod-custom p a {
  display: block;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
}

.logo-module img {
  max-height: 50px;
  height: auto;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  transition: max-height 0.3s ease;
}


  /* Prevent horizontal scroll */
  body, html {
      overflow-x: hidden;
  }
}

@media only screen and (max-width: 768px) and (orientation: portrait) {
.grid-child {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
  gap: 0.5rem !important;
  padding: 0.5rem 1rem !important;
}

.logo-module {
  flex: 0 0 auto !important;
  max-width: none !important;
  
  display: flex;
  align-items: center;
  justify-content: center;

  align-self: center !important;
  /* give it full height so centering has something to work with */
  height: 100%;
  
}

.logo-module img {
  max-height: 32px !important;
  height: auto;
  width: auto;
  object-fit: contain;
}

.button-module {
  flex: 0 0 auto !important;
}

.button-module .header-button {
  font-size: 0.85rem !important;
  padding: 0.5rem 1.2rem !important;
  line-height: 1.2 !important;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Optional: shrink wrap button */
.button-module p {
  margin: 0;
  padding: 0;
}
}


}

#sp-pagebuilder-overlay-32{
    display: none !important;
}