.rab-banner{position:relative;margin:20px auto;overflow:hidden;border-radius:12px;line-height:0;max-width:100%}
.rab-banner .rab-slide{display:block;position:relative;text-decoration:none}
.rab-banner .rab-media{width:100%;height:auto;display:block}
.rab-banner .rab-html{line-height:normal;width:100%}
.rab-gated{display:none}
.rab-slider .rab-slide{display:none}
.rab-slider .rab-slide.rab-active{display:block}
/* transition effects */
.rab-fx-fade .rab-slide.rab-active{animation:rabFade .45s ease}
@keyframes rabFade{from{opacity:.3}to{opacity:1}}
.rab-fx-slide .rab-slide.rab-active{animation:rabSlide .5s ease}
@keyframes rabSlide{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
.rab-fx-zoom .rab-slide.rab-active{animation:rabZoom .55s ease}
@keyframes rabZoom{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}
.rab-fx-kenburns .rab-slide.rab-active .rab-media{animation:rabKB var(--rab-int,6s) ease-out both}
@keyframes rabKB{from{transform:scale(1)}to{transform:scale(1.09)}}
/* CTA + overlay */
.rab-cta{position:absolute;bottom:14px;inset-inline-end:14px;background:#dc2626;color:#fff;padding:10px 20px;border-radius:9px;font-size:14px;font-weight:700;line-height:1;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.rab-slide:hover .rab-cta{background:#b91c1c}
.rab-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:6px;padding:22px;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,0) 60%);line-height:1.45;text-align:start}
.rab-align-center{align-items:center;text-align:center}
.rab-align-end{align-items:flex-end;text-align:end}
.rab-title{color:#fff;font-size:clamp(18px,3.2vw,30px);font-weight:800}
.rab-sub{color:rgba(255,255,255,.9);font-size:clamp(13px,1.8vw,17px)}
.rab-overlay .rab-cta{position:static;margin-top:8px;display:inline-block}
/* dots + arrows */
.rab-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:7px;line-height:0}
.rab-dot{width:9px;height:9px;border-radius:50%;border:0;padding:0;cursor:pointer;background:rgba(255,255,255,.55);transition:background .2s,width .2s}
.rab-dot.rab-active{background:#fff;width:22px;border-radius:6px}
.rab-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:2;transition:background .2s}
.rab-arrow:hover{background:rgba(0,0,0,.7)}
.rab-prev{inset-inline-start:10px}
.rab-next{inset-inline-end:10px}
/* close */
.rab-close{position:absolute;top:8px;inset-inline-end:8px;z-index:3;width:28px;height:28px;border:0;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:17px;line-height:1;cursor:pointer}
.rab-close:hover{background:rgba(0,0,0,.8)}
/* sticky */
.rab-sticky{position:fixed;left:0;right:0;bottom:0;z-index:99998}
.rab-sticky .rab-banner{margin:0;border-radius:0}
/* popup */
.rab-popwrap{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.62);padding:20px}
.rab-popwrap.rab-show{display:flex}
.rab-popbox{width:100%;max-width:560px;animation:rabPop .35s ease}
.rab-popbox .rab-banner{margin:0}
@keyframes rabPop{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
/* device visibility */
@media (max-width:767px){.rab-dev-desktop{display:none!important}}
@media (min-width:768px){.rab-dev-mobile{display:none!important}}
