/* 어느 사이트에나 필요한 규칙만 둔다. 색·모양·배치는 theme.css 에 쓴다 */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;word-break:keep-all;overflow-wrap:anywhere}
img,svg{max-width:100%}
/* 주소는 하나이고 같은 HTML 을 나눠 보여 준다. 1024px 이상이 PC 화면이다 */
.pc-only{display:none!important}
@media(min-width:1024px){.pc-only{display:revert!important}.m-only{display:none!important}}
a[target="_blank"]::after{content:"↗";margin-left:.2em;font-weight:500}
/* 움직임을 줄이도록 설정한 사람에게는 움직이지 않는다 */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* 세일언제 — 시안 F(첫 화면)·pf(행사 페이지) 확정 모양. 한 단 · 세일 빨강 하나 · 카드형 · Pretendard */
:root{--bg:#f4f4f5;--card:#fff;--ink:#18181b;--sub:#5b5b63;--line:#e4e4e7;--acc:#d6282e;--acc-t:#fdeceb;--acc-ink:#b21f24;--shadow:0 1px 2px rgba(0,0,0,.04),0 4px 14px rgba(0,0,0,.05)}
@media (prefers-color-scheme:dark){:root{--bg:#121214;--card:#1d1d21;--ink:#f1f1f3;--sub:#a5a5ad;--line:#2e2e34;--acc:#ff5a5f;--acc-t:#3a1c1e;--acc-ink:#ff8a8d;--shadow:none;color-scheme:dark}}
body{background:var(--bg);color:var(--ink);font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
.page{max-width:860px}
header.top{background:var(--card);border-bottom:1px solid var(--line)}
header.top .in{max-width:1040px;margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between;height:58px}
.logo{font-weight:800;font-size:20px;letter-spacing:-.02em;display:flex;align-items:center;gap:7px}
.logo img{display:block}
.logo b{color:var(--acc)}
.top nav a{margin-left:18px;font-size:15px;color:var(--sub)}
.top nav a.on{color:var(--ink);font-weight:700}
h1{letter-spacing:-.03em}
h2{font-size:19px;margin:34px 0 12px;letter-spacing:-.02em}
h2 small{font-size:13px;color:var(--sub);font-weight:500;margin-left:6px}
.box{background:var(--card);border-radius:16px;box-shadow:var(--shadow);border:1px solid var(--line)}
.sub{color:var(--sub);font-size:14px}
/* 첫 화면 머리 */
.hero{text-align:center;padding:34px 0 22px}
.hero h1{font-size:32px;margin:0 0 6px}
.hero h1 em{font-style:normal;color:var(--acc)}
.hero p{margin:0 0 18px;color:var(--sub)}
.hero .sch{max-width:640px;margin:0 auto;text-align:left}
.hero .chips{justify-content:center}
.tp{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:99px;padding:5px 13px;font-size:14px;font-weight:600;color:var(--sub);margin-bottom:14px}
.tp svg{color:var(--acc)}
.nx{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:4px 7px;margin-top:16px;font-size:15px;color:var(--sub)}
.nx[hidden]{display:none}
.nx b{color:var(--ink)}.nx i{font-style:normal}
.nx em{font-style:normal;font-weight:700;color:var(--acc-ink);background:var(--acc-t);border-radius:99px;padding:1px 9px;font-size:13.5px}
.nx:hover b{text-decoration:underline;text-underline-offset:2px}
/* 검색 */
.sch{position:relative}
.sch input{width:100%;height:54px;border:2px solid var(--ink);border-radius:14px;padding:0 18px 0 48px;font:inherit;font-size:17px;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%23888' stroke-width='2.2'%3E%3Ccircle cx='9.5' cy='9.5' r='7'/%3E%3Cpath d='m15 15 5 5'/%3E%3C/svg%3E") 16px 50% no-repeat;color:var(--ink)}
.sch input:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 4px var(--acc-t)}
.sch input{padding-right:104px;box-shadow:inset 0 2px 4px rgba(0,0,0,.06);cursor:text;transition:border-color .15s,box-shadow .15s}
.sch input:hover{border-color:var(--acc)}
.sch .go{position:absolute;right:7px;top:7px;height:40px;padding:0 18px;border:0;border-radius:10px;background:var(--acc);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.sch .go:hover{filter:brightness(.95)}
.sch .res{position:absolute;left:0;right:0;top:60px;z-index:5;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.12);overflow:hidden}
.sch .res a{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--line);font-size:15px}
.sch .res a:first-child{border-top:0}
.sch .res a span{color:var(--sub);font-size:13.5px;text-align:right}
.sch .res p{margin:0;padding:14px 16px;color:var(--sub);font-size:14px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.chips a{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:6px 13px;font-size:14px}
/* 카드 */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card{min-width:0;display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:var(--shadow);transition:transform .15s}
a.card:hover{transform:translateY(-2px)}
.card .top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.card .who{font-size:13.5px;color:var(--sub)}
.card .nm{font-size:19px;font-weight:800;letter-spacing:-.02em}
.card .rg{font-size:15px}
.card .nt{font-size:13.5px;color:var(--sub)}
.card .ft{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--sub);border-top:1px solid var(--line)}
.card.done{opacity:.6}
.badge{font-size:13px;font-weight:700;border-radius:99px;padding:2px 10px;white-space:nowrap}
.badge.on{background:var(--acc);color:#fff}
.badge.soon{background:var(--acc-t);color:var(--acc-ink)}
.badge.guess{border:1.5px solid var(--acc);color:var(--acc-ink);padding:1px 9px}
.badge.done,.badge.wait,.badge.none{background:var(--bg);color:var(--sub)}
.empty{grid-column:1/-1;background:var(--card);border:1px dashed var(--line);border-radius:16px;padding:22px;text-align:center;color:var(--sub)}
/* 달력 */
.cal{padding:4px 0 0}
.cal .mh{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 6px}
.cal .mh b{font-size:22px;letter-spacing:-.02em}
.cal .mh button{border:1px solid var(--line);background:var(--card);color:var(--ink);width:36px;height:36px;border-radius:10px;font-size:17px;cursor:pointer}
.cal .grid{padding:0 10px 8px}
.wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.wk.head{padding:6px 0}
.wd{text-align:center;font-size:13px;color:var(--sub)}
.wd.sun,.day.sun .dn{color:var(--acc-ink)}
.day{padding:4px 6px;min-height:96px;cursor:pointer;border-radius:10px;transition:background .12s}
.day:hover{background:var(--bg)}
.day.today{background:color-mix(in srgb,var(--ink) 8%,transparent)}
.day.pick{box-shadow:inset 0 0 0 2px var(--acc)}
.day .dn{font-size:14px;font-weight:600}
.day.out .dn{color:var(--sub);opacity:.5}
.day.today .dn{background:var(--ink);color:var(--bg);border-radius:99px;padding:1px 7px}
.day .nms{display:block;margin-top:4px;font-size:12.5px;line-height:1.45;overflow:hidden}
.day .nms span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day .nms span i{display:inline-block;width:6px;height:6px;border-radius:9px;margin-right:4px;vertical-align:2px}
.day .nms .on{font-weight:600}.day .nms .on i{background:var(--acc)}
.day .nms .soon{color:var(--sub)}.day .nms .soon i{background:var(--acc-t);outline:1px solid var(--acc)}
.day .nms .guess{color:var(--sub);font-style:italic}.day .nms .guess i{background:transparent;outline:1px dashed var(--acc)}
.day .nms .done{color:var(--sub);opacity:.6}.day .nms .done i{background:var(--line)}
.day .nms .nmore{color:var(--sub);font-weight:700}
.dots{display:flex;gap:3px;justify-content:center;margin-top:6px}
.dots i{width:6px;height:6px;border-radius:9px;background:var(--acc)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--sub);padding:4px 18px 16px}
.legend .k i{display:inline-block;width:8px;height:8px;border-radius:9px;margin-right:5px;vertical-align:1px}
#pop{position:absolute;z-index:20;width:270px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.16);padding:12px 14px;font-size:13.5px;pointer-events:none}
#pop b{display:block;font-size:14px;margin-bottom:6px}
#pop .it{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-top:1px solid var(--line)}
#pop .it span:last-child{color:var(--sub);white-space:nowrap}
.pick-h{display:flex;align-items:baseline;justify-content:space-between;margin:30px 0 12px;scroll-margin-top:12px}
.pick-h h2{margin:0}
.tabs button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:99px;padding:5px 12px;font:inherit;font-size:13.5px;margin-left:6px;cursor:pointer}
.tabs button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
/* 행사 페이지 */
.bc{font-size:13px;color:var(--sub);margin:22px 0 6px}
.bc a{text-decoration:underline;text-underline-offset:2px}
.ev h1{font-size:30px;margin:0 0 18px;line-height:1.25}
.ev h1 small{display:block;font-size:15px;color:var(--sub);font-weight:500;letter-spacing:0;margin-top:6px}
.ans{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:22px 24px}
.ans .lab{font-size:14px;color:var(--sub);font-weight:600}
.ans .big{font-size:34px;font-weight:800;letter-spacing:-.03em;color:var(--acc);margin:4px 0 6px;line-height:1.2}
.ans .rg{font-size:15px}
.ans .nx{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:15px}
.pill{display:inline-block;vertical-align:middle;font-size:13px;font-weight:700;color:var(--acc-ink);border:1.5px solid var(--acc);border-radius:99px;padding:1px 9px;letter-spacing:0}
.ans .big .pill{font-size:14px;margin-left:4px}
.src{font-size:12.5px;color:var(--sub);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.facts .f{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.facts .f b{display:block;font-size:19px;letter-spacing:-.02em}
.facts .f span{font-size:13px;color:var(--sub)}
.vh{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.vw{font-size:14px;color:var(--sub);white-space:nowrap}
.vw button{border:0;background:none;font:inherit;color:var(--sub);cursor:pointer;padding:2px}
.vw button.on{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px;text-decoration-color:var(--acc)}
.vw span{margin:0 4px}
.view[hidden]{display:none}
.sc,.yc{grid-template-columns:repeat(2,minmax(0,1fr))}
.sc.one{grid-template-columns:1fr}
.sc .card.hot{border:2px solid var(--acc)}
.sc .snm,.yc .yr{font-size:18px;font-weight:800}
.sc .us{font-size:14px;color:var(--sub);margin:2px 0 6px}
.sc .us b{color:var(--ink)}
.rl{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line);font-size:14.5px}
.rl .sn{color:var(--sub);font-size:13.5px}
.rl .dt{min-width:0}
.rl .nt{grid-column:2/-1;font-size:12.5px;color:var(--sub);margin-top:-4px}
.rl .src{justify-self:end}
.note{padding:16px 18px;margin-top:34px;font-size:14px}
.note p{margin:6px 0 0;color:var(--sub)}
.names{font-size:14px;color:var(--sub);margin:10px 0 0}
/* 행사 모음 · 글 */
.prose{max-width:760px}
.prose .box{padding:18px 20px;margin:14px 0}
.prose h1{font-size:28px;margin:26px 0 8px}
.prose h2{margin-top:0}
.prose p,.prose li{color:var(--ink)}
footer.foot{margin:48px 0 0;padding:26px 0 40px;border-top:1px solid var(--line);font-size:13px;color:var(--sub)}
footer.foot .in{max-width:1040px;margin:0 auto;padding:0 16px}
footer.foot a{margin-right:14px;text-decoration:underline;text-underline-offset:2px}
@media (max-width:1023px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:679px){
  .cards,.sc,.yc{grid-template-columns:1fr}
  .top nav a{margin-left:12px;font-size:14px}
  .hero h1{font-size:25px}
  .day{min-height:52px;padding:3px 2px;text-align:center;border-radius:10px}
  .day .nms{display:none}
  .cal .grid{padding:0 4px 8px}
  .pick-h{flex-direction:column;gap:8px}.tabs button{margin:0 6px 0 0}
  .ev h1{font-size:25px}
  .ans{padding:18px}.ans .big{font-size:27px}
  .facts{gap:8px}.facts .f{padding:10px}.facts .f b{font-size:16px}.facts .f span{font-size:12px}
  .rl{grid-template-columns:52px minmax(0,1fr)}.rl .src{grid-column:2}.rl .dt{white-space:normal}
}
