/* 이벤트 페이지 */
.evt_tit{margin-bottom:30px;}
.evt_tit h4{font-size:28px; font-weight: 700;}
.evt_tit p{font-size:16px; margin-top:10px;}
/* 신청 방법 (카드 레이아웃) */
.apply-wrapper {display: flex; gap: 20px;}
.apply-card {flex: 1; border: 1px solid var(--gray-200); border-radius: 20px; padding: 35px 30px; text-align: center; transition: all 0.3s ease; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02); display: flex; flex-direction: column; gap:20px; justify-content: center;}
.apply-card h5 {font-size: 1.3em; font-weight: 800;}

/* 버튼 그룹 */
.btn-group {display: flex; justify-content: center; gap: 12px; margin-top: auto; height: 115px;}
.btn-online { display: flex; align-items: center; justify-content: center; background-color: var(--main-color); color: #fff; text-decoration: none; font-weight: 700; border-radius: 12px;flex: 1; text-align: center; height: 100%; font-size: 1.1em; transition: background-color 0.2s, transform 0.1s;}
.btn-online:hover{background-color: var(--main-color); transform: scale(1.02);}
.contact-info {padding: 20px; border-radius: 16px; margin-top: auto;  font-weight: 500; height: 115px; display: flex; flex-direction: column; justify-content: center; align-items: center; box-sizing: border-box; border: 1px solid var(--gray-200);}

.contact-grid {display: grid; grid-template-columns: 65px max-content; column-gap: 10px; row-gap: 8px; text-align: left; font-size: 0.95em;}
.contact-label {display: flex; justify-content: space-between; width: 100%;}

.step-container {display: flex; justify-content: space-between; gap: 20px; margin-top: 25px;}
.step-box {flex: 1; border: 1px solid var(--gray-200); padding: 30px 20px; text-align: center; border-radius: 20px; font-weight: 700; word-break: keep-all; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02); transition: all 0.2s;}

.step-label {display: inline-flex; align-items: center; justify-content: center; background-color: #02BC7B; color: #fff; padding: 5px 15px; border-radius: 20px; font-size: 0.85em; font-weight: 800; margin-bottom: 15px;}

/* 신청대상 (카드 그리드 레이아웃) */
.target-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 15px;}
.target-card {border: 1px solid var(--gray-200); border-radius: 20px; padding: 25px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02); transition: transform 0.2s;}

.target-card h6 {font-size: 1.2em; color: var(--main-color); margin: 0 0 10px 0; font-weight: 800;}
.target-card p {margin: 0; font-size: 1em; line-height: 1.5; word-break: keep-all;}
.target-card small {display: block; margin-top: 10px; font-size: 0.85em; color: #666; line-height: 1.4;}

.text-left {text-align: left; line-height: 1.6;}
.table-subtitle {margin-top: 45px; margin-bottom: 12px; font-weight: 800; font-size: 1.15em; display: flex; align-items: center; gap: 8px;}
.table-subtitle::before {content: ''; display: inline-block; width: 8px; height: 8px; background-color: var(--main-color); border-radius: 50%;}

/* 장소 안내 스타일 */
.location_group{display:flex; justify-content: space-between; align-items: stretch; gap: 30px}
.location-box {width:calc((100% - 30px)/2); border: 1px solid var(--gray-200); border-radius: 20px; overflow: hidden;}
.map-placeholder {background-color: #f1f5f9; height: 350px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #94a3b8; font-size: 1.1em; border-bottom: 1px solid var(--gray-200); text-align: center; padding: 20px; background-image: radial-gradient(#cbd5e1 2px, transparent 2px); background-size: 24px 24px;}
.address-info {padding: 30px; background-color: #fff;}
.address-text {font-size: 1.25em; margin: 0 0 8px 0; text-align: center; word-break: keep-all;}
.address-text strong {display: block; width:fit-content; background-color: var(--main-color); color: #fff; padding: 4px 14px; border-radius: 20px; font-size: 0.85em; margin-right: 10px; vertical-align: middle; margin:0 auto 10px; word-break: keep-all;}
.address-subtext {margin: 0; font-size: 0.95em; text-align: center; word-break: keep-all;}

/* 커리큘럼 및 시간표 안내 박스 스타일 */
.curriculum-box {background-color: #fff; border: 2px dashed rgba(var(--main-color-rgb), 0.4); border-radius: 20px; padding: 40px 30px; text-align: center; box-shadow: 0 4px 15px rgba(0,0,0,0.02); transition: border-color 0.2s;}
.curriculum-box:hover {border-color: var(--main-color);}
.btn-outline {display: inline-block; margin-top: 15px; padding: 14px 35px; background-color: #fff; color: var(--main-color); border: 2px solid var(--main-color); border-radius: 30px; text-decoration: none; font-weight: 800; font-size: 1.05em; transition: all 0.2s;}
.btn-outline:hover {background-color: var(--main-color); color: #fff;}

/* **************************************** *
 * 768px
 * **************************************** */
@media (max-width:1024px){
    .location_group{flex-direction: column; gap:20px;}
    .location-box{width:100%;}
}
@media (max-width:768px){
    .evt_tit h4{font-size:22px; font-weight: 700;}
    .evt_tit p{font-size:16px; margin-top:10px;}

    .apply-wrapper{flex-direction: column;}
    .step-container{flex-direction: column;}
    .target-grid{grid-template-columns: repeat(1, 1fr);}
}