/* STEP 2. 반응형 — inner 1440 / 1023 / 767 */

body.menu-opened { overflow: hidden; }

.concept-two .quick > #top-btn.quick-top,
.concept-two .quick > .quick-top {
  position: static;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  order: 1;
  opacity: 1;
  pointer-events: auto;
}

#top-btn:not(.quick-item) {
  position: fixed;
  right: 32px;
  bottom: 100px;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid #ccd0d6;
  border-radius: 50%;
  background: #fff;
  color: #142039;
  opacity: 0;
  pointer-events: none;
}
#top-btn:not(.quick-item).visible { opacity: 1; pointer-events: auto; }
#top-btn:not(.quick-item) .top-arrow { width: 18px; height: 18px; }
#top-btn:not(.quick-item) .top-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
#cb-t3-widget { position: fixed; right: 28px; bottom: 28px; z-index: 40; }
#chat-fab {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #2154d1;
}
#chat-win { position: absolute; right: 0; bottom: 72px; width: min(360px, calc(100vw - 32px)); }
body:has(#chat-fab[aria-expanded="true"]) #top-btn:not(.quick-item) { visibility: hidden; }

.cms-map-iframe-frame { width: 100%; height: 360px; }
.cms-map-iframe-frame iframe { display: block; width: 100%; height: 100%; border: 0; }

@media (max-width: 1023px) {
  body.concept-two #header .header-right { display: none; }
  body.concept-two #header .btn-m-menu { display: block; }
  body.concept-two.sub-page .sub-hero h1.sub-hero__title { font-size: 44px; line-height: 1.2; }
  body.concept-two :is(.section h2, .sub-section h2) { font-size: 32px; line-height: 1.3; }
  body.concept-two .local-nav__box a { font-size: 16px; }
  .cms-map-iframe-frame { height: 300px; }
}
@media (max-width: 1023px) and (min-width: 768px) {
  body.concept-two #header .contain.header-inner { height: 85px; min-height: 85px; }
  body.sub-page #greeting .greeting-intro__title h2,
  body.sub-page .stage-band .stage-intro__title h2,
  body.sub-page #artist .artist-intro__title h2,
  body.sub-page #notice > .wrap > h2 { font-size: 32px; line-height: 1.3; }
}

@media (max-width: 767px) {
  body.concept-two { overflow-x: hidden; }
  body.concept-two .wrap { width: calc(100% - 32px); }
  body.concept-two .section { padding-top: 56px; padding-bottom: 56px; }
  body.sub-page .sub-section { padding-top: 56px; padding-bottom: 56px; }

  body.concept-two #header .contain.header-inner {
    height: 60px;
    min-height: 60px;
    padding: 0 16px;
  }
  body.concept-two #header .brand img { width: auto; height: 40px; }
  body.concept-two.main-page #home.hero--main-visual { --hero-header: 60px; }

  body.concept-two :is(.section h2, .sub-section h2, #notice > .wrap > h2) { font-size: 24px; line-height: 1.3; }
  body.concept-two .km-notice-view .board-view-tit h2,
  body.concept-two #notice-write > .wrap > h2 { font-size: 22px; line-height: 1.4; }
  .km-notice-view .board-view-tit { padding: 20px 0 12px; }
  .km-notice-view .board-view-info { padding: 12px 0; font-size: 13px; }
  .km-notice-view .board-view-cnt { padding: 24px 0 32px; font-size: 15px; }
  #notice-view .board-prev-next dl { padding: 12px 0; }
  #notice-view .km-notice-actions { margin-top: 20px; }
  #notice-view .km-notice-actions .btn-pack { height: 42px; min-height: 42px; padding: 0 16px; font-size: 14px; }
  body.concept-two :is(.section h3, .sub-section h3, .content-cards h3) { font-size: 18px; line-height: 1.4; }
  body.concept-two :is(.section p, .sub-section p, .page-lead, .hero-desc, .footer-info-item) { font-size: 15px; line-height: 1.7; }
  body.concept-two :is(figcaption, .page-eyebrow, .sub-path__crumb, .sub-path__current) { font-size: 14px; }
  body.concept-two :is(input, select, textarea) { font-size: 16px; }
  body.concept-two :is(.contact-button, .btn-pack, .header-contact, .page-button) {
    min-height: 44px;
    padding: 10px 16px;
    font-size: 15px;
  }

  body.concept-two #footer .footer-inner { padding-left: 16px; padding-right: 16px; }
  body.concept-two #footer .footer-brand img { width: 110px; height: auto; }
  body.concept-two #footer .copyright,
  body.concept-two #footer .copyright-text { font-size: 12px; line-height: 1.6; }

  body.sub-page .inquiry-services,
  body.sub-page #artist .artist-grid,
  body.sub-page .content-cards { grid-template-columns: 1fr; }

  body.sub-page main#main > .sub-hero {
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto !important;
    min-height: 0 !important;
  }
  body.sub-page main#main > .sub-hero .sub-hero__content {
    gap: 24px;
    padding: 72px 0 56px !important;
  }
  body.sub-page .sub-hero__title,
  body.concept-two.sub-page .sub-hero h1.sub-hero__title {
    font-size: 32px !important;
    line-height: 1.25 !important;
  }
  body.sub-page main#main > .local-nav { margin-top: -45px; }

  body.sub-page .local-nav__box { height: 45px; flex-wrap: nowrap; overflow: hidden; justify-content: stretch; }
  body.sub-page .local-nav__box .swiper-wrapper { display: flex; width: 100% !important; transform: none !important; }
  body.sub-page .local-nav__box a,
  body.sub-page .local-nav__box .swiper-slide {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none;
    height: 45px;
    min-width: 0;
    margin: 0 !important;
    font-size: 15px;
    line-height: 45px;
    padding: 0 8px;
  }
  body.sub-page .local-nav__box .swiper-slide { display: flex; align-items: center; padding: 0; }
  body.sub-page .local-nav__box .swiper-slide a { flex: 1 1 auto; width: 100%; padding: 0 8px; }

  .notice-board.notice-board--original { gap: 20px; }
  .notice-board.notice-board--original .board-list { display: block; }
  .notice-board--original .notice-board__top { flex-direction: column; align-items: stretch; gap: 14px; }
  .notice-board--original .notice-board__total { font-size: 16px; line-height: 24px; }
  .notice-board--original .notice-board__search select,
  .notice-board--original .notice-board__search input,
  .notice-board--original .notice-board__search button { height: 46px; font-size: 15px; }
  .notice-board--original .notice-board__search select { width: 96px; }
  .notice-board--original .notice-board__search input { flex: 1 1 auto; width: auto; min-width: 0; }
  .notice-board--original .notice-board__search button { width: 46px; }
  .notice-board.notice-board--original table {
    display: table;
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
  }
  .notice-board.notice-board--original thead { display: table-header-group; }
  .notice-board.notice-board--original tbody { display: table-row-group; }
  .notice-board.notice-board--original tr { display: table-row; }
  .notice-board.notice-board--original th,
  .notice-board.notice-board--original td {
    display: table-cell;
    width: auto;
    padding: 14px 0;
    font-size: 14px;
    line-height: 22px;
  }
  .notice-board.notice-board--original col:nth-child(3),
  .notice-board.notice-board--original col:nth-child(5) { display: none; }
  .notice-board.notice-board--original col:nth-child(1) { width: 52px; }
  .notice-board.notice-board--original col:nth-child(4) { width: 96px; }
  .notice-board.notice-board--original th:nth-child(1),
  .notice-board.notice-board--original td:nth-child(1) { width: 52px; }
  .notice-board.notice-board--original th:nth-child(4),
  .notice-board.notice-board--original td:nth-child(4) { width: 96px; }
  .notice-board.notice-board--original .notice-board__writer,
  .notice-board.notice-board--original .notice-board__hit { display: none; }
  .notice-board.notice-board--original td.notice-board__title { padding: 14px 8px; text-align: left; }
  .notice-board--original .notice-board__subject { min-width: 0; flex: 1 1 auto; }
  .notice-board.notice-board--original td.board-empty { width: auto; text-align: center; padding: 28px 12px; }

  .page-intro__copy p { word-break: keep-all; text-wrap: balance; }

  .km-faq .tit button {
    align-items: flex-start;
    gap: 8px;
    padding: 14px 0;
    font-size: 15px;
    line-height: 1.45;
  }
  .km-faq .tit .q {
    flex: 0 0 auto;
    width: auto;
    font-size: 16px;
    line-height: 1.45;
  }
  .km-faq .faq-toggle { font-size: 18px; line-height: 1.45; }
  .km-faq .tit button > span:not(.q):not(.faq-toggle) {
    flex: 1 1 auto;
    min-width: 0;
    word-break: keep-all;
    text-wrap: balance;
  }

  .inquiry-fields.km-inquiry .input {
    height: 46px;
    padding: 10px 14px;
    font-size: 15px;
  }
  .inquiry-fields.km-inquiry textarea.input {
    height: 140px;
    min-height: 140px;
    line-height: 1.5;
  }
  .inquiry-field > label { margin-bottom: 8px; font-size: 14px; }
  #inquiry-form .inquiry-actions .btn-pack { height: 48px; font-size: 15px; }

  .concept-two .quick-item,
  .concept-two .quick > button,
  .concept-two .quick > a { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }
  #top-btn:not(.quick-item) { right: 23px; bottom: 86px; width: 46px; height: 46px; }
  #cb-t3-widget { right: 16px; bottom: 16px; }
  #chat-fab { width: 44px; height: 44px; }
  .cms-map-iframe-frame { height: 240px; }
  img, video, iframe { max-width: 100%; }

  .visit-panel__visual {
    height: 260px;
    min-height: 260px;
  }
  .visit-panel__visual img {
    top: 0;
    left: 0;
    width: 100%;
    height: 260px;
    min-height: 260px;
    max-width: none;
    object-fit: cover;
  }
  .visit-panel__visual > span {
    right: 24px;
    line-height: 1.3;
  }
}
