/* Replaces the parts of the Wix runtime that affected presentation. */

/*
 * Wix registers these as custom elements; without that registration they would
 * fall back to display:inline. Wix's own class rules already set display:block
 * on most instances, so :where() keeps this at zero specificity and lets any
 * real rule win.
 */
:where(wow-image, wix-image, wix-video, wix-bg-media, wix-bg-image, wix-iframe,
       wix-dropdown-menu, wix-element, wix-plugin-loader) {
  display: block;
}

/* Media inside those wrappers should fill them, matching Wix's behaviour. */
:where(wow-image, wix-image) > img,
:where(wix-video) > video {
  display: block;
}

/*
 * Wix's MediaPlayer starts the video at opacity:0 and fades it in once
 * playback begins. Without that runtime both the <video> (.X9nqm0) and its
 * poster stay invisible, so the Tools & Equipment section (and any other
 * background-video block) renders as a blank white box.
 */
wix-video video,
.bgVideo video,
video.X9nqm0 {
  opacity: 1 !important;
}

/* Match Wix MediaPlayer: hide the poster once the video canvas is showing. */
.LH0J3M[data-show-canvas] .bgVideoposter,
.wixui-video-box[data-show-canvas] .bgVideoposter {
  opacity: 0 !important;
  pointer-events: none;
}

/*
 * fluid-columns-repeater pins its children with absolute coordinates measured
 * at capture width. Once those pins are stripped (see fixFluidColumns), the
 * existing .TypO4 flex rules centre the cards at any viewport. This rule is a
 * safety net so a missed stylesheet cannot leave items absolutely parked.
 */
fluid-columns-repeater.TypO4 > .wixui-repeater__item {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
}

/*
 * Scroll-reveal. These classes are only ever applied by site.js, so with
 * JavaScript disabled every element simply stays visible.
 */
.sp-reveal-init {
  opacity: 0;
  transform: translateY(18px);
  will-change: opacity, transform;
}

.sp-reveal-in {
  opacity: 1;
  transform: none;
  transition: opacity 620ms cubic-bezier(0.4, 0, 0.2, 1),
              transform 620ms cubic-bezier(0.4, 0, 0.2, 1);
}

@media (prefers-reduced-motion: reduce) {
  .sp-reveal-init,
  .sp-reveal-in {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/*
 * The Cognito embed container inherits the original form's footprint. The
 * padding sits inside that footprint (border-box), so the 30px of breathing
 * room above the first field cannot push the form past the blue rule below.
 */
#cognito-form-embed {
  display: block;
  width: 100%;
  box-sizing: border-box;
  /* Wix inset its form fields 20px inside the 420px block. */
  padding: 30px 20px 0;
}

/*
 * Cognito seamless form — match the retired Wix contact form.
 * Live reference (desktop): Open Sans labels 700/16, inputs 14px with 1px
 * black borders, paired 180px columns, 380px email/message/button, blue
 * submit #3579b7. Hiding the Cognito title and restoring two-column rows
 * keeps the block near the original ~552px height so it does not spill
 * past the blue horizontal rule (#comp-lhzd67fc).
 */
#cognito-form-embed .cog-header,
#cognito-form-embed .cog-heading {
  display: none !important;
}

#cognito-form-embed .cog-cognito,
#cognito-form-embed .cog-form,
#cognito-form-embed .cog-form__container,
#cognito-form-embed .cog-form__content,
#cognito-form-embed .cog-body,
#cognito-form-embed .cog-page {
  font-family: "open sans", "Open Sans", Arial, Helvetica, sans-serif !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

#cognito-form-embed .cog-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 0 !important;
  /* Wix left 30px between a field's input and the next label. */
  margin: 0 0 30px !important;
  padding: 0 !important;
  width: 380px !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Cognito emits a trailing empty row; without a label it needs no spacing. */
#cognito-form-embed .cog-row:not(:has(.cog-label)) {
  margin: 0 !important;
}

#cognito-form-embed .cog-row > .cog-field.cog-col--12 {
  flex: 0 0 180px !important;
  width: 180px !important;
  max-width: 180px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

#cognito-form-embed .cog-row > .cog-field.cog-col--24,
#cognito-form-embed .cog-field.cog-col--24 {
  flex: 1 1 auto !important;
  width: 380px !important;
  max-width: 380px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

#cognito-form-embed .cog-label {
  display: block !important;
  font-family: "open sans", "Open Sans", Arial, Helvetica, sans-serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  line-height: 16px !important;
  color: #000 !important;
  margin: 0 0 9px !important;
  padding: 0 20px 0 2px !important;
  letter-spacing: normal !important;
}

#cognito-form-embed .cog-asterisk {
  color: #000 !important;
  margin-left: 2px !important;
}

#cognito-form-embed .cog-input,
#cognito-form-embed .el-input,
#cognito-form-embed .el-textarea {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#cognito-form-embed .el-input__inner,
#cognito-form-embed input.el-input__inner,
#cognito-form-embed .el-textarea__inner,
#cognito-form-embed textarea.el-textarea__inner {
  font-family: "open sans", "Open Sans", Arial, Helvetica, sans-serif !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  color: #000 !important;
  background: #fff !important;
  border: 1px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 37px !important;
  min-height: 37px !important;
  padding: 3px 3px 3px 10px !important;
  box-sizing: border-box !important;
}

#cognito-form-embed .el-textarea__inner,
#cognito-form-embed textarea.el-textarea__inner {
  height: 86px !important;
  min-height: 86px !important;
  padding: 10px 10px 3px !important;
  resize: vertical !important;
}

#cognito-form-embed .cog-field__placeholder {
  display: none !important;
}

/* Field help text ("Upload supported file…") — Wix rendered it at 14px. */
#cognito-form-embed .cog-helptext,
#cognito-form-embed .cog-helptext * {
  font-family: "open sans", "Open Sans", Arial, Helvetica, sans-serif !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  color: #000 !important;
}

#cognito-form-embed .cog-helptext {
  margin: 7px 0 0 !important;
}

#cognito-form-embed .cog-page__navigation,
#cognito-form-embed .cog-row:has(.cog-button--submit) {
  display: block !important;
  width: 380px !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#cognito-form-embed .cog-row:has(.cog-button--submit) > .cog-field,
#cognito-form-embed .cog-page__navigation .cog-field {
  width: 380px !important;
  max-width: 380px !important;
  flex: none !important;
}

#cognito-form-embed .cog-button--submit,
#cognito-form-embed .cog-page__navigation .cog-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 380px !important;
  max-width: 100% !important;
  height: 35px !important;
  min-height: 35px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgb(53, 121, 183) !important;
  border-radius: 0 !important;
  background: rgb(53, 121, 183) !important;
  background-color: rgb(53, 121, 183) !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

#cognito-form-embed .cog-button--submit .cog-button__text,
#cognito-form-embed .cog-page__navigation .cog-button span {
  font-family: "open sans", "Open Sans", Arial, Helvetica, sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  line-height: 35px !important;
  color: #fff !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/*
 * Submit hover, matching the retired Wix button: fill goes white, text and
 * border go blue, over Wix's 0.4s colour transition.
 */
#cognito-form-embed .cog-button--submit,
#cognito-form-embed .cog-page__navigation .cog-button,
#cognito-form-embed .cog-button--submit .cog-button__text,
#cognito-form-embed .cog-page__navigation .cog-button span {
  transition: background-color 0.4s, border-color 0.4s, color 0.4s !important;
}

#cognito-form-embed .cog-button--submit:hover,
#cognito-form-embed .cog-button--submit:focus-visible,
#cognito-form-embed .cog-page__navigation .cog-button:hover,
#cognito-form-embed .cog-page__navigation .cog-button:focus-visible {
  background: #fff !important;
  background-color: #fff !important;
  border-color: rgb(53, 121, 183) !important;
}

#cognito-form-embed .cog-button--submit:hover .cog-button__text,
#cognito-form-embed .cog-button--submit:focus-visible .cog-button__text,
#cognito-form-embed .cog-page__navigation .cog-button:hover span,
#cognito-form-embed .cog-page__navigation .cog-button:focus-visible span {
  color: rgb(53, 121, 183) !important;
}

/*
 * Resume upload (careers). Wix showed a single white "Upload File" bar with a
 * 1px black border, so the Cognito drag-and-drop panel is flattened to match.
 * The dragger element is kept (just compacted) so files can still be dropped.
 */
#cognito-form-embed .cog-upload,
#cognito-form-embed .el-upload,
#cognito-form-embed .el-upload--picture,
#cognito-form-embed .el-upload-dragger {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* The dragger wraps its button in an unnamed padded div. */
#cognito-form-embed .el-upload-dragger > div {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#cognito-form-embed .cog-upload__drag-text {
  display: none !important;
}

#cognito-form-embed .cog-upload__upload-button,
#cognito-form-embed .cog-button--secondary {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 52px !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #000 !important;
  border-radius: 0 !important;
  background: #fff !important;
  background-color: #fff !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background-color 0.4s, border-color 0.4s, color 0.4s !important;
}

#cognito-form-embed .cog-upload__upload-button span,
#cognito-form-embed .cog-button--secondary span {
  font-family: "open sans", "Open Sans", Arial, Helvetica, sans-serif !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  color: #000 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

#cognito-form-embed .cog-upload__upload-button:hover,
#cognito-form-embed .cog-upload__upload-button:focus-visible,
#cognito-form-embed .cog-button--secondary:hover,
#cognito-form-embed .cog-button--secondary:focus-visible {
  background: #fff !important;
  background-color: #fff !important;
  border-color: rgb(53, 121, 183) !important;
}

#cognito-form-embed .cog-upload__upload-button:hover span,
#cognito-form-embed .cog-upload__upload-button:focus-visible span,
#cognito-form-embed .cog-button--secondary:hover span,
#cognito-form-embed .cog-button--secondary:focus-visible span {
  color: rgb(53, 121, 183) !important;
}

/* Mobile stays single-column; still hide title and match field chrome. */
body.device-mobile-optimized #cognito-form-embed .cog-row {
  flex-direction: column !important;
  width: 100% !important;
  margin: 0 0 12px !important;
}

body.device-mobile-optimized #cognito-form-embed .cog-row > .cog-field.cog-col--12,
body.device-mobile-optimized #cognito-form-embed .cog-row > .cog-field.cog-col--24,
body.device-mobile-optimized #cognito-form-embed .cog-field.cog-col--24,
body.device-mobile-optimized #cognito-form-embed .cog-page__navigation,
body.device-mobile-optimized #cognito-form-embed .cog-row:has(.cog-button),
body.device-mobile-optimized #cognito-form-embed .cog-row:has(.cog-button) > .cog-field,
body.device-mobile-optimized #cognito-form-embed .el-button.cog-button,
body.device-mobile-optimized #cognito-form-embed .cog-button {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 auto !important;
}

/*
 * Sticky header hide-on-scroll. Mirrors Wix Header:
 *   desktop — fade to opacity:0
 *   mobile  — translateY(-100%)
 * State classes are owned by site.js (sp-header-*), not Wix's hashed names.
 * !important beats capture-time Wix mid-scroll state classes left on <header>.
 */
#SITE_HEADER.sp-header-hidden {
  pointer-events: none !important;
  transition: all 0.2s ease-in !important;
}
#SITE_HEADER.sp-header-shown {
  pointer-events: auto !important;
  transition: all 0.2s !important;
}

body:not(.device-mobile-optimized) #SITE_HEADER.sp-header-hidden {
  opacity: 0 !important;
}
body:not(.device-mobile-optimized) #SITE_HEADER.sp-header-shown {
  opacity: 1 !important;
}

body.device-mobile-optimized #SITE_HEADER.sp-header-hidden {
  transform: translateY(-100%) !important;
}
body.device-mobile-optimized #SITE_HEADER.sp-header-shown {
  transform: none !important;
}
