/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra Child Theme by OuterBox
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* TOC:
- Variables
- Utility
- Typography
- Slider
- Carousel
- Video
- Tabbed Content
- Tables
- Forms
- Mobile Menu
- Buttons
- Header
- Breadcrumbs
- Footer
*/

:root {
  /* Spacing */
  --space-base: 16px;
  --space-xxs: calc(var(--space-base) * 0.25); /* 4px */
  --space-xs: calc(var(--space-base) * 0.5); /* 8px */
  --space-sm: calc(var(--space-base) * 0.75); /* 12px */
  --space-md: calc(var(--space-base) * 1.5); /* 24px */
  --space-lg: calc(var(--space-base) * 2); /* 32px */
  --space-xl: calc(var(--space-base) * 2.5); /* 40px */
  --space-xxl: calc(var(--space-base) * 4); /* 64px */
  --space-xxxl: calc(var(--space-base) * 5); /* 80px */
  --section-space: var(--space-xxxl); /* 80px */
  --gutter: var(--space-xxl); /* 64px */
  --gutter-sm: var(--space-lg); /* 32px */

  /* Fonts */
  --text-base: 16px;
  --text-sm: calc(var(--text-base) * 0.875); /* 14px */
  --text-lg: calc(var(--text-base) * 1.125); /* 18px */
  --heading-xxs: calc(var(--text-base) * 1.5); /* 24px */
  --heading-xs: calc(var(--text-base) * 1.625); /* 26px */
  --heading-sm: calc(var(--text-base) * 1.75); /* 28px */
  --heading-md: calc(var(--text-base) * 2); /* 32px */
  --heading-lg: calc(var(--text-base) * 2.5); /* 40px */
  --heading-xl: calc(var(--text-base) * 3); /* 48px */
  --heading-xxl: calc(var(--text-base) * 3.25); /* 52px */
  --heading-xxxl: calc(var(--text-base) * 4); /* 64px */
  --font-weight-regular: 500;
  --font-weight-bold: 700;
  --line-height-body: 1.5;
  --line-height-heading: 1.25;
  --font-family-heading: "Barlow Condensed", sans-serif;
  --font-family-body: "Inter", sans-serif;

  /* Colors */
  --color-brand-01: #22356f;
  --color-brand-02: #1b284d;
  --color-brand-03: #3a4f8b;
  --color-brand-04: #e6eaf3;
  --color-brand-05: #f8f9fb;
  --color-brand-06: #3da9fc;
  --color-text-black: #1b1f23;
  --color-text-white: #ffffff;
  --color-text-01: #808590;
  --color-text-02: #c99400;
  --color-text-03: #177ac6;
  --color-ui-01: #f8f9fb;
  --color-ui-02: #e6eaf3;
  --color-ui-03: #2f437f;
  --color-ui-white: #ffffff;
  --color-ui-border: #bfc7d6;
  --color-ui-accent: #3da9fc;
  --color-ui-black: #010101;

  /* Border Radius */
  --border-radius-sm: 4px;
  --border-radius-md: 8px;
  --border-radius-lg: 24px;
  --border-radius-button: var(--border-radius-sm);
  --border-radius-element: 0;
}

@media only screen and (max-width: 991px) {
  :root {
    --heading-xxs: calc(var(--text-base) * 0.875); /* 14px */
    --heading-xs: calc(var(--text-base) * 1); /* 16px */
    --heading-sm: calc(var(--text-base) * 1.125); /* 18px */
    --heading-md: calc(var(--text-base) * 1.25); /* 20px */
    --heading-lg: calc(var(--text-base) * 1.5); /* 24px */
    --heading-xl: calc(var(--text-base) * 2); /* 32px */
    --heading-xxl: calc(var(--text-base) * 2.5); /* 40px */
    --heading-xxxl: calc(var(--text-base) * 3); /* 48px */
    --section-space: var(--space-xl); /* 40px */
    --gutter: var(--space-base); /* 40px */
    --gutter-sm: var(--space-md); /* 24px */
  }
}

/* Utility */
html,
body {
  font-size: var(--text-base);
  color: var(--color-text-black);
}
.border-radius-element {
  img,
  span,
  div,
  .elementor-slides .swiper-slide {
    border-radius: var(--border-radius-element);
  }
}

.padding-full {
  padding: var(--section-space) var(--section-side-space);
}

.padding-top {
  padding: var(--section-space) var(--section-side-space) 0
    var(--section-side-space);
}

.padding-bottom {
  padding: 0 var(--section-side-space) var(--section-space)
    var(--section-side-space);
}

.padding-none {
  padding: 0px var(--section-side-space);
}

/* Typography */
a.elementor-element {
  text-decoration: none !important;
}

h1,
.entry-content h1,
h2,
.entry-content h2,
h3,
.entry-content h3,
h4,
.entry-content h4,
h5,
.entry-content h5,
h6,
.entry-content h6,
.heading1 span,
.heading2 span,
.heading3 span,
.heading4 span,
.heading5 span,
.heading6 span {
  color: var(--color-text-black);
}

h1,
.entry-content h1,
.heading1 {
  line-height: var(--line-height-heading) !important;
  font-size: var(--heading-xxl);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);

  span,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: var(--line-height-heading) !important;
    font-size: var(--heading-xxl);
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
  }
}

h2,
.entry-content h2,
.heading2 {
  line-height: var(--line-height-heading) !important;
  font-size: var(--heading-xl);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);

  span,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: var(--line-height-heading) !important;
    font-size: var(--heading-xl);
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
  }
}

h3,
.entry-content h3,
.heading3 {
  line-height: var(--line-height-heading) !important;
  font-size: var(--heading-lg);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);

  span,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: var(--line-height-heading) !important;
    font-size: var(--heading-lg);
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
  }
}

h4,
.entry-content h4,
.heading4 {
  line-height: var(--line-height-heading) !important;
  font-size: var(--heading-md);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);

  span,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: var(--line-height-heading) !important;
    font-size: var(--heading-md);
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
  }
}

h5,
.entry-content h5,
.heading5 {
  line-height: var(--line-height-body) !important;
  font-size: var(--heading-sm);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);

  span,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: var(--line-height-body) !important;
    font-size: var(--heading-sm);
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
  }
}

h6,
.entry-content h6,
.heading6 {
  line-height: var(--line-height-body) !important;
  font-size: var(--heading-xs);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);

  span,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: var(--line-height-body) !important;
    font-size: var(--heading-xs);
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
  }
}

.eyebrow-heading {
  span,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: 1.5;
    font-size: var(--text-lg);
    font-family: var(--font-family-body);
    text-transform: uppercase;
    font-weight: var(--font-weight-bold);
    letter-spacing: 1px;
  }
}

.headline-heading {
  span,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: var(--line-height-heading);
    font-size: var(--heading-xxxl);
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
  }
}

p {
  margin-bottom: 0 !important;
  font-size: var(--text-base);
  font-family: var(--font-family-body);
  line-height: var(--line-height-body);
}

.p--small {
  font-size: var(--text-sm);
}

.p--large {
  font-size: var(--text-lg);
}

p + p {
  margin-top: var(--space-base) !important;
}

#content {
  p a,
  li a {
    color: var(--color-brand-01);
    text-decoration: underline !important;
  }

  li a {
    text-decoration: none !important;

    span:not(:has(i)) {
      text-decoration: underline !important;
    }
  }
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-family-body);
}

.elementor-button {
  border-radius: var(--border-radius-button);
  padding: var(--space-sm) var(--space-md) !important;
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  line-height: 1.35 !important;
}

/* Slider */
.elementor-swiper {
  margin-bottom: 16px;
}
.elementor-element
  .swiper
  .swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: -18px;
}
.elementor-element.elementor-arrows-position-outside .swiper {
  width: calc(100% - 80px);
}
.elementor-slides .swiper-slide {
  position: relative;
  overflow: hidden;
}

/* Carousel */
.swiper-pagination-bullet {
  opacity: 1;
  position: relative;
  mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12"><path fill="%23ffffff" d="M6,12c-3.31,0-6-2.69-6-6S2.69,0,6,0s6,2.69,6,6-2.69,6-6,6ZM6,1C3.24,1,1,3.24,1,6s2.24,5,5,5,5-2.24,5-5S8.76,1,6,1Z"/></svg>');
  mask-size: contain;
  mask-position: center;
  mask-repeat: no-repeat;
}
.swiper-pagination-bullet:hover,
.swiper-pagination-bullet-active {
  mask: none;
}
.elementor-swiper-button .fa-arrow-left,
.elementor-swiper-button .fa-arrow-right,
.eicon-chevron-left,
.eicon-chevron-right {
  mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.38,11.06L10.66,1.34l1.34-1.34,12,12-12,12-1.34-1.34,9.72-9.72H0v-1.89h20.38Z" style="fill-rule:evenodd;"/></svg>');
  mask-size: contain;
  mask-position: center;
  mask-repeat: no-repeat;
  display: block;
}
.elementor-swiper-button .fa-arrow-left:before,
.elementor-swiper-button .fa-arrow-right:before,
.eicon-chevron-left:before,
.eicon-chevron-right:before {
  background-color: currentColor;
}
.elementor-swiper-button .fa-arrow-left,
.eicon-chevron-left {
  transform: rotate(180deg);
}

/* Video */
.elementor-widget-video {
  border-radius: var(--border-radius-element);
  position: relative;
  overflow: hidden;
}

.elementor-custom-embed-image-overlay {
  &::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 80.34%, rgba(0, 0, 0, 0.50) 100%), radial-gradient(89.46% 73.7% at 76.98% 50%, rgba(50, 123, 196, 0.60) 0%, rgba(34, 53, 111, 0.60) 100%);
    transition: 0.4s;
    opacity: 1;
  }

  &:hover{
    &::before {
      opacity: 0;
    }

    .elementor-custom-embed-play i {
      background: var(--color-ui-white);
      color: var(--color-brand-01);

      &::after {
        background-color: transparent;
      }
    }
  }
}

.elementor-custom-embed-play i {
  --icon-size: 64px;

  width: var(--icon-size);
  height: var(--icon-size);
  display: flex  ;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #22356F 0%, #304890 100%);
  color: var(--color-text-white);
  border-radius: 100%;
  opacity: 1;

  &::after {
    --outline-size: 96px;

    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: var(--outline-size);
    height: var(--outline-size);
    background-color: rgba(255, 255, 255, .5);
    border-radius: 100%;
    z-index: -1;
  }
}

/* Tabbed Content */
.tabs-left .e-n-tabs-heading button {
  position: relative;
}
.tabs-left .e-n-tabs-heading button:after {
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  background-color: var(--color-ui-01);
}
@media only screen and (max-width: 767px) {
  .tabs-top .e-n-tabs-heading button {
    position: relative;
  }
  .tabs-top .e-n-tabs-heading button:after {
    content: "";
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
    background-color: var(--color-ui-01);
  }
}

/* Tables */
tbody {
  vertical-align: baseline;
}

.html-table {
  table {
    border: 0;
  }
  thead {
    background-color: var(--color-brand-01);
  }
  th {
    border-color: var(--color-text-white);
    color: var(--color-text-white);
    line-height: 1.5;
    font-size: var(--text-base);
    font-family: var(--font-family-body);
    text-transform: uppercase;
    font-weight: var(--font-weight-bold);
    padding: var(--space-sm) var(--space-base);
  }
  tbody tr:nth-child(odd) {
    background-color: var(--color-ui-white);
  }
  tbody tr:nth-child(even) {
    background-color: var(--color-ui-01);
  }
  td {
    border: 0;
    border-bottom: 1px solid var(--color-ui-02);
    text-align: center;
    font-size: var(--text-base);
    padding: var(--space-sm) var(--space-base);
  }
}

.html-table::-webkit-scrollbar-track {
  background: var(--color-text-white);
  border: 1px solid var(--color-brand-03);
  height: 8px;
  border-radius: 12px;
}
.html-table::-webkit-scrollbar {
  width: 8px;
  background: var(--color-text-white);
  height: 8px;
  border-radius: 12px;
}
.html-table::-webkit-scrollbar-thumb {
  background: var(--color-brand-03);
  width: 40px;
  border-radius: 12px;
}

@media only screen and (max-width: 1024px) {
  .html-table {
    overflow: auto;
    table {
      width: 1024px;
    }
  }
}

/* Forms */
form {
  .gfield_label {
    color: var(--color-text-black) !important;
    line-height: 1.5;
    font-size: var(--text-base) !important;
    font-family: var(--font-family-body);
    font-weight: var(--font-weight-bold) !important;
    float: left;
  }
  .gfield_required {
    text-transform: lowercase;
    color: var(--color-ui-warning);
    font-size: var(--text-sm) !important;
  }
  .ginput_container input[type="text"],
  .ginput_container input[type="tel"],
  .ginput_container input[type="email"] {
    border: 1px solid var(--color-ui-03) !important;
    padding: var(--space-sm) var(--space-base) !important;
    height: 48px !important;
    line-height: 48px !important;
  }
  .ginput_container textarea {
    border: 1px solid var(--color-ui-03) !important;
    padding: var(--space-sm) var(--space-base) !important;
    height: 96px !important;
  }
  label + .gfield_description {
    text-transform: lowercase;
    color: var(--color-text-black);
    font-size: var(--text-sm) !important;
    left: 8px;
    top: 1px;
    position: relative;
  }
  .gform_fields {
    row-gap: var(--space-md) !important;
  }
  .gform_button {
    border-radius: var(--border-radius-button);
    padding: var(--space-sm) var(--space-md) !important;
    font-family: var(--font-family-heading) !important;
    font-weight: var(--font-weight-bold) !important;
    text-transform: uppercase !important;
    line-height: 1.35 !important;
    color: var(--color-text-white);
    border: 2px solid var(--color-brand-03) !important;
    background-color: var(--color-brand-03) !important;
    font-size: var(--text-base) !important;
  }
  .gform_button:hover {
    border: 2px solid var(--color-brand-03) !important;
    background-color: var(--color-ui-white) !important;
    color: var(--color-brand-03) !important;
  }
}

.form-wide form .gfield--width-half {
  grid-column: 1 / -1;
}

.form-light form .gfield_label,
.form-light form .gfield_required,
.form-light form .gfield_description {
  color: var(--color-text-white) !important;
}

/* Mobile Menu */
.off-canvas-toggle a[aria-expanded="true"] i:before {
  content: "\f00d";
}
.elementor-widget-off-canvas {
  .e-off-canvas__overlay {
    background-color: transparent !important;
  }
  .e-off-canvas__content {
    width: 100%;
  }
  .e-off-canvas__main {
    height: calc(100% - 143px);
    top: 143px;
    overflow-y: auto;
  }
}
.e-off-canvas .elementor-nav-menu--main {
  ul {
    position: relative;
  }
  ul li {
    position: relative;
  }
  ul li > .submenu-toggle {
    cursor: pointer;
    position: absolute;
    width: 40px;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    text-align: right;
  }
  ul li a {
    margin: 0;
    border: 0;
    padding-inline: 0;
  }
  ul li a:after {
    content: "";
    opacity: 1 !important;
    height: 1px;
    width: 100%;
    background-color: var(--color-ui-02);
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
  }
  ul li a > span {
    display: none !important;
  }
  ul ul {
    position: absolute;
    left: 100vw !important;
    transition: left 0.2s ease-in-out;
    z-index: 3;
    background-color: white;
    width: 100% !important;
    top: 0 !important;
    transition: none;
    margin-left: 0 !important;
    margin-top: 0 !important;
  }
  ul li.submenu-active {
    position: static;
  }
  ul li.submenu-active > ul {
    left: 0 !important;
    transition: left 0.2s ease-in-out;
    z-index: 9;
    display: block !important;
  }
  button.submenu-toggle {
    position: relative;
    width: 40px;
    height: 40px;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: 0;
    line-height: 1.5;
    color: var(--color-text-black);
    font-weight: var(--font-weight-bold);
    background-color: transparent;
    padding: 0;
  }
  button.submenu-toggle:before {
    content: "";
    width: 20px;
    height: 20px;
    display: block;
    background-color: var(--color-brand-06);
    mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/></svg>');
    mask-repeat: no-repeat;
    mask-position: right center;
    mask-size: contain;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
  }
  .submenu-back {
    border-bottom: 1px solid var(--color-ui-03);
  }
  button.submenu-back-button {
    position: relative;
    display: flex;
    align-items: center;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: 0;
    line-height: 1.5;
    padding: 13px 0;
    color: var(--color-text-black);
    font-weight: var(--font-weight-bold);
    background-color: transparent;
  }
  .submenu-back-button:before {
    content: "";
    width: 20px;
    height: 20px;
    display: block;
    background-color: var(--color-brand-01);
    mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg>');
    mask-repeat: no-repeat;
    mask-position: left center;
    mask-size: contain;
  }
}

#mobile-nav .search-container {
  padding: var(--space-md) 0;
  .search-form input {
    width: 100%;
  }
}
.mobile-nav__utility {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-top: var(--space-md);
  i {
    width: 20px;
    color: var(--color-brand-03);
  }
  a {
    text-decoration: none;
    color: var(--color-text-black);
  }
}

/* BUTTONS */
button,
.btn,
a.btn,
.elementor-button,
[id^="gform_submit_button_"] {
  /* basic button style */
  --btn-font-size: var(--text-base);
  --btn-color: var(--color-brand-01);
  --btn-border-color: var(--color-brand-01);
  --btn-text-color: var(--color-text-white);
  --btn-border-size: 2px;
  --btn-transform: uppercase;
  --btn-font-weight: var(--font-weight-bold, 900);
  --btn-padding-inline: var(--space-md, 16px);
  --btn-padding-block: var(--space-sm, 12px);

  font-family: var(--font-family-body);
  position: relative;
  display: inline-flex;
  gap: var(--space-xs);
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  font-size: var(--btn-font-size, 1em);
  font-weight: var(--btn-font-weight, inherit) !important;
  text-decoration: none !important;
  text-transform: var(--btn-transform, uppercase) !important;
  color: var(--btn-text-color, inherit) !important;
  background-color: var(--btn-color, inherit) !important;
  padding-inline: var(--btn-padding-inline, inherit) !important;
  padding-block: var(--btn-padding-block, inherit) !important;
  border-radius: var(--border-radius-button, 0) !important;
  border-style: solid !important;
  border-width: var(--btn-border-size, 1px) !important;
  border-color: var(--btn-border-color, inherit) !important;
  cursor: pointer;
  line-height: 1.5;
  letter-spacing: 1px;
  transition: color 0.3s, background-color 0.3s, border-color 0.3s;

  .elementor-button-content-wrapper {
    gap: var(--space-xs);
  }
}

.faux-link:disabled .btn,
.faux-link:disabled .elementor-button,
.btn:disabled,
a.btn:disabled,
.elementor-button:disabled {
  opacity: 0.3;
}

.btn--primary,
a.btn--primary,
.elementor-button {
  --btn-color: var(--color-brand-01);
  --btn-border-color: var(--color-brand-01);
  --btn-text-color: var(--color-text-white);
}

.faux-link:hover .btn--primary,
.faux-link:focus .btn--primary,
.faux-link:hover .elementor-button,
.faux-link:focus .elementor-button,
.btn--primary:hover,
.btn--primary:focus,
a.btn--primary:hover,
a.btn--primary:focus,
.elementor-button:hover,
.elementor-button:focus {
  --btn-color: var(--color-brand-03);
  --btn-border-color: var(--color-brand-03);
  --btn-text-color: var(--color-text-white);
}

.faux-link:active .btn--primary,
.faux-link:active .elementor-button,
.btn--primary:active,
a.btn--primary:active,
.elementor-button:active {
  --btn-color: var(--color-brand-03);
  --btn-border-color: var(--color-brand-01);
  --btn-text-color: var(--color-text-white);
}

.btn--primary-dark,
a.btn--primary-dark {
  --btn-color: var(--color-brand-06);
  --btn-border-color: var(--color-brand-06);
  --btn-text-color: var(--color-text-black);
}

.faux-link:hover .btn--primary-dark,
.faux-link:focus .btn--primary-dark,
.btn--primary-dark:hover,
.btn--primary-dark:focus,
a.btn--primary-dark:hover,
a.btn--primary-dark:focus {
  --btn-color: var(--color-ui-white);
  --btn-border-color: var(--color-ui-white);
  --btn-text-color: var(--color-text-black);
}

.faux-link:active .btn--primary-dark,
.btn--primary-dark:active,
a.btn--primary-dark:active {
  --btn-color: transparent;
  --btn-border-color: var(--color-text-white);
  --btn-text-color: var(--color-text-white);
}

.btn--white,
a.btn--white,
.btn--white .elementor-button {
  --btn-color: var(--color-ui-white);
  --btn-border-color: var(--color-ui-white);
  --btn-text-color: var(--color-text-black);
}

.faux-link:hover .btn--white,
.faux-link:focus .btn--white,
.faux-link:hover .btn--white .elementor-button,
.faux-link:focus .btn--white .elementor-button,
.btn--white:hover,
.btn--white:focus,
a.btn--white:hover,
a.btn--white:focus,
.btn--white:hover .elementor-button,
.btn--white:focus .elementor-button {
  --btn-color: var(--color-brand-06);
  --btn-border-color: var(--color-brand-06);
  --btn-text-color: var(--color-text-black);
}

.faux-link:active .btn--white,
.btn--white:active,
a.btn--white:active {
  --btn-color: transparent;
  --btn-border-color: var(--color-brand-06);
  --btn-text-color: var(--color-brand-06);
}

.btn--secondary,
a.btn--secondary,
.btn--secondary .elementor-button {
  --btn-color: transparent;
  --btn-border-color: var(--color-brand-01);
  --btn-text-color: var(--color-brand-01);
}

.faux-link:hover .btn--secondary,
.faux-link:focus .btn--secondary,
.faux-link:hover .btn--secondary .elementor-button,
.faux-link:focus .btn--secondary .elementor-button,
.btn--secondary:hover,
.btn--secondary:focus,
a.btn--secondary:hover,
a.btn--secondary:focus,
.btn--secondary:hover .elementor-button,
.btn--secondary:focus .elementor-button {
  --btn-color: var(--color-brand-03);
  --btn-border-color: var(--color-brand-03);
  --btn-text-color: var(--color-text-white);
}

.faux-link:active .btn--secondary,
.btn--secondary:active,
a.btn--secondary:active {
  --btn-color: transparent;
  --btn-border-color: var(--color-brand-03);
  --btn-text-color: var(--color-brand-03);
}

.btn--secondary-dark,
a.btn--secondary-dark,
.elementor-button.btn--secondary-dark {
  --btn-color: transparent;
  --btn-border-color: var(--color-brand-06);
  --btn-text-color: var(--color-text-black);
}

.faux-link:hover .btn--secondary-dark,
.faux-link:focus .btn--secondary-dark,
.faux-link:hover .btn--secondary-dark .elementor-button,
.faux-link:focus .btn--secondary-dark .elementor-button,
.btn--secondary-dark:hover,
.btn--secondary-dark:focus,
a.btn--secondary-dark:hover,
a.btn--secondary-dark:focus,
.btn--secondary-dark:hover .elementor-button,
.btn--secondary-dark:focus .elementor-button {
  --btn-color: var(--color-text-white);
  --btn-border-color: var(--color-text-white);
  --btn-text-color: var(--color-text-black);
}

.faux-link:active .btn--secondary-dark,
.btn--secondary-dark:active,
a.btn--secondary-dark:active {
  --btn-color: transparent;
  --btn-border-color: var(--color-text-white);
  --btn-text-color: var(--color-text-white);
}

.btn--tertiary,
a.btn--tertiary,
.btn--tertiary .elementor-button {
  --btn-color: transparent;
  --btn-border-color: var(--color-brand-01);
  --btn-text-color: var(--color-brand-01);
  --btn-padding-inline: 0;

  border-width: 0 0 2px 0 !important;
}

.faux-link:hover .btn--tertiary,
.faux-link:focus .btn--tertiary,
.faux-link:hover .btn--tertiary .elementor-button,
.faux-link:focus .btn--tertiary .elementor-button,
.btn--tertiary:hover,
.btn--tertiary:focus,
a.btn--tertiary:hover,
a.btn--tertiary:focus,
.btn--tertiary:hover .elementor-button,
.btn--tertiary:focus .elementor-button {
  --btn-color: transparent;
  --btn-border-color: var(--color-brand-03);
  --btn-text-color: var(--color-brand-03);
}

.faux-link:active .btn--tertiary,
.btn--tertiary:active,
a.btn--tertiary:active {
  --btn-color: transparent;
  --btn-border-color: transparent;
  --btn-text-color: var(--color-brand-01);
}

.btn--tertiary-dark,
a.btn--tertiary-dark,
.btn--tertiary-dark .elementor-button {
  --btn-color: transparent;
  --btn-border-color: var(--color-brand-06);
  --btn-text-color: var(--color-brand-06);
  --btn-padding-inline: 0;

  border-width: 0 0 2px 0 !important;
}

.faux-link:hover .btn--tertiary-dark,
.faux-link:focus .btn--tertiary-dark,
.faux-link:hover .btn--tertiary-dark .elementor-button,
.faux-link:focus .btn--tertiary-dark .elementor-button,
.btn--tertiary-dark:hover,
.btn--tertiary-dark:focus,
a.btn--tertiary-dark:hover,
a.btn--tertiary-dark:focus,
.btn--tertiary-dark:hover .elementor-button,
.btn--tertiary-dark:focus .elementor-button {
  --btn-color: transparent;
  --btn-border-color: var(--color-text-white);
  --btn-text-color: var(--color-text-white);
}

.faux-link:active .btn--tertiary-dark,
.btn--tertiary-dark:active,
a.btn--tertiary-dark:active {
  --btn-color: transparent;
  --btn-border-color: transparent;
  --btn-text-color: var(--color-brand-06);
}

.btn--text-only,
a.btn--text-only,
button.submenu-toggle,
.slick-dots li button,
button.e-search-submit,
button.submenu-back-button {
  --btn-color: transparent;
  --btn-border-color: transparent;
  --btn-text-color: inherit;
  --btn-transform: none;
  --btn-padding-inline: 0;
  --btn-font-weight: var(--font-weight-regular);
  --border-radius-button: 0;

  transition: 0.4s;
}

button.submenu-back-button {
  --btn-text-color: var(--color-text-black);
}

.faux-link:hover .btn--text-only,
.faux-link:focus .btn--text-only,
.faux-link:hover .btn--text-only .elementor-button,
.faux-link:focus .btn--text-only .elementor-button,
.btn--text-only:hover,
.btn--text-only:focus,
a.btn--text-only:hover,
a.btn--text-only:focus,
button.submenu-toggle:hover,
button.submenu-toggle:focus,
.slick-dots li button:hover,
.slick-dots li button:focus,
button.e-search-submit:hover,
button.e-search-submit:focus,
button.submenu-back-button:hover,
button.submenu-back-button:focus {
  --btn-color: transparent;
  --btn-border-color: transparent;
  --btn-text-color: inherit;
  --btn-font-weight: var(--font-weight-bold);
}

.header-nav .e-n-menu-dropdown-icon {
  --btn-color: transparent;
  --btn-border-color: transparent;
  --btn-text-color: var(--color-brand-06);
  --btn-transform: none;
  --btn-font-weight: var(--font-weight-regular);
  --btn-padding-inline: 0;
  --btn-padding-block: 0;
}

.btn--text-only i,
a.btn--text-only i,
.header-nav .e-n-menu-dropdown-icon i,
button.e-search-submit i,
button.submenu-back-button i {
  color: var(--color-ui-accent) !important;
  transition: 0.3s;
}

.btn--pill,
a.btn--pill,
.btn--pill .elementor-button {
  --btn-border-color: transparent;
  --btn-color: transparent;
  --btn-text-color: var(--color-text-black);
  --btn-transform: none;
  --border-radius-button: 100px;
}

.faux-link:hover .btn--pill,
.faux-link:focus .btn--pill,
.faux-link:hover .btn--pill .elementor-button,
.faux-link:focus .btn--pill .elementor-button,
.btn--pill:hover,
.btn--pill:focus,
a.btn--pill:hover,
a.btn--pill:focus,
.btn--pill:hover .elementor-button,
.btn--pill:focus .elementor-button {
  --btn-text-color: var(--color-text-black);
  --btn-border-color: var(--color-text-black);
  --btn-color: transparent;
}

.btn--pill.active,
a.btn--pill.active {
  --btn-border-color: var(--color-brand-01);
  --btn-color: var(--color-brand-01);
  --btn-text-color: var(--color-text-white);
}

/* Header */
.utility-nav .elementor-nav-menu--main,
.utility-nav .elementor-nav-menu--main ul,
.utility-nav .elementor-button-wrapper:has(.btn--text-only),
.utility-nav form.hfe-search-button-wrapper,
.header-nav nav,
.header-nav nav .e-n-menu-wrapper,
.header-nav nav .e-n-menu-wrapper ul {
  height: 100%;
}

.utility-nav .elementor-nav-menu--main,
.utility-nav .elementor-button-wrapper:has(.btn--text-only),
.utility-nav form.hfe-search-button-wrapper {
  border-left: 1px solid rgba(213, 220, 235, 0.3);
  display: flex;
  align-items: center;
}

.utility-nav {
  a {
    color: var(--color-text-white);
    font-size: var(--text-sm);

    &.btn--text-only {
      --btn-padding-inline: var(--space-md);
      --btn-padding-block: 5px; // needed to make the height 36px for utility nav

      &:hover {
        --btn-padding-inline: var(--space-md);
        --btn-font-weight: var(--font-weight-regular);

        text-decoration: underline !important;
      }
    }
  }

  .elementor-nav-menu a {
    padding-block: 5px !important; // needed to make the height 36px for utility nav
  }

  .elementor-nav-menu--main ul li {
    &:not(:first-child) {
      border-left: 1px solid rgba(213, 220, 235, 0.3);
    }

    a:hover {
      text-decoration: underline;
    }
  }

  .hfe-search-button-wrapper.hfe-input-focus i {
    color: var(--color-text-black) !important;
  }

  .btn--text-only:hover {
    --btn-text-color: var(--color-text-white);
  }
}

.header-nav {
  .e-n-menu-content {
    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.11);

    ul {
      columns: 2;
    }
  }

  a:hover {
    font-weight: var(--font-weight-bold);
  }

  .e-n-menu-title {
    border-bottom: 4px solid transparent !important;
  }

  li:hover .e-n-menu-title {
    border-bottom-color: var(--color-brand-06) !important;
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(61, 169, 252, 0.3) 100%
      ),
      var(--Colors-UI-ui-black, #010101);
  }
}

.gt_selector,
.gt_selector:focus {
  background-color: transparent;
  border: none;
  color: var(--color-text-white);
  padding-block: 7px; // needed to make the height 36px for utility nav
}

.btn--rfq-mobile a.btn {
  --btn-padding-inline: var(--space-base);
}

.e-off-canvas__content button.e-search-submit {
  --btn-color: var(--color-ui-01);
  --btn-border-color: var(--color-brand-06);
  --btn-border-size: 0 0 2px 0;

  margin: 0 !important;
}

.no-js .e-n-menu-item:has(.e-n-menu-content):hover .e-n-menu-content {
  padding-block-start: var(--n-menu-title-distance-from-content);
  top: 100%;

  .e-child {
    display: var(--display) !important
  }
}

/* Breadcrumbs */
.home .elementor-widget-container:has(#breadcrumbs) {
  display: none;
}

#breadcrumbs {
  font-size: var(--text-sm);
  color: var(--color-ui-02);

  > span {
    display: flex;
    gap: var(--space-base);
  }

  .fas.fa-home {
    color: var(--color-brand-01);
    font-weight: 400;
  }

  a {
    color: #1b1f2399; /* --color-text-black at 60% opacity */
    text-decoration: underline;
  }

  .breadcrumb_last {
    color: var(--color-brand-02);
  }
}

/* Footer */
footer .far.fa-building {
  font-weight: var(--font-weight-bold);
}

.footer--black {
  p,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  span,
  a,
  a:hover {
    color: var(--color-text-white);
  }

  a.btn--text-only:hover {
    --btn-font-weight: var(--font-weight-regular);

    text-decoration: underline !important;
  }
	
  .copyright-block {
    column-gap: var(--space-lg);
  }

  @media (min-width: 1024px) {
    .copyright-block {
      column-gap: 0;
      
      a.btn--text-only {
        --btn-padding-inline: var(--space-base);
      }
    }
  }
}

@media (min-width: 1024px) {
  .footer-menu {
    .elementor-nav-menu--main {
      ul.elementor-nav-menu {
        display: flex;
        flex-direction: column;
        gap: var(--space-sm);

        a {
          padding-block: 0;

          &:hover {
            text-decoration: underline !important;
          }
        }
      }
    }

    > * {
      ul > li:first-child > a,
      &:last-child ul > li > a {
        color: var(--color-brand-06);
        font-weight: var(--font-weight-bold);
      }
    }
  }
}

/* Elementor Overrides */
.watermark {
  pointer-events: none !important;

  ~ * {
    z-index: 2;
  }
}

.faux-link {
  cursor: pointer;
}

@media (min-width: 768px) {
  .make-flex {
    &.elementor-grid-3 .elementor-grid,
    &.elementor-grid-4 .elementor-grid {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
    }

    &.elementor-grid-tablet-2 .elementor-grid > .e-loop-item {
      width: calc(50% - var(--grid-column-gap, 30px));
    }
  }
}

@media (width > 1024px) {
  .make-flex {
    &.elementor-grid-3 .elementor-grid > .e-loop-item {
      width: calc(33.33% - var(--grid-column-gap, 30px));
    }

    &.elementor-grid-4 .elementor-grid > .e-loop-item {
      width: calc(25% - var(--grid-column-gap, 30px));
    }
  }
}

.hover-card .elementor-widget-image,
.hover-card .elementor-widget-image img {
  position: absolute;
  inset: 0;
}

.hover-card .elementor-widget-image img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

.hover-card__content {
  transition: 0.4s;
  overflow: hidden;
}

.hover-card:hover .hover-card__content {
  height: 100% !important;
  gap: var(--space-base);
}

@media (width < 768px) {
  .hover-card .hover-card__content {
    height: 100% !important;
  }
}

.hover-card .hidden-content {
  opacity: 0;
  transition: 0.4s;
}

.hover-card:hover .hidden-content {
  opacity: 1;
}

.hover-card a.btn--text-only {
  --btn-transform: uppercase;
}

.hover-card a.btn--text-only:hover {
  --btn-border-color: var(--btn-text-color) !important;

  i {
    color: var(--btn-text-color) !important;
  }
}

.page-card {
  border: 1px solid var(--color-ui-03);
}

.page-card .elementor-widget-image {
  overflow: hidden;
}

.page-card img {
  transform: scale(1);
  transition: 0.4s;
}

.page-card:hover img {
  transform: scale(1.1);
}

.page-card .page-card__content {
  border-bottom: 6px solid transparent;
  background: linear-gradient(
      180deg,
      rgba(61, 169, 252, 0) 100%,
      rgba(61, 169, 252, 0.1) 100%
    ),
    #fff;
  transition: 0.4s;
}

.page-card:hover .page-card__content {
  border-color: var(--color-brand-06);
  background: linear-gradient(
      180deg,
      rgba(61, 169, 252, 0) 30%,
      rgba(61, 169, 252, 0.1) 100%
    ),
    #fff;
}

.page-card .elementor-heading-title {
  transition: 0.4s;
}

.page-card:hover .elementor-heading-title {
  color: var(--color-text-03);
}

.page-cards .swiper-pagination-bullet {
  --size: 12px;

  width: var(--size);
  height: var(--size);
  background-color: var(--color-ui-white);
  border: 2px solid var(--color-brand-03);
  transition: 0.4s;

  &:hover {
    background-color: var(--color-brand-03);
  }

  &.swiper-pagination-bullet-active {
    background-color: var(--color-brand-03);
    border-radius: 10px;
    width: 32px;
  }
}

.rotating-images__image {
  border-bottom: 6px solid var(--color-brand-06);
}

.rotating-images__image img {
  opacity: 1;
}

.rotating-images__image img.fade-out {
  opacity: 0;
}

.rotating-image__button {
  &:hover {
    .btn--text-only {
      --btn-text-color: var(--color-ui-accent);

      .elementor-button-content-wrapper {
        gap: var(--space-sm) !important;
      }
    }
  }

  .btn--text-only {
    --btn-font-size: var(--text-lg);
    --btn-font-weight: var(--font-weight-bold);
    --btn-padding-block: var(--space-xs);
  }

  .elementor-button-content-wrapper {
    transition: 0.4s;
  }
}

.hover-icon-card {
  border: 1px solid var(--color-ui-border);
  overflow: hidden;

  a {
    text-decoration: none !important;
  }

  .elementor-icon-box-wrapper {
    text-align: left !important;
  }

  &.faux-link:has(a) {
    img {
      transition: 0.4s;
    }

    &:hover {
      img {
        transform: scale(1.1);
      }

      .elementor-icon {
        fill: var(--color-brand-06) !important;
        color: var(--color-brand-06) !important;
        border-color: var(--color-brand-06) !important;
      }

      .hover-icon-card__content {
        border-color: var(--color-brand-06);
        background: linear-gradient(
            180deg,
            rgba(61, 169, 252, 0) 30%,
            rgba(61, 169, 252, 0.1) 100%
          ),
          #fff;
      }
    }
  }

  .hover-icon-card__content {
    border-bottom: 6px solid transparent;
  }
}

.kc__container.elementor-widget-n-tabs {
  .e-n-tabs-heading {
    justify-content: space-between;
    background-color: var(--color-ui-02);
    padding-inline: var(--gutter);
    padding-block: var(--space-sm);

    @media (max-width: 1024px) {
      display: none;
    }

    button {
      --btn-text-color: var(--color-text-black);
      --btn-color: transparent;
      --btn-border-size: 2px;
      --btn-border-color: transparent;
      --border-radius-button: 100px;
      --btn-transform: none;

      &:hover {
        --btn-text-color: var(--color-text-black);
        --btn-color: transparent;
        --btn-border-color: var(--color-brand-01);
      }

      &[aria-selected="true"] {
        --btn-text-color: var(--color-text-white);
        --btn-color: var(--color-brand-01);
        --btn-border-color: var(--color-brand-01);
      }
    }
  }

  .btn--text-only i {
    color: inherit !important;
  }
}

.kc-card,
.news-card {
  border: 1px solid var(--color-ui-border);

  &.faux-link:has(a) {
    &:hover {
      img {
        transform: scale(1.1);
      }

      a.btn--text-only i {
        opacity: 1;
      }
    }

    .elementor-widget-image {
      overflow: hidden;
    }

    img {
      transform: scale(1);
      transition: 0.4s;
    }

    .elementor-heading-title {
      transition: 0.4s;
    }

    a.btn--text-only i {
      opacity: 0;
      transition: 0.4s;
    }
  }

  a.btn--text-only {
    --btn-font-weight: var(--font-weight-bold);
  }
}

.kc-card.faux-link:has(a):hover {
  .elementor-heading-title {
    color: var(--color-text-03);
  }
}

@media (width < 768px) {
  .hero-image {
    position: static !important;
  }
}

.elementor-element .swiper~.elementor-swiper-button.swiper-button-disabled {
  opacity: 0;
}

.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin-inline: 0 var(--space-sm);
  width: 12px;
  border-radius: 10px;
  height: 12px;
  background-color: var(--color-ui-white);
  border: 1px solid var(--color-brand-03);
  mask-image: none;
  transition: .4s;

  &:hover {
    background-color: var(--color-brand-03);
  }

  &.swiper-pagination-bullet-active {
    background-color: var(--color-brand-03);
    width: 32px;
  }
}

.value-props .elementor-image-box-description {
  margin-top: var(--space-sm);
}

@media (width < 768px) {
  .value-props .elementor-image-box-wrapper {
    display: flex;
    gap: var(--space-sm);

    .elementor-image-box-img {
      --size: 50px;

      min-width: var(--size);
      max-width: var(--size);
      min-height: var(--size);
      max-height: var(--size);
    }
  }
}

.category-dropdown {
  width: 100%;
  margin-block: var(--space-xs) var(--space-lg);
}

.fa-long-arrow-alt-right:before {
  content: '\f178' !important;
  font-weight: var(--font-weight-regular);
}

.modal__popup {
  --modal-display: none;

  display: var(--modal-display, block);
  position: fixed;
  inset: 0;
  z-index: 100;
  align-items: center;
  justify-content: center;

  &.modal__popup--visible {
    --modal-display: flex;
  }

  .modal__container {
    width: max(300px, 50%);
    background-color: var(--color-ui-white);
  }

  .fa-window-close {
    cursor: pointer;
  }
}

.btn--modal .elementor-button-content-wrapper {
  width: 100%;
}

body .hsfc-FieldLabel__RequiredIndicator {
  font-size: 0;
  
  &::before {
    content: ' (required)';
    font-size: var(--text-sm);
  }
}