/********** sub **********/
/********** section layout **********/
.section_wrap {
    padding: 160px 0 0;
}
.section_wrap .inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 20px;
}

.section_wrap .location_area {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    gap: 16px;
    padding: 26px 0;
    border-bottom: 1px solid #eee;
}
.section_wrap .location_area .home_btn {
    display: flex;
    align-items: center;
    position: relative;
    gap: 13px;
}
.section_wrap .location_area .home_btn::after {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: #777;
    content: "";
    display: inline-block;
}
.section_wrap .location_area .gnb_wrap {
    display: flex;
    gap: 12px;
    align-items: center;
}
.section_wrap .location_area .gnb_item {
    position: relative;
    display: flex;
    gap: 12px;
    align-items: center;
}
.section_wrap .location_area .gnb_item::after {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: #777;
    content: "";
    display: inline-block;
}
.section_wrap .location_area .gnb_item:last-child:after {
    display: none;
}
.section_wrap .location_area .gnb_item .more_btn {
    color: #333;
    font-size: 17px;
    display: flex;
    align-items: center;
    position: relative;
    gap: 8px;
}
.section_wrap .location_area .gnb_item .more_btn .img {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #eee;
    display: flex;
    align-items: center;
    justify-content: center;
}
.section_wrap .location_area .gnb_item .more_btn .img img {
    width: 14px;
}

.section_wrap .location_area .gnb_2dep {
    position: absolute;
    z-index: 10;
    top: 100%;
    left: -20px;
    width: max-content;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 10px;
    margin-top: 12px;
    padding: 20px 16px;
    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;
}
.section_wrap .location_area .gnb_2dep.open {
    padding: 20px 16px;
    max-height: 500px;
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transition: max-height 0.3s ease, padding 0.3s ease, opacity 0.2s ease, visibility 0s;
}
.section_wrap .location_area .gnb_2dep .item_02 > a {
    font-size: 15px;
    color: #555;
    transition: all 0.3s;
}
.section_wrap .location_area .gnb_2dep .item_02 + .item_02 {
    margin-top: 16px;
}
.section_wrap .location_area .gnb_2dep .item_02 > a:hover {
    color: #000;
    font-weight: 600;
}

.section_wrap .heading_wrap {
    padding: 88px 0 64px;
}
.section_wrap .heading_wrap.bg {
    padding: 350px 0 0 0;
    margin-bottom: 70px;
}
.section_wrap .heading_wrap.bg1 {
    background: url(../images/sub_headBg1.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg2-1 {
    background: url(../images/sub_headBg2-1.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg2-2 {
    background: url(../images/sub_headBg2-2.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg2-3 {
    background: url(../images/sub_headBg2-3.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg3-1 {
    background: url(../images/sub_headBg3-1.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg3-2 {
    background: url(../images/sub_headBg3-2.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg3-3 {
    background: url(../images/sub_headBg3-3.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg3-4 {
    background: url(../images/sub_headBg3-4.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg4 {
    background: url(../images/sub_headBg4.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap.bg7 {
    background: url(../images/sub_headBg7.png) no-repeat center center;
    background-size: cover;
}
.section_wrap .heading_wrap h1 {
    font-family: "paperlogy";
    font-size: 64px;
    font-weight: 800;
}

.section_wrap .sub_tab_wrap {
    margin-bottom: 88px;
}
.section_wrap .sub_tab_wrap.line {
    margin-bottom: 40px;
    padding-bottom: 48px;
    border-bottom: 1px solid #000;
}
.section_wrap .sub_tab_wrap ul,
.section_wrap .sub_tab_wrap .tabs {
    display: flex;
    gap: 48px;
    overflow-x: auto;
}
.section_wrap .sub_tab_wrap ul li {
    flex: 0 0 auto;
}
.section_wrap .sub_tab_wrap ul a {
    font-size: 18px;
    padding: 5px 0;
    color: #555;
    display: block;
    position: relative;
}
.section_wrap .sub_tab_wrap ul a::after {
    content: "";
    width: 0;
    height: 3px;
    background-color: #f55529;
    transition: all 0.2s;
    position: absolute;
    bottom: 0;
    left: 0;
}
.section_wrap .sub_tab_wrap ul a.active,
.section_wrap .sub_tab_wrap ul a:hover {
    color: #f55529;
    font-weight: 700;
}
.section_wrap .sub_tab_wrap ul a.active:after,
.section_wrap .sub_tab_wrap ul a:hover:after {
    width: 100%;
}
.tab_con {
    display: none;
}
.tab_con.active {
    display: block;
}

.section_container {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 20px;
}
.section_container .sub_title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}
.section_container .sub_title .table_search {
    display: flex;
    align-items: center;
    gap: 8px;
}
.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: 44px;
    border-radius: 8px;
    border: 1px solid #ccc;
}
.table_search .search_wrap .search_input_wrap input {
    width: 100%;
    height: 100%;
    border: none;
    background-color: transparent;
    padding: 0 40px 0 20px;
}
.table_search .search_wrap .search_input_wrap .clear_btn {
    position: absolute;
    right: 45px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
}
.table_search .search_wrap .search_input_wrap.has-value input {
    padding-right: 68px;
}
.header .search_wrap .search_input_wrap input::placeholder {
    color: #777;
}
.section_container .sub_title .table_count {
    color: #555;
}
.section_container .sub_title .table_count b {
    font-weight: 700;
    color: #000;
}

@media screen and (max-width: 1600px) {
    .section_wrap {
        padding-top: 125px;
    }
    .section_wrap .location_area {
        padding: 20px 0;
        gap: 8px;
    }
    .section_wrap .location_area .home_btn {
        gap: 8px;
    }
    .section_wrap .location_area .gnb_item {
        gap: 8px;
    }
    .section_wrap .location_area .gnb_2dep.open {
        padding: 16px 10px;
        left: 0;
    }
    .section_wrap .location_area .gnb_2dep .item_02 + .item_02 {
        margin-top: 10px;
    }
    .section_wrap .location_area .gnb_item .more_btn {
        font-size: 14px;
        gap: 4px;
    }
    .section_wrap .location_area .gnb_2dep .item_02 > a {
        font-size: 14px;
    }
    .section_wrap .heading_wrap {
        padding: 60px 0 32px;
    }
    .section_wrap .heading_wrap.bg {
        padding: 250px 0 0;
        margin-bottom: 40px;
    }
    .section_wrap .heading_wrap h1 {
        font-size: 48px;
    }
    .section_wrap .sub_tab_wrap {
        margin-bottom: 40px;
    }
    .section_wrap .sub_tab_wrap ul {
        gap: 20px;
    }
    .section_wrap .sub_tab_wrap ul a {
        font-size: 16px;
    }
}

@media screen and (max-width: 1280px) {
    .section_container {
        min-height: 500px;
    }
    .section_wrap {
        padding-top: 65px;
    }
    .section_wrap .heading_wrap.bg {
        padding: 180px 0 0;
    }
    .section_wrap .heading_wrap h1 {
        font-size: 36px;
    }
    .section_container .sub_title .table_search,
    .table_search .search_wrap,
    .table_search .search_wrap .search_input_wrap {
        width: 100%;
    }
    .section_container .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 .search_wrap .search_input_wrap input {
        padding: 0 40px 0 12px;
    }
}

@media screen and (max-width: 700px) {
    .section_wrap .heading_wrap.bg {
        padding: 100px 0 0;
    }
    .section_wrap .heading_wrap h1 {
        font-size: 27px;
    }
}

@media screen and (max-width: 500px) {
    .section_wrap .location_area {
        display: none;
    }
}

/* table */
.list_table {
    border-top: 2px solid #555;
    table-layout: fixed;
}
.list_table tr {
    border-bottom: 1px solid #ddd;
}
.list_table th {
    height: 56px;
    font-size: 15px;
    font-weight: 700;
    color: #555;
}
.list_table td {
    height: 68px;
    font-size: 15px;
    color: #555;
    text-align: center;
}
.list_table td.user {
    font-size: 16px;
}
.list_table td.title {
    text-align: left;
}
.list_table td a {
    font-weight: 600;
    font-size: 17px;
    color: #000;
    display: flex;
    gap: 8px;
    align-items: center;
    width: 100%;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
.list_table td.title a .lock {
    width: 18px;
    height: 18px;
    background: url(../images/icon_lock.png) no-repeat center center;
    background-size: contain;
    display: block;
}
.list_table td a:hover {
    text-decoration: underline;
}
.list_table td img {
    vertical-align: baseline;
    margin-left: 8px;
}
.list_table td.data_none {
    height: 80px;
}
.state {
    border-radius: 100px;
    width: 64px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    margin: 0 auto;
}
.state.gray {
    background-color: #e8e8e8 !important;
    color: #555 !important;
}
.state.dark_gray {
    background-color: #555 !important;
    color: #fff !important;
}

@media screen and (max-width: 1280px) {
    .list_table thead,
    .list_table colgroup,
    .list_table .num {
        display: none;
    }
    .list_table tr {
        display: flex;
        width: 100%;
        flex-wrap: wrap;
        padding: 50px 0 20px;
        position: relative;
    }
    .list_table tr td {
        height: auto;
        font-size: 13px;
    }
    .list_table .title {
        position: absolute;
        top: 20px;
        width: 100%;
    }
    .list_table .user,
    .list_table .tag,
    .list_table .date {
        padding-right: 8px;
        margin-right: 8px;
        position: relative;
    }
    .list_table .user::after,
    .list_table .tag::after,
    .list_table .date::after {
        position: absolute;
        content: "";
        width: 1px;
        height: 12px;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        background-color: #ccc;
    }
    .state {
        width: 60px;
        height: 20px;
        font-size: 12px;
    }
    .list_table:has(td.answer) td.date {
        margin-right: 0;
        margin-top: 2px;
    }
    .list_table:has(td.answer) td.date::after {
        display: none;
    }
    .list_table td.title a .lock {
        width: 16px;
        height: 16px;
    }
    .list_table td.data_none {
        height: 70px;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 15px;
    }
    .list_table tr:has(td.data_none) {
        padding: 0;
    }
    .list_table td a {
        font-size: 16px;
    }
}

/********** pagination **********/
.pagination {
    margin-top: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}
.pagination button {
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #777;
}
.pagination button i {
    color: #555;
}
.pagination button.active {
    color: #fff;
    background: #333;
}
.pagination button:disabled i {
    color: #999;
    cursor: inherit;
}

@media screen and (max-width: 1040px) {
    .pagination {
        margin-top: 40px;
        gap: 0;
    }
    .pagination .m_none {
        display: none;
    }
    .pagination button {
        width: 36px;
        height: 36px;
    }
}

/* board_view */
.board_view .tit_area {
    border-bottom: 1px solid #000;
    padding-bottom: 20px;
}
.board_view .tit_area .tit {
    font-size: 40px;
    font-weight: 700;
    margin: 64px 0 24px;
}
.board_view .tit_area .txt_wrap {
    display: flex;
    align-items: center;
}
.board_view .tit_area .txt_wrap span {
    font-weight: 400;
    color: #333;
    font-size: 14px;
    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,
.board_view .tit_area .txt_wrap:has(.state) .date:after {
    display: none;
}
.board_view .tit_area .txt_wrap:has(.state) .date {
    margin-right: 0;
}
.board_view .tit_area .txt_wrap .state {
    padding: 0;
    margin: 0;
}

.board_view .con_area {
    padding: 32px 0 40px;
}
.board_view .con_area .txt_area pre {
    font-size: 18px;
    line-height: 1.6;
    color: #333;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: break-word;
}
.board_view .con_area .txt_area pre p {
    line-height: 1.5;
    margin: 0;
}
.board_view .con_area .txt_area pre table {
    border-collapse: collapse;
    word-break: break-word;
    max-width: 100%;
}
.board_view .con_area .txt_area pre td,
.board_view .con_area .txt_area pre th {
    word-break: break-word;
    overflow-wrap: break-word;
    border: 1px #333 solid;
}
.section_wrap pre {
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: break-word;
}
.board_view .con_area .file_area {
    margin-top: 64px;
}
.board_view .con_area .file_area .tit {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 16px;
    display: block;
}
.board_view .con_area .file_area .file_list {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.board_view .con_area .file_area .file {
    position: relative;
    max-width: 100%;
}
.board_view .con_area .file_area .file a {
    background-color: #f4f4f4;
    border-radius: 100px;
    padding: 10px 20px;
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
}
.board_view .con_area .file_area .file p {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.board_view .con_area .file_area .file .ic {
    width: 28px;
    height: 28px;
    background-color: #555;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    flex-shrink: 0;
}
.board_view .con_area .file_area .file .ic img {
    width: 10px;
}
.board_view .con_area .file_area .file a:hover .ic {
    background-color: #222;
}
.board_view figure {
    max-width: 100%;
}
.board_view figure img,
.board_view img {
    max-width: 100%;
    height: auto !important;
}

.board_nav {
    border-top: 1px solid #ddd;
    padding-top: 32px;
    margin-bottom: 64px;
    display: flex;
    justify-content: space-between;
}
.board_nav .nav {
    display: flex;
    align-items: center;
    gap: 24px;
    width: 50%;
}
.board_nav .nav button {
    background-color: transparent;
    font-weight: 600;
    color: #333;
    font-size: 16px;
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}
.board_nav .nav button i {
    font-size: 20px;
    width: 20px;
}
.board_nav .nav button:disabled,
.board_nav .nav button:disabled i {
    color: #777;
}
.board_nav .nav p.txt {
    color: #777;
}
.board_nav .nav a.txt {
    color: #333;
    width: 180px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.board_nav .nav a.txt:hover {
    text-decoration: underline;
}
.board_nav .nav.next {
    justify-content: flex-end;
}
.board_nav .nav.next a {
    text-align: right;
}
.btn_group {
    display: flex;
    align-items: center;
}
.btn_group.center {
    display: flex;
    justify-content: center;
}
.btn_group.right {
    display: flex;
    justify-content: flex-end;
}

@media screen and (max-width: 1600px) {
    .board_view .tit_area .tit {
        font-size: 32px;
        margin: 32px 0 20px;
    }
    .board_view .con_area {
        padding: 30px 0 32px;
    }
    .board_view .con_area .txt_area pre {
        font-size: 16px;
    }
}

@media screen and (max-width: 1280px) {
    .board_view .tit_area .tit {
        font-size: 20px;
    }
    .board_view .tit_area .txt_wrap span {
        font-size: 13px;
        padding-right: 8px;
        margin-right: 8px;
    }
    .board_view .con_area .txt_area pre {
        font-size: 15px;
    }
    .board_view .con_area .file_area {
        margin-top: 32px;
    }
    .board_view .con_area .file_area .tit {
        font-size: 16px;
    }
    .board_view .con_area .file_area .file a {
        padding: 10px 16px;
        display: flex;
        gap: 12px;
        align-items: center;
    }
    .board_view .con_area .file_area .file a p {
        font-size: 14px;
    }
    .board_view .con_area .file_area .file a .ic {
        width: 20px;
        height: 20px;
    }
    .board_view .con_area .file_area .file a .ic img {
        width: 8px;
    }
}

@media screen and (max-width: 768px) {
    .board_view .con_area .txt_area {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .board_view .con_area .txt_area pre table {
        width: 100% !important;
        table-layout: auto;
        min-width: 0 !important;
    }
    .board_view .con_area .txt_area pre colgroup,
    .board_view .con_area .txt_area pre col {
        width: auto !important;
    }
    .board_view .con_area .txt_area pre td,
    .board_view .con_area .txt_area pre th {
        width: auto !important;
        min-width: 0 !important;
        padding: 6px 8px;
    }
}

@media screen and (max-width: 600px) {
    .board_nav .nav .txt {
        display: none;
    }
}

/* contents */
.contents + .contents {
    margin-top: 64px;
}
.contents.tab_con + .contents {
    margin-top: 0;
}
.contents_tit {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 32px;
}
.contents_tit.bullet::before {
    content: "";
    width: 8px;
    height: 8px;
    background-color: #f55529;
    border-radius: 50%;
    display: inline-block;
    vertical-align: middle;
    margin-right: 12px;
}
.contents .img_wrap {
    text-align: center;
    padding-top: 32px;
    margin: 0 auto;
}
.contents .img_wrap .img,
.contents .img_wrap .img img,
.contents .img_wrap figure img {
    width: 100%;
}
.contents .img_wrap figure:has(.max600) {
    text-align: left;
}
.contents .img_wrap img.max600 {
    max-width: 600px;
}
.contents .img_wrap.management_esg {
    width: 600px;
    height: 800px;
    background: url(../images/management_esg.png) no-repeat center center;
    background-size: contain;
}
.contents .img_wrap.management_safety {
    width: 600px;
    height: 850px;
    background: url(../images/management_safety.png) no-repeat center center;
    background-size: contain;
}
.gray_box {
    padding: 32px 20px;
    background-color: #f4f4f4;
    border-radius: 10px;
}
.txt_wrap + .txt_wrap {
    margin-top: 32px;
}
.txt_row {
    display: flex;
    align-items: center;
}
.txt_row + .txt_row {
    margin-top: 16px;
}
.txt_row span {
    font-size: 16px;
    color: #555;
    font-weight: 700;
    width: 80px;
}
.txt_row p {
    font-size: 16px;
    font-weight: 500;
}
.txt_st1 {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
}
.txt_st2 {
    font-size: 18px;
    font-weight: 700;
}
.txt_st3 {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    line-height: 1.5;
}
.publication .txt_st3 {
    font-size: 15px;
    margin-top: 40px;
    text-align: center;
}
.txt_st3 span {
    color: #555;
    margin-right: 8px;
}
.txt_st4 {
    font-size: 17px;
    font-weight: 600;
    color: #f55529;
}
.txt_st5 {
    font-size: 22px;
    font-weight: 600;
}
.card_wrap {
    display: flex;
    align-items: stretch;
    gap: 12px;
    flex-wrap: wrap;
}
.card_wrap .card {
    width: calc((100% - 12px * 3) / 4);
    aspect-ratio: 1/1;
    padding: 32px 28px;
    background: #f4f4f4 url(../images/card_bg1.png) no-repeat bottom 32px right 32px;
    background-size: 64px;
    border-radius: 20px;
}
.card_wrap .card:nth-child(2) {
    background-image: url(../images/card_bg2.png);
}
.card_wrap .card:nth-child(3) {
    background-image: url(../images/card_bg3.png);
}
.card_wrap .card:nth-child(4) {
    background-image: url(../images/card_bg4.png);
}
.card_wrap .card span {
    font-size: 13px;
    font-weight: 600;
    color: #f55529;
}
.card_wrap .card h5 {
    font-size: 17px;
    font-weight: 700;
    margin: 8px 0 16px;
}
.card_wrap .card p {
    font-size: 14px;
    font-weight: 500;
    color: #333;
    line-height: 1.7;
}

@media screen and (max-width: 1600px) {
    .contents_tit {
        font-size: 22px;
        margin-bottom: 26px;
    }
    .txt_st1 {
        font-size: 16px;
    }
    .txt_st2 {
        font-size: 16px;
    }
    .txt_st3 {
        font-size: 15px;
    }
    .txt_st4 {
        font-size: 15px;
    }
    .txt_st5 {
        font-size: 18px;
    }
    .txt_row span {
        font-size: 15px;
        width: 80px;
    }
    .txt_row p {
        font-size: 15px;
    }
}

@media screen and (max-width: 1280px) {
    .contents + .contents {
        margin-top: 32px;
    }
    .contents_tit {
        font-size: 18px;
        margin-bottom: 20px;
    }
    .gray_box {
        padding: 20px 16px;
    }
    .txt_st1 {
        font-size: 15px;
    }
    .txt_st3,
    .publication .txt_st3 {
        font-size: 14px;
    }
    .txt_st4 {
        font-size: 15px;
    }
    .txt_st5 {
        font-size: 16px;
    }
    .txt_row {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }
    .txt_row span {
        font-size: 14px;
    }
    .txt_row p {
        font-size: 14px;
    }
    .card_wrap .card {
        width: calc((100% - 12px) / 2);
        aspect-ratio: unset;
        padding: 68px 20px 20px;
        border-radius: 10px;
        background-position: top 20px left 20px;
        background-size: 32px;
    }
    .card_wrap .card span {
        display: none;
    }
    .card_wrap .card h5 {
        font-size: 15px;
        margin: 0 0 8px;
    }
    .card_wrap .card p {
        line-height: 1.2;
    }
}

@media screen and (max-width: 768px) {
    .contents .img_wrap.management_esg {
        width: 270px;
        height: 360px;
    }
    .contents .img_wrap.management_safety {
        width: 270px;
        height: 400px;
    }
    .card_wrap .card {
        width: 100%;
    }
}

/* greeting */
.greeting .txt_wrap {
    margin-top: 48px;
}
.greeting .txt_wrap p {
    font-size: 20px;
    font-weight: 500;
    color: #333;
    line-height: 1.5;
}
.greeting .txt_wrap p + p {
    margin-top: 20px;
}
.greeting .txt_wrap h3 {
    margin-top: 64px;
    font-size: 24px;
    font-weight: 700;
    color: #000;
}

@media screen and (max-width: 1600px) {
    .greeting .txt_wrap {
        margin-top: 32px;
    }
    .greeting .txt_wrap p {
        font-size: 18px;
    }
    .greeting .txt_wrap p + p {
        margin-top: 10px;
    }
    .greeting .txt_wrap h3 {
        margin-top: 48px;
        font-size: 20px;
    }
}

@media screen and (max-width: 1280px) {
    .contents .greeting .img_wrap {
        padding-top: 0;
    }
    .greeting .txt_wrap p {
        font-size: 15px;
    }
    .greeting .txt_wrap h3 {
        margin-top: 32px;
        font-size: 18px;
    }
}

/* history */
.history {
    padding-top: 116px;
}
.history .year_wrap {
    display: flex;
    align-items: stretch;
}
.history .year {
    width: 264px;
    border-right: 1px solid #ccc;
    padding: 64px 0;
}
.history .year span {
    font-size: 48px;
    font-weight: 700;
    display: block;
    position: relative;
}
.history .year span::after {
    content: "";
    position: absolute;
    right: -7px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background-color: #f55529;
}
.history .txt_wrap {
    padding: 80px 0 0 95px;
}
.history .txt_wrap .txt {
    font-size: 22px;
    font-weight: 500;
    color: #555;
}
.history .txt_wrap .txt b {
    color: #333;
    font-weight: 700;
    width: 95px;
    display: inline-block;
}
.history .txt_wrap .txt + .txt {
    margin-top: 48px;
}

@media screen and (max-width: 1600px) {
    .history {
        padding-top: 80px;
    }
    .history .year span {
        font-size: 32px;
    }
    .history .txt_wrap {
        padding: 70px 0 0 95px;
    }
    .history .txt_wrap .txt {
        font-size: 20px;
    }
    .history .txt_wrap .txt + .txt {
        margin-top: 32px;
    }
}

@media screen and (max-width: 1280px) {
    .history {
        padding-top: 0;
    }
    .history .year_wrap {
        flex-direction: column;
    }
    .history .year_wrap + .year_wrap {
        margin-top: 40px;
    }
    .history .year {
        width: auto;
        border-right: none;
        padding: 0;
        margin-bottom: 24px;
    }
    .history .year span {
        font-size: 20px;
    }
    .history .year span::after {
        display: none;
    }
    .history .txt_wrap {
        padding: 0;
    }
    .history .txt_wrap .txt {
        font-size: 14px;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }
    .history .txt_wrap .txt + .txt {
        margin-top: 16px;
    }
}

/* mission */
.mission {
    padding-top: 10px;
}
.mission_wrap {
    display: flex;
    align-items: center;
}
.mission_wrap .contents_tit {
    width: 210px;
    flex-shrink: 0;
    margin-bottom: 0;
}
.mission_wrap .txt {
    background-color: #f5f5f5;
    border-radius: 10px;
    padding: 24px;
    font-size: 20px;
    font-weight: 500;
    color: #333;
    text-align: center;
    max-width: 752px;
    width: 100%;
}
.mission_wrap + .mission_wrap {
    margin-top: 40px;
}
.circle_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 24px;
}
.circle_wrap .circle {
    width: 200px;
    aspect-ratio: 1 / 1;
    border: 1px solid #ffb89f;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 10px;
}
.circle_wrap .circle + .circle {
    margin-left: -16px;
}
.circle_wrap .circle span {
    font-size: 17px;
    color: #f55529;
}
.circle_wrap .circle b {
    font-size: 22px;
    font-weight: 700;
    color: #f55529;
}

.vision_wrap::before {
    content: "";
    display: block;
    width: 640px;
    height: 116px;
    background: url(../images/vision_arrow.png) center center no-repeat;
    background-size: contain;
    margin: 36px auto;
}
.vision_wrap .txt {
    max-width: 800px;
    margin: 0 auto;
    font-size: 26px;
    color: #333;
    font-weight: 500;
    text-align: center;
    line-height: 1.7;
    position: relative;
}
.vision_wrap .txt b {
    font-weight: 700;
}
.vision_wrap .txt::before {
    width: 54px;
    height: 54px;
    content: "";
    position: absolute;
    top: -20px;
    left: 0;
    background: url(../images/quote_mark.png) center center no-repeat;
}
.vision_wrap .txt::after {
    width: 54px;
    height: 54px;
    content: "";
    position: absolute;
    top: -20px;
    right: 0;
    background: url(../images/quote_mark.png) center center no-repeat;
    transform: scaleX(-1) scaleY(-1);
}

.strategy_wrap {
    margin-top: 80px;
    padding: 48px 0;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
}
.strategy_wrap .strategy {
    border-bottom: 1px solid #ccc;
    padding-bottom: 48px;
    margin-bottom: 48px;
    display: flex;
    gap: 56px;
    align-items: center;
}
.strategy_wrap .strategy:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.strategy_wrap .strategy h4 {
    width: 160px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background-color: #fcaa8c;
    border-radius: 100px;
    font-size: 22px;
    font-weight: 700;
    flex-shrink: 0;
}
.strategy_wrap .strategy:nth-child(2) h4 {
    background-color: #ff8153;
}

.strategy_wrap .strategy:nth-child(3) h4 {
    background-color: #f55529;
}
.strategy_wrap .txt_wrap {
    display: flex;
    justify-content: space-between;
    width: 100%;
}
.strategy_wrap .txt_wrap .txt {
    width: 33.33%;
}
.strategy_wrap .txt_wrap .txt span {
    font-size: 16px;
    font-weight: 700;
    display: block;
    margin-bottom: 8px;
}
.strategy_wrap .txt_wrap .txt p {
    font-size: 18px;
    font-weight: 500;
    color: #555;
}
.strategy_wrap .txt_wrap .txt.check p {
    font-weight: 600;
    color: #333;
}
.strategy_wrap .txt_wrap .txt.check p + p {
    margin-top: 24px;
}
.strategy_wrap .txt_wrap .txt.check p::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    background: url(../images/check_bullet.svg) center center no-repeat;
    background-size: contain;
    vertical-align: middle;
    margin-right: 8px;
}

@media screen and (max-width: 1280px) {
    .strategy_wrap {
        margin-top: 40px;
        padding: 24px 0;
    }
    .mission_wrap .contents_tit {
        width: 170px;
    }
    .mission_wrap .txt {
        padding: 15px;
        font-size: 15px;
    }
    .circle_wrap {
        max-width: 752px;
        width: 100%;
        justify-content: center;
    }
    .circle_wrap .circle {
        width: 150px;
        gap: 5px;
    }
    .circle_wrap .circle span {
        font-size: 13px;
    }
    .circle_wrap .circle b {
        font-size: 15px;
    }
    .vision_wrap .txt {
        font-size: 20px;
    }
    .vision_wrap::before {
        width: 320px;
        height: 58px;
    }
    .strategy_wrap .strategy {
        padding-bottom: 24px;
        margin-bottom: 24px;
        flex-direction: column;
        gap: 20px;
    }
    .strategy_wrap .strategy h4 {
        font-size: 16px;
        height: 36px;
    }
    .strategy_wrap .txt_wrap .txt span {
        font-size: 13px;
    }
    .strategy_wrap .txt_wrap .txt p {
        font-size: 14px;
    }
    .strategy_wrap .txt_wrap .txt.check p + p {
        margin-top: 16px;
    }
}

@media screen and (max-width: 800px) {
    .mission_wrap {
        flex-direction: column;
        gap: 16px;
    }
    .mission_wrap .contents_tit {
        width: 100%;
    }
    .circle_wrap .circle {
        width: 80px;
    }
    .circle_wrap .circle span:last-child {
        display: none;
    }
    .vision_wrap .txt {
        max-width: 264px;
        font-size: 16px;
    }
    .vision_wrap .txt br {
        display: none;
    }
    .vision_wrap::before {
        width: 100%;
        margin: 16px 0;
    }
    .vision_wrap .txt::before,
    .vision_wrap .txt::after {
        display: none;
    }
    .strategy_wrap .strategy h4 {
        width: 100%;
    }
    .strategy_wrap .txt_wrap {
        flex-direction: column;
    }
    .strategy_wrap .txt_wrap .txt {
        width: 100%;
    }
    .strategy_wrap .txt_wrap .txt + .txt {
        margin-top: 16px;
    }
}

/* organization */
:root {
    --primary: #f55529;
    --light: #ff946d;
    --softbg: #fff2ed;
}
.org_wrap {
    position: relative;
}
.node {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 22px;
    font-weight: 700;
    position: relative;
    z-index: 1;
}
.node_circle {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    color: #fff;
    background-color: var(--primary);
}
.node_pill {
    width: 240px;
    height: 72px;
    border-radius: 100px;
    color: #fff;
    background-color: var(--light);
}
.node_outline {
    width: 240px;
    height: 64px;
    border-radius: 10px;
    border: 1px solid var(--primary);
    color: var(--primary);
    background: #fff;
    font-weight: 600;
}
.node_soft {
    width: 180px;
    height: 60px;
    border-radius: 10px;
    background: var(--softbg);
    color: var(--primary);
    font-weight: 600;
    font-size: 20px;
}

.org_row {
    display: flex;
    justify-content: center;
    gap: 48px;
    position: relative;
}
.org_row_top {
    margin-bottom: 60px;
}
.org_row_mid {
    margin-bottom: 64px;
}

.org_row_top::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    width: 1px;
    height: 64px;
    background-color: var(--light);
    transform: translateX(-50%);
}
.org_row_mid::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    width: 1px;
    height: 32px;
    background-color: var(--light);
    transform: translateX(-50%);
}
.org_row_mid::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 576px;
    height: 1px;
    background-color: var(--light);
    transform: translate(-50%, -50%);
    z-index: 0;
}
.org_branches {
    display: flex;
    justify-content: space-between;
    position: relative;
    max-width: 816px;
    margin: 0 auto;
}
.org_branches::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -32px;
    width: 576px;
    height: 1px;
    background-color: var(--light);
    transform: translateX(-50%);
    z-index: 0;
}
.branch {
    width: 240px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
    position: relative;
}
.branch::before {
    content: "";
    position: absolute;
    top: -32px;
    left: 50%;
    height: 100%;
    width: 1px;
    background-color: var(--light);
    transform: translateX(-50%);
}
.branch:last-child:before {
    height: 126px;
}
.branch:last-child:after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    height: 1px;
    width: 200px;
    background-color: var(--light);
    transform: translate(-50%, -50%);
}
.branch_children {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: center;
    position: relative;
}
.branch_children .node::before {
    content: "";
    position: absolute;
    top: -34px;
    left: 50%;
    height: 34px;
    width: 1px;
    background-color: var(--light);
    transform: translateX(-50%);
}

.org_table_wrap {
    margin-top: 80px;
}
.org_table_wrap + .org_table_wrap {
    margin-top: 64px;
}
.org_table_wrap .table_wrap {
    border-top: 1px solid #000;
}
.org_table th {
    height: 59px;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    color: #555;
    font-size: 16px;
    font-weight: 700;
}
.org_table td {
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    color: #333;
    font-size: 18px;
    font-weight: 500;
    padding: 26px 20px;
    text-align: center;
}
.org_table td p + p {
    margin-top: 10px;
}
.org_table th:last-child,
.org_table td:last-child {
    border-right: none;
}
.organization .org_table th:first-child,
.organization .org_table td:first-child {
    width: 138px;
    padding: 0;
}
.organization .org_table th:last-child,
.organization .org_table td:last-child {
    width: 200px;
}
.organization .org_table td:nth-child(2) {
    text-align: left;
}
.publication .org_table_wrap {
    margin-top: 0;
}

@media (max-width: 1600px) {
    .node {
        font-size: 18px;
    }
    .node_circle {
        width: 160px;
        height: 160px;
    }
    .node_pill,
    .node_outline {
        width: 200px;
        height: 60px;
    }
    .branch:last-child:before {
        height: 124px;
    }
    .branch_children .node::before {
        top: -32px;
    }
    .org_table th {
        font-size: 14px;
        height: 48px;
    }
    .org_table td {
        font-size: 16px;
        padding: 20px 16px;
    }
}

@media (max-width: 1280px) {
    .node {
        font-size: 16px;
    }
    .node_circle {
        width: 120px;
        height: 120px;
    }
    .node_pill,
    .node_outline {
        width: 100px;
        height: 56px;
    }
    .node_soft {
        width: 87px;
        height: 40px;
    }
    .org_row_top {
        margin-bottom: 32px;
    }
    .org_row_mid {
        margin-bottom: 32px;
    }
    .org_row_mid::before {
        width: 133px;
    }
    .org_row_mid::after {
        height: 16px;
    }
    .org_row {
        gap: 16px;
    }
    .node_soft {
        font-size: 14px;
    }
    .org_branches {
        max-width: 245px;
    }
    .org_branches::before {
        width: 144px;
        top: -17px;
    }
    .branch {
        width: 101px;
        gap: 32px;
    }
    .branch::before {
        top: -17px;
    }
    .branch_children {
        gap: 7px;
    }
    .branch:last-child:before {
        height: 93px;
    }
    .branch:last-child:after {
        width: 95px;
        top: 59%;
    }
    .branch_children .node::before {
        top: -13px;
        height: 14px;
    }

    .org_table_wrap {
        margin-top: 40px;
    }
    .org_table_wrap + .org_table_wrap {
        margin-top: 32px;
    }
    .org_table th {
        height: 40px;
        font-size: 13px;
    }
    .org_table td {
        font-size: 14px;
        padding: 16px 12px;
    }

    .publication .org_table_wrap .table_wrap {
        overflow: scroll;
    }
}

@media (max-width: 900px) {
    .publication .org_table_wrap .table_wrap {
        overflow: scroll;
    }
    .publication .org_table_wrap .table_wrap table {
        width: 900px;
    }
}

@media (max-width: 700px) {
    .organization .org_table th:first-child,
    .organization .org_table td:first-child {
        width: 70px;
        padding: 6px;
    }
    .organization .org_table th:last-child,
    .organization .org_table td:last-child {
        width: 140px;
    }
}

@media (max-width: 600px) {
    .organization .org_table_wrap .table_wrap {
        overflow: scroll;
    }
    .organization .org_table_wrap .table_wrap table {
        width: 560px;
    }
}

@media (max-width: 374px) {
    .org_branches {
        margin: 0;
    }
}

/* map */
.map_list {
    display: flex;
    align-items: center;
    gap: 64px;
}
.map_list .item {
    display: flex;
    align-items: center;
    gap: 16px;
}
.map_list .item .ic {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    background: #f4f4f4 url(../images/ic_map.svg) center center no-repeat;
    background-size: 26px;
}
.map_list .item:nth-child(2) .ic {
    background: #f4f4f4 url(../images/ic_tel.svg) center center no-repeat;
    background-size: 26px;
}
.map_list .item:nth-child(3) .ic {
    background: #f4f4f4 url(../images/ic_fax.svg) center center no-repeat;
    background-size: 26px;
}
.map_list .item .txt span {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
    display: block;
    margin-bottom: 10px;
}
.map_list .item .txt p {
    font-size: 20px;
    font-weight: 500;
    color: #333;
}

.map_wrap {
    margin: 40px 0 55px;
    border-radius: 0;
}
.map_wrap .map_landing {
    width: 100%;
    aspect-ratio: 1200 / 705;
}
.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: #f55529;
    color: #fff;
    width: 160px;
    height: 54px;
    font-size: 18px;
    font-weight: 700;
    border-radius: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.5px;
}
.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 #f35a2b;
    margin: 0;
}

.map_info {
    display: flex;
}
.map_info > * {
    width: 50%;
}
.map_info + .map_info {
    margin-top: 48px;
    padding-top: 48px;
    border-top: 1px solid #ddd;
}
.map_info .txt_wrap {
    display: flex;
    justify-content: space-between;
}
.map_info .txt_wrap .txt span {
    font-size: 17px;
    font-weight: 700;
}
.map_info .txt_wrap .txt p {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    margin-top: 8px;
}
.map_info .txt_wrap .txt .desc {
    font-size: 14px;
    color: #555;
    margin-top: 20px;
}
.map_link {
    background-color: #555;
    border-radius: 8px;
    color: #fff;
    width: 160px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    font-size: 15px;
    font-weight: 600;
    transition: all 0.3s;
}
.map_link .map_ic {
    background: url(../images/ic_map.svg) center center no-repeat;
    background-size: contain;
    width: 18px;
    height: 18px;
    filter: invert(1) brightness(10);
    vertical-align: bottom;
}
.map_link:hover {
    background-color: #333;
}

@media (max-width: 1600px) {
    .map_list .item .ic {
        width: 50px;
        height: 50px;
    }
    .map_list .item .txt span {
        font-size: 16px;
    }
    .map_list .item .txt p {
        font-size: 15px;
    }
}

@media (max-width: 1280px) {
    .map_list {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
    }
    .map_list .item .ic {
        display: none;
    }
    .map_list .item .txt {
        display: flex;
        gap: 8px;
    }
    .map_wrap {
        margin: 20px 0 32px;
    }
    .map_info {
        flex-direction: column;
    }
    .map_info > * {
        width: 100%;
    }
    .map_info + .map_info {
        margin-top: 32px;
        padding-top: 32px;
    }
    .map_info .txt_wrap .txt span {
        font-size: 16px;
    }
    .map_info .txt_wrap .txt p {
        font-size: 15px;
    }
    .map_info .txt_wrap + .txt_wrap {
        margin-top: 20px;
    }
    .map_link {
        width: 128px;
        height: 36px;
        font-size: 14px;
    }
    .map_wrap .roughmap_maker_label .roughmap_lebel_text {
        width: 120px;
        height: 36px;
        font-size: 15px;
    }
}

/* preparing */
.preparing .img_wrap {
    width: 200px;
    height: 200px;
    margin: 0 auto;
    background: url(../images/preparing_img.png) no-repeat center center;
    background-size: contain;
}
.preparing .preparing_txt {
    font-size: 24px;
    font-weight: 700;
    text-align: center;
}

@media (max-width: 1280px) {
    .preparing {
        padding-top: 100px;
    }
    .preparing .img_wrap {
        width: 140px;
        height: 140px;
    }
    .preparing .preparing_txt {
        font-size: 18px;
    }
}

/* facility */
.link_btn {
    background-color: #333;
    color: #fff;
    border-radius: 8px;
    padding: 16px 24px;
    width: fit-content;
    font-size: 16px;
    font-weight: 600;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 48px;
    transition: all 0.3s;
}
.link_btn:hover {
    background-color: #f55529;
}
.link_btn .ic {
    width: 16px;
    height: 16px;
    background: url(../images/arrow_more.png) center center no-repeat;
    background-size: 9px;
    margin-left: 4px;
}
.facility .txt_st3 {
    line-height: 1.6;
}
.facility .txt_st3 + .txt_st3 {
    margin-top: 20px;
}

.txt_st1 + .link_btn {
    margin-top: 32px;
}

@media (max-width: 1280px) {
    .link_btn {
        padding: 10px 20px;
        font-size: 15px;
        margin-top: 20px;
    }
    .txt_st1 + .link_btn {
        margin-top: 20px;
    }
}

/* form */
.required_note {
    text-align: right;
    color: #f5081e;
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 16px;
}
.form {
    border-top: 1px solid #000;
    padding: 40px 0;
}
.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_title + * {
    margin-top: 8px;
}
.form_title + .check_radio_group {
    margin-top: 16px;
}
.form_input,
.form_select,
.form_textarea {
    width: 100%;
    background: #fff;
    border: 1px solid #ddd;
    padding: 0 20px;
    height: 56px;
    border-radius: 8px;
    font-size: 16px;
    color: #333;
}
.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/select_ic.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 .gray_box {
    padding: 32px;
    border-radius: 8px;
    margin-top: 40px;
}
.form .gray_box .txt_st2 {
    margin-bottom: 14px;
    display: block;
}
.form .gray_box ul {
    margin-top: 14px;
}
.form .gray_box ul li {
    font-size: 14px;
    color: #555;
    line-height: 1.5;
}
.form .gray_box ul li::before {
    content: "·";
    margin-right: 3px;
}
.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) {
    .required_note {
        font-size: 13px;
        margin-bottom: 12px;
    }
    .form {
        padding: 24px 0;
    }
    .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;
    }
    .check_radio_group {
        gap: 20px;
        max-width: 335px;
        width: 100%;
    }
    .check_radio_group > * {
        width: calc((100% - 20px) / 2);
    }
    .form .gray_box {
        padding: 24px 16px;
    }
    .form .gray_box ul li {
        font-size: 13px;
    }
    .form .btn {
        margin-top: 40px;
    }
    .form_input + .btn_group .btn {
        min-width: 88px;
        height: 40px;
        font-size: 15px;
    }
}

/* modal */
.modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 190;
}
.dimBg {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}
#passwordModal .modal-layer {
    max-width: 400px;
    width: 100%;
    background: #fff;
    border-radius: 20px;
    padding: 40px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.modal-title {
    font-size: 24px;
    font-weight: 700;
    text-align: center;
}
.modal-body {
    padding: 32px 0 48px;
}
.modal_text {
    font-size: 16px;
    font-weight: 500;
    color: #333;
}
.modal_text + .form_control {
    margin-top: 8px;
}
.form_control {
    width: 100%;
    height: 56px;
    padding: 0 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 16px;
    color: #333;
}
.form_control:focus-visible {
    outline: none;
    box-shadow: inset 0 0 0 2px #f55529;
    border-color: #f55529;
}
.modal-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.modal-footer .btn {
    min-width: 120px;
    height: 48px;
    font-size: 16px;
}

@media screen and (max-width: 1280px) {
    #passwordModal .modal-layer {
        width: 95%;
        padding: 30px;
    }
}

/*************** content - bottom ***************/
.content_bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 40px;
}
.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;
}

.answer_area {
    border-top: 1px solid #ddd;
    padding: 40px 0 20px;
}
.answer_box {
    background-color: #fbf1ee;
    border-radius: 8px;
    padding: 24px;
}
.answer_box .info {
    display: flex;
    align-items: center;
    margin-bottom: 16px;
}
.answer_box .info span {
    font-size: 14px;
    color: #333;
    font-weight: 400;
}
.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: 16px;
    font-weight: 500;
    color: #333;
}

@media screen and (max-width: 1280px) {
    .content_bottom {
        gap: 8px;
        margin-top: 20px;
    }
    .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 {
        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;
    }
}

/* userPage */
.userPage {
    width: 100%;
    max-width: 770px;
    margin: 0 auto;
    padding: 88px 20px 0;
}
.userPage .tit_area {
    text-align: center;
}
.userPage .tit_area .logo {
    width: 200px;
    margin: 0 auto 48px;
    display: block;
}
.userPage .tit_area .logo img {
    width: 100%;
}
.userPage .tit_area .tit {
    font-size: 48px;
    font-weight: 700;
    display: block;
}

.login_wrap {
    max-width: 400px;
    margin: 40px auto 0;
}
.btn_login {
    max-width: 400px;
    width: 100%;
    height: 56px;
    border-radius: 100px;
    background-color: #000;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 40px 0;
}
.input_wrap {
    position: relative;
}
.login_wrap .input_wrap + .input_wrap {
    margin-top: 12px;
}
.login_wrap .checks {
    margin-top: 16px;
}
.login_wrap .checks input[type="checkbox"] + label {
    font-size: 15px;
    color: #333;
}
.clear_btn {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
}
.clear_btn i {
    font-size: 16px;
}
.login_wrap .link_wrap {
    display: block;
}
.login_wrap .link_wrap span {
    text-align: center;
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: #555;
    margin-bottom: 16px;
}
.login_wrap .link_wrap .wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}
.login_wrap .link_wrap .wrap .sns_btn {
    width: 52px;
    height: 52px;
    border-radius: 50%;
}
.login_wrap .link_wrap .wrap .sns_btn.kakao {
    background: url(../images/icon_kakao.png) no-repeat center center / contain;
}
.login_wrap .link_wrap .wrap .sns_btn.google {
    background: #fff url(../images/icon_google.png) no-repeat center center / 19px;
    border: 2px solid #ddd;
}
.login_wrap .link_wrap .wrap .sns_btn.naver {
    background: url(../images/icon_naver.png) no-repeat center center / contain;
}

.userPage > .link_wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 64px;
}
.userPage > .link_wrap .links {
    width: 100%;
    background-color: #eee;
    border-radius: 8px;
    padding: 27px 20px;
}
.userPage > .link_wrap .links span {
    font-size: 18px;
    font-weight: 600;
    color: #000;
}
.userPage > .link_wrap .links p {
    font-size: 14px;
    font-weight: 500;
    color: #555;
    margin-top: 8px;
}

@media screen and (max-width: 1280px) {
    .userPage {
        padding-top: 40px;
    }
    .userPage .tit_area .logo {
        width: 130px;
        margin-bottom: 16px;
    }
    .userPage .tit_area .tit {
        font-size: 30px;
    }
    .login_wrap .checks input[type="checkbox"] + label {
        font-size: 13px;
    }
    .btn_login {
        height: 52px;
        font-size: 16px;
        margin: 40px 0 32px;
    }
    .login_wrap .link_wrap span {
        display: none;
    }
    .login_wrap .link_wrap .wrap .sns_btn {
        width: 44px;
        height: 44px;
    }
    .login_wrap .link_wrap .wrap .sns_btn.google {
        background-size: 16px;
    }
    .userPage > .link_wrap {
        margin-top: 40px;
        flex-direction: column;
    }
    .userPage > .link_wrap .links {
        padding: 16px;
    }
    .userPage > .link_wrap .links span {
        font-size: 15px;
    }
    .userPage > .link_wrap .links p {
        font-size: 13px;
        margin-top: 4px;
    }
}

/* join */
.step_wrap {
    margin: 64px auto 72px;
    max-width: 530px;
}
.step_wrap ol {
    display: flex;
    align-items: center;
    justify-content: center;
}
.step_wrap ol li {
    width: 25%;
    text-align: center;
}
.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: 800;
}
.step_wrap .step_num::after {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(100% + 7px);
    transform: translateY(-50%);
    width: 100%;
    height: 6px;
    background: url(../images/step_dot.png) no-repeat center center;
}
.step_wrap .step_num::before {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(100% + 7px);
    transform: translateY(-50%);
    width: 100%;
    height: 6px;
    background: url(../images/step_dot.png) no-repeat center center;
}
.step_wrap li:first-child .step_num:before,
.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: 800;
    color: #000;
}

.form_group.gray_box {
    margin: 0 0 48px;
    padding: 24px;
}
.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: 20px;
    font-weight: 800;
    margin-bottom: 12px;
}
.form_group .content {
    padding: 24px 20px;
    border: 1px solid #ccc;
    border-radius: 8px;
    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;
}
.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: 56px;
}

.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;
}

.gray_box.join {
    padding: 68px 24px;
    text-align: center;
    border-radius: 20px;
    background-color: #f5f5f5;
}
.gray_box.join .icon {
    width: 72px;
    height: 72px;
    background: url(../images/verify_icon.png) no-repeat center center / contain;
    margin: 0 auto 16px;
}
.gray_box.join .icon.done {
    background: url(../images/join_icon.png) no-repeat center center / contain;
}
.gray_box.join .tit {
    font-size: 24px;
    font-weight: 800;
    margin-bottom: 12px;
}
.gray_box.join .desc {
    font-size: 16px;
    font-weight: 500;
    color: #555;
}
.gray_box.join .btn_group {
    margin: 40px 0 0;
    gap: 12px;
}
.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;
}
.field_group .desc.red {
    color: #f5081e;
}
.field_group .desc.green {
    color: #00b938;
}

@media screen and (max-width: 1280px) {
    .step_wrap {
        margin: 32px auto 40px;
        max-width: 280px;
    }
    .step_wrap ol {
        gap: 12px;
    }
    .step_wrap ol li {
        width: fit-content;
    }
    .step_wrap .step_num {
        width: 32px;
        height: 32px;
        font-size: 13px;
        margin: 0 auto 8px;
    }
    .step_wrap .step_txt {
        font-size: 13px;
    }
    .step_wrap .step_num::after,
    .step_wrap .step_num::before {
        display: none;
    }

    .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;
    }

    .gray_box.join {
        border-radius: 8px;
        padding: 40px 60px;
    }
    .gray_box.join .icon {
        width: 40px;
        height: 40px;
        margin-bottom: 12px;
    }
    .gray_box.join .tit {
        font-size: 20px;
        margin-bottom: 8px;
    }
    .gray_box.join .desc {
        font-size: 14px;
        line-height: 20px;
    }
    .gray_box.join .btn_group {
        margin-top: 24px;
    }

    .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;
    }
}

/* gallery */
.gallery_wrap {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 42px;
}
.gallery_wrap:has(.data_none) {
    display: flex;
    width: 100%;
    justify-content: center;
}
.gallery_item {
    display: block;
    min-width: 0;
}
.gallery_item .thumbnail {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    display: block;
    border-radius: 20px;
}
.gallery_item .tit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    margin: 16px 0 10px;
    width: 100%;
    min-width: 0;
}
.gallery_item .tit .txt {
    font-size: 20px;
    font-weight: 700;
    display: block;
    min-width: 0;
    flex: 1 1 auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: all 0.3s;
}
.gallery_item .tit i {
    font-size: 20px;
    flex: 0 0 auto;
    color: #999;
    transition: all 0.3s;
}
.gallery_item .date {
    font-size: 14px;
    color: #333;
    font-weight: 400;
}
.gallery_item:hover .tit .txt,
.gallery_item:hover .tit i {
    color: #f55529;
}
.gallery_wrap .data_none{
    font-size: 16px;
    color: #999;
    padding-top: 50px;
}

@media (max-width: 1280px) {
    .gallery_wrap {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .gallery_item .tit {
        gap: 20px;
        margin: 12px 0 8px;
    }
    .gallery_item .tit .txt {
        font-size: 17px;
    }
    .gallery_item .tit i {
        font-size: 16px;
    }
    .gallery_item .date {
        font-size: 12px;
    }
}

@media (max-width: 786px) {
    .gallery_wrap {
        grid-template-columns: 1fr;
    }
}
