.ccbm { display:block; position:relative; width:100%; max-width:100%; min-width:0; margin:1rem 0; box-sizing:border-box; overflow:hidden; isolation:isolate; }
.ccbm *, .ccbm *::before, .ccbm *::after { box-sizing:border-box; }
.ccbm__viewport { display:block; position:relative; width:100%; height:0; padding-top:var(--ccbm-desktop); overflow:hidden; background:#f5f5f5; }
.ccbm__slide { display:block; position:absolute; inset:0; width:100%; height:100%; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .45s ease, visibility .45s; }
.ccbm__slide.is-active { opacity:1; visibility:visible; pointer-events:auto; z-index:1; }
.ccbm__slide a, .ccbm__preview, .ccbm picture { display:block; width:100%; height:100%; }
.ccbm .ccbm__slide img { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; margin:0; border:0; }
.ccbm__controls { display:block; position:absolute; bottom:4px; left:50%; transform:translateX(-50%); z-index:3; max-width:calc(100% - 104px); padding:0; background:transparent; text-align:center; pointer-events:none; }
.ccbm [hidden] { display:none !important; }
.ccbm button { font:inherit; cursor:pointer; border:0; min-width:44px; min-height:44px; border-radius:4px; line-height:1; }
.ccbm__arrows { display:none; }
.ccbm.is-enhanced .ccbm__arrows { display:block; }
.ccbm__arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:2; background:rgba(0,0,0,.72); color:#fff; font-size:32px !important; }
.ccbm__prev { left:8px; }
.ccbm__next { right:8px; }
.ccbm__dots { display:flex; flex-wrap:nowrap; max-width:100%; overflow-x:auto; scrollbar-width:none; pointer-events:auto; }
.ccbm__dots::-webkit-scrollbar { display:none; }
.ccbm .ccbm__dot { position:relative; flex:0 0 44px; padding:0; background:transparent; }
.ccbm__dot::after { content:""; display:block; width:10px; height:10px; margin:auto; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.8); }
.ccbm__dot.is-active::after { background:#ffd400; }
.ccbm a:focus-visible, .ccbm button:focus-visible { outline:3px solid #ffd400; outline-offset:-4px; }
.ccbm__sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:767px) { .ccbm__viewport { padding-top:var(--ccbm-mobile); } .ccbm__prev { left:2px; } .ccbm__next { right:2px; } }
@media(prefers-reduced-motion:reduce) { .ccbm__slide { transition:none; } }
