/* =========================================================
   Gallery Iseo × 그누보드5 브리지
   그누보드 기본 레이아웃(default.css)과 Iseo 디자인(styles.css)을
   연결한다. head.php 가 콘텐츠를 #wrapper > #container_wr > #container
   로 감싸므로, 이 래퍼들을 전체폭 패스스루로 중화한다.
   ========================================================= */

/* --- 고정 헤더 높이 단일 소스 --- */
:root { --iseo-header-h: 64px; }
.site-header { min-height: var(--iseo-header-h); }
html { scroll-padding-top: calc(var(--iseo-header-h) + 12px); }

/* --- 그누보드 래퍼 중화: 전체폭 통과 --- */
#hd, #wrapper, #ft { min-width: 0 !important; }

#wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#container_wr {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
}

#container {
  position: static !important;
  float: none !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
}

#container:after { content: none !important; }

/* 그누보드가 남기는 잔여 요소 정리 */
#container_wr > .lo_location,
#tnb, #aside { display: none; }

/* --- 관리자 로그인 안내 바 (head.sub.php 출력) --- */
#hd_login_msg {
  position: fixed;
  top: 0; right: 0;
  z-index: 30;
  padding: 6px 14px;
  font-size: 11px;
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #fff;
  background: rgba(34, 48, 71, 0.9);
  border-bottom-left-radius: 8px;
}
#hd_login_msg a { color: var(--gold); margin-left: 8px; }

/* --- 상단으로 버튼 (tail.php) --- */
#top_btn {
  display:none !important;  
  position: fixed ;
  right: clamp(16px, 3vw, 40px);
  bottom: clamp(16px, 3vw, 40px);
  z-index: 20;
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  background: var(--night);
  border: 0; border-radius: 999px;
  cursor: pointer;
  opacity: 0.85;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
#top_btn:hover { opacity: 1; transform: translateY(-2px); }

/* =========================================================
   관리자용 게시판 툴바 (목록/보기 상단의 글쓰기·관리 버튼)
   ========================================================= */
.iseo-admin-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  max-width: 1180px;
  margin: 0 auto 8px;
  padding: 10px clamp(20px, 5vw, 64px) 0;
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 12px;
}
.iseo-admin-bar .iseo-total { color: var(--muted); margin-right: auto; }
.iseo-admin-bar a,
.iseo-admin-bar button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  font: inherit;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.iseo-admin-bar a:hover,
.iseo-admin-bar button:hover { background: var(--night); color: #fff; border-color: var(--night); }

/* 그누보드 페이지네이션 */
.iseo-paging {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin: 48px auto 0;
  padding: 0 20px;
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 13px;
}
.iseo-paging .pg_page,
.iseo-paging .pg_current,
.iseo-paging strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px; height: 36px;
  padding: 0 10px;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 6px;
}
.iseo-paging .pg_current,
.iseo-paging strong.pg_current { color: #fff; background: var(--night); border-color: var(--night); font-weight: 600; }
.iseo-paging a.pg_page:hover { color: var(--ink); border-color: var(--ink); }
.iseo-paging .pg { display: flex; gap: 6px; }

/* =========================================================
   News / ArtFair 등 일반 게시글(본문) 스타일
   ========================================================= */
.iseo-post {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 40px) 96px;
}
.iseo-post .iseo-post-head {
  padding: 32px 0 28px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 40px;
}
.iseo-post .iseo-post-date {
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 13px;
  letter-spacing: 0.02em;
  color: var(--moss);
  margin: 0 0 14px;
}
.iseo-post .iseo-post-title {
  margin: 0;
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 500;
  font-size: clamp(26px, 3.4vw, 38px);
  line-height: 1.3;
  color: var(--ink);
}
.iseo-post .iseo-post-body {
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.95;
  color: #33322d;
}
.iseo-post .iseo-post-body p { margin: 0 0 1.2em; }
.iseo-post .iseo-post-body img { max-width: 100%; height: auto; border-radius: 8px; margin: 12px 0; }
.iseo-post .iseo-post-body a { color: var(--night); text-decoration: underline; text-underline-offset: 3px; }

.iseo-post-nav {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  max-width: 820px;
  margin: 0 auto;
  padding: 28px clamp(20px, 5vw, 40px) 0;
  border-top: 1px solid var(--line);
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 13px;
}
.iseo-post-nav a { color: var(--muted); transition: color 0.15s ease; }
.iseo-post-nav a:hover { color: var(--ink); }

/* News 목록 */
.news-list {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 40px);
  border-top: 1px solid var(--line);
}
.news-list a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 28px 4px;
  border-bottom: 1px solid var(--line);
  transition: padding-left 0.2s ease;
}
.news-list a:hover { padding-left: 14px; }
.news-list .news-title {
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: clamp(17px, 2vw, 21px);
  color: var(--ink);
  line-height: 1.4;
}
.news-list .news-date {
  flex: 0 0 auto;
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 12px;
  letter-spacing: 0.03em;
  color: var(--moss);
}
.news-empty {
  max-width: 900px;
  margin: 0 auto;
  padding: 80px 20px;
  text-align: center;
  color: var(--muted);
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* 목록 하단 여백 확보 */
.page-main .section:last-child { margin-bottom: clamp(60px, 8vw, 120px); }

/* ArtFair 관리자 클릭(뷰 진입) — 그리드 셀 유지 + 호버 */
.fair-list a.fair-item-link { display: block; color: inherit; text-decoration: none; }
.fair-list a.fair-item-link article { height: 100%; transition: background 0.15s ease; }
.fair-list a.fair-item-link:hover article { background: #faf9f6; }

@media (max-width: 768px) {
  .iseo-admin-bar { padding-left: 20px; padding-right: 20px; }
  .news-list a { flex-direction: column; gap: 6px; }
}

/* =========================================================
   글쓰기 / 일반 그누보드 페이지: inner 래퍼 + 최대폭 1600px
   ========================================================= */
/* 고정 헤더를 피하도록 iseo 전용 래퍼가 없는 일반 페이지에 상단 여백(헤더 높이 기준) */
#container:not(:has(.page-main)):not(:has(#home)) {
  padding-top: calc(var(--iseo-header-h) + 32px);
  padding-bottom: 80px;
}

/* 글쓰기 폼: inner 정렬 + 최대폭 1600 */
#bo_w,
#fwrite {
  max-width: 1600px;
  margin: 0 auto;
  width: 100%;
}
#bo_w #wr_content { width: 100%; }

/* =========================================================
   글쓰기 폼 클린 디자인 (도시탐탐 스타일 · 흰 배경 · pill 버튼)
   ========================================================= */
#bo_w {
  background: #fff;
  padding-left: clamp(16px, 4vw, 44px);
  padding-right: clamp(16px, 4vw, 44px);
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--ink);
}
#bo_w h2.sound_only { position: absolute; }
#bo_w form { width: 100% !important; }
#bo_w .write_div { margin: 0 0 16px; position: relative; }

/* 입력 요소 공통 */
#bo_w .frm_input,
#bo_w input[type="text"],
#bo_w input[type="password"],
#bo_w input[type="email"],
#bo_w select,
#bo_w textarea {
  width: 100%;
  height: 52px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  font-family: inherit;
  font-size: 15px;
  box-shadow: none;
  transition: border-color 0.15s ease;
}
#bo_w textarea {
  height: auto;
  min-height: 120px;
  padding: 14px 16px;
  line-height: 1.75;
  resize: vertical;
}
#bo_w .frm_input:focus,
#bo_w input:focus,
#bo_w select:focus,
#bo_w textarea:focus { outline: none; border-color: var(--night); }
#bo_w #wr_subject { height: 56px; font-size: 16px; }
#bo_w label { font-size: 13px; color: var(--muted); }

/* 옵션(공지 등) 체크박스 줄 */
#bo_w .bo_v_option { list-style: none; margin: 0 0 6px; padding: 0; display: flex; gap: 18px; }
#bo_w .bo_v_option .chk_box { font-size: 13px; color: var(--ink); }

/* 콘텐츠 공개/비공개 토글 */
#bo_w .iseo-visibility-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 24px;
  padding: 18px 20px;
  border: 1px solid #dfe8e5;
  border-radius: 18px;
  background: linear-gradient(135deg, #fbfdfc 0%, #f3f8f7 100%);
  box-shadow: 0 8px 24px rgba(34, 76, 67, 0.06);
}
#bo_w .iseo-visibility-copy { min-width: 0; }
#bo_w .iseo-visibility-copy strong {
  display: block;
  margin-bottom: 4px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 700;
}
#bo_w .iseo-visibility-copy span {
  display: block;
  color: #7b8582;
  font-size: 12.5px;
  line-height: 1.55;
}
#bo_w .iseo-visibility-toggle {
  display: grid;
  grid-template-columns: repeat(2, minmax(142px, 1fr));
  gap: 8px;
  flex: 0 0 auto;
  padding: 5px;
  border: 1px solid #d9e2df;
  border-radius: 15px;
  background: #fff;
}
#bo_w .iseo-visibility-option { position: relative; margin: 0; cursor: pointer; }
#bo_w .iseo-visibility-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
#bo_w .iseo-visibility-option-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 8px 13px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: #7a8380;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
#bo_w .iseo-visibility-option:hover .iseo-visibility-option-inner { background: #f6f8f7; }
#bo_w .iseo-visibility-option input:focus-visible + .iseo-visibility-option-inner {
  outline: 3px solid rgba(52, 167, 143, .22);
  outline-offset: 2px;
}
#bo_w .iseo-visibility-option.is-public input:checked + .iseo-visibility-option-inner {
  border-color: #70c6b2;
  background: #eaf7f3;
  color: #176c5b;
  box-shadow: 0 3px 10px rgba(41, 142, 120, .11);
}
#bo_w .iseo-visibility-option.is-private input:checked + .iseo-visibility-option-inner {
  border-color: #28312f;
  background: #28312f;
  color: #fff;
  box-shadow: 0 3px 10px rgba(20, 30, 28, .15);
}
#bo_w .iseo-visibility-icon {
  position: relative;
  display: block;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 50%;
  background: currentColor;
  opacity: .12;
}
#bo_w .iseo-visibility-icon::before,
#bo_w .iseo-visibility-icon::after { content: ""; position: absolute; }
#bo_w .is-public .iseo-visibility-icon::before {
  inset: 7px 5px;
  border: 2px solid currentColor;
  border-radius: 50% / 65%;
}
#bo_w .is-public .iseo-visibility-icon::after {
  top: 10px;
  left: 10px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
}
#bo_w .is-private .iseo-visibility-icon::before {
  top: 10px;
  left: 7px;
  width: 10px;
  height: 8px;
  border: 2px solid currentColor;
  border-radius: 3px;
}
#bo_w .is-private .iseo-visibility-icon::after {
  top: 5px;
  left: 9px;
  width: 6px;
  height: 7px;
  border: 2px solid currentColor;
  border-bottom: 0;
  border-radius: 6px 6px 0 0;
}
#bo_w .iseo-visibility-option input:checked + .iseo-visibility-option-inner .iseo-visibility-icon {
  background: transparent;
  opacity: 1;
}
#bo_w .iseo-visibility-text { display: flex; flex-direction: column; gap: 1px; }
#bo_w .iseo-visibility-text b { font-size: 13.5px; line-height: 1.25; }
#bo_w .iseo-visibility-text small { color: inherit; font-size: 10.5px; line-height: 1.3; opacity: .72; }

.iseo-private-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  margin: 0 0 8px;
  padding: 3px 9px;
  border-radius: 999px;
  background: #28312f;
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .02em;
}

.artist-list h2 .iseo-private-badge {
  display: inline-flex;
  align-items: center;
  min-height: 17px;
  margin: 0 0 0 7px;
  padding: 2px 6px;
  border-radius: 3px;
  background: #000;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .02em;
  vertical-align: middle;
}

/* 임시저장 버튼 (제목줄 우측) */
#bo_w #autosave_wrapper { position: relative; }
#bo_w #btn_autosave {
  position: absolute; top: 50%; right: 8px; transform: translateY(-50%);
  background: var(--night); color: #fff;
  border: 0; border-radius: 8px; height: 38px; padding: 0 16px;
  font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
}
#bo_w #autosave_wrapper #wr_subject { padding-right: 160px; }
#bo_w #autosave_pop { z-index: 10; }

/* 에디터/링크/파일 라벨 */
#bo_w .bo_w_link label,
#bo_w .bo_w_flie label { color: var(--muted); }
#bo_w .file_wr { display: flex; align-items: center; gap: 10px; }
#bo_w .bo_w_flie { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
#bo_w .frm_file { border: 1px solid var(--line); border-radius: 10px; padding: 9px; height: auto; background: #fff; }

/* 하단 버튼: 취소(아웃라인 pill) / 작성완료(검정 pill) */
#bo_w .btn_confirm {
  display: flex; justify-content: center; align-items: center; gap: 12px;
  margin-top: 40px; text-align: center;
}
#bo_w .btn_submit,
#bo_w a.btn_cancel,
#bo_w button.btn_cancel {
  display: inline-flex; align-items: center; justify-content: center;
  height: 54px; padding: 0 40px;
  border-radius: 999px;
  font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1;
  cursor: pointer;
}
#bo_w .btn_submit { background: var(--ink); color: #fff; border: 0; }
#bo_w .btn_submit:hover { background: #000; }
#bo_w a.btn_cancel,
#bo_w button.btn_cancel { background: #fff; color: var(--ink); border: 1px solid var(--line); text-decoration: none; }
#bo_w a.btn_cancel:hover,
#bo_w button.btn_cancel:hover { background: #f6f6f4; }

@media (max-width: 760px) {
  #bo_w .iseo-visibility-panel { align-items: stretch; flex-direction: column; gap: 14px; padding: 16px; }
  #bo_w .iseo-visibility-toggle { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  #bo_w .iseo-visibility-option-inner { justify-content: center; padding: 8px 10px; }
}

@media (max-width: 430px) {
  #bo_w .iseo-visibility-toggle { grid-template-columns: 1fr; }
}

/* --- 커스텀 필드 섹션 --- */
#bo_w .iseo-fieldset {
  margin: 24px 0;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
#bo_w .iseo-fieldset > h3 {
  margin: 0 0 4px;
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 500; font-size: 19px; color: var(--ink);
}
#bo_w .iseo-fieldset > .fs-desc { margin: 0 0 20px; font-size: 12.5px; color: #a09d95; }
#bo_w .iseo-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px;
}
#bo_w .iseo-field { display: flex; flex-direction: column; gap: 7px; }
#bo_w .iseo-field.col-full { grid-column: 1 / -1; }
#bo_w .iseo-field > label { font-size: 12.5px; font-weight: 600; color: var(--muted); }
#bo_w .iseo-field .hint { font-size: 11.5px; color: #a8a49b; font-weight: 400; }
/* 그리드 밖에서 세로로 쌓이는 필드(전시 서문·작가노트 등) 간 간격 */
#bo_w .iseo-fieldset > .iseo-field + .iseo-field { margin-top: 16px; }

/* --- 반복 입력 UI --- */
#bo_w .iseo-repeat-rows { display: flex; flex-direction: column; gap: 12px; }
#bo_w .iseo-repeat-row {
  position: relative;
  padding: 16px 16px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fafaf8;
}
#bo_w .iseo-repeat-row .row-grid { display: grid; gap: 10px; }
#bo_w .iseo-repeat-row .row-grid.cols-3 { grid-template-columns: 1.1fr 1fr 1.4fr; }
#bo_w .iseo-repeat-row .row-grid.cols-2 { grid-template-columns: 0.8fr 2fr; }
#bo_w .iseo-repeat-row .row-grid.cols-1 { grid-template-columns: 1fr; }
#bo_w .iseo-repeat-row .rf { display: flex; flex-direction: column; gap: 5px; }
#bo_w .iseo-repeat-row .rf > span { font-size: 11.5px; color: var(--muted); }
#bo_w .iseo-repeat-row input,
#bo_w .iseo-repeat-row textarea { height: 46px; }
#bo_w .iseo-repeat-row textarea { height: auto; min-height: 60px; }
#bo_w .iseo-repeat-del {
  position: absolute; top: 10px; right: 12px;
  background: none; border: 0; color: #c0554e; font-size: 12px; font-weight: 600; cursor: pointer;
}
#bo_w .iseo-repeat-del:hover { text-decoration: underline; }
#bo_w .iseo-repeat-add {
  margin-top: 12px; width: 100%; height: 46px;
  background: #fff; border: 1px dashed #cfccc4; border-radius: 10px;
  color: var(--muted); font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}
#bo_w .iseo-repeat-add:hover { border-color: var(--night); color: var(--ink); }

@media (max-width: 680px) {
  #bo_w .iseo-grid { grid-template-columns: 1fr; }
  #bo_w .iseo-repeat-row .row-grid.cols-3,
  #bo_w .iseo-repeat-row .row-grid.cols-2 { grid-template-columns: 1fr; }
  #bo_w .btn_confirm { flex-direction: column-reverse; }
  #bo_w .btn_submit, #bo_w a.btn_cancel { width: 100%; }
}

/* 기타 일반 폼(로그인/회원가입/검색 등)도 동일 최대폭 inner */
#mb_login, #register_form, #login, #bo_v, #bo_list,
.new_win, #mb_confirm, #scrap_popup {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}

/* =========================================================
   스크롤 진입 모션 (아래 → 위로 떠오르며 페이드 인)
   html.iseo-motion 이 있을 때만 초기 은닉 → JS 미작동 시 콘텐츠 항상 노출
   ========================================================= */
html.iseo-motion .iseo-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.75s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.75s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform;
}
html.iseo-motion .past-card.iseo-reveal {
  transform: translateY(42px);
  transition-duration: 1s;
  transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
}
html.iseo-motion .iseo-reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html.iseo-motion .iseo-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================================================
   모바일 햄버거 + 오른쪽→왼쪽 드로어 메뉴
   (데스크톱 숨김 / 860px 이하에서 EN 다음에 노출)
   ========================================================= */
.iseo-nav-toggle {
  display: none;               /* 데스크톱 숨김 */
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.iseo-nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform 0.28s ease, opacity 0.2s ease;
}
.iseo-nav-toggle.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.iseo-nav-toggle.is-active span:nth-child(2) { opacity: 0; }
.iseo-nav-toggle.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.iseo-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(20, 24, 31, 0.42);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.iseo-nav-overlay.is-visible { opacity: 1; visibility: visible; }
body.iseo-noscroll { overflow: hidden; }

/* 드로어가 열리면 헤더(및 그 안의 드로어)를 오버레이 위로 올린다.
   헤더가 z-index:10 으로 독립 쌓임 맥락을 만들기 때문에 반드시 필요. */
.site-header.iseo-drawer-open { z-index: 50; }

@media (max-width: 860px) {
  /* 헤더: 브랜드 | (여백) | KO EN | ☰ */
  .site-header { grid-template-columns: auto 1fr auto auto !important; }
  .brand { grid-column: 1; }
  .lang-switch { grid-column: 3 !important; justify-self: end; }
  .iseo-nav-toggle { display: flex; grid-column: 4; }
  .iseo-nav-overlay { display: block; }

  body { overflow-x: hidden; }   /* 오프스크린 드로어로 인한 가로 스크롤 방지 */

  /* nav-links 를 오른쪽에서 왼쪽으로 슬라이드되는 드로어로 변환 */
  .nav-links {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(82vw, 340px) !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: calc(var(--iseo-header-h) + 28px) 26px 40px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    background: #fff !important;
    border-left: 1px solid var(--line) !important;
    box-shadow: -18px 0 45px rgba(20, 24, 31, 0.16) !important;
    opacity: 1 !important;
    visibility: hidden !important;
    transform: translateX(100%) !important;
    transition: transform 0.36s cubic-bezier(0.22, 0.61, 0.36, 1),
                visibility 0.36s ease !important;
    overflow-y: auto !important;
    z-index: 45 !important;
  }
  .site-header.iseo-drawer-open .nav-links {
    transform: translateX(0) !important;
    visibility: visible !important;
  }
  .nav-links a {
    width: 100%;
    padding: 17px 2px;
    border-bottom: 1px solid var(--line);
    font-size: clamp(17px, 4.4vw, 21px);
    font-weight: 500;
  }
}

/* =========================================================
   모바일 타이포그래피: 글자 크기 축소 + line-height 정돈
   (styles.css 이후 로드되어 우선 적용)
   ========================================================= */
@media (max-width: 768px) {
  /* 페이지 헤딩 */
  .page-heading h1 { font-size: clamp(26px, 7.5vw, 34px); line-height: 1.2; }
  .page-heading p { font-size: 12.5px; line-height: 1.55; }
  .section-heading h2 { font-size: 19px; line-height: 1.25; }

  /* 홈 */
  .home-text h1 { font-size: clamp(30px, 9vw, 44px); line-height: 1.12; }
  .home-text .subtitle { font-size: 13px; line-height: 1.4; }
  .home-text .date { font-size: 12px; }

  /* 목록 카드 */
  .past-card h3 { font-size: 16px; line-height: 1.3; }
  .past-card p, .past-card .date { font-size: 12px; line-height: 1.5; }
  .artist-list h2 { font-size: 17px; line-height: 1.25; }
  .artist-list p, .artist-list span { font-size: 12px; line-height: 1.5; }
  .fair-list h3 { font-size: clamp(22px, 6vw, 30px); line-height: 1.16; }
  .fair-list p { font-size: 13px; line-height: 1.55; }
  .upcoming-copy h3 { font-size: 20px; line-height: 1.2; }

  /* 상세 */
  .detail-heading h1, #exhibition-title, #artist-name { font-size: clamp(28px, 8vw, 40px); line-height: 1.14; }
  .detail-subtitle, .artist-detail-intro { font-size: 14px; line-height: 1.5; }
  .detail-artist, .detail-date { font-size: 12.5px; }
  .detail-label p { font-size: 13px; }
  .detail-label span { font-size: 11.5px; }
  .detail-copy h2 { font-size: 19px; line-height: 1.35; }
  .detail-copy p { font-size: 13.5px; line-height: 1.72; }
  .exhibition-text-body h2, .artist-note-body h2 { font-size: 19px; line-height: 1.35; }
  .exhibition-text-columns p, .artist-note-body p { font-size: 13.5px; line-height: 1.75; }
  .detail-work-grid strong { font-size: 13px; }
  .detail-work-grid span { font-size: 11.5px; line-height: 1.4; }
  .artist-profile-list p { font-size: 13px; line-height: 1.6; }

  /* News / 일반 게시글 */
  .iseo-post-title { font-size: clamp(21px, 6vw, 28px); line-height: 1.25; }
  .iseo-post-body { font-size: 14px; line-height: 1.8; }
  .iseo-post-date { font-size: 12px; }
  .news-list .news-title { font-size: 15px; line-height: 1.4; }
  .news-list .news-date { font-size: 11px; }

  /* 푸터 */
  .site-footer, .footer-info a, .footer-info span { font-size: 12px; line-height: 1.6; }
  .footer-copyright { font-size: 11px; }

  /* 드로어 메뉴 */
  .nav-links a { font-size: 16px; line-height: 1.4; }

  /* 글쓰기 폼 */
  #bo_w .frm_input, #bo_w input, #bo_w select, #bo_w textarea { font-size: 14px; }
  #bo_w #wr_subject { font-size: 15px; }
  #bo_w .iseo-fieldset > h3 { font-size: 17px; }
  #bo_w .iseo-field > label { font-size: 12px; }
  #bo_w .btn_submit, #bo_w a.btn_cancel { font-size: 14px; }
}

@media (max-width: 480px) {
  .page-heading h1 { font-size: clamp(23px, 8vw, 30px); }
  .detail-copy p, .exhibition-text-columns p, .artist-note-body p, .iseo-post-body { font-size: 13px; line-height: 1.68; }
  .section-heading h2 { font-size: 17px; }
  .detail-copy h2, .exhibition-text-body h2, .artist-note-body h2 { font-size: 17.5px; }
}

/* =========================================================
   글쓰기 폼: 대표 이미지 · 작품 첨부 행
   ========================================================= */
#bo_w .iseo-imgrow {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  margin-bottom: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fafaf8;
}
#bo_w .iseo-imgrow-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
#bo_w .iseo-imgrow-head > label { font-size: 12.5px; font-weight: 600; color: var(--ink); }
#bo_w .iseo-imgrow .file_del { font-size: 12px; color: var(--muted); }
#bo_w .iseo-imgrow .frm_file { width: 100%; height: auto; }
#bo_w .iseo-imgrow input[type="text"] { height: 46px; }

/* 전시 작품 등록: 추가/삭제 반복 UI */
#bo_w .iseo-work-row.is-hidden { display: none; }
#bo_w .iseo-work-row.is-marked-del { opacity: .55; border-color: #e2b3ab; background: #fdf4f4; }
#bo_w .iseo-work-current { font-size: 12px; color: var(--muted); }
#bo_w .iseo-work-opts { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 8px; }
#bo_w .iseo-work-span-field,
#bo_w .iseo-work-yt-field {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; color: var(--muted); font-weight: 600;
}
#bo_w .iseo-work-yt-field { flex: 1 1 320px; }
#bo_w .iseo-work-span { width: auto; min-width: 180px; }
#bo_w .iseo-work-yt { flex: 1 1 auto; min-width: 220px; }
#bo_w .iseo-work-addbar { display: flex; flex-wrap: wrap; gap: 10px; }
#bo_w .iseo-work-video { border-left: 3px solid #c0392b; }
#bo_w .iseo-work-vbadge { font-size: 12px; font-weight: 600; color: #c0392b; margin: 2px 0 6px; }
#bo_w .iseo-work-tools { display: inline-flex; gap: 6px; }
#bo_w .iseo-work-up,
#bo_w .iseo-work-down {
  border: 1px solid var(--line); background: #fff; color: var(--muted);
  font-size: 12px; width: 28px; height: 26px; border-radius: 6px; cursor: pointer; line-height: 1;
}
#bo_w .iseo-work-up:hover,
#bo_w .iseo-work-down:hover { color: var(--ink); border-color: #bbb; }
#bo_w .iseo-work-del {
  border: 1px solid var(--line); background: #fff; color: var(--muted);
  font-size: 12px; padding: 4px 14px; border-radius: 999px; cursor: pointer;
  line-height: 1.6; white-space: nowrap;
}
#bo_w .iseo-work-del:hover { color: #c0392b; border-color: #e2b3ab; }
#bo_w .iseo-btn-add {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px dashed var(--line); background: #fff; color: var(--ink);
  font-size: 13px; font-weight: 600; padding: 11px 20px; border-radius: 10px;
  cursor: pointer; transition: border-color .15s ease, color .15s ease;
}
#bo_w .iseo-btn-add:hover { border-color: var(--ink); }

/* 페이지 헤딩(Exhibition 등): 로드 시 아래→위로 떠오르며 제목→설명 시간차 노출 */
@keyframes iseoHeadingRise {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: none; }
}
.page-heading h1,
.page-heading p {
  animation: iseoHeadingRise 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.page-heading h1 { animation-delay: 0.05s; }
.page-heading p  { animation-delay: 0.22s; }
@media (prefers-reduced-motion: reduce) {
  .page-heading h1, .page-heading p { animation: none; }
}

/* 전시 목록: 무한 로딩 상태 표시 */
.past-exhibitions .iseo-infinite-status {
  margin: 28px 0 0;
  text-align: center;
  font-size: 13px;
  color: var(--muted);
  letter-spacing: .02em;
}
.past-exhibitions .iseo-infinite-sentinel { width: 100%; height: 1px; }

/* =========================================================
   상세: 작품 그리드 / 대표 이미지를 본문(.detail-copy) 열에 정렬
   (데스크톱만 — 모바일 단일컬럼은 styles.css 유지)
   ========================================================= */
@media (min-width: 861px) {
  .detail-work-gallery {
    grid-template-columns: minmax(190px, 0.55fr) minmax(0, 1.45fr);
    gap: clamp(40px, 9vw, 140px);
  }
  .detail-artwork {
    display: grid;
    grid-template-columns: minmax(190px, 0.55fr) minmax(0, 1.45fr);
    gap: clamp(40px, 9vw, 140px);
  }
  .detail-artwork img {
    grid-column: 2;
    width: 100%;
    max-width: 760px;
    margin: 0;
  }
}

/* 전시 상세 하단 내비: PC = 가운데 LIST(대문자), 모바일 = LIST 하단 이동 */
.exhibition-detail .detail-navigation { position: relative; }
.exhibition-detail .detail-navigation .detail-list {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  text-transform: uppercase; letter-spacing: 0.14em; font-weight: 600;
}
.exhibition-detail .detail-navigation .detail-list::before,
.exhibition-detail .detail-navigation .detail-list::after { display: none; }

@media (max-width: 520px) {
  .exhibition-detail .detail-navigation {
    display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; position: static;
  }
  .exhibition-detail .detail-navigation > a:first-child { justify-self: start; }
  .exhibition-detail .detail-navigation .detail-next { justify-self: end; }
  .exhibition-detail .detail-navigation .detail-list {
    position: static; transform: none;
    grid-column: 1 / -1; order: 3; justify-self: center;
  }
}

/* ===== 작가 상세: 정렬/반응형 보정 + 텍스트 max-width 제거 ===== */
/* 작가 프로필: 라벨-값 정렬 */
.artist-detail .artist-profile-list { display: grid; gap: 0; }
.artist-detail .artist-profile-list p {
  display: grid; grid-template-columns: minmax(120px, 0.32fr) minmax(0, 1fr);
  gap: 16px; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--line); align-items: baseline;
}
.artist-detail .artist-profile-list p:first-child { border-top: 1px solid var(--line); }
.artist-detail .artist-profile-list span:first-child { color: var(--muted); font-size: 14px; }
.artist-detail .artist-profile-list span:last-child { color: var(--ink); }

/* 작가 전시경력 리스트 */
.artist-detail .artist-ex-groups h3 {
  margin: 36px 0 10px; font-size: 15px; font-weight: 600; color: var(--ink);
}
.artist-detail .artist-ex-groups h3:first-child { margin-top: 0; }
.artist-detail .artist-ex-list { list-style: none; margin: 0; padding: 0; }
.artist-detail .artist-ex-list li {
  display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px;
  padding: 12px 0; border-bottom: 1px solid var(--line); align-items: baseline;
  font-size: 15px; line-height: 1.6;
}
.artist-detail .artist-ex-list .ex-year { color: var(--muted); font-size: 13.5px; }
.artist-detail .artist-ex-list .ex-main strong { font-weight: 500; }
.artist-detail .artist-ex-list .ex-main em { font-style: normal; color: var(--muted); }

/* 글쓰기: 유연 섹션 빌더 도구 버튼 */
#bo_w .iseo-section-row { margin-bottom: 14px; }
#bo_w .iseo-sec-tools { display: inline-flex; gap: 6px; }
#bo_w .iseo-sec-tools button {
  border: 1px solid var(--line); background: #fff; color: var(--muted);
  font-size: 12px; padding: 4px 10px; border-radius: 8px; cursor: pointer; line-height: 1.4;
}
#bo_w .iseo-sec-tools .iseo-sec-del:hover { color: #c0392b; border-color: #e2b3ab; }
#bo_w .iseo-sec-tools .iseo-sec-up:hover, #bo_w .iseo-sec-tools .iseo-sec-down:hover { border-color: var(--ink); color: var(--ink); }
#bo_w .iseo-sec-num { font-size: 12.5px; font-weight: 600; color: var(--ink); }

/* 유연 섹션 디자인: 키워드형 / 리스트형 */
.artist-detail .artist-keyword-list {
  display: flex; flex-wrap: wrap; gap: 10px 16px;
  margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line);
}
.artist-detail .artist-keyword-list span { font-size: 12px; font-weight: 500; color: var(--ink); }
/* 리스트형(시리즈/프로세스/비평): 참조 artist-process-list */
.artist-detail .artist-process-list { display: grid; }
.artist-detail .artist-process-list article {
  display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: clamp(18px, 3vw, 38px);
  padding: 24px 0; border-top: 1px solid var(--line);
}
.artist-detail .artist-process-list article:last-child { border-bottom: 1px solid var(--line); }
.artist-detail .artist-process-list article > span { color: var(--clay); font-size: 13px; font-weight: 500; }
.artist-detail .artist-process-list article h3 { margin: 0; font-size: clamp(18px, 2vw, 24px); font-weight: 500; }
.artist-detail .artist-process-list p { margin: 10px 0 0; color: var(--muted); font-size: 14px; line-height: 1.8; word-break: keep-all; }

/* 개인전/단체전 전체보기 토글 (참조 artist-archive-toggle) */
.artist-detail .artist-archive-toggle {
  margin-top: 24px; padding: 0 0 4px; border: 0; border-bottom: 1px solid currentColor;
  background: transparent; color: var(--ink); font: inherit; font-size: 13px; font-weight: 500; cursor: pointer;
}

/* 작가 상세 섹션 레이아웃 통일 (참조: 라벨 0.42fr + 본문 1fr, 가로패딩 80px) */
.artist-detail .detail-content {
  grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr);
  gap: clamp(28px, 6vw, 86px);
  padding: clamp(72px, 9vw, 120px) clamp(20px, 6vw, 80px);
}
.artist-detail .artist-archive-section {
  display: grid; grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr);
  gap: clamp(28px, 6vw, 86px); padding: clamp(64px, 8vw, 104px) clamp(20px, 6vw, 80px);
  border-top: 1px solid var(--line); align-items: start;
}
@media (max-width: 860px) {
  .artist-detail .detail-content,
  .artist-detail .artist-archive-section { grid-template-columns: 1fr; gap: 28px; }
}

/* 개인전/단체전: 참조 artist-archive-list */
.artist-detail .artist-archive-body h2 { margin: 0 0 12px; font-size: clamp(24px, 3vw, 34px); font-weight: 500; line-height: 1.2; }
.artist-detail .artist-archive-list { display: grid; }
.artist-detail .artist-archive-list article {
  display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: clamp(18px, 3vw, 38px);
  padding: 20px 0; border-top: 1px solid var(--line);
}
.artist-detail .artist-archive-list article[hidden] { display: none; }
.artist-detail .artist-archive-list article:last-child { border-bottom: 1px solid var(--line); }
.artist-detail .artist-archive-list article > span { color: var(--clay); font-size: 13px; font-weight: 500; }
.artist-detail .artist-archive-list strong { display: block; font-size: clamp(17px, 1.8vw, 22px); font-weight: 500; line-height: 1.35; word-break: keep-all; }
.artist-detail .artist-archive-list p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; word-break: keep-all; }

/* 소장: 참조 artist-collection-list (2열) */
.artist-detail .artist-collection-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 34px; padding-top: 2px; }
.artist-detail .artist-collection-list p { margin: 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.65; word-break: keep-all; }
@media (max-width: 520px) { .artist-detail .artist-collection-list { grid-template-columns: 1fr; } }

/* ===== Selected Works 슬라이더 (참조 artist-work-slider 동일) ===== */
.artist-detail .artist-work-slider {
  display: grid; grid-template-columns: minmax(230px, 0.65fr) minmax(0, 1.85fr);
  gap: clamp(32px, 5vw, 76px); padding: clamp(72px, 9vw, 120px) clamp(20px, 6vw, 80px); background: #f0f0ee;
}
.artist-detail .artist-slider-intro { display: flex; flex-direction: column; min-width: 0; }
.artist-detail .artist-slider-intro > p { margin: 0 0 26px; font-size: 13px; font-weight: 500; }
.artist-detail .artist-slider-intro h2 { margin: 0; font-size: clamp(34px, 4.5vw, 64px); font-weight: 400; line-height: 1.08; word-break: keep-all; }
.artist-detail .artist-slider-index { display: flex; gap: 8px; margin-top: auto; padding-top: 40px; color: var(--muted); font-size: 13px; font-weight: 400; }
.artist-detail .artist-slider-stage { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; min-width: 0; }
.artist-detail .artist-single-work-stage { grid-template-columns: minmax(0, 0.72fr); }
.artist-detail .artist-work-panel { min-width: 0; transition: opacity 160ms ease, transform 160ms ease; }
.artist-detail .artist-work-image { position: relative; overflow: hidden; aspect-ratio: 3 / 4; background: #d8d8d5; cursor: zoom-in; }
.artist-detail .artist-work-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: object-position 320ms ease; }
.artist-detail .artist-work-image > span { display: none; }
.artist-detail .artist-work-caption { padding-top: 16px; }
.artist-detail .artist-work-caption strong { display: block; font-size: 15px; font-weight: 500; }
.artist-detail .artist-work-caption p { margin: 5px 0 0; color: var(--muted); font-size: 12px; font-weight: 400; }
.artist-detail .artist-work-caption p[hidden] { display: none; }
.artist-detail .artist-work-caption p[data-slider-left-description],
.artist-detail .artist-work-caption p[data-slider-right-description] { margin-top: 12px; line-height: 1.7; word-break: keep-all; }
.artist-detail .artist-slider-next {
  position: absolute; z-index: 2; top: calc(50% - 24px); left: 50%; display: grid; width: 48px; height: 48px;
  padding: 0; border: 0; border-radius: 50%; background: #ffffff; color: var(--ink); place-items: center;
  transform: translate(-50%, -50%); cursor: pointer;
}
.artist-detail .artist-slider-next span {
  width: 20px; height: 20px; background: currentColor;
  mask-image: url("assets/icon-arrow-right.svg"); -webkit-mask-image: url("assets/icon-arrow-right.svg");
  mask-position: center; mask-repeat: no-repeat; mask-size: contain;
  -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; -webkit-mask-size: contain;
}
.artist-detail .artist-slider-next:hover { background: var(--ink); color: #ffffff; }
.artist-detail .artist-slider-next:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.artist-detail .artist-work-slider.is-changing .artist-work-panel { opacity: 0.25; transform: translateX(6px); }

/* 라이트박스 */
body.has-lightbox { overflow: hidden; }
.artist-lightbox { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: clamp(20px, 4vw, 54px); background: rgba(22, 22, 20, 0.76); }
.artist-lightbox[hidden] { display: none; }
.artist-lightbox figure { display: grid; gap: 18px; width: min(1120px, 100%); max-height: 92vh; margin: 0; }
.artist-lightbox img { display: block; width: 100%; max-height: calc(92vh - 86px); object-fit: contain; background: #f7f4ed; }
.artist-lightbox figcaption { display: grid; gap: 5px; color: #ffffff; }
.artist-lightbox figcaption strong { font-size: 15px; font-weight: 500; }
.artist-lightbox figcaption span { color: rgba(255, 255, 255, 0.74); font-size: 12px; }
.artist-lightbox-close { position: absolute; top: 22px; right: 22px; width: 42px; height: 42px; border: 0; background: transparent; color: #ffffff; cursor: pointer; }
.artist-lightbox-close::before, .artist-lightbox-close::after { position: absolute; top: 20px; left: 9px; width: 24px; height: 1px; background: currentColor; content: ""; }
.artist-lightbox-close::before { transform: rotate(45deg); }
.artist-lightbox-close::after { transform: rotate(-45deg); }
.artist-lightbox-close:focus-visible { outline: 2px solid #ffffff; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .artist-detail .artist-work-panel, .artist-detail .artist-work-image img { transition: none; } }
@media (max-width: 860px) {
  .artist-detail .artist-work-slider { grid-template-columns: 1fr; gap: 44px; }
  .artist-detail .artist-single-work-stage { grid-template-columns: 1fr; }
  .artist-detail .artist-slider-index { margin-top: 28px; padding-top: 0; }
}
@media (max-width: 520px) {
  .artist-detail .artist-slider-stage { grid-template-columns: 1fr; gap: 32px; }
  .artist-detail .artist-work-image { aspect-ratio: 1 / 1; }
  .artist-detail .artist-slider-next { top: 50%; left: calc(100% - 36px); width: 44px; height: 44px; }
}

/* 작가 섹션 제목: Noto Serif KR(명조) — 영문 제목도 세리프 (About 제목 .detail-copy h2 는 제외/산세리프 유지) */
.artist-detail .artist-note-body h2,
.artist-detail .artist-archive-body h2,
.artist-detail .artist-process-body h2 { font-family: "Noto Serif KR", "Batang", serif; }

/* 노트/시리즈 본문 안의 소제목(h3) — 예: 중력 조각(Gravity Sculpture) */
.artist-detail .artist-note-body h3 {
  margin: 0 0 16px;
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 500;
  line-height: 1.25;
}

@media (max-width: 860px) {
  .artist-detail .artist-ex-list li { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; font-size: 14px; }
  .artist-detail .artist-profile-list p { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; font-size: 14px; }
}
@media (max-width: 520px) {
  .artist-detail .artist-profile-list p,
  .artist-detail .artist-ex-list li { grid-template-columns: 1fr; gap: 2px; }
  .artist-detail .artist-ex-list .ex-year { order: -1; }
}

/* ===== 명조(한글 제목·전시 설명 등) 폰트 — 영문=Poppins, 한글=Noto Serif KR ===== */
.home-text h1,
.current-exhibition-copy h2,
.green-layer-hero .detail-heading h1,
.exhibition-text-body h2,
.artist-detail-credit p,
.artist-detail-title h1,
.artist-detail-title span,
.artist-detail-intro,
.artist-note-body h2,
.artist-note-body p,
.artist-words-body h2,
.artist-process-body h2,
.artist-section-summary,
.artist-archive-body h2 {
  font-family: "Poppins", "Noto Serif KR", "Batang", serif;
}

/* =========================================================
   메인 팝업레이어(newwin) — 딤 배경 가운데 모달 + 이미지 스와이프 슬라이더
   (bbs/newwin.inc.php .hd_bg/.hd_pops_footer + popup-swiper.js 대응)
   ========================================================= */
#hd_pop {z-index:1100;position:relative;margin:0;height:0}
#hd_pop h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
/* 딤 배경 — 뒤 화면 어둡게(검은 반투명) */
.hd_bg {position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1100;}
/* 팝업 카드 — 화면 정중앙 · 세로 배치(위:닫기 / 가운데:이미지 / 아래:다시안보기) */
.hd_pops {position:fixed !important;left:50% !important;top:50% !important;transform:translate(-50%,-50%);z-index:1110;display:flex;flex-direction:column;align-items:center;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);background:transparent;border:0;}
.hd_pops img {display:block;max-width:100%;height:auto;max-height:calc(100vh - 170px)}
/* pill 버튼 — 닫기 · 다시 열람 안 함 (그누보드 기본 default.css 의 검은 바 스타일을 덮어씀) */
#hd_pop .hd_pops_footer .hd_pops_close,
#hd_pop .hd_pops_footer .hd_pops_reject {position:static;top:auto;right:auto;display:inline-flex;align-items:center;justify-content:center;min-height:46px;width:auto;padding:12px 26px;background:#fff;color:#111;border:1px solid rgba(0,0,0,.08);border-radius:50px;font-size:15px;font-weight:600;line-height:1.2;text-align:center;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18);transition:background .2s,color .2s,border-color .2s;white-space:nowrap;}
#hd_pop .hd_pops_footer .hd_pops_close:hover,
#hd_pop .hd_pops_footer .hd_pops_reject:hover {background:#f2f2f2;color:#000;border-color:rgba(0,0,0,.14);}
#hd_pop .hd_pops_footer .hd_pops_close {gap:8px;}
/* 닫기 X 아이콘 — 얇은 1px 선으로 직접 그림(FA 굵은 X 대체) */
#hd_pop .hd_pops_footer .hd_pops_close .fa-times {position:relative;display:inline-block;width:12px;height:12px;font-size:0;}
#hd_pop .hd_pops_footer .hd_pops_close .fa-times::before,
#hd_pop .hd_pops_footer .hd_pops_close .fa-times::after {content:"";position:absolute;top:50%;left:0;width:100%;height:1px;background:currentColor;border-radius:1px;}
#hd_pop .hd_pops_footer .hd_pops_close .fa-times::before {transform:rotate(45deg);}
#hd_pop .hd_pops_footer .hd_pops_close .fa-times::after {transform:rotate(-45deg);}
#hd_pop .hd_pops_footer .hd_pops_reject strong {font-weight:700;color:inherit;}
.hd_pops_header {display:flex;justify-content:center;margin-bottom:16px;line-height:0;}
.hd_pops_con {position:relative;max-width:calc(100vw - 32px);height:auto !important;overflow:hidden;line-height:0;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.35);-webkit-overflow-scrolling:touch;}
/* 반응형: 내부 이미지가 팝업 폭에 맞춰 축소, 편집기 <p> 여백 제거 */
.hd_pops_con > p {margin:0;padding:0;line-height:0;}
.hd_pops_con img {display:block;width:100%;height:auto;max-width:100%;max-height:calc(100vh - 170px);}
.hd_pops_con .popup-slide-wrap {line-height:0;}
#hd_pop .hd_pops_footer {display:flex;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:16px;padding:0;background:transparent;text-align:center;position:static;}
/* 팝업 이미지 스와이프 슬라이더 (popup-swiper.js) */
.hd_pops_con .hd_pops_sw {position:relative;width:100%;overflow:hidden}
.hd_pops_con .hd_pops_sw .swiper-slide {display:flex;align-items:center;justify-content:center}
.hd_pops_con .hd_pops_sw .swiper-slide img {display:block;width:100%;height:auto}
.hd_pops_con .hd_pops_sw .swiper-slide a {display:block;width:100%;line-height:0}
.hd_pops_pg.swiper-pagination {bottom:16px}
.hd_pops_pg .swiper-pagination-bullet {width:8px;height:8px;background:#fff;opacity:.55}
.hd_pops_pg .swiper-pagination-bullet-active {opacity:1}
.hd_pops_nav {position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:34px;height:34px;padding:0;border:1px solid #b8c1c5;border-radius:50%;background:transparent;color:#2f3a42;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s}
.hd_pops_nav:hover {background:#2f3a42;border-color:#2f3a42;color:#fff}
.hd_pops_nav span {width:12px;height:12px;background:currentColor;-webkit-mask:url("assets/icon-arrow-right.svg") no-repeat center/contain;mask:url("assets/icon-arrow-right.svg") no-repeat center/contain}
.hd_pops_prev {left:10px}
.hd_pops_prev span {transform:scaleX(-1)}
.hd_pops_next {right:10px}
.hd_pops_nav.swiper-button-disabled {opacity:.3;cursor:default}
/* 슬라이더 폭: 이미지 1개 폭 (항상 한 개씩 노출) */
.hd_pops_con.hd_pops_con--slider {width:var(--pop-img-w,450px) !important;max-width:100%}
/* 이미지 로드 전 숨김 → 모두 로드되면(pop-ready) 페이드 인 (popup-swiper.js) */
#hd_pop .hd_pops, #hd_pop .hd_bg {opacity:0;transition:opacity .35s ease}
#hd_pop.pop-ready .hd_pops, #hd_pop.pop-ready .hd_bg {opacity:1}
@media (max-width:480px){
    .hd_pops_close, .hd_pops_reject {min-height:42px;padding:9px 16px;font-size:13px;max-width:calc(100vw - 32px)}
    .hd_pops_reject {white-space:normal;line-height:1.35;text-align:center}
    .hd_pops_header {margin-bottom:12px}
    .hd_pops_footer {margin-top:12px;flex-wrap:wrap;justify-content:center;gap:8px}
    .hd_pops_con {border-radius:12px}
    .hd_pops_nav {width:30px;height:30px}
    .hd_pops_pg.swiper-pagination {bottom:12px}
    .hd_pops_con.hd_pops_con--slider {max-width:80%}
}
