/* Horizontal-overflow fixes (see docs/OVERFLOW-FIX.md). Loaded after every Elementor/Neve stylesheet. */

/* Neve single posts (the case studies): the theme gives the .row a -15px side margin and the article a 15px side padding,
   and expects .container-fluid to add 15px padding too; .single-post-container has none here, so the row and the article
   were 30px wider than the viewport. Drop the margin and the padding together: the content box stays exactly where it
   was (edge to edge), only the invisible overhang goes. */
.neve-main > .single-post-container > .row { margin-left: 0; margin-right: 0; }
.neve-main > .single-post-container > .row > .nv-single-post-wrap.col { padding-left: 0; padding-right: 0; }

/* Service pages with the "How it works" curve (category-seo, content-strategy, international-seo, link-building,
   local-seo): the three step cards are absolutely positioned with pixel offsets taken from a 1440px design canvas.
   - 1440px and wider: the layout is as designed; only the (transparent) card box of step 3 is wider than its text and
     ends past the viewport at exactly 1440px, so the section clips that empty box (overflow-x: clip, no scroll container).
   - below 1440px: the offsets put steps 2 and 3 outside the screen (768px), over the curve picture (390px) or against the
     edge (1024-1439px). Stack the cards in the normal flow, drop the picture and the fixed section height. */
body:not(.home) .elementor .e-con.e-parent:has(> .e-con-inner > .e-con.e-child[data-settings*='"position":"absolute"']) {
  overflow-x: clip;
}
@media (max-width: 1439px) {
  body:not(.home) .elementor .e-con.e-parent:has(> .e-con-inner > .e-con.e-child[data-settings*='"position":"absolute"']) {
    --min-height: 0px;
    min-height: 0 !important;
    background-image: none !important;
  }
  body:not(.home) .elementor .e-con.e-child[data-settings*='"position":"absolute"'] {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
  }
}

/* Home page "why" cards: fixed 644-667px widths inside a 493px column at tablet width. */
@media (max-width: 1024px) {
  .elementor-47 .elementor-element-5aa07f3,
  .elementor-47 .elementor-element-778eb51,
  .elementor-47 .elementor-element-9ca227a,
  .elementor-47 .elementor-element-b15df3d { max-width: 100%; }
}

/* Home page: a decorative sticker image (right:-83px) bleeds past the right edge between 1025 and 1140 px. The section
   spans the full viewport, so clipping it there looks the same as before (the body used to clip it) without widening the page. */
.elementor-47 .e-con.e-parent { overflow-x: clip; }
