/* 반응형: 화면 폭에 따라 메뉴와 카드 배열을 줄입니다. */
@media (max-width: 1280px) {
    .header { --nav-col: 136px; }
    .header__menu-link { padding: 0 4px; font-size: 15px; }
    .header__panel-link { font-size: 14px; }
}
@media (max-width: 1024px) {
    .header__nav, .header__panel { display: none; }
}
@media (max-width: 1100px) {
    .split, .card-grid, .platform-grid, .platforms, .ft-con, .about-points__list, .member-grid, .live-grid, .news-cards { display: grid; grid-template-columns: 1fr 1fr; }
    .space-row, .member-row, .live-row { grid-template-columns: 1fr; }
    .home-sheet { border-radius: 0 0 64px 64px; }
    .apply-btns { height: auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
    .apply-btns li, .apply-btns li.on, .apply-btns li:hover { flex: none; min-height: 128px; }
    .apply-btns em { max-height: none; opacity: 1; }
}
@media (max-width: 800px) {
    .header { --header-h: 64px; }
    .header__logo-img { height: 36px; }
    .header__nav, .header__panel { display: none; }
    .header__hamburger { width: 40px; height: 40px; }
    #main { padding: 96px 0 20px; }
    .member-grid, .news-cards { grid-template-columns: 1fr; }
    .main-title h3 { font-size: 14px; }
    .main-title h1 { font-size: clamp(32px, 10vw, 48px); }
    .main-title p { font-size: 16px; }
    .main-shortcuts { margin-top: 28px; }
    .apply-btns { grid-template-columns: 1fr 1fr; }
    .apply-btns li, .apply-btns li.on, .apply-btns li:hover { min-height: 118px; }
    .apply-btns strong { font-size: 16px; }
    .apply-btns a { padding: 16px 14px; }
    .band { padding: 12px 0 48px; }
    .sec-head { align-items: flex-start; }
    .sec-head h2 { font-size: 28px; }
    .split, .ft-con, .about-points__list, .program-row, .notice-row, .file-row, .archive-row, .news-list a { grid-template-columns: 1fr; }
    .card-grid, .platform-grid, .platforms { grid-template-columns: 1fr 1fr; }
    .about-points__item { padding: 24px 16px; }
    .about-points__item + .about-points__item { border-left: 0; border-top: 1px solid #e8e8e8; }
    .about-closing__text, .about-points__label { font-size: 20px; }
    .map-box { height: 280px; }
    .page-head { padding: 128px 0 20px; }
    .page-head__inner, .cal-head, .board-top, .fac-layout, .fac-card { display: grid; grid-template-columns: 1fr; }
    .sub-body { padding: 28px 0 56px; }
    .img-gallery, .live-list { grid-template-columns: 1fr 1fr; }
    .hero-programs .busi-card strong { min-height: 0; }
    .platform { min-height: 140px; padding: 16px; }
    .platform strong { font-size: 20px; }
    .calendar { min-width: 720px; }
    .calendar td { height: 100px; }
    .cal-month { font-size: 34px; }
    .cal-month span { font-size: 26px; }
    .btn-reserve { justify-self: start; height: 40px; }
    footer { border-radius: 28px 28px 0 0; padding: 40px 0 28px; }
    .copy { flex-direction: column; }
}
@media (max-width: 520px) {
    .wrap, .wrap4, .wrap7 { width: min(1400px, calc(100% - 32px)); }
    .card-grid { grid-template-columns: 1fr; }
    .apply-btns { grid-template-columns: 1fr; }
    .img-gallery, .live-list { grid-template-columns: 1fr; }
    .page-head h1 { font-size: 28px; }
}

/* 메인 팝업: 관리자에서 등록한 팝업을 화면 중앙에 표시합니다. */
.home-popup { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 24px; }
.home-popup[hidden] { display: none; }
.home-popup__backdrop { position: absolute; inset: 0; background: rgba(23,23,23,.55); }
.home-popup__dialog { position: relative; width: min(520px, 100%); max-height: min(86vh, 760px); overflow: auto; padding: 28px 24px 20px; border-radius: 24px; background: #fff; box-shadow: 0 24px 60px rgba(0,0,0,.2); }
.home-popup__close { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f4f4f4; font-size: 26px; line-height: 1; cursor: pointer; }
.home-popup__item + .home-popup__item { margin-top: 18px; padding-top: 18px; border-top: 1px solid #eee; }
.home-popup__item img { width: 100%; max-height: 280px; object-fit: cover; border-radius: 16px; margin-bottom: 14px; }
.home-popup__item h2 { margin: 0 0 8px; font-size: 24px; letter-spacing: -.03em; }
.home-popup__item p { margin: 0; white-space: pre-wrap; color: #444; }
.home-popup__go { display: inline-flex; margin-top: 14px; padding: 10px 16px; border-radius: 999px; background: #111; color: #fff; font-weight: 700; }
.home-popup__hide { display: flex; align-items: center; gap: 8px; margin-top: 18px; color: #555; font-size: 14px; }
