/* Bunka Denrai visitor guide. All rules scoped to this additive module. */
body.view-bunka-denrai #sidePanel { display:none!important; }
body.view-bunka-denrai .workspace { grid-template-columns:minmax(0,1fr); }
body.view-bunka-denrai #detailPanel { display:block; grid-column:1/-1; width:100%; min-width:0; }
.bunka-guide { --bunka-ink:#f4eef2; --bunka-muted:#cabfc9; --bunka-line:#514151; --bunka-gold:#f3d393; --bunka-panel:#211923; max-width:1060px; margin-inline:auto; padding:clamp(1rem,4vw,3rem); color:var(--bunka-ink); line-height:1.8; overflow-wrap:anywhere; }
.bunka-guide *, .bunka-entry * { box-sizing:border-box; }
.bunka-guide p { margin:.7rem 0; }
.bunka-guide a { color:#e3bdea; text-underline-offset:.2em; }
.bunka-guide h1,.bunka-guide h2,.bunka-guide h3,.bunka-guide h4 { color:var(--bunka-ink); line-height:1.55; }
.bunka-guide h2 { font-size:clamp(1.45rem,4vw,2rem); margin:.35rem 0 .6rem; }
.bunka-guide h3 { font-size:1.1rem; margin:0 0 .45rem; }
.bunka-guide h4 { font-size:1rem; margin:0 0 .4rem; }
.bunka-guide button,.bunka-guide select,.bunka-guide summary,.bunka-guide a { -webkit-tap-highlight-color:transparent; }
.bunka-guide button:focus-visible,.bunka-guide select:focus-visible,.bunka-guide summary:focus-visible,.bunka-guide a:focus-visible,.bunka-entry:focus-visible { outline:3px solid #e7c7f0; outline-offset:4px; }
.bunka-back { display:inline-flex; align-items:center; min-height:44px; font-size:.9rem; margin-bottom:1.5rem; }
.bunka-hero { padding:clamp(.5rem,3vw,2rem) 0 2rem; border-bottom:1px solid var(--bunka-line); }
.bunka-kicker { color:var(--bunka-gold); font:600 .77rem/1.7 sans-serif; letter-spacing:.12em; }
.bunka-hero h1 { font-size:clamp(2.5rem,7vw,4.5rem); line-height:1.3; letter-spacing:.04em; margin:.65rem 0 1.2rem; }
.bunka-hero h1 span { display:block; font-size:.46em; margin-top:.35em; letter-spacing:.1em; }
.bunka-hero-lead { color:#e2cee5; font-size:clamp(1.05rem,2.7vw,1.3rem); }
.bunka-hero-times { display:flex; gap:1rem 2rem; margin:1.35rem 0; flex-wrap:wrap; }
.bunka-hero-times span { display:inline-flex; align-items:baseline; gap:.55rem; font-size:.9rem; color:var(--bunka-muted); }
.bunka-hero-times strong { font:600 1.7rem/1.3 sans-serif; color:var(--bunka-ink); }
.bunka-updated { font-size:.76rem; color:var(--bunka-muted); }
.bunka-mobile-break { display:none; }
.bunka-jumps { display:flex; gap:.5rem; flex-wrap:wrap; margin:1.3rem 0; }
.bunka-jumps button { min-height:44px; border:1px solid var(--bunka-line); border-radius:7px; background:#231926; color:#ecdced; padding:.5rem .8rem; font:inherit; font-size:.84rem; cursor:pointer; }
.bunka-jumps button:hover { background:#3a2940; }
.bunka-alert { font-size:.86rem; padding:1rem 1.15rem; border-left:3px solid #ab7db8; background:#251b29; color:#e9dfea; }
.bunka-area-alert { border-left-color:#dab976; background:#28221a; }
.bunka-area-alert strong { display:block; color:var(--bunka-gold); }
.bunka-section { margin-top:3rem; padding-top:2.4rem; border-top:1px solid var(--bunka-line); scroll-margin-top:6rem; }
.bunka-section > header { margin-bottom:1.4rem; }
.bunka-section > header > p { max-width:48rem; color:var(--bunka-muted); }
.bunka-section > header > .bunka-kicker { color:var(--bunka-gold); }
.bunka-planner { border:1px solid #756041; padding:clamp(1rem,3vw,2rem); border-radius:12px; background:linear-gradient(135deg,#30251e 0%,#211923 56%); }
.bunka-select-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:1rem; }
.bunka-select-grid label { display:flex; flex-direction:column; gap:.5rem; font-weight:600; font-size:.88rem; min-width:0; }
.bunka-select-grid select { width:100%; min-width:0; min-height:50px; padding:.65rem .6rem; border:1px solid #796183; border-radius:7px; background:#171319; color:#f4edf5; font:inherit; font-size:1rem; color-scheme:dark; }
.bunka-planner-settings { margin:1rem 0; padding:.3rem 0; }
.bunka-planner-settings summary { min-height:44px; cursor:pointer; padding:.5rem 0; color:#dbc0e4; font-size:.9rem; }
.bunka-planner-settings[open] summary { margin-bottom:.7rem; }
.bunka-muted { color:var(--bunka-muted); font-size:.83rem; }
.bunka-empty { padding:2rem 0 1rem; max-width:35rem; }
.bunka-empty > span { display:block; color:#9f849f; font:600 1.2rem/1.5 sans-serif; letter-spacing:.12em; margin:0 0 1rem; }
.bunka-empty h3 { font-size:1.05rem; }
.bunka-empty p { font-size:.86rem; color:var(--bunka-muted); }
.bunka-plan-title { padding-top:1.1rem; margin:1.3rem 0; border-top:1px solid #655241; }
.bunka-plan-title h3 { font-size:1.4rem; }
.bunka-time-pair { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:1rem; align-items:stretch; margin-top:1rem; }
.bunka-time-pair > div { padding:1.2rem; border:1px solid #725d40; border-radius:8px; display:flex; align-items:flex-start; flex-direction:column; gap:.25rem; min-width:0; }
.bunka-time-pair > .bunka-personal-time { background:#302719; }
.bunka-time-pair > .bunka-official-time { background:#281e2d; border-color:#866693; }
.bunka-time-pair strong { font:700 clamp(2rem,5vw,3rem)/1.35 sans-serif; color:var(--bunka-gold); }
.bunka-official-time strong { color:#e4bcec; }
.bunka-time-pair small { font-size:.74rem; color:var(--bunka-muted); }
.bunka-time-pair > div > span { font-size:.88rem; }
.bunka-time-arrow { align-self:center; color:#bfa886; font-size:1.8rem; }
.bunka-calculation { font-size:.76rem; color:#d4c3a4; }
.bunka-planning-note { padding:.8rem 1rem; border:1px dashed #726049; border-radius:7px; font-size:.83rem; color:#dfd1b8; }
.bunka-warning { border-left:4px solid #e3bb68; padding:1rem 1.1rem; margin:1.3rem 0; background:#33291d; }
.bunka-warning strong { color:#f6d697; }
.bunka-warning p { white-space:pre-line; font-size:.9rem; }
.bunka-free-note { padding:1rem; border:1px solid var(--bunka-line); border-radius:7px; }
.bunka-steps { list-style:none; padding:0; margin:1.5rem 0 0; }
.bunka-steps li { display:grid; grid-template-columns:2.7rem minmax(0,1fr); gap:1rem; position:relative; padding:0 0 1.6rem; }
.bunka-steps li:not(:last-child)::after { content:''; position:absolute; width:1px; background:#70604b; left:1.35rem; top:2.8rem; bottom:.3rem; }
.bunka-step-number { display:flex; justify-content:center; align-items:center; width:2.7rem; height:2.7rem; border:1px solid #9d8156; border-radius:50%; color:var(--bunka-gold); font:600 .85rem/1 sans-serif; background:#2a211a; }
.bunka-steps p { margin:.3rem 0 0; font-size:.92rem; color:#e0d7e1; white-space:pre-line; }
.bunka-step-source { margin-top:0; }
.bunka-source { display:inline-flex; min-height:38px; align-items:center; font-size:.77rem; }
.bunka-map-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.bunka-map-grid figure { padding:0; margin:0; border:1px solid var(--bunka-line); border-radius:9px; overflow:hidden; background:#211923; }
.bunka-map-image { display:flex; width:100%; aspect-ratio:1.2; background:#eeece4; align-items:center; justify-content:center; overflow:hidden; }
.bunka-map-image img { display:block; width:100%; height:100%; object-fit:contain; }
.bunka-map-grid figcaption { padding:1.1rem; }
.bunka-map-grid figcaption p { color:var(--bunka-muted); font-size:.83rem; }
.bunka-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border:1px solid #896495; border-radius:7px; padding:.5rem .8rem; background:#37223f; color:#f2d5fa!important; font:inherit; font-size:.85rem; cursor:pointer; text-decoration:none; }
.bunka-station-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.bunka-station-grid article { border:1px solid var(--bunka-line); border-radius:8px; padding:1.25rem; background:var(--bunka-panel); }
.bunka-station-grid article h3 { min-height:1.6em; }
.bunka-walk-time { color:var(--bunka-gold); font-size:.9rem; }
.bunka-walk-time strong { font:600 2.4rem/1.3 sans-serif; }
.bunka-walk-list { margin:1.5rem 0; }
.bunka-walk-list p { display:flex; gap:.25rem 1rem; flex-wrap:wrap; padding:.8rem 0; border-bottom:1px solid var(--bunka-line); font-size:.88rem; }
.bunka-walk-list strong { flex-basis:100%; }
.bunka-walk-list .bunka-source { min-height:24px; }
.bunka-timeline { list-style:none; padding:0; margin:0; }
.bunka-timeline li { display:grid; grid-template-columns:7rem minmax(0,1fr); gap:1.5rem; border-bottom:1px solid var(--bunka-line); padding:1.3rem 0; }
.bunka-timeline-time { color:var(--bunka-gold); font:600 1.05rem/1.7 sans-serif; padding-top:.05rem; }
.bunka-timeline p { font-size:.9rem; color:var(--bunka-muted); }
.bunka-checklist { list-style:none; margin:0; padding:0; }
.bunka-checklist li { display:flex; align-items:center; gap:1rem; padding:.9rem 0; border-bottom:1px solid var(--bunka-line); }
.bunka-checklist label { display:flex; min-height:44px; gap:.8rem; align-items:flex-start; flex:1; cursor:pointer; }
.bunka-checklist input { accent-color:#cba3d8; width:23px; height:23px; margin:.2rem 0 0; flex-shrink:0; }
.bunka-checklist label span { display:flex; flex-direction:column; gap:.25rem; }
.bunka-checklist label strong { font-size:.95rem; }
.bunka-checklist label small { font-size:.82rem; color:var(--bunka-muted); }
.bunka-checklist input:checked + span strong { color:#bcb3bf; text-decoration:line-through; }
.bunka-text-button { min-height:44px; background:none; border:0; color:#d6acdF; text-decoration:underline; text-underline-offset:.2em; font:inherit; font-size:.85rem; padding:.5rem 0; margin-top:.7rem; cursor:pointer; }
.bunka-faq-group { margin:1.8rem 0; }
.bunka-faq-group > h3 { color:#e1bedb; margin:0 0 .8rem; }
.bunka-faq { border-top:1px solid var(--bunka-line); }
.bunka-faq:last-child { border-bottom:1px solid var(--bunka-line); }
.bunka-faq summary { min-height:54px; padding:.95rem .2rem; cursor:pointer; font-size:.95rem; font-weight:600; }
.bunka-faq[open] summary { color:var(--bunka-gold); }
.bunka-faq > div { padding:0 .2rem 1rem; }
.bunka-faq p { white-space:pre-line; font-size:.9rem; color:#dfd7e1; }
.bunka-sources { font-size:.86rem; }
.bunka-sources ul { list-style:none; padding:0; }
.bunka-sources a { display:inline-flex; align-items:center; min-height:44px; }
.bunka-sr-only { position:absolute; width:1px; height:1px; margin:-1px!important; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.bunka-entry { display:flex; gap:1rem; align-items:center; padding:1.2rem 1.5rem; margin:1rem 0 1.6rem; border:1px solid #816440; border-radius:9px; background:linear-gradient(120deg,#34271c,#251829); color:#f3e4c8!important; text-decoration:none; min-width:0; }
.bunka-entry:hover { background:linear-gradient(120deg,#47351f,#33203a); }
.bunka-entry-date { font:600 .75rem/1.6 sans-serif; color:#e5c68f; letter-spacing:.07em; max-width:7rem; }
.bunka-entry-copy { display:flex; flex:1; flex-direction:column; min-width:0; gap:.35rem; }
.bunka-entry-copy strong { font-size:clamp(1rem,2.8vw,1.3rem); line-height:1.5; }
.bunka-entry-copy > span { font-size:.8rem; color:#d0bdc7; }
.bunka-event-link { display:flex; align-items:center; min-height:48px; padding:.7rem 1rem; color:#edce92; background:#2e241d; border-top:1px solid #6b5437; text-decoration:none; font-size:.85rem; }
@media(max-width:700px) {
  .bunka-guide { padding:1rem; }
  .bunka-map-grid,.bunka-select-grid,.bunka-station-grid { grid-template-columns:minmax(0,1fr); }
  .bunka-section { margin-top:2.4rem; padding-top:1.8rem; }
  .bunka-planner { padding:1rem; }
  .bunka-mobile-break { display:block; }
  .bunka-time-pair { grid-template-columns:minmax(0,1fr); gap:.6rem; }
  .bunka-time-pair > div { padding:1rem; }
  .bunka-time-pair strong { font-size:2.65rem; }
  .bunka-time-arrow { transform:rotate(90deg); justify-self:center; line-height:1; }
  .bunka-steps li { gap:.7rem; grid-template-columns:2.4rem minmax(0,1fr); }
  .bunka-step-number { width:2.4rem; height:2.4rem; }
  .bunka-steps li:not(:last-child)::after { left:1.2rem; top:2.5rem; }
  .bunka-timeline li { grid-template-columns:5.3rem minmax(0,1fr); gap:.75rem; }
  .bunka-timeline-time { font-size:.9rem; }
  .bunka-checklist li { align-items:flex-start; flex-direction:column; gap:.1rem; }
  .bunka-checklist .bunka-source { margin-left:2.2rem; }
  .bunka-entry { flex-wrap:wrap; padding:1rem; gap:.6rem; }
  .bunka-entry-date { flex-basis:100%; max-width:none; }
  .bunka-entry-copy { flex-basis:calc(100% - 2rem); }
}
@media(prefers-reduced-motion:reduce) { .bunka-guide *, .bunka-entry { scroll-behavior:auto!important; transition:none!important; } }
.bunka-distance-heading { margin-top:2rem!important; }
.bunka-distance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.bunka-distance-card { padding:1.2rem; border:1px solid var(--bunka-line); border-radius:8px; background:#221c23; }
.bunka-distance-route { display:grid; grid-template-columns:minmax(0,1fr) minmax(5rem,.7fr) minmax(0,1fr); align-items:center; gap:.5rem; min-height:5rem; text-align:center; }
.bunka-distance-route > span:first-child,.bunka-distance-route > span:last-child { font-size:.88rem; font-weight:600; line-height:1.6; }
.bunka-distance-line { display:flex; flex-direction:column; gap:.1rem; align-items:center; color:var(--bunka-gold); }
.bunka-distance-line strong { font:600 1.1rem/1.5 sans-serif; }
.bunka-distance-line > span { width:100%; font-size:1.4rem; line-height:1.3; }
.bunka-distance-card p { font-size:.79rem; color:var(--bunka-muted); margin-top:.8rem; }
@media(max-width:700px) { .bunka-distance-grid { grid-template-columns:minmax(0,1fr); } .bunka-distance-card { padding:1rem; } }
.bunka-station-advice { display:flex; flex-direction:column; gap:.25rem; padding:.8rem 1rem; border:1px solid #695270; border-radius:7px; background:#281e2d; font-size:.82rem; }
.bunka-station-advice strong { color:#e2c5e9; }
.bunka-station-advice span { color:var(--bunka-muted); }
/* On phones, the official meeting is the first action to check. */
@media(max-width:700px) {
  .bunka-time-pair > .bunka-official-time { order:0; }
  .bunka-time-pair > .bunka-personal-time { order:1; }
  .bunka-time-pair > .bunka-time-arrow { display:none; }
}

/* Ask the event guide without leaving the page. */
.bunka-ai { margin:1.7rem 0; padding:clamp(1rem,3vw,1.65rem); border:1px solid #8d6b96; border-radius:13px; background:linear-gradient(130deg,#302237,#211b27); scroll-margin-top:6rem; }
.bunka-ai header { margin-bottom:1rem; }
.bunka-ai-badge { display:inline-block; color:#e2b8ee; font:600 .7rem/1.6 sans-serif; letter-spacing:.1em; }
.bunka-ai header h2 { font-size:clamp(1.25rem,3.5vw,1.65rem); margin:.35rem 0; }
.bunka-ai header p { font-size:.86rem; color:var(--bunka-muted); margin:.35rem 0; }
.bunka-ai-search { display:flex; gap:.55rem; align-items:stretch; }
.bunka-ai-search input { min-width:0; flex:1; min-height:54px; border:1px solid #8d7797; border-radius:8px; background:#151218; color:#fbf6fb; padding:.85rem .9rem; font:inherit; font-size:1rem; -webkit-appearance:none; appearance:none; }
.bunka-ai-search input::placeholder { color:#b9aaba; opacity:1; }
.bunka-ai-search input:focus-visible { outline:3px solid #e7c7f0; outline-offset:3px; }
.bunka-ai-search button { min-height:54px; flex-shrink:0; border:1px solid #d2adbf; border-radius:8px; background:#ebcddb; color:#2a1a2a; font:600 .95rem/1.5 sans-serif; padding:.8rem 1.15rem; cursor:pointer; }
.bunka-ai-search button:hover { background:#f3ddec; }
.bunka-ai-search button:disabled { opacity:.65; cursor:wait; }
.bunka-ai-examples { display:flex; align-items:center; flex-wrap:wrap; gap:.35rem .55rem; margin:.75rem 0 0; }
.bunka-ai-examples > span { font-size:.75rem; color:var(--bunka-muted); }
.bunka-ai-examples button { min-height:44px; padding:.35rem .65rem; border:1px solid #715878; border-radius:99px; background:#281e2e; color:#e9d5ee; font:inherit; font-size:.79rem; cursor:pointer; }
.bunka-ai-examples button:hover { background:#3a2943; }
.bunka-ai-help { margin:.35rem 0 0!important; color:var(--bunka-muted); font-size:.72rem; }
.bunka-ai-feedback { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.25rem .8rem; }
.bunka-ai-feedback p { color:#e5cedf; font-size:.82rem; margin:.65rem 0 0; }
.bunka-ai-feedback p:empty { display:none; }
.bunka-ai-feedback .bunka-text-button { font-size:.75rem; margin:.3rem 0 0; }
.bunka-ai-answer { margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid #725c7a; }
.bunka-ai-answer[hidden],.bunka-ai [hidden] { display:none!important; }
.bunka-ai-asked { color:#c8b1d0; font-size:.8rem; }
.bunka-ai-answer-text { white-space:pre-wrap; line-height:1.95; font-size:.98rem; }
.bunka-ai-notices { color:var(--bunka-muted); font-size:.76rem; margin:1rem 0; }
.bunka-ai-answer h4 { margin-top:1.25rem; font-size:.84rem; }
.bunka-ai-sources { list-style:none; margin:.25rem 0 0; padding:0; }
.bunka-ai-sources a { display:inline-flex; align-items:center; min-height:44px; font-size:.81rem; }
@media(max-width:480px) {
  .bunka-ai { padding:1rem; }
  .bunka-ai-search { flex-wrap:wrap; }
  .bunka-ai-search input { flex-basis:100%; width:100%; }
  .bunka-ai-search button { width:100%; min-height:47px; padding:.6rem .9rem; }
  .bunka-ai-examples { gap:.3rem; }
  .bunka-ai-examples > span { flex-basis:100%; }
  .bunka-ai-examples button { padding:.35rem .55rem; font-size:.75rem; }
}

/* Limited featured home: keep the complete official artwork visible. */
.bunka-guide { max-width:1180px; padding:clamp(1rem,3vw,2rem); }
.bunka-hero-featured { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding:0; margin:0; border:1px solid #72765a; border-radius:12px; overflow:hidden; background:radial-gradient(ellipse at 100% 0%,#37412b 0%,#1b251d 45%,#141b17 100%); box-shadow:0 16px 48px #0005; }
.bunka-hero-art { display:block; position:relative; min-width:0; align-self:center; background:#263a24; line-height:0; }
.bunka-hero-art img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:contain; }
.bunka-hero-art > span { position:absolute; left:.75rem; bottom:.75rem; padding:.45rem .6rem; border:1px solid #c4c8a750; border-radius:3px; background:#122019d9; color:#efe6c9; font:500 .58rem/1.4 sans-serif; letter-spacing:.11em; }
.bunka-hero-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; min-width:0; padding:clamp(1.3rem,3.5vw,3rem); }
.bunka-hero-copy .bunka-hero-edition { align-self:stretch; padding-bottom:.9rem; margin:0 0 1.35rem; border-bottom:1px solid #d4c68b40; color:#b6bea1; font:500 .61rem/1.5 sans-serif; letter-spacing:.15em; }
.bunka-hero-copy .bunka-kicker { color:#dcc38e; margin:0; font-size:.69rem; }
.bunka-hero-copy h1 { color:#f4e9c9; font-size:clamp(2.8rem,4.7vw,4.25rem); line-height:1.2; letter-spacing:.06em; margin:.5rem 0 1.1rem; white-space:nowrap; }
.bunka-hero-copy h1 span { margin-top:.7em; font-size:.27em; letter-spacing:.28em; color:#d8d7bc; }
.bunka-hero-copy .bunka-hero-lead { margin:0 0 1.35rem; color:#e1e0cc; font-size:clamp(1rem,1.8vw,1.25rem); line-height:1.75; }
.bunka-hero-dates { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin:0 0 1.2rem; }
.bunka-hero-dates > span { display:grid; grid-template-columns:auto 1fr; column-gap:.45rem; align-items:baseline; border-top:1px solid #bdc59870; border-bottom:1px solid #bdc59870; padding:.6rem 0 .7rem; }
.bunka-hero-dates small { grid-column:1/-1; color:#acb797; font:500 .6rem/1.5 sans-serif; letter-spacing:.08em; }
.bunka-hero-dates strong { font:500 clamp(1.8rem,3vw,2.6rem)/1.2 Georgia,serif; color:#f2d797; letter-spacing:-.03em; }
.bunka-hero-dates em { color:#c1c5a7; font:500 .63rem/1.2 sans-serif; }
.bunka-hero-copy .bunka-hero-venue { font-size:.78rem; color:#d6d9c7; line-height:1.7; margin:0; }
.bunka-hero-copy .bunka-hero-times { gap:.5rem 1.2rem; margin:.65rem 0 1.2rem; }
.bunka-hero-copy .bunka-hero-times span { font-size:.72rem; color:#b6bfa9; }
.bunka-hero-copy .bunka-hero-times strong { font-size:1.1rem; color:#ece5cb; }
.bunka-hero-actions { width:100%; display:grid; grid-template-columns:1fr; gap:.55rem; }
.bunka-hero-actions button { display:flex; justify-content:space-between; align-items:center; gap:.7rem; width:100%; min-height:49px; padding:.7rem 1rem; border:1px solid #d0b577; border-radius:5px; background:#e5cd96; color:#19231b; font:600 .87rem/1.5 sans-serif; cursor:pointer; }
.bunka-hero-actions button+button { background:#1d3025; color:#e9deb9; border-color:#7b8a66; }
.bunka-hero-actions button:hover { filter:brightness(1.12); }
.bunka-hero-copy .bunka-hero-archive { margin-top:.8rem; min-height:44px; display:inline-flex; align-items:center; color:#c3c6ad; font-size:.73rem; text-decoration:none; }
.bunka-hero-copy .bunka-hero-archive:hover { text-decoration:underline; }
.bunka-guide .bunka-feature-note { margin:.8rem .1rem 1.2rem; font-size:.67rem; line-height:1.75; color:#a9a69c; }
.bunka-feature-note > span { color:#b8ae96; }
.bunka-feature-note + .bunka-ai { margin-top:1.2rem; }
@media(max-width:700px) {
 .bunka-guide { padding:.75rem; }
 .bunka-hero-featured { grid-template-columns:minmax(0,1fr); border-radius:8px; }
 .bunka-hero-art { width:100%; }
 .bunka-hero-copy { padding:1.5rem 1.2rem 1rem; }
 .bunka-hero-copy .bunka-hero-edition { font-size:.6rem; margin-bottom:1rem; padding-bottom:.65rem; }
 .bunka-hero-copy h1 { font-size:clamp(2.7rem,11vw,4rem); margin:.55rem 0 1rem; }
 .bunka-hero-copy h1 span { font-size:.3em; }
 .bunka-hero-copy .bunka-hero-lead { margin-bottom:1.1rem; font-size:1.08rem; }
 .bunka-hero-copy .bunka-hero-lead br { display:none; }
 .bunka-hero-dates { margin-bottom:1rem; }
 .bunka-hero-dates strong { font-size:2.3rem; }
 .bunka-hero-actions { grid-template-columns:1fr 1fr; gap:.5rem; }
 .bunka-hero-actions button { padding:.75rem .65rem; font-size:.76rem; gap:.3rem; }
 .bunka-hero-copy .bunka-hero-archive { margin-top:.45rem; }
}
@media(max-width:360px) { .bunka-hero-actions { grid-template-columns:1fr; } }

.bunka-hero-venue small { display:block; margin-top:.3rem; color:#b7bfa9; font-size:.7rem; }

/* Site estimates are visually distinct from the published official times. */
.bunka-distance-estimate { border-color:#8a7650; }
.bunka-distance-card .bunka-estimate-badge { display:inline-block; margin:0 0 .9rem; padding:.25rem .55rem; border:1px dashed #a68b51; border-radius:4px; color:#ecd29d; background:#342c20; font:600 .7rem/1.6 sans-serif; }
.bunka-distance-description { white-space:pre-line; }

.bunka-distance-estimate .bunka-distance-line small { font:500 .72rem/1.3 sans-serif; }
.bunka-distance-estimate .bunka-distance-line strong { white-space:nowrap; font-size:1.06rem; }

/* Searchable, source-linked visitor Q&A. */
.bunka-qa-filters { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:1rem; }
.bunka-qa-filters label { display:flex; flex-direction:column; gap:.45rem; min-width:0; font-size:.84rem; color:var(--bunka-muted); }
.bunka-qa-filters input,.bunka-qa-filters select { width:100%; min-width:0; min-height:48px; padding:.7rem; background:#171319; color:var(--bunka-ink); border:1px solid #796183; border-radius:7px; font:inherit; font-size:16px; color-scheme:dark; }
.bunka-qa-filters input:focus-visible { outline:3px solid #e7c7f0; outline-offset:3px; }
.bunka-qa-category { margin:.6rem 0; padding:0 1rem; border:1px solid var(--bunka-line); border-radius:8px; background:#201922; }
.bunka-qa-category > summary { min-height:54px; padding:.9rem 0; cursor:pointer; font-size:.95rem; font-weight:600; }
.bunka-qa-category > summary > span { color:#c7adcc; font-size:.72rem; font-weight:400; margin-left:.6rem; white-space:nowrap; }
.bunka-qa-category .bunka-faq { margin:0; }
.bunka-qa-category .bunka-faq > div > p { white-space:pre-line; }
.bunka-qa-links { display:flex; flex-wrap:wrap; gap:.2rem 1rem; }
.bunka-qa-links a { min-height:44px; display:inline-flex; align-items:center; }
@media(max-width:600px) { .bunka-qa-filters { grid-template-columns:minmax(0,1fr); gap:.65rem; } .bunka-qa-category { padding:0 .75rem; } }

/* A separate Nara day-trip guide, reachable from both home views. */
.bunka-walk-entry { background:linear-gradient(115deg,#223a30,#1b2724); border-color:#668573; color:#f1ead3!important; margin:1.2rem 0; }
.bunka-walk-entry:hover { background:linear-gradient(115deg,#2e4b3d,#243c31); }
.bunka-walk-entry .bunka-entry-copy small { color:#b7c9ad; font:500 .7rem/1.5 sans-serif; letter-spacing:.08em; }
.bunka-walk-entry .bunka-entry-copy > span { color:#c0cbbc; line-height:1.7; }
.bunka-walk-emblem { display:block; flex:none; padding:.45rem .75rem; border:1px solid #aab78855; color:#e3d5ad; font:400 1.1rem/1.3 Georgia,serif; text-align:center; }
.bunka-walk-arrow { flex:none; font-size:1.6rem; color:#ddd0a4; }
.bunka-jumps .bunka-walk-nav { display:inline-flex; align-items:center; min-height:44px; padding:.5rem .8rem; border:1px solid #668573; border-radius:7px; background:#20372c; color:#e4dfc8; font:inherit; font-size:.84rem; text-decoration:none; }
.bunka-jumps .bunka-walk-nav:hover { background:#31513f; }
@media(max-width:480px) { .bunka-walk-entry { flex-wrap:nowrap; gap:.65rem; padding:.85rem; } .bunka-walk-entry .bunka-entry-copy { flex-basis:auto; } .bunka-walk-emblem { padding:.35rem .5rem; } .bunka-walk-entry .bunka-entry-copy strong { font-size:1rem; } }

/* Persistent event record and independently verified, spoiler-gated setlists. */
.bunka-setlist-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.bunka-setlist-pending,.bunka-setlist-day { border:1px solid #6d4a765e; border-radius:12px; background:#201721; padding:1.1rem 1.2rem; }
.bunka-setlist-entrance { margin-bottom:1rem; }
.bunka-setlist-pending h3,.bunka-setlist-day summary strong { margin:0 0 .65rem; font-size:1.05rem; }
.bunka-setlist-pending p { margin:.5rem 0; color:#d1c4d3; font-size:.9rem; }
.bunka-setlist-pending small { color:#b9a9bd; font-size:.8rem; }
.bunka-setlist-day > summary { cursor:pointer; min-height:48px; line-height:1.6; }
.bunka-setlist-day > summary strong { display:inline; }
.bunka-setlist-day > summary span { display:block; margin:.4rem 0 0 1rem; color:#c9b1cf; font-size:.83rem; }
.bunka-setlist-day > div { border-top:1px solid #75557d66; margin-top:1rem; padding-top:.7rem; }
.bunka-setlist-day h4 { margin:1rem 0 .5rem; font-size:.9rem; color:#dfc8e5; }
.bunka-setlist-songs { margin:.5rem 0 1.3rem; padding-left:1.8rem; }
.bunka-setlist-songs li { padding:.3rem 0 .3rem .35rem; line-height:1.8; overflow-wrap:anywhere; }
.bunka-setlist-songs li::marker { color:#c794d2; font-size:.85rem; }
.bunka-setlist-song-link { display:flex; align-items:baseline; justify-content:space-between; gap:.8rem; min-height:44px; color:#eee0f0; text-decoration:none; }
.bunka-setlist-song-link > span { text-decoration:underline; text-underline-offset:.2em; }
.bunka-setlist-song-link > small { flex:none; color:#c9b1cf; font-size:.7rem; }
.bunka-setlist-song-link:hover { color:#e5b5f0; }
.bunka-setlist-song-link:focus-visible { outline:2px solid #c794d2; outline-offset:3px; border-radius:3px; }

.bunka-setlist-sources { display:flex; flex-wrap:wrap; gap:.3rem 1rem; }
.bunka-setlist-sources a { display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; }
.bunka-feature-note > span { display:block; max-width:65rem; line-height:1.8; }
@media(max-width:640px) { .bunka-setlist-grid { grid-template-columns:minmax(0,1fr); } .bunka-setlist-pending,.bunka-setlist-day { padding:1rem; } }
