/* T-Blocks layout polish, added during the Cloudflare migration.
   The Elementor export ships top-level sections with 0-10px horizontal
   padding, so text sits against the viewport edge on wide screens.
   Only content is inset — section backgrounds still bleed full-width.
   Scoped to wp-page sections only: the blog archive grid and loop-item
   cards are width-sensitive (cover-fit card artwork crops when squeezed),
   so archive/loop/header/footer keep their original layout. */

[data-elementor-type="wp-page"] .e-parent.e-con {
  padding-left: clamp(24px, 4vw, 64px) !important;
  padding-right: clamp(24px, 4vw, 64px) !important;
}

/* Edge-to-edge carousels (partner-logo marquee) escape the section
   padding with negative margins so they keep bleeding full-width. */
[data-elementor-type="wp-page"] .e-parent.e-con .elementor-widget-loop-carousel {
  margin-left: calc(-1 * clamp(24px, 4vw, 64px));
  margin-right: calc(-1 * clamp(24px, 4vw, 64px));
}

/* Small screens: button/CTA rows wrap instead of clipping off-screen. */
@media (max-width: 640px) {
  [data-elementor-type="wp-page"] .e-con-full {
    flex-wrap: wrap;
  }
}

/* Old-post related-articles carousels: the swiper track renders wider
   than the viewport before (or without) swiper init, causing page-level
   horizontal scroll. Clip at the carousel and guard the page itself. */
.elementor-loop-container.swiper,
.swiper:not(.swiper-initialized) {
  overflow: hidden;
}
html, body {
  overflow-x: clip;
}
