.contents {
    padding: 0px;
    display: flex;
    flex-direction: column;
    gap: 0px;
    align-items: flex-start;
    justify-content: flex-start;
    align-self: stretch;
    flex: 1;
    height: 100%;
    position: relative;
    overflow-y: auto;
}

.search_wrap {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 10px;
    padding: 10px 10px 5px 10px;
}

.search_box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 20px;
    border: 1px solid var(--linecolcm, #e7088a);
    padding: 5px 15px;
    height: 35px;
    flex: 1; /* 남는 공간 모두 차지 */
    min-width: 0; /* 줄바꿈 방지 */
}

.search_input {
    height: 25px;
    text-align: left;
    font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
    font-size: var(--cmtxt13-font-size, 13px);
    line-height: var(--cmtxt13-line-height, 20px);
    font-weight: var(--cmtxt13-font-weight, 500);
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    border: none;
    outline: none;
    background-color: transparent;
}
.search_input::placeholder {
    color: var(--txtcolg, #999);
}

.search_wrap .btn_search {
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    outline: none;
    background-color: transparent;
    width: 25px;
    height: 25px;
}

.search_wrap .btn_search i {
    color: #e7088a;
    text-align: center;
    font-size: 15px;
    line-height: 25px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.search_wrap .btn_filter {
    border-radius: 6px;
    border: 1px solid var(--linecolcm, #e7088a);
    padding: 6px 10px;
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0; /* 줄어들지 않게 */
}

.search_wrap .btn_filter .txt {
    color: var(--colcm, #e7088a);
    text-align: left;
    font-family: var(--cmtxt13b-font-family, "Pretendard-Bold", sans-serif);
    font-size: var(--cmtxt13b-font-size, 13px);
    line-height: var(--cmtxt13b-line-height, 18px);
    font-weight: var(--cmtxt13b-font-weight, 700);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.search_wrap .btn_filter i {
    color: #e7088a;
    text-align: left;
    font-size: 13px;
    line-height: 21px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.section_wrap .list_item {
    border-style: solid;
    border-color: var(--linecolg, #eaeaea);
    border-width: 0px 0px 1px 0px;
    padding: 15px 0px 15px 0px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-start;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.section_wrap .list_item:last-of-type {
    border-bottom: none;
    padding-bottom: 0px;
}

    .campaign_popup .list_item {
        border-style: solid;
        border-color: var(--linecolg, #eaeaea);
        border-width: 0px 0px 1px 0px;
        padding: 10px 10px 10px 10px;
        display: flex;
        flex-direction: row;
        gap: 10px;
        align-items: flex-start;
        justify-content: flex-start;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
    }

    .list_item a {
        display: flex;
        width: 100%;
        height: 100%;
        text-decoration: none;
        color: inherit;
    }

    .list_item .item_img {
        width: 90px;
        height: 90px;
        margin-right: 10px;
        border-radius: 3px;
        position: relative;
        background: #dddddd;
    }

    .list_item .item_img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .list_item .item_info {
        display: flex;
        flex-direction: column;
        gap: 5px;
        align-items: flex-start;
        justify-content: center;
        align-self: stretch;
        flex: 1;
        position: relative;
        overflow: hidden;
    }

    .list_item .item_info .info_top {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 5px;
        width: 100%;
    }

    .list_item .item_info .info_top .info_filter {
        display: flex;
        flex-direction: column;
        gap: 5px;
        flex: 1;
        min-width: 0;
        max-width: calc(100% - 60px);
        width: 100%;
    }

    .list_item .item_info .info_top .info_filter .filter_list {
        display: flex;
        flex-direction: row;
        gap: 5px;
        align-items: flex-start;
        justify-content: flex-start;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
    }

    .list_item .item_info .info_top .info_filter .filter_list .filter_item {
        background: var(--bgcolg, #f4f4f4);
        border-radius: 3px;
        padding: 2px 5px 2px 5px;
        display: flex;
        flex-direction: row;
        gap: 5px;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        position: relative;
        color: var(--colgrayyg, #999999);
        text-align: left;
        font-family: "Pretendard-Regular", sans-serif;
        font-size: 11px;
        line-height: 15px;
        font-weight: 400;
    }

    .list_item .item_info .info_top .info_filter .filter_list .filter_point {
        padding: 2px 5px 2px 5px;
        display: flex;
        flex-direction: row;
        gap: 5px;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        position: relative;
        color: #222222;
        text-align: center;
        font-family: var(--cmtxt11-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt11-font-size, 11px);
        line-height: var(--cmtxt11-line-height, 15px);
        font-weight: var(--cmtxt11-font-weight, 500);
    }

    .list_item .item_info .info_top .info_filter .filter_list .filter_point.none {
        display: none;
    }

    .list_item .item_info .info_top .info_filter .info_tit {
        color: var(--colblack, #222222);
        text-align: left;
        font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt13-font-size, 13px);
        line-height: var(--cmtxt13-line-height, 18px);
        font-weight: var(--cmtxt13-font-weight, 500);
        position: relative;
        align-self: stretch;
        display: block;
        width: 100%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .list_item .item_info .info_top .info_link {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 5px;
        padding: 5px 0px;
        border-radius: 4px;
        background-color: #f8f8f8;
        font-size: 12px;
        color: #666;
        width: 50px;
        height: 40px;
        border: 1px solid #eaeaea;
        box-sizing: border-box;
    }

    .list_item .item_info .info_top .info_link.none {
        display: none;
    }

    .list_item .item_info .info_top .info_link .txt {
        text-align: center;
        font-family: var(--cmtxt11-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt11-font-size, 11px);
        line-height: var(--cmtxt11-line-height, 15px);
        font-weight: var(--cmtxt11-font-weight, 500);
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .list_item .item_info .info_top .info_link i {
        text-align: center;
        font-size: 9px;
        line-height: 15px;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .list_item .item_info .info_offer {
        color: var(--colcm, #c84b7c);
        text-align: left;
        font-family: "Pretendard-Regular", sans-serif;
        font-size: 15px;
        line-height: 20px;
        font-weight: 400;
        position: relative;
        align-self: stretch;
        display: block;
        width: 100%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .list_item .item_info .info_date {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
    }

    .list_item .item_info .info_date .date_offer {
        display: flex;
        flex-direction: row;
        gap: 3px;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        position: relative;
    }

    .list_item .item_info .info_date .date_offer .tit {
        color: var(--colgrayyg, #999999);
        text-align: left;
        font-family: var(--cmtxt11-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt11-font-size, 11px);
        line-height: var(--cmtxt11-line-height, 15px);
        font-weight: var(--cmtxt11-font-weight, 500);
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
    }

    .list_item .item_info .info_date .date_offer .txt {
        color: var(--colgraybg, #555555);
        text-align: left;
        font-family: var(--cmtxt11-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt11-font-size, 11px);
        line-height: var(--cmtxt11-line-height, 15px);
        font-weight: var(--cmtxt11-font-weight, 500);
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
    }

    .list_item .item_info .info_date .date_offer strong.color_main {
        color: #f27cc3;
    }

    .list_item .item_info .info_date .date_offer:first-child::after {
        content: "";
        background: #d9d9d9;
        flex-shrink: 0;
        width: 1px;
        height: 10px;
        position: relative;
        margin-left: 3px;
    }

    .list_item .item_info .info_date .date_item {
        display: flex;
        flex-direction: row;
        gap: 5px;
        align-items: center;
        justify-content: flex-start;
        flex-shrink: 0;
        position: relative;
    }

    .list_item .item_info .info_date .date_applied .date_offer:first-child::after {
        display: none;
    }

    /* 필터 오버레이 */
    .filter_overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 99;
        display: none;
    }

    .filter_overlay.active {
        display: block;
    }

    /* 메뉴 오버레이와 동일한 스타일 */
    .menu_overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 99;
        display: none;
    }

    .menu_overlay.active {
        display: block;
    }

    /* 스크롤 방지 유틸리티 클래스 */
    .no-scroll {
        overflow: hidden !important;
        position: fixed;
        width: 100%;
        height: 100%;
    }

    .filter_wrap {
        background: #ffffff;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        align-self: stretch;
        flex-shrink: 0;
        position: fixed;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        width: 100%;
        height: 100%;
        z-index: 100;
        transition: top 0.3s ease-in-out;
    }

    .filter_wrap.active {
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
    }

    .filter_wrap .filter_contents {
        padding: 20px 15px 20px 15px;
        display: flex;
        flex-direction: column;
        gap: 25px;
        align-items: flex-start;
        justify-content: flex-start;
        align-self: stretch;
        flex: 1;
        position: relative;
        overflow-y: auto;
        margin-bottom: 70px;
    }

    .filter_wrap .filter_contents .filter_box {
        display: flex;
        flex-direction: column;
        gap: 20px;
        align-items: flex-start;
        justify-content: flex-start;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
        width: 100%;
    }

    .filter_wrap .filter_contents .filter_box .box_wrap {
        display: flex;
        flex-direction: column;
        gap: 10px;
        align-items: flex-start;
        justify-content: flex-start;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
    }

    /* 세부 지역 목록 기본적으로 숨김 */
    .filter_wrap .filter_contents .filter_box .box_wrap.area {
        border-style: solid;
        border-color: var(--colgrayyg, #999999);
        border-width: 1px 0px 0px 0px;
        padding: 20px 0px 0px 0px;
        display: none;
    }

    /* 활성화된 세부 지역 목록 표시 */
    .filter_wrap .filter_contents .filter_box .box_wrap.area.active {
        display: flex;
    }

    .filter_wrap .filter_contents .filter_box .filter_tit {
        color: var(--colblack, #222222);
        text-align: left;
        font-family: var(--cmtxt15b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtxt15b-font-size, 15px);
        line-height: var(--cmtxt15b-line-height, 20px);
        font-weight: var(--cmtxt15b-font-weight, 700);
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 5px;
    }

    .filter_wrap .filter_contents .filter_box .filter_tit .txt {
        color: var(--colgrayyg, #999999);
        text-align: left;
        font-family: var(--cmtxt11-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt11-font-size, 11px);
        line-height: var(--cmtxt11-line-height, 15px);
        font-weight: var(--cmtxt11-font-weight, 500);
    }

    .filter_wrap .filter_contents .filter_box .filter_list {
        display: flex;
        flex-direction: row;
        gap: 5px;
        row-gap: 10px;
        align-items: center;
        justify-content: flex-start;
        flex-wrap: wrap;
        align-content: center;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_item {
        background: #ffffff;
        border-radius: 3px;
        border-style: solid;
        border-color: #ddd;
        border-width: 1px;
        padding: 5px 0px 5px 0px;
        display: flex;
        flex-direction: row;
        gap: 0px;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: calc(20% - 5px);
        position: relative;
        box-sizing: border-box;
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_item .txt {
        color: var(--colgrayyg, #999999);
        text-align: center;
        font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt13-font-size, 13px);
        line-height: var(--cmtxt13-line-height, 20px);
        font-weight: var(--cmtxt13-font-weight, 500);
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        letter-spacing: -0.1em;
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_item.on {
        border-color: var(--linecolcm, #e7088a);
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_item.on .txt {
        color: var(--colcm, #e7088a);
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_detail {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
        width: 100%;
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_detail .filter_input {
        background: var(--colfff, #ffffff);
        border-radius: 3px;
        border-style: solid;
        border-color: #ddd;
        border-width: 1px;
        padding: 5px 0px 5px 0px;
        display: flex;
        flex-direction: row;
        gap: 0px;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 20%;
        position: relative;
        font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt13-font-size, 13px);
        line-height: var(--cmtxt13-line-height, 20px);
        font-weight: var(--cmtxt13-font-weight, 500);
        text-align: center;
        color: var(--colblack, #222222);
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_detail .filter_input::placeholder {
        color: #ddd;
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_detail .txt_box {
        border-radius: 3px;
        padding: 0px 25px 0px 25px;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex: 1;
        position: relative;
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_detail .txt_box .mark {
        color: var(--colblack, #222222);
        text-align: center;
        font-family: var(--cmtit18b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtit18b-font-size, 18px);
        line-height: var(--cmtit18b-line-height, 25px);
        font-weight: var(--cmtit18b-font-weight, 700);
        position: relative;
        width: 30px;
        height: 30px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .filter_wrap .filter_contents .filter_box .filter_list .filter_detail .txt_box .txt {
        color: var(--colblack, #222222);
        text-align: center;
        font-family: var(--cmtxt13b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtxt13b-font-size, 13px);
        line-height: var(--cmtxt13b-line-height, 18px);
        font-weight: var(--cmtxt13b-font-weight, 700);
        position: relative;
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
    }


    .filter_wrap .filter_footer {
        background: #ffffff;
        padding: 15px 10px 15px 10px;
        display: flex;
        flex-direction: row;
        gap: 10px;
        align-items: flex-start;
        justify-content: center;
        align-self: stretch;
        flex-shrink: 0;
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        box-shadow: 0px -3px 10px 0px rgba(0, 0, 0, 0.05);
        z-index: 10;
    }

    .filter_wrap .filter_footer .btn_reset {
        background: var(--colfff, #ffffff);
        border-radius: 6px;
        border-style: solid;
        border-color: var(--linecolg, #eaeaea);
        border-width: 1px;
        padding: 9px 15px 9px 15px;
        display: flex;
        flex-direction: row;
        gap: 5px;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 35%;
        position: relative;
        color: var(--colblack, #222222);
        text-align: left;
        font-family: var(--cmtxt15-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt15-font-size, 15px);
        line-height: var(--cmtxt15-line-height, 20px);
        font-weight: var(--cmtxt15-font-weight, 500);
    }

    .filter_wrap .filter_footer .btn_reset i {
        color: var(--colblack, #222222);
        text-align: left;
        font-size: 13px;
        line-height: 20px;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
    }

    .filter_wrap .filter_footer .btn_apply {
        background: var(--colcm, #e7088a);
        border-radius: 6px;
        padding: 10px 15px 10px 15px;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        flex: 1;
        position: relative;
        color: var(--colfff, #ffffff);
        text-align: center;
        font-family: var(--cmtxt15b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtxt15b-font-size, 15px);
        line-height: var(--cmtxt15b-line-height, 20px);
        font-weight: var(--cmtxt15b-font-weight, 700);
    }

    /* info_link가 없을 때 info_filter의 최대 너비 조정 */
    .list_item .item_info .info_top .info_link.none ~ .info_filter,
    .list_item .item_info .info_top:not(:has(.info_link:not(.none))) .info_filter {
        max-width: 100%;
    }

    @media (max-width: 768px) {
        .list_item .item_info .info_top .info_filter .info_tit {
            font-size: 14px;
        }
    }

    /* 검색 결과 화면 */
    .search_result {
        background: #ffffff;
        padding: 20px 10px;
        display: flex;
        flex-direction: column;
        gap: 20px;
        align-items: center;
        justify-content: flex-start;
        position: relative;
        width: 100%;
    }

    .search_result .search_result_txt {
        color: var(--colblack, #222222);
        text-align: center;
        position: relative;
        align-self: stretch;
        display: flex;
        align-items: center;
        justify-content: center; 
        gap: 5px;
        font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt13-font-size, 13px);
        line-height: var(--cmtxt13-line-height, 20px);
        font-weight: var(--cmtxt13-font-weight, 500);
    }

    .search_result .search_result_txt b {
        font-family: var(--cmtxt15b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtxt15b-font-size, 15px);
        line-height: var(--cmtxt15b-line-height, 20px);
        font-weight: var(--cmtxt15b-font-weight, 700);
    }


    .search_result .search_result_box {
        background: var(--bgcolg, #f4f4f4);
        border-radius: 10px;
        border-style: solid;
        border-color: var(--linecolg, #eaeaea);
        border-width: 1px;
        padding: 15px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        align-items: center;
        justify-content: center;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
    }

    .search_result .search_result_box .result_txt_tit {
        color: var(--colcm, #e7088a);
        text-align: left;
        font-family: var(--cmtit18b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtit18b-font-size, 18px);
        line-height: var(--cmtit18b-line-height, 25px);
        font-weight: var(--cmtit18b-font-weight, 700);
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
    }

    .search_result .search_result_box .result_txt_cont {
        text-align: center;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        color: var(--colgraybg, #555555);
        font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt13-font-size, 13px);
        line-height: var(--cmtxt13-line-height, 20px);
        font-weight: var(--cmtxt13-font-weight, 500);
    }

    .search_result .search_result_box .result_txt_cont strong {
        display: inline-block;
        font-family: var(--cmtxt13b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtxt13b-font-size, 13px);
        line-height: var(--cmtxt13b-line-height, 18px);
        font-weight: var(--cmtxt13b-font-weight, 700);
    }   

    .search_result .search_result_box .result_txt_cont strong b {
        color: var(--colblack, #222222);
        font-family: var(--cmtxt15b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtxt15b-font-size, 15px);
        line-height: var(--cmtxt15b-line-height, 20px);
        font-weight: var(--cmtxt15b-font-weight, 700);
    }

    .search_result .search_result_box .result_txt_txt {
        color: var(--colgrayyg, #999999);
        text-align: left;
        font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt13-font-size, 13px);
        line-height: var(--cmtxt13-line-height, 20px);
        font-weight: var(--cmtxt13-font-weight, 500);
        text-decoration: underline;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
    }


.notice_wrap {
    width: 100%;
    padding: 5px 10px;
}

.notice_wrap div {
    background: linear-gradient(135deg, #ffe4ec, #fff0f5);
    border-radius: 10px;
    border: 1px solid #f5c6d6;
    width: 100%;
    padding: 10px 10px;
    color: #333;
    font-size: 15px;
    line-height: 1.6;
    text-align: center;
    position: relative;
}

    .notice_wrap strong {
	    color: #e7088a;
    }

    .notice_wrap i {
	    font-size: 13px;
	    color: #777;
	    display: block;
	    margin-top: 4px;
    }

    .notice_wrap button {
	    margin-top: 10px;
	    padding: 6px 12px;
	    background: white; /* 흰색 배경 */
	    border: 2px solid #e7088a; /* 테두리 강조 */
	    border-radius: 5px;
	    color: #e7088a; /* 텍스트 색상 */
	    font-weight: bold;
	    font-size: 14px;
	    cursor: pointer;
	    box-shadow: none;
	    transition: all 0.2s;
    }

    .info_wrap {
        background: #ffffff;
        padding: 3px 10px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        align-items: center;
        justify-content: flex-start;
        position: relative;
        width: 100%;
    }

    .info_wrap ul {
        background: var(--bgcolg, #f4f4f4);
        border-radius: 10px;
        border-style: solid;
        border-color: var(--linecolg, #eaeaea);
        border-width: 1px;
        padding: 10px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        align-items: center;
        justify-content: center;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
    }

    .info_wrap li {
        text-align: center;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        color: var(--colgraybg, #555555);
        font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
        font-size: var(--cmtxt13-font-size, 13px);
        line-height: var(--cmtxt13-line-height, 18px);
        font-weight: var(--cmtxt13-font-weight, 500);
    }

    .info_wrap li.tit {
        color: var(--colcm, #e7088a);
        text-align: left;
        font-family: var(--cmtit18b-font-family, "Pretendard-Bold", sans-serif);
        font-size: 25px;
        line-height: 30px;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
    }

    .info_wrap li.tit2 {
        font-family: var(--cmtxt13b-font-family, "Pretendard-Bold", sans-serif);
        font-size: var(--cmtxt15b-font-size, 15px);
        line-height: var(--cmtxt15b-line-height, 20px);
        font-weight: var(--cmtxt15b-font-weight, 700);
        white-space: nowrap;
        flex-direction: row;
    }

    .info_wrap li.summary {
        font-family: var(--cmtxt13b-font-family, "Pretendard-Bold", sans-serif);
        font-size: 15px;
        line-height: 15px;
        white-space: nowrap;
        flex-direction: row;
    }


    .info_wrap li b {
        display: inline;
        color: #e7088a;
        padding-left: 4px;
        padding-right: 4px;
    }

    .info_wrap li strong {
        display: inline;
        color: #e7088a;
        font-weight: bold;
        padding-left: 4px;
        padding-right: 4px;
    }

    .info_wrap li .txt {
        font-size: 13px;
        color: var(--colgrayyg, #666666);
        justify-content: flex-start;
    }

    .info_wrap li.cont {
        justify-content: center;
        flex-direction: row;
        color: var(--colgraybg, #555555);
    }

    .guide_wrap {
        padding: 10px;
        font-family: 'Pretendard', sans-serif;
        line-height: 1.7;
        color: #333;
    }

    .guide_title {
        font-size: 24px;
        font-weight: bold;
        margin-bottom: 16px;
    }

    .guide_section {
        font-size: 20px;
        font-weight: bold;
        color: #e7088a;
        margin-top: 40px;
    }

    .guide_title_sub {
        font-size: 22px;
        font-weight: bold;
        margin-top: 40px;
    }

    .guide_list {
        margin-left: 20px;
        list-style: disc;
    }

    .guide_text {
        margin-bottom: 15px;
    }

    .guide_img {
        margin: 20px 0;}

        .guide_img img {
            max-width: 100%;
            margin-top: 10px;
            border: 1px solid #ddd;
            border-radius: 6px;
        }

    .guide_steps {
        margin-left: 20px;
        list-style: decimal;
    }

    .guide_notice {
        margin-top: 40px;
        padding: 20px;
        background-color: #f9f9f9;
        border-left: 4px solid #e7088a;
        font-weight: bold;
    }

    .highlight {
        color: #e7088a;
        font-weight: bold;
    }

    .blog-import-container {
        max-width: 768px;
        width: 100%;
        margin: 0 auto;
        padding: 24px 16px;
        font-family: 'Pretendard', sans-serif;
        color: #333;
        box-sizing: border-box;
        background-color: #fff;
    }

    .blog-import-container h2 {
        font-size: 20px;
        font-weight: bold;
        margin-bottom: 20px;
    }

    .blog-import-container label {
        display: block;
        margin-bottom: 8px;
        font-weight: 500;
        font-size: 14px;
    }

    .blog-import-container .btn_row {
        display: flex;
        align-items: center;
        gap: 10px; /* 버튼과 입력창 사이 여백 */
    }

    .blog-import-container .input_text,
    .blog-import-container .input_textarea {
        width: 100%;
        padding: 12px;
        font-size: 14px;
        border: 1px solid #ccc;
        border-radius: 6px;
        box-sizing: border-box;
        background-color: #fff;
    }

    .blog-import-container .input_text {
        flex: 1;
        min-width: 0; /* 모바일에서 줄바꿈 방지 */
    }

    .blog-import-container .input_textarea {
        resize: vertical;
        min-height: 200px;
        margin-top: 10px;
    }

    .blog-import-container .btn {
        padding: 10px 18px;
        font-size: 14px;
        border: none;
        border-radius: 6px;
        cursor: pointer;
        transition: background 0.2s;
        white-space: nowrap;
    }

    .blog-import-container .btn_primary {
        width: 120px; /* 버튼 고정 크기 */
        padding: 10px;
        font-size: 14px;
        white-space: nowrap;
        border: none;
        background-color: #333;
        color: white;
        border-radius: 4px;
        cursor: pointer;
    }

    .blog-import-container .btn_secondary {
        width: 120px;
        background-color: #f1f1f1;
        color: #333;
        border: 1px solid #ccc;
    }

    .char-count {
        font-size: 14px;
        color: #666;
        line-height: 36px;
    }

    .char-count .highlight {
        color: #e7088a;
        font-weight: 500;
    }



.recent_filter_wrap {
    width: 100%;
    padding: 5px 10px 5px 10px;
    background: #fff;
    box-sizing: border-box; /* padding이 width에 포함되도록 */
}

/* 타이틀, 태그, 버튼 한 줄 배치 */
.recent_filter_top {
    display: flex;
    justify-content: space-between; /* 양쪽 끝 정렬 */
    gap: 6px;
    flex-wrap: nowrap;
    min-height: 40px;
    /* overflow: hidden; */ /* flex 컨테이너의 overflow를 제거하여 버튼이 숨겨지는 현상 방지 */
    align-items: flex-start;
    position: relative; /* 자식 요소의 절대 위치 지정을 위해 */
}

.recent_filter_title {
    flex-shrink: 0;
    font-size: 14px;
    font-weight: 500;
    color: #222;
    white-space: nowrap;
    padding-top: 10px;
}

/* 태그 리스트 */
#filterTagList {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 0;
    flex-grow: 1; /* 가용 공간을 최대한 차지 */
    /* overflow: hidden; */ /* ul 자체의 overflow를 제거하여 말줄임과 버튼 가려짐 문제 해결 */
    max-height: 40px; /* 한 줄 높이 고정 (collapsed 상태에서만 유효) */
    align-self: flex-start;
    position: relative; /* 자식 요소의 절대 위치 지정을 위해 */
    min-width: 0; /* flex item 내부에서 내용이 넘칠 때 유용 (flex-shrink: 1 처럼 동작) */
}

    /* 기본: 한 줄 (접힌 상태) */
    #filterTagList.collapsed {
        flex-wrap: nowrap; /* 줄바꿈 방지 */
        max-height: 40px; /* 한 줄 높이 */
        overflow: hidden; /* 넘치는 내용 숨김 (접힌 상태에서는 유지) */
    }

    /* 펼쳐졌을 때 */
    #filterTagList.expanded {
        flex-wrap: wrap; /* 줄바꿈 허용 */
        max-height: none; /* 높이 제한 없애기 */
        overflow: visible; /* 넘치는 내용 보이게 (말줄임을 위해 중요) */
    }

    #filterTagList li {
        cursor: pointer;
        background: #fff;
        border: 1px solid #ccc;
        padding: 5px 10px;
        border-radius: 20px;
        font-size: 13px;
        font-weight: 400;
        color: #444;
        white-space: nowrap; /* 태그 내부 텍스트 줄바꿈 방지 */
        text-overflow: ellipsis; /* 말줄임표 */
        overflow: hidden; /* 넘치는 텍스트 숨김 */
        max-width: none; /* 기본적으로 max-width 제한 없음 */
        flex-shrink: 0; /* 태그가 줄어들지 않게 */
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
        /* 모바일 환경에서 태그가 꽉 차서 말줄임 되도록 추가 */
        box-sizing: border-box; /* padding이 max-width에 포함되도록 */
    }

    /* 펼친 상태에서 태그 하나가 가용영역을 넘어갈 때 말줄임 적용 (JS로 max-width 제어) */
    /* 이 클래스는 JS에서 동적으로 부여될 것 */
    #filterTagList.expanded li.truncated {
        /* JS에서 계산된 max-width가 적용될 것 */
    }


    #filterTagList li .sort {
        color: #999;
    }

    #filterTagList li .keyword {
        color: #4A6A8A;
        background: #EDF3F8;
        border-color: #C9D8E6;
    }


.toggle_more_btn {
    flex-shrink: 0;
    font-size: 18px;
    background: none;
    border: none;
    color: #666;
    cursor: pointer;
    padding: 8px 4px;
    align-self: flex-start;
    padding-top: 5px;
}

.empty_filter_text {
    font-size: 13px;
    color: #aaa;
    white-space: nowrap;
    flex-grow: 1;
    text-align: center; /* 가운데 정렬 */
    padding-top: 9px;
    line-height: 1.4;
    flex-shrink: 0;
}

.marker_label {
    background: #2db400;
    color: white;
    padding: 2px 6px;
    border-radius: 12px;
    font-size: 12px;
    white-space: nowrap;
}

.campaign_popup {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    width: 98%;
    max-width: 480px;
    background: white;
    border-radius: 10px;
    padding: 0px 0px 10px 0px;
    z-index: 9999;
}

.popup_close_wrap {
    text-align: center;
    margin-top: 8px;
}

.popup_close {
    background: #333;
    color: #fff;
    border: none;
    padding: 5px 16px;
    border-radius: 4px;
    cursor: pointer;
}

#map {
    width: 100%;
    height: calc(100vh - 215px);
    position: relative;
}

.campaign_marker_loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.85);
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Pretendard', sans-serif;
}

    .campaign_marker_loading .loading_inner {
        text-align: center;
    }

    .campaign_marker_loading .spinner {
        margin: 0 auto 20px;
        width: 40px;
        height: 40px;
        border: 4px solid #ccc;
        border-top: 4px solid #00c73c;
        border-radius: 50%;
        animation: spin 1s linear infinite;
    }

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.campaign_marker_loading .loading_text {
    font-size: 16px;
    color: #333;
    line-height: 1.6;
}

    .campaign_marker_loading .loading_text .sub {
        font-size: 15px;
        color: #777;
        display: block;
        margin-top: 6px;
    }

.banner_wrap {
    width: 100%;
    padding-bottom: 10px;
    text-align: center;
    margin-top: 5px;
}

.banner_wrap ins {
  display: block !important;
  margin: 0 auto !important;
  width: 400px !important; /* 쿠팡 배너 width */
}

    .banner_wrap .txt {
        font-size: 7pt;
        color: #aaa;
    }


.tip_wrap {
    background: #ffffff;
    padding: 5px 10px;
    flex-direction: column;
    width: 100%;
    position: relative;
}

    .tip_wrap .tip_close {
        position: absolute;
        top: 10px;
        right: 16px;
        width: 28px;
        height: 28px;
        border: 0;
        background: transparent;
        color: #666;
        font-size: 26px;
        line-height: 28px;
        cursor: pointer;
        z-index: 2;
    }

    .tip_wrap ul {
        background: #ffffff;
        border-radius: 10px;
        border-style: solid;
        border-color: #eaeaea;
        border-width: 1px;
        padding: 10px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        align-items: center;
        justify-content: center;
        align-self: stretch;
        flex-shrink: 0;
        position: relative;
        z-index: 1;
    }

    .tip_wrap li {
        text-align: center;
        position: relative;
        display: flex;
        color: #555555;
        font-family: var(--cmtxt13-font-family, "Pretendard-Medium", sans-serif);
        font-size: 13px;
        line-height: 18px;
        flex-direction: row;
    }

    .tip_wrap li.tit {
        font-size: 20px;
        line-height: 25px;
        font-weight: 500;
        color: #333333;
        text-align: center;
        letter-spacing: 0.5px;
        position: relative;
        padding-bottom: 5px;
    }

    .tip_wrap li b {
        display: inline-block;
        font-weight: 600;
        color: #555;
        background-color: #fde7f1; /* 연한 핑크 배경 */
        padding: 0px 2px;
    }

    .tip_wrap .txt {
        color: #999999;
    }

.campaign_popup_wrap {
    position: absolute;
    left: 0;
    right: 0;
    z-index: 9999;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.campaign_popup {
    width: 95%;
    background: white;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.25);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    pointer-events: auto;
}

.popup_header {
    padding: 13px 15px;
    background: #f7f7f7;
    border-bottom: 1px solid #eee;
    position: relative;
    display: flex;
    align-items: center;
}

.popup_body {
    overflow-y: auto;
    flex: 1;
    padding: 6px 0;
}

.popup_close_btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 20px;
    /* 클릭 영역 넓게 */
    width: 40px;
    height: 40px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute; /* 헤더 레이아웃을 망가뜨리지 않음 */
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 6px;
}


/* 공통 섹션 래퍼 */
.section_wrap {
    width: 100%;
    padding: 14px 12px;
    background: #fff;
    box-sizing: border-box;
    /* 섹션 구분 */
    border-bottom: 7px solid #f5f5f5;
}

.section_wrap.is-collapsed .section_body {
    display: none;
}

.section_wrap:not(.is-collapsed) .section_fold {
    transform: translateY(-50%) rotate(180deg);
}

.section_head {
    position: relative;
    display: flex;
    align-items: center;
}

.section_fold {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(0deg);
    background: transparent;
    border: 0;
    padding: 8px 10px;
    font-size: 18px;
    line-height: 1;
    color: #555;
    cursor: pointer;
}

.section_tit {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 18px;
    font-weight: 700;
    color: #222;
    line-height: 24px;    
}

    .section_tit .section_text {
        white-space: nowrap;
    }

    .section_tit .section_sub {
        display: inline-flex; /* inline-block → inline-flex */
        align-items: center;
        font-size: 13px;
        font-weight: 400;
        color: #5f6f82;
        background-color: #EDF3F8; /* background → background-color */
        border-radius: 4px;
        line-height: 1.4;
        white-space: nowrap;
        margin-left: 5px
    }

    .section_tit .section_icon {
        font-size: 18px;
        line-height: 1;
    }



.quick_filter_scroll {
    margin-top: 12px;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    padding-bottom: 2px;
    scrollbar-width: none;
}

.quick_filter_scroll::-webkit-scrollbar {
    display: none;
}

.quick_filter_scroll .qf_card {
    flex: 0 0 auto !important; /* 핵심: 크기 고정하지 않음 */
    width: max-content; /* 텍스트 길이만큼 카드 확장 */
    max-width: none !important;
    min-width: 0 !important;
    display: flex;
    flex-direction: column;
}

.quick_filter_scroll .qf_name,
.quick_filter_scroll .qf_desc {
    white-space: nowrap !important; /* 줄바꿈 금지 */
    overflow: visible !important; /* 숨김 금지 */
    text-overflow: clip !important; /* … 금지 */
}

.qf_card {
    border: 1px solid #eaeaea;
    background: #fff;
    border-radius: 12px;
    padding: 10px;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 6px;
    cursor: pointer;
}

.qf_name {
    font-size: 15px;
    font-weight: 00;
    color: #222;
    line-height: 20px;
}

.qf_desc {
    font-size: 12px;
    color: #777;
    line-height: 16px;
}


/* 터치 피드백 */
.qf_card:active {
    border-color: #e7088a;
}

.qf_card:active .qf_name,
.qf_card:active .qf_desc {
    color: #e7088a;
}
