/* ==========================================================================
   event — 이벤트 목록 (whaley /promotion 구도, 스카이시티 색)
   whaley 실측 1200 폭: 배너 1200×400 · 태그 36 · 카드 4열 288×460(그림 286 정사각 · 본문 172)
   근거: ../04-페이지/이벤트.md
   ========================================================================== */
:root{
  --pr-banner-h: 300px;     /* whaley 400 — 스카이시티 메인 배너(390)와 겹쳐 보이지 않게 낮춘다 */
  --pr-gap: 20px;
}
.pr-page{ display:grid; grid-template-columns:minmax(0,1fr); gap:32px; }

/* ---- 친구초대 대배너 — 밤하늘(별 · 별똥별) + 성운 + 도시 실루엣, 왼쪽 글 · 오른쪽 네트워크 장면
   장면: 가운데 SVG(나 ← 친구 · 흘러오는 코인) 위에 유리 카드 둘 — 대시보드(숫자가 올라감 · 선이 그려짐) · 실시간 알림(차례로 떠오름) */
.pr-hero{
  position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) min(600px, 46%); align-items:center;
  min-height:330px; padding:36px 0 40px 56px; border-radius:var(--r-lg);
  border:1px solid color-mix(in srgb, var(--accent-line) 28%, var(--line));
  background:linear-gradient(180deg,#0b1024 0%,#070a16 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.pr-hero__nebula{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 30% 55% at 70% 45%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%),
    radial-gradient(ellipse 35% 70% at 88% 20%, rgba(74,108,255,.35), transparent 70%),
    radial-gradient(ellipse 30% 60% at 55% 90%, rgba(150,90,255,.18), transparent 70%);
  filter:blur(8px); animation:prNeb 18s ease-in-out infinite alternate;
}
@keyframes prNeb{ to{ transform:translate(-2%,2%) scale(1.05); } }
.pr-hero__city{ position:absolute; left:0; right:0; bottom:0; width:100%; height:90px; opacity:.9;
  -webkit-mask-image:linear-gradient(to top,#000 40%,transparent); mask-image:linear-gradient(to top,#000 40%,transparent); }
.pr-win{ animation:prWin 3.4s ease-in-out infinite; }
@keyframes prWin{ 50%{ opacity:.15; } }

.pr-hero__copy{ position:relative; z-index:2; display:grid; gap:12px; justify-items:start; }
.pr-hero__kicker{ display:inline-flex; align-items:center; gap:8px; height:30px; padding:0 14px; border-radius:var(--r-full);
  background:color-mix(in srgb, var(--accent) 12%, transparent); border:1px solid color-mix(in srgb, var(--accent) 35%, transparent); color:var(--accent-fg);
  font:800 12px/1 var(--font-display); letter-spacing:.14em; }
.pr-hero__kicker i{ width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--accent); }
.pr-hero__title{ font-size:44px; font-weight:900; line-height:1.18; letter-spacing:-.02em; }
.pr-hero__title span{ background:linear-gradient(100deg,color-mix(in srgb, var(--gold) 25%, #fff),var(--gold) 45%,color-mix(in srgb, var(--gold) 80%, #e33)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.pr-hero__punch{ font-size:22px; font-weight:800; color:var(--text-sub); }
.pr-hero__punch b{ font-family:var(--font-display); font-size:34px; color:#fff; text-shadow:0 0 18px color-mix(in srgb, var(--accent) 50%, transparent); }
.pr-hero__sub{ color:var(--text-sub); font-size:var(--fs-md); word-break:keep-all; }
.pr-hero__stats{ display:flex; gap:10px; margin-top:4px; }
.pr-hero__stats li{ display:grid; gap:2px; min-width:112px; padding:10px 14px; border-radius:var(--r);
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.pr-hero__stats b{ font-size:var(--fs-lg); font-weight:900; color:#fff; }
.pr-hero__stats span{ font-size:12px; color:var(--text-sub); }
.pr-hero__cta{ display:flex; gap:10px; margin-top:6px; }
.pr-hero__cta .btn--gold{ box-shadow:0 8px 26px color-mix(in srgb, var(--accent) 35%, transparent); }
.pr-hero__ghost{ background:rgba(255,255,255,.04); }

.pr-hero{ --pr-gold:#fcb826; --pr-gold-2:#c8820a; }
.pr-hero__scene{ position:relative; z-index:1; align-self:stretch; height:auto; margin:-36px 0 -40px; }

/* 흰 판 아래에 깔리는 큰 회색 글자 */
.pr-hero__word{ display:none; }
.pr-board::after{
  content:"PARTNERS"; position:absolute; right:-6px; bottom:-.24em; z-index:-1; white-space:nowrap; pointer-events:none;
  font:italic 900 120px/1 var(--font-display); letter-spacing:-.02em; color:rgba(0,0,0,.045);
}
.pr-board{ isolation:isolate; container-type:inline-size; }

/* 오른쪽 흰 판 — 비스듬히 자른 매트 흰 면 · 옅은 빗살 · 왼쪽 경계 포인트 띠 */
.pr-board{
  position:absolute; inset:0 0 0 70px; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr auto; gap:0; padding:28px clamp(24px, 4%, 52px) 26px clamp(96px, 20%, 118px); color:#111215;   /* 위 파트너 줄 · 가운데 금액 · 아래 숫자 3칸 */
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.08'/%3E%3C/svg%3E"),
    repeating-linear-gradient(-66deg, rgba(0,0,0,.035) 0 2px, transparent 2px 12px),
    radial-gradient(80% 70% at 70% 30%, #ffffff, #eceef1 85%);
  clip-path:polygon(70px 0, 100% 0, 100% 100%, 0 100%);
}
.pr-board::before{   /* 경계 띠 */
  content:""; position:absolute; left:0; top:0; bottom:0; width:92px; background:var(--accent);
  clip-path:polygon(70px 0, 92px 0, 22px 100%, 0 100%);
}
.pr-board__kick{ display:flex; align-items:center; gap:10px; white-space:nowrap; font:italic 800 13px/1 var(--font-display); letter-spacing:.16em; text-transform:uppercase; color:#111215; }
.pr-board__kick::before{ content:""; width:24px; height:3px; background:var(--accent); transform:skewX(-20deg); }
.pr-board__kick em{ font-style:normal; font-size:10px; font-weight:900; padding:3px 7px; background:var(--live); color:#fff; letter-spacing:.08em; }
.pr-board__mid{ align-self:center; display:grid; min-width:0; }
.pr-board__label{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0; font-size:13px; font-weight:700; line-height:1; color:#5b5e66; }
.pr-board__up{ display:inline-flex; align-items:baseline; gap:6px; padding:5px 9px; border-radius:4px; background:rgba(14,159,110,.1); font-style:normal; font-size:13px; font-weight:900; color:#0e9f6e; white-space:nowrap; }
.pr-board__up small{ font-size:11px; font-weight:700; color:#5b8f7c; }
.pr-board__num{
  margin-top:10px; white-space:nowrap; overflow:visible; font:italic 900 76px/.9 var(--font-display); letter-spacing:-.01em; color:#111215; font-variant-numeric:tabular-nums;
  text-shadow:4px 4px 0 color-mix(in srgb, var(--accent) 30%, transparent); transition:text-shadow .3s;
}
/* 오를 때마다 그림자가 살짝 밀렸다 돌아온다 */
.pr-board__num.is-bump{ animation:prBump .9s ease-out; }
@keyframes prBump{ 30%{ text-shadow:7px 7px 0 color-mix(in srgb, var(--accent) 55%, transparent); } }

/* 차트 — 크게 · 눈금선 · 끝점 옆에 방금 오른 금액 */
.pr-board__chart{ position:relative; margin-top:14px; }
.pr-board__spark{ display:block; width:100%; height:78px; overflow:visible; }
.pr-board__grid{ fill:none; stroke:rgba(0,0,0,.08); stroke-width:1; stroke-dasharray:3 4; vector-effect:non-scaling-stroke; }
.pr-board__line, .pr-board__area{ transition:d 2.2s cubic-bezier(.45,0,.25,1); }
.pr-board__line{ fill:none; stroke:var(--accent); stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke;
  stroke-dasharray:none; animation:none; filter:drop-shadow(0 3px 4px color-mix(in srgb, var(--accent) 30%, transparent)); }
.pr-board__dot{ fill:#fff; stroke:var(--accent); stroke-width:2.5; vector-effect:non-scaling-stroke; transition:cy 2.2s cubic-bezier(.45,0,.25,1); }
.pr-board__tag{
  position:absolute; right:14px; top:50%; translate:0 -50%; padding:3px 7px; border-radius:4px; white-space:nowrap;
  background:#111215; color:#fff; font:italic 800 12px/1 var(--font-display); letter-spacing:.02em; font-variant-numeric:tabular-nums;
  opacity:0; transition:top 2.2s cubic-bezier(.45,0,.25,1);
}
.pr-board__tag.is-on{ animation:prTag 2.4s ease-out forwards; }
@keyframes prTag{ 0%{ opacity:0; } 15%, 70%{ opacity:1; } 100%{ opacity:0; } }
.pr-board__foot{ margin-top:10px; font-size:12px; line-height:1; color:#5b5e66; }
.pr-board__foot b{ color:#111215; }
.pr-board__foot .is-up{ display:none; }   /* 상승률은 위 뱃지로 옮겼다 */
.pr-board__kpi{ display:grid; grid-template-columns:repeat(3,1fr); margin:0; padding:14px 0 0; list-style:none; border-top:2px solid #111215; }
.pr-board__kpi li{ display:grid; gap:6px; align-content:start; }
.pr-board__kpi li + li{ padding-left:16px; border-left:1px solid rgba(0,0,0,.12); }
.pr-board__kpi b{ font:italic 900 clamp(20px, 6cqi, 28px)/1 var(--font-display); color:#111215; }
:root[data-style="geo"] .pr-board__num{ font-size:62px; letter-spacing:-.03em; }
:root[data-style="lux"] .pr-board__num{ font-size:66px; }
.pr-board__kpi b i{ font-size:.55em; margin-left:2px; color:var(--accent-fg); }
.pr-board__kpi small{ font-size:11px; font-weight:700; line-height:1.2; color:#6b6e76; word-break:keep-all; }
.pr-board__kpi li{ min-width:0; }
.pr-board__kick{ min-width:0; overflow:hidden; }

.pr-dash__line{ fill:none; stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke;
  stroke-dasharray:600; stroke-dashoffset:600; animation:prDraw 2.2s .3s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes prDraw{ to{ stroke-dashoffset:0; } }
@keyframes prFade{ to{ opacity:1; } }

@media (prefers-reduced-motion:reduce){
  .pr-hero__nebula, .pr-win{ animation:none; }
  .pr-dash__line{ animation:none; stroke-dashoffset:0; } .pr-board__area{ animation:none; opacity:1; }
}
}

/* ---- 제목 줄 + 상태 고르개 ----------------------------------------------- */
.pr-sec{ display:grid; gap:16px; }
.pr-sec__head{ display:flex; align-items:center; gap:10px; }
.pr-sec__head h1{ font-size:28px; font-weight:900; }
.pr-sec__count{ font-size:var(--fs-sm); color:var(--text-sub); }
.pr-status{ margin-left:auto; display:flex; gap:4px; padding:4px; border-radius:var(--r-full); background:var(--surface); border:1px solid var(--line); }
.pr-status button{ height:30px; padding:0 14px; border-radius:var(--r-full); font-size:var(--fs-sm); font-weight:700; color:var(--text-sub); transition:background-color var(--t-fast), color var(--t-fast); }
.pr-status button:hover{ color:var(--text); }
.pr-status button.is-on{ background:var(--accent); color:var(--accent-ink); }

/* ---- 분류 판 — 제목 줄 오른쪽. 한 판 안에 [● 이름 개수], 고른 것만 그 분류 색으로 켜진다 ---- */
.pr-sec__head{ flex-wrap:wrap; row-gap:10px; }
.pr-filter{ display:flex; gap:2px; margin-left:auto; padding:4px; border-radius:14px; background:var(--surface); box-shadow:inset 0 0 0 1px var(--line); }
.pr-tag{
  display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 8px 0 11px; border-radius:10px;
  font-size:var(--fs-sm); font-weight:800; color:var(--text-sub); white-space:nowrap;
  transition:background-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);
}
.pr-tag__dot{ flex:none; width:7px; height:7px; border-radius:50%; background:var(--c); box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 20%, transparent); }
.pr-tag em{
  min-width:20px; height:18px; padding:0 6px; border-radius:9px; display:grid; place-items:center;
  background:var(--bg); font-style:normal; font-size:11px; font-weight:800; color:var(--text-mute); font-variant-numeric:tabular-nums;
  transition:background-color var(--t-fast), color var(--t-fast);
}
.pr-tag:hover{ color:var(--text); background:color-mix(in srgb, var(--c) 9%, transparent); }
.pr-tag.is-on{
  color:#fff;
  background:linear-gradient(180deg, color-mix(in srgb, var(--c) 28%, var(--surface-2)), color-mix(in srgb, var(--c) 12%, var(--surface-2)));
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c) 60%, transparent), 0 8px 18px -10px var(--c);
}
.pr-tag.is-on em{ background:var(--c); color:var(--bg); }
.pr-tag:focus-visible{ outline:2px solid var(--c); outline-offset:1px; }

/* ---- 카드 4열 ------------------------------------------------------------ */
.pr-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--pr-gap); }
.pr-card{
  display:flex; flex-direction:column; overflow:hidden; border-radius:var(--r-lg);
  border:1px solid var(--line); background:var(--surface);
  transition:transform var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);
}
.pr-card:hover{ transform:translateY(-4px); border-color:color-mix(in srgb, var(--c) 55%, var(--line)); box-shadow:0 14px 28px rgba(0,0,0,.4); }
/* 그림 — 정사각 칸, 투명 3D 그림을 contain 으로(잘리지 않게) · 바탕은 분류 색 밤하늘 */
.pr-card__art{
  position:relative; display:grid; place-items:center; aspect-ratio:1; overflow:hidden;
  background:
    radial-gradient(ellipse 70% 55% at 50% 62%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 72%),
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 7%, #101114), #08090b);   /* 예전 고정 남색 → 테마 포인트가 살짝 번진 어두운 판 */
}
.pr-card__art img{ width:82%; height:82%; object-fit:contain; filter:drop-shadow(0 14px 18px rgba(0,0,0,.5)); transition:transform .3s cubic-bezier(.2,.8,.2,1); }
.pr-card:hover .pr-card__art img{ transform:scale(1.05); }
.pr-card__tag{
  position:absolute; top:12px; left:12px; height:26px; padding:0 10px; display:inline-flex; align-items:center;
  border-radius:var(--r-full); background:rgba(0,0,0,.55); color:color-mix(in srgb, var(--c) 80%, #fff); font-size:12px; font-weight:800;
}
.pr-card__ended{
  position:absolute; inset:0; display:grid; place-items:center; background:color-mix(in srgb, var(--bg-deep) 62%, transparent);
  font-size:var(--fs-lg); font-weight:900; color:var(--text-sub);
}
.pr-card__body{ display:flex; flex-direction:column; gap:8px; padding:18px 20px 20px; flex:1; }
.pr-card__title{ display:flex; align-items:center; gap:6px; font-size:var(--fs-lg); font-weight:900; line-height:1.4; }
.pr-card__title span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pr-card__desc{
  color:var(--text-sub); font-size:var(--fs-sm); line-height:1.7; word-break:keep-all; min-height:calc(1.7em * 2);
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
}
.pr-card__foot{ margin-top:auto; padding-top:8px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.pr-card__ends{ font-size:var(--fs-sm); color:var(--text-sub); white-space:nowrap; font-variant-numeric:tabular-nums; }
.pr-card.is-end .pr-card__art img{ filter:grayscale(.8) brightness(.7); }

@media (prefers-reduced-motion:reduce){
  .pr-card, .pr-card__art img{ transition:none; }
  .pr-card:hover{ transform:none; }
}

/* ==========================================================================
   이벤트 상세 팝업 (js/event-modal.js) — betsio 프로모션 팝업 구도
   머리 띠(고정 · 분류 · 제목 · 핵심 혜택 · 그림) → 본문(안에서만 스크롤) → 아래 참여 버튼(고정)
   색은 분류 색(--c, 대화상자에 붙인다) 하나
   ========================================================================== */
.evm .modal__dialog{ overflow:hidden; border-radius:18px; border-color:color-mix(in srgb, var(--c) 30%, var(--line-strong)); }
.evm .modal__head{
  position:relative; display:grid; align-content:end; gap:4px; min-height:168px; padding:22px 190px 20px 26px; border-bottom:0;
  background:
    radial-gradient(ellipse 55% 110% at 88% 40%, color-mix(in srgb, var(--c) 34%, transparent), transparent 70%),
    linear-gradient(160deg, color-mix(in srgb, var(--surface) 70%, var(--surface-3)) 0%, var(--bg-deep) 80%);
}
.evm .modal__head h2{ position:relative; font-size:22px; font-weight:900; line-height:1.25; word-break:keep-all; }
.evm .modal__close{ position:absolute; top:12px; right:12px; z-index:2; background:rgba(0,0,0,.35); color:#fff; }
.evm-cat{ position:relative; margin:0; font-size:12px; font-weight:900; letter-spacing:.08em; color:var(--c); }
.evm-prize{ position:relative; display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; margin:2px 0 0; }
.evm-prize b{ font-family:'Barlow Condensed', var(--font); font-size:44px; font-weight:800; line-height:1; color:#fff; text-shadow:0 0 24px color-mix(in srgb, var(--c) 50%, transparent); }
.evm-prize span{ font-size:var(--fs-sm); font-weight:700; color:var(--text-sub); }
.evm-art{ position:absolute; right:22px; bottom:10px; width:160px; max-height:150px; object-fit:contain; rotate:-6deg;
  filter:drop-shadow(0 14px 20px rgba(0,0,0,.55)); }

.evm .modal__body{ display:grid; align-content:start; gap:10px; padding:18px 26px 20px; }
.evm-chips{ display:flex; flex-wrap:wrap; gap:6px; margin:0; }
.evm-chip{ display:inline-flex; align-items:center; gap:5px; height:24px; padding:0 9px; border-radius:var(--r-full); background:var(--bg); font-size:12px; font-weight:700; color:var(--text-sub); white-space:nowrap; }
.evm-chip svg{ width:13px; height:13px; }
.evm-chip--state i{ width:6px; height:6px; border-radius:50%; background:currentColor; }
.evm-chip--state.is-on{ color:#2fd39a; }
.evm-sub{ margin:0; font-size:var(--fs-base); line-height:1.65; color:var(--text); word-break:keep-all; }
.evm-h{ margin:8px 0 0; font-size:var(--fs-sm); font-weight:900; color:var(--c); }
/* 지급 기준 표 — 가장 큰 혜택 줄만 분류 색 */
.evm-table{ width:100%; border-collapse:separate; border-spacing:0 4px; margin-top:-4px; font-variant-numeric:tabular-nums; }
.evm-table thead th{ padding:0 14px 2px; font-size:11.5px; font-weight:700; color:var(--text-mute); text-align:right; }
.evm-table thead th:first-child{ text-align:left; }
.evm-table tbody th, .evm-table tbody td{ height:40px; padding:0 14px; background:var(--bg); font-size:var(--fs-sm); }
.evm-table tbody th{ border-radius:10px 0 0 10px; font-weight:700; color:var(--text-sub); text-align:left; }
.evm-table tbody td{ font-size:var(--fs-base); font-weight:900; text-align:right; }
.evm-table tbody td:last-child{ border-radius:0 10px 10px 0; }
.evm-table tbody tr.is-top th, .evm-table tbody tr.is-top td{ background:color-mix(in srgb, var(--c) 14%, var(--bg)); }
.evm-table tbody tr.is-top th{ box-shadow:inset 3px 0 0 var(--c); color:var(--text); }
.evm-table tbody tr.is-top td{ color:var(--c); }
/* 참여 방법 · 유의사항 */
.evm-how{ display:grid; gap:6px; margin:0; padding:0; list-style:none; counter-reset:evm; }
.evm-how li{ position:relative; padding-left:28px; font-size:var(--fs-sm); line-height:1.6; word-break:keep-all; counter-increment:evm; }
.evm-how li::before{ content:counter(evm); position:absolute; left:0; top:1px; width:20px; height:20px; border-radius:50%; display:grid; place-items:center;
  background:color-mix(in srgb, var(--c) 20%, transparent); color:var(--c); font-size:11px; font-weight:900; }
.evm-notes{ display:grid; gap:3px; margin:0; padding-left:16px; font-size:12px; line-height:1.6; color:var(--text-mute); word-break:keep-all; }

.evm .modal__foot{ padding:12px 16px 16px; border-top:1px solid var(--line); background:var(--surface); }
.evm-cta{ width:100%; justify-content:center; }
.evm-cta svg{ width:16px; height:16px; }
.evm.is-end .modal__head{ filter:grayscale(.7); }
@media (prefers-reduced-motion:reduce){ .evm .modal__dialog{ animation:none !important; } }

/* ==========================================================================
   휴대폰 (1023px 이하) — 친구초대 배너는 글만(오른쪽 장면은 숨김), 카드 2열, 상세는 한 줄로 쌓는다
   ========================================================================== */
@media (max-width:1023px){
  :root{ --pr-gap: 10px; }
  /* 상세 팝업 — 아래에서 올라오는 시트 */
  .modal.evm{ align-items:end; padding:0; }
  .evm .modal__dialog{ width:100%; max-height:calc(92 * var(--vh)); border-radius:18px 18px 0 0; border-bottom:0; animation:evmUp .26s cubic-bezier(.2,.8,.2,1); }
  @keyframes evmUp{ from{ translate:0 40px; opacity:.6; } to{ translate:0 0; opacity:1; } }
  .evm .modal__head{ min-height:128px; padding:16px 120px 14px 16px; }
  .evm .modal__head h2{ font-size:18px; }
  .evm-prize b{ font-size:32px; }
  .evm-prize span{ font-size:12px; }
  .evm-art{ right:10px; bottom:8px; width:104px; max-height:104px; }
  .evm .modal__body{ gap:8px; padding:14px 16px 16px; }
  .evm-sub{ font-size:var(--fs-sm); }
  .evm-table tbody th, .evm-table tbody td{ height:38px; padding:0 12px; }
  .evm .modal__foot{ padding:10px 12px calc(12px + env(safe-area-inset-bottom)); }
  .pr-page{ gap:16px; }
  .pr-sec{ gap:10px; }
  .pr-hero{ grid-template-columns:minmax(0,1fr); min-height:0; padding:16px 14px 48px; }
  .pr-hero__copy{ gap:8px; }
  .pr-hero__stats{ display:none; }
  .pr-hero__city{ height:44px; }
  .pr-hero__scene, .pr-hero__word{ display:none; }
  .pr-hero__kicker{ height:26px; padding:0 10px; font-size:10px; letter-spacing:.1em; }
  .pr-hero__title{ font-size:21px; }
  .pr-hero__punch{ font-size:16px; }
  .pr-hero__punch b{ font-size:24px; }
  .pr-hero__sub{ font-size:13px; }
  .pr-hero__stats{ flex-wrap:wrap; }
  .pr-hero__stats li{ min-width:0; flex:1 1 30%; padding:8px 10px; }
  .pr-hero__cta{ flex-wrap:nowrap; margin-top:2px; }
  .pr-hero__cta .btn{ flex:1 1 auto; height:36px; padding:0 10px; font-size:12px; }
  .pr-sec__head h1{ font-size:22px; }
  .pr-status{ margin-left:0; }
  /* 분류 판 — 제목 아래 한 줄 가득, 넘치면 옆으로 민다 */
  .pr-filter{ flex:1 1 100%; margin-left:0; overflow-x:auto; scrollbar-width:none; }
  .pr-filter::-webkit-scrollbar{ display:none; }
  .pr-tag{ flex:none; height:32px; padding:0 7px 0 10px; font-size:12.5px; }
  .pr-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pr-card__art{ aspect-ratio:4 / 3; }
  .pr-card__body{ padding:10px; gap:4px; }
  .pr-card__title{ font-size:13px; }
  .pr-card__desc{ font-size:11px; line-height:1.5; min-height:0; -webkit-line-clamp:1; }
  .pr-card__foot{ padding-top:4px; }
  .pr-card__foot .btn{ height:28px; padding:0 10px; font-size:11px; }
  .pr-card__ends{ font-size:11px; }
  /* 이벤트 상세 — 머리는 [글 | 작은 그림] 한 덩어리, 요약 카드는 두 칸, 단계는 낮게 */
}

/* 태블릿 세로 (600~1023px) — 이벤트 카드 3열, 다른 이벤트 2열 */
@media (min-width:600px) and (max-width:1023px){
  .pr-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pr-hero__title{ font-size:34px; }
}
