/* =====================================================================
   제4회 후지필름 포토페스타 2026 – 인터내셔널 (FPFI) — 행사 메인 페이지
   wrapper / S3 css filename : photo-pesta-main
   S3 image folder           : assets/playwith/photo-pesta-main/  (이미지 추가 시)
   상세 프로그램 6개 페이지(photo-pesta-program.css)와 동일한 뉴트럴 팔레트 공유.
   playwith 와이드 페이지 + sticky 내비 = transform 금지, margin-trick breakout
   + fixed 탭 + sentinel + scroll JS (플레이북 §12-A). 모든 룰 .photo-pesta-main 스코프.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Jost:wght@200;300;400;500&display=swap');
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css');

/* ---------- design tokens + base + breakout ---------- */
.photo-pesta-main{
  --bg: #ffffff;
  --beige: #f3f3f3;
  --ink: #171717;
  --ink-2: #4a4a4a;
  --muted: #909090;
  --line: #d8d8d8;
  --rust: #9a9a9a;
  --max: 1180px;

  background: var(--bg);
  color: var(--ink);
  font-family: "Pretendard", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  text-align: left !important;

  position: relative !important;
  width: 100% !important;
  margin: 0 !important;
}
/* breakout WITHOUT transform (transform이 자식 fixed/sticky의 containing block을
   만들어 sticky 탭을 가둔다 → margin trick 사용). §4 변형 공식 / §12-A-1 */
@media (min-width: 60em){
  .photo-pesta-main{
    width: 100vw !important;
    max-width: 1360px !important;
    left: 50% !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
  }
  @supports (max-width: min(100vw, 1360px)){
    .photo-pesta-main{
      max-width: min(100vw, 1360px) !important;
      margin-left: calc(min(100vw, 1360px) / -2) !important;
      margin-right: calc(min(100vw, 1360px) / -2) !important;
    }
  }
}

.photo-pesta-main *{ box-sizing: border-box; }
.photo-pesta-main img{ display: block; max-width: 100%; }
.photo-pesta-main a{ color: inherit; }
.photo-pesta-main button{ font-family: inherit; }
.photo-pesta-main em{ color: inherit; font-style: italic; } /* 사이트 em{color:#029570} 무력화 */

/* 앵커 점프 시 sticky GNB(69/49) + 탭바 높이만큼 보정 */
.photo-pesta-main [id]{ scroll-margin-top: 134px; }
@media (max-width: 640px){
  .photo-pesta-main [id]{ scroll-margin-top: 104px; }
}

/* ---------- shared frame ---------- */
.photo-pesta-main .fp-wrap{
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 32px;
}
.photo-pesta-main .fp-eyebrow{
  font-family: "Jost", sans-serif;
  font-weight: 400;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  font-size: 11px;
  color: var(--rust);
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.photo-pesta-main .fp-eyebrow::before{
  content: ""; width: 28px; height: 1px; background: var(--rust); display: inline-block;
}
.photo-pesta-main .fp-section-head{
  margin-bottom: 44px;
}
.photo-pesta-main .fp-section-head h2{
  margin: 14px 0 0;
  font-family: inherit;
  font-weight: 400;
  font-size: 34px;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.photo-pesta-main .fp-section-head h2 .en{
  display: block;
  margin-top: 8px;
  font-family: "Jost", sans-serif;
  font-weight: 300;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--muted);
}
.photo-pesta-main .fp-section-note{
  margin: 14px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-2);
}

/* ---------- floating tab nav (fixed + sentinel + JS, §12-A-2) ---------- */
.photo-pesta-main .fp-tabs-sentinel{
  height: 1px;
  width: 100%;
  pointer-events: none;
}
.photo-pesta-main .fp-tabs{
  position: fixed !important;
  top: 69px !important;       /* 사이트 GNB 높이 (desktop) */
  left: 0 !important;
  right: 0 !important;
  z-index: 50;                /* GNB(100) 아래 */
  background: rgba(255,255,255,0.94);
  -webkit-backdrop-filter: saturate(180%) blur(8px);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--line);
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.25s ease, opacity 0.2s ease;
}
.photo-pesta-main .fp-tabs.is-shown{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.photo-pesta-main .fp-tabs-inner{
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: stretch;
}
.photo-pesta-main .fp-tabs-list{
  flex: 1 1 auto;
  display: flex;
  gap: 4px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  min-width: 0;
}
.photo-pesta-main .fp-tabs-list::-webkit-scrollbar{ display: none; }
.photo-pesta-main .fp-tab{
  flex: 0 0 auto;
  padding: 18px 22px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.photo-pesta-main .fp-tab .en{
  display: inline-block;
  margin-left: 8px;
  font-family: "Jost", sans-serif;
  font-weight: 300;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.photo-pesta-main .fp-tab:hover{ color: var(--ink); }
.photo-pesta-main .fp-tab.is-active{
  color: var(--ink);
  border-bottom-color: var(--ink);
  font-weight: 600;
}
.photo-pesta-main .fp-tab.is-active .en{ color: var(--ink-2); }

/* ---------- hero (key visual 이미지 — 풀블리드) ---------- */
.photo-pesta-main .fp-hero{ background: #1a1a1a; padding: 0; }
.photo-pesta-main .fp-hero-visual{ margin: 0; line-height: 0; }
.photo-pesta-main .fp-hero-visual img{ width: 100%; height: auto; display: block; }

/* ---------- intro / overview ---------- */
.photo-pesta-main .fp-intro{ padding: 92px 0 88px; }
.photo-pesta-main .fp-intro-inner{ max-width: none; }
.photo-pesta-main .fp-intro h1{
  margin: 0 0 8px;
  font-family: inherit;
  font-weight: 500;
  font-size: 38px;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--ink);
  word-break: keep-all;
}
.photo-pesta-main .fp-intro h2{
  margin: 0 0 32px;
  font-family: "Jost", sans-serif;
  font-weight: 300;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.photo-pesta-main .fp-intro .lead{
  margin: 22px 0 26px;
  font-family: inherit;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.55;
  color: var(--ink);
  letter-spacing: -0.005em;
  word-break: keep-all;
}
.photo-pesta-main .fp-intro p{
  margin: 0 0 18px;
  color: var(--ink-2);
  font-size: 15.5px;
  line-height: 1.85;
  text-wrap: pretty;
}
.photo-pesta-main .fp-intro p:last-child{ margin-bottom: 0; }
.photo-pesta-main .fp-intro-info{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 48px;
  background: var(--line);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.photo-pesta-main .fp-ii-cell{
  background: var(--bg);
  padding: 26px 26px 28px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.photo-pesta-main .fp-ii-cell .k{
  font-family: "Jost", sans-serif; font-weight: 400; letter-spacing: 0.18em;
  text-transform: uppercase; font-size: 10.5px; color: var(--rust);
}
.photo-pesta-main .fp-ii-cell .v{
  font-weight: 500; font-size: 17px; line-height: 1.4; color: var(--ink); letter-spacing: -0.005em;
}
.photo-pesta-main .fp-ii-cell .s{
  font-size: 13px; color: var(--ink-2); line-height: 1.55;
}

/* ============ SECTION: 포토 페스타 IN-BETWEEN (수상자전) ============ */

/* IN-BETWEEN 챕터 전체를 하나의 배경색으로 묶어 다른 챕터와 차별화 */
.photo-pesta-main .fp-inbetween{ background: #edede9; }

/* ---------- 컨셉 소개 (intro와 동일 구조) ---------- */
.photo-pesta-main .fp-concept{
  padding: 88px 0 56px;
}
.photo-pesta-main .fp-concept-inner{ max-width: none; }
.photo-pesta-main .fp-concept h1{
  margin: 0 0 8px;
  font-family: inherit; font-weight: 500; font-size: 38px;
  line-height: 1.3; letter-spacing: -0.01em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .fp-concept h2{
  margin: 0 0 26px;
  font-family: "Jost", sans-serif; font-weight: 300; font-size: 15px;
  line-height: 1.4; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted);
}
.photo-pesta-main .fp-concept h3{
  margin: 0 0 26px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  font-family: inherit; font-weight: 500; font-size: 20px;
  letter-spacing: -0.005em; color: var(--ink);
}
.photo-pesta-main .fp-concept p{
  margin: 0 0 18px; color: var(--ink-2); font-size: 15.5px; line-height: 1.85; text-wrap: pretty;
}
.photo-pesta-main .fp-concept p:last-child{ margin-bottom: 0; }

/* ---------- 어워드 수상작 ---------- */
.photo-pesta-main .fp-awards{ padding: 56px 0; border-top: 1px solid #dad7cf; }
.photo-pesta-main .fp-award-2col{
  display: grid; grid-template-columns: 1fr 1fr; column-gap: 56px;
  border-top: 1px solid #dad7cf; padding-top: 36px;
}
.photo-pesta-main .fp-award-2col .fp-award{ position: relative; }
.photo-pesta-main .fp-award-2col .fp-award + .fp-award::before{
  content: ""; position: absolute; left: -28px; top: 0; bottom: 0;
  width: 1px; background: #dad7cf;
}
.photo-pesta-main .fp-award-head h3{
  margin: 0; font-family: inherit; font-weight: 500; font-size: 20px;
  letter-spacing: -0.01em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .fp-award-head .en{
  display: block; margin-top: 6px;
  font-family: "Jost", sans-serif; font-weight: 300; font-size: 12.5px;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted);
}
.photo-pesta-main .fp-namelist-wrap{ margin: 22px 0 0; }
.photo-pesta-main .fp-namelist-wrap .nl-label{
  display: block; margin-bottom: 12px;
  font-family: "Jost", sans-serif; font-weight: 400; letter-spacing: 0.18em;
  text-transform: uppercase; font-size: 10.5px; color: var(--rust);
}
.photo-pesta-main .fp-namelist{
  font-size: 15px;
  line-height: 1.9;
  color: var(--ink-2);
  letter-spacing: -0.005em;
  word-break: keep-all;
}
/* 수상작 대표 이미지 — 비정형 그리드(원본 비율). 최우수작 2점은 좌측 열에 위아래로. */
.photo-pesta-main .fp-work-gallery{
  margin-top: 52px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  align-items: start;
}
.photo-pesta-main .fp-work-gallery .wg-col{
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.photo-pesta-main .fp-work{ margin: 0; display: block; }
.photo-pesta-main .fp-work .thumb{
  display: block; overflow: hidden;   /* 고정 비율 없음 — 원본 비율 유지 */
}
.photo-pesta-main .fp-work .thumb img{
  width: 100%; height: auto; display: block;   /* 가로/세로 원본 비율 그대로 */
  transition: transform 0.6s ease;
}
.photo-pesta-main .fp-work:hover .thumb img{ transform: scale(1.03); }
.photo-pesta-main .fp-work figcaption{ margin-top: 14px; }
.photo-pesta-main .fp-work .w-title{
  display: block; font-size: 15.5px; font-weight: 500; color: var(--ink);
  line-height: 1.45; word-break: keep-all;
}
.photo-pesta-main .fp-work .w-en{
  display: block; margin-top: 3px;
  font-family: "Jost", "Pretendard", sans-serif; font-weight: 300;
  font-size: 12.5px; color: var(--muted); letter-spacing: 0.01em;
}
.photo-pesta-main .fp-work .w-artist{
  display: block; margin-top: 7px; font-size: 13px; color: var(--ink-2);
}

/* ---------- 심사위원 (1그리드 세로 나열) ---------- */
.photo-pesta-main .fp-jurors{ padding: 56px 0 92px; border-top: 1px solid #dad7cf; }
.photo-pesta-main .fp-juror-grid{
  border-top: 1px solid var(--line);   /* 1그리드 세로 나열 */
}
.photo-pesta-main .fp-juror{
  display: grid;
  grid-template-columns: 100px 1fr;     /* 작은 사진(좌) + 정보(우) */
  grid-template-areas: "photo body" "photo bio";   /* 데스크탑: bio는 우측 열, 약력 아래 */
  column-gap: 28px;
  align-items: start;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}
.photo-pesta-main .fp-juror .j-body{ grid-area: body; }
.photo-pesta-main .fp-juror .j-bio{ grid-area: bio; }
.photo-pesta-main .fp-juror .j-photo{
  grid-area: photo;
  width: 100px;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #1a1a1a;
  margin: 0;
}
.photo-pesta-main .fp-juror .j-photo img{
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.photo-pesta-main .fp-juror .j-body{ min-width: 0; }
.photo-pesta-main .fp-juror .j-name{
  margin: 0; font-family: inherit; font-weight: 500; font-size: 20px;
  letter-spacing: -0.005em; color: var(--ink);
}
.photo-pesta-main .fp-juror .j-name-en{
  display: inline; margin-left: 9px;
  font-family: "Jost", sans-serif; font-weight: 300; font-size: 13px;
  letter-spacing: 0.08em; color: var(--muted);
}
.photo-pesta-main .fp-juror .j-role{
  margin: 12px 0 0; font-size: 13.5px; font-weight: 500; color: var(--ink);
}
.photo-pesta-main .fp-juror .j-role-en{
  display: inline; margin-left: 8px;
  font-family: "Jost", sans-serif; font-weight: 300; font-size: 12px;
  letter-spacing: 0.04em; color: var(--muted);
}
.photo-pesta-main .fp-juror .j-bio{
  margin: 16px 0 0; font-size: 13.5px; line-height: 1.75; color: var(--ink-2); text-wrap: pretty;
}

/* ============ SECTION: Program (특별 프로그램) — #edede9 챕터 ============ */
.photo-pesta-main .fp-program{ background: #edede9; padding: 92px 0; }

/* 글로벌 기획자 초청 특강 그룹 헤딩 */
.photo-pesta-main .fp-prog-group-head h2{
  margin: 0; font-family: inherit; font-weight: 500; font-size: 34px;
  letter-spacing: -0.01em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .fp-prog-group-intro{
  margin: 12px 0 0; max-width: 780px;
  font-size: 15px; line-height: 1.8; color: var(--ink-2); text-wrap: pretty;
}
/* 그룹 인트로 아래 전체폭 구분선 */
.photo-pesta-main .fp-prog-group-head{ padding-bottom: 32px; border-bottom: 1px solid #dad7cf; }

/* 메인 프로그램 (초청자 사진 + 약력) — 2열 비교 그리드 */
.photo-pesta-main .fp-main-grid{
  margin-top: 40px;
  display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px;
  align-items: start;
}
.photo-pesta-main .fp-main-grid{ align-items: stretch; }
.photo-pesta-main .fp-main-grid .fp-main-prog{ position: relative; display: flex; flex-direction: column; }
.photo-pesta-main .fp-main-grid .fp-main-prog + .fp-main-prog::before{
  content: ""; position: absolute; left: -24px; top: 0; bottom: 0; width: 1px; background: #dad7cf;
}
.photo-pesta-main .mp-title{
  margin: 0; font-family: inherit; font-weight: 500; font-size: 20px;
  line-height: 1.4; letter-spacing: -0.005em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .mp-intro{
  margin: 14px 0 0; max-width: 820px;
  font-size: 14.5px; line-height: 1.8; color: var(--ink-2); text-wrap: pretty;
}
.photo-pesta-main .mp-speaker{
  margin: 24px 0 26px;
  display: grid; grid-template-columns: 140px 1fr;
  grid-template-areas: "photo who" "photo bio";   /* 데스크탑: 약력은 우측 열, 이름/직함 아래 */
  column-gap: 24px; align-items: start;
}
.photo-pesta-main .mp-who{ grid-area: who; }
.photo-pesta-main .sp-bio{ grid-area: bio; }
.photo-pesta-main .mp-photo{ grid-area: photo; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; background: #1a1a1a; } /* 그리드 컬럼 폭에 맞춤(모바일 겹침 방지) — 양쪽 동일 비율/높이 */
.photo-pesta-main .mp-photo img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-pesta-main .sp-name{ margin: 0; font-family: inherit; font-weight: 500; font-size: 16px; color: var(--ink); }
.photo-pesta-main .sp-role{ margin: 5px 0 0; font-size: 13px; color: var(--rust); }
.photo-pesta-main .sp-bio{ margin: 14px 0 0; font-size: 13.5px; line-height: 1.75; color: var(--ink-2); text-wrap: pretty; }
/* 정보 — 서브 프로그램처럼 축약, 하단 정렬(버튼 위치 고정) */
.photo-pesta-main .mp-info{ margin-top: auto; padding-top: 22px; border-top: 1px solid #dad7cf; display: flex; align-items: center; gap: 20px; }
.photo-pesta-main .mp-meta{ list-style: none; margin: 0; padding: 0; flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 7px; font-size: 13px; color: var(--ink); }
.photo-pesta-main .mp-meta li{ font-size: 13px; color: var(--ink); }
.photo-pesta-main .mp-meta .k{
  font-family: "Jost", sans-serif; font-weight: 400; letter-spacing: 0.16em;
  text-transform: uppercase; font-size: 10px; color: var(--rust); margin-right: 9px;
}
/* 공통 버튼 비주얼(그린 채움) — 신청/링크 버튼 전부 동일 */
.photo-pesta-main a.mp-btn,
.photo-pesta-main a.sub-btn,
.photo-pesta-main a.fp-se-btn,
.photo-pesta-main a.ev-btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  width: auto; white-space: nowrap;
  padding: 12px 18px; background: #029570; color: #fff !important;
  font-size: 14px; font-weight: 600; text-decoration: none; letter-spacing: -0.005em;
  transition: background-color 0.2s ease;
}
/* 프로그램 신청 버튼만 일시/장소 옆 25% 폭 */
.photo-pesta-main a.mp-btn,
.photo-pesta-main a.sub-btn{ flex: 0 0 25%; }
.photo-pesta-main a.mp-btn:hover,
.photo-pesta-main a.sub-btn:hover,
.photo-pesta-main a.fp-se-btn:hover,
.photo-pesta-main a.ev-btn:hover{ background: #34b591; color: #fff !important; }
.photo-pesta-main a.mp-btn .arr,
.photo-pesta-main a.sub-btn .arr,
.photo-pesta-main a.fp-se-btn .arr,
.photo-pesta-main a.ev-btn .arr{ font-family: "Jost", sans-serif; font-weight: 300; }

/* 4개 프로그램 2x2 그리드 */
.photo-pesta-main .fp-sub-grid{
  margin-top: 60px; padding-top: 56px; border-top: 1px solid #dad7cf;
  display: grid; grid-template-columns: 1fr 1fr; gap: 22px;
}
.photo-pesta-main .fp-sub-prog{
  background: #fff; padding: 34px 32px 32px;
  display: flex; flex-direction: column;
}
.photo-pesta-main .sub-title{
  margin: 0; font-family: inherit; font-weight: 500; font-size: 20px;
  line-height: 1.4; letter-spacing: -0.005em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .sub-intro{
  margin: 12px 0 0; font-size: 14px; line-height: 1.7; color: var(--ink-2); text-wrap: pretty;
  min-height: 134px; /* 4개 카드 일시·버튼 위치 정렬 (가장 긴 소개 기준) */
}
.photo-pesta-main .fp-sub-prog .sub-foot{
  margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line);
  display: flex; align-items: center; gap: 20px;
}
.photo-pesta-main .sub-meta{
  list-style: none; margin: 0; padding: 0; flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column; gap: 7px; font-size: 13px; color: var(--ink);
}
.photo-pesta-main .sub-meta .k{
  font-family: "Jost", sans-serif; font-weight: 400; letter-spacing: 0.16em;
  text-transform: uppercase; font-size: 10px; color: var(--rust); margin-right: 9px;
}
.photo-pesta-main .fp-sub-prog .sub-btn{ margin-top: 0; }

/* ============ SECTION: Special Exhibition (특별전) — 흰색 챕터 ============ */
.photo-pesta-main .fp-special{ background: #ffffff; padding: 92px 0; }
.photo-pesta-main .fp-se{
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 56px;
  padding: 48px 0;
  border-top: 1px solid var(--line);
}
.photo-pesta-main .fp-se:last-child{ border-bottom: 1px solid var(--line); }
.photo-pesta-main .fp-se-num{
  display: block; margin-bottom: 12px;
  font-family: "Jost", sans-serif; font-weight: 400; letter-spacing: 0.16em;
  text-transform: uppercase; font-size: 11px; color: var(--rust);
}
.photo-pesta-main .fp-se-kicker{
  display: block; margin-bottom: 8px; font-size: 13px; color: var(--ink-2); line-height: 1.5;
}
.photo-pesta-main .fp-se-head h2{
  margin: 0; font-family: inherit; font-weight: 500; font-size: 34px;
  line-height: 1.35; letter-spacing: -0.01em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .fp-se-head h2 .en{
  display: block; margin-top: 6px;
  font-family: "Jost", sans-serif; font-weight: 300; font-size: 13px;
  letter-spacing: 0.08em; color: var(--muted);
}
.photo-pesta-main .fp-se-body{ min-width: 0; }
.photo-pesta-main .fp-se-body > p{
  margin: 0 0 16px; font-size: 15px; line-height: 1.8; color: var(--ink-2); text-wrap: pretty;
}
.photo-pesta-main .fp-se-subhead{
  margin: 32px 0 10px; font-family: inherit; font-weight: 500; font-size: 16px;
  color: var(--ink); letter-spacing: -0.005em; word-break: keep-all;
}
.photo-pesta-main .fp-se-subhead.is-divided{
  margin-top: 40px; padding-top: 34px; border-top: 1px solid var(--line);
}
.photo-pesta-main .fp-se-block{
  margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--line);
}
.photo-pesta-main .fp-se-block .b-label{
  display: block; margin-bottom: 10px;
  font-weight: 600; font-size: 13px; letter-spacing: 0.01em; color: var(--ink);
}
.photo-pesta-main .fp-se-block .b-item{
  margin: 0 0 9px; font-size: 14.5px; line-height: 1.7; color: var(--ink-2); text-wrap: pretty;
}
.photo-pesta-main .fp-se-block .b-item:last-child{ margin-bottom: 0; }
.photo-pesta-main .fp-se-block .b-list{ list-style: none; margin: 0; padding: 0; }
.photo-pesta-main .fp-se-block .b-list li{
  position: relative; padding-left: 16px; margin: 0 0 9px;
  font-size: 14.5px; line-height: 1.7; color: var(--ink-2); text-wrap: pretty;
}
.photo-pesta-main .fp-se-block .b-list li:last-child{ margin-bottom: 0; }
.photo-pesta-main .fp-se-block .b-list li::before{
  content: "•"; position: absolute; left: 0; top: 0; color: var(--rust); font-size: 0.85em;
}
.photo-pesta-main .fp-se-block .r-k{ color: var(--ink); font-weight: 600; margin-right: 9px; }
.photo-pesta-main .fp-se-block .b-sub{
  display: block; margin-top: 3px; font-size: 13px; color: var(--muted); line-height: 1.6;
}
.photo-pesta-main .fp-se-block .b-sub b{ color: var(--ink-2); font-weight: 600; margin-right: 6px; }
.photo-pesta-main a.fp-se-btn{ margin-top: 24px; }

/* ============ SECTION: Special Project (스페셜 프로젝트) — 흰색 챕터 ============ */
.photo-pesta-main .fp-sproject{ background: #ffffff; padding: 92px 0; }
.photo-pesta-main .fp-sp{
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 56px;
  padding: 48px 0;
  border-top: 1px solid var(--line);
}
.photo-pesta-main .fp-sp:last-child{ border-bottom: 1px solid var(--line); }
.photo-pesta-main .fp-sp-num{
  display: block; margin-bottom: 12px;
  font-family: "Jost", sans-serif; font-weight: 400; letter-spacing: 0.16em;
  text-transform: uppercase; font-size: 11px; color: var(--rust);
}
.photo-pesta-main .fp-sp-head h2{
  margin: 0; font-family: inherit; font-weight: 500; font-size: 34px;
  line-height: 1.35; letter-spacing: -0.01em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .fp-sp-body{ min-width: 0; }
.photo-pesta-main .fp-sp-body > p{
  margin: 0 0 16px; font-size: 15px; line-height: 1.8; color: var(--ink-2); text-wrap: pretty;
}
.photo-pesta-main .fp-sp-body > p:last-child{ margin-bottom: 0; }
/* 하위 서브 프로젝트 (도네이션 → 하루 더 마켓 / 굿즈 마켓) */
.photo-pesta-main .fp-sp-subs{
  margin-top: 28px; display: flex; flex-direction: column; gap: 16px;
}
.photo-pesta-main .fp-sp-sub{
  background: #f6f6f4; border-left: 2px solid #029570; padding: 24px 26px;
}
.photo-pesta-main .fp-sp-sub h4{
  margin: 0 0 10px; font-family: inherit; font-weight: 600; font-size: 18px;
  letter-spacing: -0.005em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .fp-sp-sub p{
  margin: 0; font-size: 14px; line-height: 1.75; color: var(--ink-2); text-wrap: pretty;
}

/* ============ SECTION: Photo Event (인증샷 이벤트) — #edede9 챕터 ============ */
.photo-pesta-main .fp-event{ background: #edede9; padding: 92px 0; }
.photo-pesta-main .fp-event-card{
  display: grid; grid-template-columns: 300px 1fr; gap: 56px; align-items: start;
  border-top: 1px solid #dad7cf; padding-top: 48px;
}
.photo-pesta-main .ev-media img{ width: 100%; height: auto; display: block; }
.photo-pesta-main .ev-body{ min-width: 0; }
.photo-pesta-main .ev-lead{
  margin: 0 0 28px; font-family: inherit; font-weight: 500; font-size: 34px;
  line-height: 1.4; letter-spacing: -0.01em; color: var(--ink); word-break: keep-all;
}
.photo-pesta-main .ev-steps{
  list-style: none; margin: 0; padding: 0; border-top: 1px solid #dad7cf;
}
.photo-pesta-main .ev-steps li{
  display: grid; grid-template-columns: 110px 1fr; gap: 20px;
  padding: 18px 0; border-bottom: 1px solid #dad7cf; align-items: baseline;
}
.photo-pesta-main .ev-k{
  font-weight: 600; font-size: 13.5px; color: var(--ink); letter-spacing: -0.005em;
}
.photo-pesta-main .ev-v{ font-size: 15px; line-height: 1.6; color: var(--ink-2); }
.photo-pesta-main .ev-v b{ color: var(--ink); font-weight: 600; }
.photo-pesta-main .ev-v a{
  color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px;
}
.photo-pesta-main .ev-reward{
  margin: 24px 0 0; font-size: 15.5px; font-weight: 500; color: var(--ink); line-height: 1.6;
}
.photo-pesta-main a.ev-btn{ margin-top: 24px; }

/* ---------- responsive ---------- */
@media (max-width: 900px){
  .photo-pesta-main .fp-se{ grid-template-columns: 1fr; gap: 22px; padding: 36px 0; }
  .photo-pesta-main .fp-sp{ grid-template-columns: 1fr; gap: 22px; padding: 36px 0; }
  .photo-pesta-main .fp-event-card{ grid-template-columns: 1fr; gap: 32px; }
  .photo-pesta-main .ev-media{ max-width: 280px; }
  .photo-pesta-main .fp-section-head{ margin-bottom: 32px; }
  .photo-pesta-main .fp-main-grid{ grid-template-columns: 1fr; column-gap: 0; }
  .photo-pesta-main .fp-main-grid .fp-main-prog + .fp-main-prog{ margin-top: 44px; padding-top: 44px; border-top: 1px solid #dad7cf; }
  .photo-pesta-main .fp-main-grid .fp-main-prog + .fp-main-prog::before{ display: none; }
  .photo-pesta-main .fp-sub-grid{ grid-template-columns: 1fr; }
  .photo-pesta-main .fp-award-2col{ grid-template-columns: 1fr; row-gap: 40px; }
  .photo-pesta-main .fp-award-2col .fp-award + .fp-award::before{ display: none; }
}
@media (max-width: 640px){
  .photo-pesta-main .fp-work-gallery{ grid-template-columns: 1fr; }
  .photo-pesta-main .fp-intro-info{ grid-template-columns: 1fr; }
  .photo-pesta-main .fp-juror{ grid-template-columns: 84px 1fr; column-gap: 18px; grid-template-areas: "photo body" "bio bio"; padding: 24px 0; }
  .photo-pesta-main .fp-juror .j-photo{ width: 84px; }
}
@media (max-width: 640px){
  .photo-pesta-main{ font-size: 15px; }
  .photo-pesta-main .fp-wrap{ padding: 0 20px; }

  .photo-pesta-main .fp-tabs{ top: 49px !important; }   /* GNB mobile */
  .photo-pesta-main .fp-tabs-inner{ padding: 0 16px; }
  .photo-pesta-main .fp-tab{ padding: 14px 14px; font-size: 13px; }
  .photo-pesta-main .fp-tab .en{ display: none; }

  .photo-pesta-main .fp-special{ padding: 60px 0; }
  .photo-pesta-main .fp-sproject{ padding: 60px 0; }
  .photo-pesta-main .fp-event{ padding: 60px 0; }
  .photo-pesta-main .ev-lead{ font-size: 21px; }
  .photo-pesta-main .ev-steps li{ grid-template-columns: 1fr; gap: 4px; padding: 14px 0; }
  .photo-pesta-main .fp-sp-sub{ padding: 20px 20px; }
  .photo-pesta-main .fp-intro{ padding: 56px 0; }
  .photo-pesta-main .fp-intro h1{ font-size: 24px; }
  .photo-pesta-main .fp-intro h2{ font-size: 13px; margin-bottom: 26px; }
  .photo-pesta-main .fp-intro .lead{ font-size: 18px; }
  .photo-pesta-main .fp-intro p{ font-size: 14.5px; }
  .photo-pesta-main .fp-section-head h2{ font-size: 24px; }

  .photo-pesta-main .fp-program{ padding: 56px 0; }
  .photo-pesta-main .mp-speaker{ grid-template-columns: 110px 1fr; column-gap: 18px; grid-template-areas: "photo who" "bio bio"; }

  /* 좁은 화면에선 일시/장소 옆 25% 버튼이 비좁아 → 다시 세로 스택 + 풀폭 */
  .photo-pesta-main .mp-info,
  .photo-pesta-main .fp-sub-prog .sub-foot{ flex-direction: column; align-items: stretch; gap: 14px; }
  .photo-pesta-main a.mp-btn,
  .photo-pesta-main a.sub-btn{ flex: 0 0 auto; width: 100%; padding: 13px 18px; }
}
