/*******************************************************
*/
/* common
 *******************************************************/
.card-body{background: var(--secondary);padding:2.5rem 2rem;}

@media screen and (max-width: 1200px) {
   .card-body {padding: 2.2rem 1.8rem;}
}

@media screen and (max-width: 768px) {
   .card-body {padding: 1.8rem 1.4rem;}
}

@media screen and (max-width: 480px) {
   .card-body {padding: 1.2rem 1rem;}
}

.custom-table{width:100%;}
.custom-table th{background-color: #f8f9fa;font-weight: bold;font-size:14px; color: #4a5568; padding:12px; text-align: center;border: 1px solid #e2e8f0; white-space: nowrap; }
.custom-table td {text-align:center;font-size:14px; border: 1px solid #e2e8f0; vertical-align:middle; height:auto;padding:8px; transition: background-color 0.2s; }
.custom-table td:hover { background-color: #f7fafc; }

.custom-table td .status-tag{font-size:14px;max-width:calc(70px - 0.5rem);padding:4px;font-weight: bold;text-align: center;white-space: nowrap;}
.custom-table td .status-cancell{background:#FFF7D6;color:#974f0c;}
.custom-table td .status-apply{background:#E9F2FF;color:#0055CC;}
.custom-table td .status-completed{background:#DCFFF1;color:#216E4E;}
.custom-table td .status-closed{background:#f1f2f4;color:#44546F;}

@media (max-width:1200px) {
   .custom-table th { font-size: 13px; padding: 10px 6px; }
   .custom-table td { font-size: 13px; padding: 6px 4px; }
   .custom-table td .status-tag { font-size: 12px;padding: 2px 6px; }
   .custom-table .listBtn .btn { font-size: 12px; padding: 4px 8px; }
   .custom-table .apply-cancel-btn { font-size: 12px !important; padding: 4px 8px !important; height:38px !important;}
}

@media (max-width: 768px) {
   .custom-table, .custom-table thead, .custom-table tbody, .custom-table th, .custom-table td, .custom-table tr { display: block; }
   .custom-table thead tr { position: absolute; top: -9999px; left: -9999px; }
   .custom-table tr { border: 1px solid #ddd; margin-bottom: 15px; padding: 15px; border-radius: 8px; background: #fff; }
   .custom-table td { border: none; padding: 8px 0; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #eee; text-align: left; }
   .custom-table td:last-child { border-bottom: none; }
   .custom-table td:before { content: attr(data-label); font-weight: bold; color: #555; flex: 0 0 auto; margin-right: 15px; min-width: 80px; }
   .custom-table td > * { flex: 1 1 auto; text-align: right; }
   .custom-table td .status-tag {padding:6px 8px;}
   .custom-table .apply-cancel-btn{text-align:center;}
}

.grid-title h4{color:var(--variant);font-weight:400;}


.btn-default{width: 100%;display: inline-flex;align-items: center;justify-content: center;height: 42px;padding: 0 16px;font-size: 14px;font-weight: 500;border-radius: 6px;text-decoration: none;transition: all 0.6s ease-in-out;background-color: #f8f9fa;color: #666;border: 1px solid #e2e8f0;}
.btn-default:hover{background-color: #edf2f7;border-color: #cbd5e0;}


/*******************************************************
*/
/* business
 *******************************************************/

.business-area{width:100%;position:relative;}
.business-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;width:100%;position:relative;z-index:1;}

.program-card{border-radius:20px;border:1px solid rgba(255,255,255,0.1);overflow:hidden;transition:all 0.5s;position:relative;}

.card-visual{position:relative;height:200px;margin:0 auto;border-radius:15px;overflow:hidden;}
.card-visual img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s ease;}
.program-card:hover .card-visual img{transform:scale(1.1);}

.description{}
.description p{color: var(--variant);margin:8px 0;line-height:1.5;position:relative;padding-left:10px;}
.description p:before{content:"";width:4px;height:4px;border-radius:20px;background:var(--primary);font-weight:bold;position:absolute;left:0;top:6.5px;}

.card-features{display:flex;flex-wrap:wrap;gap:6px;}
.feature-tag{padding:6px 12px;background:#fff;border: 1px solid var(--variant-dark);border-radius:20px;font-size:0.813rem;color:#7D7D7D;transition:all 0.3s ease;}
.program-card:hover .feature-tag{background:var(--primary);border-color:#667eea;color:#fff;}

@media (max-width:1200px){
   .business-grid{gap:25px;}
}

@media (max-width:1024px){
   .business-grid{grid-template-columns:repeat(2,1fr);gap:20px;}
   .card-visual{height:180px;}
}

@media (max-width:768px){
   .business-grid{grid-template-columns:1fr;gap:20px;}
   .card-visual{height:200px;margin:0;}
   .description p{line-height:1.4;}
   .feature-tag{font-size:0.75rem;padding:5px 10px;}
}

@media (max-width:480px){
   .business-grid{gap:15px;padding:0 10px;}
   .card-visual{height:180px;}
   .feature-tag{font-size:0.7rem;padding:4px 8px;gap:4px;}
   .card-features{gap:4px;}
}

@media (max-width:360px){
   .card-visual{height:160px;}
   .program-card{border-radius:15px;}
}



/*******************************************************
*/
/* greeting
 *******************************************************/

.greeting-area{width:100%;display:flex;align-items:center;}
.greeting-card{padding:0;}
.greeting-content{display:flex;min-height:700px;}
.content-left{flex:2;padding:60px 50px;}
.content-right{flex:1;background:var(--variant-dark);padding:50px;display:flex;flex-direction:column;justify-content:center;position:relative;}

.welcome-section h4{font-weight:400;}

.message-section{flex:1;}
.message-section h6{font-weight:400;color:#333;}

.message-section .quote-text{font-weight: bold;}

.president-image{position:relative;width:200px;height:250px;margin:0 auto 20px;border-radius:20px;overflow:hidden;}
.president-image img{width:100%;height:100%;object-fit:cover;}

.president-info{text-align:center;color:#333;}
.president-info h6{font-weight:400;}

@media (max-width:1200px){
   .content-left{padding:50px 40px;}
   .content-right{padding:40px;}
}

@media (max-width:1024px){
   .greeting-content{flex-direction:column;min-height:auto;}
   .content-right{order:-1;padding:40px;text-align:center;}
   .president-image{width:180px;height:220px;}
}

@media (max-width:768px){
   .content-left{padding:40px 30px;}
   .content-right{padding:30px;}
   .president-image{width:160px;height:200px;}
   .greeting-content{min-height:auto;}
}

@media (max-width:640px){
   .content-left{padding:30px 20px;}
   .content-right{padding:25px 20px;}
   .president-image{width:140px;height:180px;}
}

@media (max-width:480px){
   .content-left{padding:25px 15px;}
   .content-right{padding:20px 15px;}
   .president-image{width:120px;height:160px;}
}



/*******************************************************
*/
/* calendar
 *******************************************************/
.calendar-table { width: 100%;}
.calendar-table .calendar_navi_area { display: flex; justify-content: center; align-items: center; margin-bottom: 40px; }
.calendar-table .cal_btn { display: flex; align-items: center; gap: 20px; }
.calendar-table .current_ym { font-size: 22px; font-weight: 600; color: #333; }
.calendar-table .prevMonth, .calendar-table .nextMonth { background: #f8f9fa; border: 1px solid #e2e8f0; border-radius: 6px; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; }
.calendar-table .prevMonth:hover, .calendar-table .nextMonth:hover { background-color: #edf2f7; border-color: #cbd5e0; }
.calendar-table .prevMonth i, .calendar-table .nextMonth i { font-size: 18px; color: #4a5568; }
.calendar-table .calendar_area { overflow-x: auto; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.calendar-table table { width: 100%; border-collapse: collapse; border-spacing: 0; }
.calendar-table th { background-color: #f8f9fa;font-weight: bold;font-size:14px; color: #4a5568; padding:12px; text-align: center;border: 1px solid #e2e8f0; }

.calendar-table td { border: 1px solid #e2e8f0; vertical-align: top; height: 100px; transition: background-color 0.2s; }
.calendar-table td:hover { background-color: #f7fafc; }
.calendar-table td.sch { background-color: #f7fafc; }
.calendar-table .day_area { height: 100% !important; display: flex; flex-direction: column;}
.calendar-table .day { display: block; text-align:center; font-weight: 500; padding: 3px 5px; margin-bottom: 5px; color: #4a5568; }
.calendar-table .day.today_date{color: #000; font-weight: bold;}
.calendar-table th.sunday { color:#2c3e50; }
.calendar-table th.saturday { color:#2c3e50; }
.calendar-table .day.week_Sun { color:#2c3e50; }
.calendar-table .day.week_Sat { color:#2c3e50; }

.calendar-table .day_schedule { list-style: none; padding: 0; margin: 0; overflow-y: auto; max-height: 62px; }
.calendar-table .day_schedule li { font-size:14px; display: flex;align-items: center; margin-bottom: 3px; border-radius: 4px; background-color: #f1f5f9; color: #4a5568; font-weight:normal; overflow: hidden; transition: all 0.2s; }
.calendar-table .day_schedule li:hover { background-color: #e2e8f0; }
.calendar-table .day_schedule li span{width:100%;text-align: left;}
.calendar-table .day_schedule li span a{width:100%;display: block;padding:10px 12px;}
.calendar-table .schedule-calendar-item { cursor: pointer; }

.calendar-table .day_schedule .schedule_room {color: #fff;padding: 4px 8px;vertical-align: middle;background: #000;margin-right:6px;border-radius: 5px;height: 20px;display: inline-flex;align-items: center;justify-content: center;}
.calendar-table .day_schedule .schedule_name{}

@media screen and (max-width: 768px) {
   .calendar-table .current_ym { font-size: 20px; }
   .calendar-table .prevMonth, .calendar-table .nextMonth { width: 38px; height: 38px; }
   .calendar-table th { padding: 10px 5px;font-size:13px;}
   .calendar-table td { height: 80px; }
   .calendar-table .day { font-size: 14px; }
   .calendar-table .day_schedule { max-height: 50px; }
   .calendar-table .day_schedule li { font-size: 12px;}
   .calendar-table .day_schedule li span a{ padding: 4px 6px; }
}
@media screen and (max-width: 576px) {
   .calendar-table .current_ym { font-size: 18px; }
   .calendar-table .prevMonth, .calendar-table .nextMonth { width: 34px; height: 34px; }
   .calendar-table th { padding: 6px 3px; }
   .calendar-table td { height: 60px; }
   .calendar-table .day { font-size: 12px; padding: 2px 4px; margin-bottom: 2px; }
   .calendar-table .day_schedule { max-height: 40px; }
   .calendar-table .day_schedule li {white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
   .calendar-table .day_schedule li span a{  padding: 3px 4px; }
   .calendar-table .calendar_navi_area{margin-bottom: 30px;}
}

/*******************************************************
*/
/* history
 *******************************************************/
.his-area{display: grid;grid-template-columns: 1fr 1fr 1fr;gap: 60px;}
.his-item{padding: 5rem 3rem 0 0;position: relative;text-align: left;}
.his-item::before {content: '';position: absolute;width: 24px;height: 24px;background: #fff;border: 5px solid  var(--primary);border-radius: 100%;top: 20px;left: 0;z-index: 1;}
.his-item::after {content: "";display: block;position: absolute;top: 32px;right: 0;width: calc(100% - 40px);height: 1px;background-color: rgba(102, 102, 102, .3);}

.his-item .txt_year{font-family:'Paperlogy';color:var(--primary);margin-bottom:10px;}
.his-item .txt_cont {display:flex;align-items:center;}
.his-item .txt_cont span{margin-right:10px;color:var(--variant);}
.his-item .txt_cont h6{font-weight:400;}

@media (max-width: 1200px) {
   .his-area{gap: 40px;}
   .his-item{padding: 4rem 2rem 0 0;}
}
@media (max-width: 1024px) {
   .his-area{grid-template-columns: 1fr 1fr;gap: 30px;}
}
@media (max-width: 768px) {
   .his-area{grid-template-columns: 1fr;gap: 20px;}
   .his-item{padding:1rem 0 0 2.5rem;}
   .his-item::before{top: 1.2rem;left: 0;}
   .his-item::after{width: 1px;height: 80%;top: 2rem;left: 12px;}
}
@media (max-width: 480px) {
   .his-item {padding: 1rem 0 0 2rem;}
   .his-item::before{width: 20px;height: 20px;background: #fff;border: 4px solid var(--primary);}
   .his-item::after{height: 70%;top: 2.2rem;left: 10px;}
}


/*******************************************************
*/
/* location
 *******************************************************/

.location-wrap {width: 100%; position: relative;overflow: hidden;}

.location-wrap .map-area {flex: 1; width:100%;height:100%;overflow: hidden; }
.location-wrap .map-area iframe {width: 100%;height: 450px; border: 0;}

.location-wrap .loc-info .text-box h5{font-weight:400;}
.location-wrap .loc-info .text-box h6{color:var(--variant);font-weight:400;}
.location-wrap .loc-info .text-box h6 span{color:var(--gray-800); margin-right:5px;}
.location-wrap .loc-info .text-box .line {width: 1px;height: 15px;background: var(--gray-800);display: inline-block;margin: 0 14px;}

.location-wrap .info-list{display: flex;align-items: center;gap: 6px;width: 100%;}
.location-wrap .info-list li a{min-width:115px;display:inline-flex;align-items:center;}
.location-wrap .info-list i {width:18px;height:18px;margin-right:6px;}

@media (max-width: 1200px) {
   .location-wrap .map-area iframe {height: 400px;}
}

@media (max-width: 1024px) {
   .location-wrap .map-area iframe {height: 350px;}
   .location-wrap .info-list{padding-top:10px;}
}

@media (max-width: 768px) {
   .location-wrap .map-area iframe {height: 300px;}
   .location-wrap .loc-info .text-box .flex {flex-direction: column; align-items: flex-start;}
   .location-wrap .loc-info .text-box .line {display: none;}

   .location-wrap .info-list li{width:100%;}
   .location-wrap .info-list li a {min-width:100%; flex: 1; justify-content: center;}
}

@media (max-width: 480px) {
   .location-wrap .map-area iframe {height: 250px;}
   .location-wrap .info-list {flex-direction: column; gap: 8px;}
   .location-wrap .info-list li {width: 100%;}
   .location-wrap .info-list li a {width: 100%; justify-content: center; min-width: auto;}
}

/*******************************************************
*/
/* program
 *******************************************************/


/* 검색 */
.board_top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; flex-wrap: wrap; gap: 20px; }
.board_top .total-count { font-size: 15px; color: #555; }
.board_top .total-count strong { font-weight: 600; color: #000; }
.board_top .search_wrap { width: 100%; max-width:300px;display: flex; justify-content: center; align-items: center; border-bottom: 1px solid #333; padding: 0 8px 8px; transition: 0.6s; }
.board_top .search_wrap form { position: relative; width: 100%; display: flex; align-items: center; }
.board_top .search_wrap select#s1 { width:30%; margin-right: 8px; height: 35px; font-size: 15px; border: none; cursor: pointer;}
.board_top .search_wrap input#s2 {width: calc(100% - 35px);height: 35px; padding: 0 8px; border: none; }
.board_top .search_wrap input#s2::placeholder { color: #b7b7b7; font-size: 15px; }
.board_top .search_wrap label { display: none; }
.board_top .search_container { display: flex; position: relative; width: 100%; }

.board_top .search-con { width:35px;background: transparent; border: none;border-radius:100px; position: absolute; top: 0; right: 0; height: 100%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: 0.3s;}
.board_top .search-con .material-icons { font-size: 25px; color:#000; transition: 0.3s;}
.board_top .search-con:hover{background:#000;}
.board_top .search-con:hover .material-icons{color:#fff;}

@media screen and (max-width:480px) {
   .board_top { flex-direction: column; align-items: center; }
   .board_top .total-count {display: none;}
   .board_top .search_wrap { max-width: 100%; padding-left: 0;padding-right: 0;padding-bottom:6px;}
}

/* Pagination */
.board_list_foot {overflow: hidden; }
.board_list_foot .btn_wrap { width:30%; float: left; padding: 20px 0; display: inline-flex; justify-content: flex-start; }
.board_list_foot .btn_wrap.text-right { padding: 20px 0 20px 10px; justify-content: flex-end; }
.board_list_foot .paging_wrap { width:40%; float: left; text-align: center; padding: 20px 10px; }
.board_list_foot .paging_wrap .pagination { display: inline-block; margin: 0; padding: 0; }
.board_list_foot .paging_wrap .pagination li { margin: 0 2px; width:26px;height:26px;display: inline-flex;align-items: center;justify-content: center;}
.board_list_foot .paging_wrap .pagination li a {width: 100%;height: 100%; color: #666; padding:7px 10px; font-size:12px; border: none; border-radius:200px; text-decoration: none; transition: 0.3s all; }
.board_list_foot .paging_wrap .pagination li.active a, .board_list_foot .paging_wrap .pagination li a:hover { background: #000; color: #fff;}

.board_list_foot .search_wrap{text-align:Center;clear:both;}

/* 버튼 정의 */

.program-wrap .btn_wrap {margin-top: 20px;display: flex;justify-content: center;flex-flow: row wrap;}
.program-wrap .btn{margin:3px; transition: 0.3s all;width: 100%;max-width: 140px;border-radius:8px;height:46px;border: 1px solid #494949;background:#494949;color:#fff;display: flex;justify-content: center;align-items: center;}
.program-wrap .btn.btn-primary{background:#000;color:#fff;border:1px solid #000;}
.program-wrap .btn.btn-secondary{border: 1px solid #494949;background:#494949;color:#fff;}
.program-wrap .btn.btn-default{max-width:68px;padding:8px;}
.program-wrap .btn.btn-danger{background:#dc3545;color:#fff;border:1px solid #dc3545;}
.program-wrap .btn:hover{background:var(--primary) !important;color:#fff;border:1px solid var(--primary);}

@media(max-width: 768px) {
   .program-wrap .btn{max-width:120px;height:46px;line-height:46px;font-size:13px;}
   .program-wrap .btn.btn-default{height:44px;line-height:44px;}
}

/* 작성 */
.program-wrap .board_write{width:100%;border-top:2px solid #000;}
.program-wrap .board_write tbody tr th{background:#f9f9f9;text-align:left;}
.program-wrap .board_write tbody tr th,.program-wrap .board_write tbody tr td{border-bottom:1px solid #ddd;padding:10px;}
.program-wrap .board_write tbody tr td input.wfull,.program-wrap .board_write tbody tr td textarea.wfull{width:100% !important;}
.program-wrap .board_write tbody tr td textarea{width:100%;height:200px;}
.program-wrap .board_write .form-control{width:auto;}

@media(max-width:550px){
   .program-wrap .board_write tbody tr th{display:none;}
   .program-wrap .board_write tbody tr td {width: 100%;}
   .program-wrap .board_write tbody tr td input{width: 100%;}
   .program-wrap .board_write input#bod_secret {width: auto;margin-right:5px;}
}

.sub-sec .program-item .program-content{border: 1px solid var(--variant-dark);}
.sub-sec .program-list{gap: 20px;margin-bottom: 20px;}
.sub-sec .program-list:before{display:none;}
.sub-sec .program-list:after{display:none;}

.program-modal .modal-content ul li{display:flex;}
.program-modal .modal-content ul li span{font-size:14px;position: relative;top:5px;color:var(--variant);}
.program-modal .modal-content ul li p{text-align: left;padding-left:3px;}
.program-modal .cd-popup-confirm{background:var(--primary) !important;color:#fff !important;}


.program-detail .title{text-align:center;margin-bottom: 30px;}
.program-detail .program-item .apply-status{display: inline-block;width: auto;font-size:1rem;font-weight: 700;line-height: 35px;padding: 0 25px;border-radius: 10px;margin-bottom: 10px;}

.program-detail .specs-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; padding: 0; list-style: none; }
.program-detail .specs-list-item { display: flex; align-items: center; padding:20px; background:var(--secondary); border-radius:10px;border: 1px solid #e2e8f0;transition: transform 0.3s ease; }

.program-detail .spec-icon { flex: 0 0 50px; height: 50px; background: #333; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-right: 15px; color: white; font-size:22px; }
.program-detail .spec-icon span{font-weight:300;}
.program-detail .spec-content { flex: 1; }
.program-detail .spec-label { display: block; font-size:1rem;color:var(--variant); }
.program-detail .spec-value { display: block; font-size:20px; font-weight: 600; color: #333; margin-top: 5px;}

.program-detail .program-detail-body{width: 100%;border-top: 1px solid #e2e8f0;border-bottom: 1px solid #e2e8f0;padding: 3rem 0;}

@media (max-width: 1024px) {
   .program-detail .specs-list { grid-template-columns: 1fr; gap:10px; }
}

@media (max-width: 768px) {
   .program-detail .specs-list-item{padding:1rem;}
   .program-detail .spec-icon { flex: 0 0 40px; height: 40px; }
   .program-detail .spec-icon span{ font-size:22px; }
   .program-detail .spec-label { font-size:14px; }
   .program-detail .spec-value { font-size:18px; }
}
@media (max-width: 768px) {
   .program-detail .spec-value { font-size: 16px; }
}