/* site/pages/partner-university.css — 협업대학 지도 화면 전용
   색·간격·글자·라운드·그림자는 토큰만 쓴다. 탭·왼쪽 목록·지도와 정보 패널의 놓임은 한국어 채택교 현황(partner-school.css)과 같은 골격이고,
   패널에 혜택 사항과 전형 목록이 더 들어가 폭을 넓히고 지도 높이 안에서 스크롤한다. 지도 자체의 높이·테두리는 map.css가 갖고 여기서는 놓임만 정한다. */

/* ── 탭(뷰 전환 토글) ── */
.pu-tabs { display: inline-flex; gap: var(--sp-2); margin-bottom: var(--sp-6); }
.pu-tab {
  height: 40px; padding: 0 var(--sp-5);
  border: var(--bd); border-radius: var(--r-md); background: var(--c-white);
  font-family: inherit; font-size: var(--fs-15); font-weight: var(--fw-semibold); color: var(--c-text);
  cursor: pointer;
}
.pu-tab.is-active { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
.pu-tab:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* ── 지도 탭 — 왼쪽 대학 목록 + 오른쪽 지도 ── */
.pu-map-view { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: var(--sp-8); align-items: start; }
.pu-map-view[hidden], .pu-tiles-view[hidden] { display: none; }
.pu-aside { min-width: 0; }
.pu-side {
  border: var(--bd); border-radius: var(--r-xl); background: var(--c-white);
  padding: var(--sp-3) var(--sp-6);
  max-height: 560px; overflow-y: auto;
}
.pu-list { list-style: none; margin: 0; padding: 0; }
.pu-list li + li { border-top: var(--bd-soft); }
.pu-list__item {
  display: flex; align-items: center; gap: var(--sp-3); width: 100%;
  padding: var(--sp-3) 0; border: 0; background: none;
  font-family: inherit; font-size: var(--fs-15); color: var(--c-text); text-align: left;
  cursor: pointer;
}
.pu-list__item:hover .pu-list__name, .pu-list__item[aria-current="true"] .pu-list__name { color: var(--c-primary); font-weight: var(--fw-semibold); }
.pu-list__item:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--r-sm); }
.pu-list__name { flex: 1; min-width: 0; line-height: var(--lh-snug); word-break: keep-all; }
.pu-list__chev { color: var(--c-text-cap); flex-shrink: 0; }

/* ── 지도와 정보 패널 ── */
.pu-map-wrap { position: relative; }
.pu-map-wrap .map { aspect-ratio: 4 / 3; border-radius: var(--r-xl); }
/* 패널은 내용 높이만큼만 차지하고, 내용이 지도보다 길면 지도 높이 안에서 스크롤한다 */
.pu-panel {
  position: absolute; top: var(--sp-4); left: var(--sp-4); z-index: var(--z-raised);
  width: 360px; max-width: calc(100% - var(--sp-8)); max-height: calc(100% - var(--sp-8));
  overflow-y: auto;
  background: var(--c-white); border-radius: var(--r-lg); box-shadow: var(--shadow-lg);
}
.pu-panel[hidden] { display: none; }
.pu-panel__close {
  position: absolute; top: var(--sp-3); right: var(--sp-3); z-index: 1;
  display: flex; align-items: center; justify-content: center; width: 32px; height: 32px;
  border: 0; border-radius: var(--r-full); background: none; color: var(--c-text-mute); cursor: pointer;
}
.pu-panel__close:hover { background: var(--c-surface-mute); color: var(--c-text); }
.pu-panel__close:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* ── 대학 정보 — 정보 패널에 들어가는 한 대학 ── */
.pu-info { padding: var(--sp-6); padding-right: var(--sp-10); }
.pu-info__name {
  margin: 0 0 var(--sp-4); padding-bottom: var(--sp-4); border-bottom: var(--bd-soft);
  font-size: var(--fs-18); font-weight: var(--fw-bold); line-height: var(--lh-snug); color: var(--c-text); word-break: keep-all;
}
.pu-info__logo { display: flex; align-items: center; height: 44px; margin-bottom: var(--sp-4); }
.pu-info__logo img { max-width: 100%; max-height: 44px; object-fit: contain; }
.pu-info__rows { display: flex; flex-direction: column; gap: var(--sp-2); margin: 0; }
.pu-info__row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--sp-2); font-size: var(--fs-14); line-height: var(--lh-snug); }
.pu-info__row dt { color: var(--c-text-cap); }
.pu-info__row dd { margin: 0; color: var(--c-text-soft); overflow-wrap: anywhere; }
.pu-info__row a { color: var(--c-accent); text-decoration: none; }
.pu-info__row a:hover { text-decoration: underline; }
.pu-info__section { margin-top: var(--sp-5); padding-top: var(--sp-5); border-top: var(--bd-soft); }
.pu-info__heading { margin: 0 0 var(--sp-3); font-size: var(--fs-15); font-weight: var(--fw-bold); color: var(--c-text); }
.pu-info__benefit { font-size: var(--fs-14); }
.pu-info__posts { list-style: none; margin: 0; padding: 0; }
.pu-info__posts li + li { border-top: var(--bd-soft); }
.pu-info__posts a {
  display: block; padding: var(--sp-2) 0;
  font-size: var(--fs-14); line-height: var(--lh-snug); color: var(--c-text); text-decoration: none; word-break: keep-all;
}
.pu-info__posts a:hover { color: var(--c-primary); text-decoration: underline; }
.pu-info__empty { margin: 0; font-size: var(--fs-14); color: var(--c-text-mute); }
/* 전형 목록 아래 「더보기」 — 이 대학이 걸린 협업대학 게시판 목록으로 간다 */
.pu-info__more { margin-top: var(--sp-3); }

/* ── 대학 소개 탭 — 전경사진·로고·대학명 타일 4열 격자 ── */
.pu-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-5); }
.pu-tile {
  display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0; overflow: hidden;
  border: var(--bd); border-radius: var(--r-lg); background: var(--c-white);
  font-family: inherit; text-align: left; cursor: pointer;
}
.pu-tile:hover { border-color: var(--c-primary); }
.pu-tile:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.pu-tile__photo { display: block; aspect-ratio: 16 / 10; background: var(--c-surface-mute); }
.pu-tile__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pu-tile__body { display: flex; flex-direction: column; gap: var(--sp-2); padding: var(--sp-4); }
.pu-tile__logo { display: flex; align-items: center; height: 32px; }
.pu-tile__logo img { max-width: 100%; max-height: 32px; object-fit: contain; }
.pu-tile__name { font-size: var(--fs-15); font-weight: var(--fw-semibold); line-height: var(--lh-snug); color: var(--c-text); word-break: keep-all; }
.pu-empty { margin: 0; padding: var(--sp-6) 0; font-size: var(--fs-15); color: var(--c-text-mute); text-align: center; }

@media (max-width: 1100px) {
  .pu-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .pu-map-view { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
  .pu-side { max-height: 320px; }
  .pu-map-wrap { order: -1; }
  .pu-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 좁은 폭 — 정보 패널은 지도를 가리지 않게 지도 아래로 내려온다 */
@media (max-width: 767px) {
  .pu-tabs { display: flex; }
  .pu-tab { flex: 1; }
  .pu-panel { position: static; width: auto; max-width: none; margin-top: var(--sp-3); box-shadow: none; border: var(--bd); overflow: visible; }
  .pu-tiles { grid-template-columns: minmax(0, 1fr); }
}
