/* Layout fixes for the exported Elementor page. */
:root {
  --site-accent: #f0b323;
  --site-ink: #17202a;
  --site-radius: 8px;
}

html {
  overflow-x: hidden;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--site-ink);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

*, *::before, *::after { box-sizing: border-box; }

img, svg, video {
  display: block;
  max-width: 100%;
  height: auto;
}

a, button, input, textarea { transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(240, 179, 35, .45);
  outline-offset: 3px;
}

/* Header: remove the negative overlap which covered the hero content. */
.elementor-58 .elementor-element.elementor-element-1a6bb70c {
  margin: 15px auto 0 !important;
  width: min(1200px, calc(100% - 32px));
  border-radius: var(--site-radius);
  box-shadow: 0 8px 28px rgba(17, 24, 39, .10);
  position: relative;
  z-index: 200;
}

.elementor-58 .elementor-element.elementor-element-ce306c6 img {
  width: min(100%, 290px);
}

/* The exported menu adds angle icons to every link although there are no
   submenus. Without the remote plugin CSS they drop onto a second row. */
.elementor-58 .tf-nav-menu .mainnav .menu-container > ul > li > a > i,
.elementor-58 .tf-nav-menu .mainnav-mobi .menu-container > ul > li > a > i {
  display: none !important;
}

/* Themesflat navigation: desktop and mobile variants must never be visible together. */
@media (min-width: 1025px) {
  .elementor-58 .tf-nav-menu .nav-panel,
  .elementor-58 .tf-nav-menu .mobile-menu-overlay,
  .elementor-58 .tf-nav-menu .tf-close,
  .elementor-58 .tf-nav-menu .btn-menu-mobile,
  .elementor-58 .tf-nav-menu .btn-menu-only {
    display: none !important;
  }

  .elementor-58 .tf-nav-menu .mainnav { display: block !important; }
  .elementor-58 .tf-nav-menu .mainnav > .menu-container > ul {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .elementor-58 .tf-nav-menu .mainnav > .menu-container > ul > li {
    display: block;
    margin: 0 !important;
    list-style: none;
  }
}

.elementor-button, input[type="submit"] {
  min-height: 44px;
  border-radius: 6px !important;
  cursor: pointer;
}

.elementor-section .elementor-container { width: 100%; }
.elementor-widget-text-editor { overflow-wrap: anywhere; }

/* Keep the content width consistent across internal pages. Full-width section
   backgrounds remain full bleed; only their inner content is constrained. */
body:not(.home) [data-elementor-type="wp-page"] > .elementor-top-section > .elementor-container,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-top-section > .elementor-container,
body:not(.home) [data-elementor-type="product"] > .elementor-top-section > .elementor-container,
body:not(.home) main.site-main,
body:not(.home) .woocommerce-page-content {
  width: min(1200px, calc(100% - 48px)) !important;
  max-width: 1200px !important;
  margin-inline: auto !important;
}

/* Elementor sometimes gives only the first full-width section an oversized
   container. Apply the same box model to every top-level content section. */
body:not(.home) [data-elementor-type="wp-page"] > .elementor-top-section > .elementor-container,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-top-section > .elementor-container {
  padding-inline: 0;
}

/* Decorative Elementor shapes lost their original coordinates with the missing
   page stylesheet. Hide them so they cannot cover headings and cards. */
.elementor-46 .elementor-element-40795200,
.elementor-46 .elementor-element-76e9e1ff,
.elementor-46 .elementor-element-718ad4c7,
.elementor-46 .elementor-element-544ebc1d,
.elementor-46 .elementor-element-49bec50b,
.elementor-46 .elementor-element-6525e5a,
.elementor-46 .elementor-element-322fb5ab,
.elementor-46 .elementor-element-5a1a0cda,
.elementor-46 .elementor-element-20e420f0 {
  display: none !important;
}

/* Keep ordinary content above any remaining background decoration. */
.elementor-46 .elementor-section,
.elementor-46 .elementor-column,
.elementor-46 .elementor-widget-wrap {
  isolation: isolate;
}

.elementor-46 .elementor-widget:not(.elementor-widget-image) {
  position: relative;
  z-index: 2;
}

/* Footer spacing in the generated CSS was excessively large. */
.elementor-63 .elementor-element.elementor-element-3af324f {
  padding-top: 120px !important;
}

.elementor-63 .subscribe-form {
  display: flex;
  align-items: stretch;
  gap: 8px;
}

.elementor-63 .subscribe-form p { margin: 0; }
.elementor-63 .subscribe-form p:first-child { flex: 1; min-width: 0; }
.elementor-63 .subscribe-form input[type="email"] {
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 6px;
}

@media (max-width: 1024px) {
  .elementor-58 .tf-nav-menu .mainnav { display: none !important; }
  .elementor-58 .tf-nav-menu .nav-panel { display: block !important; }
  .elementor-58 .tf-nav-menu .btn-menu-mobile { display: inline-flex !important; }
  .elementor-58 .tf-nav-menu .btn-menu-only { display: none !important; }

  .elementor-58 .tf-nav-menu,
  .elementor-58 .ekit-wid-con {
    position: relative;
    z-index: 300;
  }

  .elementor-58 .elementor-element.elementor-element-53769ff3 {
    position: relative;
    z-index: 301;
  }

  .elementor-58 .tf-nav-menu .btn-menu-mobile,
  .elementor-58 .tf-nav-menu .btn-menu-only,
  .elementor-58 .elementskit-menu-hamburger {
    position: relative;
    z-index: 302;
    pointer-events: auto;
    cursor: pointer;
    border: 0;
    background: transparent;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
  }

  .elementor-58 .elementskit-menu-hamburger {
    display: block !important;
  }

  .elementor-58 .elementor-element.elementor-element-1a6bb70c {
    width: calc(100% - 24px);
    margin-top: 12px !important;
  }

  .elementor-63 .elementor-element.elementor-element-3af324f {
    padding: 80px 24px 28px !important;
  }
}

@media (max-width: 767px) {
  body:not(.home) [data-elementor-type="wp-page"] > .elementor-top-section > .elementor-container,
  body:not(.home) [data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-top-section > .elementor-container,
  body:not(.home) [data-elementor-type="product"] > .elementor-top-section > .elementor-container,
  body:not(.home) main.site-main,
  body:not(.home) .woocommerce-page-content {
    width: min(100% - 28px, 1200px) !important;
  }

  .elementor-58 .elementor-element.elementor-element-1a6bb70c {
    width: calc(100% - 20px);
    margin: 10px auto 0 !important;
  }

  .elementor-58 .elementor-element.elementor-element-265ebae9 { width: 72% !important; }
  .elementor-58 .elementor-element.elementor-element-53769ff3 { width: 28% !important; }
  .elementor-58 .elementor-element.elementor-element-445b93f3 { display: none; }

  .elementor-58 .elementor-element.elementor-element-ce306c6 img {
    width: min(100%, 230px);
  }

  .elementor-63 .elementor-element.elementor-element-3af324f {
    margin-top: 0 !important;
    padding: 72px 20px 28px !important;
  }

  .elementor-63 .elementor-element.elementor-element-3af324f > .elementor-shape-top svg {
    width: calc(160% + 1.3px) !important;
  }

  .elementor-63 .subscribe-form { flex-direction: column; }
  .elementor-63 .subscribe-form input[type="submit"] { width: 100%; }
  .elementor-63 .elementor-element.elementor-element-e5df273 { padding-inline: 16px; }
}
