@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;}
.rb_carousel .rb_carousel_img li .bg{position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(1.1) rotate(0.02deg);transition:all 5s;}
.rb_carousel .rb_carousel_img li.motion .bg{transform:scale(1)}
.rb_carousel .bg_bl {
    position: absolute;
    top: 0;
    left: 0;
    /* width: 100%; */
    height: 100%;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.5) 0%,
        rgba(0, 0, 0, 0.1) 100%
    );
}
.rb_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;opacity:0;transition:0.5s 0.5s}
.rb_carousel .rb_carousel_img li .slogan .text2{display:block;position:relative;font-size:22px;color:#fff;top:0;opacity:0;transition:0.5s 1s}
.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:20px;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 (min-width: 1025px) {
    .rb_carousel {
        max-height: none; /* 최대 높이 제한을 없애서 100vh가 적용되도록 함 */
    }
}

@media all and (max-width:1024px) {
    .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: 36px !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: 20px !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;}
}
.bodymap_gallery_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* 한 줄에 3개씩 균일하게 배치 */
    gap: 30px;
    /* 아이템 사이의 간격 */
    margin: 40px 0;
    padding: 0;
    list-style: none;
}

.gallery_item a {
    display: block;
    text-decoration: none;
}

/* 썸네일 이미지 박스 설정 */
.gal_img_wrap {
    width: 100%;
    border-radius: 12px;
    /* 첨부하신 이미지처럼 모서리 둥글게 */
    overflow: hidden;
    aspect-ratio: 16 / 10;
    /* 이미지 비율 고정 (다양한 사이즈의 이미지가 올라와도 깔끔하게 맞춤) */
    margin-bottom: 15px;
    /* 이미지와 제목 사이 간격 */
    background-color: #f5f5f5;
}

.gal_img_wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* 이미지가 박스에 꽉 차도록 잘라냄 */
    transition: transform 0.3s ease;
}

/* 마우스 올렸을 때 사진이 살짝 커지는 효과 (선택사항) */
.gallery_item:hover .gal_img_wrap img {
    transform: scale(1.05);
}

/* 텍스트(제목) 설정 */
.gal_txt_wrap .gal_title {
    font-size: 18px;
    color: #333333;
    margin: 0;
    line-height: 1.4;

    /* 제목이 두 줄 이상 길어지면 ... 으로 처리 */
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* 날짜 스타일 (사용 시) */
.gal_txt_wrap .gal_date {
    display: block;
    font-size: 14px;
    color: #999;
    margin-top: 8px;
}

.text1 img,
.text2 img {
    vertical-align: middle !important;
    margin-top: -15px;
    /* 글꼴에 따라 미세하게 안 맞으면 이 수치를 조절하세요 (예: -2px, -8px) */
}

.banner_img_wrap{
    display:none;
}

#blue1 {
    width: 400px;
}

#blue2{
    width: 300px;
}

/* --- 반응형 (화면이 작아질 때) --- */
@media all and (max-width: 1024px) {
    .bodymap_gallery_grid {
        grid-template-columns: repeat(2, 1fr);
        /* 태블릿에서는 한 줄에 2개 */
        gap: 20px;
    }
}

@media all and (max-width: 768px) {
    .bodymap_gallery_grid {
        grid-template-columns: 1fr;
        /* 모바일에서는 한 줄에 1개 */
    }

    .gal_img_wrap {
        aspect-ratio: 16 / 9;
    }
    .text1 img,
    .text2 img {
        vertical-align: middle !important;
        margin-top: -5px;
        width: 300px;
        /* 글꼴에 따라 미세하게 안 맞으면 이 수치를 조절하세요 (예: -2px, -8px) */
    }
    #blue1 {
        width: 250px;
    }
    #blue2 {
        width: 200px;
    }

    .banner_img_wrap {
        display: block;
        text-align: center;
        width: 100%;
    }
    #slide_2_banner{
        width: 280px;
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(50px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}