/* Category Display Pro – public styles (v1.1.0) */
.cdp-wrap { width: 100%; font-family: var(--cdp-font-family, inherit); position: relative; }
.cdp-grid {
  display: grid;
  grid-template-columns: repeat(var(--cdp-cols-desktop, 4), 1fr);
  gap: var(--cdp-gap, 16px);
}
@media (max-width: 768px) {
  .cdp-grid { grid-template-columns: repeat(var(--cdp-cols-mobile, 2), 1fr); }
}
.cdp-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-decoration: none;
  background: var(--cdp-bg, #fff);
  border: var(--cdp-border, 1px solid #eee);
  border-radius: var(--cdp-radius, 16px);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}
.cdp-layout-card .cdp-item { box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.cdp-layout-circle .cdp-media img,
.cdp-layout-circle .cdp-img-ratio { border-radius: 50%; }
.cdp-media { position: relative; }
.cdp-img-ratio { display:block; width:100%; padding-top: var(--cdp-ratio-padding, 100%); position:relative; overflow:hidden; }
.cdp-img-ratio img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit: cover; }
.cdp-media > img { width: 100%; height: auto; display:block; }
/* Shapes */
.cdp-shape-square .cdp-img-ratio { padding-top: 100%; }
.cdp-shape-circle .cdp-img-ratio, .cdp-shape-circle .cdp-media img { border-radius: 50%; }
.cdp-shape-rounded .cdp-media img, .cdp-shape-rounded .cdp-img-ratio { border-radius: 16px; overflow:hidden; }
.cdp-shape-rectangle .cdp-img-ratio { padding-top: 56.25%; }
.cdp-title {
  text-align: var(--cdp-title-align, center);
  padding: 10px 12px;
  display:flex;
  gap:6px;
  justify-content:center;
  align-items:center;
  color: var(--cdp-title-color, #111);
  font-size: var(--cdp-title-size, 16px);
  line-height: 1.3;
}
.cdp-name { font-weight: 600; }
.cdp-count { opacity:.65; font-size: .9em; }
/* Hover */
.cdp-anim-lift .cdp-item:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.cdp-anim-zoom .cdp-item:hover .cdp-media img { transform: scale(1.06); }
.cdp-anim-zoom .cdp-media img { transition: transform .3s ease; }
.cdp-anim-fade .cdp-item { opacity: .95; }
.cdp-anim-fade .cdp-item:hover { opacity: 1; }
/* On-Scroll */
.cdp-os { opacity: 0; transform: translateY(14px) scale(0.98); }
.cdp-os.cdp-in-view { opacity: 1; transform: none; transition: all .5s ease; }
.cdp-os.cdp-effect-zoom-in.cdp-in-view { transform: scale(1); }
.cdp-os.cdp-effect-slide-up { transform: translateY(16px); }
.cdp-os.cdp-effect-slide-up.cdp-in-view { transform: translateY(0); }
/* Carousel */
.cdp-is-carousel .cdp-grid {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.cdp-is-carousel .cdp-item {
  flex: 0 0 calc(100% / var(--cdp-cols-desktop, 4));
  scroll-snap-align: start;
}
@media (max-width: 768px) {
  .cdp-is-carousel .cdp-item { flex-basis: calc(100% / var(--cdp-cols-mobile, 2)); }
}
.cdp-nav {
  position: absolute; top: 40%; transform: translateY(-50%);
  background: rgba(0,0,0,.5); color:#fff; border:0; width:34px; height:34px; border-radius: 999px;
  display:flex; align-items:center; justify-content:center; cursor:pointer; z-index: 3;
}
.cdp-prev { left: 6px; } .cdp-next { right: 6px; }
