/********** sub **********/
/* section layout */
.section_wrap {
    padding: 100px 0 120px;
    min-height: calc(100vh - 359px);
}
.section_wrap .inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
}

/* location */
.location_area .inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    z-index: 1;
}
.location_area .inner::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 1400px;
    height: 1px;
    background-color: #777;
}
.location_area .home_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 24px;
}
.location_area .home_btn::after,
.location_area .gnb_item::after {
    width: 1px;
    height: 28px;
    background-color: #bbb;
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
.location_area .gnb_wrap {
    display: flex;
    align-items: center;
}
.location_area .gnb_item {
    position: relative;
}
.location_area .gnb_item .more_btn {
    font-size: 17px;
    color: #000;
    display: flex;
    align-items: center;
    padding: 24px;
    width: 236px;
    justify-content: space-between;
}
.location_area .gnb_item .more_btn:focus-visible {
    outline-offset: -3px;
}
.location_area .gnb_item .img {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.location_area .gnb_2dep {
    position: absolute;
    z-index: 10;
    top: 99%;
    left: 0;
    width: 100%;
    background-color: #fff;
    border: 1px solid #777;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    visibility: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease, opacity 0.2s ease, visibility 0s linear 0.3s;
}
.location_area .gnb_2dep.open {
    opacity: 1;
    max-height: 500px;
    pointer-events: auto;
    visibility: visible;
    transition: max-height 0.3s ease, padding 0.3s ease, opacity 0.2s ease, visibility 0s;
}
.location_area .gnb_2dep .item_02 > a {
    font-size: 17px;
    color: #555;
    transition: all 0.3s;
    padding: 16px 24px;
    font-weight: 500;
    display: block;
}
.location_area .gnb_2dep .item_02 > a:hover {
    background-color: #f4f4f4;
    color: #000;
}
.location_area .gnb_2dep .item_02 > a:focus-visible {
    outline-offset: -4px;
}

/* heading_wrap */
.heading_wrap {
    padding: 120px 0 80px;
}
.heading_wrap h1 {
    font-family: "songmyung";
    font-size: 64px;
}

@media screen and (max-width: 1770px) {
    .section_wrap {
        padding-top: 80px;
        min-height: calc(100vh - 350px);
    }
    .section_wrap .inner {
        max-width: none;
        padding-left: 70px;
    }
    .location_area .inner::after {
        max-width: none;
        left: 70px;
        transform: translateX(0);
        width: calc(100% - 90px);
    }
}

@media screen and (max-width: 1280px) {
    .section_wrap {
        padding: 65px 0 40px;
        min-height: calc(100vh - 402px);
    }
    .section_wrap .inner {
        padding-left: 20px;
    }
    .heading_wrap {
        padding: 40px 0 32px;
    }
    .heading_wrap h1 {
        font-size: 30px;
    }
    .location_area .inner::after {
        left: 20px;
        width: calc(100% - 40px);
    }
    .location_area .home_btn {
        display: none;
    }
    .location_area .gnb_item .more_btn {
        padding: 20px 8px 20px 0;
        min-width: 128px;
        width: 100%;
        font-size: 14px;
    }
    .location_area .gnb_wrap:last-child .more_btn {
        padding: 20px 8px;
        min-width: 152px;
    }
    .location_area .gnb_2dep .item_02 > a {
        padding: 12px;
        font-size: 14px;
    }
}

@media screen and (max-width: 480px) {
    .section_wrap {
        min-height: calc(100vh - 432px);
    }
}

/* sub_tab_wrap */
.sub_tab_wrap {
    margin-bottom: 56px;
}
.sub_tab_wrap.ver1 ul {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.sub_tab_wrap.ver2 ul {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.sub_tab_wrap ul::-webkit-scrollbar {
    display: none;
}
.sub_tab_wrap ul li {
    flex: 0 0 auto;
}
.sub_tab_wrap.ver1 ul li .tab {
    width: 148px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #eee;
    color: #555;
    font-size: 18px;
    font-weight: 500;
    transition: all 0.3s;
}
.sub_tab_wrap.ver1 ul li .tab.active,
.sub_tab_wrap.ver1 ul li .tab:hover {
    background-color: #333;
    color: #fff;
    font-weight: 700;
}
.sub_tab_wrap.ver2 ul li a {
    padding: 12px;
    font-size: 18px;
    color: #555;
    font-weight: 500;
    display: block;
    position: relative;
    transition: all 0.3s;
}
.sub_tab_wrap.ver2 ul li a:focus-visible {
    outline-offset: -3px;
}
.sub_tab_wrap.ver2 ul li a::after {
    content: "";
    width: 0;
    height: 3px;
    background-color: #000;
    transition: all 0.2s;
    position: absolute;
    bottom: 0;
    left: 0;
}
.sub_tab_wrap.ver2 ul a.active,
.sub_tab_wrap.ver2 ul a:hover {
    color: #000;
    font-weight: 700;
}
.sub_tab_wrap.ver2 ul a.active:after,
.sub_tab_wrap.ver2 ul a:hover:after {
    width: 100%;
}
.sub_con_wrap[hidden] {
    display: none;
}
.sub_con_wrap.active {
    display: block;
}

/* sub_title */
.sub_title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}
.sub_title .table_count {
    color: #555;
    font-size: 16px;
    font-weight: 500;
}
.sub_title .table_count b {
    font-weight: 700;
    color: #000;
}

.sub_title .table_search {
    display: flex;
    align-items: center;
}
.table_search .select_wrap select {
    border: 1px solid #777;
    border-right: none;
    border-radius: 0;
    height: 48px;
}
.table_search .search_wrap {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}
.table_search .search_wrap .search_btn {
    background-color: transparent;
    width: 20px;
    height: 20px;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}
.table_search .search_wrap .search_input_wrap {
    position: relative;
    width: 400px;
    height: 48px;
    border: 1px solid #777;
}
.table_search .search_wrap .search_input_wrap input {
    width: 100%;
    height: 100%;
    border: none;
    background-color: transparent;
    padding: 0 40px 0 20px;
    font-size: 16px;
    font-weight: 500;
}
.table_search .search_wrap .search_input_wrap input::placeholder {
    color: #777;
}
.table_search .search_wrap .search_input_wrap .clear_btn {
    position: absolute;
    right: 45px;
    top: 50%;
    transform: translateY(-50%);
}
.table_search .search_wrap .search_input_wrap .clear_btn i {
    font-size: 16px;
}
.table_search .search_wrap .search_input_wrap.has-value input {
    padding-right: 68px;
}

@media screen and (max-width: 1280px) {
    .sub_tab_wrap {
        margin-bottom: 40px;
    }
    .sub_tab_wrap.ver1 ul {
        gap: 7px;
    }
    .sub_tab_wrap.ver2 ul {
        gap: 12px;
    }
    .sub_tab_wrap.ver2 ul li a {
        font-size: 16px;
        padding: 4px;
    }
    .sub_tab_wrap.ver1 ul li .tab {
        width: 107px;
        height: 36px;
        font-size: 15px;
    }

    .sub_title .table_search,
    .table_search .search_wrap,
    .table_search .search_wrap .search_input_wrap {
        width: 100%;
    }
    .sub_title .table_count {
        display: none;
    }
    .table_search .search_wrap .search_btn {
        right: 12px;
    }
    .table_search .search_wrap .search_input_wrap .clear_btn {
        right: 38px;
    }
    .table_search .select_wrap select {
        height: 40px;
        padding-left: 12px;
    }
    .table_search .search_wrap .search_input_wrap {
        height: 40px;
    }
    .table_search .search_wrap .search_input_wrap input {
        padding: 0 62px 0 12px;
        font-size: 14px;
    }
}

@media screen and (max-width: 374px) {
    .sub_tab_wrap.ver1 ul li {
        width: calc((100% - 7px) / 2);
    }
    .sub_tab_wrap.ver1 ul li .tab {
        width: 100%;
    }
}

/* board_table */
.board_table {
    border-top: 2px solid #000;
    table-layout: fixed;
}
.board_table tr {
    border-bottom: 1px solid #ddd;
}
.board_table tr.fix {
    border-bottom: none;
    background-color: #eee;
}
.board_table th {
    height: 56px;
    font-size: 16px;
    font-weight: 700;
    color: #555;
}
.board_table td {
    height: 100px;
    font-size: 17px;
    color: #777;
    font-weight: 500;
    text-align: center;
}
.board_table td.tag {
    color: #333;
}
.board_table td.title {
    text-align: left;
}
.board_table td.user {
    color: #333;
}
.board_table td a {
    font-weight: 700;
    font-size: 20px;
    color: #000;
    display: block;
    width: 100%;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    padding: 0 12px;
}
.board_table td a:hover {
    text-decoration: underline;
}
.board_table td.title a {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-width: 0;
    vertical-align: middle;
}

.board_table td.title a .text {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 20px;
    font-weight: 700;
    color: #000;
}

.board_table td.title a .lock {
    width: 24px;
    height: 24px;
    margin-left: 4px;
    background: url(../images/icon_lock.svg) no-repeat center center;
    background-size: contain;
    display: block;
    flex: 0 0 24px;
}
.board_table td.answer .state {
    border-radius: 100px;
    width: 72px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 600;
    margin: 0 auto;
}
.state.gray {
    background-color: #e8e8e8 !important;
    color: #555 !important;
}
.state.dark_gray {
    background-color: #666 !important;
    color: #fff !important;
}

@media screen and (max-width: 1280px) {
    .board_table thead,
    .board_table colgroup,
    .board_table .num {
        display: none;
    }
    .board_table tr {
        display: flex;
        width: 100%;
        flex-wrap: wrap;
        padding: 50px 0 20px;
        position: relative;
    }
    .board_table tr:has(.data_none) {
        padding: 20px 0;
    }
    .board_table tr.fix {
        border-bottom: 1px solid #ddd;
        background-color: transparent;
    }
    .board_table tr td {
        height: auto;
        font-size: 13px;
    }
    .board_table .title {
        position: absolute;
        top: 20px;
        width: 100%;
    }
    .board_table .user,
    .board_table .tag,
    .board_table .date {
        padding-right: 8px;
        margin-right: 8px;
        position: relative;
    }
    .board_table .user::after,
    .board_table .tag::after,
    .board_table .date::after {
        position: absolute;
        content: "";
        width: 1px;
        height: 12px;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        background-color: #ccc;
    }
    .board_table td.data_none {
        height: 50px;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 15px;
    }
    .board_table td a {
        font-size: 17px;
        padding: 0;
    }
    .board_table:has(td.answer) td.date {
        margin-right: 0;
        margin-top: 2px;
    }
    .board_table:has(td.answer) td.date::after {
        display: none;
    }
    .board_table td.title a .lock {
        width: 16px;
        height: 16px;
    }
    .board_table td.title a .text{
        font-size: 17px;
    }
    .board_table td.answer .state {
        width: 60px;
        height: 20px;
        font-size: 12px;
    }
}

/* pagination */
#pagination{
    width: 100%;
    justify-content: center;
}
.pagination,
.pagination > div {
    display: flex;
    align-items: center;
    justify-content: center;
}
.pagination {
    margin-top: 80px;
    gap: 16px;
}
.content_bottom .pagination {
    margin-top: 0;
}
.pagination .arrow_wrap {
    gap: 8px;
}
.pagination .arrow_wrap button {
    width: 42px;
    height: 42px;
    border: 1px solid transparent;
    transition: all 0.2s;
}
.pagination .arrow_wrap button img {
    width: 100%;
}
.pagination .arrow_wrap.prev button img {
    transform: scale(-1);
}
.pagination .num_wrap {
    gap: 4px;
}
.pagination .num_wrap button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid #999;
    font-size: 16px;
    color: #777;
    transition: all 0.2s;
}
.pagination .num_wrap button.active,
.pagination button:hover {
    color: #fff;
    background: #333;
    border: 1px solid #333;
}

@media screen and (max-width: 1280px) {
    .pagination {
        margin-top: 40px;
        gap: 8px;
    }
    .pagination .arrow_wrap button {
        width: 32px;
        height: 32px;
    }
    .pagination .arrow_wrap button.m_hide {
        display: none;
    }
    .pagination .num_wrap {
        gap: 2px;
    }
    .pagination .num_wrap button {
        width: 32px;
        height: 32px;
        font-size: 15px;
    }
}

/* board_view */
.board_view {
    padding-top: 120px;
    margin-bottom: 56px;
    border-bottom: 1px solid #ddd;
}
.board_view:has(.answer_area) {
    margin-bottom: 64px;
    border-bottom: none;
}
.board_view .tit_area {
    border-bottom: 1px solid #000;
    padding-bottom: 24px;
}
.board_view .tit_area .tit {
    font-size: 40px;
    font-weight: 700;
    margin-bottom: 20px;
}
.board_view .tit_area .txt_wrap {
    display: flex;
    align-items: center;
}
.board_view .tit_area .txt_wrap span {
    font-weight: 500;
    color: #777;
    font-size: 15px;
    padding-right: 10px;
    margin-right: 10px;
    position: relative;
}
.board_view .tit_area .txt_wrap span::after {
    position: absolute;
    content: "";
    width: 1px;
    height: 12px;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    background-color: #ccc;
}
.board_view .tit_area .txt_wrap span:last-child:after {
    display: none;
}
.board_view .tit_area .txt_wrap span.state {
    border-radius: 100px;
    width: 72px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 600;
    margin: 0;
    padding: 0;
}

.board_view .con_area {
    padding: 40px 0;
}
.board_view .con_area .txt_area * {
    font-size: 18px;
    line-height: 1.5;
    color: #333;
    word-break: break-all;
}

/* file_area */
.board_view .file_area {
    padding: 24px 0;
    border-bottom: 2px solid #000;
    display: flex;
    align-items: flex-start;
    gap: 40px;
}
.board_view .file_area .tit {
    font-size: 18px;
    font-weight: 700;
    display: block;
    flex-shrink: 0;
}
.board_view .file_area .file_list {
    flex: 1;
    min-width: 0;
}
.board_view .file_area .file {
    position: relative;
    width: 100%;
}
.board_view .file_area .file + .file {
    margin-top: 16px;
}
.board_view .file_area .file a {
    width: 100%;
    display: flex;
    gap: 8px;
    align-items: flex-start;
    min-width: 0;
}
.board_view .file_area .file a p {
    font-size: 16px;
    font-weight: 500;
    color: #333;
}
.board_view .file_area .file a img {
    width: 16px;
    height: 16px;
    margin-top: 2px;
}

.board_view figure {
    max-width: 100%;
}
.board_view figure img,
.board_view img {
    max-width: 100%;
    height: auto !important;
}

/* prev_next_table */
.prev_next_table {
    margin-top: 64px;
    position: relative;
    table-layout: fixed;
}
.prev_next_table::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    background-color: #000;
    top: 0;
    left: 0;
}
.prev_next_table tr {
    border-top: 1px solid #ddd;
}
.prev_next_table th,
.prev_next_table td {
    padding: 24px 20px;
    font-size: 17px;
    color: #555;
    font-weight: 500;
}
.prev_next_table th {
    width: 85px;
    white-space: nowrap;
    position: relative;
}
.prev_next_table th::after {
    content: "";
    width: 1px;
    height: 12px;
    background-color: #ccc;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
.prev_next_table td {
    color: #999;
}
.prev_next_table td a {
    display: block;
    color: #333;
    overflow: hidden;
}
.prev_next_table td a span {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 17px;
}

.btn_group {
    display: flex;
    gap: 12px;
    align-items: center;
}
.btn_group.center {
    justify-content: center;
}
.btn_group.right {
    justify-content: flex-end;
}
.btn_group.mt32{
    margin-top: 32px;
}

@media screen and (max-width: 1280px) {
    .board_view {
        padding: 40px 0 0;
        margin-bottom: 40px;
    }
    .board_view .tit_area .tit {
        font-size: 22px;
    }
    .board_view .tit_area .txt_wrap span {
        font-size: 13px;
        padding-right: 8px;
        margin-right: 8px;
    }
    .board_view .tit_area .txt_wrap span.state {
        width: 60px;
        height: 20px;
        font-size: 12px;
    }
    .board_view .file_area {
        flex-direction: column;
        gap: 12px;
        padding: 16px 0;
    }
    .board_view .file_area .tit {
        font-size: 16px;
    }
    .board_view .file_area .file + .file {
        margin-top: 8px;
    }
    .board_view .file_area .file a p {
        font-size: 13px;
    }
    .board_view .file_area .file a img {
        display: none;
    }
    .board_view .con_area {
        padding: 20px 0;
    }
    .board_view .con_area .txt_area pre {
        font-size: 15px;
    }
    .board_nav .nav .txt {
        display: none;
    }

    .prev_next_table {
        margin-top: 48px;
    }
    .prev_next_table th,
    .prev_next_table td {
        font-size: 14px;
        padding: 16px 8px;
    }
    .prev_next_table th {
        width: 53px;
    }
    .prev_next_table td a span {
        font-size: 14px;
    }
}

/* list_table */
.employee .table_wrap,
.rental .table_wrap {
    margin-top: 24px;
    border-top: 2px solid #000;
}
.rental .table_wrap.mt16 {
    margin-top: 16px;
}
.table_scroll {
    overflow-x: auto;
}
.list_table th {
    height: 61px;
    padding: 0 4px;
    border-right: 1px solid #ddd;
    font-size: 16px;
    font-weight: 700;
    color: #555;
    background-color: #f6f6f6;
}
.list_table td {
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    color: #333;
    font-size: 18px;
    font-weight: 500;
    padding: 26px 22px;
    text-align: center;
}
.list_table td p + p {
    margin-top: 12px;
}
.list_table td.text_left p {
    text-align: left;
}
.list_table td.text_left p::before {
    content: "・";
    display: inline-block;
}
.list_table th:last-child,
.list_table td:last-child {
    border-right: none;
}

.employee .list_table th:first-child {
    width: 160px;
}
.employee .list_table th:nth-child(2) {
    width: 128px;
}
.employee .list_table th:last-child {
    width: 200px;
}

.list_table.layout{
    table-layout: auto;
}
.list_table .w140{
    width: 140px;
}
.list_table .w160{
    width: 160px;
}
.list_table .w320{
    width: 320px;
}
.list_table .w200{
    width: 200px;
}
.list_table.layout td:last-child{
    border-left: 1px solid #ddd;
}

@media (max-width: 1280px) {
    .employee .table_wrap {
        margin-top: 16px;
    }
    .list_table th {
        height: 40px;
        font-size: 13px;
    }
    .list_table td {
        font-size: 14px;
        padding: 12px 16px;
    }
    .list_table td p + p {
        margin-top: 6px;
    }
    .employee .list_table th:first-child {
        width: 70px;
    }
    .employee .list_table th:nth-child(2) {
        width: 60px;
    }
    .employee .list_table th:last-child {
        width: 140px;
    }

    .list_table.layout{
        min-width: 690px;
    }
    .list_table .w140,
    .list_table .w160,
    .list_table .w320,
    .list_table .w200{
        width: fit-content;
    }
    .list_table .wAuto{
        width: 350px;
    }
}

@media (max-width: 768px) {
    .employee .table_wrap {
        overflow: scroll;
    }
    .employee .list_table {
        width: 800px;
    }
}

/* txt style */
.txt24 {
    font-size: 24px;
    font-weight: 700;
}
.txt28 {
    font-size: 28px;
    font-weight: 700;
}
.txt40 {
    font-size: 40px;
    font-weight: 700;
}

@media (max-width: 1280px) {
    .txt28,
    .txt40 {
        font-size: 22px;
    }
}

/* intro */
.intro .tit_wrap {
    display: flex;
    margin-bottom: 40px;
    gap: 217px;
}
.intro .tit_wrap p {
    font-size: 18px;
    font-weight: 500;
    line-height: 34px;
}
.intro_wrap .img_wrap {
    max-width: 100%;
    aspect-ratio: 1400 / 640;
    background: url(../images/intro.png) no-repeat center center;
    background-size: cover;
}
.intro_wrap .item_wrap {
    display: flex;
    margin-top: 40px;
}
.intro_wrap .item_wrap .item {
    width: 20%;
    padding: 42px 32px;
    border-right: 1px solid #e8e8e8;
}
.intro_wrap .item_wrap .item:last-child {
    border-right: none;
}
.intro_wrap .item_wrap .item dt {
    font-size: 22px;
    font-weight: 700;
    color: #333;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
}
.intro_wrap .item_wrap .item dt::before {
    width: 22px;
    height: 22px;
    content: "";
    display: inline-block;
    background: url(../images/ic_map.svg) center center no-repeat;
    background-size: contain;
    vertical-align: middle;
}
.intro_wrap .item_wrap .item:nth-child(2) dt::before {
    background: url(../images/ic_tell.svg) center center no-repeat;
    background-size: contain;
}
.intro_wrap .item_wrap .item:nth-child(3) dt::before {
    background: url(../images/ic_facility.svg) center center no-repeat;
    background-size: contain;
}
.intro_wrap .item_wrap .item:nth-child(4) dt::before {
    background: url(../images/ic_ruler.svg) center center no-repeat;
    background-size: contain;
}
.intro_wrap .item_wrap .item:nth-child(5) dt::before {
    background: url(../images/ic_calendar.svg) center center no-repeat;
    background-size: contain;
}
.intro_wrap .item_wrap .item dd {
    font-size: 16px;
    font-weight: 500;
    color: #333;
}
.intro_wrap .item_wrap .item dd::before {
    content: "・";
    display: inline-block;
}
.intro_wrap .item_wrap .item dd + dd {
    margin-top: 12px;
}

@media (max-width: 1280px) {
    .intro .tit_wrap {
        flex-direction: column;
        margin-bottom: 24px;
        gap: 12px;
    }
    .intro .tit_wrap p {
        font-size: 15px;
        line-height: 22px;
    }
    .intro_wrap .item_wrap {
        margin-top: 12px;
        flex-direction: column;
    }
    .intro_wrap .item_wrap .item {
        width: 100%;
        padding: 20px 0;
        border-bottom: 1px solid #e8e8e8;
        border-right: none;
    }
    .intro_wrap .item_wrap .item:last-child {
        border-bottom: none;
    }
    .intro_wrap .item_wrap .item dt {
        font-size: 18px;
        margin-bottom: 12px;
    }
    .intro_wrap .item_wrap .item dt::before {
        width: 18px;
        height: 18px;
    }
    .intro_wrap .item_wrap .item dd {
        font-size: 15px;
    }
    .intro_wrap .item_wrap .item dd + dd {
        margin-top: 8px;
    }
}

@media (max-width: 450px) {
    .intro .tit_wrap p br {
        display: none;
    }
}

/* map */
.map_wrap .map {
    width: 100%;
    aspect-ratio: 1400 / 600;
}
.root_daum_roughmap .wrap_map {
    height: 100% !important;
}
.map_wrap .cont {
    display: none;
}

.map_wrap .roughmap_maker_label {
    border: none;
}
.map_wrap .roughmap_maker_label .roughmap_lebel_text {
    background-color: #222;
    color: #fff;
    width: 208px;
    height: 52px;
    border-radius: 0;
    font-size: 18px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.map_wrap .roughmap_maker_label:after {
    background-image: none;
    content: "";
    position: absolute;
    left: 50%;
    bottom: -9px;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 10px solid #222;
    margin: 0;
}
.map_info {
    margin-top: 48px;
}
.map_info .tit {
    font-size: 36px;
    font-weight: 700;
    margin-bottom: 20px;
}
.map_info .txt {
    font-size: 20px;
    font-weight: 500;
    color: #333;
}
.map_info .item_wrap {
    margin-top: 56px;
    display: flex;
    gap: 32px;
}
.map_info .item_wrap .item {
    width: calc((100% - 32px * 2) / 3);
    border-top: 2px solid #000;
    padding-top: 28px;
}
.map_info .item_wrap .item dt {
    font-size: 22px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
}
.map_info .item_wrap .item dt::before {
    width: 22px;
    height: 22px;
    content: "";
    display: inline-block;
    background: url(../images/ic_map.svg) center center no-repeat;
    background-size: contain;
    vertical-align: middle;
}
.map_info .item_wrap .item:nth-child(2) dt::before {
    background: url(../images/ic_tell.svg) center center no-repeat;
    background-size: contain;
}
.map_info .item_wrap .item:nth-child(3) dt::before {
    background: url(../images/ic_fax.svg) center center no-repeat;
    background-size: contain;
}
.map_info .item_wrap .item:nth-child(4) dt::before {
    background: url(../images/ic_park.svg) center center no-repeat;
    background-size: contain;
}
.map_info .item_wrap .item dd {
    font-size: 18px;
    font-weight: 500;
    color: #333;
}

.map_info .item_box {
    margin-top: 64px;
    padding: 32px;
    border: 1px solid #ddd;
}
.map_info .item_box .item + .item {
    margin-top: 26px;
}
.map_info .item_box .tit {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    font-size: 20px;
    font-weight: 700;
    color: #000;
}
.map_info .item_box .tit::before {
    content: "";
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.map_info .item_box .tit.bus::before {
    background-image: url(../images/ic_bus.svg);
}

.map_info .item_box .tit.subway::before {
    background-image: url(../images/ic_subway.svg);
}

.map_info .item_box .tit.car::before {
    background-image: url(../images/ic_car.svg);
}

.map_info .item_box .tit.parking::before {
    background-image: url(../images/ic_park.svg);
}
.map_info .item_box .item_desc li {
    position: relative;
    padding-left: 14px;
    font-size: 17px;
    font-weight: 500;
    color: #333;
    line-height: 1.4;
}
.map_info .item_box .item_desc li + li{
    margin-top: 6px;
}
.map_info .item_box .item_desc li::before {
    content: "·";
    position: absolute;
    left: 0;
    top: 0;
    color: #333;
    font-weight: 700;
}

@media (max-width: 1280px) {
    .map_wrap .roughmap_maker_label .roughmap_lebel_text {
        width: 156px;
        height: 36px;
        font-size: 15px;
    }
    .map_info {
        margin-top: 24px;
    }
    .map_info .tit {
        font-size: 22px;
        margin-bottom: 12px;
    }
    .map_info .txt {
        font-size: 15px;
        line-height: 22px;
    }
    .map_info .item_wrap {
        margin-top: 32px;
        flex-direction: column;
    }
    .map_info .item_wrap .item {
        width: 100%;
        padding-top: 16px;
    }
    .map_info .item_wrap .item dt {
        font-size: 18px;
        margin-bottom: 10px;
    }
    .map_info .item_wrap .item dt::before {
        width: 18px;
        height: 18px;
    }
    .map_info .item_wrap .item dd {
        font-size: 15px;
    }

    .map_info .item_box {
        margin-top: 40px;
        padding: 20px 16px;
    }
    .map_info .item_box .item + .item {
        margin-top: 20px;
    }
    .map_info .item_box .tit {
        margin-bottom: 12px;
        font-size: 16px;
    }
    .map_info .item_box .tit::before {
        width: 16px;
        height: 16px;
        flex: 0 0 16px;
    }
    .map_info .item_box .item_desc li {
        padding-left: 10px;
        font-size: 15px;
    }
    .map_info .item_box .item_desc li + li{
        margin-top: 4px;
    }
    .map_info .item_box .item_desc li b{
        display: block;
    }
}

/* etiquette */
.etiquette .item_wrap {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.etiquette .item_wrap .item {
    position: relative;
    padding: 40px;
    border: 1px solid #ddd;
    min-height: 330px;
}
.etiquette .item_wrap .item h3 {
    font-size: 26px;
    line-height: 36px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}
.etiquette .item_wrap .item h3::after {
    content: "";
    width: 64px;
    height: 64px;
    display: block;
    background: url(../images/etiquette1.png) no-repeat center center;
    background-size: contain;
    flex-shrink: 0;
}
.etiquette .item_wrap .item:nth-child(2) h3::after {
    background: url(../images/etiquette2.png) no-repeat center center;
    background-size: contain;
}
.etiquette .item_wrap .item:nth-child(3) h3::after {
    background: url(../images/etiquette3.png) no-repeat center center;
    background-size: contain;
}
.etiquette .item_wrap .item:nth-child(4) h3::after {
    background: url(../images/etiquette4.png) no-repeat center center;
    background-size: contain;
}
.etiquette .item_wrap .item:nth-child(5) h3::after {
    background: url(../images/etiquette5.png) no-repeat center center;
    background-size: contain;
}
.etiquette .item_wrap .item:nth-child(6) h3::after {
    background: url(../images/etiquette6.png) no-repeat center center;
    background-size: contain;
}
.etiquette .item_wrap .item p {
    font-size: 18px;
    line-height: 28px;
    color: #333;
    font-weight: 500;
}

@media (max-width: 1600px) {
    .etiquette .item_wrap {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .etiquette .item_wrap .item {
        min-height: 280px;
    }
}

@media (max-width: 1280px) {
    .etiquette .item_wrap {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 8px;
    }
    .etiquette .item_wrap .item {
        padding: 20px;
        min-height: auto;
    }
    .etiquette .item_wrap .item h3::after {
        width: 40px;
        height: 40px;
    }
    .etiquette .item_wrap .item h3 {
        font-size: 17px;
        line-height: 24px;
        margin-bottom: 12px;
    }
    .etiquette .item_wrap .item p {
        font-size: 14px;
        line-height: 22px;
    }
}

/* facility */
.facility p {
    font-size: 18px;
    line-height: 28px;
    margin-top: 20px;
    color: #333;
}
.facility .info_wrap {
    display: flex;
    gap: 56px;
    align-items: center;
    margin-bottom: 64px;
}
.facility .info_wrap .img_wrap {
    max-width: 600px;
    max-height: 338px;
    aspect-ratio: 600 / 338;
    width: 100%;
    height: 100%;
    background: url(../images/facility1.png) no-repeat center center;
    background-size: cover;
}
.facility .info_wrap .img_wrap.img2 {
    background: url(../images/facility2.png) no-repeat center center;
    background-size: cover;
}
.facility .info_wrap .img_wrap.img3 {
    background: url(../images/facility3.png) no-repeat center center;
    background-size: cover;
}
.facility .info_wrap .img_wrap.img4 {
    background: url(../images/facility4.png) no-repeat center center;
    background-size: cover;
}
.facility .info_wrap .txt_wrap {
    max-width: 577px;
}
.facility .info_wrap .txt_wrap p {
    margin-top: 32px;
}
.info_list {
    border-top: 2px solid #333;
    display: grid;
    grid-template-columns: 132px 1fr;
}
.info_list dt,
.info_list dd {
    color: #333;
    border-bottom: 1px solid #ddd;
    padding: 24px 0;
    font-size: 18px;
}
.info_list dt {
    font-weight: 700;
}
.info_list dt::before {
    content: "・";
    display: inline-block;
}
.info_list dd {
    font-weight: 500;
}
.facility p + .txt28 {
    margin-top: 56px;
}
.facility p + .info_list {
    margin-top: 40px;
}

.facility .file_list {
    margin-top: 64px;
}
.facility .file_list h3 {
    font-size: 28px;
    font-weight: 700;
    color: #000;
    margin-bottom: 32px;
}
.facility .file_list ul {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
}
.facility .file_list li {
    width: calc((100% - (28px * 5)) / 6);
}
.facility .file_list li a {
    display: block;
    padding: 22px 24px;
    border: 1px solid #555;
    background: #fff url(../images/ic_download_g.svg) no-repeat center right 24px / 16px;
    color: #000;
    font-size: 17px;
    font-weight: 600;
    transition: all 0.2s ease;
}
.facility .file_list li a:hover {
    color: #fff;
    background: #000 url(../images/ic_download_w.svg) no-repeat center right 24px / 16px;
}

@media (max-width: 1280px) {
    .facility .info_wrap {
        flex-direction: column;
        gap: 24px;
        margin-bottom: 32px;
        align-items: flex-start;
    }
    .facility p,
    .facility .info_wrap .txt_wrap p {
        font-size: 15px;
        line-height: 22px;
        margin-top: 12px;
    }
    .info_list {
        grid-template-columns: 78px 1fr;
    }
    .info_list dt {
        font-size: 13px;
        padding: 16px 0;
    }
    .info_list dd {
        font-size: 14px;
        padding: 16px 0;
    }
    .facility .txt28 {
        font-size: 18px;
    }
    .facility p + .txt28 {
        margin-top: 24px;
    }
    .facility p + .info_list {
        margin-top: 32px;
    }

    .facility .file_list {
        margin-top: 32px;
    }
    .facility .file_list h3 {
        font-size: 18px;
        margin-bottom: 24px;
    }
    .facility .file_list ul {
        display: flex;
        flex-wrap: wrap;
        gap: 11px;
    }
    .facility .file_list li {
        width: 162px;
    }
    .facility .file_list li a {
        padding: 12px;
        font-size: 14px;
        background: #fff url(../images/ic_download_g.svg) no-repeat center right 12px / 14px;
    }
    .facility .file_list li a:hover {
        background: #fff url(../images/ic_download_g.svg) no-repeat center right 12px / 14px;
    }
}

/* 공연상세 */
.perform_inner {
    display: flex;
    align-items: flex-start;
    gap: 84px;
}
.perform_info {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 1000px;
}
.exhibit_info {
    max-width: none;
    width: 100%;
}
.perform_side {
    flex: 0 0 320px;
    position: sticky;
    top: 120px;
    max-width: 320px;
    z-index: 10;
}

.summary_card {
    padding-bottom: 56px;
    margin-bottom: 48px;
    border-bottom: 1px solid #ccc;
}
.summary_card .title {
    font-size: 38px;
    font-weight: 700;
    margin-bottom: 40px;
}
.summary_card .img_wrap {
    display: none;
}
.summary_box {
    background-color: #F6F6F6;
    padding: 32px;
    display: flex;
    gap: 40px;
}
.summary_box .img_wrap {
    display: block;
    flex: 0 0 auto;
    width: 300px;
}
.summary_box .img_wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.summary_box .info_wrap {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 20px;
}
.summary_box .meta {
    padding: 20px 0 0 0;
}

.section_title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 32px;
}
.section .box,
.section .box img {
    width: 100%;
    max-width: 800px;
    margin-bottom: 30px;
}
.perform_inner .btn_group {
    justify-self: center;
    margin-top: 48px;
}

.meta {
    background-color: #f6f6f6;
    padding: 32px 28px;
    display: grid;
    grid-template-columns: 120px 1fr;
    row-gap: 24px;
    font-size: 18px;
}
.meta dt {
    font-weight: 700;
    color: #333;
}
.meta dt::before {
    content: "·";
    display: inline-block;
    margin-right: 4px;
}
.meta dd {
    font-weight: 400;
}
.meta dd span{
    line-height: 1.5;
}

.perform_side .time_wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin: 24px 0 40px;
}
.perform_side .time_wrap .time {
    min-height: 40px;
    padding: 10px;
    border: 2px solid #f4f4f4;
    background: #f4f4f4;
    font-size: 15px;
    font-weight: 500;
    color: #555;
    transition: all 0.3s;
}
.perform_side .time_wrap .time.selected,
.perform_side .time_wrap .time:hover {
    border-color: #000;
    background: #fff;
    font-weight: 600;
    color: #000;
}
.perform_side .btn {
    width: 100%;
    height: 64px;
    font-size: 20px;
    font-weight: 600;
}

/* calendar */
.perform_side .fc .fc-toolbar.fc-header-toolbar {
    border-top: 2px solid #111;
    border-bottom: 2px solid #111;
    padding: 20px 0;
    justify-content: center;
    gap: 20px;
    margin: 0;
}
.perform_side .fc .fc-toolbar-title {
    font-size: 24px;
    font-weight: 800;
}
.perform_side .fc .fc-button {
    background: url(../images/calendar_arrow.png) no-repeat center center / contain;
    border: none;
    width: 24px;
    height: 24px;
    font-size: 0;
    padding: 0;
}
.perform_side .fc .fc-button.fc-prev-button {
    transform: scale(-1);
}
/* ====== 요일 헤더 ====== */
.perform_side .fc .fc-col-header {
    border-bottom: 2px solid #000;
}
.perform_side .fc .fc-col-header-cell {
    background: #fff;
    border-right: 1px solid #ccc;
    box-sizing: border-box;
}
.perform_side .fc .fc-col-header-cell-cushion {
    font-weight: 800;
    font-size: 18px;
    padding: 12px 0;
    color: #666;
}
.perform_side .fc-theme-standard th {
    border: 0;
}
/* ====== 날짜 셀 ====== */
.perform_side .fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {
    display: none;
}
.perform_side .fc .fc-daygrid-day {
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}
.perform_side .fc .fc-daygrid-day-number {
    font-size: 16px;
    font-weight: 700;
    color: #999;
    background-color: #e5e5e5;
    width: 45px;
    height: 45px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.perform_side .fc .fc-daygrid-day.fc-day-past .fc-daygrid-day-number,
.perform_side .fc .fc-day-other .fc-daygrid-day-number {
    color: #999;
    background: #e5e5e5;
}
.perform_side .fc-theme-standard td {
    border: none;
}
.perform_side .fc .fc-scrollgrid {
    border: none;
    border-bottom: 2px solid #111;
}
.fc-day-today {
    background: transparent;
}
.perform_side .fc .fc-daygrid-day:has(.fc-bg-event) .fc-daygrid-day-number {
    background: #fff;
    color: #555;
}
.perform_side .fc .fc-daygrid-day.is-selected-day .fc-daygrid-day-number {
    color: #fff;
    background: #2b2b2b;
}
.perform_side .fc .fc-daygrid-day.fc-day-other,
.perform_side .fc .fc-daygrid-day.fc-day-disabled {
    background: #fff;
}

.perform_side .fc .fc-daygrid-day.fc-day-other .fc-daygrid-day-frame,
.perform_side .fc .fc-daygrid-day.fc-day-disabled .fc-daygrid-day-frame {
    background: #fff;
}

/* 비활성 날짜(과거 또는 오늘이지만 미래 회차 없음) - 시각적 비활성 처리 */
.perform_side .fc .fc-daygrid-day.is-past-day {
    pointer-events: none;
    cursor: not-allowed;
}
.perform_side .fc .fc-daygrid-day.is-past-day .fc-daygrid-day-number {
    color: #c0c0c0 !important;
    background: #f0f0f0 !important;
}
.perform_side .fc .fc-daygrid-day.is-past-day .fc-bg-event,
.perform_side .fc .fc-daygrid-day.is-past-day .fc-daygrid-day-bg {
    display: none !important;
    background: transparent !important;
    opacity: 0 !important;
}

.perform_side .booking_status {
    font-size: 15px;
    text-align: center;
    color: #666;
    margin-bottom: 6px;
    line-height: 1.3;
}
.perform_side .booking_status.blue {
    color: #1d6fad;
    font-weight: 600;
}
.perform_side .booking_status + .btn{
    margin-top: 20px;
}

@media (max-width: 1280px) {
    .perform_info {
        max-width: 100%;
        width: 100%;
    }
    .perform_inner {
        gap: 0;
    }
    .perform_side {
        flex: auto;
        position: static;
    }
    .perform_side .calendar_wrap,
    .perform_side .time_wrap {
        display: none;
    }
    .perform_side .btn_wrap {
        position: fixed;
        top: auto;
        bottom: 0;
        left: 0;
        background-color: #fff;
        padding: 16px 20px;
        width: 100%;
        box-shadow: 0 -2px 6px 0 rgba(0, 0, 0, 0.08);
    }
    .perform_inner .btn_group {
        margin-top: 40px;
    }

    .summary_card {
        padding-bottom: 32px;
        margin-bottom: 24px;
    }
    .summary_card .title {
        font-size: 22px;
        margin-bottom: 20px;
    }
    .summary_card .img_wrap{
        display: block;
        max-width: 335px;
        width: 100%;
        margin: 0 auto;
        border: 1px solid #ccc;
    }
    .summary_card .img_wrap img {
        width: 100%;
    }
    .summary_box {
        display: block;
        padding: 20px;
    }
    .summary_box .img_wrap {
        max-width: 335px;
        width: 100%;
        margin: 0 auto;
    }
    .meta {
        width: 100%;
        padding: 24px 16px;
        font-size: 15px;
        row-gap: 12px;
        grid-template-columns: 95px 1fr;
        margin-top: 16px;
    }
    .section_title {
        font-size: 18px;
        margin-bottom: 20px;
    }
    .perform_side .btn {
        height: 56px;
        font-size: 16px;
    }

    .perform_side .booking_status {
        font-size: 14px;
    }
    .perform_side .fc .fc-daygrid-day-number {
        width: 100%;
    }
}

/* 공연 예매 팝업 */
.reserve_popup {
    padding: 32px;
    min-width: 1060px;
    min-height: 780px;
    border-radius: 0;
}
.reserve_popup .modal_header {
    padding: 0;
    margin-bottom: 40px;
    gap: 10px;
}
.reserve_popup .tit_area {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1;
}
.reserve_popup .modal_header .btn {
    padding: 0;
    min-width: 22px;
    height: 22px;
}
.reserve_popup .modal_header button img {
    width: 48px;
}
.popup_title {
    flex-shrink: 0;
    font-size: 28px;
    font-weight: 700;
    margin-right: 24px;
}
.popup_txt {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 20px;
    font-weight: 700;
    padding-left: 24px;
    border-left: 1px solid #555;
}

.reserve_popup .contents_area {
    display: flex;
    gap: 16px;
    align-items: stretch;
}
.seat_area {
    flex: 1 1 auto;
    width: 720px;
    height: 640px;
    padding: 100px 40px;
    border: 1px solid #555;
    position: relative;
}
.seat_area .stage {
    font-size: 48px;
    font-weight: 700;
    color: #d4d4d4;
    text-align: center;
}
.seat_area .seat_wrap {
    width: 640px;
    height: 326px;
    margin: 32px auto 0;
    transform-origin: top center;
    display: flex;
    justify-content: center;
    padding: 40px 30px;
    background: url(../images/seat_frame.svg) no-repeat center/contain;
}
.seat_area .seat_row {
    display: flex;
    gap: 2px;
    align-items: center;
}
.seat_area .seat_row + .seat_row {
    margin-top: 2px;
}
.seat_area .seat_row.hidden {
    width: 16px;
    height: 16px;
}
.seat_area .seat {
    width: 16px;
    height: 16px;
    border-radius: 1px;
    background-color: #558cd6;
    position: relative;
}
.seat_area .seat:disabled {
    background-color: #e5e5e5;
    cursor: inherit;
}
.seat_area .seat.handicapped {
    background-color: #ccc;
}
.seat_area .seat.handicapped::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 16px;
    background: url(../images/ic_handicapped.png) no-repeat center center;
    background-size: contain;
}
.seat_area .seat.handicapped.front::after {
    top: auto;
    bottom: 100%;
}
.seat_area .seat.hidden {
    background-color: transparent;
    cursor: inherit;
}
.seat_area .seat.selected {
    background-color: #fff !important;
    box-shadow: inset 0 0 0 4px #000;
}
.seat_area .num {
    margin-top: 34px;
}
.seat_area .num span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 13px;
    font-size: 13px;
    color: #333;
    font-weight: 600;
}
.seat_area .num span + span {
    margin-top: 2px;
}
.seat_area .zone_title {
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    color: #333;
    margin-bottom: 16px;
}
.seat_area .zone_title.zone_ka {
    text-align: right;
    padding-right: 22px;
}
.seat_area .zone_title.zone_da {
    text-align: left;
    padding-left: 16px;
}
.seat_grid.zone_ka .seat_row {
    justify-content: flex-end;
}
.seat_grid.zone_na .seat_row.center {
    justify-content: center;
}
.seat_wrap .seat_row.last,
.seat_wrap .num .last {
    margin-bottom: 85px;
}

/* 탭 */
.floor_tabs {
    position: absolute;
    top: 20px;
    right: 20px;
    display: inline-flex;
    z-index: 5;
}
.floor_tab {
    width: 48px;
    height: 48px;
    font-weight: 500;
    font-size: 18px;
    color: #555;
    background: #eee;
}
.floor_tab.is-active,
.floor_tab[aria-selected="true"] {
    background: #000;
    color: #fff;
    font-weight: 700;
}
.floor_tab:focus-visible {
    outline: 3px solid #000;
    outline-offset: 2px;
}
.seat_panel {
    width: 100%;
}

/* side_panel */
.side_panel .panel_wrap {
    font-size: 90%;
}
.reserve_popup .contents_area .side_panel {
    flex: 0 0 260px;
    max-width: 260px;
    width: 260px;
}
.mobile .reserve_popup .contents_area .side_panel {
    flex: 1;
    max-width: none;
    width: 100%;
}
.panel_wrap {
    border: 1px solid #555;
    margin-bottom: 16px;
    height: 560px;
    overflow-y: auto;
}
.panel_wrap:has(.price_con) {
    overflow-y: inherit;
    height: 465px;
}
.panel_head {
    background-color: #efeef6;
    padding: 11px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.panel_title {
    font-size: 17px;
    font-weight: 600;
}
.panel_txt {
    font-size: 15px;
    font-weight: 500;
}
.panel_txt span {
    font-size: 17px;
    font-weight: 700;
    color: #2115c4;
}
.panel_con {
    padding: 16px 20px;
}
.panel_con .select {
    border: 0;
    padding: 0;
    border-radius: 0;
    height: fit-content;
    width: 100%;
    background: url(../images/ic_arrow_down.png) no-repeat center right;
    margin-bottom: 18px;
}
.panel_con .selected_item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 500;
    position: relative;
}
.panel_con .selected_item + .selected_item {
    margin-top: 16px;
}
.selected_remove {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background-color: #333;
    border-radius: 50%;
    font-weight: 400;
    line-height: 1.3;
}

.grade_list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.grade_item {
    display: grid;
    grid-template-columns: 1fr 100px 70px;
    align-items: center;
}
.grade_left {
    display: flex;
    align-items: center;
    gap: 12px;
}
.grade_color {
    width: 10px;
    height: 10px;
}
.grade_name {
    font-size: 15px;
    font-weight: 700;
    color: #333;
}
.grade_price,
.grade_remain {
    font-size: 15px;
    font-weight: 400;
    text-align: right;
}
.grade_price b {
    font-weight: 700;
}
.grade_remain b {
    font-weight: 500;
}

/* 등급 색상 */
.r {
    background: #9355d6 !important;
}
.s {
    background: #f55e5e !important;
}
.a {
    background: #f7cc1e !important;
}
.free {
    background: #00b938 !important;
}
.comn {
    background: #558cd6 !important;
}

.side_panel .btn {
    width: 100%;
    font-size: 18px;
    height: 64px;
    gap: 8px;
}
.side_panel .btn img {
    width: 20px;
    height: 20px;
    transform: scale(-1);
}

/* 좌석 배치도 */
.seat_summary {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 84px));
}

.seat_summary > dt,
.seat_summary > dd {
    margin: 0;
    padding: 0 16px;
}
.seat_summary > dt.total,
.seat_summary > dd.total {
    padding: 0;
}
.seat_summary > dt {
    grid-row: 1;
    font-weight: 400;
    font-size: 17px;
    border-right: 1px solid #e5e5e5;
}
.seat_summary > dd {
    grid-row: 2;
    font-weight: 600;
    font-size: 20px;
    border-right: 1px solid #e5e5e5;
    color: #777;
    padding-top: 8px !important;
}
.seat_summary > dd.total {
    color: #000;
    font-weight: 700;
}
.seat_summary > dt.last,
.seat_summary > dd.last {
    padding-right: 0;
    border-right: 0;
}

.seat_txt {
    text-align: center;
    margin-top: 48px;
}
.seat_txt .desc {
    font-size: 20px;
    font-weight: 600;
}
.seat_txt .desc img {
    vertical-align: bottom;
    margin-right: 8px;
}
.seat_txt .sub_desc {
    font-size: 16px;
    font-weight: 500;
    color: #777;
    margin-top: 12px;
}

.seat_img {
    text-align: center;
    position: relative;
    max-width: 1057px;
    margin: 40px auto 0;
}
.seat_img img {
    width: 100%;
    display: block;
}
.hotspot {
    position: absolute;
    left: calc(var(--x) * 1%);
    top: calc(var(--y) * 1%);
    background: transparent;
    border: 2px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    width: clamp(18px, 3.2%, 32px);
    aspect-ratio: 30.53 / 26.23;
}
.hotspot img {
    display: block;
    width: 100%;
}
.preview {
    position: absolute;
    padding: 40px;
    background: #ddd;
    display: none;
    z-index: 20;
}
.preview img {
    display: block;
    width: 400px;
    height: auto;
}
.preview.is-open {
    display: block;
}

.reserve_popup.is-free {
    min-width: 500px;
    min-height: 715px;
}
.reserve_popup.is-free .contents_area{
    width: 100%;
}
.reserve_popup.is-free .contents_area .side_panel{
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
}
.reserve_popup.is-free .price_title_text{
    font-size: 20px;
}
.reserve_popup.is-free .receipt_dl{
    grid-template-columns: 80px 1fr;
}
.reserve_popup.is-free .receipt_dl dt{
    font-size: 15px;
}
.reserve_popup.is-free .receipt_dl dd{
    font-size: 16px;
}
.reserve_popup.is-free .side_panel .receipt_total span{
    font-size: 16px;
}

@media (max-width: 1280px) {
    .seat_summary {
        grid-template-columns: 48px repeat(3, 56px) 68px;
    }
    .seat_summary > dt.total {
        grid-row: 1;
        border-right: none;
        grid-column: 1 / span 2;
    }
    .seat_summary > dd.total {
        grid-row: 2;
        margin-bottom: 12px;
        border-right: none;
        grid-column: 1 / span 2;
    }
    .seat_summary > dt {
        font-size: 13px;
        grid-row: 3;
        padding: 0 8px;
    }
    .seat_summary > dd {
        font-size: 16px;
        padding-top: 4px !important;
        grid-row: 4;
        padding: 0 8px;
    }
    .seat_summary > dt:nth-child(3),
    .seat_summary > dd:nth-child(4) {
        padding-left: 0;
    }
    .seat_txt {
        margin-top: 40px;
    }
    .seat_txt .desc {
        font-size: 15px;
    }
    .seat_txt .desc img {
        width: 18px;
        margin-right: 2px;
        margin-top: 1px;
        vertical-align: text-top;
    }
    .seat_txt .sub_desc {
        font-size: 14px;
    }
    .seat_img {
        margin: 32px auto 0;
    }
    .preview {
        padding: 16px;
    }
    .preview img {
        width: 180px;
    }
    .selected_remove {
        line-height: 1;
    }
}

/* 가격 선택 */
.reserve_popup.price_step .seat_area {
    padding: 0;
}
.reserve_popup.price_step .seat_area .panel_wrap {
    height: 100%;
    border: 0;
}
.price_list .price_item {
    border-bottom: 1px solid #999;
    padding: 16px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}
.price_list .price_item:first-child {
    padding-top: 0;
}
.price_list .price_item .price_wrap {
    display: flex;
    gap: 40px;
    align-items: center;
}
.price_list .price_item .type {
    font-size: 15px;
    font-weight: 600;
}
.price_list .price_item .price {
    font-size: 15px;
}
.price_list .price_item select {
    border: 1px solid #777;
    border-radius: 0;
    height: 32px;
    width: 96px;
    font-size: 15px;
    padding: 0 12px;
    background: url(../images/ic_arrow_down.png) no-repeat center right 12px / 16px;
}
.price_title {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #999;
}
.price_title_text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.price_con {
    height: 264px;
    overflow: auto;
}
.m_main .price_con {
    height: auto;
}
.m_main .panel_con:has(.price_con) {
    padding: 0;
}
.m_main .panel_wrap:has(.price_con) {
    border: 0;
}
.receipt_dl {
    display: grid;
    grid-template-columns: 65px 1fr;
    row-gap: 16px;
}
.receipt_dl dt {
    font-size: 13px;
    font-weight: 700;
    color: #555;
}
.receipt_dl dd {
    font-size: 14px;
    font-weight: 500;
}
.receipt_dl dd span {
    display: block;
}
.receipt_dl dd span + span {
    margin-top: 8px;
}
.price_con .desc {
    font-size: 13px;
    font-weight: 500;
    color: #555;
    margin-top: 8px;
}

.side_panel .receipt_total {
    border-top: 1px solid #999;
    padding-top: 20px;
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.side_panel .receipt_total span {
    font-size: 15px;
    font-weight: 600;
}
.side_panel .receipt_total strong {
    font-size: 24px;
    font-weight: 700;
}
.side_panel .receipt_total .won {
    font-size: 15px;
    font-weight: 400;
}

.reserve_popup.price_step .btn_area {
    display: flex;
    gap: 8px;
}
.reserve_popup.price_step .btn_area .btn {
    min-width: auto;
}

/* 모바일 헤더 */
.m_header {
    height: 64px;
    width: 100%;
    position: fixed;
    border-bottom: 1px solid #ddd;
    background-color: #fff;
    padding: 18px 20px;
    z-index: 10;
}
.m_header_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.m_back {
    width: 28px;
    height: 28px;
}
.m_back i {
    font-size: 20px;
}
.m_header_title {
    font-size: 18px;
    font-weight: 600;
}
.m_header_spacer {
    width: 28px;
}

.m_main {
    padding: 100px 20px 190px;
}
.m_main .btn_wrap {
    flex: auto;
    position: fixed;
    z-index: 10;
    top: auto;
    bottom: 0;
    left: 0;
    max-width: 100%;
    width: 100%;
    background-color: #fff;
    padding: 16px 20px;
    box-shadow: 0 -2px 6px 0 rgba(0, 0, 0, 0.08);
}
.m_main .page_title {
    font-size: 22px;
    font-weight: 700;
    line-height: 30px;
    margin-bottom: 32px;
}

.m_main .perform_side {
    max-width: 100%;
}
.m_main .perform_side .calendar_wrap {
    display: block;
}
.m_main .fc .fc-toolbar.fc-header-toolbar {
    border-top: 0;
    padding: 4px 0 20px;
}
.m_main .fc .fc-button {
    width: 20px;
    height: 20px;
}
.m_main .fc .fc-toolbar-title {
    font-size: 18px;
}
.m_main .fc .fc-col-header {
    border-bottom: 1px solid #777;
}
.m_main .fc .fc-col-header-cell-cushion {
    font-size: 14px;
    font-weight: 600;
    color: #555;
    padding: 9px 0;
}
.m_main .perform_side .time_wrap {
    display: grid;
    width: 100%;
    margin-bottom: 12px;
}

.m_main .panel_wrap {
    height: auto;
    width: 100%;
}
.m_main .btn {
    width: 100%;
}
.m_main .btn i {
    font-size: 14px;
}

.seat_viewport {
    width: 100%;
    height: 52vh;
    min-height: 340px;
    background: #fff;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    touch-action: none;
}
.seat_viewport .seat_area {
    width: 100%;
    will-change: transform;
    border: 0;
    padding: 0;
    height: 340px;
}
.seat_viewport .seat_area .seat_wrap {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.sheet_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 0 20px;
}
.sheet_toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.sheet_toggle span {
    font-size: 16px;
    font-weight: 600;
}
.sheet_toggle span b {
    color: #2115c4;
}
.sheet_toggle i {
    color: #333;
    font-size: 14px;
    vertical-align: middle;
}
.sheet_clear {
    color: #555;
    font-size: 14px;
}
.sheet_body {
    max-height: 22vh;
    overflow: auto;
    margin-bottom: 12px;
}
.bottom_sheet .selected_item {
    display: grid;
    grid-template-columns: 18px 1fr 24px;
    align-items: center;
    height: 50px;
    position: relative;
}
.bottom_sheet .selected_item .selected_remove {
    padding-bottom: 2px;
}
.bottom_sheet .selected_item .txt {
    font-size: 15px;
    font-weight: 500;
}
.bottom_sheet.is-open .sheet_toggle i {
    transform: rotate(180deg);
    margin-top: -2px;
}

.m_main .price_list .price_item{
    flex-direction: column;
    align-items: flex-start;
}
.m_main .price_list .price_item .price_wrap {
    justify-content: space-between;
    width: 100%;
}
.m_main .price_list .price_item select {
    width: 80px;
    font-size: 14px;
}
.m_main .pay_method_area{
    padding: 16px 0 35px;
    border-top: 1px solid #999;
    margin-top: 40px;
}

/* done_wrap */
.heading_wrap.done_wrap {
    margin-top: 50px;
    margin-bottom: 0;
}
.done_wrap {
    text-align: center;
    margin-bottom: 64px;
}
.done_wrap img {
    width: 72px;
    margin: 0 auto 16px;
}
.done_wrap .main_txt {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 12px;
}
.done_wrap .sub_txt {
    font-size: 16px;
    font-weight: 500;
    color: #555;
}
.section_wrap:has(.done_wrap){
    min-height: calc(100vh - 359px);
}

@media (max-width: 1280px) {
    .done_wrap {
        margin-bottom: 32px;
    }
    .done_wrap img {
        width: 40px;
        margin: 0 auto 16px;
    }
    .done_wrap .main_txt {
        font-size: 18px;
        margin-bottom: 8px;
    }
    .done_wrap .sub_txt {
        font-size: 14px;
    }
}

/* ===== 공연리스트 ===== */
.perform_list,
.perform_year{
    margin-top: 72px;
}
.perform_cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 104px;
}
.perform_card {
    display: grid;
    grid-template-columns: 288px 1fr;
    gap: 40px;
    align-items: stretch;
}
.perform_poster {
    position: relative;
    width: 288px;
    height: 404px;
    border: 1px solid #ccc;
}
.perform_poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.perform_badge {
    position: absolute;
    top: -1px;
    left: -1px;
    z-index: 2;
    width: 60px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
}
.perform_badge.is-show {
    background: #f55e5e;
}
.perform_badge.is-exhibit {
    background: #558cd6;
}

.perform_body {
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.perform_title {
    margin-bottom: 24px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
}
.perform_title::after {
    content: "";
    display: block;
    height: 2px;
    background: #000;
    width: 100%;
    margin-top: 12px;
}

.perform_meta {
    display: grid;
    grid-template-columns: 74px 1fr;
    column-gap: 24px;
    row-gap: 12px;
    font-size: 18px;
}
.perform_meta dt {
    font-weight: 700;
    color: #555;
}
.perform_meta dd {
    font-weight: 500;
    color: #333;
}
.contact_list {
    margin: 12px 0 0;
}
.contact_list li {
    margin-bottom: 8px;
    color: #000;
    overflow-wrap: anywhere;
}

.perform_cta {
    margin-top: auto;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    border: 1px solid #cfcfcf;
    background: #fff;
    color: #333;
    font-size: 15px;
    font-weight: 500;
    transition: all 0.2s;
}
.perform_card:hover .perform_cta {
    background-color: #000;
    border-color: #000;
    color: #fff;
}
.perform_list .data_none {
    padding-top: 120px;
    text-align: center;
}
.perform_list .data_none .img {
    width: 72px;
    height: 72px;
    background: url(../images/data_none.png) no-repeat center center;
    background-size: contain;
    margin: 0 auto 16px;
}
.perform_list .data_none .main_txt {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 12px;
    color: #000;
}
.perform_list .data_none .sub_txt {
    font-size: 16px;
    font-weight: 500;
    color: #555;
}

/* 어두운 오버레이 */
.perform_poster.soldout::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.7);
    z-index: 1;
}
.soldout_badge {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #666;
    color: #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 600;
}

@media (max-width: 1280px) {
    .perform_cards {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .perform_card {
        display: block;
    }
    .perform_poster {
        width: 100%;
        max-width: 200px;
        height: 280px;
        margin: 0 auto 16px;
    }
    .perform_info {
        display: block;
        padding: 0 0;
    }
    .perform_title {
        font-size: 18px;
        margin-bottom: 0;
    }
    .perform_meta {
        margin: 16px 0 0;
        display: grid;
        grid-template-columns: 54px 1fr;
        column-gap: 20px;
        row-gap: 8px;
        font-size: 14px;
    }
    .perform_cta {
        height: 36px;
        margin-top: 30px;
        font-size: 13px;
    }

    .perform_list .data_none {
        padding-top: 64px;
    }
    .perform_list .data_none .img {
        width: 40px;
        height: 40px;
        margin: 0 auto 12px;
    }
    .perform_list .data_none .main_txt {
        font-size: 18px;
        margin-bottom: 8px;
    }
    .perform_list .data_none .sub_txt {
        font-size: 14px;
    }
}

/* ====== 공연/전시 월간일정 ====== */
.exhibitionCalendar {
    --muted: #777;
    --text: #111;
    --bg: #fff;
    --dot-show: #f55e5e; /* 공연 */
    --dot-exhibit: #558cd6; /* 전시 */
    background: var(--bg);
    position: relative;
}
.exhibitionCalendar .legend {
    position: absolute;
    right: 0;
    top: 40px;
    display: flex;
    align-items: center;
    gap: 32px;
}
.exhibitionCalendar .legend .legend_item {
    display: flex;
    align-items: center;
    gap: 8px;
}
.exhibitionCalendar .legend .legend_dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
}
.dot_red {
    background-color: var(--dot-show);
}
.dot_blue {
    background-color: var(--dot-exhibit);
}
.exhibitionCalendar .legend .text {
    font-size: 18px;
    font-weight: 500;
}

.exhibitionCalendar .fc .fc-toolbar,
.year_nav{
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 40px;
    margin: 0 0 24px 0;
}
.exhibitionCalendar .fc .fc-toolbar-title,
.year_nav .year_text{
    font-size: 48px;
    color: #000;
    font-family: "songmyung";
}
.exhibitionCalendar .fc .fc-button,
.year_nav .year_btn{
    width: 40px;
    height: 40px;
    padding: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
    color: #555;
    display: flex;
    align-items: center;
    justify-content: center;
}
.year_nav .year_btn i{
    font-size: 24px;
}
.exhibitionCalendar .fc .fc-button:hover {
    background: #f5f5f5;
}
.exhibitionCalendar .fc .fc-button:focus {
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}
.exhibitionCalendar .fc .fc-button .fc-icon {
    font-size: 36px;
}
.exhibitionCalendar .fc .fc-toolbar-chunk:first-child,
.exhibitionCalendar .fc .fc-toolbar-chunk:last-child {
    display: flex;
    align-items: center;
    gap: 10px;
}

.exhibitionCalendar .fc .fc-col-header {
    background: #f6f6f6;
    border-top: 2px solid #000;
}
.exhibitionCalendar .fc th,
.exhibitionCalendar .fc .fc-scroller-harness,
.exhibitionCalendar .fc .fc-col-header-cell {
    border: 0;
}
.exhibitionCalendar .fc .fc-col-header-cell-cushion {
    height: 48px;
    font-size: 17px;
    color: #333;
    font-weight: 700;
    display: flex;
    padding-left: 16px;
    justify-content: flex-start;
    align-items: center;
    border-right: 1px solid #ddd;
}
.exhibitionCalendar .fc .fc-col-header-cell:last-child .fc-col-header-cell-cushion {
    border-right: 0;
}

.exhibitionCalendar .fc .fc-scrollgrid,
.exhibitionCalendar .fc .fc-scrollgrid-section > td,
.exhibitionCalendar .fc .fc-daygrid-body {
    border: 0;
}
.exhibitionCalendar .fc .fc-view-harness {
    border-bottom: 1px solid #000;
}
.exhibitionCalendar .fc .fc-daygrid-day {
    border: 1px solid #ddd;
}

.exhibitionCalendar .fc .fc-daygrid-day-frame {
    min-height: 156px;
    padding: 16px;
}

.exhibitionCalendar .fc .fc-daygrid-day-top {
    flex-direction: row;
}
.exhibitionCalendar .fc .fc-daygrid-day-number {
    font-size: 18px;
    font-weight: 700;
    color: #555;
}
.exhibitionCalendar .fc .fc-day-other .fc-daygrid-day-number {
    color: #b9b9b9;
}

.exhibitionCalendar .fc .fc-daygrid-event {
    border: 0;
    background: transparent;
    padding: 0;
    margin: 6px 0 0 0;
}
.exhibitionCalendar .fc .fc-daygrid-event-harness {
    margin-top: 4px;
}
.exhibitionCalendar .fc .fc-event-title {
    font-size: 13px;
    font-weight: 600;
    color: #222;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
#exhibitionCalendar .fc-daygrid-event,
#exhibitionCalendar a.fc-daygrid-event {
    max-width: 100%;
    overflow: hidden;
}
#exhibitionCalendar .fc-event-main,
#exhibitionCalendar .fc-event-main-frame,
#exhibitionCalendar .fc-event-title-container {
    min-width: 0;
}
#exhibitionCalendar .fc-event-title {
    display: block;
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 16px;
    font-weight: 500;
}
.exhibitionCalendar .fc .fc-daygrid-event .fc-event-main {
    display: flex;
    align-items: center;
    gap: 6px;
}

.exhibitionCalendar .fc .fc-daygrid-event .fc-event-main::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    flex: 0 0 auto;
    background: var(--dot-show);
}
.exhibitionCalendar .fc .fc-daygrid-event.is-exhibit .fc-event-main::before {
    background: var(--dot-exhibit);
}
.exhibitionCalendar .fc a.fc-event {
    text-decoration: none;
}

.cal_legend {
    position: absolute;
    top: 18px;
    right: 18px;
    display: flex;
    gap: 18px;
    align-items: center;
    font-size: 14px;
    font-weight: 700;
    color: #111;
}
.cal_legend .item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.cal_legend .dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
}

/* ===== Hover Popover ===== */
.fc-hover-pop {
    position: absolute;
    right: 0;
    z-index: 9;
    width: 560px;
    height: 345px;
    pointer-events: auto;
}
.fc-hover-pop .pop_card {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 28px;
    padding: 32px;
    background: #fff;
    border: 1px solid #000;
}
.fc-hover-pop .pop_media {
    width: 200px;
    height: 281px;
    overflow: hidden;
}
.fc-hover-pop .pop_media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fc-hover-pop .no_poster {
    width: 100%;
    height: 100%;
    background: #ddd;
}

.fc-hover-pop .pop_body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.fc-hover-pop .pop_title {
    font-size: 20px;
    font-weight: 700;
    color: #000;
    margin-bottom: 20px;
}
.fc-hover-pop .pop_meta {
    margin: 0;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 20px;
    row-gap: 10px;
    font-size: 16px;
}
.fc-hover-pop .pop_meta dt {
    font-weight: 700;
    color: #555;
}
.fc-hover-pop .pop_meta dd {
    color: #333;
    font-weight: 500;
}
.fc-hover-pop .pop_btn {
    margin-top: auto;
    align-self: flex-start;
    padding: 11px;
    width: 100%;
    background: #fff;
    border: 1px solid #ccc;
    font-weight: 500;
    color: #333;
    font-size: 15px;
    text-align: center;
    transition: all 0.2s;
}
.fc-hover-pop .pop_btn:hover {
    border: 1px solid #000;
}

.rental_calendar .fc .fc-daygrid-more-link {
    font-size: 12px;
    font-weight: 600;
    color: #555;
    margin-top: 10px;
}

.rental_calendar .fc .fc-popover {
    border: 1px solid #ddd;
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    overflow: hidden;
}

.rental_calendar .fc .fc-popover-header {
    padding: 10px 12px;
    background: #f8f8f8;
    border-bottom: 1px solid #eee;
}

.rental_calendar .fc .fc-popover-title {
    font-size: 14px;
    font-weight: 700;
    color: #222;
}

.rental_calendar .fc .fc-popover-body {
    padding: 10px;
    background: #fff;
}

.rental_calendar .fc .is-closed-day {
    background: #fff8f8;
}

.rental_calendar .fc .is-selected-day {
    background: #2f2f2f;
}

.rental_calendar .fc .is-selected-day .fc-day-num {
    color: #fff;
    font-weight: 700;
}
.rental_calendar .fc-more-popover-misc{
    display: none;
}
.rental_calendar .fc-popover-close.fc-icon.fc-icon-x{
    line-height: 2px;
}
.rental_calendar .fc .fc-daygrid-body-natural .fc-daygrid-day-events{
    margin-bottom: 0;
}

.fc-event{
    background: transparent;
    border: none;
}

@media (max-width: 1280px) {
    .exhibitionCalendar .fc .fc-toolbar,
    .year_nav{
        gap: 12px;
        margin-bottom: 32px;
    }
    .exhibitionCalendar .fc .fc-toolbar-title,
    .year_nav .year_text{
        font-size: 28px;
    }
    .exhibitionCalendar .fc .fc-button,
    .year_nav .year_btn{
        width: 20px;
        height: 20px;
    }
    .year_nav .year_btn i{
        font-size: 16px;
    }
    .exhibitionCalendar .fc .fc-button .fc-icon {
        font-size: 18px;
    }
    .exhibitionCalendar .fc-list-table {
        border-top: 2px solid #000;
    }
    .exhibitionCalendar .fc-list-event-time {
        display: none !important;
    }
    .exhibitionCalendar .fc-theme-standard td,
    .exhibitionCalendar .fc-theme-standard th,
    .exhibitionCalendar .fc-theme-standard .fc-list {
        border: 0;
    }
    .exhibitionCalendar .fc-theme-standard .fc-list-day-cushion {
        background-color: #f6f6f6;
        height: 40px;
        display: flex;
        align-items: center;
        gap: 0;
    }
    .exhibitionCalendar .fc .fc-list-day-side-text,
    .exhibitionCalendar .fc-direction-ltr .fc-list-day-text {
        text-transform: uppercase;
        font-size: 16px;
        font-weight: 700;
        color: #000;
    }
    .exhibitionCalendar .fc .fc-list-day-side-text::before {
        content: "(";
    }
    .exhibitionCalendar .fc .fc-list-day-side-text::after {
        content: ")";
    }
    .exhibitionCalendar .fc .fc-list-table .fc-list-event-graphic {
        display: none;
    }
    /* listMonth 제목 영역을 flex로 만들어 점+텍스트 정렬 */
    .exhibitionCalendar .fc .fc-list-event-title {
        min-width: 0;
    }

    .exhibitionCalendar .fc .fc-list-event-title {
        display: inline-flex;
        align-items: flex-start;
        gap: 6px;
        min-width: 0;
        max-width: 100%;
    }

    .exhibitionCalendar .fc .fc-list-event-title::before {
        content: "";
        width: 7px;
        height: 7px;
        border-radius: 999px;
        flex: 0 0 auto;
        background: var(--dot-show);
        margin-top: 5px;
    }

    .exhibitionCalendar .fc .fc-list-event.is-exhibit .fc-list-event-title::before {
        background: var(--dot-exhibit);
    }
    .exhibitionCalendar .fc .fc-list-table .fc-list-event-title {
        padding: 16px 8px;
        font-size: 15px;
        color: #333;
        font-weight: 500;
    }
    .exhibitionCalendar .fc-list-event + .fc-list-event {
        border-top: 1px solid #ddd;
    }

    .exhibitionCalendar .legend {
        gap: 16px;
        top: 6px;
    }
    .exhibitionCalendar .legend .text {
        font-size: 14px;
    }
    .fc-hover-pop {
        display: none;
    }
}

/* =========================
   기본 테이블 (데스크톱)
========================= */

.schedule_table {
    border-top: 2px solid #222;
    border-bottom: 1px solid #222;
}

.schedule_table th:nth-child(1),
.schedule_table th:nth-child(5) {
    width: 200px;
}
.schedule_table th:nth-child(2),
.schedule_table th:nth-child(3) {
    width: 160px;
}
.schedule_table th:nth-child(4) {
    width: auto;
}
.schedule_table thead th {
    background: #f6f6f6;
    font-weight: 700;
    text-align: center;
    height: 60px;
    border-right: 1px solid #ddd;
    font-size: 16px;
    color: #555;
}
.schedule_table thead th:last-child {
    border-right: none;
}
.schedule_table tbody td {
    padding: 26px 8px;
    border-top: 1px solid #ddd;
    border-right: 1px solid #ddd;
    text-align: center;
    font-size: 18px;
    color: #333;
    font-weight: 500;
}
.schedule_table tbody td:last-child {
    border-right: none;
}
.schedule_table tbody td.month {
    font-size: 26px;
    font-weight: 600;
}
.schedule_table tbody td a:hover {
    border-bottom: 1px solid #000;
}

.schedule_table .month_row {
    display: none;
}
.schedule_table .data_row:has(.month) td {
    border-top: none;
}
.schedule_table .data_row.month_start td {
    border-top: 1px solid #999;
}
.schedule_table tbody tr:last-child td {
    border-bottom: none;
}
.schedule_table .data_none {
    font-size: 16px;
    color: #999;
}

@media (max-width: 1280px) {
    .schedule_table,
    .schedule_table tbody,
    .schedule_table tr,
    .schedule_table td {
        display: block;
        width: 100%;
    }
    .schedule_table thead,
    .schedule_table tbody td.month {
        display: none;
    }
    .schedule_table .month_row {
        display: block;
    }
    .schedule_table .month_row td {
        background: #f6f6f6;
        font-size: 16px;
        font-weight: 700;
        padding: 10px 12px;
        text-align: left;
    }
    .schedule_table .data_row {
        padding: 20px 12px;
        border-bottom: 1px solid #ddd;
    }
    .schedule_table .data_row td {
        border: none;
        padding: 0;
        text-align: left;
    }
    .schedule_table .data_row td.type,
    .schedule_table .data_row td.date {
        display: inline;
        font-size: 14px;
        color: #333;
        font-weight: 500;
    }
    .schedule_table .data_row td.date::before {
        content: attr(data-month) ".";
    }
    .schedule_table .data_row td.date::after {
        content: " ";
        display: inline-block;
        width: 2px;
    }
    .schedule_table .data_row td.title a {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 15px;
        font-weight: 600;
        margin: 8px 0;
    }
    .schedule_table .data_row td.place {
        font-size: 13px;
        font-weight: 500;
        color: #555;
    }
    .schedule_table .data_row.month_start td {
        border: none;
    }
}

/* 대관신청 */
.step_wrap {
    padding-bottom: 72px;
    margin-bottom: 65px;
    border-bottom: 1px solid #000;
}
.step_wrap:has(.required_note) {
    padding-bottom: 24px;
    margin-bottom: 40px;
}
.step_wrap ol {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 37px;
}
.step_wrap ol li {
    text-align: center;
    width: 110px;
    line-height: 1;
}
.step_wrap .step_num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 2px solid #ddd;
    background-color: #fff;
    font-size: 20px;
    font-weight: 500;
    color: #555;
    margin: 0 auto 16px;
    position: relative;
}
.step_wrap li.on .step_num {
    background-color: #333;
    border-color: #333;
    color: #fff;
    font-weight: 700;
}
.step_wrap .step_num::after {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(100% + 7px);
    transform: translateY(-50%);
    width: 84px;
    height: 6px;
    background: url(../images/step_dot.png) no-repeat center center;
}
.step_wrap li:last-child .step_num::after {
    display: none;
}
.step_wrap .step_txt {
    font-size: 20px;
    font-weight: 500;
    color: #555;
}
.step_wrap li.on .step_txt {
    font-weight: 700;
    color: #000;
}

/* facility grid */
.facility_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 42px;
}
.facility_card {
    display: block;
    border: 1px solid #ccc;
}
.facility_image {
    aspect-ratio: 219 / 185;
    width: 100%;
    overflow: hidden;
}
.facility_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.facility_body {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 40px 32px;
}
.facility_title {
    font-size: 22px;
    font-weight: 600;
    color: #000;
    flex: 1;
    margin-right: 20px;
}
.facility_button {
    padding: 0 20px;
    width: 160px;
    height: 48px;
    border: 1px solid #555;
    font-size: 16px;
    color: #333;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all 0.2s;
}
.facility_button img {
    width: 18px;
}
.facility_card:hover .facility_button {
    background: #111;
    color: #fff;
    border-color: #111;
}
.facility_card:hover .facility_button img {
    filter: brightness(100);
}
.facility_card:focus-visible {
    outline: 3px solid #1a73e8;
    outline-offset: 4px;
}

@media screen and (max-width: 1280px) {
    .step_wrap,
    .step_wrap:has(.required_note) {
        padding-bottom: 32px;
        margin-bottom: 24px;
    }
    .step_wrap ol {
        gap: 13px;
    }
    .step_wrap ol li {
        width: auto;
    }
    .step_wrap .step_num {
        width: 32px;
        height: 32px;
        font-size: 13px;
        margin: 0 auto 8px;
    }
    .step_wrap .step_num::after {
        display: none;
    }
    .step_wrap .step_txt {
        font-size: 13px;
    }

    .facility_list {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
    .facility_body {
        padding: 20px;
    }
    .facility_title {
        font-size: 16px;
    }
    .facility_button {
        padding: 0 12px;
        width: 120px;
        height: 40px;
        font-size: 13px;
    }
    .facility_button img {
        width: 14px;
    }
}

@media screen and (max-width: 768px) {
    .facility_list {
        grid-template-columns: 1fr;
    }
}

/* calendar_step */
.rental_calendar {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 360px;
    gap: 42px;
    align-items: start;
}
.rental_calendar .panel_area {
    padding: 40px;
    border: 1px solid #ccc;
    height: auto;
}
.rent_label {
    font-size: 18px;
    font-weight: 700;
    color: #000;
    margin-bottom: 12px;
    display: block;
}
.rent_select {
    height: 40px;
    border: none;
    border-radius: 0;
    width: 100%;
    display: block;
    background: #f4f4f4 url(../images/ic_arrow_down.png) no-repeat center right 16px / 18px;
    font-size: 16px;
    cursor:pointer;
}
.rent_select_readonly {
    appearance: none;
    -webkit-appearance: none;
    background: #f4f4f4;
    pointer-events: none;
}
.rent_item + .rent_item {
    margin-top: 32px;
}
.rental_calendar .panel_area .btn {
    margin-top: 64px;
    width: 100%;
}

.rental_calendar .fc .fc-toolbar {
    align-items: center;
    justify-content: flex-start;
    gap: 40px;
    margin: 0 0 24px 0;
}
.rental_calendar .fc .fc-toolbar-title {
    font-size: 48px;
    color: #000;
    font-family: "songmyung";
}
.rental_calendar .fc .fc-button {
    width: 40px;
    height: 40px;
    padding: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
    color: #555;
    display: flex;
    align-items: center;
    justify-content: center;
}
.rental_calendar .fc .fc-button:hover {
    background: #f5f5f5;
}
.rental_calendar .fc .fc-button:focus {
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}
.rental_calendar .fc .fc-button .fc-icon {
    font-size: 36px;
}
.rental_calendar .fc .fc-toolbar-chunk:first-child,
.rental_calendar .fc .fc-toolbar-chunk:last-child {
    display: flex;
    align-items: center;
    gap: 10px;
}

.rental_calendar .fc .fc-col-header {
    background: #f6f6f6;
    border-top: 2px solid #000;
}
.rental_calendar .fc th,
.rental_calendar .fc .fc-scroller-harness,
.rental_calendar .fc .fc-col-header-cell {
    border: 0;
}
.rental_calendar .fc .fc-col-header-cell-cushion {
    height: 48px;
    font-size: 17px;
    color: #333;
    font-weight: 700;
    display: flex;
    padding-left: 16px;
    justify-content: flex-start;
    align-items: center;
    border-right: 1px solid #ddd;
    text-transform: uppercase;
}
.rental_calendar .fc .fc-col-header-cell:last-child .fc-col-header-cell-cushion {
    border-right: 0;
}

.rental_calendar .fc .fc-scrollgrid,
.rental_calendar .fc .fc-scrollgrid-section > td,
.rental_calendar .fc .fc-daygrid-body {
    border: 0;
}
.rental_calendar .fc .fc-view-harness {
    border-bottom: 1px solid #000;
}
.rental_calendar .fc .fc-daygrid-day {
    border: 1px solid #ddd;
}

.rental_calendar .fc .fc-daygrid-day-frame {
    min-height: 156px;
    padding: 16px;
    cursor: pointer;
}

.rental_calendar .fc .fc-daygrid-day-top {
    flex-direction: row;
}
.rental_calendar .fc .fc-daygrid-day-number {
    font-size: 18px;
    font-weight: 700;
    color: #555;
}
.rental_calendar .fc .fc-day-other .fc-daygrid-day-number {
    color: #b9b9b9;
}
.rental_calendar .fc .is-selected-day {
    background: #333 !important;
    color: #fff;
}
.rental_calendar .fc .is-selected-day .fc-daygrid-day-number {
    color: #fff;
}

.rental_calendar .fc .is-range-start,
.rental_calendar .fc .is-range-end {
    background: #333 !important;
}
.rental_calendar .fc .is-range-start .fc-daygrid-day-number,
.rental_calendar .fc .is-range-end .fc-daygrid-day-number {
    color: #fff;
}
.rental_calendar .fc .is-range-mid {
    background: #333 !important;
}
.rental_calendar .fc .is-range-mid .fc-daygrid-day-number {
    color: #fff;
}
.rental_calendar .fc .fc-day-today {
    background: #E3E0F5;
}

.rental_calendar .fc .fc-day-past .fc-daygrid-day-frame,
.rental_calendar .fc .fc-day-disabled .fc-daygrid-day-frame {
    background: #e5e5e5;
    cursor: default;
    height: 100%;
}
.rental_calendar .fc .fc-day-past .fc-daygrid-day-number,
.rental_calendar .fc .fc-day-disabled .fc-daygrid-day-number {
    color: #999;
    cursor: default;
}
.rental_calendar .fc .is-closed-day {
    background: #f5f5f5 !important;
    cursor: not-allowed;
}
.rental_calendar .fc .is-closed-day .fc-day-num,
.rental_calendar .fc .is-closed-day .fc-daygrid-day-number {
    color: #bbb;
}
/* 공휴일/휴관일 이벤트 바 스타일 */
.rental_calendar .fc .fc-daygrid-event-harness {
    margin: 2px 4px;
}
.rental_calendar .fc .fc-daygrid-block-event {
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
}
.rental_calendar .fc .fc-daygrid-block-event .fc-event-title,
.rental_calendar .fc .fc-daygrid-block-event .fc-event-main {
    padding: 0;
    font-weight: 600;
}
.rental_calendar .fc .fc-daygrid-block-event .fc-event-time {
    display: none;
}
.rental_calendar .fc .fc-daygrid-dot-event {
    display: none !important;
}
.rental_calendar .fc .fc-daygrid-event-dot {
    display: none !important;
}
.rental_calendar .fc .fc-event-main::before,
.rental_calendar .fc .fc-event::before {
    display: none !important;
}
.rental_calendar .fc .fc-day-reason {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.2;
    color: #c45a6b;
    word-break: keep-all;
}
.rental_calendar .fc .is-disabled-day {
    background: #f6f6f6 !important;
    cursor: not-allowed;
}
.rental_calendar .fc .is-disabled-day .fc-day-num,
.rental_calendar .fc .is-disabled-day .fc-daygrid-day-number {
    color: #b8b8b8 !important;
}

.rent_item .radio_wrap {
    display: flex;
    gap: 5px;
}
#timeCheckboxGroup {
    flex-direction: column;
    gap: 8px;
}
#timeCheckboxGroup .seat_option {
    text-align: left;
}
.seat_floor {
    display: flex;
    gap: 12px;
    border: 0;
    padding: 0;
}
.seat_option {
    position: relative;
    width: 100%;
    text-align: center;
    cursor: pointer;
}
.seat_option input {
    position: absolute;
    opacity: 0;
    width: 100%;
    cursor: pointer;
}
.seat_option span {
    display: block;
    padding: 11px;
    background: #f4f4f4;
    font-size: 15px;
    color: #555;
    font-weight: 500;
    border: 2px solid transparent;
}
.seat_option input:checked + span {
    background: #fff;
    border: 2px solid #000;
    font-weight: 600;
    color: #000;
}
.sub_label {
    font-size: 14px;
    color: #555;
    font-weight: 700;
    margin-bottom: 8px;
    display: block;
}
.rent_select + .sub_label {
    margin-top: 16px;
}

.rental_calendar .btn_group {
    margin-top: 64px;
}
.rental_calendar .btn_group .btn {
    min-width: 200px;
}

@media screen and (max-width: 1280px) {
    .rental_calendar {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .rental_calendar .panel_area {
        padding: 0;
        border: none;
    }
    .rental_calendar .btn_group {
        display: none;
    }
    .rent_label {
        font-size: 16px;
        margin-bottom: 8px;
    }
    .rent_item + .rent_item {
        margin-top: 20px;
    }
    .rental_calendar .btn_wrap {
        position: fixed;
        bottom: 0;
        left: 0;
        background-color: #fff;
        padding: 16px 20px;
        width: 100%;
        box-shadow: 0 -2px 6px 0 rgba(0, 0, 0, 0.08);
        z-index: 100;
    }
    .rental_calendar .panel_area .btn {
        margin-top: 0;
    }
    .rental_calendar .fc .fc-toolbar {
        justify-content: center;
        gap: 20px;
        margin-bottom: 20px;
    }
    .rental_calendar .fc .fc-toolbar-title {
        font-size: 18px;
        font-family: "pretendard";
        font-weight: 700;
    }
    .rental_calendar .fc .fc-button {
        width: 20px;
        height: 20px;
    }
    .rental_calendar .fc .fc-button .fc-icon {
        font-size: 20px;
    }
    .rental_calendar .fc .fc-col-header-cell-cushion {
        font-size: 13px;
        height: 34px;
        justify-content: center;
        padding-left: 4px;
    }
    .rental_calendar .fc .fc-daygrid-day-frame {
        min-height: 47px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .rental_calendar .fc .fc-daygrid-day-number {
        font-size: 15px;
    }
    .fc-daygrid-day-events {
        display: none;
    }
    .rent_select {
        font-size: 15px;
    }
}

/* form */
.required_note {
    text-align: right;
    color: #f5081e;
    font-size: 15px;
    font-weight: 600;
    margin-top: 30px;
}
.board_write_wrap .required_note {
    margin-top: 0;
}
.board_write_wrap .form {
    margin-top: 16px;
    padding: 64px 0 48px;
    border-top: 2px solid #000;
    border-bottom: 1px solid #ddd;
}
.board_write_wrap .field_group {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 40px 0;
    align-items: center;
    margin-top: 0;
}
.board_write_wrap .form_title {
    font-size: 20px;
}
.board_write_wrap .form_input,
.board_write_wrap .form_select,
.board_write_wrap .form_textarea {
    width: 100%;
    background: #fff;
    border: 1px solid #ddd;
    padding: 0 24px;
    height: 56px;
    border-radius: 0;
    font-size: 18px;
    color: #333;
    font-weight: 500;
}
.board_write_wrap .form_textarea{
    padding: 16px 24px;
}
.board_write_wrap .field_group:has(.file_attach) {
    align-items: flex-start;
}
.board_write_wrap .field_group:has(.file_attach) .form_title{
    padding-top: 16px;
}
.board_write_wrap .file_attach .file_wrap{
    margin-top: 20px;
}
.board_write_wrap .file_attach .btn_file{
    min-width: 120px;
    height: 56px;
    margin-top: 0;
    font-size: 16px;
}
.board_write_wrap .file_attach .file_list{
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.board_write_wrap .file_attach .file_chip{
    padding: 10px 20px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: #F0F0F0;
    color: #333;
    font-size: 16px;
    font-weight: 500;
}
.board_write_wrap .file_attach .file_remove{
    display: inline-flex;
    align-items: center;
    width: 16px;
    height: 16px;
}

.field_group + .field_group {
    margin-top: 32px;
}
.form_title {
    font-size: 18px;
    font-weight: 600;
    display: flex;
    gap: 4px;
    width: fit-content;
}
.form .req {
    color: #f5081e;
}
.form .gray {
    color: #555;
}
.form_title + * {
    margin-top: 8px;
}
.board_write_wrap .form_title + * {
    margin-top: 0;
}
.form_title + .check_radio_group {
    margin-top: 16px;
}
.form_input:read-only {
    background: #e8e8e8;
    border: 1px solid #e8e8e8;
}
.form_input.file_list:read-only {
    background: #fff;
    border: 1px solid #ddd;
}
.form_input.w400 {
    max-width: 400px;
}
.form_input + .btn_group {
    margin-top: 12px;
}
.form_input + .btn_group .btn {
    margin-top: 0;
    min-width: 120px;
    height: 48px;
    font-size: 16px;
}
.form_select {
    background: url(../images/ic_arrow_down.png) no-repeat right 20px center;
}
.ck_editor {
    width: 100%;
}
.form_textarea {
    min-height: 200px;
    padding: 20px;
}
.check_radio_group {
    display: inline-flex;
    gap: 44px;
    flex-wrap: wrap;
}
.grid_2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 20px;
    width: 100%;
}
.form .btn {
    margin-top: 64px;
}
.form .content_bottom {
    margin-top: 0;
}
.file_item_wrap.file_list.form_input {
    height: fit-content;
    padding: 20px;
    min-height: 56px;
}
.new-file-btn {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
}
.new-file-btn .file_name {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.new-file-btn i {
    cursor: pointer;
    flex: 0 0 auto;
    color: #999;
}
.new-file-btn + .new-file-btn {
    margin-top: 8px;
}

@media screen and (max-width: 1280px) {
    .step_wrap .required_note {
        display: none;
    }
    .form_title {
        font-size: 16px;
    }
    .form input {
        height: 48px;
        padding: 0 16px;
        font-size: 15px;
    }
    .grid_2 {
        grid-template-columns: 1fr;
    }
    .grid_2 .field:has(input):last-child {
        margin-top: 20px;
    }
    .form_title + .check_radio_group {
        margin-top: 12px;
    }
    .form_input,
    .form_select,
    .form_textarea {
        padding: 0 16px;
        height: 48px;
        font-size: 15px;
    }
    .form_textarea {
        min-height: 160px;
        padding: 16px;
    }
    .form .btn {
        margin-top: 40px;
    }
    .form_input + .btn_group .btn {
        min-width: 88px;
        height: 40px;
        font-size: 15px;
    }

    .required_note {
        font-size: 13px;
    }
    .board_write_wrap .form {
        margin-top: 12px;
        padding: 24px 0 32px;
    }
    .board_write_wrap .field_group {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px 0;
    }
    .board_write_wrap .form_title {
        font-size: 16px;
    }
    .board_write_wrap .form_input,
    .board_write_wrap .form_select,
    .board_write_wrap .form_textarea {
        padding: 0 16px;
        height: 48px;
        font-size: 15px;
    }
    .board_write_wrap .field_group:has(.file_attach) .form_title{
        padding-top: 0;
    }
    .board_write_wrap .file_attach .btn_file{
        min-width: 88px;
        height: 40px;
        font-size: 14px;
    }
    .board_write_wrap .file_attach .file_chip{
        padding: 10px 12px;
        font-size: 14px;
    }
    .board_write_wrap .file_attach .file_remove,
    .board_write_wrap .file_attach .file_remove img{
        width: 14px;
        height: 14px;
    }
}

.form_group.gray_box {
    margin: 0 0 48px;
    padding: 24px;
    background-color: #f5f5f5;
}
.form_group.gray_box .checks input[type="checkbox"] + label {
    font-size: 18px;
    color: #333;
}
.form_group .checks input[type="checkbox"] + label {
    font-size: 18px;
}
.form_group .tit {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 16px;
}
.form_group .content {
    padding: 24px 20px;
    border: 1px solid #ccc;
    border-radius: 0;
    margin-bottom: 16px;
    color: #555;
    font-size: 15px;
    line-height: 1.4;
}
.modal_body.form_group .content {
    padding: 0;
    border: none;
    border-radius: 0;
    margin-bottom: 0;
}
.modal_body.form_group .content .attachment {
    font-weight: 700;
    text-decoration: underline;
}
.modal_body.form_group .content .attachment i {
    margin-right: 3px;
    font-size: 13px;
}
.form_group .content.max200 {
    height: 200px;
    overflow: auto;
}
.form_group .content section + section {
    margin-top: 20px;
}
.form_group .content h3 {
    color: #333;
    font-weight: 600;
    font-size: 16px;
    margin-bottom: 8px;
}
.form_group .content b {
    color: #333;
    display: block;
    margin-bottom: 8px;
}
.form_group .desc {
    color: #333;
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 16px;
}
section.form_group + .form_group {
    margin-top: 64px;
}

.content_table {
    margin-top: 20px;
}
.content_table th {
    height: 32px;
    padding: 5px;
    background-color: #f4f4f4;
    font-size: 14px;
    font-weight: 700;
    color: #555;
    border-right: 1px solid #ddd;
    border-top: 1px solid #ddd;
}
.content_table td {
    padding: 10px;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    text-align: center;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}
.content_table th:last-child,
.content_table td:last-child {
    border-right: none;
}
.content_table tfoot td {
    font-weight: 700;
}
.form_content {
    display: flex;
    align-items: center;
    gap: 8px;
}
.form_content.address {
    display: grid;
    grid-template-columns: 160px auto 1fr;
    gap: 8px;
    align-items: center;
}
.form_content .btn {
    min-width: 120px;
    height: 56px;
    margin: 0;
    font-size: 16px;
}
.form_content + .form_content {
    margin-top: 8px;
}
.field_group .desc {
    font-size: 15px;
    color: #555;
    margin-top: 8px;
    display: block;
    letter-spacing: -0.2px;
}

@media screen and (max-width: 1280px) {
    .form_group.gray_box {
        padding: 16px;
        margin-bottom: 32px;
    }
    .form_group.gray_box .checks input[type="checkbox"] + label {
        font-size: 16px;
    }
    .form_group .checks input[type="checkbox"] + label {
        font-size: 14px;
    }
    .form_group.gray_box .checks input[type="checkbox"] + label::before {
        top: 50%;
        transform: translateY(-50%);
    }
    .form_group .tit {
        font-size: 16px;
        margin-bottom: 8px;
    }
    .form_group .content {
        padding: 20px 16px;
        margin-bottom: 12px;
        font-size: 13px;
    }
    .form_group .content h3 {
        font-size: 15px;
    }
    .form_group .content b {
        font-size: 14px;
    }
    section.form_group + .form_group {
        margin-top: 32px;
    }
    .form_group .desc {
        font-size: 13px;
        margin-bottom: 12px;
    }

    .form_content.address {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "zip btn"
            "addr addr";
    }
    #zipNo {
        grid-area: zip;
    }
    .form_content.address .btn {
        grid-area: btn;
        white-space: nowrap;
    }
    #baddr {
        grid-area: addr;
    }
    .form_content .btn {
        min-width: 100px;
        height: 48px;
        font-size: 13px;
    }
    .field_group .desc {
        font-size: 13px;
    }

    .form_group .content section + section {
        margin-top: 12px;
    }
    .content_table {
        margin-top: 12px;
    }
    .content_table th {
        font-size: 13px;
    }
    .content_table td {
        padding: 5px;
        font-size: 13px;
    }
}

@media screen and (max-width: 600px) {
    .modal_wrap .table_wrap {
        overflow: auto;
    }
    .table_wrap .content_table {
        width: 600px;
    }
}

@media screen and (max-width: 500px) {
    .table_wrap .content_table {
        width: 500px;
    }
}

/*************** content - bottom ***************/
.content_bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 64px;
}
.content_bottom .content_bottom_left {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: 250px;
}
.content_bottom .content_bottom_center {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(100% - 500px);
}
.content_bottom .content_bottom_right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: 250px;
}
.content_bottom .btn {
    min-width: 200px;
}
.content_bottom .btn.w160 {
    min-width: 160px;
}

.answer_area {
    border-top: 1px solid #ccc;
    padding: 40px 0 0;
    margin-top: 40px;
}
.answer_box {
    background-color: #F6F6F6;
    padding: 24px;
}
.answer_box .info {
    display: flex;
    align-items: center;
    margin-bottom: 16px;
}
.answer_box .info span {
    font-size: 15px;
    color: #777;
    font-weight: 500;
}
.answer_box .info span:last-child::before {
    content: "";
    display: inline-block;
    width: 1px;
    height: 12px;
    background-color: #ccc;
    margin: 0 10px;
}
.answer_box .con p {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    color: #333;
    word-break: break-all;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

@media screen and (max-width: 1280px) {
    .content_bottom {
        gap: 8px;
        margin-top: 40px;
    }
    .content_bottom .content_bottom_left {
        width: 33%;
    }
    .content_bottom .content_bottom_right {
        width: 66%;
    }
    .content_bottom .content_bottom_right .btn {
        width: 50%;
    }
    .content_bottom .btn,
    .content_bottom .btn.w160 {
        min-width: auto;
        max-width: 120px;
        width: 100%;
    }

    .answer_area {
        padding: 32px 0 12px;
    }
    .answer_box {
        padding: 20px 16px;
    }
    .answer_box .info span {
        font-size: 13px;
    }
    .answer_box .con p {
        font-size: 15px;
    }
}

/* 신청서 작성 */
.reserve_info {
    padding: 24px;
    background: #efeef6;
    font-size: 18px;
    font-weight: 600;
    color: #000;
}
.reserve_info b {
    font-weight: 600;
}
.step_title {
    font-size: 40px;
    font-weight: 700;
    margin: 64px 0 48px;
}
.form_section + .form_section {
    margin-top: 64px;
}
.form_section .tit {
    margin-bottom: 20px;
}
.sub_section + .sub_section {
    margin-top: 32px;
}
.sub_section .sub_tit {
    font-size: 20px;
    font-weight: 500;
    color: #000;
    margin-top: 32px;
    margin-bottom: 16px;
}
.sub_section .sub_tit::before {
    content: "·";
    display: inline-block;
    margin: 0 4px;
}
.form_section .tit + .sub_section .sub_tit {
    margin-top: 12px;
}

.form_table {
    border-top: 1px solid #ddd;
    border-left: 1px solid #ddd;
}
.form_row {
    display: grid;
}
.form_row_4 {
    grid-template-columns: 200px 1fr 200px 1fr;
}
.form_row_full,
.form_row_address,
.form_row_file {
    grid-template-columns: 200px 1fr;
}
.form_head {
    display: flex;
    align-items: center;
    padding: 20px 24px;
    background: #f6f6f6;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    font-size: 18px;
    font-weight: 600;
}
.form_head span{
    font-weight: 600;
}
.form_body {
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    background: #fff;
}
.form_body:has(.check_radio_group) {
    display: flex;
    align-items: center;
    padding: 16px 24px;
}
.form_row_4 .check_radio_group {
    gap: 40px;
}
.form_row_full .check_radio_group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 20px 0;
    width: 100%;
}
.perf_genre_wrap {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 20px 0;
    grid-column: 1 / -1;
}
.form_input {
    width: 100%;
    height: 64px;
    padding: 0 24px;
    border: none;
    border-radius: 0;
    font-size: 18px;
    font-weight: 500;
}
.form_table .form_input:focus-visible {
    outline-offset: -1px;
}
.address_wrap {
    border-bottom: 1px solid #ddd;
    display: flex;
    align-items: center;
    width: 100%;
}
.address_wrap .form_input {
    border-right: 0;
}
.form_btn {
    width: 120px;
    height: 64px;
    background-color: #666;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
}
.file_upload_wrap {
    display: grid;
    grid-template-columns: 1fr 120px;
    gap: 0;
}
.file_name_box {
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px;
    border-right: 0;
    font-size: 16px;
}
.file_delete_btn {
    width: 24px;
    height: 24px;
    cursor: pointer;
}
.btn_file {
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.file_help {
    margin-top: 20px;
    display: inline-block;
    color: #2115c4;
    font-size: 18px;
    font-weight: 600;
}
.file_help img {
    margin-left: 8px;
    vertical-align: middle;
    margin-top: -4px;
}

.time_select {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 8px 24px;
    gap: 8px 40px;
    flex-wrap: wrap;
}
.time_select .time {
    display: flex;
    align-items: center;
    gap: 10px;
}
.time_select .time_unit {
    font-size: 17px;
    font-weight: 500;
    color: #333;
}
.select {
    border: 1px solid #ccc;
    border-radius: 0;
    background: url(../images/ic_arrow_down.png) no-repeat right 12px center / 16px;
    width: 120px;
}
input.datepicker {
    border: none;
    width: 100%;
    height: 100%;
    border-radius: 0;
    background: url(../images/ic_calendar.png) no-repeat right 24px center / 24px;
    cursor: pointer;
}

@media (max-width: 1280px) {
    .reserve_info {
        font-size: 15px;
        padding: 12px 14px;
    }
    .reserve_info b {
        display: block;
        margin-bottom: 8px;
    }
    .step_title {
        font-size: 22px;
        margin: 32px 0 24px;
    }
    .form_section .tit {
        font-size: 18px;
    }
    .sub_section .sub_tit {
        font-size: 17px;
        margin: 0 0 16px 0;
    }
    .form_section .tit + .sub_section .sub_tit {
        margin-top: 0;
    }
    .form_section + .form_section {
        margin-top: 32px;
    }
    .form_row_4,
    .form_row_full,
    .form_row_address,
    .form_row_file {
        grid-template-columns: 1fr;
    }

    .form_table,
    .form_head,
    .form_body {
        border: none;
    }
    .form_head {
        padding: 0 0 6px 0;
        font-size: 14px;
        background-color: #fff;
    }
    .form_row + .form_row,
    .form_body + .form_head {
        margin-top: 32px;
    }
    .form_input,
    .file_name_box {
        border: 1px solid #ddd;
        width: 100%;
        font-size: 15px;
    }
    .file_name_box {
        font-size: 14px;
    }
    .address_wrap {
        grid-template-columns: 1fr;
        gap: 8px;
        margin-bottom: 8px;
        border: none;
    }
    .file_upload_wrap {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 8px;
    }
    .address_wrap .form_input {
        border-right: 1px solid #ddd;
        width: 100%;
    }
    .form_btn {
        width: 88px;
        height: 48px;
        font-size: 14px;
    }
    .file_help {
        font-size: 15px;
        text-align: right;
        margin-left: auto;
        display: block;
        width: fit-content;
    }

    .form_body:has(.check_radio_group),
    .time_select {
        padding: 0;
    }
    .form_row_4 .check_radio_group {
        margin-top: 12px;
    }
    .form_row_full .check_radio_group {
        margin-top: 12px;
        gap: 16px 0;
    }
    .select {
        height: 36px;
        font-size: 15px;
        width: 80px;
        padding: 0 24px 0 10px;
        background: url(../images/ic_arrow_down.png) no-repeat right 8px center / 14px;
    }
    .time_select.wrap .select {
        width: 100px;
    }
    .time_select,
    .time_select .time {
        flex-wrap: wrap;
        gap: 8px;
    }
    .time_select .time_unit {
        font-size: 15px;
    }
    input.datepicker {
        width: 100%;
        height: 48px;
        border: 1px solid #ddd;
    }
    .mo_hide {
        display: none !important;
    }
    .mo_mt {
        margin-top: 8px;
    }
}

/* 부가장비 선택 */
.addon_table {
    width: 100%;
    border-top: 1px solid #ddd;
    border-left: 1px solid #ddd;
    background: #fff;
}
.addon_table .col_type {
    width: 200px;
}
.addon_table .col_price {
    width: 280px;
}
.addon_table .col_name {
    width: 420px;
}
.addon_table .col_note,
.fee_table .col_name {
    width: auto;
}
.fee_table .col_type,
.fee_table .col_price {
    width: 240px;
}
.addon_table th,
.addon_table td {
    padding: 20px 24px;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    font-size: 18px;
    color: #333;
}
.fee_table th,
.fee_table td {
    text-align: center;
}
.addon_table thead th {
    background: #f6f6f6;
    text-align: center;
    font-weight: 600;
    color: #000;
}

.addon_table td .fee {
    font-weight: 400;
    text-align: center;
    display: block;
}
.addon_table td .fee strong {
    font-weight: 700;
    color: #000;
}

.addon_choice_qty {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}
.addon_qty {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}
.qty_input {
    width: 106px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #ccc;
    background: #fff;
    font-size: 16px;
    color: #333;
    border-radius: 0;
}
.qty_unit {
    color: #333;
    font-size: 18px;
}

.form_body .addon_qty{
    height: 100%;
    padding: 0 24px;
}

/* 감면 할인 선택 */
.discount_step_title {
    font-size: 24px !important;
    margin: 48px 0 24px !important;
}
.discount_notice {
    margin-top: 14px;
    margin-bottom: 16px;
    font-size: 15px;
    color: #e74c3c;
}

.fee_notice {
    margin-top: 32px;
}
.fee_notice_em {
    margin-bottom: 8px;
    font-size: 15px;
    font-weight: 500;
    color: #f5081e;
}
.fee_notice_txt {
    font-size: 15px;
    color: #555;
}

.expected_payment {
    margin-top: 20px;
    padding: 0 0 32px;
    border-bottom: 1px solid #000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.expected_payment_label {
    font-size: 22px;
    font-weight: 600;
    color: #000;
}
.expected_payment_price {
    display: flex;
    align-items: center;
    gap: 4px;
    color: #000;
}
.expected_payment_price strong {
    font-size: 36px;
    font-weight: 700;
}
.expected_payment_price span {
    font-size: 22px;
    font-weight: 400;
}

@media (max-width: 1280px) {
    .addon_table,
    .addon_table thead,
    .addon_table tbody,
    .addon_table tr,
    .addon_table th,
    .addon_table td {
        display: block;
        width: 100%;
        font-size: 15px;
    }
    .addon_table {
        border-right: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
    }
    .addon_table thead {
        display: none;
    }
    .addon_table tbody tr {
        position: relative;
    }
    .fee_table th,
    .fee_table td {
        text-align: left;
    }
    .addon_table tbody th[scope="row"],
    .addon_table tbody th[scope="rowgroup"] {
        padding: 8px 20px;
        border: 0;
        background: #f6f6f6;
        text-align: left;
        font-size: 13px;
        font-weight: 700;
        color: #555;
    }
    .addon_table tbody td {
        border: 0;
        padding: 20px;
    }
    .addon_table tbody td + td {
        padding-top: 0;
    }
    .fee_table tbody td + td {
        margin-top: -12px;
    }
    .addon_table td:has(.fee) {
        position: absolute;
        right: 0;
        top: 55px;
    }
    .addon_table .th_none td:has(.fee) {
        top: 32px;
    }
    .fee_table td:has(.fee) {
        top: 64px;
    }
    .addon_table td .fee {
        text-align: right;
    }
    .addon_table td.desc {
        font-size: 13px;
        margin-top: -5px;
    }
    .addon_choice,
    .addon_choice_qty {
        align-items: flex-start;
    }
    .addon_choice_qty {
        gap: 10px;
    }
    .addon_qty {
        width: 100%;
        justify-content: flex-start;
    }
    .qty_input {
        width: 84px;
        height: 36px;
        font-size: 14px;
    }
    .th_none::before {
        content: "";
        position: absolute;
        top: 0;
        left: 20px;
        width: calc(100% - 40px);
        height: 1px;
        background-color: #ddd;
    }

    .fee_notice {
        margin-top: 24px;
    }
    .fee_notice_em,
    .fee_notice_txt {
        font-size: 14px;
    }

    .expected_payment {
        padding: 0 0 20px;
    }
    .expected_payment_label,
    .expected_payment_price span,
    .qty_unit {
        font-size: 15px;
    }
    .expected_payment_price strong {
        font-size: 24px;
    }
}

/* mypage */
.mo_br {
    display: none;
}
.program_card,
.detail_box {
    border: 1px solid #ddd;
    padding: 28px;
    margin-bottom: 16px;
    position: relative;
}
.program_card .program_tit,
.detail_summary {
    font-size: 20px;
    font-weight: 700;
}
.program_card_inner {
    display: flex;
    align-items: flex-start;
    gap: 28px;
    margin-top: 20px;
}
.program_thumb {
    width: 120px;
    height: 120px;
    flex: 0 0 auto;
}
.program_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.program_meta,
.info_meta,
.price_meta li {
    display: grid;
    font-size: 15px;
}
.program_meta {
    grid-template-columns: 42px 1fr;
    gap: 16px 20px;
    margin-top: 16px;
    align-items: flex-start;
}
.info_meta {
    margin-top: 20px;
    grid-template-columns: 110px 1fr;
    gap: 12px 65px;
}
.price_meta li {
    margin-top: 12px;
    grid-template-columns: 110px minmax(0, 1fr) auto;
    gap: 12px 65px;
}
.program_meta dt,
.info_meta dt,
.price_meta .name {
    font-weight: 700;
    position: relative;
    padding-left: 10px;
    color: #555;
}
.program_meta dt::before,
.info_meta dt::before,
.price_meta .name::before {
    content: "·";
    position: absolute;
    left: 0;
    top: 0;
}
.program_meta dd,
.info_meta dd,
.price_meta .desc {
    font-weight: 400;
    color: #000;
}
.price_meta .desc span + span::before {
    display: inline-block;
    content: "";
    width: 1px;
    height: 12px;
    background-color: #ddd;
    margin: -2px 8px 0;
    vertical-align: middle;
}
.info_meta dd .file {
    font-weight: 700;
    text-decoration: underline;
}

.detail_summary {
    cursor: pointer;
    position: relative;
    list-style: none;
}
.detail_summary::-webkit-details-marker {
    display: none;
}
.detail_summary::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background: url("../images/chevron-down.png") no-repeat center;
    width: 20px;
    height: 20px;
    transition: 0.2s;
}
details[open] .detail_summary::after {
    transform: translateY(-50%) rotate(180deg);
}
.detail_content {
    border-top: 1px solid #ddd;
    margin-top: 20px;
    padding-top: 20px;
}
.detail_content:has(.payment_total) {
    margin-top: 24px;
    padding-top: 20px;
}
.detail_tit {
    font-size: 16px;
    font-weight: 700;
    color: #000;
}
.detail_tit + .info_meta,
.detail_tit + .price_meta {
    margin-top: 16px;
}

@media (max-width: 1280px) {
    .mo_br {
        display: block;
    }
    .program_card_inner {
        margin-top: 0;
    }
    .program_card,
    .detail_box {
        padding: 20px;
        margin-bottom: 8px;
    }
    .program_card .program_tit,
    .detail_summary {
        font-size: 18px;
    }
    .detail_content {
        padding-top: 16px;
        margin-top: 16px;
    }
    .detail_content:has(.payment_total) {
        margin-top: 16px;
        padding-top: 20px;
    }

    .program_card .program_tit {
        min-height: 56px;
        padding-left: 72px;
        display: flex;
        align-items: center;
    }
    .program_thumb {
        position: absolute;
        top: 20px;
        left: 20px;
        width: 56px;
        height: 56px;
    }

    .program_meta,
    .info_meta {
        grid-template-columns: 1fr;
        gap: 8px;
        margin-top: 16px;
    }
    .price_meta li {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .price_meta .desc {
        font-size: 14px;
    }
    .price_meta .price {
        font-size: 13px;
    }
    .program_meta dt,
    .info_meta dt,
    .price_meta .name {
        font-size: 13px;
        padding-left: 0;
        margin-top: 4px;
    }
    .program_meta dt::before,
    .info_meta dt::before,
    .price_meta .name::before {
        display: none;
    }
    .program_meta dd,
    .info_meta dd {
        font-size: 14px;
    }

    .detail_tit {
        font-size: 15px;
    }
}

/* 예매안내 */
.reserve .card_wrap {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin: 32px 0 64px;
}
.cancel .card_wrap {
    grid-template-columns: repeat(2, 1fr);
    margin: 24px 0 0 0;
}
.step_card {
    padding: 28px 24px;
    border: 1px solid #ddd;
    background: #fff;
}
.cancel .step_card {
    padding: 40px;
}
.step_card .num {
    display: block;
    margin-bottom: 16px;
    font-size: 18px;
    font-weight: 700;
    color: #555;
}
.step_card .tit {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 22px;
    font-weight: 600;
    color: #000;
}
.cancel .step_card .tit {
    gap: 12px;
    font-size: 26px;
}
.cancel .step_card .tit span {
    font-weight: 600;
}
.step_card .tit img,
.step_card .card_head img {
    width: 24px;
}
.cancel .step_card .tit img {
    width: 26px;
}

.cancel .notice_box + .notice_box {
    margin-top: 64px;
}
.cancel .notice_box .desc {
    margin-top: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    font-weight: 700;
    color: #000;
}
.reserve .info_list {
    grid-template-columns: 180px 1fr;
    margin-top: 20px;
}
.cancel .info_list {
    grid-template-columns: 215px 1fr;
    margin-top: 24px;
}
.reserve .txt24 {
    margin-top: 40px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.dot_list {
    padding-left: 28px;
    margin-top: 16px;
}
.cancel .dot_list {
    padding-left: 0;
    margin-top: 20px;
}
.cancel .txt24 + .dot_list {
    margin-top: 16px;
}
.dot_list li {
    font-size: 18px;
    font-weight: 500;
    color: #333;
    position: relative;
    padding-left: 12px;
}
.dot_list.num li {
    padding-left: 0;
}
.dot_list li + li {
    margin-top: 12px;
}
.dot_list li::before {
    content: "·";
    position: absolute;
    left: 0;
    top: 0;
}
.dot_list.num li::before {
    display: none;
}
.cancel .info_box .desc {
    display: block;
    margin-top: 12px;
    font-size: 16px;
    font-weight: 500;
    color: #333;
}
.reserve .gray_box {
    background-color: #f6f6f6;
    margin-top: 24px;
    padding: 32px;
}
.reserve .gray_box.mt16 {
    margin-top: 16px;
}
.reserve .gray_box p {
    font-size: 17px;
    color: #333;
    font-weight: 500;
    line-height: 1.3;
}
.reserve .gray_box p + p {
    margin-top: 12px;
}
.reserve .gray_box p b {
    font-weight: 700;
    color: #000;
}

.step_flow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 32px;
    font-size: 18px;
    color: #555;
}

@media (max-width: 1280px) {
    .reserve .card_wrap {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
        margin: 20px 0 40px;
    }
    .cancel .card_wrap {
        margin: 16px 0 0 0;
    }
    .step_card {
        padding: 22px;
        display: flex;
        gap: 16px;
    }
    .cancel .step_card {
        padding: 22px;
        flex-direction: column;
        gap: 16px;
    }
    .step_card .num {
        margin-bottom: 0;
        font-size: 14px;
    }
    .step_card .tit {
        font-size: 16px;
    }
    .cancel .step_card .tit {
        gap: 8px;
        font-size: 16px;
    }
    .step_card .tit img,
    .cancel .step_card .tit img,
    .step_card .card_head img {
        width: 16px;
    }
    .step_flow {
        margin-top: 0;
        gap: 8px;
        flex-wrap: wrap;
    }
    .step_flow span {
        font-size: 14px;
    }
    .step_flow img {
        width: 14px;
    }

    .cancel .notice_box + .notice_box {
        margin-top: 40px;
    }
    .cancel .notice_box .desc {
        margin-top: 16px;
        gap: 4px;
        font-size: 14px;
    }
    .reserve .info_list {
        grid-template-columns: 126px 1fr;
        margin-top: 16px;
    }
    .cancel .info_list {
        grid-template-columns: 154px 1fr;
        margin-top: 20px;
    }
    .reserve .info_list dt {
        font-size: 13px;
    }
    .reserve .info_list dd {
        font-size: 14px;
    }
    .reserve .txt24 {
        margin-top: 24px;
        font-size: 17px;
        gap: 4px;
    }
    .reserve .txt24 img {
        width: 18px;
    }
    .dot_list {
        padding-left: 22px;
        margin-top: 12px;
    }
    .dot_list li {
        font-size: 14px;
        padding-left: 8px;
        line-height: 1.4;
    }
    .dot_list li + li {
        margin-top: 8px;
    }

    .reserve .gray_box {
        margin-top: 20px;
        padding: 20px 16px;
    }
    .reserve .gray_box p {
        font-size: 13px;
    }
    .reserve .gray_box p + p {
        margin-top: 8px;
    }
}

@media (max-width: 500px) {
    .reserve .card_wrap,
    .cancel .card_wrap {
        grid-template-columns: 1fr;
    }
}

/* rentalStep */
.reserve .card_wrap.rental {
    margin-top: 0;
}
.card_wrap.rental .step_card {
    min-height: 250px;
    padding: 32px 28px;
}
.card_wrap.rental .step_card .card_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 16px;
    margin-bottom: 20px;
    border-bottom: 1px solid #ddd;
}
.card_wrap.rental .step_card .tit_wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}
.card_wrap.rental .step_card .tit_wrap .num {
    margin-bottom: 0;
    font-size: 22px;
    color: #777;
    font-weight: 600;
}
.card_wrap.rental .step_card .tit_wrap .tit {
    font-size: 22px;
    font-weight: 700;
}

.card_wrap.rental .step_card .dot_list {
    padding-left: 0;
}
.card_wrap.rental .step_card .dot_list li {
    font-size: 15px;
    line-height: 1.5;
}

.card_wrap.rental .step_card .info_row {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 16px 12px;
    align-items: start;
}
.card_wrap.rental .step_card dt,
.card_wrap.rental .step_card dd {
    font-size: 15px;
    line-height: 1.5;
    color: #333;
    font-weight: 500;
}
.card_wrap.rental .step_card dt {
    font-weight: 700;
}

.card_wrap.rental .step_card .btn {
    width: 100%;
    height: 40px;
    margin-top: 27px;
    font-size: 15px;
    font-weight: 600;
}
.card_wrap.rental .step_card .btn:hover {
    background: #222;
}

.reserve .gray_box dl {
    display: grid;
    grid-template-columns: 188px 1fr;
    gap: 16px 40px;
}
.reserve .gray_box dt {
    font-size: 17px;
    font-weight: 700;
    color: #000;
}
.reserve .gray_box dd {
    font-size: 17px;
    font-weight: 500;
    color: #333;
}
.reserve .gray_box dd b {
    font-weight: 700;
    color: #555;
    margin-right: 8px;
}

.rental_wrap + .rental_wrap{
    margin-top: 64px;
}
section.rental .txt40 {
    margin-top: 64px;
}
section.rental .txt24 {
    margin-top: 40px;
}
section.rental .txt24.mt48 {
    margin-top: 48px;
}
section.rental .desc {
    font-size: 16px;
    font-weight: 600;
    color: #555;
    margin-top: 12px;
}
section.rental .desc.red {
    color: #f5081e;
}
section.rental .desc + .desc {
    margin-top: 8px;
}
section.rental .list .desc {
    font-size: 18px;
    font-weight: 500;
    color: #333;
    margin-top: 16px;
}
section.rental .dot_list {
    padding-left: 0;
}
section.rental .gray_box .desc.red {
    font-size: 18px;
    font-weight: 700;
    margin-top: 0;
}
section.rental .reserve .gray_box .dot_list li {
    font-size: 17px;
}
section.rental .reserve .gray_box .dot_list b {
    width: 142px;
    display: inline-flex;
    margin-right: 32px;
}
.reserve .gray_box p.txt {
    font-size: 18px;
    font-weight: 700;
    color: #000;
}
.reserve .gray_box p.txt + p.txt {
    margin-top: 16px;
}
.reserve .gray_box p.txt.mt24 {
    margin-top: 24px;
}
.reserve .gray_box p.txt + .dot_list {
    margin-top: 12px;
}
.rental .list_table {
    table-layout: fixed;
}

@media (max-width: 1280px) {
    .card_wrap.rental .step_card {
        flex-direction: column;
        gap: 0;
        min-height: auto;
        padding: 20px;
    }
    .card_wrap.rental .step_card .tit_wrap .num,
    .card_wrap.rental .step_card .tit_wrap .tit {
        font-size: 17px;
    }
    .card_wrap.rental .step_card dt,
    .card_wrap.rental .step_card dd,
    .card_wrap.rental .step_card .dot_list li {
        font-size: 14px;
    }
    .card_wrap.rental .step_card .btn {
        margin-top: 20px;
    }

    .reserve .gray_box dl {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .reserve .gray_box dt,
    .reserve .gray_box dd {
        font-size: 15px;
    }
    .reserve .gray_box dl dt:nth-child(3) {
        margin-top: 8px;
    }

    section.rental .txt40 {
        margin-top: 40px;
    }
    section.rental .txt24 {
        margin-top: 24px;
        font-size: 18px;
    }
    section.rental .desc {
        font-size: 14px;
        margin-top: 12px;
        line-height: 1.5;
    }
    .rental .list_table td {
        padding: 16px 5px;
    }

    section.rental .gray_box .desc.red {
        font-size: 15px;
    }
    section.rental .reserve .gray_box .dot_list li {
        font-size: 14px;
    }
    section.rental .reserve .gray_box .dot_list b {
        width: auto;
        display: block;
        margin-right: 0;
    }
    .reserve .gray_box p.txt {
        font-size: 15px;
    }
    .reserve .gray_box p.txt + p.txt {
        margin-top: 12px;
    }
}

@media (max-width: 768px) {
    .reserve .card_wrap.rental {
        grid-template-columns: 1fr;
    }
}

/* 대관서식 */
.download_grid_wrap + .download_grid_wrap {
    margin-top: 64px;
}
.download_grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 2px solid #000;
    border-bottom: 1px solid #000;
    margin-top: 24px;
}
.download_item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 32px 40px;
    border-bottom: 1px solid #ddd;
}
.download_item:nth-child(odd) {
    border-right: 1px solid #ddd;
}
.download_name {
    display: block;
    font-size: 20px;
    font-weight: 600;
    color: #000;
}
.download_btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    width: 160px;
    border: 1px solid #555;
    background: #fff;
    color: #333;
    font-size: 16px;
    font-weight: 600;
    transition: all 0.2s;
}
.download_btn img {
    font-size: 16px;
}
.download_btn:hover,
.download_btn:focus-visible {
    border-color: #000;
    background: #000;
    color: #fff;
}
.download_btn:hover img,
.download_btn:focus-visible img {
    filter: brightness(100);
}

.contact_address {
    margin-top: 16px;
}
.contact_address a {
    color: #333;
    font-size: 18px;
}
.contact_address a:hover,
.contact_address a:focus-visible {
    text-decoration: underline;
}

@media (max-width: 1280px) {
    .download_grid_wrap + .download_grid_wrap {
        margin-top: 40px;
    }
    .download_grid {
        display: grid;
        grid-template-columns: 1fr;
        margin-top: 16px;
    }
    .download_item {
        padding: 20px 0;
        border-bottom: 1px solid #ddd;
    }
    .download_item:nth-child(odd) {
        border-right: none;
    }
    .download_name {
        font-size: 15px;
    }
    .download_btn {
        padding: 12px;
        width: 120px;
        font-size: 13px;
    }
    .download_btn img {
        font-size: 14px;
    }
    .contact_address {
        margin-top: 12px;
    }
    .contact_address a {
        font-size: 14px;
    }
}


/* 자주하는질문 */
.faq_list {
    border-top: 2px solid #222;
}
.faq_item {
    border-bottom: 1px solid #ddd;
}
.faq_item[open] {
    border-bottom: none;
}
.faq_q {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    position: relative;
    padding: 32px 40px;
    cursor: pointer;
}
.faq_mark {
    font-size: 20px;
    font-weight: 700;
    color: #000;
    text-align: center;
}
.faq_question {
    font-size: 20px;
    line-height: 1.5;
    font-weight: 700;
    color: #000;
}
.faq_icon {
    position: absolute;
    top: 50%;
    right: 36px;
    width: 20px;
    height: 20px;
    transform: translateY(-50%);
}
.faq_icon i{
    color: #555;
    font-size: 18px;
}
.faq_item[open] .faq_icon i {
    transform: rotate(180deg);
}

.faq_a {
    padding: 24px 40px;
    background: #EEEEEE;
}
.faq_a_inner {
    display: flex;
    align-items: flex-start;
    gap: 40px;
}
.faq_answer p {
    font-size: 17px;
    line-height: 1.8;
    font-weight: 500;
    color: #333;
}
.faq_answer a {
    color: #000;
    font-weight: 700;
}

@media (max-width: 1280px) {
    .faq_q {
        gap: 8px;
        padding: 20px 16px;
        cursor: pointer;
    }
    .faq_mark,
    .faq_question {
        font-size: 17px;
    }
    .faq_icon {
        display: none;
    }
    .faq_a {
        padding: 20px 16px;
    }
    .faq_a_inner {
        gap: 8px;
    }
    .faq_answer p {
        font-size: 14px;
        line-height: 1.5;
    }
}

/* 결제수단 라디오 버튼 크기 축소 */
.pay_method_area {
    padding: 12px 0 35px;
}
.pay_method_area .pay_method_title {
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 8px;
}
.pay_method_area .pay_method_list {
    display: flex;
    gap: 16px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.pay_method_area .pay_method_list .radios input[type="radio"] + label{
    font-size: 14px;
    color: #000;
}
/* tooltip */
.tooltip_wrap {
    position: relative;
}
.tooltip_btn {
    width: 18px;
    height: 18px;
    cursor: pointer;
    vertical-align: middle;
    margin-top: -2px;
}
.tooltip_btn img {
    width: 100%;
}
.tooltip_btn:hover,
.tooltip_btn:focus-visible {
    border-color: #333;
    color: #111;
    outline: none;
}
.tooltip_box {
    position: absolute;
    top: calc(100% + 6px);
    left: 100%;
    z-index: 20;
    padding: 16px;
    border: 1px solid #555;
    border-radius: 10px;
    background: #fff;
    display: none;
}
.tooltip_box_sm {
    width: 174px;
}
.tooltip_box_lg {
    width: 234px;
}
.tooltip_box p {
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    color: #333;
}
.tooltip_box p + p {
    margin-top: 4px;
}
.tooltip_wrap:hover .tooltip_box,
.tooltip_wrap:focus-within .tooltip_box {
    display: block;
}
@media (max-width: 1280px) {
    .tooltip_box {
        padding: 8px;
        top: 0;
        left: calc(100% + 8px);
    }
    .tooltip_box_sm {
        width: 140px;
    }
    .tooltip_box_lg {
        width: 191px;
    }
    .tooltip_box p {
        font-size: 13px;
    }
}
