/* ========================================================================
   Responsive fixes — overrides Elementor's fixed-size typography on narrow
   viewports so text scales properly across all screen sizes.
   ======================================================================== */

/* ---------- Tablet & narrow desktop (≤ 1024px) ---------- */
@media (max-width: 1024px) {
  .elementor-heading-title,
  h1.elementor-heading-title { font-size: clamp(28px, 5.5vw, 48px) !important; line-height: 1.2 !important; }
  h2.elementor-heading-title { font-size: clamp(24px, 4.5vw, 38px) !important; line-height: 1.25 !important; }
  h3.elementor-heading-title { font-size: clamp(20px, 3.5vw, 28px) !important; line-height: 1.3 !important; }
  h4.elementor-heading-title { font-size: clamp(18px, 3vw, 24px) !important; }

  .elementor-widget-text-editor,
  .elementor-widget-text-editor p,
  .elementor-widget-heading + .elementor-widget-text-editor {
    font-size: clamp(15px, 2.2vw, 18px) !important;
    line-height: 1.6 !important;
  }

  /* prevent containers/text from overflowing horizontally */
  .elementor-container,
  .elementor-section,
  .e-con,
  .e-con-inner {
    max-width: 100% !important;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }
  .e-con-full > .e-con-inner,
  .e-con > .e-con-inner {
    padding-left: clamp(12px, 3vw, 32px) !important;
    padding-right: clamp(12px, 3vw, 32px) !important;
  }

  /* buttons scale */
  .elementor-button {
    font-size: clamp(14px, 2.2vw, 17px) !important;
    padding: 12px 24px !important;
  }

  /* images stay within container */
  .elementor-widget-image img { max-width: 100% !important; height: auto !important; }
}

/* ---------- Tablet (≤ 768px) ---------- */
@media (max-width: 768px) {
  body { font-size: 15px; }
  h1.elementor-heading-title { font-size: clamp(24px, 7vw, 36px) !important; }
  h2.elementor-heading-title { font-size: clamp(20px, 6vw, 30px) !important; }
  h3.elementor-heading-title { font-size: clamp(18px, 5vw, 24px) !important; }

  /* collapse multi-column rows on tablet */
  .e-con.e-flex { flex-wrap: wrap !important; }
  .e-con.e-flex > .e-con-inner,
  .e-con.e-flex > .elementor-element { width: 100% !important; max-width: 100% !important; }
}

/* ---------- Mobile (≤ 600px) ---------- */
@media (max-width: 600px) {
  body { font-size: 14px; }
  h1.elementor-heading-title { font-size: clamp(22px, 8vw, 30px) !important; line-height: 1.2 !important; }
  h2.elementor-heading-title { font-size: clamp(18px, 7vw, 26px) !important; line-height: 1.25 !important; }
  h3.elementor-heading-title { font-size: clamp(16px, 5.5vw, 22px) !important; }
  h4.elementor-heading-title, h5.elementor-heading-title { font-size: clamp(15px, 5vw, 19px) !important; }

  .elementor-widget-text-editor,
  .elementor-widget-text-editor p {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  /* tighter section padding on mobile */
  section.elementor-section,
  .e-con-full,
  .e-con {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* containers full width on mobile */
  .elementor-container,
  .elementor-row,
  .e-con-inner { max-width: 100% !important; width: 100% !important; }

  /* every column becomes full-width */
  .elementor-column,
  .elementor-top-column,
  .e-con > .e-con,
  .e-con-full > .e-con,
  .elementor-element.e-flex { width: 100% !important; flex: 0 0 100% !important; max-width: 100% !important; }

  /* mega-menu collapse to hamburger */
  .e-n-menu-content,
  .e-n-menu-dropdown-content,
  ul.e-n-menu-heading > li > .e-n-menu-title:not(.e-current) ~ * { display: none !important; }
  .e-n-menu-toggle { display: flex !important; }

  /* buttons & CTAs */
  .elementor-button {
    width: auto !important;
    font-size: 14px !important;
    padding: 11px 22px !important;
  }
  .elementor-widget-button { text-align: center !important; }

  /* mobile contact form */
  .elementor-field-group { width: 100% !important; padding: 4px 0 !important; }
  .elementor-form input,
  .elementor-form textarea,
  .elementor-form select {
    font-size: 16px !important; /* prevents iOS zoom on focus */
    width: 100% !important;
    padding: 12px 14px !important;
    border-radius: 8px !important;
  }
  .elementor-form textarea { min-height: 100px !important; }
  .elementor-form button[type="submit"] { width: 100% !important; padding: 14px !important; font-size: 16px !important; }

  /* image cards / feature cards stack vertically */
  .elementor-image-box-wrapper,
  .premium-blog-content-wrapper { flex-direction: column !important; text-align: center !important; }

  /* social proof / logo carousels — reduce size */
  .elementor-widget-image-carousel img,
  .elementor-image-carousel img { max-height: 50px !important; }

  /* hide elements that aren't critical on mobile */
  .hide-on-mobile { display: none !important; }

  /* sticky header reduced height */
  header.elementor-section,
  .elementor-element[data-settings*="sticky"] { padding: 8px 0 !important; }

  /* table responsive scroll */
  table { display: block; overflow-x: auto; max-width: 100%; }

  /* tabs collapse on mobile */
  .elementor-tabs-wrapper { flex-direction: column !important; }
  .elementor-tab-title { width: 100% !important; }
}

/* ---------- Universal — prevent horizontal scroll ---------- */
html, body { overflow-x: hidden; max-width: 100%; }
img, video, iframe { max-width: 100%; height: auto; }

/* RTL helpers */
[dir="rtl"] .elementor-form .elementor-field-group { text-align: right; }

/* ---------- Hide old GTranslate widget + Google Translate banner ---------- */
#gt-wrapper-75952776,
.gt_floater,
.gt_float_switcher,
.skiptranslate,
.goog-te-banner-frame,
.goog-te-gadget,
iframe.skiptranslate { display: none !important; visibility: hidden !important; }
body { top: 0 !important; position: static !important; }
.goog-te-balloon-frame { display: none !important; }
.goog-tooltip,
.goog-tooltip:hover { display: none !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }
font[face="arial"] { font-family: inherit !important; }

