.elementor-15988 .elementor-element.elementor-element-m-case-1-carousel{--e-image-carousel-slides-to-show:1;}.elementor-15988 .elementor-element.elementor-element-m-case-1-carousel .elementor-swiper-button.elementor-swiper-button-prev, .elementor-15988 .elementor-element.elementor-element-m-case-1-carousel .elementor-swiper-button.elementor-swiper-button-next{font-size:28px;color:#FFFFF0;}.elementor-15988 .elementor-element.elementor-element-m-case-1-carousel .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-15988 .elementor-element.elementor-element-m-case-1-carousel .elementor-swiper-button.elementor-swiper-button-next svg{fill:#FFFFF0;}.elementor-15988 .elementor-element.elementor-element-m-case-2-carousel{--e-image-carousel-slides-to-show:1;}.elementor-15988 .elementor-element.elementor-element-m-case-2-carousel .elementor-swiper-button.elementor-swiper-button-prev, .elementor-15988 .elementor-element.elementor-element-m-case-2-carousel .elementor-swiper-button.elementor-swiper-button-next{font-size:28px;color:#01191D;}.elementor-15988 .elementor-element.elementor-element-m-case-2-carousel .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-15988 .elementor-element.elementor-element-m-case-2-carousel .elementor-swiper-button.elementor-swiper-button-next svg{fill:#01191D;}.elementor-15988 .elementor-element.elementor-element-m-case-3-carousel{--e-image-carousel-slides-to-show:1;}.elementor-15988 .elementor-element.elementor-element-m-case-3-carousel .elementor-swiper-button.elementor-swiper-button-prev, .elementor-15988 .elementor-element.elementor-element-m-case-3-carousel .elementor-swiper-button.elementor-swiper-button-next{font-size:28px;color:#FFFFF0;}.elementor-15988 .elementor-element.elementor-element-m-case-3-carousel .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-15988 .elementor-element.elementor-element-m-case-3-carousel .elementor-swiper-button.elementor-swiper-button-next svg{fill:#FFFFF0;}@media(max-width:1024px){.elementor-15988 .elementor-element.elementor-element-m-case-1-carousel{--e-image-carousel-slides-to-show:1;}.elementor-15988 .elementor-element.elementor-element-m-case-2-carousel{--e-image-carousel-slides-to-show:1;}.elementor-15988 .elementor-element.elementor-element-m-case-3-carousel{--e-image-carousel-slides-to-show:1;}}@media(max-width:767px){.elementor-15988 .elementor-element.elementor-element-m-case-1-carousel{--e-image-carousel-slides-to-show:1;}.elementor-15988 .elementor-element.elementor-element-m-case-2-carousel{--e-image-carousel-slides-to-show:1;}.elementor-15988 .elementor-element.elementor-element-m-case-3-carousel{--e-image-carousel-slides-to-show:1;}}/* Start custom CSS *//* Project Dives Multi - 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-15988 [data-id="pd-hero-client"]:empty,
body.elementor-page-15988 [data-id="pd-hero-kicker"]:empty,
body.elementor-page-15988 [data-id="pd-intro-para"]:empty,
body.elementor-page-15988 [data-id="pd-vision-heading"]:empty,
body.elementor-page-15988 [data-id="pd-vision-body"]:empty,
body.elementor-page-15988 [data-id="pd-test-name"]:empty,
body.elementor-page-15988 [data-id="pd-test-role"]:empty,
body.elementor-page-15988 [data-id="pd-test-org"]:empty,
body.elementor-page-15988 [data-id="pd-cta-kicker"]:empty,
body.elementor-page-15988 [data-id="pd-cta-heading"]:empty,
body.elementor-page-15988 [data-id="pd-cta-body"]:empty,
body.elementor-page-15988 [data-id="pd-cta-btn"]:empty,
body.elementor-page-15988 [data-id="pd-cta-btn-b"]:empty,
body.elementor-page-15988 [data-id="pd-collab-heading"]:empty,
body.elementor-page-15988 [data-id^="pd-collab-"][data-id$="-role"]:empty,
body.elementor-page-15988 [data-id^="m-case-"][data-id$="-subbrand"]:empty,
body.elementor-page-15988 [data-id^="m-case-"][data-id$="-proc-kicker"]:empty,
body.elementor-page-15988 [data-id^="m-case-"][data-id$="-proc-heading"]:empty,
body.elementor-page-15988 [data-id^="m-case-"][data-id$="-proc-body"]:empty,
body.elementor-page-15988 [data-id^="m-case-"][data-id$="-detail-title"]:empty,
body.elementor-page-15988 [data-id^="m-case-"][data-id$="-detail-body"]:empty { display: none; }

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

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

body.elementor-page-15988 [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 case band with no title disappears entirely */
body.elementor-page-15988 [data-id="m-case-1"]:has([data-id="m-case-1-title"]:empty),
body.elementor-page-15988 [data-id="m-case-2"]:has([data-id="m-case-2-title"]:empty),
body.elementor-page-15988 [data-id="m-case-3"]:has([data-id="m-case-3-title"]:empty) { display: none; }

/* 5. A case with no detail title drops the whole detail block */
body.elementor-page-15988 [data-id="m-case-1-detail"]:has([data-id="m-case-1-detail-title"]:empty),
body.elementor-page-15988 [data-id="m-case-2-detail"]:has([data-id="m-case-2-detail-title"]:empty),
body.elementor-page-15988 [data-id="m-case-3-detail"]:has([data-id="m-case-3-detail-title"]:empty) { display: none; }

/* 6. No quote, no testimonial section */
body.elementor-page-15988 [data-id="pd-testimonial"]:has([data-id="pd-test-quote"]:empty) { display: none; }
body.elementor-page-15988 [data-id="pd-test-attrib"]:not(:has(img[src])):not(:has([data-id="pd-test-name"]:not(:empty))) { display: none; }

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

body.elementor-page-15988 [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-15988 .elementor-widget-gallery .e-gallery-item:focus-within .elementor-gallery-item__overlay,
  body.elementor-page-15988 .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-15988 [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-15988 [data-id="pd-hero-scrim"] { opacity: var(--pd-scrim, 30%); }

/* 11. Carousel: fixed 3:2 box, images cover it.
      Scoped to the carousel widget only. The column takes its height
      from the slide, so nothing outside the widget is touched.
      This is the one deliberate exception to the no-crop rule. */
body.elementor-page-15988 [data-id$="-carousel"] .swiper-slide { aspect-ratio: 3 / 2; height: auto; }
body.elementor-page-15988 [data-id$="-carousel"] .swiper-slide figure { height: 100%; margin: 0; }
body.elementor-page-15988 [data-id$="-carousel"] .swiper-slide-image { width: 100%; height: 100%; object-fit: cover; display: block; }/* End custom CSS */