.ct-gallery { position: relative; }
.ct-gallery__main { position: relative; overflow: hidden; background: #fff; max-height: 450px; }
.ct-slide { display: none; }
.ct-slide.is-active { display: block; }
.ct-slide img { display: block; width: 100%; height: 450px; max-height: 450px; object-fit: cover; object-position: center; }
.ct-dots { position: absolute; z-index: 2; left: 0; right: 0; bottom: 5px; display: flex; gap: 4px; justify-content: center; align-items: center; margin-top: 0; pointer-events: none; }
.ct-dot { padding: 6px; border: 0; background: transparent; cursor: pointer; line-height: 0; pointer-events: auto; }
.ct-dot__inner { display: block; width: 10px; height: 10px; border-radius: 999px; background: rgba(255, 255, 255, .65); box-shadow: 0 1px 4px rgba(0, 0, 0, .35); transition: width .35s cubic-bezier(.4, 0, .2, 1), background-color .35s cubic-bezier(.4, 0, .2, 1), transform .35s cubic-bezier(.4, 0, .2, 1); }
.ct-dot:hover .ct-dot__inner { transform: scale(1.25); background: rgba(255, 255, 255, .9); }
.ct-dot.is-active .ct-dot__inner { width: 28px; background-color: #fff; }
.ct-dot:focus-visible { outline: 2px solid #4eac52; outline-offset: 2px; }
.ct-badge { position: absolute; z-index: 2; padding: 8px 22px 8px 16px; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; background-color: #C37155; color: #fff; }
.ct-badge--top-left { top: 0; left: 0; border-radius: 0 0 12px 0; }
.ct-badge--top-right { top: 0; right: 0; border-radius: 0 0 0 12px; padding: 8px 16px 8px 22px; }
.ct-gallery-empty { padding: 24px; border: 1px dashed #ccc; text-align: center; color: #777; }
@media (max-width: 767px) {
    .ct-gallery__main { max-height: 300px; }
    .ct-slide img { height: 300px; max-height: 300px; }
}
