/*
 * 영화 상세 (UT-08) — 시안 공유_아동권리영화제 PC 627:5961 / 태블릿 627:8733 / MO 627:16396 (CRFF-46)
 * 캐러셀 hover 상태: PC 627:6694 / MO 627:17877
 * 레이아웃: PC(1280↑) 본문+우측 sticky 예매카드 2컬럼 / 1024~1279 단일컬럼(태블릿 시안) / ≤1023 모바일
 */

/* 브레이크포인트별 줄바꿈 (community·online 관례 계승) */
.br-mo {
  display: none;
}

/* ── ① 상단 히어로 — 다크 배경 + 채널 타이틀 + 스틸컷 캐러셀 ── */
.movie-hero {
  padding: var(--spacing-120) 0 var(--spacing-40);
  background-color: var(--color-gray-10);
  overflow: hidden;
}

.movie-hero-title {
  margin-bottom: var(--spacing-80);
  font-family: var(--font-family-display);
  font-weight: 800;
  font-size: 56px;
  line-height: 1.35;
  letter-spacing: -0.5px;
  color: var(--color-text-inverse);
  text-align: center;
}

.movie-hero-carousel {
  position: relative;
}

.movie-hero-slide {
  width: 1200px;
  height: 688px;
  border-radius: var(--radius-xxlarge);
  overflow: hidden;
}

.movie-hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* swiper 초기화 전 — 센터 1장만 보이도록 */
.movie-hero-carousel:not(.swiper-initialized) .movie-hero-list {
  display: flex;
  gap: var(--spacing-24);
  justify-content: center;
}

.movie-hero-carousel:not(.swiper-initialized) .movie-hero-slide {
  flex-shrink: 0;
}

/* 좌우 화살표 — 딤+블러 원형 (IconButton_80, online-carousel-nav 동일 계열) */
.movie-hero-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 80px;
  height: 80px;
  border: 0;
  border-radius: var(--radius-full);
  background-color: var(--color-dim-40);
  backdrop-filter: blur(10px);
  cursor: pointer;
  transform: translateY(-50%);
}

.movie-hero-nav::before {
  content: '';
  display: block;
  width: 32px;
  height: 32px;
  margin: 0 auto;
  background-color: var(--color-gray-100);
  mask: var(--nav-icon) no-repeat center / contain;
}

.movie-hero-nav--prev {
  left: var(--spacing-40);
  --nav-icon: url('../../images/icon/func-paginationPrev.svg');
}

.movie-hero-nav--next {
  right: var(--spacing-40);
  --nav-icon: url('../../images/icon/func-paginationNext.svg');
}

/* ── ② 본문 골격 — PC 2컬럼 grid (본문 + 우측 sticky 카드), 1279↓ 단일 컬럼 시 카드가 영상↔섹션 사이로 ── */
.movie-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 597px;
  grid-template-areas:
    'player fix'
    'sections fix';
  column-gap: var(--spacing-24);
  row-gap: var(--spacing-56);
  max-width: 1920px;
  margin: 0 auto;
  padding: var(--spacing-120) var(--spacing-40);
}

.movie-player { grid-area: player; }
.movie-sections { grid-area: sections; }

.movie-fix {
  grid-area: fix;
  width: 597px;
  padding-left: var(--spacing-56);
}

.movie-fix-card {
  position: sticky;
  top: var(--spacing-24);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-40);
  width: 540px;
  padding: var(--spacing-40);
  border: 2px solid var(--color-gray-10);
  border-radius: var(--radius-large);
  background-color: var(--color-background);
}

.movie-fix-poster {
  width: 274px;
  height: 388px;
  border-radius: var(--radius-small);
  overflow: hidden;
}

.movie-fix-poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.movie-fix-info {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-12);
}

.movie-fix-row {
  display: flex;
  gap: var(--spacing-24);
  align-items: flex-start;
}

.movie-fix-label {
  flex-shrink: 0;
  width: 80px;
  font-weight: 600;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: var(--color-text-caption);
}

.movie-fix-value {
  flex: 1;
  min-width: 0;
  font-weight: 700;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: var(--color-text-heading);
}

.movie-fix-meta {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--spacing-12);
  align-items: center;
}

.movie-fix-meta .movie-meta-rating {
  display: flex;
  gap: var(--spacing-8);
  align-items: center;
}

/* 정보 행 내부 값은 내용 폭 유지 (flex:1 승계로 글자 세로 깨짐 방지) */
.movie-fix-meta .movie-fix-value {
  flex: none;
  white-space: nowrap;
}

.movie-fix-meta .badge-rating {
  width: 28px;
  height: 28px;
}

.movie-meta-divider {
  width: 1px;
  height: 16px;
  background-color: var(--color-border);
}

/* ── ③ 영상 + 타이틀/뱃지/버튼 ── */
.movie-player {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-40);
}

.movie-player-screen {
  width: 100%;
  aspect-ratio: 1220 / 690;   /* 시안 실측 비율 — 본문 폭 유동 시 높이 왜곡 방지 */
  border-radius: var(--radius-large);
  overflow: hidden;
  background-color: var(--color-gray-10);
}

.movie-player-screen img,
.movie-player-screen iframe,
.movie-player-screen video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}

/* 상영작을 볼 수 없는 상태(비로그인·상영 예정·종료·시청불가·URL 미등록) 플레이스홀더 — 포스터 대신 검정 배경 + CRFF 로고
   (2026-09-30 확정, CRFF-401 PRE 한정 규칙을 전 상태로 확장). js 가 상영작 플레이어로 교체할 때 이 클래스를 해제한다.
   순검정 토큰이 없어 리터럴 사용 */
.movie-player-screen--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #000000;
}

.movie-player-screen .movie-player-logo {
  width: 280px;
  height: auto;
  object-fit: contain;
}

.movie-player-info {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-40);
}

.movie-title-row {
  display: flex;
  gap: 10px;   /* 시안 원값 (스케일 밖) */
  align-items: flex-start;
}

.movie-title-group {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  gap: var(--spacing-4);
}

.movie-title {
  font-family: var(--font-family-display);
  font-weight: 800;
  font-size: 40px;
  line-height: 1.2;
  letter-spacing: -0.5px;
  color: var(--color-text-heading);
}

.movie-title-en {
  font-weight: 600;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: var(--color-text-subtitle);
}

/* 뱃지 스트립 — 시안 원값 그대로 적용 (h32·12.8/11.2px — 사용자 확정 2026-08-28) */
.movie-badges {
  display: flex;
  gap: var(--spacing-6);
  align-items: center;
  height: 32px;
}

.movie-badges .badge-property {
  height: 32px;
  padding: 0 19.2px 0 var(--spacing-16);   /* 시안 원값 */
  font-size: 12.8px;   /* 시안 원값 */
}

.movie-badges .badge-property--film {
  padding: 0 19.2px;   /* 시안 원값 */
  font-size: 11.2px;   /* 시안 원값 */
}

.movie-badges .badge-rating {
  width: 32px;
  height: 32px;
}

/* 매체 버튼 4종 — 공통 .button 재사용, PC 등폭 가로 배치 */
.movie-actions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-16);
}

.movie-actions-buttons {
  display: flex;
  gap: var(--spacing-16);
}

.movie-actions-buttons .button {
  flex: 1;
  min-width: 0;
}

/* 아웃라인형 미디어 버튼(감독 코멘터리·미니다큐) ▶ 아이콘만 CTA색 (시안) — 텍스트는 currentColor 유지 */
.movie-actions-buttons .button--tertiary .button-icon--play {
  background-color: var(--color-cta);
}

.movie-actions-notes {
  display: flex;
  flex-direction: column;
}

.movie-note {
  display: flex;
  gap: var(--spacing-4);
  align-items: flex-start;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: var(--color-text-caption);
}

.movie-note::before {
  content: '';
  flex-shrink: 0;
  width: 3px;
  height: 26px;
  background: url('../../images/icon/bullet-dot.svg') no-repeat center;
}

.movie-note strong {
  font-weight: 600;
  color: var(--color-cta);
}

/* ── ④ 하단 섹션 공통 ── */
.movie-sections {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-80);
}

.movie-section {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-32);
}

.movie-section-title {
  font-weight: 700;
  font-size: 30px;
  line-height: 1.35;
  letter-spacing: -0.5px;
  color: var(--color-text-heading);
}

/* 더보기/댓글 더보기 버튼 래퍼 */
.movie-more {
  display: flex;
  justify-content: center;
}

/* [hidden] 이 display:flex 보다 우선하도록 명시 (CRFF-174 — 댓글 0건인데도 더보기 노출되던 버그) */
.movie-more[hidden] {
  display: none;
}

.movie-more .button {
  padding-left: var(--spacing-24);
}

/* ── ⑤ 시놉시스 ── */
.movie-synopsis-body {
  margin-top: calc(var(--spacing-24) - var(--spacing-32));   /* 타이틀↔본문 24 (섹션 gap 32 보정) */
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: var(--color-text-body);
}

.movie-synopsis-body.is-collapsed p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;   /* 시안 본문 h72 = lh24 × 3줄 (PC 627:6028 실측 확정) */
  overflow: hidden;
}

.movie-synopsis-body.is-collapsed p + p {
  display: none;
}

/* 관리자 입력 시놉시스의 줄바꿈(\n)을 그대로 보존 (CRFF-60 실데이터 — 단일 <p> + white-space) */
.movie-synopsis-body p {
  white-space: pre-line;
}

/* ── ⑥ 기획의도 — 인물 카드 캐러셀 ── */
.movie-carousel {
  position: relative;
  width: 100%;
  min-width: 0;   /* 컬럼 플렉스 stretch 가 슬라이드 min-content 로 팽창하지 않게 */
}

.movie-intention-card {
  display: flex;
  gap: var(--spacing-24);
  align-items: center;
  height: 280px;
  padding: var(--spacing-32) var(--spacing-56) var(--spacing-40) var(--spacing-32);
  border: 2px solid var(--color-gray-10);
  border-radius: var(--radius-large);
  background-color: var(--color-background-section);
}

/* 기획의도 1명 — 캐러셀 미초기화 시 카드가 전체폭을 채운다 (시안 PC 627:6036 / MO 1396:30530). 컨트롤 숨김 */
[data-movie-intention]:not(.swiper-initialized) .swiper-wrapper {
  display: block;
}
[data-movie-intention]:not(.swiper-initialized) .movie-intention-card {
  width: 100%;
}
[data-movie-intention]:not(.swiper-initialized) .movie-carousel-nav {
  display: none;
}
[data-movie-intention]:not(.swiper-initialized) + .movie-carousel-pagination {
  display: none;
}

.movie-person-img {
  flex-shrink: 0;
  width: 140px;
  height: 100%;
  border-radius: var(--radius-full);
  overflow: hidden;
  background-color: var(--color-background);
}

.movie-person-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 기획의도 인물 이미지 (CRFF-389) — 정방형 208 (PC 시안 2790:25625 · MO 시안 2790:25806 동일 208), radius 20 raw.
   이미지 크롭 없이 전체 노출(contain, 상하 여백 허용). PC·MO 공통(미디어쿼리 불요). 심사위원 카드는 미해당(원형 유지) */
.movie-intention-card .movie-person-img {
  width: 208px;
  height: 208px;
  border-radius: 20px;
  background-color: var(--color-gray-10);   /* 시안 #222 — contain 여백(letterbox) 배경 */
}

.movie-intention-card .movie-person-img img {
  object-fit: contain;
}

.movie-person-text {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  gap: var(--spacing-16);
}

.movie-person-head {
  display: flex;
  gap: 10px;   /* 시안 원값 */
  align-items: center;
  line-height: 24px;
}

.movie-person-name {
  font-weight: 700;
  font-size: 20px;
  color: var(--color-text-heading);
}

.movie-person-role {
  font-size: 16px;
  color: var(--color-text-secondary);
}

.movie-person-desc {
  font-weight: 500;
  font-size: 16px;
  line-height: 25.6px;   /* 시안 원값 lh1.6 — 미확인 목록 #13 */
  letter-spacing: -0.5px;
  color: var(--color-text-secondary);
  max-height: 154px;   /* 6줄 — 초과 시 카드 내 스크롤 (시안 스크롤 인디케이터) */
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--color-scrollbar-thumb) transparent;
}

.movie-person-desc::-webkit-scrollbar {
  width: 4px;
}

.movie-person-desc::-webkit-scrollbar-thumb {
  border-radius: var(--radius-full);
  background-color: var(--color-scrollbar-thumb);
}

/* 캐러셀 도트 — active 32×8 필 / 나머지 8 원 (swiper pagination, online 패턴) */
.movie-carousel-pagination {
  display: flex;
  gap: var(--spacing-8);
  justify-content: center;
  /* 캐러셀↔도트 32 는 .movie-section flex gap 이 담당 (중복 마진 금지) */
  --swiper-pagination-bullet-horizontal-gap: 0px;
}

.movie-carousel-pagination .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  margin: 0;
  border-radius: var(--radius-full);
  background-color: var(--color-dim-20);
  opacity: 1;
  transition: width 0.2s;
}

.movie-carousel-pagination .swiper-pagination-bullet-active {
  width: 32px;
  background-color: var(--color-gray-10);
}

/* 좌우 화살표 — 48 원형 딤+블러 (PagingArrow), 캐러셀 hover 시 노출 */
.movie-carousel-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: var(--radius-full);
  background-color: var(--color-dim-40);
  backdrop-filter: blur(6px);
  cursor: pointer;
  transform: translateY(-50%);
  opacity: 0;
  transition: opacity 0.2s;
}

.movie-carousel:hover .movie-carousel-nav {
  opacity: 1;
}

.movie-carousel-nav.swiper-button-disabled {
  opacity: 0;
  pointer-events: none;
}

.movie-carousel-nav::before {
  content: '';
  display: block;
  width: 20px;   /* 시안 19.2 — 아이콘 4배수 규칙 20 정규화 */
  height: 20px;
  margin: 0 auto;
  background-color: var(--color-gray-100);
  mask: var(--nav-icon) no-repeat center / contain;
}

.movie-carousel-nav--prev {
  left: var(--spacing-8);
  --nav-icon: url('../../images/icon/func-paginationPrev.svg');
}

.movie-carousel-nav--next {
  right: var(--spacing-8);
  --nav-icon: url('../../images/icon/func-paginationNext.svg');
}

/* ── ⑦ 크레딧 테이블 ── */
.movie-credit-table {
  border-top: 4px solid var(--color-gray-10);
}

.movie-credit-row {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid var(--color-border);
}

.movie-credit-label {
  display: flex;
  flex-shrink: 0;
  width: 120px;
  min-height: 64px;
  padding: var(--spacing-24) 0;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
  line-height: 24px;
  color: var(--color-text-heading);
}

.movie-credit-value {
  display: flex;
  flex: 1;
  min-width: 0;
  min-height: 64px;
  padding: var(--spacing-24) var(--spacing-32);
  align-items: center;
  font-size: 16px;
  line-height: 24px;
  color: var(--color-text-secondary);
}

/* ── ⑧ 심사위원 코멘트 — 2×2 카드 캐러셀 ── */
.movie-judge-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-24);
}

.movie-judge-card {
  display: flex;
  gap: var(--spacing-24);
  align-items: center;
  padding: var(--spacing-24) var(--spacing-32);
  border: 2px solid var(--color-gray-10);
  border-radius: var(--radius-large);
  background-color: var(--color-background);
}

.movie-judge-card .movie-person-img {
  width: 120px;
  height: 120px;
  background-color: var(--color-background-section);
}

.movie-judge-card .movie-person-desc {
  max-height: 77px;   /* 3줄 클램프 (시안 h77) */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

/* ── ⑨ 자유 콘텐츠 영역 (관리자 에디터, CRFF-60) — 배너·Thanks to 등 고정 데모 마크업을 대체 ── */
.movie-extra {
  gap: var(--spacing-56);
}

/* 에디터 산출 HTML 기본 가독성 — 이미지/버튼 삽입을 전제로 최소한의 반응형·간격만 보정 */
.movie-free-content {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-24);
  color: var(--color-text-body);
  line-height: 1.6;
}

.movie-free-content img,
.movie-free-content video {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-large);
}

.movie-banner-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-40);
}

.movie-banner {
  display: flex;
  gap: var(--spacing-24);
  align-items: center;
}

.movie-banner-img {
  flex-shrink: 0;
  width: 442px;
  height: 248px;
  border-radius: var(--radius-large);
  overflow: hidden;
  background-color: var(--color-background-section);
}

.movie-banner-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.movie-banner-body {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  gap: var(--spacing-24);
  align-items: flex-start;
  justify-content: center;
  padding: 0 var(--spacing-24);
}

.movie-banner-text {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-16);
}

.movie-banner-title {
  font-weight: 700;
  font-size: 20px;
  line-height: 24px;
  color: var(--color-text-heading);
}

.movie-banner-desc {
  font-weight: 500;
  font-size: 16px;
  line-height: 25.6px;   /* 시안 원값 — 미확인 목록 #13 */
  letter-spacing: -0.5px;
  color: var(--color-text-secondary);
}

.movie-thanks {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-24);
}

.movie-thanks-head {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
}

.movie-thanks-sub {
  font-size: 18px;
  line-height: 24px;
  letter-spacing: -0.5px;
  color: var(--color-text-subtitle);
}

.movie-thanks-box {
  max-height: 392px;   /* 칩 3줄 + p40 — 초과 시 스크롤 (시안 인디케이터) */
  padding: var(--spacing-40);
  border-radius: var(--radius-small);
  background-color: var(--color-background-section);   /* 시안 갱신 — PC/MO 공통 #f3f3f3 (2026-08-28) */
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--color-scrollbar-thumb) transparent;
}

.movie-thanks-box::-webkit-scrollbar {
  width: 4px;
}

.movie-thanks-box::-webkit-scrollbar-thumb {
  border-radius: var(--radius-full);
  background-color: var(--color-scrollbar-thumb);
}

.movie-thanks-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--spacing-24);
  align-items: center;
}

.movie-thanks-item {
  display: flex;
  min-height: 88px;
  padding: var(--spacing-20) var(--spacing-12);
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-small);
  background-color: var(--color-background);
  font-weight: 700;
  font-size: 20px;
  line-height: normal;   /* 고정 24px 는 MO(15px)에서 2줄=48px 로 76 박스를 넘김 → normal 로 2줄이 박스 안에 맞게 */
  color: var(--color-text-heading);
  text-align: center;
  word-break: keep-all;
}

/* 긴 이름 넘침 방지 — 2줄 말줄임. keep-all 상속을 풀어 단어 내 줄바꿈 허용(가로 잘림 대신 … 표시) */
.movie-thanks-name {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  word-break: normal;
  overflow-wrap: anywhere;
}

/* ── 반응형: ≤1279 — 단일 컬럼, 카드가 영상과 섹션 사이 (태블릿 시안 627:8733) ── */
@media (max-width: 1279px) {
  /* 히어로 타이틀 — 뷰포트별 시안값 상이(PC 56/태블릿 72/MO 38), 시안대로 적용 (사용자 확정 2026-08-28) */
  .movie-hero-title {
    font-size: 72px;
    line-height: 1.35;
  }

  .movie-content {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      'player'
      'fix'
      'sections';
    row-gap: var(--spacing-40);
  }

  .movie-fix {
    width: 100%;
    padding-left: 0;
  }

  .movie-fix-card {
    position: static;
    width: 100%;
  }
}

/* ── 반응형: ≤1023 모바일 (시안 627:16396) ── */
@media (max-width: 1023px) {
  .br-mo {
    display: inline;
  }

  .movie-hero {
    padding: var(--spacing-80) 0 var(--spacing-40);
  }

  .movie-hero-title {
    margin-bottom: var(--spacing-56);
    font-size: 38px;   /* 시안 원값 — 미확인 목록 #2 */
    line-height: 1.2;
  }

  .movie-hero-slide {
    width: 286px;
    height: 164px;
    border-radius: var(--radius-small);
  }

  .movie-hero-carousel:not(.swiper-initialized) .movie-hero-list {
    gap: var(--spacing-16);
  }

  .movie-hero-nav {
    width: 52px;
    height: 52px;
  }

  .movie-hero-nav::before {
    width: 20px;
    height: 20px;
  }

  .movie-hero-nav--prev { left: var(--spacing-16); }
  .movie-hero-nav--next { right: var(--spacing-16); }

  .movie-content {
    padding: var(--spacing-40) var(--layout-margin-mobile);
    column-gap: var(--spacing-40);
    row-gap: var(--spacing-40);
  }

  /* 예매(공유) 카드 — MO 시안 border 1 / p24 / gap32 */
  .movie-fix-card {
    gap: var(--spacing-32);
    padding: var(--spacing-24);
    border-width: 1px;
  }

  .movie-fix-label {
    width: 64px;
    font-size: 15px;
    color: var(--color-text-body);   /* 시안 MO #555 (PC #767676 상이 — 미확인 목록 #5) */
  }

  .movie-fix-value {
    font-size: 15px;
  }

  .movie-fix-meta {
    gap: var(--spacing-8);
  }

  .movie-fix-meta .badge-rating {
    width: 20px;   /* 시안 원값 — 미확인 목록 (badge-rating 등록 크기 밖) */
    height: 20px;
  }

  .movie-player {
    gap: var(--spacing-40);
  }

  .movie-player-screen {
    height: auto;
    aspect-ratio: 1160 / 659;
    border-radius: var(--radius-small);
  }

  .movie-player-screen .movie-player-logo {
    width: 160px;
  }

  .movie-player-info {
    gap: var(--spacing-32);
  }

  .movie-title-row {
    flex-direction: column;
    gap: var(--spacing-12);
  }

  .movie-title {
    font-size: 32px;
  }

  .movie-title-en {
    font-size: 18px;
  }

  .movie-badges {
    height: 28px;
  }

  .movie-badges .badge-property {
    height: 28px;
    padding: 0 16.8px;   /* 시안 원값 (1396:30422) */
    font-size: 12px;   /* 시안 원값 */
  }

  /* MO 우수상 뱃지는 트로피 아이콘 숨김 (시안 1396:30424 hidden) */
  .movie-badges .badge-property-icon {
    display: none;
  }

  .movie-badges .badge-property-logo {
    width: 24.8px;   /* 시안 원값 (1396:30430) */
    height: 11.2px;
  }

  .movie-badges .badge-rating {
    width: 28px;
    height: 28px;
  }

  .movie-actions-buttons {
    flex-direction: column;
    gap: var(--spacing-12);
  }

  /* 세로 스택에선 PC용 flex:1(basis 0)이 버튼 높이(h52)를 붕괴시킴 — 고정 높이 복원 */
  .movie-actions-buttons .button {
    flex: none;
  }

  .movie-note {
    font-size: 15px;
  }

  .movie-sections {
    gap: var(--spacing-80);
  }

  .movie-section-title {
    font-size: 28px;
  }

  .movie-synopsis-body {
    font-weight: 500;
    font-size: 15px;
    line-height: 25.6px;
  }

  /* 기획의도 — 세로 카드 */
  .movie-intention-card {
    flex-direction: column;
    height: auto;
    padding: var(--spacing-32) var(--spacing-24) var(--spacing-40);
    border-width: 1px;
  }

  .movie-person-img {
    width: 140px;
    height: 194px;
  }

  .movie-person-text {
    width: 100%;
  }

  .movie-person-desc {
    max-height: 180px;   /* 시안 h180 (7줄) */
  }

  /* 크레딧 */
  .movie-credit-label {
    font-size: 15px;
  }

  .movie-credit-value {
    padding: var(--spacing-24);
    font-size: 15px;
  }

  /* 심사위원 — 296×370 세로 카드 2×2 스와이프 (슬라이드 폭 = 그리드 콘텐츠 폭) */
  [data-movie-judge] .swiper-slide {
    width: auto;
  }

  .movie-judge-grid {
    grid-template-columns: repeat(2, 296px);
    gap: var(--spacing-24) var(--spacing-16);
  }

  /* 기획의도 — MO 카드 폭 고정(시안 297) 스와이프 */
  .movie-intention-card.swiper-slide {
    width: 297px;
  }

  .movie-judge-card {
    flex-direction: column;
    width: 296px;
    height: 370px;
    padding: var(--spacing-24);
    border-width: 1px;
    justify-content: center;
  }

  .movie-judge-card .movie-person-head {
    flex-direction: column;
    gap: 10px;   /* 시안 원값 */
    align-items: flex-start;
    width: 100%;
  }

  .movie-judge-card .movie-person-text {
    width: 100%;
  }

  /* 배너 — 세로 스택 */
  .movie-banner {
    flex-direction: column;
    gap: var(--spacing-24);
    align-items: stretch;
  }

  .movie-banner-img {
    width: 100%;
    height: 240px;
  }

  .movie-banner-body {
    padding: 0 var(--spacing-16);
  }

  .movie-banner-text {
    gap: var(--spacing-12);
  }

  .movie-banner-desc {
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
  }

  .movie-banner-body .button {
    width: 100%;
    height: 48px;   /* 시안 MO 48 — .button--small MO(44) 승계 방지 */
  }

  .movie-thanks-head {
    gap: var(--spacing-12);
  }

  .movie-thanks-box {
    max-height: 274px;
    padding: var(--spacing-24);
  }

  .movie-thanks-list {
    grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
    gap: var(--spacing-8);
  }

  .movie-thanks-item {
    min-height: 76px;
    font-size: 15px;
  }
}
