/* ==========================================================================
   GIST Magazine Vol.40 — Main (Page 1)
   디자인 원본 : 960pt 캔버스 → 최대 폭 1440px (스케일 1.5)
   ========================================================================== */

/* ---------- 변수 ---------- */
:root {
  --max-w: 1200px;
  --wrap: min(100vw, var(--max-w));   /* 실제 페이지(래퍼) 폭 */
  --pad-x: 13%;                       /* 좌우 콘텐츠 여백 (124.8/960) */

  /* 색상 — 원본에서 추출 */
  --color-text: #111111;
  --color-label: #d94333;             /* 카드 라벨 레드 */
  --color-bar: #d8332d;               /* 섹션 타이틀 레드 바 */
  --color-line: #111111;
  --color-line-soft: #9a9a9a;
  --color-line-gray: #c0c0c0;          /* 메뉴 섹션 구분선 */
  --color-line-pink: #f5cec7;          /* 메뉴 마스트헤드 아래 라인 */
  --color-line-red: #91525d;           /* 사이드바 Photo Essay 위 라인 (실측) */
  --color-menu-red: #d73b24;           /* 메뉴 Photo Essay 레드 (시안 실측) */
  --color-dark-panel: #575357;         /* Next Wave 다크 인터뷰 배경 (실측) */
  --color-dark-navy: #46525a;          /* Next Wave 2 청회색 배경 (실측) */
  --color-bg: #ffffff;

  /* 폰트 */
  --font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Malgun Gothic", sans-serif;
  --font-serif: "Noto Serif KR", "Nanum Myeongjo", serif;
  --font-masthead: "Gill Sans", "Gill Sans MT", "Pretendard Variable", Pretendard, sans-serif;

  /* 타이포 스케일 (1440px 기준) */
  --fs-section-title: clamp(38px, 4.69vw, 50px);   /* 45pt */
  --fs-card-title: clamp(18px, 2.08vw, 25px);        /* 20pt */
  --fs-card-label: clamp(15px, 1.67vw, 22px);        /* 16pt */
  --fs-hero-title: clamp(25px, 2.76vw, 30px);        /* 26.5pt */
  --fs-hero-desc: clamp(20px, 2.08vw, 25px);         /* 20pt */
  --fs-caption: clamp(22px, 2.6vw, 37.5px);          /* 25pt */
  --fs-gnb: clamp(14px, 1.67vw, 20px);               /* 16pt */

  /* 간격 (1440px 기준) */
  --gap-section: clamp(110px, 13.9vw, 200px);        /* 섹션 사이 */
  --gap-card: clamp(40px, 4.6vw, 66px);              /* 같은 컬럼 카드 사이 */
  --gap-card-lg: clamp(60px, 7.2vw, 104px);          /* Insight 우측 카드 사이 */
  --stagger-insight: clamp(90px, 12.5vw, 180px);     /* Insight 좌측 카드 밀림 */
  --offset-col: clamp(8px, 1vw, 15px);               /* 우측 컬럼 상단 오프셋 */

  --arrow-size: clamp(28px, 2.5vw, 36px);
}

/* ---------- 리셋 ---------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  color: var(--color-text);
  background: var(--color-bg);
  max-width: var(--max-w);
  margin: 0 auto;
  overflow-x: hidden;
  word-break: auto-phrase;
}
img { display: block; max-width: 100%; height: auto; }
ul { list-style: none; }
a { color: inherit; text-decoration: none; }
figure { margin: 0; }

/* ---------- 공통 레이아웃 ---------- */
.container {
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}
.container--bleed-right { padding-right: 0; }  /* 히어로 : 오른쪽 끝까지 */

/* 2단 컬럼 (Insight 공통 — 좌우 높이가 어긋나는 스태거형) */
.cols {
  display: flex;
  gap: 6.1%;                 /* 58.8/960 */
}
.col { flex: 1 1 0; min-width: 0; }
.col--offset { padding-top: var(--offset-col); }   /* 우측 컬럼 시작 오프셋 */

/* 가로 행 (Wave 공통 — 행 단위로 높이 정렬) */
.row {
  display: flex;
  gap: 6.1%;
}
.row > * { flex: 1 1 0; min-width: 0; }
.row + .row { margin-top: var(--gap-card); }
.row .card { margin-top: 0; }                      /* 행 안 카드 간격은 row가 관리 */

/* 첫 행 우측 카드 상단 오프셋 (원본 배치) */
.offset-top { padding-top: var(--offset-col); }

/* ---------- 섹션 공통 ---------- */
.section { margin-top: var(--gap-section); }
.section--first { margin-top: clamp(40px, 5vw, 192px); }  /* GNB → Photo Essay */
section[id] { scroll-margin-top: 90px; }

.section-title {
  font-size: var(--fs-section-title);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.section-title--xbold { font-weight: 800; }

/* 레드 바 : 페이지 왼쪽 끝(래퍼)까지 블리드 */
.section-bar {
  height: clamp(16px, 2vw, 20px);                 /* 19pt */
  width: calc(var(--wrap) * 0.4);                 /* 페이지 폭의 40% */
  margin-left: calc(var(--wrap) * -0.13);         /* 콘텐츠 패딩만큼 왼쪽으로 */
  margin-top: clamp(12px, 1.46vw, 21px);
  background: var(--color-bar);
}

/* ---------- 헤더 ---------- */
.site-header{
  position: relative;
}

.site-header__inner {
  position: relative;
  background: url("../images/header-bg.jpg") center / cover no-repeat;
  aspect-ratio: 2400 / 1125;                      /* 960 x 449.6pt */
}

.site-header-txt{
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 40%;
  max-width: 350px;
}

.main-link{
  display: block;
  width: 30%;
  height: 100%;
  margin: 0 0 0 3%;
}
.site-header__caption {
  position: absolute;
  left: var(--pad-x);
  bottom: 8.4%;
  font-family: var(--font-masthead);
  font-style: italic;
  font-weight: 700;
  font-size: var(--fs-caption);
  line-height: 1.25;
  color: var(--color-text);
}
.site-header__caption .divider-bar { font-size: 0.64em; vertical-align: 1px; }

/* ---------- GNB ---------- */
.gnb {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--color-bg);
  transition: box-shadow 0.2s ease;
}
.gnb.is-stuck { box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); }
.gnb__inner {
  display: flex;
  align-items: center;
  padding-top: clamp(14px, 1.7vw, 25px);
  padding-bottom: clamp(14px, 1.7vw, 25px);
}
.gnb__menu {
  display: flex;
  flex: 1;
}
.gnb__menu li { width: 22.8%; }                   /* 항목 간격 162pt/710.3pt */
.gnb__link {
  font-size: var(--fs-gnb);
  font-weight: 800;
  letter-spacing: -0.01em;
}
.gnb__link:hover { color: var(--color-label); }

/* 햄버거 버튼 (가로줄 4개) */
.gnb__burger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(3px, 0.35vw, 5px);
  width: clamp(26px, 2.5vw, 36px);
  height: clamp(26px, 2.5vw, 36px);
  margin-left: auto;
  background: none;
  border: 0;
  cursor: pointer;
}
.gnb__burger span {
  display: block;
  height: 2px;
  background: var(--color-text);
}

/* 전체 메뉴 오버레이 (사이트맵) — 최상위 모달, 전체 화면 흰색, 콘텐츠는 1440 안 */
.menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 300;                              /* GNB(100)보다 위 */
  background: var(--color-bg);
  overflow-y: auto;
  padding-top: clamp(40px, 4.5vw, 66px);
  padding-bottom: clamp(60px, 6vw, 90px);
}
.menu-overlay__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding-left: calc(var(--wrap) * 0.13);   /* 본문과 동일한 13% 여백 */
  padding-right: calc(var(--wrap) * 0.124);
}

/* 상단 행 : 마스트헤드 + 닫기 버튼 */
.menu-overlay__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: clamp(24px, 2.6vw, 38px);
  border-bottom: 1px solid var(--color-line-pink);
}
.menu-overlay__masthead {
  font-family: var(--font-masthead);
  font-weight: 500;
  font-size: var(--fs-caption);
  line-height: 1.3;
  letter-spacing: -0.01em;
}
.menu-overlay__masthead .divider-bar { font-size: 0.64em; vertical-align: 1px; }

.menu-overlay__close {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(30px, 2.8vw, 40px);
  height: clamp(30px, 2.8vw, 40px);
  background: none;
  border: 0;
  cursor: pointer;
  color: var(--color-text);
}
.menu-overlay__close svg { width: 100%; height: 100%; }
.menu-overlay__close:hover { color: var(--color-menu-red); }

/* 사이트맵 그룹 공통 */
.sitemap__group {
  padding: clamp(22px, 2.4vw, 34px) 0 clamp(28px, 3vw, 44px);
  border-bottom: 1px solid var(--color-line-gray);
}
.sitemap__group:last-child { border-bottom: 0; }

.sitemap__heading {
  font-size: clamp(20px, 2.2vw, 32px);
  font-weight: 700;
  letter-spacing: -0.01em;
}
.sitemap__label {
  margin: clamp(18px, 1.8vw, 26px) 0 clamp(10px, 1vw, 14px);
  font-size: clamp(16px, 1.5vw, 22px);
  font-weight: 700;
}
.sitemap__heading + .sitemap__items,
.sitemap__heading + .sitemap__label { margin-top: clamp(14px, 1.5vw, 22px); }

.sitemap__items li + li { margin-top: clamp(8px, 0.9vw, 12px); }
.sitemap__items a {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 0.8vw, 12px);
  font-size: clamp(15px, 1.4vw, 20px);
  line-height: 1.4;
}
/* 불릿 : 텍스트 색을 따라감, 첫 줄 중앙에 정렬 */
.sitemap__items a::before {
  content: "";
  flex: 0 0 auto;
  width: clamp(5px, 0.55vw, 8px);
  height: clamp(5px, 0.55vw, 8px);
  margin-top: 0.55em;
  border-radius: 50%;
  background: currentColor;
}
.sitemap__items a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Photo Essay 레드 그룹 */
.sitemap__group--red .sitemap__heading,
.sitemap__group--red .sitemap__items a { color: var(--color-menu-red); }

/* ---------- 히어로 (Photo Essay) ---------- */
.hero {
  position: relative;
  margin-top: clamp(20px, 2.4vw, 34px);
}
.hero__link { display: block; }
.hero__body { margin-top: clamp(18px, 2.1vw, 30px); }
.hero__title {
  font-size: var(--fs-hero-title);
  font-weight: 700;
  line-height: 1.36;
  letter-spacing: -0.01em;
}
.hero__desc {
  font-family: var(--font-serif);
  font-size: var(--fs-hero-desc);
  line-height: 1.7;
}

/* 뒤로가기 플로팅 버튼 */
.btn-back {
  position: absolute;
  left: clamp(-56px, -3.9vw, -40px);
  top: 44%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--arrow-size);
  height: var(--arrow-size);
  border-radius: 50%;
  background: var(--color-text);
  color: #fff;
}
.btn-back svg { width: 55%; height: 55%; }

/* ---------- 카드 공통 ---------- */
.card {
  display: block;
  margin-top: var(--gap-card);
}
.col > .card:first-child { margin-top: 0; }
.card--gap-lg { margin-top: var(--gap-card-lg); }

/* 좌측 컬럼 스태거(밀림) — 섹션 헤드 아래 첫 카드 (Insight) */
.card--stagger-insight { margin-top: var(--stagger-insight); }

.card__media img { width: 100%; }

.card__meta {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: clamp(4px, 0.4vw, 6px);
  padding-bottom: clamp(4px, 0.45vw, 7px);
  border-bottom: 2px solid var(--color-line);
}
.card__label {
  font-size: var(--fs-card-label);
  font-weight: 700;
  color: var(--color-label);
}
.card__title {
  margin-top: clamp(14px, 1.8vw, 26px);
  font-size: var(--fs-card-title);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
}
.card:hover .card__title { text-decoration: underline; text-underline-offset: 4px; }

/* 화살표 원형 아이콘 (카드 / 리스트 / 뒤로가기 공용 크기) */
.icon-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: var(--arrow-size);
  height: var(--arrow-size);
  border-radius: 50%;
  background: var(--color-text);
  color: #fff;
}
.icon-arrow svg { width: 55%; height: 55%; }

/* ---------- Focus 정렬형 컬럼 ---------- */
.cols--aligned { margin-top: clamp(28px, 3.3vw, 48px); }

/* ---------- GIST Now 링크 리스트 ---------- */
.link-list { margin-top: clamp(40px, 4.9vw, 70px); }
.link-list__label {
  display: block;
  font-size: var(--fs-card-label);
  font-weight: 700;
  color: var(--color-label);
  padding-bottom: clamp(8px, 1vw, 14px);
  border-bottom: 1px solid var(--color-line-soft);
}
.link-list__item {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.5vw, 21px);
  padding: clamp(14px, 1.7vw, 25px) 0;
  border-bottom: 1px solid var(--color-line-soft);
  font-size: var(--fs-card-title);
  font-weight: 700;
}
.link-list__item:hover { color: var(--color-label); }

/* ---------- 푸터 ---------- */
.site-footer { margin-top: clamp(50px, 5.8vw, 84px); }
.site-footer__inner {
  margin: 0 5.2%;                                  /* 50/960 */
  border-top: 1px solid var(--color-text);
  padding: clamp(28px, 3.7vw, 54px) 0 clamp(36px, 4.4vw, 64px);
}
.site-footer__body {
  display: flex;
  align-items: center;
}
.site-footer__logo { height: clamp(25px, 4.1vw, 45px); width: auto; }
.site-footer__info {
  margin-left: clamp(16px, 1.6vw, 23px);
  padding-left: clamp(16px, 1.6vw, 23px);
  font-size: clamp(12px, 1.15vw, 16.5px);
  line-height: 1.7;
}

/* ==========================================================================
   서브페이지 (page1.html ~)
   원본 : 960pt 캔버스, 사이드바 50~264pt | 세로선 293.7pt | 본문 306~918pt
   ========================================================================== */

/* ---------- 서브 헤더 ---------- */
.site-header--sub .site-header__inner {
  background-image: url("../images/header-bg-sub.jpg");
  aspect-ratio: 2400 / 499;                        /* 960 x 199.4pt */
}
.site-header--sub .site-header__caption {
  left: 5.9%;
  bottom: 22.5%;
  color: #ffffff;
  font-size: clamp(14px, 1.7vw, 24.5px);           /* 16.2pt */
}
.site-header__title {
  position: absolute;
  right: 5.2%;
  bottom: 22.5%;
  text-align: right;
  color: var(--color-text);
}
.page-title {
  font-family: var(--font-masthead);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(20px, 4.17vw, 60px);            /* 40pt */
  line-height: 1.05;
}
.page-subtitle {
  margin-top: clamp(4px, 0.5vw, 8px);
  font-size: clamp(10px, 1.67vw, 20px);            /* 16pt */
  font-weight: 700;
}

/* ---------- 모바일 전용 서브 내비 (햄버거) ---------- */
.subnav {
  display: none;
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--color-bg);
  padding: 12px 6%;
  justify-content: flex-end;
  transition: box-shadow 0.2s ease;
}
.subnav.is-stuck { box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); }

/* ---------- 레이아웃 : 사이드바 | 세로선 | 본문 ---------- */
.layout {
  display: flex;
  padding-left: 5.2%;                              /* 50/960 */
  padding-right: 4.4%;                             /* 42/960 */
  margin-top: clamp(45px, 5.2vw, 75px);            /* 밴드 → 시작 50pt */
}
.sidebar {
  flex: 0 0 28.1%;                                 /* (293.7-50)/868 */
  padding-right: 3.4%;                             /* 텍스트 → 세로선 여백 */
  align-self: flex-start;
  position: sticky;
  top: 24px;
}
.page-content {
  flex: 1;
  min-width: 0;
  border-left: 1px solid var(--color-text);        /* 세로 구분선 */
  padding-left: 1.4%;                              /* (306-293.7)/868 */
  padding-bottom: clamp(80px, 9vw, 130px);
}

.partners-table{
  width: 100%;
}

.partners-table table{
  width: 100%;
   overflow-x: auto;
   /* border-spacing: 30px; */
}

.partners-table th{
  color: #fff;
  text-align: left;
  font-weight: normal;
  padding: 10px;
  width: 25%;
  min-width: 90px;
  font-size: clamp(13px, 2vw, 16px);
  vertical-align: top;
  border-bottom: 20px solid #e5e5e5;
}

.partners-table .th-subtitle{
  font-size: 12px;
}

.partners-table td{
  font-size: clamp(12px, 2vw, 16px);
  line-height: 1.7;
  padding: 0 0 30px 5%;
  vertical-align: top;
  word-break:normal;
}

/* ---------- 사이드바 사이트맵 크기 오버라이드 ---------- */
.sidebar .sitemap__group {
  padding: clamp(10px, 1vw, 15px) 0 clamp(20px, 2.1vw, 30px);
  border-bottom: 0;
  border-top: 1px solid var(--color-text);
}
.sidebar .sitemap__group--red { border-top-color: var(--color-line-red); }
.sidebar .sitemap__heading { font-size: clamp(17px, 1.88vw, 25px); font-weight: 800; }
.sidebar .sitemap__label {
  margin: clamp(12px, 1.3vw, 19px) 0 clamp(6px, 0.7vw, 10px);
  font-size: clamp(13px, 1.35vw, 19.5px);
}
.sidebar .sitemap__heading + .sitemap__items,
.sidebar .sitemap__heading + .sitemap__label { margin-top: clamp(10px, 1.2vw, 17px); }
.sidebar .sitemap__items a { font-size: clamp(14px, 1.35vw, 18px); line-height: 1.35; }
.sidebar .sitemap__items li + li { margin-top: clamp(4px, 0.45vw, 7px); }
.sidebar .sitemap__items a::before {
  width: clamp(4px, 0.4vw, 6px);
  height: clamp(4px, 0.4vw, 6px);
  margin-top: 0.5em;
}

/* ---------- 본문 아티클 ---------- */
/* 레드 박스 라벨 */
.tag {
  display: block;
  width: 38.6%;                                    /* 236/612 */
  min-width: fit-content;
  padding: clamp(8px, 0.9vw, 13px) clamp(8px, 0.85vw, 12px);
  background: var(--color-bar);
  color: #ffffff;
  font-size: clamp(13px, 1.46vw, 21px);            /* 14pt */
  font-weight: 700;
  line-height: 1;
}

.media img { max-width: 100%; margin: 30px auto;}
.media--full { width: 100%; }
.media--full img, .media--wide img{
  width: 100%;
}

/* 아티클 타이틀 / 리드 (세리프) */
.art-title {
  margin-top: clamp(30px, 3.5vw, 50px);
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(20px, 3.02vw, 35px);          /* 29pt */
  line-height: 1.22;
}
.art-lead {
  margin-top: clamp(32px, 3.75vw, 54px);
  font-family: var(--font-serif);
  font-size: clamp(16px, 1.67vw, 20px);            /* 16pt */
  line-height: 1.5;
}

/* 소제목 + 본문 (세리프) */
.art-h {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(16px, 1.67vw, 24px);
  line-height: 1.35;
}
.art-p {
  margin-top: clamp(6px, 0.8vw, 12px);
  font-family: var(--font-serif);
  font-size: clamp(16px, 1.67vw, 20px);
  line-height: 1.56;
}
.media + .art-h { margin-top: clamp(8px, 0.85vw, 12px); }

/* 이미지 + 텍스트 : 오른쪽 정렬 블록 (62%) */
.media-text {
  width: 62%;
  margin-left: auto;
  margin-top: clamp(100px, 12.2vw, 176px);
}

/* 좌 텍스트 + 우 이미지 (이미지 아래로 밀림) */
.media-split {
  display: flex;
  justify-content: space-between;
  margin-top: clamp(14px, 1.7vw, 24px);
}
.media-split__text { width: 35.6%; }
.media-split__img { width: 56%; margin-top: clamp(140px, 19vw, 273px); }

/* 개별 배치 */
.media--building { margin-top: clamp(60px, 7.1vw, 102px); }
.media--piano { width: 63.4%; margin-top: clamp(140px, 17.2vw, 248px); }
.art-block--right { width: 59.8%; margin-left: auto; margin-top: clamp(56px, 6.5vw, 93px); }
.media--collage { margin-top: clamp(40px, 4.65vw, 67px); }

/* ---------- 사이드바 현재 글 활성 표시 ---------- */
/* ---------- 현재 글 활성 표시 (is-active) ---------- */
.sitemap__heading.is-active,
.sitemap__label.is-active,
.sitemap__items a.is-active { color: var(--color-menu-red); }

/* 사이드바에서는 그룹 전체 레드(--red)를 끄고, is-active 로만 강조 */
.sidebar .sitemap__group--red .sitemap__heading,
.sidebar .sitemap__group--red .sitemap__items a { color: var(--color-text); }
.sidebar .sitemap__group--red .sitemap__heading.is-active,
.sidebar .sitemap__group--red .sitemap__items a.is-active { color: var(--color-menu-red); }

/* ---------- 아티클 타입 (Insight 등 텍스트 기사) ---------- */
.media--insight { width: 95.9%; }                  /* 587/612 */

/* 산세리프 기사 타이틀 / 서브타이틀 */
.art-title--sans {
  margin-top: clamp(18px, 2.1vw, 30px);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(20px, 3.65vw, 35px);          /* 35pt */
  line-height: 1.29;
  letter-spacing: -0.01em;
}
.art-sub {
  margin-top: clamp(16px, 1.88vw, 27px);
  font-size: clamp(18px, 2.08vw, 22px);            /* 20pt */
  font-weight: 700;
}

/* 저자 소개 박스 */
.author-box {
  display: flex;
  gap: clamp(20px, 3.1vw, 45px);
  margin-top: clamp(38px, 4.45vw, 64px);
  padding: clamp(14px, 1.67vw, 24px) 0 clamp(14px, 1.6vw, 23px);
  border-top: 1px solid var(--color-text);
  border-bottom: 1px solid var(--color-text);
}
.author-box__photo { flex: 0 0 auto; height: clamp(120px, 15.2vw, 219px); }
.author-box__photo img { height: 100%; width: auto; }
.author-box__name {
  font-size: clamp(15px, 1.67vw, 24px);
  font-weight: 700;
}
.author-box__bio {
  margin-top: clamp(10px, 1.15vw, 17px);
  font-size: clamp(12px, 1.25vw, 18px);            /* 12pt */
  font-weight: 700;
  line-height: 1.67;
}

/* 본문 섹션 (소제목 + 문단) */
.body-sec { margin-top: clamp(22px, 2.5vw, 36px); }
.body-sec__title {
  font-size: clamp(16px, 1.67vw, 24px);
  font-weight: 700;
  line-height: 1.69;
}
.body-sec p {
  font-size: clamp(14px, 1.67vw, 18px);
  line-height: 1.69;
}
.body-sec p + p { margin-top: clamp(4px, 0.5vw, 8px); }

/* 인용구 (세리프 라이트 레드, 가운데 정렬) */
.pull-quote {
  margin: clamp(60px, 7.5vw, 108px) auto clamp(100px, 12.7vw, 183px);
  font-family: var(--font-serif);
  font-size: clamp(16px, 1.67vw, 24px);
  line-height: 1.63;
  color: var(--color-label);
  text-align: center;
}

/* 각주 */
.footnotes {
  margin-top: clamp(30px, 3.5vw, 51px);
  padding-top: clamp(16px, 1.9vw, 27px);
  border-top: 1px solid var(--color-text);
}
.footnotes ol {
  list-style: none;
  counter-reset: fn;
}
.footnotes li {
  counter-increment: fn;
  position: relative;
  padding-left: clamp(14px, 1.4vw, 20px);
  font-size: clamp(12px, 1.25vw, 18px);            /* 12pt */
  font-weight: 300;
  line-height: 1.5;
}
.footnotes li::before {
  content: counter(fn) ")";
  position: absolute;
  left: 0;
}
.footnotes li + li { margin-top: clamp(3px, 0.35vw, 5px); }

/* ---------- Insight Issue (기사형 2 : 리드 강조 + 이미지 + 검은박스) ---------- */
/* 리드 문단 (레드 볼드) */
.art-lead-strong {
  margin-top: clamp(30px, 3.5vw, 50px);
  font-size: clamp(15px, 1.67vw, 20px);
  font-weight: 700;
  line-height: 1.63;
  color: var(--color-label);
}

/* 잡지 커버 등 가운데 배치 이미지 */
.media--center {
  width: 40.3%;                                    /* 240/596 */
  margin: clamp(40px, 4.6vw, 66px) auto 0;
}
.media--center-narrow {
  width: 57.4%;                                    /* 342/596 */
  margin: clamp(30px, 3.5vw, 50px) auto 0;
}

/* 상단/하단 사진 풀폭 */
.media--wide { width: 100%; margin-top: clamp(30px, 3.5vw, 50px); }
.media--wide img{width: 100%;}

/* 하단 2분할 사진 (연구 사진 2장) */
.media-duo {
  display: flex;
  gap: 1.4%;
  margin-top: 1.4%;
}
.media-duo > figure { flex: 1 1 0; min-width: 0; }

/* 검은 박스 : 2단 정보 카드 */
.info-box {
  display: flex;
  gap: clamp(24px, 3.4vw, 49px);
  margin-top: clamp(48px, 5.5vw, 79px);
  padding: clamp(28px, 3.6vw, 52px) clamp(24px, 3vw, 43px) clamp(30px, 4vw, 58px);
  background: #010101;
  color: #ffffff;
}
.info-box__col { flex: 1 1 0; min-width: 0; }
.info-box__icon {
  height: clamp(52px, 6.4vw, 92px);
  margin-bottom: clamp(18px, 2.1vw, 30px);
}
.info-box__icon img { height: 100%; width: auto; }
.info-box__title {
  font-size: clamp(13px, 1.25vw, 18px);            /* 12pt */
  font-weight: 700;
  line-height: 1.5;
}
.info-box__text {
  margin-top: clamp(8px, 1vw, 14px);
  font-size: clamp(13px, 1.25vw, 18px);
  line-height: 1.75;
}

/* ---------- 인터뷰 (Q&A) ---------- */
/* 상단/하단 인물 사진 풀폭 */
.media--interview { width: 100%; margin-top: clamp(30px, 3.5vw, 50px); }

.interview-label {
  margin-top: clamp(28px, 3.3vw, 47px);
  font-family: var(--font-sans);
  font-weight: 300;
  font-size: clamp(18px, 2.4vw, 34px);             /* 23pt Light */
  color: var(--color-text);
}
.interview-title {
  margin-top: clamp(4px, 0.5vw, 8px);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(26px, 3.65vw, 35px);          /* 35pt */
  line-height: 1.29;
  letter-spacing: -0.01em;
}
.interview-intro {
  margin-top: clamp(20px, 2.3vw, 33px);
  font-size: clamp(14px, 1.67vw, 20px);            /* 16pt */
  font-weight: 700;
  line-height: 1.56;
  color: var(--color-label);
}

/* Q&A 블록 */
.qa { margin-top: clamp(24px, 2.8vw, 40px); }
.qa__q {
  font-size: clamp(14px, 1.67vw, 18px);            /* 16pt */
  font-weight: 700;
  line-height: 1.5;
}
.qa__a {
  margin-top: clamp(5px, 1vw, 10px);
  font-size: clamp(14px, 1.67vw, 18px);
  line-height: 1.69;
}

/* 인터뷰 중간 인용구 (세리프 라이트 레드, 가운데) */
.interview-quote {
  margin: clamp(56px, 6.8vw, 98px) auto;
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(15px, 1.67vw, 24px);
  line-height: 1.63;
  color: var(--color-label);
  text-align: center;
}

/* ---------- Special Wave (Part 구조 리포트) ---------- */
/* 리드 (레드 볼드) — art-lead-strong 재사용 */

/* Part 원형 뱃지 */
.part-badge {
  width: clamp(90px, 12.7vw, 183px);
  height: clamp(90px, 12.7vw, 183px);
  margin: clamp(48px, 5.7vw, 82px) 0 clamp(24px, 2.8vw, 40px);
  border: 1.5px solid var(--color-text);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(14px, 1.75vw, 25px);
  font-weight: 700;
}

/* Part 소제목 (큰 볼드 2줄) */
.part-title {
  font-size: clamp(20px, 2.4vw, 34.5px);           /* 23pt */
  font-weight: 700;
  line-height: 1.43;
}

/* 소제목(레드 인용) + 본문 반복 블록 */
.sec { margin-top: clamp(24px, 2.8vw, 40px); }
.sec__quote {
  font-size: clamp(14px, 1.67vw, 20px);
  font-weight: 700;
  line-height: 1.69;
  color: var(--color-label);
}
.sec__quote--dark { color: var(--color-text); }    /* Part2 일부 인용은 검정 */
.sec__body {
  margin-top: clamp(6px, 0.7vw, 10px);
  font-size: clamp(14px, 1.67vw, 18px);
  line-height: 1.69;
}

/* 이미지 스택 (여러 장 세로로) */
.img-stack {
  width: 71.4%;                                    /* 420/588 */
  margin: clamp(40px, 4.9vw, 70px) auto 0;
}
.img-stack figure + figure { margin-top: 0; }
.img-stack img { width: 100%; }

/* 다섯 가지 기준 카드 */
.criteria {
  width: 71.4%;
  margin: clamp(20px, 2.4vw, 34px) auto 0;
}
.criteria__head {
  font-size: clamp(14px, 1.56vw, 22.5px);          /* 15pt */
  font-weight: 700;
  line-height: 1.43;
  margin-bottom: clamp(20px, 2.4vw, 34px);
}
.criteria__item {
  display: flex;
  gap: clamp(16px, 2vw, 29px);
  align-items: flex-start;
  padding: clamp(10px, 1.2vw, 17px) 0;
}
.criteria__icon {
  flex: 0 0 auto;
  width: clamp(56px, 6.6vw, 95px);
  height: clamp(56px, 6.6vw, 95px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.criteria__icon img { width: 100%; height: auto; }
.criteria__title {
  font-size: clamp(14px, 1.56vw, 22.5px);
  font-weight: 700;
}
.criteria__desc {
  margin-top: clamp(3px, 0.4vw, 6px);
  font-size: clamp(14px, 1.56vw, 16px);
  line-height: 1.53;
}

/* 하단 센터 소개 (표지판 + 텍스트) */
.center-info {
  display: flex;
  gap: clamp(24px, 4vw, 58px);
  margin-top: clamp(48px, 5.7vw, 82px);
}
.center-info__sign { flex: 0 0 auto; width: clamp(120px, 20vw, 182px); }
.center-info__sign img { width: 100%; }
.center-info__title {
  font-size: clamp(15px, 1.88vw, 27px);            /* 18pt */
  font-weight: 700;
  line-height: 1.4;
}
.center-info__body {
  margin-top: clamp(12px, 1.5vw, 21px);
  font-size: clamp(13px, 1.56vw, 22.5px);          /* 15pt */
  line-height: 1.53;
}

/* ==========================================================================
   Next Wave — 다크 배경 키워드 인터뷰 (page6)
   본문 영역 전체가 어두운 배경(#575357) + 흰 글씨
   ========================================================================== */
.page-content--dark {
  background: var(--color-dark-panel);
  color: #ffffff;
  border-left: 0;
  padding-left: 0;
  padding-bottom: 0;
}
.dark-tag-wrap { padding: clamp(28px, 3.4vw, 49px) clamp(20px, 5.1vw, 74px) 0; }
.dark-inner { padding: 0 clamp(20px, 5.1vw, 74px) clamp(60px, 8vw, 115px); }

/* 히어로 (메인 이미지 + 타이틀) */
.nw-hero { margin-top: clamp(24px, 3vw, 43px); }
.nw-hero__img { margin-top: clamp(30px, 3.5vw, 50px); }
.nw-hero__img img { width: 100%; display: block; }
.nw-hero__head { margin-top: clamp(30px, 3.6vw, 52px); text-align: center; }
.nw-hero__label { font-size: clamp(20px, 1.67vw, 30px); font-weight: 700; }
.nw-hero__sub {
  margin-top: clamp(6px, 0.8vw, 12px);
  font-size: clamp(13px, 1.35vw, 19.5px);
  font-weight: 700;
}
.nw-hero__title {
  margin-top: clamp(24px, 2.8vw, 40px);
  font-size: clamp(25px, 3.65vw,40px);
  font-weight: 700;
  line-height: 1.29;
  text-align: center;
}
.nw-hero__intro {
  margin: clamp(50px, 2.4vw, 34px) auto 0;
  max-width: 90%;
  font-size: clamp(16px, 1.67vw, 20px);
  font-weight: 700;
  line-height: 1.56;
  text-align: center;
}

/* 키워드 섹션 */
.kw { margin-top: clamp(56px, 6.8vw, 98px); }
.kw__head { text-align: center; }
.kw__icon {
  width: clamp(100px, 8vw, 130px);
  margin: 0 auto clamp(14px, 1.7vw, 24px);
}
.kw__icon img { width: 100%; height: auto; }
.kw__num {
  font-size: clamp(9px, 0.9vw, 13px);
  font-weight: 700;
  letter-spacing: 0.08em;
}
.kw__title {
  margin-top: clamp(4px, 0.5vw, 7px);
  font-size: clamp(16px, 1.75vw, 25px);
  font-weight: 700;
}
/* KEYWORD 소제목 (2줄, 인라인 스타일에서 분리) */
.kw__subject {
  margin-top: clamp(16px, 1.9vw, 27px);
  font-size: clamp(15px, 1.39vw, 20px);            /* 20px */
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}

/* KEYWORD 번호+키워드 감싸는 테두리 박스 */
.kw__border {
  display: inline-block;
  padding: clamp(35px, 4.2vw, 58px) clamp(20px, 2.4vw, 28px);
  border: 1px solid rgba(255, 255, 255, 0.6);
  margin-bottom: clamp(20px, 2.4vw, 34px);
  border-radius: 50%;  
}
.kw__border .kw__num { margin-top: 0; }
.kw__border .kw__title { margin-top: clamp(2px, 0.3vw, 5px); }

/* 상단 이미지 + 인용 세트 (리드 인용문 + 화자명) */
.kw__lead {
  margin-top: clamp(20px, 2.4vw, 34px);
  text-align: center;
}
.kw__lead p {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(13px, 1.35vw, 19.5px);
  line-height: 1.46;
}
.kw__lead-name {
  margin-top: clamp(10px, 1.2vw, 17px);
  font-family: var(--font-sans);
  font-size: clamp(10px, 0.94vw, 13.5px);
  font-weight: 700;
}

/* 키워드 이미지 */
.kw__media { margin: clamp(28px, 3.3vw, 47px) auto 0; }
.kw__media img { width: 100%; display: block; }

/* 발언 블록 (교수명 + 본문) */
.speak { margin-top: clamp(28px, 3.3vw, 47px); }
.speak__name {
  font-size: clamp(12px, 1.25vw, 18px);
  font-weight: 700;
  padding-bottom: clamp(8px, 1vw, 14px);
  margin-bottom: clamp(10px, 1.2vw, 17px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}
.speak__body {
  font-size: clamp(14px, 1.67vw, 20px);
  line-height: 1.44;
}
.speak + .speak { margin-top: clamp(36px, 4.3vw, 62px); }

/* 인용 하이라이트 (라이트 세리프, 가운데) */
.kw-quote {
  margin: clamp(28px, 3.3vw, 47px) auto 0;
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(13px, 1.35vw, 19.5px);
  line-height: 1.46;
  text-align: center;
}
.kw-quote__name {
  display: block;
  margin-top: clamp(10px, 1.2vw, 17px);
  font-family: var(--font-sans);
  font-size: clamp(10px, 0.94vw, 13.5px);
  font-weight: 700;
}

/* ==========================================================================
   Next Wave 2 — 청회색 다크 대담 (page7)
   ========================================================================== */
.page-content--navy { background: var(--color-dark-navy); }

/* 히어로 서브타이틀 / 이름 (가운데 정렬) */
.duo-sub {
  margin-top: clamp(14px, 1.4vw, 20px);
  font-size: clamp(17px, 2.08vw, 30px);            /* 20pt */
  font-weight: 700;
  text-align: center;
}
.duo-names {
  margin-top: clamp(8px, 0.9vw, 13px);
  font-size: clamp(13px, 1.67vw, 24px);            /* 16pt */
  font-weight: 700;
  text-align: center;
}

/* 흰색 소개 카드 (피움 소개) */
.info-card {
  width: 64.5%;                                    /* 384.6/596 */
  margin: clamp(60px, 7.2vw, 104px) auto 0;
  padding: clamp(10px, 1vw, 14px) clamp(8px, 0.85vw, 12px);
  background: #ffffff;
  color: var(--color-dark-navy);
}
.info-card__title {
  font-size: clamp(16px, 1.77vw, 25.5px);          /* 17pt */
  font-weight: 700;
  line-height: 1.24;
}
.info-card__eng {
  margin-top: clamp(3px, 0.35vw, 5px);
  font-size: clamp(12px, 1.25vw, 18px);            /* 12pt */
}
.info-card__desc {
  margin-top: clamp(14px, 1.75vw, 25px);
  font-size: clamp(12px, 1.25vw, 18px);
  line-height: 1.42;
}

/* 번호 원 + 대담 섹션 */
.duo-sec {
  display: flex;
  gap: clamp(24px, 3.9vw, 56px);                             /* 원 시작 위치 */
  margin-top: clamp(64px, 7.6vw, 110px);
}
.duo-sec__num {
  flex: 0 0 auto;
  width: clamp(64px, 9.3vw, 134px);
  height: clamp(64px, 9.3vw, 134px);
  border: 1px solid #ffffff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(14px, 1.67vw, 24px);            /* 16pt */
  font-weight: 700;
}
.duo-sec__content { flex: 1; min-width: 0; }
.duo-sec__title {
  font-size: clamp(17px, 2.08vw, 30px);            /* 20pt */
  font-weight: 700;
  line-height: 1.25;
}
.duo-sec__para {
  margin-top: clamp(14px, 1.75vw, 25px);
  font-size: clamp(14px, 1.67vw, 18px);            /* 16pt */
  line-height: 1.5;
}
.duo-sec__para + .duo-sec__para { margin-top: clamp(22px, 2.5vw, 36px); }
.duo-sec__speaker { display: inline-block; margin-right: 1.5em; }

/* 청회색 패널 내 이미지/인용 간격 */
.page-content--navy .kw__media { margin-top: clamp(70px, 8.5vw, 122px); }
.page-content--navy .kw__lead { margin-top: clamp(40px, 4.7vw, 68px); }

/* ==========================================================================
   명단 표 (Honors Dinner 초청학생)
   ========================================================================== */
.roster-title {
  margin-top: clamp(48px, 5.7vw, 82px);
  font-size: clamp(18px, 2.08vw, 30px);            /* 20pt */
  font-weight: 700;
}
.roster-title__count {
  margin-left: clamp(8px, 1vw, 14px);
  font-size: clamp(11px, 1.25vw, 18px);            /* 11.7pt */
  font-weight: 700;
}
.roster {
  width: 100%;
  margin-top: clamp(16px, 1.9vw, 27px);
  border-collapse: collapse;
  font-size: clamp(11px, 1.1vw, 15px);
  table-layout: fixed;
}
.roster th,
.roster td {
  border: 1px solid #010101;
  padding: clamp(8px, 1vw, 14px) clamp(6px, 0.7vw, 10px);
  vertical-align: top;
  text-align: left;
  line-height: 1.5;
  word-break: keep-all;
}
.roster thead th {
  background: #ed193a;
  color: #ffffff;
  border-color: #ed193a;
  text-align: center;
  font-weight: 700;
}
/* 열 너비 */
.roster col.roster__c-num { width: 7%; }
.roster col.roster__c-name { width: 15%; }
.roster col.roster__c-dept { width: 26%; }
.roster col.roster__c-deed { width: 52%; }

/* 가운데 정렬 열 : 연번 · 성명 · 소속/과정 */
.roster td.roster__num,
.roster th.roster__num,
.roster td.roster__center,
.roster th.roster__center { text-align: center; vertical-align: middle; }
.roster__deeds { margin: 0; padding: 0; list-style: none; }
.roster__deeds li {
  position: relative;
  padding-left: 0.9em;
}
.roster__deeds li::before {
  content: "·";
  position: absolute;
  left: 0;
}
.roster__deeds li + li { margin-top: clamp(2px, 0.3vw, 4px); }

/* ==========================================================================
   LOG 섹션 (Shock Wave — G-BungE 활동 기록)
   ========================================================================== */
.log { margin-top: clamp(40px, 4.9vw, 70px); }
.log__num {
  font-size: clamp(14px, 1.67vw, 24px);            /* 16pt */
  font-weight: 700;
  color: var(--color-label);
}
.log__title {
  margin-top: clamp(4px, 0.5vw, 8px);
  font-size: clamp(17px, 2.08vw, 25px);            /* 20pt */
  font-weight: 700;
  line-height: 1.35;
}
.log__quote {
  font-size: clamp(17px, 2.08vw, 25px);            /* 20pt (2번째 줄) */
  font-weight: 700;
  line-height: 1.35;
}
.log__body {
  margin-top: clamp(10px, 1.75vw, 15px);
  font-size: clamp(14px, 1.67vw, 16px);
  line-height: 1.69;
}
/* LOG 앞뒤 이미지 간격 */
.log + .media,
.media + .log { margin-top: clamp(30px, 3.5vw, 50px); }

/* ==========================================================================
   지온나래 ON — 게임하는 교수 인터뷰 (page10)
   ========================================================================== */
/* 세리프 제목 */
.gon-title {
  margin-top: clamp(24px, 2.9vw, 42px);
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(20px, 3.65vw, 40px);          /* 35pt */
  line-height: 1.29;
}
.gon-sub {
  margin-top: clamp(20px, 2.4vw, 34px);
  font-size: clamp(15px, 2.08vw, 25px);            /* 20pt */
  font-weight: 700;
}
.gon-prof {
  margin-top: clamp(4px, 0.5vw, 8px);
  font-size: clamp(14px, 1.67vw, 24px);            /* 16pt */
  font-weight: 700;
}

/* 대표 이미지 위 지온나래 소개 박스 */
.gon-hero { position: relative; margin-top: clamp(28px, 3.3vw, 47px); }
.gon-hero__img img { width: 100%; display: block; }
.gon-badge {
  width: 60%;
  background: #000;
  color: #ffffff;
  padding: 10px;
}
.gon-badge__title {
  font-size: clamp(13px, 1.25vw, 18px);            /* 12pt */
  font-weight: 700;
  margin-bottom: clamp(6px, 0.7vw, 10px);
}
.gon-badge__desc {
  font-size: clamp(11px, 1.25vw, 18px);            /* 12pt */
  line-height: 1.58;
}

/* 인물 세로 사진 (오른쪽/가운데 배치) */
.gon-portrait {
  width: 50.2%;                                    /* 300/598 */
  margin: clamp(40px, 4.9vw, 70px) auto 0;
}
.gon-portrait--sm { width: 47.5%; }                /* 284/598 */
.gon-portrait img { width: 100%; display: block; }

/* 게임 화면 4분할 + 캡션 */
.gon-games {
  width: 58.2%;                                    /* 348/598 */
  margin: clamp(40px, 4.9vw, 70px) auto 0;
}
.gon-games__img img { width: 100%; display: block; }
.gon-games__caption {
  margin-top: clamp(10px, 1.2vw, 17px);
  font-size: clamp(11px, 1.25vw, 18px);            /* 12pt */
  line-height: 1.5;
}

/* 대담 가로 사진 */
.gon-talk {
  width: 70.4%;                                    /* 421/598 */
  margin: clamp(40px, 4.9vw, 70px) auto 0;
}
.gon-talk img { width: 100%; display: block; }

/* ==========================================================================
   GISTian — 정철웅 소장 인터뷰 (page11)
   ========================================================================== */
/* 프로필 (現 + 학력/기부 이력) */
.profile { margin-top: clamp(14px, 1.5vw, 21px); }
.profile__name {
  font-size: clamp(15px, 2.08vw, 30px);            /* 20pt */
  font-weight: 700;
  margin-bottom: clamp(8px, 1vw, 14px);
}
.profile__list {
  border-top: 1px solid var(--color-line-soft);
  padding-top: clamp(8px, 1vw, 14px);
}
.profile__row {
  display: flex;
  gap: clamp(8px, 1vw, 14px);
  font-size: clamp(12px, 1.25vw, 18px);            /* 12pt */
  line-height: 1.65;
}
.profile__year {
  flex: 0 0 auto;
  min-width: 2.6em;
  font-weight: 700;
}

/* 인물 세로 사진 */
.gistian-portrait {
  width: 47.5%;                                    /* 284/598 */
  margin: clamp(40px, 4.9vw, 70px) auto 0;
}
.gistian-portrait img { width: 100%; display: block; }
/* 가로 사진 */
.gistian-wide {
  width: 71.9%;                                    /* 430/598 */
  margin: clamp(40px, 4.9vw, 70px) auto 0;
}
.gistian-wide img { width: 100%; display: block; }

/* ---------- 타임라인 (연구와 나눔의 궤적) ---------- */
.timeline {
  margin-top: clamp(48px, 5.7vw, 82px);
  background: #010101;
  color: #ffffff;
  padding: clamp(28px, 3.4vw, 49px) clamp(24px, 3vw, 43px) clamp(36px, 4.4vw, 64px);
  display: flex;
  gap: clamp(24px, 3.9vw, 56px);
}
.timeline__head { flex: 0 0 40%; }
.timeline__title {
  font-size: clamp(18px, 2.08vw, 30px);            /* 16pt(제목 실측) → 크게 */
  font-weight: 700;
  line-height: 1.35;
}
.timeline__list { flex: 1; min-width: 0; }
.timeline__step {
  display: flex;
  gap: clamp(14px, 1.6vw, 23px);
}
.timeline__step:last-child { padding-bottom: 0; }
.timeline__icon {
  flex: 0 0 auto;
  width: clamp(30px, 4vw, 55px);
  height: clamp(30px, 4vw, 55px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.timeline__contents{
  position: relative;
  border-left: 1px solid #fff;
  padding-left: 20px;
  padding-bottom: clamp(20px, 2.4vw, 34px);
}
.timeline__contents::after{
  content: '';
  position: absolute;
  top: 0;
  left: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #fff;
}

.timeline__icon img { width: 100%; }
.timeline__label {
  font-size: clamp(13px, 1.35vw, 19.5px);          /* 12pt */
  font-weight: 700;
  margin-bottom: clamp(6px, 0.8vw, 12px);
}
.timeline__tags {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: clamp(4px, 0.5vw, 8px) clamp(8px, 1vw, 14px);
}
.timeline__tags span {
  font-size: clamp(11px, 1.15vw, 16.5px);          /* 12pt */
  color: rgba(255, 255, 255, 0.85);
}


/* ==========================================================================
   GIST Now — 입학 안내 (page12)
   ========================================================================== */
/* 상단 제목+연락처 회색 배경 블록 */
.adm-wrap{
  background: #e5e5e5;
  padding: clamp(20px, 3vw, 30px);
}
.adm-head {
  display: inline-block;
  background: #e6002d;
  color: #fff;
  padding: 10px;
  width: 300px;
}
/* 대학원 입학 안내 (page13) : 남색 헤드 박스 */
.adm-head--navy { background: #003668; }
.adm-title {
  font-size: clamp(24px, 3.47vw, 40px);            /* 25pt (실측 크게) */
  font-weight: 700;
  line-height: 1.2;
}

/* 두 번째 제목 (모집 개요) : 회색 배경 없이 레드 박스만 */
.adm-title--second { margin-top: clamp(56px, 6.5vw, 94px); }

.adm-contact {
  margin-top: clamp(16px, 1.9vw, 27px);
  font-size: 16px;            /* 10pt */
  line-height: 1.6;
}
.adm-lead {
  margin-top: clamp(30px, 3.5vw, 50px);
  font-size: clamp(18px, 2.6vw, 25px);           /* 25pt */
  font-weight: 700;
  line-height: 1.32;
}
.adm-intro {         
  font-size: clamp(14px, 1.67vw, 18px);
  font-weight: 700;
  line-height: 1.63;
  color: var(--color-label);
}
.adm-sec { margin-top: clamp(28px, 3.3vw, 47px); }
.adm-sec__title {
  font-size: clamp(16px, 1.67vw, 20px);            /* 16pt */
  font-weight: 700;
  margin-bottom: clamp(8px, 1vw, 10px);
}
.adm-list {
  list-style: none;
  font-size: clamp(14px, 1.67vw, 16px);
  line-height: 1.56;
}
.adm-list > li {
  position: relative;
  padding-left: 1em;
  margin-bottom: clamp(4px, 0.5vw, 8px);
}
.adm-list > li::before {
  content: "•";
  position: absolute;
  left: 0;
}
.adm-list__sub {
  list-style: none;
  margin-top: clamp(3px, 0.4vw, 6px);
}
.adm-list__sub li { 
  margin-bottom: clamp(3px, 0.4vw, 6px); 
  display: flex;
}
.adm-list__sub li span{
   white-space: nowrap;
   margin-right: 5px;
}
.adm-note {
  margin-top: clamp(10px, 1.2vw, 17px);
  font-size: clamp(13px, 1.46vw, 21px);
  font-weight: 700;
}

/* 공통 표 스타일 (입학) */
.adm-table {
  width: 100%;
  margin-top: clamp(16px, 1.9vw, 27px);
  border-collapse: collapse;
  font-size: clamp(11px, 1.1vw, 15px);
  line-height: 1.5;
}
.adm-table th,
.adm-table td {
  border: 1px solid #e5e5e5;
  padding: clamp(7px, 0.9vw, 13px) clamp(6px, 0.7vw, 10px);
  text-align: center;
  vertical-align: middle;
  word-break: keep-all;
  background: #fff;
}
.adm-table thead th {
  background: #e6002d;
  color: #ffffff;
  border: 1px solid #e5e5e5;
  font-weight: 700;
}
/* 대학원 입학 표 : 남색 헤더 */
.adm-table--navy thead th {
  background: #003668;
  border-color: #e5e5e5;
}
.adm-table .adm-table__group {
  font-weight: 700;
}
/* 단과대학 표 : 첫 열(단과대학명) 레드 배경 흰 글씨 */
.adm-table .adm-table__dept {
  background: #e6002d;
  color: #ffffff;
  border-color: #e6002d;
  font-weight: 700;
}
.adm-table td.adm-table__left { text-align: left; border: 1px solid #e5e5e5;
  text-align: center;
}

/* 표 각주 */
.adm-fn {
  margin-top: clamp(10px, 1.2vw, 17px);
  font-size: clamp(13px, 1.1vw, 14px);
  line-height: 1.6;
  color: #000;
}
.adm-fn p { margin-bottom: clamp(2px, 0.3vw, 4px); }

/* ==========================================================================
   GIST News (page14) — 뉴스 8건
   ========================================================================== */

.news-wrap{
  background: #e5e5e5;
  padding: 30px 15%;
}

.news-title{
  font-size: 40px;
}

.news-subtitle{
  font-size: 22px;
  font-weight: 600;
}

.news-item{
  margin-bottom: 60px;
}

.news-item__title {
  font-size: clamp(18px, 2.06vw, 22px);          /* 19.8pt */
  font-weight: 700;
  line-height: 1.3;
  margin-top: 10px;
}
.news-item__subtitle {
  font-size: clamp(18px, 2.06vw, 22px);                   /* 19.8pt */
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-label);
}

.news-item__img-info{
  line-height: 1.5;
  margin-top: 10px;
  font-size: 13px;
}

.excellence-item{
  border-top: 1px solid #000;
}

.news-item__body {
  margin-top: clamp(5px, 1.5vw, 10px);
  font-size: clamp(14px, 1.65vw, 16px);          /* 15.8pt */
  line-height: 1.58;
  text-align: justify;
  word-break: break-all;
}
.news-item__img {
  margin-top: clamp(16px, 1.9vw, 27px);
  width: 100%                                    /* 421/589 */
}
.news-item__img img { width: 100%; display: block; }

/* ==========================================================================
   후원의 집 — 업체 목록 (음식점 / 기타업체)
   ========================================================================== */
.partners-cat {
  margin-top: clamp(28px, 3.3vw, 47px);
  margin-bottom: clamp(14px, 1.6vw, 23px);
  font-size: clamp(16px, 1.88vw, 22px);            /* 16pt */
  font-weight: 700;
  padding-bottom: clamp(8px, 1vw, 14px);
  border-bottom: 2px solid var(--color-text);
}
.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.partner {
  padding: 10px 10px 40px 10px;
  color: #fff;
}
.partners-grid--food .partner { background-color: #bd9c9f; }
.partners-grid--etc .partner { background-color: #8f939f; }
.partner__name {
  font-size: clamp(14px, 1.46vw, 16px);            /* 14pt */
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: clamp(3px, 0.4vw, 6px);
}
.partner__info {
  font-size: clamp(11px, 1.1vw, 15px);
  line-height: 1.45;
  color: #fff;
}
.partner__note {
  display: inline-block;
  margin-top: clamp(3px, 0.4vw, 6px);
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 700;
  color: #d73b24;
}

/* ==========================================================================
   반응형
   ========================================================================== */
@media (max-width: 1024px) {
  section[id] { scroll-margin-top: 70px; }
}

@media (max-width: 768px) {
  :root { --pad-x: 6%; }

  /* 오버레이 여백도 본문과 동일하게 */
  .menu-overlay__inner {
    padding-left: calc(var(--wrap) * 0.06);
    padding-right: calc(var(--wrap) * 0.06);
  }

  /* GNB : 링크 숨기고 햄버거만 */
  .gnb__menu { display: none; }

  /* 레드 바 폭 확대 */
  .section-bar {
    width: calc(var(--wrap) * 0.55);
    margin-left: calc(var(--wrap) * -0.06);
  }

  /* 컬럼 → 1단 스택, 원본 세로 순서(o1~o6)대로 재배열 */
  .cols { flex-direction: column; }
  .col:last-child { margin-top: 50px; }
  .o1 { order: 1; } .o2 { order: 2; } .o3 { order: 3; }
  .o4 { order: 4; } .o5 { order: 5; } .o6 { order: 6; }

  /* 행(row) → 1단 스택 (마크업 순서 그대로) */
  .row { flex-direction: column; }
  .row > * + * { margin-top: 52px; }
  .row + .row { margin-top: 52px; }
  .offset-top { padding-top: 0; }

  /* 스태거/오프셋 해제 → 일반 간격 */
  .card,
  .card--gap-lg,
  .card--stagger-insight { margin-top: 52px; }
  .row .card { margin-top: 0; }
  .row .card + .card { margin-top: 52px; }
  .cols .section-head + * { margin-top: 40px; }
  .row .section-head + * { margin-top: 40px; }
  .cols--aligned { margin-top: 32px; }

  /* 뒤로가기 버튼 : 히어로 안쪽으로 */
  .btn-back { left: 12px; top: 12px; }

  .site-footer__body { flex-direction: column; align-items: flex-start; gap: 14px; }
  .site-footer__info { margin-left: 0; padding-left: 0; border-left: 0; }

  /* 명단 표 : 모바일 가로 스크롤 */
  .roster-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .roster { min-width: 640px; font-size: 12px; }

  /* LOG 섹션 */
  .log__quote { font-size: 17px; }

  /* 지온나래 인터뷰 */
  .gon-badge { position: static; width: 100%; }
  .gon-portrait, .gon-portrait--sm, .gon-games, .gon-talk { width: 100%; }

  /* GISTian 타임라인 */
  .gistian-portrait, .gistian-wide { width: 100%; }
  .timeline { flex-direction: column; gap: 24px; padding: 28px 22px; }
  .timeline__head { flex: none; }

  /* 입학 안내 표 : 가로 스크롤 */
  .adm-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

  .news-wrap{
    padding: 15px;
  }

  /* GIST News */
  .news-item__img { width: 100%; }
  .partners-grid { grid-template-columns: repeat(2, 1fr); }

  /* ---- 서브페이지 ---- */
  .subnav { display: flex; }                        /* 햄버거만 노출 */
  .sidebar { display: none; }                       /* 사이드바 → 햄버거 메뉴로 대체 */
  .layout {
    padding-left: 6%;
    padding-right: 6%;
    margin-top: 32px;
  }
  .page-content { border-left: 0; padding-left: 0; }

  /* 서브 헤더 : 밴드가 낮아지므로 타이포 축소는 clamp가 처리, 오른쪽 타이틀만 살짝 위로 */
  .site-header--sub .site-header__caption { bottom: 14%; }
  .site-header__title { bottom: 14%; }

  /* 본문 블록 전부 1단 */
  .tag { width: fit-content; }
  .media-text,
  .media--piano,
  .art-block--right { width: 100%; margin-left: 0; margin-top: 56px; }
  .media-split { flex-direction: column; margin-top: 20px; }
  .media-split__text { width: 100%; }
  .media-split__img { width: 100%; margin-top: 32px; }
  .media--building { margin-top: 56px; }
  .media--collage { margin-top: 40px; }
  .art-title { margin-top: 28px; }
  .art-lead { margin-top: 24px; }

  /* 아티클 타입 */
  .media--insight { width: 100%; }
  .art-title--sans { margin-top: 20px; }
  .author-box { flex-direction: column; gap: 16px; }
  .author-box__photo { height: 130px; }
  .pull-quote { margin: 48px auto 56px; }

  /* Insight Issue */
  .media--center,
  .media--center-narrow { width: 70%; }
  .media-duo { flex-direction: column; gap: 12px; margin-top: 12px; }
  .info-box { flex-direction: column; gap: 32px; padding: 28px 22px; }
  .art-lead-strong { margin-top: 24px; }

  /* 인터뷰 */
  .interview-quote { margin: 44px auto; }
  .interview-intro { margin-top: 18px; }

  /* Special Wave */
  .img-stack, .criteria { width: 100%; }
  .part-badge { width: 96px; height: 96px; margin: 40px 0 24px; }
  .center-info { flex-direction: column; gap: 20px; }
  .center-info__sign { width: 130px; }

  /* Next Wave 다크 인터뷰 */
  .dark-inner { padding: 0 6% 60px; }
  .dark-tag-wrap { padding: 24px 6% 0; }
  .nw-hero__intro { max-width: 100%; }

  /* Next Wave 2 청회색 대담 */
  .info-card { width: 100%; padding: 14px 12px; }
  .duo-sec { padding-left: 0; flex-direction: column; gap: 16px; margin-top: 56px; }
  .duo-sec__num { width: 72px; height: 72px; }
  .page-content--navy .kw__media { margin-top: 56px; }
}

/* ==========================================================================
   플로팅 CTA — 유튜브 링크 아이콘 (스크롤 팔로우)
   ========================================================================== */
.floating-cta {
  position: absolute;
  top: 400px;                                          /* JS lerp이 갱신 */
  right: clamp(20px, 4vw, 60px);
  width: 170px;
  z-index: 90;                                         /* GNB(100)보다 아래로 두어 겹칠 때 GNB가 위 */
  will-change: top;
  transition: opacity 0.2s ease;
}
.floating-cta img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.12));
}
.floating-cta:hover { opacity: 0.85; }

/* 모바일 : 오른쪽 하단 고정 */
@media (max-width: 768px) {
  .floating-cta {
    position: fixed;
    top: auto;
    left: auto;
    right: clamp(12px, 4vw, 24px);
    bottom: clamp(16px, 5vw, 32px);
    width: 130px;
    z-index: 200;                                     /* GNB(100) 위 */
  }
  .floating-cta img { filter: none; }
}
