/* 메인 */
.main-visual { padding: 4rem 0 4rem ; }
.main-visual-inner { display: flex; justify-content: space-between; align-items: center; gap: 2.4rem; }
.main-slide, .notice-box { flex: 1 1 calc(50% - 1.2rem); min-width: 0; }

/* 메인 - 스와이퍼 */
.main-visual-swiper { position: relative; width: 100%; max-width: 58.8rem; height: 32rem; border-radius: 1rem; overflow: hidden; }
.main-visual-swiper .swiper-slide { width: 100%; height: 100%; display: block; }
.main-visual-swiper .swiper-slide a { display: block; width: 100%; height: 100%; }
.main-visual-swiper img { width: 100%; height: 100%; object-fit: cover; display: block; }
.main-slide-control { position: absolute; right: 0; bottom: 0; z-index: 10; display: flex; align-items: center; gap: 1.2rem; height: 4.8rem; padding: 0 1.6rem; background: rgba(0, 0, 0, 0.55); border-radius: 1rem 0 1rem 0; color: #fff; }
.main-slide-fraction { font-size: 1.8rem; font-weight: 700; letter-spacing: 0.1rem; }
.main-slide-control button { width: 2.4rem; height: 2.4rem; border: 0; background: transparent; cursor: pointer; position: relative; }
/* 스와이퍼 - 이전 */
.main-slide-prev::before { content: ""; position: absolute; inset: 0; background: url("../images_new/main/icon_arrow_left.svg") no-repeat center / 2.4rem; }
/* 스와이퍼 - 다음 */
.main-slide-next::before { content: ""; position: absolute; inset: 0; background: url("../images_new/main/icon_arrow_right.svg") no-repeat center / 2.4rem; }
/* 스와이퍼 - 정지 및 플레이 */
.main-slide-play::before { content: ""; position: absolute; inset: 0; background: url("../images_new/main/icon_stop.svg") no-repeat center / 2.4rem; }
.main-slide-play.is-stop::before { left: 0.2rem; top: 0.4rem; width: 0; height: 0; background: transparent; box-shadow: none; border-left: 1.2rem solid #fff; border-top: 0.8rem solid transparent; border-bottom: 0.8rem solid transparent; }


/* 공지사항 */
.notice-box { width: auto; max-width: 58.8rem; height: 32rem; padding: 3.2rem; background: var(--color-primary-5); border-radius: 1rem; }
.notice-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 0.8rem; border-bottom: 1px solid var(--color-border-gray-dark); }
.notice-head h2 { font-size: 2.4rem; font-weight: 700; color: var(--color-gray-90); }

/* 공지사항 플러스 아이콘 */
.notice-more { position: relative; width: 3.2rem; height: 3.2rem; }
.notice-more::before, .notice-more::after { content: ""; position: absolute; background: var(--color-gray-90); top: 50%; left: 50%; transform: translate(-50%, -50%); }
.notice-more::before { width: 16px; height: 2px; }
.notice-more::after { width: 2px; height: 16px; }

/* 리스트 */
.notice-list { margin-top: 2rem; }
.notice-list li + li { margin-top: 2rem; }
.notice-list a { display: flex; justify-content: space-between; align-items: center; gap: 1.6em; font-size: 1.5rem; }
.notice-title { flex: 1 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.notice-list time { flex: 0 0 auto; white-space: nowrap; color: #888; }
.notice-list time { font-size: 1.5rem; }

/* 프로그램 */
.program-shortcut { padding: 6rem 0; background: var(--color-primary-5); }
.program-list { width:100%; display: flex; justify-content: center; align-items: stretch; gap: 2.4rem; flex-wrap: wrap; }
.program-list li { width:100%; flex: 0 1 auto; }

/* 카드 개수별 동적 너비 (1~3개 유동 대응) */
.program-list-3 li { max-width: calc(100% / 3 - 2rem); flex-basis: calc(100% / 3 - 2rem); }
.program-list-2 li { max-width: calc(50% - 1.2rem); flex-basis: calc(50% - 1.2rem); }
.program-list-1 li { max-width: calc(100% / 3 - 2rem); flex-basis: calc(100% / 3 - 2rem); }
.program-card { position: relative; width:100%; height: 32rem; display: flex; padding: 4rem; background: #fff; border-radius: 1rem; color: var(--color-gray-90); border: 3px solid transparent; transition: var(--transition-base);}
.program-card:hover, .program-card:focus-visible { border-color: var(--color-primary-50); }
.program-text { display: flex; flex-wrap: wrap; flex-direction: column; }
.program-text strong { display: block; font-size: 2.4rem; font-weight: 700; margin-bottom: 0.8rem; }
.program-text p { font-size: 1.7rem; color: var(--color-text-subtle); }
.btn-more { display: inline-flex; align-items: center; justify-content: space-evenly; width: 12.2rem; height: 4rem; padding: 0 1.2rem; margin-top: auto; border: 1px solid var(--color-border); border-radius: 100rem; font-size: 1.5rem; transition: var(--transition-base); }
.btn-more::after { content: ""; width: 2rem; height: 2rem; background-color: currentColor; mask: url("../images_new/main/btn-arrow.svg") no-repeat center / contain; -webkit-mask: url("../images_new/main/btn-arrow.svg") no-repeat center / contain;}
.program-card:hover .btn-more, .program-card:focus-visible .btn-more { background-color: var(--color-primary-50); color: #fff; }
.program-card img { position: absolute; width: 12rem; height: auto; right: 4rem; bottom: 4rem; }

/* 퀵메뉴 */
.quick-menu { position: fixed; right: 0; top: 40%; width: 10rem; background: #fff; border-radius: 1.2rem 0 0 1.2rem; box-shadow: -2px 0 10px rgba(0,0,0,0.07); overflow: hidden; z-index: 1000; }
.quick-menu li { width: 100%; height: 7.5rem; border-bottom: 1px solid var(--color-border); }
.quick-menu li:last-child { border-bottom: 0; }
.quick-menu a { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 1.3rem; color: var(--color-text-subtle); transition: var(--transition-base); }
.quick-menu a:hover,
.quick-menu a:focus-visible { background-color: var(--color-primary-50); color: #fff; }
.btn-top { display: block; padding: 12px; text-align: center; }



/* 반응형 - 1200px */
@media (max-width: 1200px) {
	.program-card { padding: 2.4rem; }
	.program-card img { right: 2.4rem; bottom: 2.4rem; width: 10rem; }
}

/* 반응형 - 980px */
@media (max-width: 980px) {
	.quick-menu { display: none; }
}

/* 반응형 - 960px */
@media (max-width: 960px) {
	.program-card  { height: 22rem; }
	.program-list { flex-direction: column; }
	.program-list li { max-width: 100%; }
}

/* 반응형 - 768px */
@media (max-width: 768px) {
	.main-visual, .program-shortcut { padding: 4rem 0; }
	.main-visual-inner { flex-direction: column; }
	.main-slide, .notice-box { width: 100%; }
	.main-visual-swiper, .notice-box { max-width: 100% }
	.main-visual-swiper { height: 24rem; }
	.notice-box { padding: 2.4rem; }
	.notice-head h2 { font-size: 2rem; }
	.notice-more { width: 2.4rem; height: 2.4rem; }
	.notice-list { margin-top: 1.6rem; }
	.notice-list li + li { margin-top: 1.2rem; }
}

/* 반응형 - 600px */
@media (max-width: 600px) {
	.main-visual, .program-shortcut { padding: 2.8rem 0; }
}
