/*
 * 시즌 캠페인 스타일 (2026-10-13 할로윈부터).
 *
 * ★켜고 끄는 것은 `<html data-season="…">` 하나다. 미들웨어가 서버 시각으로 달고, 열린 탭은 종료 시각에 head 스크립트가 뗀다.
 * ★기존 화면의 글꼴·배치·색은 그대로 두고, 작은 배지·카드 배경·히어로 한 장면만 바꾼다. 사이트 전체를 다시 칠하지 않는다.
 * ★다음 시즌을 더할 때는 아래 「켜고 끄기」 두 줄을 그 시즌 id 로 한 벌 더 적는다.
 */

/* ── 켜고 끄기 ─────────────────────────────────────────── */
html:not([data-season="halloween-2026"]) [data-season-only="halloween-2026"] { display: none !important; }
html[data-season="halloween-2026"] [data-season-off="halloween-2026"] { display: none !important; }

/* ── 공통 ─────────────────────────────────────────────── */
.season-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.season-jack { flex: none; color: #e8772e; display: inline-block; vertical-align: -0.15em; }
.season-badge {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 10px 3px 7px; border-radius: 999px;
  background: #fbeadb; color: #8a4a14;
  font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: -0.01em; white-space: nowrap;
}
.season-chip {
  display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 999px;
  background: rgba(255, 255, 255, 0.16); color: inherit;
  font-size: 12px; font-weight: 600; line-height: 1.5; white-space: nowrap;
}
.season-chip--teaser { background: #f3e6d6; color: #6b4a2a; white-space: normal; }
.season-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, 0.32); border-radius: 8px;
  background: #241f1f; color: #fff; font: inherit; font-size: 15px; font-weight: 800; letter-spacing: -0.02em;
  cursor: pointer; text-decoration: none; transition: background-color 0.2s, color 0.2s;
}
.season-btn:hover { background: #46312c; }
.season-btn:focus-visible { outline: 3px solid #e8772e; outline-offset: 2px; }
.season-btn--primary { background: #fff; color: #241f1f; border-color: #fff; }
.season-btn--primary:hover { background: #f6f1ea; color: #241f1f; }
.season-btn--pending { cursor: default; background: transparent; color: #6b5a50; border: 1px dashed #b9a99c; }
.season-btn--pending:hover { background: transparent; }

/* ── 홈 히어로 ─────────────────────────────────────────── */
/*
 * ★시즌 동안 히어로 왼쪽의 주인공은 할인이다(2026-10-14 사장님 지시). 제목(h1)은 지우지 않고 작은 브랜드 줄로,
 *   제품 정의 한 줄은 숨기고, 그 아래 할인율 두 칸을 크게 둔다. 오른쪽(시 문구)은 비워 제품 사진이 보이게 한다.
 */
.p_section_0 .bg_img .season-hero-media { position: absolute; inset: 0; display: block; }
.p_section_0 .bg_img .season-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 45% 50%; display: block; }
/* 모델별 배경 — PRO+ · MINI 장을 고르면 기본 그림 위로 서서히 겹친다. */
.p_section_0 .bg_img .season-hero-media--model { opacity: 0; transition: opacity 0.45s ease; }
.p_section_0 .bg_img .season-hero-media--model.is-active { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .p_section_0 .bg_img .season-hero-media--model { transition: none; } }
/* 가로 그림은 왼쪽 커튼을 이어 붙여 넓혔다(제품이 그림의 63%). 45% 로 잘라 제품을 화면 오른쪽(약 70%)에 둔다 —
   할인 기둥(720px)이 제품을 덮지 않게(2026-10-15). 세로(모바일) 그림은 가운데. */
@media screen and (max-width: 767px) { .p_section_0 .bg_img .season-hero-media img { object-position: 50% 50%; } }
/*
 * ★히어로 네 장(2026-10-15 사장님 「원래 히어로를 4번 슬라이드로」) — `.p_section_0[data-hero-slide]` 하나로 갈린다.
 *   할로윈 장(pro·proPlus·mini): 제목은 작은 브랜드 줄, 정의 문장·기존 버튼 줄(제품구매·단기렌탈·웹 데모)·오른쪽 문구·평소 사진은 숨김.
 *   brand 장: 평소 히어로 그대로 — 할인 패널·할로윈 버튼·시즌 배경을 숨기고 원래 것을 되살린다.
 */
html[data-season="halloween-2026"] .p_section_0:not([data-hero-slide="brand"]) h1 { font-size: 26px; letter-spacing: -0.02em; line-height: 1.3; margin: 0 0 18px; }
html[data-season="halloween-2026"] .p_section_0:not([data-hero-slide="brand"]) h1 em { display: inline; font-size: 0.62em; margin-left: 0.5em; opacity: 0.8; }
html[data-season="halloween-2026"][lang="ko"] .p_section_0:not([data-hero-slide="brand"]) h1,
html[data-season="halloween-2026"][lang="ko"] .p_section_0:not([data-hero-slide="brand"]) h1 em { margin-left: 0; }
html[data-season="halloween-2026"][lang="ko"] .p_section_0:not([data-hero-slide="brand"]) h1 em { margin-left: 0.5em; }
html[data-season="halloween-2026"] .p_section_0:not([data-hero-slide="brand"]) .p_definition { display: none; }
html[data-season="halloween-2026"] .p_section_0:not([data-hero-slide="brand"]) .naver_link { display: none; }
html[data-season="halloween-2026"] .p_section_0[data-hero-slide="brand"] .season-hero-lead,
html[data-season="halloween-2026"] .p_section_0[data-hero-slide="brand"] .season-hero-links { display: none; }
/* brand 장: 위 「켜고 끄기」가 숨긴 평소 사진·오른쪽 문구를 되살린다(둘 다 작성자 display 가 없어 revert 가 원래 모습이다). */
html[data-season="halloween-2026"] .p_section_0[data-hero-slide="brand"] [data-season-off="halloween-2026"] { display: revert !important; }
.p_section_0 .bg_img picture.season-hero-media:not(.season-hero-media--model) { transition: opacity 0.45s ease; }
html[data-season="halloween-2026"] .p_section_0[data-hero-slide="brand"] .bg_img .season-hero-media { opacity: 0; pointer-events: none; }

/*
 * ★한 기둥(2026-10-15 사장님 「균형이 깨졌다 — 가로폭 늘리고 버튼 크기 맞추기」): 탭 줄 · 할인 패널 · 아래 버튼 줄의 폭을
 *   같게(--season-col) 맞추고, 버튼은 모두 같은 높이. 패널 안은 왼쪽 큰 할인율, 오른쪽 정가·판매가·자세히 보기 2단.
 */
.p_section_0 { --season-col: 720px; --season-btn-h: 54px; }
/* 왼쪽 칸(.p_text_wrap 의 첫 div)은 원래 내용 폭만큼 줄어드는 칸이라, 할로윈 장에서는 기둥 폭을 직접 준다. */
html[data-season="halloween-2026"] .p_section_0:not([data-hero-slide="brand"]) .p_text_wrap > div:first-child { width: min(var(--season-col), 100%); flex: none; }
.season-hero-tabs, .season-hero-panel, .season-hero-links { width: 100%; box-sizing: border-box; }
.season-hero-lead { color: #fff; margin: 0; word-break: keep-all; }
html:not([lang="ko"]) .season-hero-lead { word-break: normal; }
/* 할인 패널 — 반투명 어두운 판(사장님 지시 2026-10-15 「반투명 프레임에 넣어 가독성」). */
.season-hero-panel {
  display: block; padding: 24px 32px 30px;
  border-radius: 22px; background: rgba(14, 10, 9, 0.58); border: 1px solid rgba(255, 255, 255, 0.12);
  -webkit-backdrop-filter: blur(10px) saturate(120%); backdrop-filter: blur(10px) saturate(120%);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
}
.season-hero-lead__badge {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 7px 14px 7px 10px;
  border-radius: 999px; background: rgba(232, 119, 46, 0.18); border: 1px solid rgba(255, 190, 130, 0.45);
  color: #ffd2a6; font-size: 15px; font-weight: 700; letter-spacing: -0.01em;
}
/* 탭 — 패널과 같은 폭, 네 칸 같은 너비. */
.season-hero-tabs {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin: 0 0 20px; padding: 5px; border-radius: 999px;
  background: rgba(14, 10, 9, 0.55); border: 1px solid rgba(255, 255, 255, 0.14);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.season-hero-tabs [role="tab"] {
  padding: 11px 6px; border: 0; border-radius: 999px; background: transparent; color: rgba(255, 255, 255, 0.78);
  font: inherit; font-size: 15px; font-weight: 800; text-align: center; white-space: nowrap; cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}
.season-hero-tabs [role="tab"]:hover { color: #fff; }
.season-hero-tabs [role="tab"][aria-selected="true"] { background: #fff; color: #1b1412; }
.season-hero-tabs [role="tab"]:focus-visible { outline: 2px solid rgba(255, 210, 166, 0.85); outline-offset: 1px; }
/* 세 장(PRO · PRO+ · MINI)을 같은 칸에 겹친다 — 넘겨도 패널 높이가 그대로라 아래 버튼 줄이 흔들리지 않는다. */
.season-hero-slides { display: grid; }
.season-hero-slide {
  grid-area: 1 / 1; visibility: hidden; opacity: 0; transition: opacity 0.25s ease;
  display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "model model" "rate price" "more more";
  column-gap: 40px; align-items: end;
}
.season-hero-slide.is-active { visibility: visible; opacity: 1; }
@media (prefers-reduced-motion: reduce) { .season-hero-slide { transition: none; } }
.season-hero-lead__model { grid-area: model; display: block; margin: 0 0 10px; font-size: 17px; font-weight: 700; letter-spacing: 0.02em; opacity: 0.9; }
/* 할인율은 주황 그라데이션으로 강조(사장님 2026-10-15). 같은 주황이던 「자세히 보기」는 흰 버튼으로 바꿔 색이 겹치지 않게 했다. */
.season-hero-lead__rate {
  grid-area: rate; display: flex; align-items: baseline; gap: 10px; margin: 0; font-size: clamp(80px, 7.6vw, 120px); font-weight: 800;
  line-height: 0.9; letter-spacing: -0.045em; padding-bottom: 0.04em;
  background: linear-gradient(180deg, #ffc27a 0%, #ff9a3c 45%, #e8692a 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 6px 22px rgba(0, 0, 0, 0.4));
}
.season-hero-lead__rate span { font-size: 0.28em; font-weight: 700; letter-spacing: -0.02em; }
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .season-hero-lead__rate { color: #ff9a3c; -webkit-text-fill-color: currentColor; background: none; }
}
/* 가격은 할인율과 같은 급(사장님 2026-10-15) — 할인율 옆에 큰 판매가, 그 위에 정가 취소선. 「자세히 보기」는 맨 아래 한 줄. */
.season-hero-lead__offer { display: contents; }
.season-hero-lead__price { grid-area: price; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin: 0; padding-bottom: 0.08em; font-size: 20px; min-width: 0; }
.season-hero-lead__price > span[aria-hidden] { display: none; }
.season-hero-lead__price s { opacity: 0.6; font-weight: 600; }
.season-hero-lead__price b { font-size: clamp(40px, 3.9vw, 58px); font-weight: 800; letter-spacing: -0.035em; line-height: 1; text-shadow: 0 6px 30px rgba(0, 0, 0, 0.35); }
/* 버튼은 모두 같은 높이(--season-btn-h). 「○○ 자세히 보기」는 주황 채움, 아래 두 개는 어두운 반투명. */
.season-hero-lead__more, .season-hero-links__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: var(--season-btn-h);
  box-sizing: border-box; padding: 0 20px; border-radius: 999px; font: inherit; font-size: 16px; font-weight: 800; line-height: 1.2;
  text-decoration: none; white-space: nowrap; cursor: pointer;
}
.season-hero-lead__more {
  grid-area: more; margin-top: 24px; background: #fff; color: #1b1412;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25); transition: background-color 0.2s, transform 0.2s;
}
.season-hero-lead__more:hover { background: #f6efe7; transform: translateY(-1px); }
.season-hero-lead__more:focus-visible { outline: 3px solid #ffd2a6; outline-offset: 3px; }

/* 「할로윈 혜택 보기」·「앱 할로윈 소식」 — 패널 폭을 반씩 나눈 같은 크기 버튼(사장님 2026-10-15). */
.season-hero-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0 0; }
.season-hero-links__btn {
  border: 1px solid rgba(255, 255, 255, 0.35); background: rgba(14, 10, 9, 0.55); color: #fff;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: background-color 0.2s, border-color 0.2s;
}
.season-hero-links__btn:hover { background: rgba(14, 10, 9, 0.75); border-color: rgba(255, 210, 166, 0.7); }
.season-hero-links__btn:focus-visible { outline: 3px solid #e8772e; outline-offset: 3px; }

@media screen and (max-width: 1366px) {
  .p_section_0 { --season-col: 640px; }
}
@media screen and (max-width: 1024px) {
  html[data-season="halloween-2026"] .p_section_0:not([data-hero-slide="brand"]) h1 { font-size: 22px; }
  .p_section_0 { --season-col: 600px; --season-btn-h: 50px; }
}
@media screen and (max-width: 601px) {
  html[data-season="halloween-2026"] .p_section_0:not([data-hero-slide="brand"]) h1 { font-size: 5vw; margin-bottom: 4vw; }
  .p_section_0 { --season-col: 100%; --season-btn-h: 12.4vw; }
  .season-hero-panel { padding: 4vw 4.4vw 4.6vw; border-radius: 4.4vw; }
  .season-hero-lead__badge { font-size: 3.5vw; margin-bottom: 3.6vw; padding: 1.6vw 3.2vw 1.6vw 2.4vw; }
  .season-hero-tabs { margin-bottom: 4vw; padding: 1.2vw; }
  .season-hero-tabs [role="tab"] { padding: 2.4vw 1vw; font-size: 3.5vw; }
  .season-hero-slide { grid-template-columns: minmax(0, 1fr); grid-template-areas: "model" "rate" "price" "more"; }
  .season-hero-lead__model { font-size: 3.8vw; margin-bottom: 1.6vw; }
  .season-hero-lead__rate { font-size: 19vw; gap: 1.2vw; margin-bottom: 2.4vw; }
  .season-hero-lead__price { flex-direction: row; align-items: baseline; gap: 2vw; font-size: 3.8vw; }
  .season-hero-lead__price > span[aria-hidden] { display: inline; }
  .season-hero-lead__price b { font-size: 7.4vw; }
  .season-hero-lead__more, .season-hero-links__btn { font-size: 3.8vw; padding: 0 2vw; }
  .season-hero-lead__more { margin-top: 4.4vw; }
  .season-hero-links { gap: 2.4vw; margin-top: 3.2vw; }
}

/* ── 제품 목록 카드 ────────────────────────────────────── */
/* 배지는 제품명 바로 위에 둔다 — 첫 카드 윗부분은 고정 머리글(로고·메뉴)과 겹친다. */
.p_section_1 .product_list .season-media { position: absolute; inset: 0; z-index: 1; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
.p_section_1 .product_list .season-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
html[data-season] .p_section_1 .product_list .product_label { z-index: 2; transition: color 0.3s ease; }
.p_section_1 .product_list .season-card-badge { position: absolute; z-index: 2; bottom: 128px; inset-inline-start: 64px; }
html[data-season="halloween-2026"] .p_section_1 .product_list a:is(:hover, :focus-visible) .season-media { opacity: 1; }
html[data-season="halloween-2026"] .p_section_1 .product_list a:is(:hover, :focus-visible):has(.season-media) img:nth-child(2) { opacity: 0; }
html[data-season="halloween-2026"] .p_section_1 .product_list a:is(:hover, :focus-visible):has(.season-media) .product_label { color: #fff; text-shadow: 0 2px 14px rgba(0, 0, 0, 0.65); }
@media (hover: none) {
  /* 터치: 시즌 배경이 기본이다. 한 번 탭하면 카드 링크가 바로 동작한다(두 번 탭 없음). */
  html[data-season="halloween-2026"] .p_section_1 .product_list .season-media { opacity: 1; }
  html[data-season="halloween-2026"] .p_section_1 .product_list a:has(.season-media) .product_label { color: #fff; text-shadow: 0 2px 14px rgba(0, 0, 0, 0.65); }
}
@media screen and (max-width: 1024px) {
  .p_section_1 .product_list .season-card-badge { bottom: calc(9% + 6.4vw); inset-inline-start: 10%; }
}
@media screen and (max-width: 601px) {
  .p_section_1 .product_list .season-card-badge { bottom: 19vw; inset-inline-start: 4.4444vw; }
}

/* ── 앱 다운로드 배지 — 푸터와 같은 그림. 구글 webp 는 사방 여백이 있어 음수 여백으로 아트워크 높이를 40px 에 맞춘다(common.css 와 같은 계산). ── */
.season-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.season-badges a { display: inline-flex; border-radius: 8px; }
.season-badges a:focus-visible { outline: 3px solid #e8772e; outline-offset: 3px; }
.season-badges img { display: block; width: auto; }
.season-badges__apple img { height: 40px; }
.season-badges__google img { height: 59.52px; margin: -9.76px; }
.season-app__stores { margin: 18px 0 0; }
.season-slide__badges { margin-top: 4px; }

/* ── 가격 표 · 주문 요약 — 기간 안내 줄 앞의 작은 잭오랜턴 ── */
.season-inline-jack { display: inline-flex; vertical-align: -0.15em; margin-inline-end: 4px; }

/* ── 앱 소개 구역(#halloween-preview) ─────────────────── */
.season-app {
  position: relative; z-index: 100; background: #f6f1ea; color: #241f1f;
  padding: 96px 5vw 104px; word-break: keep-all;
}
html:not([lang="ko"]) .season-app { word-break: normal; overflow-wrap: anywhere; }
.season-app__inner { max-width: 1120px; margin: 0 auto; }
.season-app, .season-app__block { scroll-margin-top: 110px; }
.season-app__eyebrow { font-size: 14px; font-weight: 700; color: #8a4a14; letter-spacing: 0.02em; margin: 0 0 12px; }
.season-app__title { font-size: 44px; font-weight: 800; line-height: 1.2; letter-spacing: -0.04em; margin: 0 0 18px; }
.season-app__body { font-size: 19px; line-height: 1.6; margin: 0 0 12px; max-width: 760px; }
.season-app__conditions { font-size: 14px; line-height: 1.7; color: #5d4f45; margin: 0 0 14px; max-width: 760px; }
.season-app__stores { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.season-app__block { margin-top: 56px; }
.season-app__block h3 { font-size: 24px; font-weight: 800; letter-spacing: -0.03em; margin: 0 0 10px; }
.season-app__note { font-size: 13px; line-height: 1.7; color: #6b5a50; margin: 0 0 16px; max-width: 760px; }
.season-app__note a { color: #46312c; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.season-app__frames { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.season-app__frames li { aspect-ratio: 1 / 1; border-radius: 10px; overflow: hidden; background: #2b231e; }
.season-app__frames img { width: 100%; height: 100%; object-fit: contain; display: block; }
/* AI 필터 — 앱 필터 선택 화면의 샘플 그림 + 이름 카드, 5개씩 두 줄(사장님 지시 2026-10-15). 모바일은 프레임 줄처럼 옆으로 넘긴다. */
.season-app__filters { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0 0 12px; padding: 0; list-style: none; }
.season-app__filters li { display: flex; flex-direction: column; border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid #e4d8cc; }
.season-app__filters img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.season-app__filters span { padding: 10px 8px 12px; font-size: 14px; font-weight: 700; line-height: 1.35; text-align: center; word-break: keep-all; }
/* 할로윈 한정 이용권 — 앱 구매 화면 카드 그대로(스토어 탭 + 카드 두 장). */
.season-app__pass { max-width: 920px; }
.season-pass__lead { margin: 0 0 14px; font-size: 15px; font-weight: 700; color: #6b4a2a; }
.season-pass__stores { display: inline-flex; gap: 4px; margin: 0 0 16px; padding: 4px; border-radius: 999px; background: #efe5da; }
.season-pass__stores [role="tab"] { padding: 8px 18px; border: 0; border-radius: 999px; background: transparent; color: #6b5a50; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }
.season-pass__stores [role="tab"][aria-selected="true"] { background: #241f1f; color: #fff; }
.season-pass__stores [role="tab"]:focus-visible { outline: 3px solid #e8772e; outline-offset: 2px; }
.season-pass__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0 0 14px; }
.season-pass__grid[hidden] { display: none; }
.season-pass-card { display: flex; flex-direction: column; padding: 22px 22px 18px; border-radius: 16px; background: #fff; border: 1px solid #e4d8cc; }
.season-pass-card--pro { border: 2px solid #e8772e; box-shadow: 0 10px 28px rgba(232, 119, 46, 0.14); }
.season-pass-card__title { margin: 0 0 10px; font-size: 17px; font-weight: 800; color: #241f1f; }
.season-pass-card__price { margin: 0 0 4px; color: #241f1f; }
.season-pass-card__price b { font-size: 30px; font-weight: 800; letter-spacing: -0.02em; }
.season-pass-card__price span { font-size: 15px; font-weight: 700; color: #6b5a50; }
.season-pass-card__regular { margin: 0 0 10px; font-size: 13px; color: #8a7a70; }
.season-pass-card__regular s { margin-inline-start: 4px; }
.season-pass-card__discount { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; }
.season-pass-card__percent { padding: 3px 10px; border-radius: 999px; background: #e8772e; color: #fff; font-size: 13px; font-weight: 800; }
.season-pass-card__saved { font-size: 14px; font-weight: 800; color: #b5561a; }
.season-pass-card__features { margin: 0 0 12px; padding: 0; list-style: none; }
.season-pass-card__features li { position: relative; padding-inline-start: 22px; margin: 0 0 6px; font-size: 14px; line-height: 1.5; color: #3b302b; }
.season-pass-card__features li::before { content: '✓'; position: absolute; inset-inline-start: 0; top: 0; color: #e8772e; font-weight: 800; }
.season-pass-card__term { margin: auto 0 0; padding-top: 10px; border-top: 1px solid #efe5da; font-size: 12px; color: #8a7a70; }
.season-app__faq { max-width: 760px; border-top: 1px solid #e0d4c8; margin-bottom: 14px; }
.season-app__faq details { border-bottom: 1px solid #e0d4c8; }
.season-app__faq summary { cursor: pointer; padding: 14px 4px; font-size: 16px; font-weight: 700; list-style-position: inside; }
.season-app__faq summary:focus-visible { outline: 3px solid #e8772e; outline-offset: 2px; }
.season-app__faq details p { margin: 0 4px 16px; font-size: 15px; line-height: 1.7; color: #4a3f38; }
@media screen and (max-width: 1024px) {
  .season-app__frames { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media screen and (max-width: 601px) {
  .season-app { padding: 16vw 4.4444vw 18vw; }
  .season-app__title { font-size: 7.2vw; }
  .season-app__body { font-size: 4.2vw; }
  .season-app__block { margin-top: 12vw; }
  .season-app__block h3 { font-size: 5.4vw; }
  .season-app__frames { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 8px; padding-bottom: 6px; }
  .season-app__frames li { flex: 0 0 38vw; scroll-snap-align: start; }
  .season-app__filters { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 8px; padding-bottom: 6px; }
  .season-app__filters li { flex: 0 0 38vw; scroll-snap-align: start; }
  .season-app__filters span { font-size: 3.4vw; }
  .season-pass__grid { grid-template-columns: 1fr; }
  .season-pass-card { padding: 5vw 5vw 4vw; }
  .season-pass-card__price b { font-size: 7.4vw; }
}

/* ── 혜택 안내 창 ──────────────────────────────────────── */
/* ★어두운 할로윈 테마, 큰 창(사장님 지시 2026-10-15). 글자색 대비는 어두운 바탕 기준으로 맞췄다. */
.season-dialog {
  width: min(1120px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0;
  border: 1px solid rgba(255, 196, 140, 0.16); border-radius: 22px; overflow: hidden;
  background: radial-gradient(120% 90% at 100% 0%, #2a1a12 0%, #140e0c 55%, #0f0b0a 100%); color: #f4ece4;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
}
.season-dialog::backdrop { background: rgba(8, 6, 5, 0.72); }
.season-dialog__panel { position: relative; display: flex; flex-direction: column; max-height: calc(100dvh - 32px); }
.season-dialog__close {
  position: absolute; z-index: 2; top: 14px; inset-inline-end: 14px; width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 50%;
  background: rgba(255, 255, 255, 0.08); color: #f4ece4; cursor: pointer;
}
.season-dialog__close:hover { background: rgba(255, 255, 255, 0.16); }
.season-dialog__close:focus-visible, .season-dialog__step:focus-visible { outline: 3px solid #e8772e; outline-offset: 2px; }
.season-dialog__slides { overflow-y: auto; flex: 1 1 auto; }
.season-slide { display: grid; grid-template-columns: minmax(0, 440px) minmax(0, 1fr); gap: 40px; padding: 40px 48px 16px; word-break: keep-all; }
html:not([lang="ko"]) .season-slide { word-break: normal; overflow-wrap: anywhere; }
.season-slide[hidden] { display: none; }
.season-slide__media { margin: 0; align-self: start; }
.season-slide__media > img, .season-slide__blank, .season-slide__frames {
  display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: contain; border-radius: 16px; background: #0b0807;
}
.season-slide__media--icon > img { object-fit: contain; padding: 18%; box-sizing: border-box; background: radial-gradient(circle at 50% 45%, #3a2416 0%, #120c0a 70%); }
.season-slide__frames { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 6px; box-sizing: border-box; list-style: none; margin: 0; }
.season-slide__frames img { width: 100%; height: 100%; object-fit: contain; }
.season-slide__label { margin: 10px 0 0; font-size: 12px; line-height: 1.5; color: #b9aa9c; }
.season-slide__text { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding-top: 6px; padding-inline-end: 24px; }
.season-slide__eyebrow { margin: 0; padding: 6px 12px; border-radius: 999px; background: rgba(232, 119, 46, 0.16); border: 1px solid rgba(255, 178, 122, 0.35); color: #ffc596; font-size: 13px; font-weight: 700; }
.season-slide__title { font-size: 34px; font-weight: 800; line-height: 1.22; letter-spacing: -0.035em; margin: 0; color: #fff; }
.season-slide__body { font-size: 19px; line-height: 1.55; margin: 0; color: #e8ddd2; }
.season-slide__models { width: 100%; border-collapse: collapse; font-size: 16px; }
.season-slide__models th, .season-slide__models td { padding: 11px 8px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); text-align: start; white-space: nowrap; }
.season-slide__models th { font-weight: 700; color: #f4ece4; white-space: normal; }
.season-slide__models s { color: #9c8f84; }
.season-slide__models strong { font-size: 19px; font-weight: 800; color: #fff; }
.season-slide__rate { display: inline-block; padding: 3px 9px; border-radius: 999px; background: #e8772e; color: #1a100a; font-size: 14px; font-weight: 800; }
.season-slide__strip { width: 100%; }
.season-slide__strip-label { margin: 0 0 8px; font-size: 13px; font-weight: 700; color: #b9aa9c; }
.season-slide__strip ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.season-slide__strip li { aspect-ratio: 1 / 1; border-radius: 10px; overflow: hidden; background: #e2dcd4; }
.season-slide__strip img { width: 100%; height: 100%; object-fit: contain; display: block; }
.season-slide__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.season-slide__chips li { padding: 7px 12px; border-radius: 999px; background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.12); font-size: 14px; font-weight: 600; color: #f1e6db; }
.season-slide__tiers { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; margin: 0; padding: 0; list-style: none; }
.season-slide__tiers li { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-radius: 14px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 196, 140, 0.18); }
.season-slide__tiers strong { font-size: 20px; font-weight: 800; color: #fff; }
.season-slide__tiers span { font-size: 14px; line-height: 1.55; color: #e2d6ca; }
.season-slide__points { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.season-slide__points li { position: relative; padding-inline-start: 20px; font-size: 15px; line-height: 1.55; color: #e2d6ca; }
.season-slide__points li::before { content: ''; position: absolute; inset-inline-start: 2px; top: 0.6em; width: 8px; height: 8px; border-radius: 50%; background: #e8772e; }
.season-dialog .season-chip--teaser { background: rgba(255, 255, 255, 0.08); color: #ffd2a6; border: 1px dashed rgba(255, 196, 140, 0.4); font-size: 13px; padding: 4px 12px; }
.season-slide__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.season-slide__actions .season-btn { min-height: 48px; padding: 0 22px; font-size: 16px; }
.season-slide__actions .season-btn--primary { background: #f08a3c; border-color: #f08a3c; color: #1a100a; }
.season-slide__actions .season-btn--primary:hover { background: #ff9d52; color: #1a100a; }
.season-slide__actions .season-btn:not(.season-btn--primary) { background: transparent; border-color: rgba(255, 255, 255, 0.28); color: #f4ece4; }
.season-slide__actions .season-btn:not(.season-btn--primary):hover { background: rgba(255, 255, 255, 0.08); }
.season-dialog__nav { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 16px 16px 20px; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.season-dialog__step {
  min-width: 96px; min-height: 44px; padding: 0 18px; border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 10px;
  background: rgba(255, 255, 255, 0.04); color: #f4ece4; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer;
}
.season-dialog__step:hover:not(:disabled) { background: rgba(255, 255, 255, 0.1); }
.season-dialog__step:disabled { opacity: 0.35; cursor: default; }
.season-dialog__pos { min-width: 48px; text-align: center; font-size: 14px; font-weight: 700; color: #c9bcb0; }
@media screen and (max-width: 900px) {
  .season-slide { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 28px; padding: 32px 28px 12px; }
  .season-slide__title { font-size: 28px; }
}
@media screen and (max-width: 700px) {
  .season-slide { grid-template-columns: 1fr; gap: 16px; padding: 18px 18px 6px; }
  .season-slide__media > img, .season-slide__blank, .season-slide__frames { aspect-ratio: auto; height: 30dvh; }
  .season-slide__frames { width: auto; aspect-ratio: 1 / 1; margin: 0 auto; }
  .season-slide__text { padding-inline-end: 0; gap: 12px; }
  .season-slide__title { font-size: 23px; }
  .season-slide__body { font-size: 16px; }
  .season-slide__models { font-size: 14px; }
  .season-slide__models strong { font-size: 16px; }
  .season-slide__strip ul { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
  .season-slide__tiers { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .p_section_1 .product_list .season-media,
  html[data-season] .p_section_1 .product_list .product_label { transition: none; }
}
