/* Konten langsung tampil: efek masuk statis (animate.css / WOW tanpa inisialisasi) membuat
   area terlihat kosong sebelum bergeser masuk. Slider/owl memakai kelas sendiri, tidak terkena. */
.animate__animated,
.wow,
.slide-in-left, .slide-in-right, .slide-top-left, .slide-top-right, .slide-bottom-up {
  animation: none !important;
  transition: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* A stable first slide is available even before the slider library starts. */
#bannerSlider:not(.slick-initialized) > .banner-slide-item:not(:first-child) { display: none; }
#bannerSwiper:not(.swiper-initialized) .swiper-slide:not(:first-child) { display: none; }

.cms-listing-loading[hidden], .cms-listing-error[hidden] { display: none !important; }
.cms-listing-loading { width: 100%; padding: 16px 0; color: #56645b; scroll-margin-top: 120px; }
.cms-listing-loading__label { margin: 0 0 12px; font: 500 14px/1.5 system-ui, sans-serif; }
.cms-skeleton-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
@keyframes cmsSkeletonPulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
.cms-skeleton-card { padding: 16px; border: 1px solid #e2e8e5; border-radius: 14px; background: #fff; animation: cmsSkeletonPulse 1.4s ease-in-out infinite; }
.cms-skeleton-block { display: block; height: 12px; margin: 12px 0 0; border-radius: 6px; background: #e8eeeb; }
.cms-skeleton-block--image { height: 130px; margin: 0 0 18px; }
.cms-skeleton-block--title { width: 85%; height: 18px; }
.cms-skeleton-block--short { width: 60%; }
.cms-listing-error { padding: 16px; margin: 12px 0; border: 1px solid #e0b8a4; border-radius: 12px; background: #fff8f3; color: #71371c; }
.cms-listing-error p { margin: 0 0 10px; }
.cms-listing-error button { padding: 8px 16px; border-radius: 8px; border: 1px solid currentColor; background: #fff; color: inherit; cursor: pointer; }
@media (max-width: 575.98px) { .cms-skeleton-grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) {
  .cms-skeleton-card { animation: none; }
}
