/* Sidebar contact form: visible and in normal flow by default; switches to fixed positioning (left/width set by JS in custom.js) once the user scrolls past .sidebar-cta. position: sticky does not work here because body has overflow-x: hidden (see sweet-james-ppc/assets/css/brand.css) which forces overflow-y's used value to auto, making body the nearest scrollable ancestor for sticky descendants even though body itself never scrolls. */

/* ===== Sticky sidebar contact form (desktop only, >1200px) ===== */
@media (min-width: 1201px) {
  /* Give the sticky element's ancestor chain real height to travel within,
     matching the stretched height Elementor already gives the sidebar column */
  .client-result-sidebar,
  .client-result-sidebar > .elementor-container {
    height: 100%;
  }

  .sidebar-contact-form {
    position: sticky;
    /* 200px clears the header (157px) even when the WP admin bar is present,
       which shifts Elementor's internal sticky-effect clone of the header
       down to a 189px bottom edge for logged-in users. */
    top: 0;
    z-index: 5;
  }

  /* This wrapper (the template's own root, id 151727) has overflow:hidden,
     which otherwise prevents position:sticky descendants from working */
  .client_result-template-default div[data-elementor-type="single-post"] {
    overflow: visible; /* both axes must be 'visible' - mixing hidden/visible still creates a scroll container that breaks position:sticky */
  }
}

body.single-client_result .sidebar-contact-form {
	position: relative;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

body.single-client_result .sidebar-contact-form.is-stuck {
	position: fixed;
	top: 200px;
	z-index: 5;
}

body.single-client_result .sidebar-contact-form.is-stopped {
	position: absolute;
	bottom: 0;
	z-index: 5;
}