:root{--ink:#1d2733;--sub:#5b6773;--line:#d9dee3;--bg:#f6f7f8;--card:#fff;--main:#0b4f6c;--btn:#0b4f6c;--btn-h:#083a50;--off:#c9ced3}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;line-height:1.7}
.wrap{max-width:1000px;margin:0 auto;padding:40px 20px 64px}
h1{font-size:28px;margin:0 0 8px}
.lead{color:var(--sub);margin:0 0 24px}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 40px;padding:0;list-style:none}
.jump a{display:block;padding:6px 14px;border:1px solid var(--main);border-radius:999px;color:var(--main);text-decoration:none;font-size:14px}
.jump a:hover,.jump a:focus-visible{background:var(--main);color:#fff}
.genre{margin:0 0 48px;scroll-margin-top:16px}
.genre h2{font-size:21px;margin:0 0 16px;padding-left:12px;border-left:6px solid var(--g,var(--main))}
.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.banner{aspect-ratio:800/420;background:var(--g,var(--main));color:#fff;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;font-weight:700;font-size:17px}
.banner img{width:100%;height:100%;object-fit:cover;display:block}
.body{padding:16px;display:flex;flex-direction:column;flex:1}
.name{font-size:17px;font-weight:700;margin:0 0 12px;line-height:1.5}
dl{margin:0 0 16px;display:grid;grid-template-columns:5.5em 1fr;gap:4px 8px;font-size:14px}
dt{color:var(--sub)}dd{margin:0}
.btn{margin-top:auto;display:block;text-align:center;padding:12px;border-radius:4px;background:var(--btn);color:#fff;text-decoration:none;font-weight:700}
.btn:hover,.btn:focus-visible{background:var(--btn-h)}
.btn.closed{background:var(--off);color:#fff;pointer-events:none;cursor:not-allowed}
.card.is-closed .banner{filter:grayscale(1);opacity:.6}
.card.is-closed .name{color:var(--sub)}
.empty{color:var(--sub);font-size:14px}
@media(max-width:480px){h1{font-size:23px}}

.summary{margin:0 0 12px;font-size:14px;color:var(--sub)}
.event{background:#fff;border-top:1px solid var(--line)}
.event-in{max-width:1000px;margin:0 auto;padding:32px 20px;display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.event h2{font-size:20px;margin:0 0 4px}
.event p{margin:0 0 4px}
.event-date{color:var(--sub);font-size:14px}
.event-btn{margin:0;min-width:200px}
.event-imgwrap{display:block;width:320px;max-width:100%}
.event-img{display:block;width:100%;height:auto;border-radius:4px}
.event-txt{flex:1;min-width:220px}
@media(max-width:600px){.event-imgwrap{width:100%}.event-btn{width:100%}}
