.elementor-kit-6{--e-global-color-primary:#0F58EA;--e-global-color-secondary:#111827;--e-global-color-text:#475569;--e-global-color-accent:#003BCC;--e-global-color-ceccdb9:#FFFFFF;--e-global-color-e06f6da:#FDFDFD;--e-global-color-8523536:#E2E8F0;--e-global-color-cebdfe5:#E2EDF5;--e-global-color-ffe3b0a:#181919;--e-global-color-0acf13b:#E5E7EB;--e-global-color-d808848:#2D6DEE;--e-global-color-1325079:#4B83F2;--e-global-color-bcaa267:#F3F3F3;--e-global-typography-primary-font-family:"IBM Plex Mono";--e-global-typography-primary-font-weight:500;--e-global-typography-secondary-font-family:"IBM Plex Sans";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"IBM Plex Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"IBM Plex Mono";--e-global-typography-accent-font-weight:400;font-family:"IBM Plex Sans", Sans-serif;font-size:16px;font-weight:400;line-height:1.6em;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:#54595F;font-family:"IBM Plex Sans", Sans-serif;font-size:14px;font-weight:400;line-height:1.15em;}.elementor-kit-6 h1{font-family:"IBM Plex Mono", Sans-serif;font-size:44px;font-weight:600;line-height:1.15em;}.elementor-kit-6 h2{font-family:"IBM Plex Mono", Sans-serif;font-size:32px;font-weight:600;line-height:1.25em;}.elementor-kit-6 h3{font-family:"IBM Plex Sans", Sans-serif;font-size:24px;font-weight:600;line-height:1.3em;}.elementor-kit-6 h4{font-family:"IBM Plex Sans", Sans-serif;font-size:20em;font-weight:600;line-height:1.3em;}.elementor-kit-6 h5{font-family:"IBM Plex Sans", Sans-serif;font-size:19px;font-weight:600;}.elementor-kit-6 h6{font-family:"IBM Plex Sans", Sans-serif;font-size:16px;font-weight:600;line-height:1.4em;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{font-size:16px;line-height:1.6em;}.elementor-kit-6 a{font-size:12px;}.elementor-kit-6 h1{font-size:30px;line-height:1.15em;}.elementor-kit-6 h2{font-size:26px;line-height:1.25em;}.elementor-kit-6 h3{font-size:22px;line-height:1.3em;}.elementor-kit-6 h4{font-size:18px;line-height:1.35em;}.elementor-kit-6 h5{font-size:17px;line-height:1.4em;}.elementor-kit-6 h6{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =====================================================
   SPE BUTTON SYSTEM v1.2
   Classic Elementor Button widgets
   ===================================================== */

/* Shared foundation */
.elementor .elementor-widget-button.spe-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  max-width: 100%;
  min-height: 48px;
  box-sizing: border-box;

  padding: 12px 24px;
  border: 1px solid transparent;
  border-radius: 1px;

  font-family:
    var(--e-global-typography-primary-font-family, "IBM Plex Mono"),
    monospace;
  font-weight: var(--e-global-typography-primary-font-weight, 500);
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;

  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;

  box-shadow: none;

  transition:
    background-color 200ms ease,
    color 200ms ease,
    border-color 200ms ease,
    transform 200ms ease,
    box-shadow 200ms ease;
}

.elementor
  .elementor-widget-button.spe-btn
  .elementor-button-content-wrapper {
  align-items: center;
  gap: 0.6em;
}

.elementor
  .elementor-widget-button.spe-btn
  .elementor-button-icon {
  flex-shrink: 0;
  margin: 0;
}

.elementor
  .elementor-widget-button.spe-btn
  .elementor-button-icon svg {
  fill: currentColor;
}


/* =====================================================
   PRIMARY BUTTON
   CSS Classes: spe-btn spe-btn-primary
   ===================================================== */

.elementor
  .elementor-widget-button.spe-btn-primary
  .elementor-button {
  background-color: var(--e-global-color-primary, #004DFF) !important;
  background-image: none !important;
  border-color: var(--e-global-color-primary, #004DFF) !important;
  color: #fff !important;
}

.elementor
  .elementor-widget-button.spe-btn-primary
  .elementor-button:hover {
  background-color: var(--e-global-color-accent, #003BCC) !important;
  background-image: none !important;
  border-color: var(--e-global-color-accent, #003BCC) !important;
  color: #fff !important;

  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgb(0 0 0 / 12%);
}


/* =====================================================
   SECONDARY BUTTON
   CSS Classes: spe-btn spe-btn-secondary
   ===================================================== */

.elementor
  .elementor-widget-button.spe-btn-secondary
  .elementor-button {
  background-color: #fff !important;
  background-image: none !important;
  border-color: var(--e-global-color-primary, #004DFF) !important;
  color: var(--e-global-color-primary, #004DFF) !important;
  box-shadow: none !important;
}

.elementor
  .elementor-widget-button.spe-btn-secondary
  .elementor-button:hover {
  background-color: var(--e-global-color-primary, #004DFF) !important;
  background-image: none !important;
  border-color: var(--e-global-color-primary, #004DFF) !important;
  color: #fff !important;

  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgb(0 77 255 / 16%) !important;
}


/* =====================================================
   TEXT BUTTON
   CSS Classes: spe-btn spe-btn-text
   ===================================================== */

.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button,
.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button:hover,
.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button:focus,
.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button:active {
  background-color: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button {
  min-height: auto;
  padding: 10px 0;

  color: var(--e-global-color-primary, #004DFF) !important;
  text-decoration: none !important;
}

.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button:hover {
  color: var(--e-global-color-accent, #003BCC) !important;
  transform: translateY(-1px);
}


/* Animated text underline */
.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button-text {
  position: relative;
  display: inline-block;
}

.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button-text::after {
  content: "";

  position: absolute;
  right: 0;
  bottom: -3px;

  width: 100%;
  height: 1px;

  background-color: currentColor;

  transform: scaleX(0);
  transform-origin: right center;

  transition:
    transform 220ms ease,
    background-color 200ms ease;
}

.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button:hover
  .elementor-button-text::after,
.elementor
  .elementor-widget-button.spe-btn-text
  .elementor-button:focus-visible
  .elementor-button-text::after {
  transform: scaleX(1);
  transform-origin: left center;
}


/* Shared keyboard focus */
.elementor
  .elementor-widget-button.spe-btn
  .elementor-button:focus-visible {
  outline: 2px solid var(--e-global-color-primary, #004DFF);
  outline-offset: 3px;
}


/* =====================================================
   SPE PURCHASE QUANTITY CONTROL
   Only affects controls inside .spe-purchase
   ===================================================== */

/*
 * Remove spacing between:
 * minus button → quantity input → plus button
 */
body
  .elementor
  .spe-purchase
  form.cart:not(.variations_form),
body
  .elementor
  .spe-purchase
  .woocommerce-variation-add-to-cart {
  column-gap: 0 !important;
  row-gap: 16px !important;
}


/* Enhanced quantity wrapper */
body
  .elementor
  .spe-purchase
  .spe-quantity-enhanced {
  display: inline-flex !important;
  align-items: stretch !important;

  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;
}


/* Remove internal margins */
body
  .elementor
  .spe-purchase
  .spe-quantity-enhanced > *,
body
  .elementor
  .spe-purchase
  form.cart
  > .quantity {
  margin: 0 !important;
}


/* Minus and plus buttons */
body
  .elementor
  .spe-purchase
  button.spe-qty-control {
  box-sizing: border-box;

  margin: 0 !important;
  padding: 0 !important;

  border: 1px solid #a3a3a3 !important;
  border-radius: 0 !important;

  background: #e5e5e5 !important;
  background-image: none !important;

  color: var(--e-global-color-secondary, #111827) !important;

  box-shadow: none !important;
  transform: none !important;
}


/* Quantity input creates one continuous control */
body
  .elementor
  .spe-purchase
  input.qty {
  box-sizing: border-box;

  margin: 0 !important;

  border-top: 1px solid #a3a3a3 !important;
  border-right: 0 !important;
  border-bottom: 1px solid #a3a3a3 !important;
  border-left: 0 !important;
  border-radius: 0 !important;

  box-shadow: none !important;
}


/* Quantity button hover */
body
  .elementor
  .spe-purchase
  button.spe-qty-control:hover:not(:disabled):not(
    [aria-disabled="true"]
  ):not(.disabled) {
  background: #d4d4d4 !important;
  background-image: none !important;
  border-color: #8f8f8f !important;

  color: var(--e-global-color-secondary, #111827) !important;

  box-shadow: none !important;
  transform: none !important;
}


/* Quantity button pressed */
body
  .elementor
  .spe-purchase
  button.spe-qty-control:active:not(:disabled):not(
    [aria-disabled="true"]
  ):not(.disabled) {
  background: #bfbfbf !important;
  background-image: none !important;
}


/* Disabled minus button at minimum quantity */
body
  .elementor
  .spe-purchase
  button.spe-qty-minus:disabled,
body
  .elementor
  .spe-purchase
  button.spe-qty-minus[aria-disabled="true"],
body
  .elementor
  .spe-purchase
  button.spe-qty-minus.disabled {
  opacity: 1 !important;

  background: #f1f1f1 !important;
  background-image: none !important;

  border-color: #b8b8b8 !important;
  color: #9ca3af !important;

  cursor: not-allowed !important;
  pointer-events: none;

  box-shadow: none !important;
  transform: none !important;
}


/* Quantity keyboard focus */
body
  .elementor
  .spe-purchase
  button.spe-qty-control:focus-visible {
  outline: 2px solid var(--e-global-color-primary, #004DFF) !important;
  outline-offset: 3px;
}


/* Preserve spacing between quantity .elementor-kit-6 and Add to Cart */
body
  .elementor
  .spe-purchase
  form.cart:not(.variations_form)
  > .single_add_to_cart_button,
body
  .elementor
  .spe-purchase
  .woocommerce-variation-add-to-cart
  > .single_add_to_cart_button {
  margin-left: 16px !important;
}


/* =====================================================
   RESPONSIVE
   ===================================================== */

@media (max-width: 767px) {
  .elementor
    .elementor-widget-button.spe-btn
    .elementor-button {
    padding: 12px 20px;
  }

  .elementor
    .elementor-widget-button.spe-btn-text
    .elementor-button {
    padding: 10px 0;
  }

  .elementor
    .elementor-widget-button.spe-btn-mobile-full,
  .elementor
    .spe-btn-mobile-full
    .elementor-button-wrapper,
  .elementor
    .spe-btn-mobile-full
    .elementor-button {
    width: 100%;
  }

  /*
   * Add to Cart normally moves to the next row on mobile.
   * Remove its desktop left margin.
   */
  body
    .elementor
    .spe-purchase
    .single_add_to_cart_button {
    margin-left: 0 !important;
  }
}


/* =====================================================
   REDUCED MOTION
   ===================================================== */

@media (prefers-reduced-motion: reduce) {
  .elementor
    .elementor-widget-button.spe-btn
    .elementor-button,
  .elementor
    .elementor-widget-button.spe-btn-text
    .elementor-button-text::after {
    transition: none !important;
  }

  .elementor
    .elementor-widget-button.spe-btn
    .elementor-button:hover {
    transform: none !important;
  }
}


/* Product section anchor offset */
.single-product #description,
.single-product #specifications,
.single-product #applications,
.single-product #downloads {
  scroll-margin-top: 160px;
}

.single-product {
  scroll-behavior: smooth;
}

@media (max-width: 767px) {
  .single-product #description,
  .single-product #specifications,
  .single-product #applications,
  .single-product #downloads {
    scroll-margin-top: 140px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .single-product {
    scroll-behavior: auto;
  }
}

/* Back-to-top visibility and motion */
.single-product .spe-back-to-top {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(12px);
  transition:
    opacity 200ms ease,
    visibility 200ms ease,
    transform 200ms ease;
}

.single-product .spe-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

/* Keep it visible inside the Elementor editor */
.elementor-editor-active .spe-back-to-top {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .single-product .spe-back-to-top {
    transition: none;
  }
}/* End custom CSS */