/* Edition-specific content; original layout, type, spacing and interaction styles remain. */

/* Small functional icons share the palette, while their silhouettes remain distinct at 18–28px. */
svg.nb-icon{--icon-ink:#1b4c7c;--icon-soft:#b9d8ff;--icon-paper:#fff5dd;--icon-accent:#0864e9;fill:none;stroke:var(--icon-ink);stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none;overflow:visible;transition:transform .16s ease}
svg.nb-icon .icon-soft{fill:var(--icon-soft)}svg.nb-icon .icon-paper{fill:var(--icon-paper)}svg.nb-icon .icon-accent{fill:var(--icon-accent);stroke:none}svg.nb-icon .icon-detail{stroke-width:2}
#map-types .nb-icon{width:26px;height:26px}#map-types button[aria-pressed=false] .nb-icon{--icon-soft:#e5edf7;--icon-paper:#f6f8fb;--icon-ink:#667d98;--icon-accent:#667d98}#map-types button[aria-pressed=true] .nb-icon,.category-nav a[aria-current=page] .nb-icon{--icon-ink:#0864e9}
.place-marker .nb-icon{--icon-ink:#fff;--icon-soft:#4f91ec;--icon-paper:#e6f1ff;--icon-accent:#fff}
@media(hover:hover){:is(button,a):hover>.nb-icon,.map-directory-link:hover .nb-icon{transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){svg.nb-icon{transition:none}:is(button,a):hover>.nb-icon,.map-directory-link:hover .nb-icon{transform:none}}
.festival-directory {margin:24px 0;padding:20px;background:#f8fbff;border:1px solid #dbe3ee}
.festival-directory h3{margin-top:0}.festival-directory-list{list-style:none;margin:0;padding:0;max-height:520px;overflow:auto}
.festival-directory-list li{padding:16px 0;border-bottom:1px solid #dbe3ee}.festival-directory-list li p{line-height:1.6;color:#53677e;font-size:14px;margin:8px 0}
.festival-directory-list li a{display:inline-block;margin:6px 18px 6px 0;font-size:14px;font-weight:650;color:#135bc8}
.festival-directory-list .benefit-status{display:inline-block;margin:6px 0 0 8px;font-size:12px}
.place-item{padding:12px 0}.place-heading{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:6px 14px}.place-heading>button{flex:1 1 180px;min-width:0;line-height:1.45;padding:3px 0;min-height:32px}.place-item .benefit-status{flex:0 0 auto;font-size:11px;line-height:1.5;white-space:nowrap;display:inline-block;margin:3px 0 0;padding:3px 7px}.place-item .place-actions{display:flex;flex-wrap:wrap;gap:0 16px;align-items:center}.place-item .place-actions a{margin:0;padding:8px 0;min-height:36px;line-height:20px}.place-actions .text-button{min-height:40px}
.map-region-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}#map-region{min-height:44px;padding:8px 28px 8px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink)}
.map-layout:has(.map-panel[data-state=error]){grid-template-columns:1fr;min-height:0}.map-panel[data-state=error]{min-height:0;padding:18px 20px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px;background:var(--blue-soft)}.map-panel[data-state=error] #kakao-map{display:none}.map-panel[data-state=error] #map-status{position:static;flex:1 1 260px;padding:0;border:0;background:transparent;font-size:13px}.map-panel[data-state=error] #map-retry{position:static;min-height:40px;font-size:13px;padding:8px 12px}.map-panel[data-state=error]+.place-panel{border-left:0;border-top:1px solid var(--line)}
.place-visit-note{line-height:1.5}.footer-faq{display:block;margin-top:10px}.map-coverage-note span{display:block;margin:8px 0;line-height:1.6}
.place-panel .place-empty{padding:0;margin-top:18px}.map-layout:has(.map-panel[data-state=error]){height:auto}.map-panel[data-state=error]+.place-panel{max-height:650px}
.archive-banner{background:#fff1cf;color:#513c12;padding:14px;text-align:center;font:600 15px/1.5 sans-serif;position:relative;z-index:100}
.festival-date{font-size:14px;color:#1b4e9e;margin:12px 0}.benefit-status--unknown{background:#f0f3f6;color:#52657a}
@media(max-width:600px){.festival-directory{padding:16px 12px}.festival-directory-list .benefit-status{margin-left:0;display:table}.hero-copy .intro>p:last-child{line-height:1.7}}

.category-page .filter-bar{display:flex;margin-bottom:8px;padding:12px 0;justify-content:flex-end;border-bottom:1px solid var(--line)}
.hero-scene-controls button{min-height:44px}
/* The image's 4:3 height and its controls must both fit at every window height. */
.editorial-hero{height:auto}
.hero-scenes{height:auto;min-height:0;align-self:center}.hero-scene-frame{position:relative;inset:auto;aspect-ratio:4/3}.hero-scene-controls{position:relative}
.tile .category-object{mix-blend-mode:normal;object-fit:contain}
@media(min-width:801px) and (max-width:1100px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile:nth-child(2){border-right:0}}
@media(max-width:360px){.tile .category-object{width:70px;height:70px;top:auto;bottom:0;right:-14px;transform:none}.tile:hover .category-object{transform:translateY(-3px)}.tile strong{max-width:100%}.tile small{max-width:calc(100% - 46px);word-break:normal}}
.participant-action{background:#f4f8ff;border-left:3px solid var(--blue);padding:16px 18px;margin:12px 0}
.participant-action h5{font-size:14px;margin:0 0 8px;color:#174a92;line-height:1.5}.participant-action p{font-size:12px;color:#53677e;line-height:1.8;margin:8px 0}
.participant-action ol{font-size:13px;line-height:1.8;margin:10px 0;padding-left:20px;color:#344a63}.participant-action li+li{margin-top:6px}
.action-primary a{font-size:14px}.participant-finders{border-top:1px solid #d5dfed;margin-top:12px;padding-top:14px}.participant-finders>strong{font-size:12px;color:#53677e}
@media(max-width:600px){.participant-action{padding:14px 12px}.participant-action ol{padding-left:18px}}
.participant-controls.has-regions{grid-template-columns:minmax(0,1.4fr) minmax(105px,.75fr) minmax(100px,.7fr)}
.branch-coverage,.branch-note{font-size:12px;line-height:1.8;color:#53677e;margin:10px 0}
.participant-branches{margin:8px 0 12px;border:1px solid #d3dfed;background:#f9fbff}
.participant-branches>summary{padding:12px 14px;font-size:14px;line-height:1.6;min-height:44px;cursor:pointer;color:#1458b7;font-weight:650;box-sizing:border-box}
.participant-branches>summary>span{font-size:12px;font-weight:400;color:#53677e;margin-left:8px}
.branch-scroll{max-height:248px;overflow:auto;margin:0 14px;background:#fff;border-top:1px solid #d3dfed}
.branch-scroll ul{list-style:none;margin:0;padding:0}.branch-scroll li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;border-bottom:1px solid #e1e8f1;padding:10px;font-size:13px;line-height:1.5}
.branch-scroll strong{font-weight:550}.branch-region{color:#52708f;font-size:12px}.branch-region.is-unknown{color:#71634b;font-size:11px}.participant-branches .branch-note{margin:10px 14px 14px}
@media(max-width:600px){.participant-controls.has-regions{grid-template-columns:1fr 1fr}.participant-controls.has-regions>label:first-child{grid-column:1/-1}.branch-scroll li{grid-template-columns:78px minmax(0,1fr);padding:10px 6px}.participant-branches>summary>span{display:block;margin:4px 0 0}}
.festival-directory input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

.participant-jump{display:flex;justify-content:space-between;gap:12px;align-items:center;width:100%;padding:14px 18px;margin:14px 0 24px;border:1px solid #cbd9ec;background:#f5f9ff;color:#1458b7;font-family:inherit;font-size:15px;line-height:1.5;font-weight:650;text-align:left;cursor:pointer}
.participant-directory{margin:32px 0;scroll-margin-top:92px;border-top:2px solid var(--ink);padding-top:24px}
.participant-heading,.participant-row-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.participant-heading h3{margin:6px 0 0;font-size:23px;letter-spacing:-.7px;line-height:1.4}
.participant-heading .eyebrow{margin:0;font-size:12px;color:#52657a}
.participant-total{font-size:36px;font-weight:750;color:var(--blue);white-space:nowrap}.participant-total small{font-size:14px;font-weight:500;margin-left:4px}
.participant-intro{font-size:14px;line-height:1.8;color:#52657a;margin:12px 0 20px}
.participant-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,.52fr);gap:12px;background:#f5f8fc;padding:16px}
.participant-controls label{display:block;min-width:0;font-size:12px;font-weight:650;line-height:1.5}
.participant-controls input,.participant-controls select{box-sizing:border-box;display:block;width:100%;min-width:0;min-height:44px;border:1px solid #bdcbdc;border-radius:0;background:#fff;color:var(--ink);font-family:inherit;font-size:14px;line-height:1.4;font-weight:400;padding:10px;margin-top:6px}
.participant-result-count{font-size:12px;color:#607188;margin:12px 0 0}.participant-list{list-style:none;margin:0;padding:0}
.participant-row{padding:23px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere;scroll-margin-top:100px}.participant-row h4{font-size:19px;line-height:1.4;margin:0;font-weight:700;letter-spacing:-.4px}
.participant-row .benefit-status{flex-shrink:0;font-size:11px;white-space:nowrap}
.participant-program{font-size:12px;color:#68798e;line-height:1.7;margin:7px 0}.participant-value{font-size:17px;font-weight:650;color:#1554b2;line-height:1.5;margin:9px 0}
.participant-items{font-size:14px;line-height:1.7;margin:6px 0;color:#344a63}.participant-items>span{font-size:12px;color:#61758c;margin-right:10px;font-weight:600}.participant-items small{font-size:12px}
.participant-conditions{margin:8px 0 0}.participant-conditions summary{display:list-item;cursor:pointer;font-size:13px;color:#445d79;min-height:44px;box-sizing:border-box;padding:12px 0}.participant-conditions p{font-size:13px;line-height:1.8;color:#53677e;padding:10px 14px;background:#f7f9fc;margin:0 0 8px}
.participant-links{display:flex;flex-wrap:wrap;gap:0 18px}.participant-links a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:#1458b7;font-weight:650;text-decoration:underline;text-underline-offset:4px}
.participant-more{display:block;width:100%;min-height:46px;margin:16px 0 0;border:1px solid #c6d3e3;background:#fff;color:#244b80;font-family:inherit;font-size:14px;line-height:1.5;font-weight:650;cursor:pointer}.participant-more:hover,.participant-jump:hover{background:#eaf2ff}
.participant-more[hidden]{display:none}.participant-reviewed{font-size:12px;line-height:1.7;color:#718196;margin:14px 0 0}.participant-empty{padding:30px 12px;color:#53677e;line-height:1.7}
.participant-directory :is(input,select,button,a,summary):focus-visible,.participant-jump:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.weekly-items{padding:18px 20px;background:#f5f9ff;margin:20px 0;border-left:3px solid var(--blue)}.weekly-items>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.weekly-items h3{font-size:15px;line-height:1.5;margin:0}.weekly-items p{font-size:14px;line-height:1.8;margin:10px 0}.weekly-items a{display:inline-flex;align-items:center;min-height:40px;color:#1458b7;font-size:13px;font-weight:650}
@media(max-width:600px){.participant-controls{grid-template-columns:1fr;padding:14px}.participant-heading h3{font-size:21px}.participant-total{font-size:29px}.participant-row-heading{align-items:flex-start;flex-wrap:wrap;gap:6px}.participant-row h4{font-size:18px}.participant-row .benefit-status{margin-top:2px}.participant-jump{padding:12px;font-size:14px}.weekly-items{padding:14px}.participant-conditions summary{min-height:44px;box-sizing:border-box;padding-top:12px}}

/* PM review: keep the map and results ahead of less-used display settings. */
#map-search-status:empty,.map-search-results:empty{display:none}
.map-controls{gap:8px 14px;margin-bottom:8px}
.map-controls #location-status{flex-basis:100%;font-size:12px;line-height:1.5}
.map-secondary-controls{display:flex;align-items:flex-start;gap:16px;margin:8px 0 14px}
.map-options{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;background:#fff}
.map-options>summary{cursor:pointer;min-height:44px;padding:12px 14px;font-size:13px;font-weight:600;color:var(--ink)}
.map-options[open]>summary{border-bottom:1px solid var(--line)}
.map-options .map-toolbar{padding:10px 12px 12px;margin:0;gap:10px}
.map-options .map-display-options{display:flex;flex-wrap:wrap;gap:8px 18px}
.map-secondary-controls>#map-list-jump{min-height:44px;flex:none;padding:10px 0;font-size:13px}
.map-auto-note{margin:8px 0;color:var(--muted);font-size:12px}
.place-panel{scroll-margin-top:116px}
.map-layout{margin-bottom:16px}
.map-coverage-note{margin:0 0 20px}
.map-all-results{margin:0 0 8px;min-height:44px}
.participant-readiness{padding:12px 14px;margin:10px 0;border-left:3px solid #ac731c;border-radius:0 5px 5px 0;background:#fff6e8;color:#704b17;font-size:13px;line-height:1.6}
.participant-readiness strong{display:block;font-size:13px;font-weight:700;margin-bottom:3px}
.participant-readiness span{display:block}
.participant-readiness[data-status="exact-event"]{border-left-color:var(--blue);background:#edf5ff;color:#244c7e}
@media(max-width:600px){
  #nearby-view .map-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
  #nearby-view .map-controls #my-location{grid-column:1;grid-row:1;min-width:0;padding:10px 8px;font-size:13px}
  #nearby-view .map-region-label{grid-column:2;grid-row:1;gap:6px;font-size:12px;min-width:0}
  #nearby-view #map-region{min-width:0;max-width:120px;font-size:13px;padding:8px 22px 8px 8px}
  #nearby-view .map-controls #national-view{grid-column:1;grid-row:2;width:auto;min-height:36px;padding:5px 8px}
  #nearby-view .map-controls #reset-map-search{grid-column:2;grid-row:2;min-height:36px;padding:5px 0;justify-self:end}
  #nearby-view .map-controls #location-status{grid-column:1/-1;grid-row:3;font-size:11px;line-height:1.5}
  #nearby-view .map-search-help{font-size:11px;line-height:1.5;margin:7px 0}
  #nearby-view #map-search-form{height:46px;margin-bottom:0}
  #nearby-view #map-search-status{line-height:1.5;margin:7px 0}
  .map-secondary-controls{gap:12px;margin:8px 0 12px}
  .map-options .map-toolbar>.filter-group{width:100%;gap:5px}
  .map-options .label-toggle{min-height:40px}
  .map-options #map-types button{min-height:42px;font-size:12px;padding:8px}
  .place-panel{scroll-margin-top:114px}
}
@media(max-width:360px){
  #nearby-view .map-region-label{font-size:0;gap:0}
  #nearby-view #map-region{max-width:110px}
  .map-options>summary,.map-secondary-controls>#map-list-jump{font-size:12px}
}
.results-section,#selected-detail,.participant-directory,.participant-row,.place-panel,#main{scroll-margin-top:calc(var(--sticky-header-height,112px) + 16px)}
.search-context{display:flex;flex-direction:column;gap:8px;margin:0 0 18px;font-size:14px;line-height:1.55}.search-context a{color:var(--blue);font-weight:650}.search-context span{padding:10px 12px;background:#fff8e9;color:#664510;border:1px solid #e5d1a8;border-radius:6px}
/* Claude review 2026-10-28: boot view, focus visibility, contrast, readable mobile text, layout fixes */
html[data-boot-view] #home-view{display:none}
html[data-boot-view=nearby] #nearby-view[hidden],html[data-boot-view=faq] #faq-view[hidden]{display:block!important}
html[data-boot-view] #nav-home[aria-current]{border-color:transparent;color:inherit}
.search:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.faq-search:focus-within{outline:2px solid var(--blue)}
.header-search:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.participant-program,.participant-reviewed{color:#56677c}
.map-layout{overflow:clip}
.tile small{word-break:keep-all}
.benefit-detail .weekly-items{padding:14px 16px}
.small-note,#location-status{text-wrap:pretty}
.category-current{color:var(--muted)}
@media(max-width:800px){.place-item p{font-size:13px}#nearby-view .map-search-help,#nearby-view .map-controls #location-status{font-size:13px}.participant-program,.participant-reviewed{font-size:13px}}
@media(max-width:520px){.tile small{font-size:12px}}
@media(max-width:640px){.faq-categories{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.faq-categories a{flex:none}}

/* Claude re-review 2026-10-28: focus not obscured by sticky bars, small-screen header, targets, readable sizes */
html{scroll-padding-top:calc(var(--sticky-header-height,112px) + 12px)}
html:has(#faq-view:not([hidden])){scroll-padding-top:calc(var(--sticky-header-height,112px) + var(--faq-chips-height,60px) + 12px)}
.official-button:focus-visible,.detail-actions .primary-link:focus-visible{outline-color:#0864e9}
h1[tabindex="-1"]:focus:not(:focus-visible),h2[tabindex="-1"]:focus:not(:focus-visible){outline:none}
::placeholder{color:#6b7280;opacity:1}
.all-overview-list{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}
.category-back,.footer a{display:inline-flex;align-items:center;min-height:24px}
.skip-list{position:absolute;left:-9999px}.skip-list:focus{position:static;display:inline-block;margin:0 0 8px;padding:6px 10px;border-radius:6px;background:var(--blue);color:#fff}
@media(max-width:359px){.header nav{gap:12px}.brand{font-size:20px}}
@media(max-width:800px){.place-actions a{font-size:13px}.place-item .benefit-status,.festival-directory-list .benefit-status{font-size:12px}.faq-categories a{font-size:13px}}
#query::placeholder,#header-query::placeholder,#map-query::placeholder,#faq-query::placeholder{color:#6b7280;opacity:1}
#faq-list:empty{min-height:100vh}#faq-categories:empty{min-height:56px}
.store-note{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.store-note a{color:#0755c4;font-weight:700}
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus{outline:none}
.ai-help{margin:24px 0 0;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}.ai-help h3{margin:0 0 6px;font-size:17px}.ai-help h3 small{margin-left:6px;color:var(--muted);font-size:13px;font-weight:500}.ai-help #ai-ask{margin-top:6px}.ai-picks{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px}.ai-picks li{padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff}.ai-picks a{font-weight:700;color:#0755c4}.ai-picks .benefit-status{margin-left:8px}.ai-pick-facts{margin:6px 0 0;font-size:14px;color:var(--ink)}.ai-pick-reason{margin:6px 0 0;font-size:14px;color:var(--muted)}.ai-pick-reason strong{color:var(--ink);margin-right:4px}
.search-result-list li p a{display:inline;font-size:inherit;line-height:inherit;font-weight:700;color:#0755c4}
.ai-off-topic{margin:12px 0 0;padding:10px 12px;border-radius:6px;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:600}
.ai-consent{margin:8px 0 0;color:var(--ink);font-size:14px;font-weight:600;line-height:1.5}
.hero-ai-hint{max-width:520px;margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.hero-ai-hint strong{color:#0755c4}
.festival-period-note{margin:12px 0 0;padding:12px 14px;border-left:3px solid var(--blue);background:var(--blue-soft);color:var(--ink);font-size:15px;line-height:1.55}
.search-restatement{margin:0 0 6px;color:var(--ink);font-size:20px;font-weight:800;line-height:1.4}.age-note{color:var(--ink)}
.keyword-heading{margin:22px 0 4px;font-size:17px;color:var(--ink)}.ai-help{margin-top:16px}
/* Long one-word labels (e.g. 코리아듀티프리페스타) wrap inside their column instead of running into the value. */
dl>div>dt{min-width:0;overflow-wrap:anywhere}
#search-empty[hidden],.keyword-empty-note[hidden]{display:none}.keyword-empty-note{margin-top:18px}
/* AI search restored notice: same dialog as home-notice.css; keep the four friends' heads in the cropped art. */
#ai-notice-description{font-size:14px;line-height:1.75;letter-spacing:-.02em;word-break:keep-all}#ai-notice-description p{margin:0 0 10px}#ai-notice-description p:last-child{margin-bottom:0}.ai-notice .home-notice-art{object-position:center 35%}.ai-notice .home-notice-close{left:10px;right:auto}
