/* 놀이기구 사진·자체 설명·공식 영상 링크(OPS-1885 콘텐츠, web/js/ui/content-view.js). 이름은 모두 cv- 로 시작한다.
   색·간격·글자는 var(--nd-*) 만 쓴다(web/css/tokens.css). 그림자 없음, 사진 모서리는 작은 라운드(8px).
   썸네일: 고르기 줄 56 · 대기 줄 44 · 지금 카드 64(사진이 있을 때만). 상세 사진은 16:10. 사진이 없으면 종류 그림(파인 엷은 바탕). */

.cv-thumb { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; border-radius: var(--nd-r-sm); background: var(--nd-pine-tint); }
.cv-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cv-thumb .kind-icon { flex: none; width: 100%; height: 100%; padding: 22%; border-radius: 0; background: none; }
.cv-t44 { width: 44px; height: 44px; }
.cv-t56 { width: 56px; height: 56px; }
.cv-t64 { width: 64px; height: 64px; }

/* 꼭 탈 곳 고르기(여행 만들기 5단계·꼭 탈 곳 고치기): 체크 · 사진 · 이름/한 줄 설명/칩 · 「자세히」 */
.cv-list { list-style: none; margin: 0; padding: 0; }
.cv-list > .cv-row { display: flex; align-items: center; gap: var(--nd-s1); padding: 0 0 0 var(--nd-s2); border-bottom: 1px solid var(--nd-line); }
.cv-list > .cv-row:has(input:checked) { background: var(--nd-pine-tint); }
.cv-row > .cv-pick { flex: 1 1 auto; min-width: 0; align-items: center; gap: var(--nd-s3); padding: 10px 0; }
.ld-setup .must-list .cv-pick { padding: 10px 0; border-bottom: 0; }
.cv-pick > input { flex: 0 0 24px; margin: 0; }
.cv-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cv-name { font-size: var(--nd-fs-ui); font-weight: 700; line-height: 1.3; }
.cv-row:has(input:checked) .cv-name { color: var(--nd-pine); }
.cv-line { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: var(--nd-fs-meta); line-height: 1.4; color: var(--nd-ink-2); }
.ld-setup .must-list .cv-line { font-size: var(--nd-fs-meta); }
.cv-chips { display: flex; flex-wrap: wrap; gap: var(--nd-s1); margin-top: 2px; }
.cv-chips .nd-chip { min-height: 22px; padding: 0 8px; font-size: var(--nd-fs-meta); }
.ld-setup .must-list .cv-chips small { font-size: var(--nd-fs-meta); }
.cv-more { flex: 0 0 auto; min-width: var(--nd-tap); min-height: var(--nd-tap); padding: 0 var(--nd-s2); border: 0; border-radius: var(--nd-r-btn); background: none; color: var(--nd-pine); font: inherit; font-size: var(--nd-fs-label); font-weight: 700; cursor: pointer; }
.cv-more:hover { background: var(--nd-surface); }

/* 대기 줄: 왼쪽 44px 사진이 두 줄(이름·칩)에 걸친다. 칩 줄이 없으면 한 줄 가운데. */
.pd-wrow.has-thumb { grid-template-columns: 44px minmax(0, 1fr) auto; }
.pd-wrow.has-thumb > .cv-thumb { grid-row: 1 / span 2; }
.pd-wrow.has-thumb > .pd-ws { grid-column: 2; }
.pd-wrow.has-thumb.no-sub > .cv-thumb { grid-row: auto; }
.pd-wrow.is-off > .cv-thumb { opacity: .6; }

/* 지금 갈 곳: 이름 오른쪽 64px 사진(이름은 왼쪽 정렬 그대로) */
.pd-name > .cv-thumb { margin-left: auto; }

/* 상세·소개 창: 맨 위 사진 16:10, 바로 아래 출처 줄(작게), 자체 설명, 공식 영상 링크 */
.cv-photo { margin: 0 0 var(--nd-s3); }
.cv-photo.is-off { display: none; }
.cv-photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--nd-r-sm); background: var(--nd-sunk); }
.cv-credit { margin: 6px 0 0; font-size: var(--nd-fs-meta); line-height: 1.4; color: var(--nd-ink-2); overflow-wrap: anywhere; }
.cv-credit a { color: inherit; text-underline-offset: 2px; }
.cv-desc { margin: 0 0 var(--nd-s3); font-size: var(--nd-fs-ui); line-height: var(--nd-lh); }
.cv-videos { display: grid; gap: var(--nd-s2); margin: var(--nd-s3) 0; }
.cv-video { flex-direction: column; gap: 0; padding-top: 6px; padding-bottom: 6px; }
.cv-video-ch { display: block; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--nd-fs-meta); font-weight: 400; color: var(--nd-ink-2); }

/* 사진 출처 목록(더 보기) */
.cv-credits-h { margin: var(--nd-s5) 0 var(--nd-s2); font-size: var(--nd-fs-h3); }
.cv-credits { list-style: none; margin: 0; padding: 0; }
.cv-credits > li { padding: 10px 0; border-bottom: 1px solid var(--nd-line); }
.cv-credits > li > b { font-size: var(--nd-fs-ui); }
.cv-credits .cv-credit { margin-top: 2px; }
