/* Cohete CW · Media loading — SD Clinic 1.1.35
 * A quiet, theme-aware skeleton for plugin-owned imagery. Modern browsers can
 * paint it from the first CSS frame; the deferred helper removes it as soon as
 * the image is decoded. No black placeholders, borders, blur filters or CLS.
 */
:root{
  --cw-media-skeleton-base:#f1f5f4;
  --cw-media-skeleton-highlight:rgba(255,255,255,.76);
  --cw-media-skeleton-edge:rgba(37,53,54,.025);
}
html[data-theme="dark"],body[data-theme="dark"]{
  --cw-media-skeleton-base:#222b2a;
  --cw-media-skeleton-highlight:rgba(255,255,255,.055);
  --cw-media-skeleton-edge:rgba(255,255,255,.018);
}
.cw-media-loading{position:relative!important}

/* Modern browsers can paint the skeleton from the first CSS frame, before the
 * deferred helper runs. The JS classes remain the fallback for older engines. */
.cw-service-card:has(.cw-service-media img):not(.cw-media-ready):not(.cw-media-error),
.cw-gallery-item:has(img):not(.cw-media-ready):not(.cw-media-error),
.cw-impact:has(.cw-impact-image):not(.cw-media-ready):not(.cw-media-error),
.cw-video-trigger:has(.cw-video-media img):not(.cw-media-ready):not(.cw-media-error),
.cw-sd-image__media:has(.cw-sd-image__img):not(.cw-media-ready):not(.cw-media-error),
.cw-blog-lead__image:has(img):not(.cw-media-ready):not(.cw-media-error),
.cw-blog-card__image:has(img):not(.cw-media-ready):not(.cw-media-error),
.cw-recent-card__image:has(img):not(.cw-media-ready):not(.cw-media-error),
.cw-single-hero__media:has(img):not(.cw-media-ready):not(.cw-media-error),
.cw-professional-card__media:has(img):not(.cw-media-ready):not(.cw-media-error){position:relative!important}
.cw-service-card:has(.cw-service-media img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-gallery-item:has(img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-impact:has(.cw-impact-image):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-video-trigger:has(.cw-video-media img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-sd-image__media:has(.cw-sd-image__img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-blog-lead__image:has(img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-blog-card__image:has(img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-recent-card__image:has(img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-single-hero__media:has(img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-professional-card__media:has(img):not(.cw-media-ready):not(.cw-media-error)::before,
.cw-media-loading::before{
  content:"";position:absolute;inset:0;z-index:20;pointer-events:none;border-radius:inherit;
  background-color:var(--cw-media-skeleton-base);
  background-image:linear-gradient(100deg,var(--cw-media-skeleton-edge) 18%,var(--cw-media-skeleton-highlight) 42%,var(--cw-media-skeleton-edge) 66%);
  background-size:220% 100%;background-position:120% 0;
  animation:cw-media-skeleton 1.55s ease-in-out infinite;
  opacity:1;transition:opacity .18s ease;
}
.cw-media-ready::before{opacity:0!important;visibility:hidden!important}
@keyframes cw-media-skeleton{0%{background-position:120% 0}100%{background-position:-120% 0}}
@media(prefers-reduced-motion:reduce){
 .cw-service-card::before,.cw-gallery-item::before,.cw-impact::before,.cw-video-trigger::before,.cw-sd-image__media::before,.cw-blog-lead__image::before,.cw-blog-card__image::before,.cw-recent-card__image::before,.cw-single-hero__media::before,.cw-professional-card__media::before,.cw-media-loading::before{animation:none!important;background-image:none!important}
}

/* Failed images stay quiet and legible instead of revealing a dark fallback. */
.cw-gallery-item.cw-media-error,.cw-impact.cw-media-error,.cw-video-trigger.cw-media-error,.cw-sd-image__media.cw-media-error,.cw-blog-lead__image.cw-media-error,.cw-blog-card__image.cw-media-error,.cw-recent-card__image.cw-media-error,.cw-single-hero__media.cw-media-error,.cw-professional-card__media.cw-media-error{background:var(--cw-media-skeleton-base)!important}
.cw-impact.cw-media-error .cw-impact-overlay{display:none!important}
.cw-impact.cw-media-error,.cw-impact.cw-media-error .cw-impact-content,.cw-impact.cw-media-error .cw-impact-title,.cw-impact.cw-media-error .cw-impact-subtitle,.cw-impact.cw-media-error .cw-impact-eyebrow{color:var(--cw-sd-text,#253536)!important}
