@charset "UTF-8";


/* ---------- 공통 ---------- */
.hackathon .hk-blind{
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

/* 서브비주얼 (기존 .sub-vs 구조 재사용, 배경만 교체) */
#c-sub.hackathon .sub-vs{
    background-image: url(../images/hackathon/hackathon_visual.png);
}

/* 컨텐츠 영역 여백 */
#c-sub.hackathon .sub-cont{
    padding: 70px 0 150px;
}

/* 섹션 타이틀 (기존 .tit-badge 재사용, 아이콘만 교체) */
.hackathon .tit-badge.hk-tit{
    margin-bottom: 30px;
    padding-left: 31px;
    font-size: 22px;
    font-weight: 700;
    line-height: 28px;
    color: #111;
    background: url(../images/hackathon/hackathon_ico_title.svg) left center / 20px 20px no-repeat;
}

/* 섹션 박스 */
.hackathon .hk-box{
    margin-top: 50px;
    padding: 40px;
    background: #fff;
    border: 1px solid #e9e9e9;
    border-radius: 20px 0 0 0;
}

/* 버튼 */
.hackathon .hk-btn-wrap{
    display: flex;
    justify-content: center;
    margin-top: 40px;
}
.hackathon .hk-btn{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 260px;
    height: 68px;
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    background: #00148f;
    border-radius: 54px;
    transition: background-color .2s;
}
.hackathon .hk-btn:hover,
.hackathon .hk-btn:focus{
    color: #fff;
    background: #1d52f3;
}

/* 테이블 (기존 table 전역 스타일 위에 시안 컬러만 덮어씀) */
.hackathon .hk-table{
    border: 1px solid #e9e9e9;
    border-radius: 15px;
    overflow: hidden;
    background: #fff;
}
.hackathon .hk-table table{
    border-radius: 0;
}
.hackathon .hk-table table::after{
    display: none;
}
.hackathon .hk-table tr{
    border-bottom: 1px solid #e9e9e9;
}
.hackathon .hk-table tbody tr:last-child{
    border-bottom: 0;
}
.hackathon .hk-table th,
.hackathon .hk-table td{
    padding: 10px;
    border-left: 0;
    border-right: 1px solid #e9e9e9;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    color: #222;
    text-align: center;
    vertical-align: middle;
    word-break: keep-all;
}
.hackathon .hk-table th:last-child,
.hackathon .hk-table td:last-child{
    border-right: 0;
}
.hackathon .hk-table thead th{
    padding: 12px 10px;
    font-weight: 600;
    color: #fff;
    background: #00148f;
}
.hackathon .hk-table tbody th{
    height: 80px;
    font-weight: 700;
    background: #f0f5ff;
}
.hackathon .hk-table td.hk-point{
    color: #00148f;
}
.hackathon .hk-table td.hk-note{
    padding: 10px 24px;
    text-align: left;
}
.hackathon .hk-table td.hk-note p,
.hackathon .hk-table td.hk-desc{
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: #222;
}
.hackathon .hk-table .hk-indent{
    display: inline-block;
    padding-left: 1.3em;
}

/* ---------- 1_대회안내 ---------- */
.hackathon .hk-page-tit{
    text-align: center;
    color: #222;
}
.hackathon .hk-page-tit span{
    display: block;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.3;
}
.hackathon .hk-page-tit h3{
    margin-top: 6px;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.3;
    word-break: keep-all;
}

/* 대회소개 */
.hackathon .hk-intro{
    margin-top: 50px;
    padding: 48px 30px;
    border: 1px dashed #00148f;
    border-radius: 20px 0 0 0;
    background:
        url(../images/hackathon/hackathon_intro_bg.png) center / cover no-repeat,
        linear-gradient(93.5deg, #f0f5ff 0%, #fbfdff 51.44%);
    background-blend-mode: soft-light, normal;
    word-break: keep-all;
}
.hackathon .hk-intro h4{
    font-size: 30px;
    font-weight: 500;
    line-height: 1.3;
    color: #222;
}
.hackathon .hk-intro h4 strong{
    font-weight: 700;
    color: #00148f;
}
.hackathon .hk-intro > p{
    margin-top: 20px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #222;
}
.hackathon .hk-intro > p strong{
    font-weight: 600;
}
.hackathon .hk-period{
    margin: 30px 0 0;
    padding: 26px 30px;
    background: #fff;
    border: 1px solid #00148f;
    border-radius: 20px;
}
.hackathon .hk-period dt{
    font-size: 16px;
    font-weight: 600;
    color: #00148f;
}
.hackathon .hk-period dd{
    margin: 10px 0 0;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    color: #222;
}

/* 대회주제 */
.hackathon .hk-theme-txt{
    padding: 28px 20px;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
    text-align: center;
    word-break: keep-all;
    background: linear-gradient(to right, #1d52f3, #00148f);
    border-radius: 20px;
}

/* 대회일정 */
.hackathon .hk-step{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 26px 0;
    max-width: 991px;
    margin: 0 auto;
}
.hackathon .hk-step > li{
    display: flex;
    align-items: center;
}
.hackathon .hk-step > li + li::before{
    content: "";
    flex-shrink: 0;
    width: 27px;
    height: 35px;
    margin: 0 5px;
    background: url(../images/hackathon/hackathon_ico_arrow.svg) center / 27px 34.56px no-repeat;
}
.hackathon .hk-step-item{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 220px;
    height: 150px;
    padding: 26px 10px;
    text-align: center;
    border: 1px solid #e9e9e9;
    border-radius: 15px;
    background: linear-gradient(-55.7deg, #f0f5ff 0.16%, #fff 99.85%);
}
.hackathon .hk-step-item strong{
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    color: #222;
}
.hackathon .hk-step-item p{
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    color: #00148f;
    white-space: nowrap;
}

/* 시상내역 */
.hackathon .hk-award tbody th{
    color: #00148f;
}
.hackathon .hk-notice{
    margin-top: 20px;
    padding: 18px 24px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    color: #fff;
    background: #333a68;
    border-radius: 11px;
}

/* ---------- 2_참가신청 공통 ---------- */
.hackathon .hk-page-tit h3:first-child{
    margin-top: 0;
}

/* 진행단계 */
.hackathon .hk-steps{
    display: flex;
    justify-content: center;
    margin-top: 60px;
}
.hackathon .hk-steps > li{
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 270px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    color: #c4c4c4;
    text-align: center;
    word-break: keep-all;
}
.hackathon .hk-steps > li::before{
    content: "";
    position: relative;
    z-index: 1;
    width: 50px;
    height: 50px;
    margin-bottom: 10px;
    background: url(../images/hackathon/hackathon_step_off.svg) center / 50px 50px no-repeat;
}
.hackathon .hk-steps > li + li::after{
    content: "";
    position: absolute;
    top: 24px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: #ecebeb;
}
.hackathon .hk-steps > li span{
    display: block;
}
.hackathon .hk-steps > li.on{
    color: #00148f;
}
.hackathon .hk-steps > li.on::before{
    /* 그림자 포함 68.6px 아이콘, 레이아웃은 50px 유지 */
    width: 68.6px;
    height: 68.6px;
    margin: -9.3px -9.3px 0.7px;
    background-image: url(../images/hackathon/hackathon_step_on.svg);
    background-size: 68.6px 68.6px;
}

/* 박스 타이틀 */
.hackathon .hk-box-tit{
    margin-bottom: 40px;
    padding: 13px 0 30px;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    color: #111;
    border-bottom: 1px solid #111;
    word-break: keep-all;
}

/* 이전 / 다음 버튼 */
.hackathon .hk-btn-group{
    display: flex;
    justify-content: center;
    gap: 11px;
    margin-top: 70px;
}
.hackathon .hk-btn-group .hk-btn{
    width: 260px;
    height: 68px;
    font-size: 18px;
}
.hackathon .hk-btn.hk-btn-line{
    color: #222;
    background: #fff;
    border: 1px solid #eae9e9;
}
.hackathon .hk-btn.hk-btn-line:hover,
.hackathon .hk-btn.hk-btn-line:focus{
    color: #00148f;
    background: #fff;
    border-color: #00148f;
}

/* ---------- 2-1_참가신청(step1) ---------- */
.hackathon .hk-agree-box{
    margin-top: 60px;
    padding: 50px 40px;
}
.hackathon .hk-agree-intro{
    font-size: 16px;
    line-height: 1.6;
    color: #222;
    word-break: keep-all;
}
.hackathon .hk-agree-intro strong{
    display: block;
    font-weight: 600;
    color: #111;
}
.hackathon .hk-agree-intro p{
    margin-top: 12px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
}

/* 약관 */
.hackathon .hk-terms{
    margin-top: 40px;
    padding: 30px;
    border: 1px solid #dedede;
    border-radius: 20px;
    word-break: keep-all;
}
.hackathon .hk-terms dl{
    margin: 0;
}
.hackathon .hk-terms dl + dl{
    margin-top: 36px;
}
.hackathon .hk-terms dt{
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    color: #111;
}
.hackathon .hk-terms dd{
    margin: 12px 0 0;
}
.hackathon .hk-terms li,
.hackathon .hk-terms p{
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: #222;
}
.hackathon .hk-terms li{
    position: relative;
    padding-left: 22px;
}
.hackathon .hk-terms li + li{
    margin-top: 4px;
}
.hackathon .hk-terms li::before{
    content: "";
    position: absolute;
    top: 11px;
    left: 9px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #222;
}
.hackathon .hk-terms ul + p{
    margin-top: 4px;
}
.hackathon .hk-terms p strong{
    font-weight: 600;
    color: #111;
}

/* 동의 체크 (기존 .chkInput 구조 재사용, 아이콘만 교체) */
.hackathon .hk-agree{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    margin-top: 60px;
}
.hackathon .hk-agree .chkInput{
    margin-top: 0;
}
.hackathon .hk-agree .chkInput input{
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    opacity: 0;
}
.hackathon .hk-agree .chkInput input + label{
    height: auto;
    padding-left: 28px;
    font-size: 16px;
    font-weight: 500;
    line-height: 22px;
    color: #222;
    word-break: keep-all;
}
.hackathon .hk-agree .chkInput input + label::before{
    top: 1px;
    width: 20px;
    height: 20px;
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 3px;
}
.hackathon .hk-agree .chkInput input:checked + label::before{
    background: url(../images/hackathon/hackathon_chk_on.svg) center / 20px 20px no-repeat;
    border-color: transparent;
}
.hackathon .hk-agree .chkInput input:focus-visible + label::before{
    outline: 2px solid #1d52f3;
    outline-offset: 2px;
}
.hackathon .hk-agree .chkInput em{
    font-style: normal;
    color: #f61e1e;
}

/* 진행단계 - 완료 상태 */
.hackathon .hk-steps > li.done{
    color: #00148f;
}
.hackathon .hk-steps > li.done::before{
    background-image: url(../images/hackathon/hackathon_step_done.svg);
}
.hackathon .hk-steps > li.done::after,
.hackathon .hk-steps > li.on::after{
    background: #00148f;
}

/* ---------- 폼 공통 (2-2 / 3-1 / 3-2) ---------- */
.hackathon .hk-form-box{
    margin-top: 60px;
}
.hackathon .hk-form-box + .hk-form-box{
    margin-top: 40px;
}
.hackathon .hk-form-box .hk-box-tit{
    margin-bottom: 24px;
}
.hackathon .hk-rows{
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.hackathon .hk-row{
    display: flex;
    align-items: center;
    gap: 10px;
}
.hackathon .hk-row.hk-row-top{
    align-items: flex-start;
}
.hackathon .hk-row.hk-row-col{
    flex-direction: column;
    align-items: stretch;
}
.hackathon .hk-label{
    flex: 0 0 140px;
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    color: #111;
    word-break: keep-all;
}
.hackathon .hk-label em{
    font-style: normal;
    color: #f61e1e;
}
.hackathon .hk-row-top > .hk-label{
    padding-top: 12px;
}
.hackathon .hk-row-col > .hk-label{
    flex-basis: auto;
}
.hackathon .hk-field{
    display: flex;
    flex: 1;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.hackathon .hk-sep{
    flex-shrink: 0;
    font-size: 16px;
    color: #999;
}

/* 입력 */
.hackathon .hk-input{
    width: 100%;
    height: 44px;
    padding: 0 12px;
    font-size: 16px;
    font-weight: 400;
    color: #222;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #eae9e9;
    border-radius: 0;
    outline: 0;
}
.hackathon .hk-input:focus{
    border-bottom-color: #00148f;
}
.hackathon .hk-input.hk-input-box{
    background: #fff;
    border: 1px solid #eae9e9;
    border-radius: 6px;
}
.hackathon .hk-input.hk-input-box:focus{
    border-color: #00148f;
}
.hackathon .hk-textarea{
    display: block;
    width: 100%;
    height: 201px;
    padding: 16px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: #222;
    background: #fff;
    border: 1px solid #eae9e9;
    border-radius: 6px;
    outline: 0;
    resize: vertical;
}
.hackathon .hk-textarea:focus{
    border-color: #00148f;
}

/* 셀렉트 (기존 select 전역 스타일 위에 크기·아이콘만 덮어씀) */
.hackathon .hk-select{
    flex-shrink: 0;
    width: 125px;
    height: 44px;
    padding: 0 40px 0 18px;
    font-size: 16px;
    font-weight: 600;
    color: #111;
    background: #fff url(../images/hackathon/hackathon_ico_select.svg) right 14px center / 20px 20px no-repeat;
    border: 1px solid #eae9e9;
    border-radius: 4px;
    outline: 0;
    cursor: pointer;
}
.hackathon .hk-select:focus{
    border-color: #00148f;
}
.hackathon .hk-select.hk-select-line{
    flex: 1;
    width: auto;
    padding: 0 32px 0 12px;
    font-weight: 400;
    color: #222;
    background-color: transparent;
    background-position: right 8px center;
    border: 0;
    border-bottom: 1px solid #eae9e9;
    border-radius: 0;
}

/* 연락처 / 이메일 */
.hackathon .hk-tel{
    gap: 0;
}
.hackathon .hk-tel .hk-input,
.hackathon .hk-tel .hk-select{
    flex: 1;
    min-width: 0;
}
.hackathon .hk-tel .hk-sep{
    padding: 0 6px;
}
.hackathon .hk-email .hk-input{
    flex: 1 1 0;
    min-width: 0;
}
.hackathon .hk-email .hk-sep{
    padding: 0 2px;
    color: #666;
}
.hackathon .hk-email .hk-select{
    width: 160px;
}
.hackathon .hk-email .hk-input[readonly]{
    color: #222;
    cursor: default;
}

/* 작은 버튼 (파일 추가 / 다운로드) */
.hackathon .hk-btn-sm{
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 125px;
    height: 43px;
    margin: 0;
    padding: 0 18px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    color: #111;
    background: #fff;
    border: 1px solid #eae9e9;
    border-radius: 4px;
    cursor: pointer;
    transition: border-color .2s, color .2s;
}
.hackathon .hk-btn-sm:hover,
.hackathon .hk-btn-sm:focus{
    color: #00148f;
    border-color: #00148f;
}
.hackathon .hk-btn-sm::before{
    content: "";
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background: center / 20px 20px no-repeat;
}
.hackathon .hk-btn-sm.hk-ico-upload::before{
    background-image: url(../images/hackathon/hackathon_ico_upload.svg);
}
.hackathon .hk-btn-sm.hk-ico-download::before{
    background-image: url(../images/hackathon/hackathon_ico_download.svg);
}

/* 첨부파일 */
.hackathon .hk-files{
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.hackathon .hk-file-item{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 48px;
    padding: 12px;
    background: #f8f8f8;
    border-radius: 6px;
}
.hackathon .hk-file-item.hk-file-view{
    padding: 2px 0 2px 12px;
    background: transparent;
}
.hackathon .hk-file-name{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 10px;
    min-width: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: #222;
    word-break: break-all;
}
.hackathon .hk-file-name span{
    color: #999;
}
.hackathon .hk-file-del{
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    position: relative;
    padding: 0;
    background: url(../images/hackathon/hackathon_ico_delete.svg) center / 24px 24px no-repeat;
    border: 0;
}
/* 파일 추가 (기존 .file-upload 구조 재사용) */
.hackathon .file-upload.hk-file-add{
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 48px;
}
.hackathon .hk-file-guide{
    min-width: 0;
    padding: 0 12px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: #999;
    word-break: keep-all;
}
.hackathon .hk-file-guide.on{
    color: #222;
    word-break: break-all;
}
.hackathon .file-upload input[type="file"]:focus-visible + .hk-btn-sm{
    color: #00148f;
    border-color: #00148f;
}

/* 보기 (3-2 / 2-3) */
.hackathon .hk-row-2{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.hackathon .hk-value{
    flex: 1;
    min-width: 0;
    margin: 0;
    padding: 12px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: #222;
    word-break: keep-all;
    overflow-wrap: anywhere;
}
.hackathon .hk-value.hk-point{
    font-weight: 600;
    color: #00148f;
}
.hackathon .hk-divider{
    height: 1px;
    background: #d9d9d9;
}

/* ---------- 2-3_참가신청(step3) ---------- */
.hackathon .hk-complete{
    margin-top: 60px;
    text-align: center;
}
.hackathon .hk-complete-head{
    padding: 13px 0 36px;
    border-bottom: 1px solid #111;
    word-break: keep-all;
}
.hackathon .hk-complete-head::before{
    content: "";
    display: block;
    width: 104px;
    height: 104px;
    margin: 0 auto 18px;
    background: url(../images/hackathon/hackathon_complete.svg) center / 104px 104px no-repeat;
}
.hackathon .hk-complete-head h4{
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    color: #111;
}
.hackathon .hk-complete-head p{
    margin-top: 18px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: #222;
}
.hackathon .hk-complete-info{
    display: inline-flex;
    flex-direction: column;
    margin: 20px 0 0;
    text-align: left;
}
.hackathon .hk-complete-info .hk-row{
    gap: 10px;
}
.hackathon .hk-complete-info .hk-label{
    flex-basis: auto;
}
.hackathon .hk-complete-info dd{
    margin: 0;
}

/* ---------- 3-1_참가조회(번호입력) ---------- */
.hackathon .hk-check-box{
    max-width: 620px;
    margin: 60px auto 0;
    padding: 40px;
}
.hackathon .hk-check-desc{
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    color: #222;
    text-align: center;
    word-break: keep-all;
}
.hackathon .hk-check-box .hk-rows{
    margin-top: 30px;
}
.hackathon .hk-check-box .hk-label{
    flex-basis: 75px;
}
.hackathon .hk-check-notes{
    margin-top: 40px;
}
.hackathon .hk-check-notes p{
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #818181;
    word-break: keep-all;
}
.hackathon .hk-nowrap{
    white-space: nowrap;
}
.hackathon .hk-check-notes p + p{
    margin-top: 8px;
}
.hackathon .hk-check-box + .hk-btn-group{
    margin-top: 60px;
}


/* =========================================================
   반응형
   ========================================================= */
@media screen and (max-width: 1280px) {

    #c-sub.hackathon .sub-cont{
        padding: 50px 0 100px;
    }

    .hackathon .hk-page-tit h3{
        font-size: 32px;
    }
    .hackathon .hk-intro h4{
        font-size: 26px;
    }
    .hackathon .hk-period dd,
    .hackathon .hk-theme-txt{
        font-size: 24px;
    }

    /* 일정: 3개씩 정렬 (줄 시작 화살표는 자리만 유지) */
    .hackathon .hk-step{
        max-width: 771px;
    }
    .hackathon .hk-step > li::before{
        content: "";
        flex-shrink: 0;
        width: 27px;
        height: 35px;
        margin: 0 5px;
        background: url(../images/hackathon/hackathon_ico_arrow.svg) center / 27px 34.56px no-repeat;
    }
    .hackathon .hk-step > li:nth-child(3n+1)::before{
        visibility: hidden;
    }

}

@media screen and (max-width: 1024px) {

    #c-sub.hackathon .sub-cont{
        padding: 50px 0 80px;
    }

    .hackathon .hk-page-tit span{
        font-size: 19px;
    }
    .hackathon .hk-page-tit h3{
        font-size: 28px;
    }

    .hackathon .hk-intro{
        margin-top: 40px;
        padding: 36px 24px;
    }
    .hackathon .hk-intro h4{
        font-size: 23px;
    }
    .hackathon .hk-intro > p{
        margin-top: 16px;
    }
    .hackathon .hk-period{
        margin-top: 20px;
        padding: 22px 24px;
    }
    .hackathon .hk-period dd{
        font-size: 21px;
    }

    .hackathon .hk-btn-wrap{
        margin-top: 30px;
    }
    .hackathon .hk-btn{
        width: 220px;
        height: 60px;
        font-size: 19px;
    }

    .hackathon .hk-box{
        margin-top: 40px;
        padding: 30px;
    }
    .hackathon .tit-badge.hk-tit{
        margin-bottom: 22px;
        font-size: 20px;
    }

    .hackathon .hk-theme-txt{
        padding: 24px 20px;
        font-size: 21px;
    }

    .hackathon .hk-step{
        max-width: 654px;
    }
    .hackathon .hk-step > li::before,
    .hackathon .hk-step > li + li::before{
        width: 22px;
        height: 28px;
        margin: 0 3px;
        background-size: 22px 28px;
    }
    .hackathon .hk-step-item{
        width: 190px;
        height: 140px;
        padding: 22px 8px;
    }
    .hackathon .hk-step-item strong{
        font-size: 20px;
    }
    .hackathon .hk-step-item p{
        white-space: normal;
        word-break: keep-all;
    }

    .hackathon .hk-table td.hk-note{
        padding: 10px 16px;
    }
    /* 시상명: 모든 행을 괄호 앞에서 동일하게 줄바꿈 */
    .hackathon .hk-award td .hk-nowrap{
        display: block;
    }

    /* 참가신청 */
    .hackathon .hk-steps{
        margin-top: 40px;
    }
    .hackathon .hk-steps > li{
        width: 200px;
    }
    .hackathon .hk-box-tit{
        margin-bottom: 30px;
        padding: 6px 0 24px;
        font-size: 22px;
    }
    .hackathon .hk-btn-group{
        margin-top: 50px;
    }
    .hackathon .hk-btn-group .hk-btn{
        width: 220px;
        height: 60px;
    }
    .hackathon .hk-agree-box{
        margin-top: 40px;
        padding: 36px 30px;
    }
    .hackathon .hk-terms{
        margin-top: 30px;
        padding: 24px;
    }
    .hackathon .hk-agree{
        margin-top: 40px;
    }

    /* 폼 */
    .hackathon .hk-complete-head::before{
        width: 88px;
        height: 88px;
        background-size: 88px 88px;
    }
    .hackathon .hk-complete-head h4{
        font-size: 22px;
    }

}

@media screen and (max-width: 768px) {

    .hackathon .hk-page-tit span{
        font-size: 16px;
    }
    .hackathon .hk-page-tit h3{
        font-size: 22px;
    }

    .hackathon .hk-intro{
        padding: 28px 20px;
    }
    .hackathon .hk-intro h4{
        font-size: 19px;
    }
    .hackathon .hk-period{
        padding: 18px 20px;
        border-radius: 15px;
    }
    .hackathon .hk-period dd{
        margin-top: 6px;
        font-size: 17px;
    }

    .hackathon .hk-box{
        margin-top: 30px;
        padding: 24px 20px;
    }

    .hackathon .hk-theme-txt{
        padding: 18px 16px;
        font-size: 17px;
        border-radius: 15px;
    }

    /* 일정: 세로 배치, 화살표 아래 방향 */
    .hackathon .hk-step{
        flex-direction: column;
        align-items: center;
        gap: 0;
    }
    .hackathon .hk-step > li{
        flex-direction: column;
        width: 100%;
        max-width: 360px;
    }
    .hackathon .hk-step{
        max-width: none;
    }
    .hackathon .hk-step > li::before,
    .hackathon .hk-step > li + li::before,
    .hackathon .hk-step > li:nth-child(3n+1)::before{
        visibility: visible;
        width: 27px;
        height: 35px;
        margin: 8px 0;
        background-size: 27px 34.56px;
        transform: rotate(90deg);
    }
    .hackathon .hk-step > li:first-child::before{
        display: none;
    }
    .hackathon .hk-step-item{
        width: 100%;
        height: auto;
        gap: 8px;
        padding: 18px 10px;
    }
    .hackathon .hk-step-item strong{
        font-size: 18px;
    }

    /* 테이블: 가로 스크롤 */
    .hackathon .hk-table{
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .hackathon .hk-table table{
        min-width: 640px;
    }
    .hackathon .hk-table tbody th{
        height: 64px;
    }

    .hackathon .hk-notice{
        margin-top: 16px;
        padding: 14px 18px;
    }

    /* 참가신청 */
    .hackathon .hk-steps > li{
        width: 33.333%;
        max-width: 200px;
    }
    .hackathon .hk-box-tit{
        margin-bottom: 24px;
        padding: 0 0 20px;
        font-size: 20px;
    }
    .hackathon .hk-btn-group{
        gap: 10px;
        margin-top: 40px;
    }
    .hackathon .hk-btn-group .hk-btn{
        flex: 1;
        max-width: 220px;
        height: 56px;
    }
    .hackathon .hk-agree-box{
        margin-top: 30px;
        padding: 28px 20px;
    }
    .hackathon .hk-terms{
        margin-top: 24px;
        padding: 20px 16px;
        border-radius: 15px;
    }
    .hackathon .hk-terms dl + dl{
        margin-top: 28px;
    }
    .hackathon .hk-terms li{
        padding-left: 16px;
    }
    .hackathon .hk-terms li::before{
        left: 4px;
    }
    .hackathon .hk-agree{
        align-items: flex-start;
        gap: 12px;
        margin-top: 30px;
    }

    /* 폼: 라벨 위, 입력 아래 */
    .hackathon .hk-rows{
        gap: 16px;
    }
    .hackathon .hk-row{
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
    }
    .hackathon .hk-label{
        flex-basis: auto;
    }
    .hackathon .hk-row.hk-row-top{
        align-items: stretch;
    }
    .hackathon .hk-row-top > .hk-label{
        padding-top: 0;
    }
    .hackathon .hk-email .hk-select{
        width: 155px;
    }
    /* 단독 셀렉트(팀원 수 등)는 입력칸과 동일하게 가로 100% */
    .hackathon .hk-field > .hk-select:only-child{
        width: 100%;
    }
    .hackathon .hk-textarea{
        height: 160px;
    }
    .hackathon .file-upload.hk-file-add{
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 6px;
    }
    .hackathon .hk-file-guide{
        width: 100%;
        padding: 0;
    }
    .hackathon .hk-file-item.hk-file-view{
        padding-left: 0;
    }
    .hackathon .hk-row-2{
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .hackathon .hk-value{
        padding: 6px 0;
    }
    .hackathon .hk-complete-head{
        padding: 0 0 24px;
    }
    .hackathon .hk-complete-info .hk-row{
        flex-direction: row;
        align-items: center;
    }
    .hackathon .hk-complete-info .hk-value{
        padding: 6px 0;
    }
    .hackathon .hk-check-box{
        padding: 28px 20px;
    }
    .hackathon .hk-check-box .hk-rows{
        margin-top: 24px;
    }
    .hackathon .hk-check-box .hk-label{
        flex-basis: auto;
    }
    .hackathon .hk-check-notes{
        margin-top: 28px;
    }
    .hackathon .hk-check-box + .hk-btn-group{
        margin-top: 40px;
    }

}

@media screen and (max-width: 640px) {

    .hackathon .hk-page-tit h3{
        font-size: 19px;
    }
    .hackathon .hk-intro h4{
        font-size: 17px;
    }
    .hackathon .hk-btn{
        width: 190px;
        height: 52px;
        font-size: 17px;
    }
    .hackathon .tit-badge.hk-tit{
        margin-bottom: 18px;
        padding-left: 27px;
        font-size: 18px;
        background-size: 18px 18px;
    }

    .hackathon .hk-table th,
    .hackathon .hk-table td{
        padding: 8px 10px;
    }
    .hackathon .hk-table thead th{
        padding: 10px;
    }

    /* 참가신청 */
    .hackathon .hk-box-tit{
        font-size: 18px;
    }
    /* 이메일: 1줄 [아이디 @ 도메인] / 2줄 [선택] */
    .hackathon .hk-email{
        flex-wrap: wrap;
        gap: 10px 8px;
    }
    .hackathon .hk-email .hk-input{
        flex: 1 1 0;
        padding: 0 8px;
    }
    .hackathon .hk-email #hkEmailDomain{
        flex-grow: 1.4;
    }
    .hackathon .hk-email .hk-select{
        flex: 1 1 100%;
        width: 100%;
    }
    .hackathon .hk-tel .hk-input{
        padding: 0 6px;
        text-align: center;
    }
    .hackathon .hk-tel .hk-select.hk-select-line{
        padding: 0 28px 0 6px;
        background-position: right 4px center;
    }
    .hackathon .hk-tel .hk-sep{
        padding: 0 4px;
    }
    .hackathon .hk-btn-group .hk-btn{
        height: 52px;
        font-size: 17px;
    }

}


/* ---------- 1_대회안내 - 특화산업 개요 ---------- */
.hackathon .hk-industry tbody th{
    padding: 20px 10px;
}
.hackathon .hk-region{
    display: inline-block;
    min-width: 72px;
    padding: 6px 14px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
    border-radius: 6px;
}
.hackathon .hk-domain{
    display: block;
    margin-top: 10px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    color: #222;
}
.hackathon .hk-domain em{
    display: block;
    font-style: normal;
    font-weight: 400;
}
.hackathon .hk-busan .hk-region{ background: #b3136f; }
.hackathon .hk-busan .hk-domain em{ color: #b3136f; }
.hackathon .hk-ulsan .hk-region{ background: #fe8f26; }
.hackathon .hk-ulsan .hk-domain em{ color: #fe8f26; }
.hackathon .hk-gyeongnam .hk-region{ background: #1d3f9e; }
.hackathon .hk-gyeongnam .hk-domain em{ color: #1d3f9e; }

.hackathon .hk-industry td.hk-note{
    padding: 16px 24px;
}
.hackathon .hk-industry td.hk-desc{
    line-height: 1.6;
}
.hackathon .hk-bullet li{
    position: relative;
    padding-left: 16px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #222;
    text-align: left;
}
.hackathon .hk-bullet li + li{
    margin-top: 6px;
}
.hackathon .hk-bullet li::before{
    content: "";
    position: absolute;
    top: 8px;
    left: 2px;
    border-style: solid;
    border-width: 4px 0 4px 6px;
    border-color: transparent transparent transparent #00148f;
}

@media screen and (max-width: 1024px) {
    .hackathon .hk-industry td.hk-note{
        padding: 14px 16px;
    }
}

@media screen and (max-width: 768px) {
    .hackathon .hk-industry tbody th{
        padding: 16px 8px;
    }
    .hackathon .hk-region{
        min-width: 60px;
        padding: 4px 10px;
    }
    .hackathon .hk-domain{
        margin-top: 8px;
    }
}

/* ---------- 1_대회안내 - 연계 구조 이미지 ---------- */
.hackathon .hk-info-img{
    margin-top: 50px;
    border-radius: 20px 0 0 0;
    overflow: hidden;
}
.hackathon .hk-info-img img{
    display: block;
    width: 100%;
    height: auto;
}

@media screen and (max-width: 1024px) {
    .hackathon .hk-info-img{
        margin-top: 40px;
    }
}

@media screen and (max-width: 768px) {
    .hackathon .hk-info-img{
        margin-top: 30px;
    }
}

/* ---------- 1_대회안내 - 연계 구조 설명 ---------- */
.hackathon .hk-info-txt{
    margin-top: 20px;
    padding: 22px 24px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    color: #222;
    text-align: center;
    word-break: keep-all;
    background: #f0f5ff;
    border-radius: 15px;
}
.hackathon .hk-info-txt strong{
    font-weight: 700;
    color: #00148f;
}

@media screen and (max-width: 768px) {
    .hackathon .hk-info-txt{
        margin-top: 16px;
        padding: 16px 18px;
        font-size: 16px;
    }
}

/* ---------- 1_대회안내 - 참가자 특전 (배너는 .hk-theme-txt 재사용) ---------- */
/* 대회구성 테이블 하단에 위치 */
.hackathon .hk-benefit{
    margin-top: 40px;
}
.hackathon .hk-benefit-tit{
    margin-bottom: 16px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    color: #00148f;
}
.hackathon .hk-benefit-txt{
    padding: 18px 20px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    color: #00148f;
    text-align: center;
    word-break: keep-all;
    background: #f0f5ff;
    border-radius: 15px;
}
/* 박스는 .hk-step-item 과 동일한 테두리·배경 */
.hackathon .hk-benefit-list{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 20px;
}
.hackathon .hk-benefit-item{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 170px;
    padding: 28px 20px;
    text-align: center;
    word-break: keep-all;
    border: 1px solid #e9e9e9;
    border-radius: 15px;
    background: linear-gradient(-55.7deg, #f0f5ff 0.16%, #fff 99.85%);
}
.hackathon .hk-benefit-item strong{
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    color: #222;
}
.hackathon .hk-benefit-item p{
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #222;
}
.hackathon .hk-benefit-item em{
    display: inline-block;
    padding: 6px 18px;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.4;
    color: #fff;
    background: #00148f;
    border-radius: 54px;
}

@media screen and (max-width: 1024px) {
    .hackathon .hk-benefit-item{
        min-height: 150px;
        padding: 24px 16px;
    }
    .hackathon .hk-benefit-item strong{
        font-size: 20px;
    }
    .hackathon .hk-benefit-item p br{
        display: none;
    }
}

@media screen and (max-width: 768px) {
    .hackathon .hk-benefit{
        margin-top: 30px;
    }
    .hackathon .hk-benefit-tit{
        margin-bottom: 12px;
        font-size: 18px;
    }
    .hackathon .hk-benefit-txt{
        padding: 14px 16px;
        font-size: 16px;
    }
    .hackathon .hk-benefit-list{
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 16px;
    }
    .hackathon .hk-benefit-item{
        min-height: 0;
        gap: 8px;
        padding: 20px 16px;
    }
    .hackathon .hk-benefit-item strong{
        font-size: 18px;
    }
}

/* ---------- 1_대회안내 - 대회일정 보조문구 (제목 아래, 날짜 p 와 구분) ---------- */
.hackathon .hk-step-item .hk-step-sub{
    display: block;
    margin-top: 4px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: #666;
}

/* ---------- 1_대회안내 - 시상내역 (개인/기업부문) ---------- */
.hackathon .hk-award-sub{
    margin-bottom: 16px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    color: #00148f;
}
.hackathon .hk-award .hk-table + .hk-award-sub{
    margin-top: 40px;
}
/* rowspan 으로 수량 칸이 행의 마지막 셀이 되는 경우에도 세로선 유지 */
.hackathon .hk-award .hk-table td.hk-point{
    border-right: 1px solid #e9e9e9;
}
/* 병합된 특전 칸이 끝나는 행(우수상)의 하단선 유지 */
.hackathon .hk-award .hk-table td[rowspan]{
    border-bottom: 1px solid #e9e9e9;
}

@media screen and (max-width: 768px) {
    .hackathon .hk-award-sub{
        margin-bottom: 12px;
        font-size: 18px;
    }
    .hackathon .hk-award .hk-table + .hk-award-sub{
        margin-top: 30px;
    }
}

/* ---------- 1_대회안내 - 제출서류 양식 (목록은 .hk-files / .hk-file-item 재사용) ---------- */
.hackathon .hk-forms{
    margin-top: 40px;
    padding: 28px 30px;
    background: #fff;
    border: 1px solid #e9e9e9;
    border-radius: 15px;
}
.hackathon .hk-forms-tit{
    margin-bottom: 16px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    color: #111;
    word-break: keep-all;
}
.hackathon .hk-forms-tit span{
    display: block;
    margin-top: 4px;
    font-size: 16px;
    font-weight: 400;
    color: #666;
}

@media screen and (max-width: 768px) {
    .hackathon .hk-forms{
        margin-top: 30px;
        padding: 20px 16px;
    }
}

/* ---------- 2-2_참가신청 - 서약서·동의서 서명본 첨부칸 (양식 다운로드 + 파일 추가) ---------- */
.hackathon .file-upload.hk-file-add .hk-ico-download{
    margin-left: auto;
}

/* ---------- 2-2_참가신청 - 팀원 정보 (입력칸 3개 세로 나열) ---------- */
.hackathon .hk-members{
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.hackathon .hk-member{
    display: flex;
    align-items: center;
    gap: 10px;
}
.hackathon .hk-member .hk-input{
    flex: 1;
    min-width: 0;
}
/* 추가 버튼은 아이콘 없이 텍스트만 */
.hackathon .hk-btn-sm.hk-member-add{
    align-self: flex-start;
    margin-top: 4px;
}
.hackathon .hk-btn-sm.hk-member-add::before{
    display: none;
}

/* 팀원 정보: [이름] [연락처] [삭제] */
.hackathon .hk-member{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 24px;
    align-items: center;
    gap: 10px;
}

@media screen and (max-width: 640px) {
    /* 1줄 [이름 + 삭제] / 2줄 [연락처] */
    .hackathon .hk-member{
        grid-template-columns: minmax(0, 1fr) 24px;
        gap: 4px 10px;
    }
    .hackathon .hk-member .hk-member-tel{
        grid-column: 1 / -1;
        grid-row: 2;
    }
    .hackathon .hk-member + .hk-member{
        margin-top: 10px;
    }
}

/* ---------- 2-2_참가신청 - 입력 안내문구 (placeholder 잘림 방지용, 입력칸 아래 표시) ---------- */
.hackathon .hk-field.hk-field-help{
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}
.hackathon .hk-input-help{
    padding: 0 12px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: #999;
    word-break: keep-all;
}

@media screen and (max-width: 640px) {
    /* 모바일: 양식 다운로드·팀원 추가 버튼 가로 100% (파일 추가 버튼과 동일) */
    .hackathon .file-upload.hk-file-add .hk-ico-download,
    .hackathon .hk-btn-sm.hk-member-add{
        width: 100%;
        margin-left: 0;
    }
    .hackathon .hk-btn-sm.hk-member-add{
        align-self: stretch;
    }
    .hackathon .hk-input-help{
        padding: 0;
    }
}

/* ---------- 3-2_참가내역 - 조회 테이블 (.hk-table 재사용, 내용 좌측정렬) ---------- */
.hackathon .hk-table-view + .hk-table-view{
    margin-top: 20px;
}
.hackathon .hk-table-view tbody th{
    height: 60px;
    padding: 14px 16px;
}
.hackathon .hk-table-view td{
    padding: 14px 20px;
    font-weight: 400;
    text-align: left;
    word-break: keep-all;
    overflow-wrap: anywhere;
}
.hackathon .hk-table-view td.hk-point{
    font-weight: 600;
}
/* th 다음 td 에도 세로선 (4열 행의 가운데 구분선) */
.hackathon .hk-table-view tbody tr > td:not(:last-child){
    border-right: 1px solid #e9e9e9;
}
.hackathon .hk-table-view .hk-file-item.hk-file-view{
    padding-left: 0;
}

@media screen and (max-width: 768px) {
    /* 모바일: 가로 스크롤 대신 [항목 | 내용] 2열로 재배치 */
    .hackathon .hk-table.hk-table-view{
        overflow: hidden;
    }
    .hackathon .hk-table-view table,
    .hackathon .hk-table-view tbody{
        display: block;
        min-width: 0;
    }
    .hackathon .hk-table-view colgroup{
        display: none;
    }
    /* 모바일: 항목명 위 / 내용 아래 (세로 쌓기) */
    .hackathon .hk-table-view tr{
        display: block;
        border-bottom: 0;
    }
    .hackathon .hk-table-view th,
    .hackathon .hk-table-view td{
        display: block;
        border-right: 0;
        border-bottom: 1px solid #e9e9e9;
    }
    .hackathon .hk-table-view tbody th{
        height: auto;
        padding: 10px 16px;
        font-weight: 600;
        text-align: left;
    }
    .hackathon .hk-table-view td{
        padding: 12px 16px;
    }
    .hackathon .hk-table-view td:empty{
        display: none;
    }
    .hackathon .hk-table-view tbody tr > td:not(:last-child){
        border-right: 0;
    }
    .hackathon .hk-table-view tbody tr:last-child > td:last-child{
        border-bottom: 0;
    }
}

@media screen and (max-width: 768px) {
    /* 모바일 조회 테이블·대회안내 제출서류 양식: 파일마다 회색 박스 [파일명·용량 | 다운로드 아이콘 버튼] */
    .hackathon .hk-table-view .hk-files,
    .hackathon .hk-forms .hk-files{
        gap: 8px;
    }
    .hackathon .hk-table-view .hk-file-item.hk-file-view,
    .hackathon .hk-forms .hk-file-item{
        align-items: center;
        gap: 12px;
        padding: 12px 12px 12px 14px;
        background: #f8f8f8;
        border-radius: 8px;
    }
    .hackathon .hk-table-view .hk-file-name,
    .hackathon .hk-forms .hk-file-name{
        flex: 1;
        word-break: keep-all;
        overflow-wrap: anywhere;
    }
    /* 버튼 글자는 화면낭독기용으로만 남기고 아이콘만 표시 */
    .hackathon .hk-table-view .hk-file-item .hk-btn-sm,
    .hackathon .hk-forms .hk-file-item .hk-btn-sm{
        flex: 0 0 40px;
        width: 40px;
        min-width: 0;
        height: 40px;
        gap: 0;
        padding: 0;
        font-size: 0;
        background: #fff;
        border-color: #d6ddf5;
        border-radius: 50%;
    }
    .hackathon .hk-table-view .hk-file-item .hk-btn-sm:hover,
    .hackathon .hk-table-view .hk-file-item .hk-btn-sm:focus,
    .hackathon .hk-forms .hk-file-item .hk-btn-sm:hover,
    .hackathon .hk-forms .hk-file-item .hk-btn-sm:focus{
        border-color: #00148f;
    }
}

/* ---------- 3-2_참가내역 - 팀원 정보 (1명씩 한 줄) ---------- */
.hackathon .hk-member-list li{
    position: relative;
    padding-left: 14px;
    font-size: 16px;
    line-height: 1.6;
    color: #222;
}
.hackathon .hk-member-list li::before{
    content: "";
    position: absolute;
    top: 11px;
    left: 2px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #00148f;
}
.hackathon .hk-member-list li + li{
    margin-top: 4px;
}

/* ---------- 2-2_참가신청 - 비밀번호 조건 안내칩 [ⓘ 영문·숫자 조합 8자 이상] (PC·모바일 공통) ---------- */
.hackathon .hk-field-help .hk-input-help{
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: 6px;
    margin-left: 12px;
    padding: 5px 12px 5px 6px;
    font-weight: 500;
    color: #3d63e0;
    background: #f3f6ff;
    border-radius: 20px;
}
.hackathon .hk-field-help .hk-input-help::before{
    content: "i";
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    font-size: 12px;
    font-weight: 700;
    font-style: italic;
    line-height: 18px;
    text-align: center;
    color: #fff;
    background: #7f9cf5;
    border-radius: 50%;
}

@media screen and (max-width: 768px) {
    .hackathon .hk-field-help .hk-input-help{
        margin-left: 0;
    }
}

/* ---------- 2-3_참가신청(step3) - 332px 이하 버튼 세로 배치 ---------- */
@media screen and (max-width: 332px) {
    .hackathon .hk-complete + .hk-btn-group{
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    .hackathon .hk-complete + .hk-btn-group .hk-btn{
        flex: none;
        width: 100%;
        max-width: none;
    }
}

/* ---------- 2-1_참가신청(step1) - 팀원 4인 동의 안내 (.hk-check-notes 재사용) ---------- */
.hackathon .hk-agree-notes{
    margin-top: 24px;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .hackathon .hk-agree-notes{
        margin-top: 20px;
        text-align: left;
    }
}

/* ---------- 아래는 퍼블리싱 원본에 없는 추가분 (백엔드 반영 시 추가, 2026-09-28) ---------- */
/* 아직 접수 기간이 아닐 때 "신청하기" 버튼 자리에 보여주는 비활성 상태.
   .hk-btn 은 "신청하기"처럼 짧은 한 줄 글자용으로 폭이 고정되어 있고(모바일 190px)
   border-radius(54px)가 높이보다 커서 완전한 알약모양이 되는데, 이 문구는 길어서 2줄이 되면
   둥근 모서리 쪽으로 글자가 삐져나와 보인다 — 폭을 넉넉하게 늘리고 모서리를 낮춰서 해결.
   (.hackathon .hk-btn.hk-btn-disabled 는 클래스 2개라 미디어쿼리의 .hackathon .hk-btn 보다
   항상 더 구체적이라 화면 크기와 무관하게 이 규칙이 이긴다) */
.hackathon .hk-btn.hk-btn-disabled{
    width: min(420px, 100%);
    height: auto;
    min-height: 68px;
    padding: 14px 28px;
    border-radius: 16px;
    background: #b7b7c2;
    cursor: default;
    font-size: 17px;
    line-height: 1.4;
    text-align: center;
    pointer-events: none;
}
@media screen and (max-width: 640px) {
    .hackathon .hk-btn.hk-btn-disabled{
        min-height: 52px;
        padding: 12px 20px;
        font-size: 15px;
    }
}
