@charset "UTF-8";
/* =========================================================
   upcoming.html 전용 스타일 (강남 UPCOMING)
   - 공통 토큰·컴포넌트는 style.css / sub.css 그대로 사용
   - 여기에는 이 페이지에만 쓰는 조정만 둔다
   ========================================================= */

/* (카드 배지 폭 보정은 sub.css 공통 규칙으로 옮김) */
/* 히어로 사진 위치 태그: 하트 장식과 겹치지 않도록 위쪽에 */
.sub-hero__media .frame { position: relative; }
.frame__tag--top { top: 14px; bottom: auto; }

/* ---------- 서브 히어로: 상태별 바로 보기 칩 ---------- */
.up-jump .sub-hero__chip {
  gap: 10px; padding: 0 14px 0 6px; min-height: 44px;
  transition: background-color .2s, border-color .2s;
}
.up-jump .sub-hero__chip:hover { background: rgba(255, 255, 255, .1); border-color: #fff; }
.up-jump__n { font-variant-numeric: tabular-nums; }

/* ---------- 01. 이달의 행사: 카드 커버에 메인 그래픽 포스터 재사용 ----------
   카드 폭에 맞춰 포스터 글자가 함께 줄도록 컨테이너 단위(cqi)를 쓴다. */
.ev-grid .card__media { aspect-ratio: 4 / 3; container-type: inline-size; }
.ev-grid .card__media > img { object-position: 38% 50%; }
.ev-grid .poster { padding: 6cqi; transition: transform .5s var(--ease); }
.ev-grid .card:hover .poster { transform: scale(1.04); }

.ev-grid .poster--unique .poster__kicker { font-size: max(12px, 3.3cqi); }
.ev-grid .poster--unique .poster__big { margin-top: 3cqi; font-size: 13.5cqi; }
.ev-grid .poster--unique .poster__year { top: 6cqi; right: 6cqi; font-size: max(11px, 3.2cqi); }
.ev-grid .poster--unique::before { width: 38cqi; height: 38cqi; right: -9cqi; top: 34%; }
.ev-grid .poster__band { padding: 3cqi 6cqi 3.4cqi; gap: 1cqi 3cqi; font-size: max(12px, 3.2cqi); }

.ev-grid .poster--festival .poster__tag { top: 6cqi; left: 6cqi; font-size: max(11px, 2.8cqi); }
.ev-grid .poster--festival .poster__big { font-size: 11.5cqi; }
.ev-grid .poster--festival .poster__year { margin-top: 2cqi; font-size: max(11px, 3.2cqi); }

.ev-grid .poster--picnic .poster__big { font-size: 12cqi; }
.ev-grid .poster--picnic .poster__sun { top: 6cqi; right: 6cqi; width: 34%; }
.ev-grid .poster--picnic .poster__note { top: 7cqi; left: 6cqi; font-size: 6cqi; }

.ev-grid .poster--design .poster__small { font-size: max(12px, 3.6cqi); }
.ev-grid .poster--design .poster__big { font-size: 14cqi; }

.ev-grid .poster--art .poster__big { font-size: 12cqi; }
.ev-grid .poster--art .poster__shape--circle { width: 40%; top: 8%; left: 6%; }
.ev-grid .poster--art .poster__shape--square { width: 26%; top: 12%; right: 12%; }
.ev-grid .poster--art .poster__shape--arch { width: 30%; top: 30%; left: 44%; }

.ev-grid .poster__sticker { width: 68px; height: 68px; font-size: 11px; }

/* ---------- 02. 2026 강남유닉투어 ---------- */
.ut-visual { container-type: inline-size; background: var(--mint); }
.ut-visual .poster { padding: 7cqi; }
.ut-visual .poster--unique .poster__kicker { font-size: max(13px, 2.8cqi); }
.ut-visual .poster--unique .poster__big { margin-top: 3cqi; font-size: 15cqi; }
.ut-visual .poster--unique .poster__year { top: 7cqi; right: 7cqi; font-size: max(12px, 2.6cqi); }
.ut-visual .poster--unique::before { width: 40cqi; height: 40cqi; right: -8cqi; top: 30%; }
.ut-visual .poster__band { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 3.4cqi 7cqi 3.8cqi; gap: 1.2cqi 4cqi; font-size: max(12px, 2.7cqi); }
@media (min-width: 1280px) {
  .ut-visual .poster__band { grid-template-columns: repeat(4, auto); justify-content: start; }
}

.ut-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 14px; }
.ut-kicker__date { color: var(--pink-aa); font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }

/* 프로그램 카드: 아이콘 + 영문 이름 + 한글 이름 */
.ut-programs .feature { position: relative; overflow: hidden; }
.ut-programs .feature::after {
  content: ""; position: absolute; right: -28px; top: -28px; width: 84px; height: 84px; border-radius: 50%;
  background: var(--mint-soft); z-index: 0;
}
.ut-programs .feature > * { position: relative; z-index: 1; }
.ut-programs__en { margin-top: 18px; color: var(--blue); font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ut-programs__en + .feature__title { margin-top: 2px; }

/* ---------- 03. FUN&FUN강남 ---------- */
#funfun { padding-bottom: 0; overflow: hidden; }
#funfun .split__media img { object-position: 38% 50%; }
.fun-sticker { width: 84px; height: 84px; right: 18px; top: 18px; font-size: 13px; z-index: 1; }
@media (min-width: 1280px) { .fun-sticker { width: 108px; height: 108px; font-size: 16px; right: 24px; top: 24px; } }

.fun-tips { display: grid; gap: 24px; }
.fun-tips__head .sub-title { margin-bottom: 8px; }
.fun-tips__lead { color: var(--gray); font-size: 16px; }
.fun-tips .check-list a { color: var(--blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fun-tips .check-list li {
  padding: 16px 18px 16px 52px; border-radius: var(--radius); background: #fff;
}
.fun-tips .check-list li::before { left: 16px; top: calc(16px + .15em); }
.fun-tips .check-list li::after { left: 24px; top: calc(16px + .15em + 6px); }
.fun-tips__note { margin-top: 4px; }
@media (min-width: 768px) {
  .fun-tips .check-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1280px) {
  .fun-tips { grid-template-columns: 340px minmax(0, 1fr); column-gap: 72px; align-items: start; }
  .fun-tips__note { grid-column: 2; }
}

/* 광장 관객 사진 띠 (섹션 아래쪽 꽉 차게) */
.fun-strip { position: relative; margin-top: 56px; height: 140px; }
.fun-strip img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.fun-strip::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to bottom, #F6F7F8 0%, rgba(246, 247, 248, 0) 35%);
}
@media (min-width: 768px) { .fun-strip { margin-top: 72px; height: 180px; } }
@media (min-width: 1280px) { .fun-strip { height: 220px; } }

/* ---------- 04. 지난 행사 ---------- */
.past-note { margin-top: 32px; }
@media (min-width: 768px) { .past-note { margin-top: 40px; } }
/* 앵커 위치 보정은 sub.css의 html scroll-padding-top이 처리 (scroll-margin을 더하면 두 배가 됨) */
.past-card:target { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue); }
.past-card__about { margin-top: 4px; padding-top: 12px; border-top: 1px dashed var(--line-strong); color: var(--ink); font-size: 15px; }
.past-card .card__foot { padding-top: 14px; }
.past-card__link {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
  color: var(--blue); font-size: 15px; font-weight: 700;
  text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; text-decoration-thickness: 2px;
  transition: text-decoration-color .2s;
}
.past-card__link:hover { text-decoration-color: currentColor; }
.past-card__link .ico { transition: transform .2s var(--ease); }
.past-card__link:hover .ico { transform: translateX(4px); }

/* 메인 포스터와 같은 모티프의 그래픽 커버 */
.past-art--picnic .art__small { position: absolute; top: 18px; left: 22px; font-size: 22px; letter-spacing: .3em; }
.past-art--picnic::after {
  content: ""; position: absolute; left: -10%; right: -10%; bottom: -30%; height: 60%;
  border-radius: 50% 50% 0 0; background: rgba(255, 255, 255, .25);
}
.past-art--picnic .art__word { z-index: 1; }
.past-art--design {
  background-image:
    linear-gradient(rgba(255, 255, 255, .09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .09) 1px, transparent 1px);
  background-size: 100% 28px, 28px 100%;
}
.past-art--design .art__word { color: transparent; -webkit-text-stroke: 1.5px var(--mint); }
.past-art--art .poster__shape--circle { width: 42%; top: 8%; left: 8%; }
.past-art--art .poster__shape--square { width: 26%; top: 14%; right: 12%; }
.past-art--art .poster__shape--arch { width: 30%; top: 36%; left: 42%; }
