/* Shared mobile/tablet refinements; desktop retains the captured site layout. */
.canvas-responsive-header { display: none; }
@media (max-width: 1024px) {
  /* Match the desktop's wide decorative banner on smaller screens, while using
     a local scrolling background so mobile browsers do not crop against the viewport. */
  .elementor .e-con { background-attachment: scroll !important; }
  .elementor .elementor-element.elementor-element-2bb7796,
  .elementor .elementor-element.elementor-element-6faa4a27,
  .elementor .elementor-element.elementor-element-bdfd11e {
    width: 100%; aspect-ratio: auto; height: clamp(190px, 28vw, 280px) !important;
    min-height: 0 !important; flex-shrink: 0;
    padding: 0 !important; margin-block: 0 !important;
    background-size: cover !important; background-position: center 55% !important;
    background-repeat: no-repeat !important;
  }
  .elementor-element-2bb7796 .elementor-widget-spacer,
  .elementor-element-6faa4a27 .elementor-widget-spacer,
  .elementor-element-bdfd11e .elementor-widget-spacer { display: none !important; }
  /* Carry the desktop's overlapping white content panel into smaller layouts. */
  .elementor-10979 .elementor-element.elementor-element-f27c2bc,
  .elementor-11098 .elementor-element.elementor-element-966099f,
  .elementor-11104 .elementor-element.elementor-element-17ea096e {
    position: relative; z-index: 2; width: calc(100% - 48px) !important;
    max-width: 1100px; margin: -80px auto 40px !important; padding: 0 !important;
  }
  .elementor-10979 .elementor-element.elementor-element-d36543f,
  .elementor-11098 .elementor-element.elementor-element-4ea0473d,
  .elementor-11104 .elementor-element.elementor-element-4c5d37d0 {
    background: #fff; border-radius: 6px; padding: 24px !important;
    box-shadow: 0 12px 32px rgba(15, 39, 36, .06);
  }
  .elementor .elementor-element-fff541b > .e-con-inner,
  .elementor .elementor-element-dceffb6 > .e-con-inner {
    display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 24px; align-items: center;
  }
  .elementor .elementor-element.elementor-element-9b1cbb7,
  .elementor .elementor-element.elementor-element-71843d1 {
    width: 100% !important; margin: 0 !important; padding: 16px 8px !important;
  }
  .elementor .elementor-element.elementor-element-4b12e73,
  .elementor .elementor-element.elementor-element-46e1162 {
    width: 100% !important; margin: 0 !important; padding: 24px !important;
  }
  .canvas-responsive-header { display: block; }
  html { scroll-padding-top: 100px; }
  body .elementor .e-con, body .elementor .elementor-widget { min-width: 0; max-width: 100%; }
  body .elementor h1 { font-size: clamp(36px, 5.5vw, 56px) !important; line-height: 1.12 !important; overflow-wrap: break-word; text-wrap: balance; }
  body .elementor h2 { font-size: clamp(26px, 3.6vw, 36px) !important; line-height: 1.2 !important; text-wrap: balance; }
  body .elementor h3 { line-height: 1.3 !important; overflow-wrap: break-word; }
  body .elementor .elementor-widget-text-editor { line-height: 1.65; }
  body .elementor .elementor-widget-image img { max-width: 100%; height: auto !important; object-fit: contain !important; }
  body .elementor .elementor-widget-image, body .elementor .elementor-widget-image .elementor-widget-container { height: auto !important; }
  body .elementor .elementor-widget-video .elementor-wrapper { position: relative; width: 100%; height: auto !important; aspect-ratio: 16 / 9 !important; overflow: hidden; background: #101e24; }
  body .elementor .elementor-widget-video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain !important; }
  body .elementor .elementor-widget-video .elementor-custom-embed-image-overlay { background-size: contain; background-repeat: no-repeat; background-color: #101e24; }
  body .elementor .elementor-widget-button .elementor-button { min-height: 44px; padding: 14px 24px !important; font-size: 12px !important; line-height: 1.3 !important; letter-spacing: 1.2px !important; max-width: 100%; white-space: normal; }
  body .elementor .elementor-motion-effects-element { transform: none !important; }
  body .elementor .animated { animation-duration: .45s !important; }

  /* A compact header with the existing menu, rather than a second navigation. */
  .elementor-49 .elementor-element.elementor-element-79e5633 { min-height: 86px; padding: 8px 20px !important; gap: 16px; flex-wrap: nowrap; align-items: center; }
  .elementor-49 .elementor-element.elementor-element-a598597 { flex: 0 0 76px; width: 76px !important; margin: 0 !important; padding: 0 !important; }
  .elementor-49 .elementor-element.elementor-element-2212fbf { position: static !important; margin: 0 !important; width: 100% !important; }
  .elementor-49 .elementor-element-2212fbf .elementor-widget-container { margin: 0 !important; padding: 0 !important; }
  .elementor-49 .elementor-element-2212fbf img { width: 72px !important; height: auto !important; max-height: 72px; object-fit: contain; }
  .elementor-49 .elementor-element.elementor-element-01048d0 { flex: 1 1 auto; width: auto !important; }
  .elementor-49 .elementor-element.elementor-element-d490bc8 { display: none !important; }
  .elementor-49 .elementor-menu-toggle { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .elementor-49 nav.elementor-nav-menu--dropdown { z-index: 10001; overflow-y: auto; overscroll-behavior: contain; max-width: 100vw; }
  .elementor-49 nav.elementor-nav-menu--dropdown a { min-height: 44px; padding: 12px 22px !important; white-space: normal; }

  /* Homepage hero: give the complete wordmark and introduction their own space. */
  .elementor-2 .elementor-element.elementor-element-4642dbf4 { margin-top: 0 !important; padding: 40px 28px !important; min-height: 620px !important; }
  .elementor-2 .elementor-element-4642dbf4 > .e-con-inner { min-height: 0 !important; align-items: center; }
  .elementor-2 .elementor-element.elementor-element-145f0c4e { width: min(480px, 80%) !important; margin-inline: auto !important; padding: 32px !important; gap: 16px; background: rgba(15, 25, 29, .76); border-radius: 24px; }
  .elementor-2 .elementor-element-145f0c4e::before { opacity: 0 !important; }
  body .elementor-2 .elementor-element-5d25d5d h1 { font-size: 64px !important; line-height: 1 !important; letter-spacing: 2px !important; margin: 0; }
  .elementor-2 .elementor-element-2e5ae07d { font-size: 16px !important; line-height: 1.6 !important; text-align: left !important; }
  .elementor-2 .elementor-element-145f0c4e .elementor-widget { margin: 0 !important; }
  .elementor-2 .elementor-element-bbcc208 .elementor-heading-title { font-size: 15px !important; line-height: 1.2 !important; }
  .elementor-element button.video-playback-toggle { top: 18px; right: 18px; }
  .website-callrail input:not([type="checkbox"]):not([type="hidden"]) { font-size: 16px !important; }
  .website-callrail-consent label { font-size: 14px; }
  .elementor-114 .elementor-element.elementor-element-26c11854 { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 18px; padding: 20px 24px 64px; }
  .elementor-114 .elementor-element.elementor-element-531c11e3 { width: auto; flex: 0 0 auto; }
  .elementor-114 .footer-copyright { flex-wrap: nowrap; white-space: nowrap; margin: 0; font-size: 13px; line-height: 1.5; }
  .elementor-114 .elementor-element-5b92bc9 > .elementor-widget-container { margin: 0 !important; }
  .elementor-114 .elementor-element.elementor-element-5b92bc9 { width: auto; flex: 0 0 auto; }
  .elementor-114 .elementor-social-icons-wrapper { display: inline-flex; flex-wrap: nowrap; gap: 18px; }
  .elementor-114 .elementor-element.elementor-element-6ba83f9e { width: 190px; max-width: 190px; flex: 0 0 auto; }
}

@media (max-width: 767px) {
  .elementor-10979 .elementor-element.elementor-element-f27c2bc,
  .elementor-11098 .elementor-element.elementor-element-966099f,
  .elementor-11104 .elementor-element.elementor-element-17ea096e { width: calc(100% - 32px) !important; margin-top: -48px !important; }
  .elementor-10979 .elementor-element.elementor-element-d36543f,
  .elementor-11098 .elementor-element.elementor-element-4ea0473d,
  .elementor-11104 .elementor-element.elementor-element-4c5d37d0 { padding: 24px 16px !important; }
  .elementor .elementor-element-fff541b > .e-con-inner,
  .elementor .elementor-element-dceffb6 > .e-con-inner { grid-template-columns: minmax(0, 1fr); }
  .elementor .elementor-element.elementor-element-fff541b,
  .elementor .elementor-element.elementor-element-dceffb6 {
    flex-direction: column; padding: 28px 20px !important; gap: 24px;
  }
  .elementor .elementor-element.elementor-element-9b1cbb7,
  .elementor .elementor-element.elementor-element-71843d1 {
    width: 100% !important; margin: 0 !important; padding: 0 !important; gap: 18px;
  }
  body .elementor .elementor-element-54d3566 h2,
  body .elementor .elementor-element-538e9ff h2 {
    font-size: clamp(23px, 6.4vw, 26px) !important; line-height: 1.35 !important;
    max-width: 28ch; margin-inline: auto; text-align: center;
  }
  html { scroll-padding-top: 80px; }
  .elementor-49 .elementor-element.elementor-element-79e5633 { min-height: 72px; padding: 8px 12px !important; gap: 8px; }
  .elementor-49 .elementor-element.elementor-element-a598597 { flex-basis: 52px; width: 52px !important; }
  .elementor-49 .elementor-element-2212fbf img { width: 52px !important; max-height: 56px; }
  .elementor-49 .elementor-menu-toggle { font-size: 22px !important; }
  .elementor-49 .elementor-element.elementor-element-3f6eeba { width: auto !important; flex-shrink: 0; }
  .elementor-49 .elementor-element-098514f button { min-height: 36px; padding: 8px 10px !important; font-size: 10px !important; white-space: nowrap; }
  .elementor-2 .elementor-element.elementor-element-4642dbf4 { padding: 48px 20px 32px !important; min-height: 620px !important; }
  .elementor-2 .elementor-element-4642dbf4 > .e-con-inner { width: 100%; }
  .elementor-2 .elementor-element.elementor-element-145f0c4e { width: 100% !important; max-width: 420px; padding: 28px 22px !important; margin: 0 auto !important; gap: 16px; }
  body .elementor-2 .elementor-element-5d25d5d h1 { font-size: clamp(44px, 13vw, 56px) !important; line-height: 1.02 !important; }
  .elementor-2 .elementor-element-2e5ae07d { font-size: 15px !important; line-height: 1.65 !important; }
  .elementor-2 .elementor-element-74b6c496 .elementor-button { min-width: 164px; }
  body .elementor h2 { font-size: clamp(25px, 7vw, 30px) !important; line-height: 1.25 !important; }
  body .elementor h3 { font-size: clamp(20px, 5.6vw, 25px) !important; }
  .elementor[data-elementor-type="wp-page"] .elementor-widget-text-editor { font-size: 16px; }
  .elementor .e-con-inner { max-width: 100%; }
  .elementor .elementor-form .elementor-field-group:not(.elementor-field-type-submit) { width: 100%; }
  .elementor .elementor-field-type-submit { width: 100%; }
  .footer-copyright { font-size: 12px; gap: .3em; }
  .elementor-114 .elementor-element.elementor-element-26c11854 { flex-direction: column; justify-content: center; gap: 18px; padding-inline: 16px; }
  .elementor-114 .elementor-element.elementor-element-531c11e3 { width: 100%; }
  /* Keep the translation control from covering full-width CTAs. */
  .gtranslate_wrapper select { max-width: 130px !important; min-height: 36px; font-size: 12px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .elementor .animated, .elementor .elementor-motion-effects-element { animation: none !important; transition: none !important; transform: none !important; }
}
