.elementor-15868 .elementor-element.elementor-element-pd-process-carousel{--e-image-carousel-slides-to-show:1;}.elementor-15868 .elementor-element.elementor-element-pd-process-carousel .elementor-swiper-button.elementor-swiper-button-prev, .elementor-15868 .elementor-element.elementor-element-pd-process-carousel .elementor-swiper-button.elementor-swiper-button-next{font-size:28px;color:#01191D;}.elementor-15868 .elementor-element.elementor-element-pd-process-carousel .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-15868 .elementor-element.elementor-element-pd-process-carousel .elementor-swiper-button.elementor-swiper-button-next svg{fill:#01191D;}@media(max-width:1024px){.elementor-15868 .elementor-element.elementor-element-pd-process-carousel{--e-image-carousel-slides-to-show:1;}}@media(max-width:767px){.elementor-15868 .elementor-element.elementor-element-pd-process-carousel{--e-image-carousel-slides-to-show:1;}}/* Start custom CSS *//* Project Dives - empty means invisible.
   Element names match the Structure panel. Safe to edit or delete any block. */

/* 1. Optional text hides itself when its field is blank */
body.elementor-page-15868 [data-id="pd-hero-client"]:empty,
body.elementor-page-15868 [data-id="pd-hero-kicker"]:empty,
body.elementor-page-15868 [data-id="pd-intro-para"]:empty,
body.elementor-page-15868 [data-id="pd-vision-heading"]:empty,
body.elementor-page-15868 [data-id="pd-vision-body"]:empty,
body.elementor-page-15868 [data-id="pd-process-kicker"]:empty,
body.elementor-page-15868 [data-id="pd-process-heading"]:empty,
body.elementor-page-15868 [data-id="pd-process-body"]:empty,
body.elementor-page-15868 [data-id="pd-process-caption"]:empty,
body.elementor-page-15868 [data-id="pd-work-heading"]:empty,
body.elementor-page-15868 [data-id="pd-details-heading"]:empty,
body.elementor-page-15868 [data-id="pd-test-name"]:empty,
body.elementor-page-15868 [data-id="pd-test-role"]:empty,
body.elementor-page-15868 [data-id="pd-test-org"]:empty,
body.elementor-page-15868 [data-id="pd-cta-kicker"]:empty,
body.elementor-page-15868 [data-id="pd-cta-heading"]:empty,
body.elementor-page-15868 [data-id="pd-cta-body"]:empty,
body.elementor-page-15868 [data-id="pd-cta-btn"]:empty,
body.elementor-page-15868 [data-id="pd-cta-btn-b"]:empty,
body.elementor-page-15868 [data-id="pd-collab-heading"]:empty,
body.elementor-page-15868 [data-id^="pd-collab-"][data-id$="-role"]:empty { display: none; }

/* 2. An image with no file set renders a src-less tag. Kill it. */
body.elementor-page-15868 img[data-id^="pd-"]:not([src]) { display: none; }

/* 3. Quick facts: a blank value drops its column, all blank drops the strip */
body.elementor-page-15868 [data-id="pd-fact-1"]:has([data-id="pd-fact-1-value"]:empty),
body.elementor-page-15868 [data-id="pd-fact-2"]:has([data-id="pd-fact-2-value"]:empty),
body.elementor-page-15868 [data-id="pd-fact-3"]:has([data-id="pd-fact-3-value"]:empty),
body.elementor-page-15868 [data-id="pd-fact-4"]:has([data-id="pd-fact-4-value"]:empty) { display: none; }

body.elementor-page-15868 [data-id="pd-facts"]:not(:has([data-id="pd-fact-1-value"]:not(:empty), [data-id="pd-fact-2-value"]:not(:empty), [data-id="pd-fact-3-value"]:not(:empty), [data-id="pd-fact-4-value"]:not(:empty))) { display: none; }

/* 4. A detail with no title is removed entirely, image and body with it */
body.elementor-page-15868 [data-id="pd-detail-1"]:has([data-id="pd-detail-1-title"]:empty),
body.elementor-page-15868 [data-id="pd-detail-2"]:has([data-id="pd-detail-2-title"]:empty),
body.elementor-page-15868 [data-id="pd-detail-3"]:has([data-id="pd-detail-3-title"]:empty),
body.elementor-page-15868 [data-id="pd-detail-4"]:has([data-id="pd-detail-4-title"]:empty) { display: none; }

/* 5. No quote, no testimonial section */
body.elementor-page-15868 [data-id="pd-testimonial"]:has([data-id="pd-test-quote"]:empty) { display: none; }

/* 6. No portrait and no name, the quote runs full width */
body.elementor-page-15868 [data-id="pd-test-attrib"]:not(:has(img[src])):not(:has([data-id="pd-test-name"]:not(:empty))) { display: none; }

/* 7. Collaborators: a row with no name disappears, all eight blank drops the section */
body.elementor-page-15868 [data-id="pd-collab-1"]:has([data-id="pd-collab-1-name"]:empty),
body.elementor-page-15868 [data-id="pd-collab-2"]:has([data-id="pd-collab-2-name"]:empty),
body.elementor-page-15868 [data-id="pd-collab-3"]:has([data-id="pd-collab-3-name"]:empty),
body.elementor-page-15868 [data-id="pd-collab-4"]:has([data-id="pd-collab-4-name"]:empty),
body.elementor-page-15868 [data-id="pd-collab-5"]:has([data-id="pd-collab-5-name"]:empty),
body.elementor-page-15868 [data-id="pd-collab-6"]:has([data-id="pd-collab-6-name"]:empty),
body.elementor-page-15868 [data-id="pd-collab-7"]:has([data-id="pd-collab-7-name"]:empty),
body.elementor-page-15868 [data-id="pd-collab-8"]:has([data-id="pd-collab-8-name"]:empty) { display: none; }

body.elementor-page-15868 [data-id="pd-collab"]:not(:has([data-id="pd-collab-1-name"]:not(:empty), [data-id="pd-collab-2-name"]:not(:empty), [data-id="pd-collab-3-name"]:not(:empty), [data-id="pd-collab-4-name"]:not(:empty), [data-id="pd-collab-5-name"]:not(:empty), [data-id="pd-collab-6-name"]:not(:empty), [data-id="pd-collab-7-name"]:not(:empty), [data-id="pd-collab-8-name"]:not(:empty))) { display: none; }

/* 8. Gallery captions: hover on pointer, tap on touch */
@media (hover: none) {
  body.elementor-page-15868 .elementor-widget-gallery .e-gallery-item:focus-within .elementor-gallery-item__overlay,
  body.elementor-page-15868 .elementor-widget-gallery .e-gallery-item:active .elementor-gallery-item__overlay { opacity: 1; }
}

/* 9. Client logo lockup: no client logo, no separator */
body.elementor-page-15868 [data-id="pd-hero-logos"]:not(:has(img[data-id="pd-hero-client-logo"][src])) [data-id="pd-hero-x"] { display: none; }
/* 10. Hero scrim weight, set per case study on the Hero panel.
      The variable comes from Code Snippet #12. */
body.elementor-page-15868 [data-id="pd-hero-scrim"] { opacity: var(--pd-scrim, 30%); }/* End custom CSS */