header {
    position: fixed;
    display: flex;
    align-items: center;
    height: 90px;
    top: 0;
    left: 0;
    right: 0;
    background-color: #FFF;
    z-index: 10;
    border-top: 4px solid var(--Blue-50, #0B72D3);
    border-bottom: 1px solid var(--gray-10-line, #E3E6E9);
}

.header_area {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #000;
}

.header_logo a {
    display: block;
    width: 270px;
    height: 32px;
    background-image: url('../images/logo/logo.png');
    background-repeat: no-repeat;
    background-size: contain;
    background-position: left;
}

.gnb {
    flex: 1;
}

.gnb > ul {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 50px;
}

.gnb > ul > li {
    position: relative;
}

.gnb > ul > li > a {
    position: relative;
    display: block;
    padding: 30px 0;
}

.gnb > ul > li > a.hover {
    font-weight: 600;
}

.gnb > ul > li > a.hover:after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 50%;
    width: 100%;
    height: 2px;
    background-color: #000;
    transform: translateX(-50%);
}

header.on .gnb > ul > li > a.hover {
    color: #015EEA;
}

header.on .gnb > ul > li > a.hover:after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 50%;
    width: 100%;
    height: 2px;
    background-color: #015EEA;
    transform: translateX(-50%);
}

.header_sub_nav {
    display: none;
    position: absolute;
    top: 80px;
    left: 30%;
    transform: translateX(-30%);
}

.header_sub_nav ul {
    display: flex;
    align-items: center;
}

.header_sub_nav ul li {
    padding: 0 20px;
}

.header_sub_nav ul li a {
    display: block;
    padding: 24px 0 18px;
    white-space: nowrap;
}

.header_sub_nav ul li a:hover {
    font-weight: 600;
}

.header_sub_nav_bg {
    display: none;
    width: 100%;
    top: 90px;
    position: fixed;
    background: #FFF;
    padding: 30px 0;
    z-index: -1;
    box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.12);
}

.sub_header {
    position: fixed;
    width: 100%;
    padding: 40px 0;
    background-color: #FFF;
    z-index: 1;
}

.lnb {
    display: none;
    gap: 32px;
    width: 270px;
    justify-content: flex-end;
}

.lnb > button {
    position: relative;
}

.lnb > button:not(:last-child)::after {
    content: '';
    position: absolute;
    width: 1px;
    height: 22px;
    background: var(--gray-20-line, #D2D4D8);
    top: 50%;
    transform: translateY(-50%);
    right: -16px;
}

.menu_open {
    display: block;
    position: relative;
    padding: 0;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    border: 0;
    background-color: transparent;
}

.menu_open span {
    display: inline-block;
    position: absolute;
    left: 0px;
    width: 20px;
    height: 1px;
    background: #FFF;
    border-radius: 2px;
}

.menu_open span {
    background: #000;
}

.menu_open:focus {
    outline: none;
}

.menu_open span:nth-of-type(1) {
    top: 4px;
}

.menu_open span:nth-of-type(2) {
    top: 10px;
}

.menu_open span:nth-of-type(3) {
    bottom: 5px;
}

.map_link_bg {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    /* background: rgba(0, 0, 0, 0.20); */
    background-blend-mode: overlay;
    backdrop-filter: blur(90px);
    -webkit-backdrop-filter: blur(90px);
    background-repeat: no-repeat;
    z-index: 110;
}

.map_link_bg.on {
    display: block;
}

.map_link_area {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    z-index: 120;
    display: flex;
    color: #FFF;
    overflow: auto;
}

.map_link_area .btn_close {
    position: absolute;
    top: 50px;
    right: 50px;
    width: 20px;
    height: 20px;
    border: none;
    background: none;
    background-image: url('../images/icon/btn_close_white.svg');
    background-repeat: no-repeat;
    background-size: 20px;
    background-position: center;
}

.map_link_wrap {}

.map_link_list {
    margin: auto;
    padding: 60px 0;
}

.map_link_list li {
    display: flex;
    align-items: center;
    gap: 60px;
    padding: 32px 0;
}

.map_link_list li+li {
    border-top: 1px solid #fbfbfb;
}

.map_link_list li h5 {
    flex: 190px;
    max-width: 190px;
    min-width: 190px;
}

.map_link_list li a {
    display: block;
}

.map_link_desc {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 100px;
}

header.main .menu_open span {
    background-color: #000;
}

header.main .lnb ul li+li:before {
    background-color: #000;
}

header.main .header_logo a {
    background-image: url('../images/logo/logo.png');
}

header.on {
    background: rgba(255, 255, 255, 0.3);
}

header.on .header_area {
    color: #0C0D0D;
}

header.on .menu_open span {
    background-color: #0C0D0D;
}

header.on .lnb ul li+li:before {
    background-color: #0C0D0D;
}

header.on .header_logo a {
    background-image: url('../images/logo/logo.png');
}

footer {
    padding-top: 28px;
    padding-bottom: 40px;
    color: var(--Gray-90, #14171B);
    font-size: 0.875rem;
    border-top: 1px solid var(--gray-10-line, #E3E6E9);
}

.footer_wrapper {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.footer_top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.footer_top ul {
    display: flex;
    align-items: center;
}

.footer_bar {
    display: flex;
    align-items: center;
    gap: 6px;
}

.footer_bar li {
    position: relative;
}

.footer_bar li+li {
    padding-left: 6px;
}

.footer_bar li+li:before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 1px;
    height: 14px;
    background: var(--gray-20-line, #D2D4D8);
    transform: translateY(-50%);
}

.footer_phone {
    display: flex;
    gap: 28px;
}

.footer_phone .item {
    display: flex;
    align-items: center;
    gap: 11px;
}

.footer_bottom {
    display: flex;
    align-items: center;
}

.footer_bottom p {
    margin-top: 6px;
    color: var(--Gray-40, #9EA5AF);
}

main {
    margin-top: 90px;
}

.swiper-scrollbar {
    left: 0 !important;
    opacity: 1 !important;
}

.partnerSwiper {
    padding: 24px 0;
}

.partnerSwiper .swiper-wrapper {
    transition-timing-function: linear;
}


.swiper-button-prev,
.swiper-button-next {
    position: absolute;
    display: block;
    top: auto;
    bottom: 0;
    width: 52px;
    height: 52px;
    margin-top: -26px;
    z-index: 10;
    cursor: pointer;
    border: 1px solid #D8DADC;
    background-size: 24px;
    background-position: center;
    background-repeat: no-repeat;
}

.swiper-button-prev {
    left: 50%;
    margin-left: 29px;
    background-image: url('../images/icon/arrow/arrow_left_black.svg');
}

.swiper-button-next {
    left: 50%;
    margin-left: 80px;
    background-image: url('../images/icon/arrow/arrow_right_black.svg');
}

.swiper-button-prev:after {
    display: none;
}

.swiper-button-next:after {
    display: none;
}


.partner_logo > img {
    width: 100%;
    height: 100%;
    max-width: 167px;
    max-height: 30px;
    filter: grayscale(100%);
}

.dashboard {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.dashboard_item {
    display: flex;
    gap: 30px;
}

.dashboard_layout1 {
    /* width: calc(68% - 15px); */
    width: calc((100% / 3 * 2) - 15px);
}

.dashboard_layout2 {
    /* width: calc(32% - 15px); */
    width: calc((100% / 3 * 1) - 15px);
}

.dashboard_box {
    display: flex;
    gap: 26px;
    flex-direction: column;
    justify-content: space-between;
    border-radius: 36px;
    padding: 36px 40px;
}

.dashboard_box.horizontal {
    flex-direction: row;
}


.dashboard_box ul.vertical {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.dashboard_box ul.vertical > li {
    position: relative;
}

.dashboard_box ul.vertical > li > a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.dashboard_box ul.vertical > li.flex_start > a {
    display: flex;
    justify-content: flex-start;
    gap: 12px;
}

.dashboard_box ul.vertical > li:not(:last-child)::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    background-color: #E3E6EA;
    bottom: -9px;
}

.dashboard_box.main {
    display: flex;
    padding: 84px 70px;
    background-image: url('../images/index/bg_index.svg');
    background-position: bottom;
    background-size: contain;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
    justify-content: unset;
    gap: unset;
}

.dashboard_box.main h6 {
    margin-bottom: 22px;
}

.dashboard_box.main .button_area {
    margin-top: 32px;
}


.dashboard_box .title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.dashboard_box .title.vertical {
    flex-direction: column;
    align-items: unset;
}

.dashboard_inner {
    display: flex;
    gap: 30px;
    height: 100%;
}

.dashboard_inner.sm {
    display: flex;
    gap: 20px;
    height: 100%;
}

.dashboard_inner.vertical {
    flex-direction: column;
}

.flex1 {
    flex: 1;
}

.weather_area {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    padding-bottom: 34px;
    border-bottom: 1px solid #E3E6EA;
}

.weather_list {
    display: flex;
    justify-content: space-between;
    gap: 4px;
}

.weather_list > li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex: 0 0 calc(100% / 6 - (5 * 4px) / 6);
}

.search_area {
    display: flex;
    align-items: center;
    padding: 10px 10px 10px 26px;
    border-radius: 1000px;
    border: 2px solid var(--Gray-90, #14171B);
    background: #FFF;
}

.search_area > input {
    font-family: 'Pretendard';
    border: none;
    outline: none;
    flex: 1;
    width: 100%;
}

.search_icon_wrapper {
    padding: 10px;
    background-color: #000;
    border-radius: 50%;
}

.dashboard_nav {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 42px 42px 48px 42px;
}

.dashboard_nav > li {
    flex: 0 0 calc(100% / 4 - (3 * 20px) / 4);
}

.dashboard_nav > li a {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}

.custom_pagination {
    display: flex;
    width: unset !important;
    position: unset !important;
}

.custom_pagination .swiper-pagination-bullet-active {
    background: var(--Gray-90, #14171B);
}

.user_count_box {
    flex: 1;
    display: flex;
    /*gap: 68px;*/
    /*padding: 32px 40px;*/
    border-radius: 28px;
    background: var(--Gray-5, #F6F8FA);
}

.user_count_box > li {
    position: relative;
    flex: 1;
    display: grid;
    justify-content: center;
    justify-items: center;
}

.user_count_box > li:not(:last-child)::after {
    content: '';
    position: absolute;
    width: 1px;
    height: 20px;
    background: #D2D4D8;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

.float_menu {
    position: fixed;
    bottom: 22.5%;
    right: 1%;
    z-index: 1;
}

.float_menu .float_button {
    padding: 21px 30px 20px 30px;
    border-radius: 1000px;
    background: #FFF;
    box-shadow: 1px 1px 6px 0px rgba(0, 0, 0, 0.06), 1px 1px 22px 0px rgba(0, 0, 0, 0.12);
}

.breadcrumb {
    display: flex;
    justify-content: center;
    align-items: center;
}

.breadcrumb li {
    color: var(--Gray-45, #878F9A);
}

.breadcrumb li.home {
    display: block;
    width: 20px;
    height: 20px;
    font-size: 0;
    background-image: url('../images/icon/ico_home_gray.svg');
    background-repeat: no-repeat;
    background-position: center;
}

.breadcrumb li+li {
    margin-left: 10px;
    padding-left: 22px;
    background-image: url('../images/icon/arrow/arrow_right_gray.svg');
    background-repeat: no-repeat;
    background-position: left center;
}

.breadcrumb li.on {
    color: #000;
}

.dashboard_survey {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    padding: 48px 40px;
    border-radius: 28px;
    background: var(--Gray-5, #F6F8FA);
}

.dashboard_survey .form {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 49px;
}

.dashboard_survey .form .radio_group {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.dashboard_survey .form .input_group {
    width: 100%;
    flex: 1;
    display: flex;
    gap: 10px;
}

.survey {
    display: flex;
    flex-direction: column;
    gap: 80px;
    padding: 80px;
    border-radius: 20px;
    border: 1px solid var(--gray-10-line, #E3E6E9);
    background: #FFF;
}

.survey > ul {
    display: flex;
    flex-direction: column;
}

.survey > ul > li {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding-top: 56px;
    padding-bottom: 56px;
}

.survey > ul > li:first-child {
    padding-top: 0;
}

.survey > ul > li:not(:last-child) {
    border-bottom: 1px solid #E3E6E9;
}

.survey > ul > li:last-child {
    padding-bottom: 0;
}

.survey .radio_group {
    display: flex;
    justify-content: center;
    /* justify-content: space-between; */
    gap: 26px;
}

.select_form {
    display: flex;
    gap: 6px;
}

.select_form > select {
    flex: 1;
    width: 100%;
}

.select_form > input[type=text] {
    width: 200px;
}

.select_form {
    align-items: center; /* 버튼과 select 박스의 세로 정렬을 맞춥니다. */
}

.select_form .select2-container {
    flex: 1; /* 남는 공간을 모두 차지 */
    min-width: 0;
}

.select2-selection__rendered {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.desc_box {
    margin-top: 30px;
    padding: 32px;
    border-radius: 16px;
    background: var(--Gray-5, #F6F8FA);
}

.page_tab {
    display: flex;
    margin-top: 36px;
    border-radius: 1000px;
    border: 1px solid var(--gray-10-line, #E3E6E9);
    background: var(--Common-White, #FFF);
}

.page_tab > li {
    position: relative;
    padding: 18px 20px;
    flex: 1;
    border-radius: 1000px;
    text-align: center;
    color: #424850;

    display: flex;
    align-items: center;
}

.page_tab > li:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 1px;
    height: 20px;
    background: var(--gray-10-line, #E3E6E9);
}

.page_tab > li > a {
    display: block;
    width: 100%;
    height: auto;
}

.page_tab > li.on {
    background-color: #065BBD;
    color: #fff;
}

.download_link {
    padding: 8px 34px 8px 16px;
    border-radius: 10px;
    font-weight: 500;
    font-size: 1rem;
    border: 1px solid var(--gray-10-line, #E3E6E9);
    background-color: #F6F8FA;
    background-image: url('../images/icon/ico_download_link.svg');
    background-size: 16px;
    background-position: center right 16px;
    background-repeat: no-repeat;
}

.link {
    text-decoration: underline;
}

.link.blue {
    text-decoration-color: #015EEA;
}

.notice_list {
    border-top: 2px solid var(--Gray-90, #14171B);
}

.notice_list > li {
    padding: 28px 20px;
    border-bottom: 1px solid #E3E6E9;
}

.notice_list > li dl {
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.notice_list > li dl dt {
    display: flex;
    gap: 30px;
}

.list_button {
    display: flex;
    padding: 8px 16px 8px 32px;
    font-size: 14px;
    font-weight: 500;
    justify-content: center;
    align-items: center;
    border-radius: 8px;
    background-color: var(--Gray-80, #23262B);
    background-image: url('../images/icon/ico_list.svg');
    background-repeat: no-repeat;
    background-position: center left 16px;
    background-size: 8px;
    color: #fff;
}

.map_info_box {
    position: relative;
    display: flex;
    flex-direction: column;
    z-index: 2;
    width: 380px;
    height: 100dvh;
    background-color: var(--white);
}

.map_info_box.pc_only_map {
    position: relative; /* fixed가 아닌 relative로 설정 */
    display: flex;
    flex-direction: column;
    z-index: 2;
    width: 380px; /* PC에서는 380px 고정 너비 */
    height: 100dvh;
    background-color: #fff;
}

.map_info_box > .content_group {
    flex: 1;
    height: 100%;
    overflow: auto;
    background-color: #fff;
}

.map_info_box > .top {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 24px 20px;
    background: var(--Blue-45, #007BE9);
}

.map_info_box .top .title {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.map_info_box .nav_tab {
    display: flex;
}

.map_info_box .nav_tab > li {
    padding: 3px 12px;
    color: rgba(255, 255, 255, 0.70);
    border-radius: 6px;
    cursor: pointer;
}

.map_info_box .nav_tab > li.on {
    color: rgba(255, 255, 255, 1);
    background-color: var(--Blue-70, #074D9E);
}

.map_info_box .content {
    display: none;
    flex: 1;
}

.map_info_box .content.on {
    display: block;
}

.map_info_box .content .subtitle {
    position: relative;
    padding: 0 20px;
}


.map_info_box .tab1.content > ul > li,
.map_info_box .tab2.content > ul > li {
    cursor: pointer;
    padding: 14px 20px;
    border-bottom: 1px solid var(--gray-10-line, #E3E6E9);
}

.map_info_box .tab3.content > ul > li {
    cursor: pointer;
    border-bottom: 1px solid var(--gray-10-line, #E3E6E9);
}

.map_info_box .content > ul > li.on,
.map_info_box .content > ul > li:hover {
    background-color: var(--Blue-5, #EEF5FB);
}

.map_bus_route {
    position: fixed;
    z-index: 3;
    display: none;
    flex-direction: column;
    top: 144px;
    /* top: 12px; */
    /* left: calc(380px + 16px); */
    /* height: calc(100dvh - 24px); */
    height: calc(100% - 144px);
    width: 380px;
    box-shadow: 0px 3px 8px 0px rgba(0, 0, 0, 0.06);
    border-radius: 12px;
    overflow: hidden;
    background-color: #fff;
}

.map_bus_route.on {
    display: flex;
}

.map_bus_route .top {
    width: 100%;
    display: flex;
    flex-direction: column;
    padding: 20px 24px;
    border-bottom: 1px solid var(--gray-10-line, #E3E6E9);
    background: #FFF;
    box-shadow: 0px 3px 8px 0px rgba(0, 0, 0, 0.06);
}

.map_bus_route .top .title {
    display: flex;
    justify-content: space-between;
    align-items: center;
}


.map_bus_route .map_bus_desc {
    width: 100%;
    padding-top: 12px;
    padding-bottom: 16px;
}

.map_bus_route .map_bus_desc > dl {
    display: flex;
    gap: 10px;
    padding: 2px 0;
}

.map_bus_route .map_bus_desc > dl > dt {
    flex: 0 0 45px;
}

.map_bus_route .map_bus_desc > dl > dd {
    flex: 1;
}

.map_bus_route .content {
    flex: 1;
    overflow: auto;
}

.map_info_box.pc_only_map:focus-within {
    z-index: 100;
}

.bus_route_list > li > dl {
    display: flex;
}

.bus_route_list > li > dl > dt {
    flex: 0 0 90px;
    display: flex;
    /* align-items: center; <- 기본 정렬은 제거하고 아래 클래스에 위임 */
    justify-content: center;
    padding: 8px 0; /* 상하 여백 추가 */
}

.bus_route_list > li > dl > dt.bus-at-stop {
    align-items: center;
}

/* 버스가 해당 정류장을 출발했을 때 (하단 정렬) */
.bus_route_list > li > dl > dt.bus-departed {
    align-items: flex-end;
}

.bus_route_list > li > dl > dd {
    position: relative;
    flex: 1;
    align-items: center;
    justify-content: flex-start;
    padding-left: 12px;
    padding-top: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #E3E6EA;
    cursor: pointer;
}

.bus_route_list > li > dl > dd.on,
.bus_route_list > li > dl > dd:hover {
    background-color: var(--Blue-5, #EEF5FB);
}

.bus_route_list > li > dl > dd::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 2px;
    background: #BDC1C7;
}

.bus_route_list > li > dl > dd.red_line::before {
    background: #F53C2C;
}

.bus_route_list > li > dl > dd.gray_line::before {
    background: #BDC1C7;
}

.bus_route_list > li > dl > dd.yellow_line::before {
    background: #F5C400;
}

.bus_route_list > li > dl > dd.green_line::before {
    background: #53C000;
}

.bus_route_list > li > dl > dd.gray_red_line::before {
    background: linear-gradient(to bottom, #BDC1C7 50%, #F53C2C 50%);
}
.bus_route_list > li > dl > dd.gray_yellow_line::before {
    background: linear-gradient(to bottom, #BDC1C7 50%, #F5C400 50%);
}
.bus_route_list > li > dl > dd.gray_green_line::before {
    background: linear-gradient(to bottom, #BDC1C7 50%, #53C000 50%);
}

.bus_route_list > li > dl > dd.red_gray_line::before {
    background: linear-gradient(to bottom, #F53C2C 50%, #BDC1C7 50%);
}
.bus_route_list > li > dl > dd.red_yellow_line::before {
    background: linear-gradient(to bottom, #F53C2C 50%, #F5C400 50%);
}
.bus_route_list > li > dl > dd.red_green_line::before {
    background: linear-gradient(to bottom, #F53C2C 50%, #53C000 50%);
}

.bus_route_list > li > dl > dd.yellow_gray_line::before {
    background: linear-gradient(to bottom, #F5C400 50%, #BDC1C7 50%);
}
.bus_route_list > li > dl > dd.yellow_red_line::before {
    background: linear-gradient(to bottom, #F5C400 50%, #F53C2C 50%);
}
.bus_route_list > li > dl > dd.yellow_green_line::before {
    background: linear-gradient(to bottom, #F5C400 50%, #53C000 50%);
}

.bus_route_list > li > dl > dd.green_gray_line::before {
    background: linear-gradient(to bottom, #53C000 50%, #BDC1C7 50%);
}
.bus_route_list > li > dl > dd.green_red_line::before {
    background: linear-gradient(to bottom, #53C000 50%, #F53C2C 50%);
}
.bus_route_list > li > dl > dd.green_yellow_line::before {
    background: linear-gradient(to bottom, #53C000 50%, #F5C400 50%);
}


.bus_route_list > li > dl > dd::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    left: 0;
    width: 14px;
    height: 14px;
    background-repeat: no-repeat;
    background-image: url('../images/icon/bus_arrow.svg');
}


.bus_badge_blue {
    background-image: url('../images/icon/map_bus_blue.svg');
    padding-right: 29px;
    padding-left: 8px;
    font-size: 12px;
    background-position: center right 1px;
    background-size: 24px;
    background-repeat: no-repeat;
    border-radius: 1000px;
    border: 1px solid rgba(11, 114, 211, 0.50);
}

.bus_badge_green {
    background-image: url('../images/icon/map_bus_green.svg');
    padding-right: 29px;
    padding-left: 8px;
    font-size: 12px;
    background-position: center right 1px;
    background-size: 24px;
    background-repeat: no-repeat;
    border-radius: 1000px;
    border: 1px solid #46A100;
}

.bus_badge_purple {
    background-image: url('../images/icon/map_bus_purple.svg');
    padding-right: 29px;
    padding-left: 8px;
    font-size: 12px;
    background-position: center right 1px;
    background-size: 24px;
    background-repeat: no-repeat;
    border-radius: 1000px;
    border: 1px solid #6A0DAD; /* 보라색 계열로 수정 */
}

.bus_badge_yellow {
    background-image: url('../images/icon/map_bus_yellow.svg');
    padding-right: 29px;
    padding-left: 8px;
    font-size: 12px;
    background-position: center right 1px;
    background-size: 24px;
    background-repeat: no-repeat;
    border-radius: 1000px;
    border: 1px solid #FFD700; /* 노란색 계열로 수정 */
}

.border_desc {
    position: relative;
    margin-left: 6px;
    padding-left: 6px;
}

.border_desc::before {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: -1px;
    width: 1px;
    height: 13px;
    background: #E3E6E9;
}

.map_location_search_group {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 20px;
    border-bottom: 1px solid var(--gray-10-line, #E3E6E9);
}

.map_location_search_group .input_group {
    display: flex;
    flex-direction: column;
    flex: 1;
    background: #FFF;
}

.map_location_search_group .input_group > input {
    width: 100%;
    padding: 8px 14px 8px 32px;
    border: none;
}

.map_location_search_group .input_group > input:focus {
    outline: none;
}

.map_location_search_group .input_group > input:first-child {
    border: 1px solid #E3E6E9;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    background-image: url('../images/icon/map/red_dot.svg');
    background-size: 8px;
    background-repeat: no-repeat;
    background-position: center left 16px;
}

.map_location_search_group .input_group > input:last-child {
    border: 1px solid #E3E6E9;
    border-top: 0;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    background-image: url('../images/icon/map/blue_dot.svg');
    background-size: 8px;
    background-repeat: no-repeat;
    background-position: center left 16px;
}

.map_location_search_group .input_group > input:not(:last-child) {
    border-bottom: 1px solid var(--gray-10-line, #E3E6E9);
}

.map_location_search_group .icon_group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.map_info_box .content > ul > li .map_bus_detail_route .top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 20px 0 20px;
}

.map_info_box .content > ul > li.on .map_bus_detail_route .top {
    padding: 12px 20px 12px 20px;
    border-bottom: 1px solid var(--gray-10-line, #E3E6E9);
}


.map_info_box .content > ul > li .map_bus_detail_route .top .list_toggle {
    width: 16px;
    height: 16px;
    background-image: url('../images/icon/map/list_toggle.svg');
}

.map_info_box .content > ul > li.on .map_bus_detail_route .top .list_toggle {
    background-image: url('../images/icon/map/list_toggle_on.svg');
}


.map_info_box .content > ul > li .map_bus_detail_route > ol {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 10px;
    padding-bottom: 16px;
    padding-left: 20px;
    padding-right: 20px;
}

.map_info_box .content > ul > li .map_bus_detail_route > ol > li {
    position: relative;
    padding-left: 20px;
    margin-left: 30px;
}

/* 리스트 선택 전 */
/* 회색선 */
.map_info_box .content > ul > li .map_bus_detail_route > ol > li:not(:last-child)::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 0;
    height: calc(100% + 10px);
    border-left: 2px solid #D2D4D8;
}

/* 버스아이콘 */
.map_info_box .content > ul > li .map_bus_detail_route > ol > li:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 3px;
    left: -9px;
    width: 20px;
    height: 20px;
    background-image: url('../images/icon/map/bus_icon.svg');
}

/* 회색점 */
.map_info_box .content > ul > li .map_bus_detail_route > ol > li:last-child::after {
    content: '';
    position: absolute;
    top: 10px;
    left: -3px;
    width: 8px;
    height: 8px;
    background-image: url('../images/icon/map/gray_dot.svg');
}

/* 점선 */
.map_info_box .content > ul > li.on .map_bus_detail_route > ol > li:not(:last-child)::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 0;
    height: calc(100% + 10px);
    border-left: 2px dashed #D2D4D8;
}

/* 리스트 선택 후 */
/* 출발아이콘 */
.map_info_box .content > ul > li.on .map_bus_detail_route > ol > li:first-child::after {
    content: '';
    position: absolute;
    top: 3px;
    left: -9px;
    width: 20px;
    height: 26px;
    background-image: url('../images/icon/map/depart.svg');
}

/* 도착아이콘 */
.map_info_box .content > ul > li.on .map_bus_detail_route > ol > li:last-child::after {
    content: '';
    position: absolute;
    top: 3px;
    left: -9px;
    width: 20px;
    height: 26px;
    background-image: url('../images/icon/map/arrive.svg');
}

/* 파란선 */
.map_info_box .content > ul > li.on .map_bus_detail_route > ol > li:not(:last-child):not(:first-child):not(:nth-last-child(2))::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 0;
    height: calc(100% + 10px);
    border-left: 2px solid #074D9E;
}



/* 첫번째 두번째 마지막째만 노출 */
.map_info_box .content > ul > li.on .map_bus_detail_route > ol > li:nth-child(n + 3):not(:last-child) {
    display: block;
}

/* 나머지는 미노출, 선택이 된 경우 노출 */
.map_info_box .content > ul > li .map_bus_detail_route > ol > li:nth-child(n + 3):not(:last-child) {
    display: none;
}

.handle_toggle {
    position: sticky;
    display: flex;
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 5px;
    border-radius: 1000px;
    background-color: #000;
    z-index: 2;
}

.sticky_group {
    position: sticky;
    top: 0;
    background-color: #fff;
    z-index: 2;
    /* ▼▼▼ [수정] padding-top과 padding-bottom 값을 늘려줍니다 ▼▼▼ */
    padding-top: 16px;
    padding-bottom: 16px;
}

/* 이미지뷰어 */
#imgModal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.8);
    justify-content: center;
    align-items: center;
    z-index: 1000;
}
#imgModal img {
    max-width: 90%;
    max-height: 90%;
    border-radius: 12px;
    background-color: white;
    box-shadow: 0 4px 20px rgba(0,0,0,0.6);
}

.modal-close {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 40px;
    font-weight: bold;
    color: white;
    cursor: pointer;
    z-index: 1100;
    transition: color 0.3s;
}

#pop3 img {
    max-width: 100%;
    max-height: 100%;
}

.map_top_search_mo {
    display: none;
}

.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


.bus_route_list > li > dl > dt {
    cursor: pointer;
}

/* 팝업 */
#popup_wrap {
    max-width: 500px;
    width: 100%;
    position: absolute;
    left: 0%;
    top: 50px;
    z-index: 99999;
    list-style: none;
    padding: 0;
    box-sizing: border-box;
    /*display: flex;*/
    /*gap: 10px;*/
    /*list-style: none;*/
}
.popup_box {
    max-width: 500px;
    width: 100%;
    position: absolute;
}
.popDiv {
    width:500px; height:auto; background:#ffffff; color:#000000;
    position:absolute;
    text-align:left;
    border: 3px solid #000000;
    display: default;
}
.popDiv > .txt_02{
    padding: 10px;
}
.popDiv img {
    max-width: 100%;
    max-height: 100%;
}
.popup_footer {
    position: relative;
    background-color: #333333;
    height: 33px;
    justify-content: center;
    align-items: center;
}
.popup_footer label {
    margin-top: 3px;
}
.popup_footer button {
    position: absolute;
    letter-spacing: -1px;
    margin-top: 3px;
}
.popup_btn_today_close {
    position: absolute;
    color: white;
    /*background-color: #E3E6E9;*/
    padding: 0.3rem 1.2rem;
    /*top: 6px;*/
    left: 5px;
    border-radius: 6px;
    font-size: 0.9rem;
}
.popup_btn_close {
    position: absolute;
    color: gray;
    background-color: #222222;
    padding: 0.3rem 1.2rem;
    /*top: 6px;*/
    right: 5px;
    border-radius: 6px;
    font-size: 0.9rem;
}
.close_btn {
    color: white;
    margin-right: 2px;
}
.check-label {
    color: white;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}
.check-label span {
    margin-left: 30px;
}

.gnb > ul > .mainHover:first-child .header_sub_nav {
    left: 0;
    transform: translateX(-35%);
}
.gnb > ul > .mainHover:last-child .header_sub_nav {
    left: auto;
    right: 0;
    transform: translateX(30%);
}