@charset "utf-8";


.rb_carousel {
    position: relative;
    height: 100vh;
    max-height: 600px;
    overflow: hidden;
    width: 100vw;
    margin-left: min(0px, calc(50% - 50vw));
    margin-right: min(0px, calc(50% - 50vw));
    left: auto;
    right: auto;
    transform: none;
}
.rb_carousel .rb_carousel_img{position:relative;width:100%;height:100%;overflow:hidden}
.rb_carousel .rb_carousel_img li{display:none;position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden}
.rb_carousel .rb_carousel_img li:first-child{display:block}
.rb_carousel .rb_carousel_img li.on{display:block;}
/* 1. 배경 이미지 서서히 확대되는 줌 효과 제거 */
.rb_carousel .rb_carousel_img li .bg {
    position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    transform: none !important; /* 확대 효과 무력화 */
    transition: none !important; /* 5초 애니메이션 무력화 */
}
.rb_carousel .bg_bl {
    display: none !important; /* 어두운 그라데이션 필터 완벽 제거 */
}carousel .rb_carousel_img li .slogan{position:absolute;left:0;top:50%;transform: translateY(-50%);width:100%;text-align:left; z-index: 97;}
.rb_carousel .rb_carousel_img li .slogan .inner {padding-left: 200px; padding-right: 200px; box-sizing: border-box;}
.rb_carousel .rb_carousel_img li .slogan .text1 {
    display: block; position: relative; font-size: 40px; color: #fff;
    top: 0 !important; 
    opacity: 1 !important; 
    transition: none !important;
}
.rb_carousel .rb_carousel_img li .slogan .text2 {
    display: block; position: relative; font-size: 22px; color: #fff;
    top: 0 !important; 
    opacity: 1 !important; 
    transition: none !important;
}
.rb_carousel .rb_carousel_img li .slogan .text1 span {color:#000;}
.rb_carousel .rb_carousel_img li .slogan .text2 span {color:#000;}
.rb_carousel .rb_carousel_img li .slogan .text2 button span {color:#000}
.rb_carousel .rb_carousel_img li.motion .slogan .text1{top:0px;opacity:1}
.rb_carousel .rb_carousel_img li.motion .slogan .text2{top:0px;opacity:1}
.rb_carousel .rb_carousel_btn {position:absolute;width:100%;bottom:60px;text-align:center;z-index:30}
.rb_carousel .rb_carousel_btn li{display:inline-block;width:10px;height:10px;border:1px solid rgba(255,255,255,0.4);margin:0 4px;cursor:pointer;border-radius:50%;text-indent:-9999px}
.rb_carousel .rb_carousel_btn li.on{background:#fff; border:1px solid #fff;}
.rb_carousel .rb_carousel_btn_prev,
.rb_carousel .rb_carousel_btn_next{position:absolute;top:50%;transform:translateY(-50%);width:100px;height:100px;text-indent:-9999px;opacity:0.5;cursor:pointer; z-index: 98}
.rb_carousel .rb_carousel_btn_prev{left:0;background:url('../img/prev.png') no-repeat center; background-size: 30%;}
.rb_carousel .rb_carousel_btn_next{right:0;background:url('../img/next.png') no-repeat center; background-size: 30%;}
.rb_carousel .rb_carousel_btn_prev:hover,
.rb_carousel .rb_carousel_btn_next:hover{opacity:1}

.rb_carousel .rb_carousel_link {
    display: inline-block;
    padding: 10px 30px;
    background-color: white;
    color: #000000;
    border: none;
    border-radius: 60px;
    font-size: 18px;
    cursor: pointer;
    text-decoration: none;
    width: auto;
    height: auto;
    margin-top: 40px;
}
.rb_carousel .rb_carousel_link span {float: left;}
.rb_carousel .rb_carousel_link i {float: right;margin-top: 1px;}
.rb_carousel_img li .slogan .text2 p {margin-top: 10px; display: block;}
.sub_rb_carousel_b {max-height: 150px;}
.sub_rb_carousel_b .rb_carousel_img li .slogan .text1 {font-size: 26px;}
.sub_rb_carousel_b .rb_carousel_img li .slogan {}

.rb_theme_box { display:flex; gap:20px; align-items:flex-start; }
.rb_theme_img { width:100px; max-width:30vw; border-radius:10px; overflow:hidden; flex:0 0 auto; }
.rb_theme_img img { width:100%; height:auto; display:block; }
.rb_theme_meta { flex:1 1 auto; }
.rb_theme_meta .rb_theme_title { font-size:14px; line-height:1.3; margin:0 0 6px; }
.rb_theme_meta .rb_theme_row { font-size:12px; line-height:1.3; }

.po_rel {position: relative;}

.rb_theme_config_si {}
.rb_theme_config_si .rb_swiper .rb_swiper_paging_btn {right:0px; top:39px;}
.no_flex {display: block !important;}
#rb_cas_1 .rb-swiper-slide img {height:50px; object-fit: cover; border-top-left-radius: 6px; border-top-right-radius: 6px;}
.rb_th_sw_card {padding: 10px 15px; background-color: #f0f5f9; border-bottom-left-radius: 6px; border-bottom-right-radius: 6px;}
.no_ca_data {border:1px dashed #ddd; text-align: center; padding: 20px; text-align: center; border-radius: 10px; margin-top: 10px; color:#999; font-size: 13px;}
.rb_theme_config_si h6 {display: flex; gap:5px; align-items: center;}
.rb_theme_config_si h6 span.ca_cnt {color:#fff; font-size: 10px; padding: 3px 7px; border-radius: 20px; background-color: var(--rb-main-color);}

.rb_btm_skey .no_data {flex:1}
#theme_ca_add_btn {width: 100%;color: #fff;height: 47px;border-radius: 10px;border: 0px;}

@media all and (max-width:1024px) {
.rb_carousel {
        width: calc(100vw - 40px) !important; /* 좌우 20px씩 여백 확보 */
        height: auto !important;
        aspect-ratio: 2 / 1 !important; /* 완벽한 정사각형 비율 강제 */
        max-height: none !important;
        margin: 20px auto !important; /* 화면 중앙 정렬 */
        border-radius: 24px !important; /* 올리브영 스타일의 큰 둥근 모서리 */
    }
    .rb_carousel .rb_carousel_img {
        border-radius: 24px !important; /* 이미지가 테두리 밖으로 튀어나오지 않게 방어 */
    }
    .rb_carousel .rb_carousel_img li .slogan {padding-left: 20px; padding-right: 20px; box-sizing: border-box; text-align: center;}
    .rb_carousel .rb_carousel_img li .slogan .text1 {text-align: center !important; font-size: 24px !important; word-break: keep-all;}
    .rb_carousel .rb_carousel_img li .slogan .text2 {text-align: center !important; font-size: 18px !important; word-break: keep-all;}
    .rb_carousel .rb_carousel_img li .slogan .text2 .text2_sub {word-break: keep-all; text-align: center !important; font-size: 16px !important;}
    .rb_carousel .rb_carousel_img li .slogan .rb_carousel_btn_more {text-align: center !important;}
    .rb_carousel .rb_carousel_img li .slogan .inner {padding-left: 40px; padding-right: 40px;}
    .rb_carousel .rb_carousel_btn_prev, .rb_carousel .rb_carousel_btn_next {width: 60px;}
    .rb_carousel .rb_carousel_btn_prev, .rb_carousel .rb_carousel_btn_next {width: 60px;}

    .sub_rb_carousel_b {max-height: 150px;}
    .sub_rb_carousel_b .rb_carousel_img li .slogan .text1 {font-size: 22px; top:0 !important;}

}
/* ======================================================================
   ★ 올리브영 스타일 페이징 ( 11 | 16 + ) 및 좌우 버튼 리뉴얼
   ====================================================================== */

/* 1. 올리브영 텍스트 페이징 스타일 */
.rb_carousel_custom_paging {
    position: absolute;
    bottom: 25px; /* 하단 여백 */
    left: 50%;
    transform: translateX(-50%);
    color: #ffffff; 
    font-size: 14px;
    font-weight: 400;
    z-index: 100;
    display: flex !important; /* 강제 활성화 */
    align-items: center;
    gap: 8px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.6); 
    background: transparent !important; 
}
.rb_carousel_custom_paging .line {
    opacity: 0.5; 
    margin: 0 2px;
}
.rb_carousel_custom_paging .plus {
    font-size: 16px;
    font-weight: 300;
    cursor: pointer;
}

/* 2. PC용 기본 좌우 버튼 (시인성 강화) */
.rb_carousel .rb_carousel_btn_prev, 
.rb_carousel .rb_carousel_btn_next {
    display: block !important;
    width: 50px !important; 
    height: 50px !important; 
    background-color: rgba(0, 0, 0, 0.6) !important; 
    border-radius: 50% !important; 
    background-size: 40% !important; 
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5) !important; 
}
.rb_carousel .rb_carousel_btn_prev { left: 20px !important; }
.rb_carousel .rb_carousel_btn_next { right: 20px !important; }


/* ======================================================================
   ★ 모바일 (1024px 이하) 전용 제어 구역
   ====================================================================== */
@media (max-width: 1024px) {
    /* 기존 낡은 점(dot) 페이징 숨김 */
    .rb_carousel .rb_carousel_btn { 
        display: none !important; 
    }
    
    /* 모바일용 좌우 버튼 크기 30% 축소 (50px -> 35px) */
    .rb_carousel .rb_carousel_btn_prev, 
    .rb_carousel .rb_carousel_btn_next {
        width: 35px !important; 
        height: 35px !important; 
    }
    
    /* 모바일용 버튼을 가장자리에서 살짝 더 띄웁니다 */
    .rb_carousel .rb_carousel_btn_prev { left: 10px !important; }
    .rb_carousel .rb_carousel_btn_next { right: 10px !important; }
}