.wf-breadcrumb { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; color:var(--muted); font-size:14px; overflow-wrap:anywhere; }
.wf-link { color:var(--heading); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.wf-link:hover { color:var(--accent-ink); }
.wf-data-note { padding:18px 22px; margin-bottom:24px; border-left:3px solid var(--heading); background:var(--alt); border-radius:var(--r-md); }
.wf-data-text { margin:0; color:var(--muted); font-size:14px; line-height:1.8; }
.wf-data-text:empty { display:none; }
.wf-regions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:26px; }
.wf-region-card { display:block; padding:24px 20px; background:var(--alt); border:1px solid var(--border); border-radius:var(--r-md); color:var(--heading); text-decoration:none; transition:border-color var(--dur),background var(--dur); }
.wf-region-card:hover { border-color:var(--heading); background:var(--surface); box-shadow:var(--shadow-hover); }
.wf-region-card-header { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:8px; }
.wf-region-name { font-size:18px; font-weight:700; }
.wf-region-count { flex-shrink:0; padding:4px 10px; border-radius:12px; background:var(--border-soft); color:var(--heading); font-size:12px; font-weight:500; font-variant-numeric:tabular-nums; }
.wf-region-card:hover .wf-region-count { background:var(--heading); color:var(--surface); }
.wf-region-go { display:block; font-size:14px; color:var(--muted); }
.wf-quick-group { display:grid; grid-template-columns:90px minmax(0,1fr); gap:16px; border-top:1px solid var(--border-soft); padding:18px 0; }
.wf-subtitle { margin:24px 0 12px; color:var(--heading); font-size:18px; line-height:1.5; font-weight:700; }
.wf-quick-group .wf-subtitle { margin:0; }
.wf-links { display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; line-height:1.8; }
.wf-tags { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.wf-tag { display:inline-block; padding:5px 12px; border-radius:var(--r-pill); background:var(--alt); color:var(--heading); font-size:14px; line-height:1.6; text-decoration:none; overflow-wrap:anywhere; }
.wf-tag:hover { background:var(--border-soft); color:var(--heading); text-decoration:none; }
.wf-region-quick { padding:20px; margin-bottom:24px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--alt); }
.wf-region-quick-title { margin:0 0 12px; font-size:14px; font-weight:700; color:var(--heading); }
.wf-region-quick-links { line-height:2; }
.wf-region-quick-link { color:var(--text); font-size:14px; text-decoration:none; overflow-wrap:anywhere; }
.wf-region-quick-link:hover { color:var(--accent-ink); text-decoration:underline; }
.wf-quick-separator { margin:0 8px; color:var(--faint); }
.wf-region-tabs { display:flex; flex-wrap:wrap; gap:10px; }
.wf-region-tab { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 16px; border:1px solid var(--border-strong); border-radius:var(--r-md); color:var(--heading); font-size:14px; text-decoration:none; }
.wf-region-tab[aria-current="page"] { background:var(--heading); color:#fff; border-color:var(--heading); }
.wf-search { display:flex; align-items:end; justify-content:center; gap:14px; max-width:720px; margin:24px auto; }
.wf-search .wt-field { flex:1; }
.wf-search .wt-button { min-height:46px; }
.wf-results { margin:16px 0; color:var(--muted); font-size:14px; }
.wf-events { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.wf-event { min-width:0; overflow:hidden; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); display:flex; flex-direction:column; }
.wf-image-link { display:block; background:var(--alt); }
.wf-image { display:block; width:100%; height:auto; aspect-ratio:7/3; object-fit:contain; color:var(--muted); font-size:14px; }
.wf-event-body { padding:24px; display:flex; flex-direction:column; flex:1; min-width:0; }
.wf-badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.wf-badge { display:inline-block; padding:4px 10px; border-radius:var(--r-sm); background:var(--alt); color:var(--heading); font-size:12px; font-weight:700; }
.wf-status-upcoming,.wf-status-ongoing { background:var(--accent-soft); color:var(--accent-ink); }
.wf-status-ended { background:var(--alt); color:var(--muted); }
.wf-event-title { margin:0 0 18px; color:var(--heading); font-size:21px; line-height:1.5; font-weight:700; overflow-wrap:anywhere; }
.wf-event-title :where(a) { color:inherit; text-decoration:none; }
.wf-event-title :where(a:hover) { color:var(--accent-ink); text-decoration:underline; }
.wf-facts { display:grid; grid-template-columns:38px minmax(0,1fr); gap:10px 12px; margin:0 0 16px; font-size:14px; line-height:1.7; }
.wf-fact-label { color:var(--muted); font-weight:400; }
.wf-fact-value { margin:0; color:var(--text); overflow-wrap:anywhere; }
.wf-event-info { color:var(--muted); font-size:14px; line-height:1.8; margin:0 0 20px; overflow-wrap:anywhere; }
.wf-card-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:auto; padding-top:6px; }
.wf-card-actions .wt-button { display:inline-flex; align-items:center; justify-content:center; font-size:14px; }
.wf-event-detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; border:0; }
.wf-event-detail .wf-image { aspect-ratio:auto; }
.wf-event-detail .wf-card-actions { justify-content:center; padding-top:8px; }
.wf-detail-cta { display:inline-flex; align-items:center; justify-content:center; padding:18px 48px; width:100%; max-width:400px; border-radius:12px; background:var(--accent); color:#fff; font-size:18px; font-weight:600; text-align:center; text-decoration:none; }
.wf-detail-cta:hover { background:var(--accent-deep); color:#fff; }
.wf-schedule-note { padding:14px 16px; margin-bottom:20px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--accent-soft); font-size:13px; line-height:1.8; }
.wf-schedule-text { margin:0 0 4px; color:var(--muted); }
.wf-event-related .wf-image { aspect-ratio:7/3; object-fit:cover; }
.wf-event-list { display:flex; flex-direction:column; gap:16px; }
.wf-event-row { display:flex; flex-direction:row; align-items:center; gap:20px; padding:20px; border-radius:12px; }
.wf-event-row .wf-image-link { flex:0 0 220px; border-radius:var(--r-md); overflow:hidden; }
.wf-event-row .wf-image { width:220px; height:94px; object-fit:cover; }
.wf-event-row .wf-event-body { padding:0; }
.wf-event-row .wf-badges { gap:8px; margin-bottom:8px; }
.wf-event-row .wf-badge { padding:3px 10px; border-radius:12px; font-size:11px; }
.wf-event-row .wf-event-title { margin-bottom:8px; font-size:17px; }
.wf-event-row .wf-facts { grid-template-columns:30px minmax(0,1fr); gap:4px 10px; margin:0; font-size:13px; }
.wf-row-actions { flex-shrink:0; }
.wf-row-register { display:inline-flex; align-items:center; justify-content:center; padding:10px 20px; border-radius:var(--r-md); background:var(--accent); color:#fff; font-size:13px; font-weight:600; text-decoration:none; }
.wf-row-register:hover { background:var(--accent-deep); color:#fff; }
.wf-guide-list { display:flex; flex-direction:column; gap:24px; }
.wf-guide-card { padding:0 0 24px; border-bottom:1px solid var(--border); }
.wf-guide-card:last-child { padding-bottom:0; border-bottom:0; }
.wf-guide-card .wf-subtitle { margin-top:0; }
.wf-source { margin:20px 0 0; color:var(--muted); font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
.wf-hidden-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:991px) { .wf-event-detail { grid-template-columns:1fr; } }
@media (max-width:768px) { .wf-regions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .wf-region-card { padding:20px 16px; } .wf-region-name { font-size:16px; } .wf-event-row { flex-direction:column; align-items:stretch; padding:16px; } .wf-event-row .wf-image-link { flex:auto; } .wf-event-row .wf-image { width:100%; height:auto; aspect-ratio:7/3; } .wf-row-register { width:100%; } .wf-row-actions { margin-top:12px; } .wf-event-row .wf-facts { display:grid; grid-template-columns:30px minmax(0,1fr); } .wf-events { grid-template-columns:1fr; } .wf-detail-cta { padding:16px 32px; font-size:16px; } }
@media (max-width:640px) { .wf-guide-grid { grid-template-columns:1fr; } .wf-event-body,.wf-guide-card { padding:20px 16px; } .wf-event-title { font-size:19px; } .wf-quick-group { grid-template-columns:1fr; gap:10px; } .wf-search { flex-wrap:wrap; } .wf-search .wt-field { flex-basis:100%; } .wf-card-actions .wt-button { flex:1 1 auto; } .wf-data-note { padding:14px 16px; } }
@media (max-width:480px) { .wf-regions { grid-template-columns:1fr; } .wf-region-quick { padding:16px; } .wf-detail-cta { padding:14px 24px; border-radius:10px; font-size:15px; } }
@media (prefers-reduced-motion:reduce) { .wf-region-card { transition:none; } }

.wf-shell-region { width:100%; max-width:1100px; padding-inline:20px; }
.wf-shell-event { width:100%; max-width:900px; padding-inline:20px; }
.wf-legacy-list-section,.wf-region-quick,.wf-legacy-detail { font-family:'Noto Sans KR',sans-serif; }
.wf-icon { display:inline-block; flex-shrink:0; font-family:hv2-icons; font-style:normal; font-weight:400; line-height:1; vertical-align:-.125em; }
.wf-icon-calendar::before { content:'\f214'; }
.wf-icon-location::before { content:'\f3e8'; }
.wf-icon-map::before { content:'\f64c'; }
.wf-icon-info::before { content:'\f431'; }
.wf-icon-notice::before { content:'\f333'; }
.wf-icon-pencil::before { content:'\f4ca'; }
.wf-icon-heart::before { content:'\f417'; }
.wf-icon-arrow::before { content:'\f135'; }
.wf-legacy-list-section { margin-bottom:40px; }
.wf-legacy-list-title { display:flex; align-items:center; gap:8px; margin-bottom:24px; color:var(--heading); font-size:20px; font-weight:700; }
.wf-legacy-list-title .wf-icon { color:var(--accent-ink); }
.wf-legacy-list-count { margin-left:8px; padding:2px 10px; border-radius:12px; background:var(--accent); color:#fff; font-size:12px; font-weight:600; }
.wf-legacy-row { display:flex; gap:20px; padding:20px; background:var(--surface); border:1px solid var(--border); border-radius:12px; box-shadow:0 2px 12px rgb(0 0 0 / 4%); transition:all .2s; }
.wf-legacy-row:hover { box-shadow:0 6px 20px rgb(40 66 67 / 12%); border-color:var(--heading); }
.wf-legacy-image-link { flex-shrink:0; }
.wf-legacy-image { display:block; width:220px; height:94px; border-radius:8px; object-fit:cover; background:var(--alt); }
.wf-legacy-image-empty { display:flex; align-items:center; justify-content:center; width:220px; height:94px; border-radius:8px; background:var(--alt); color:var(--heading); font-size:36px; }
.wf-legacy-content { flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; }
.wf-legacy-badges { display:flex; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
.wf-legacy-badge { padding:3px 10px; border-radius:12px; font-size:11px; font-weight:600; background:var(--alt); color:var(--heading); }
.wf-legacy-badge.wf-status-upcoming { background:var(--accent-soft); color:var(--accent-ink); }
.wf-legacy-title { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:17px; font-weight:600; color:var(--heading); margin-bottom:8px; }
.wf-legacy-title :where(a:hover) { color:var(--accent-ink); }
.wf-legacy-info { display:flex; gap:16px; font-size:13px; color:var(--muted); flex-wrap:wrap; }
.wf-legacy-info-item { display:flex; align-items:center; gap:4px; }
.wf-legacy-actions { flex-shrink:0; align-self:center; }
.wf-legacy-register { display:inline-flex; align-items:center; gap:6px; background:var(--accent); color:#fff; padding:10px 20px; border-radius:8px; font-size:13px; font-weight:600; transition:all .2s; }
.wf-legacy-register:hover { transform:translateY(-2px); box-shadow:0 4px 15px rgb(40 66 67 / 30%); color:#fff; }
.wf-detail-section { margin-bottom:40px; }
.wf-legacy-detail { background:var(--surface); border-radius:12px; overflow:hidden; box-shadow:0 2px 12px rgb(0 0 0 / 8%); }
.wf-detail-image-wrap { width:100%; aspect-ratio:7/3; overflow:hidden; background:var(--alt); }
.wf-detail-image { display:block; width:100%; height:100%; object-fit:cover; }
.wf-detail-image-empty { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:60px; color:var(--accent-ink); }
.wf-detail-body { padding:32px; }
.wf-detail-badges { display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.wf-detail-badge { padding:6px 14px; border-radius:20px; font-size:13px; font-weight:500; display:inline-flex; align-items:center; gap:4px; background:var(--accent-soft); color:var(--accent-ink); }
.wf-detail-badge .wf-icon { font-size:12px; }
.wf-detail-title { font-size:28px; font-weight:700; color:var(--heading); margin-bottom:20px; line-height:1.4; }
.wf-detail-facts { margin-bottom:28px; }
.wf-detail-fact { display:flex; align-items:flex-start; gap:12px; padding:12px 0; border-bottom:1px solid var(--border-soft); }
.wf-detail-fact:last-child { border-bottom:0; }
.wf-detail-fact .wf-icon { width:20px; color:var(--muted); margin-top:2px; }
.wf-detail-label { width:60px; font-weight:500; color:var(--muted); flex-shrink:0; }
.wf-detail-value { flex:1; min-width:0; color:var(--text); }
.wf-detail-note { display:flex; align-items:flex-start; gap:10px; margin:6px 0 14px 32px; padding:12px 14px; background:var(--accent-soft); border:1px solid var(--border); border-radius:10px; }
.wf-detail-note .wf-icon { color:var(--accent-ink); margin-top:2px; }
.wf-detail-note-text { font-size:13px; color:var(--muted); margin-bottom:4px; line-height:1.5; }
.wf-latest-link { display:inline-flex; align-items:center; gap:4px; font-size:14px; font-weight:600; color:var(--accent-ink); text-decoration:none; }
.wf-latest-link:hover { color:var(--accent-deep); text-decoration:underline; }
.wf-latest-link .wf-icon { width:auto; margin:0; color:inherit; }
.wf-detail-description { background:var(--alt); padding:20px; border-radius:8px; margin-bottom:28px; color:var(--muted); line-height:1.8; display:flex; align-items:flex-start; gap:10px; }
.wf-detail-description .wf-icon { color:var(--muted); margin-top:3px; }
.wf-detail-actions { text-align:center; padding-top:8px; }
.wf-detail-sub { margin-top:12px; font-size:13px; color:var(--muted); }
.wf-booking-note { margin-top:24px; padding:20px; background:var(--alt); border-radius:8px; text-align:left; }
.wf-booking-title { margin:0 0 8px; color:var(--heading); font-size:15px; font-weight:700; }
.wf-booking-text { margin:0 0 8px; color:var(--text); font-size:14px; line-height:1.8; }
.wf-booking-source { margin:12px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }
.wf-booking-source:empty { display:none; }
.wf-source-original { margin-top:12px; border-top:1px solid var(--border); padding-top:12px; font-size:12px; color:var(--muted); }
.wf-source-original :where(summary) { cursor:pointer; }
.wf-source-original .wf-booking-text { margin-top:8px; font-size:13px; }
@media (max-width:768px) {
 .wf-legacy-row { flex-direction:column; padding:16px; }
 .wf-legacy-image,.wf-legacy-image-empty { width:100%; height:160px; }
 .wf-legacy-actions { align-self:stretch; margin-top:12px; }
 .wf-legacy-register { display:flex; justify-content:center; width:100%; }
 .wf-legacy-info { flex-direction:column; gap:6px; }
 .wf-detail-body { padding:24px 20px; }
 .wf-detail-title { font-size:22px; }
}
@media (max-width:480px) {
 .wf-shell-event { padding-inline:16px; }
 .wf-legacy-detail { border-radius:8px; }
 .wf-detail-body { padding:20px 16px; }
 .wf-detail-badges { gap:6px; margin-bottom:12px; }
 .wf-detail-badge { padding:5px 10px; font-size:12px; }
 .wf-detail-title { font-size:20px; margin-bottom:16px; }
 .wf-detail-fact { padding:10px 0; gap:8px; }
 .wf-detail-fact .wf-icon { width:18px; font-size:14px; }
 .wf-detail-label { width:50px; font-size:14px; }
 .wf-detail-value { font-size:14px; }
 .wf-detail-note { margin:4px 0 12px 26px; padding:10px 12px; }
 .wf-detail-note-text { font-size:12px; }
 .wf-latest-link { font-size:13px; }
 .wf-detail-description { padding:16px; font-size:14px; margin-bottom:20px; }
 .wf-detail-sub { font-size:12px; }
}
.wf-editorial { display:flex; flex-direction:column; gap:28px; }
.wf-editorial-group { padding:28px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.wf-editorial-group > .wt-panel-title { margin:0 0 18px; }
.wf-editorial-group > .wt-guide-text:last-child { margin-bottom:0; }
.wf-editorial-official { background:var(--alt); }
.wf-editorial-site { background:var(--accent-soft); }
.wf-editorial-note { margin:0 0 24px; }
.wf-editorial-faq { margin-top:32px; padding-top:26px; border-top:1px solid var(--border); }
.wf-editorial-faq-title { margin:0 0 18px; color:var(--heading); font-size:20px; line-height:1.5; font-weight:700; }
.wf-editorial-meta { margin:0; padding:0 4px; }
.wf-editorial-text { white-space:pre-line; }
@media (max-width:640px) {
 .wf-editorial { gap:20px; }
 .wf-editorial-group { padding:22px 18px; }
 .wf-editorial-group > .wt-panel-title { margin-bottom:14px; font-size:21px; }
 .wf-editorial-note { margin-bottom:20px; }
 .wf-editorial-faq { margin-top:26px; padding-top:22px; }
 .wf-editorial-faq-title { font-size:18px; }
}
.wf-floating-register { position:fixed; inset:auto 0 0; z-index:70; display:flex; justify-content:center; padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background:var(--surface); border-top:1px solid var(--border); box-shadow:0 -4px 20px rgb(40 66 67 / 10%); }
.wf-floating-register-link { display:flex; align-items:center; justify-content:center; width:100%; max-width:400px; min-height:56px; padding:12px 24px; border-radius:10px; background:var(--accent); color:#fff; font-size:18px; font-weight:700; line-height:1.5; text-align:center; text-decoration:none; }
.wf-floating-register-link:hover { background:var(--accent-deep); color:#fff; }
.hv2-page:has(.wf-floating-register) { padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px)); }
:root:has(.wf-floating-register) { scroll-padding-bottom:calc(104px + env(safe-area-inset-bottom, 0px)); }
@media (max-width:1399px) {
 .hv2-page:has(.wf-floating-register) .hv2-quick { bottom:calc(100px + env(safe-area-inset-bottom, 0px)); }
}
@media print {
 .wf-floating-register { display:none; }
 .hv2-page:has(.wf-floating-register) { padding-bottom:0; }
}
