/* Codervia Skeleton v3: fully scoped to .cvsk3-*; no changes to theme badges/buttons */
body.cv-theme { --cvsk3-base:#e7eaf0; --cvsk3-glow:#f7f9fc; }
body.cv-theme .cvsk3-active { position:relative; }
body.cv-theme .cvsk3-active > .cvsk3-overlay {
  position:absolute; inset:0; z-index:9; pointer-events:none;
  overflow:hidden; display:block; box-sizing:border-box;
  border-radius:inherit; background:#fff; opacity:1;
  transition:opacity .16s ease-out;
}
body.cv-theme .cvsk3-active > .cvsk3-overlay.cvsk3-leave { opacity:0; }
body.cv-theme .cvsk3-bar {
  display:block; flex:0 0 auto; border-radius:7px;
  background:#e7eaf0;
  background-image:linear-gradient(100deg,var(--cvsk3-base) 15%,var(--cvsk3-glow) 40%,var(--cvsk3-base) 70%);
  background-size:220% 100%; animation:cvsk3-shine 1.45s ease-in-out infinite;
}
@keyframes cvsk3-shine { 0% {background-position:120% 0} 100% {background-position:-120% 0} }
/* Card's image and body skeletons precisely follow the real DOM rectangles. */
body.cv-theme .cvsk3-card-media,
body.cv-theme .cvsk3-card-text { position:absolute; box-sizing:border-box; overflow:hidden; background:#fff; }
body.cv-theme .cvsk3-card-media { display:block; }
body.cv-theme .cvsk3-card-media > .cvsk3-card-image { height:100%; width:100%; border-radius:0; }
body.cv-theme .cvsk3-card-text { display:flex; flex-direction:column; gap:9px; align-items:stretch; }
body.cv-theme .cvsk3-category { height:10px; width:42%; border-radius:30px; }
body.cv-theme .cvsk3-title { height:15px; width:93%; }
body.cv-theme .cvsk3-title2 { height:15px; width:68%; }
body.cv-theme .cvsk3-desc { height:10px; width:96%; }
body.cv-theme .cvsk3-desc2 { height:10px; width:73%; }
body.cv-theme .cvsk3-rating { height:11px; width:35%; }
body.cv-theme .cvsk3-card-foot { margin-top:auto; padding-top:4px; display:flex; flex-direction:column; gap:10px; min-height:0; }
body.cv-theme .cvsk3-price { height:19px; width:54%; }
body.cv-theme .cvsk3-action { height:40px; width:100%; border-radius:10px; }
/* Product gallery, gallery thumbs, carousel banners. */
body.cv-theme .cvsk3-active:not(.cv-card):not(.product-thumb):not(.card) > .cvsk3-overlay {background:var(--cvsk3-base);}
body.cv-theme .cvsk3-photo { height:100%; width:100%; border-radius:inherit; }
@media(max-width:640px) {
  body.cv-theme .cvsk3-category {height:8px;}
  body.cv-theme .cvsk3-title, body.cv-theme .cvsk3-title2 {height:12px;}
  body.cv-theme .cvsk3-desc,body.cv-theme .cvsk3-desc2,body.cv-theme .cvsk3-rating {height:8px;}
  body.cv-theme .cvsk3-price {height:16px;}
  body.cv-theme .cvsk3-action {height:32px;border-radius:8px;}
  body.cv-theme .cvsk3-card-text {gap:7px;}
}
@media(prefers-reduced-motion:reduce){body.cv-theme .cvsk3-bar{animation:none}body.cv-theme .cvsk3-overlay{transition:none!important}}
