/* R16.80 — HyperMatrix-style image reveal without changing the site's existing image list/layout. */
/* IMPORTANT: no parent height/aspect-ratio reset, no content-visibility, no blank GIF, no data-src swap. */
.public-body img.et-hm-image{
  display:block;
  max-width:100%;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transition:opacity .34s cubic-bezier(.22,.61,.36,1);
}
.public-body img.et-hm-image.et-img-pending{opacity:0!important}
.public-body img.et-hm-image.et-img-ready{opacity:1!important}

/* These are the site's full-bleed visual cards. Keep the ORIGINAL card geometry and fill it.
   R16.79's height:auto/object-fit:contain overrides caused the empty lower half visible in mobile screenshots. */
.public-body .hero-media>img.et-hm-image,
.public-body .ecommerce-home-visual>img.et-hm-image,
.public-body .about-image-card>img.et-hm-image,
.public-body .image-pos-panel>img.et-hm-image,
.public-body .portfolio-image>img.et-hm-image,
.public-body .showcase-browser-canvas img.et-hm-image{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}

/* Card media keeps the card's own CSS dimensions. Do not force natural height. */
.public-body .service-card img.et-hm-image,
.public-body .public-product-image img.et-hm-image,
.public-body .team-grid article img.et-hm-image{
  object-fit:cover;
  object-position:center;
}

/* While a full-bleed image is loading, keep the exact card size and show a quiet surface instead of scan-line chunks. */
.public-body .hero-media,
.public-body .ecommerce-home-visual,
.public-body .about-image-card,
.public-body .image-pos-panel,
.public-body .portfolio-image,
.public-body .showcase-browser-canvas{
  background-color:rgba(0,110,32,.045);
}

/* Header logo fix from R16.81 only. Keep R16.80 image loading exactly as-is. */
.public-body .site-header .brand.et-brand-instant{
  background:transparent!important;
  opacity:1!important;
  filter:none!important;
  /* Do NOT override the header's centering transform. */
}
.public-body .brand-logo.et-header-logo-inline{
  background:transparent!important;
  opacity:1;
  filter:none!important;
  animation:etHeaderLogoEnter .52s cubic-bezier(.16,1,.3,1) both;
  transform-origin:center center;
}
@keyframes etHeaderLogoEnter{
  from{opacity:0;transform:translate3d(0,7px,0) scale(.965)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1)}
}

@media(max-width:620px){
  .public-body img.et-hm-image{transition-duration:.24s}
  .public-body .brand-logo.et-header-logo-inline{animation-duration:.44s}
}
@media(prefers-reduced-motion:reduce){
  .public-body img.et-hm-image{opacity:1!important;transition:none!important}
  .public-body .brand-logo.et-header-logo-inline{opacity:1!important;transform:none!important;animation:none!important}
}
