:root{
  --bg:#0b0b0c;
  --panel:#161617;
  --panel-hover:#1c1c1e;
  --border:#2a2a2c;
  --text:#eaeaea;
  --muted:#9a9a9a;
  --muted-2:#6f6f72;
  --accent:#5aa9ff;
  --accent-hover:#8cc4ff;
  --danger:#ff6b6b;
  --ok:#5fd68c;
}

*{box-sizing:border-box}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}

a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover)}

.wrap{max-width:1000px;margin:auto;padding:24px 16px 60px}

.site-header{margin:0 0 22px}
.site-eyebrow{
  font-size:13px;
  letter-spacing:.06em;
  color:var(--muted);
  text-transform:uppercase;
}
.site-title{
  margin:4px 0 0;
  font-size:26px;
  font-weight:bold;
}
.page-title{
  margin:2px 0 0;
  font-size:15px;
  color:var(--muted);
}

nav.site-nav{margin-top:14px;font-size:14px}
nav.site-nav a{color:var(--muted);margin-right:14px}
nav.site-nav a:hover{color:var(--accent)}

.filters{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:8px;
  padding:15px;
  margin:20px 0 25px;
}
.filters form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filters label{font-size:13px;color:var(--muted)}

select,button{
  padding:8px;
  border:1px solid var(--border);
  border-radius:5px;
  background:#1f1f21;
  color:var(--text);
}
button{cursor:pointer}
button:hover{border-color:var(--accent)}

.date-group{margin:28px 0}
.date-title{
  font-size:22px;
  font-weight:bold;
  border-bottom:2px solid var(--border);
  padding-bottom:6px;
}

.event{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:8px;
  padding:15px;
  margin:10px 0;
  display:flex;
  gap:15px;
  text-decoration:none;
  color:inherit;
  transition:box-shadow .15s, border-color .15s, background .15s;
}
.event:hover{
  border-color:var(--accent);
  background:var(--panel-hover);
  box-shadow:0 2px 12px rgba(0,0,0,.5);
}
.event img{
  width:110px;height:110px;
  object-fit:cover;border-radius:6px;flex-shrink:0;
  background:#0f0f10;
}
.event-main{flex:1;min-width:0}
.venue{font-size:14px;color:var(--muted)}
.date{font-weight:bold;color:var(--text)}
.title{font-size:18px;font-weight:bold;margin:5px 0;color:var(--accent)}
.desc{font-size:13px;color:#c7c7c9;margin-top:6px;line-height:1.5}
.source{font-size:12px;color:var(--muted-2);margin-top:6px}

.undated{margin-top:45px}
.undated h2{font-size:20px}
.undated > p{color:var(--muted)}

/* venues.php 用 */
.venue-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:8px;
  padding:18px;
  margin:14px 0;
}
.venue-name{font-size:20px;font-weight:bold;margin:0 0 6px;color:var(--text)}
.venue-address{color:var(--muted);margin:0 0 10px}
.venue-links a{
  display:inline-block;margin:0 10px 6px 0;padding:6px 12px;
  border:1px solid var(--accent);border-radius:5px;
  color:var(--accent);font-size:14px;
}
.venue-links a:hover{background:var(--accent);color:#0b0b0c}
.venue-upcoming{font-size:14px;margin-top:8px}

/* detail.php 用 */
.detail-box{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:8px;
  padding:25px;
}
.preview-banner{
  background:#3a2f10;color:#f0c96b;border:1px solid #5c4a17;
  border-radius:6px;padding:10px 14px;margin-bottom:18px;font-size:14px;
}
.detail-box img{max-width:100%;height:auto;border-radius:6px}
.detail-description{color:#d3d3d5;line-height:1.8;margin:15px 0}
.source-link{
  display:block;text-align:center;margin-top:22px;padding:14px;
  background:var(--accent);color:#0b0b0c;border-radius:6px;
  text-decoration:none;font-weight:bold;
}
.source-link:hover{background:var(--accent-hover);color:#0b0b0c}
.source-note{font-size:12px;color:var(--muted-2);text-align:center;margin-top:6px}
.detail-note{font-size:13px;color:var(--muted);margin-top:20px;border-top:1px solid var(--border);padding-top:14px}

/* 注意書き（details/summary） */
.site-notice{
  margin-top:36px;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:8px;
  padding:14px 18px;
  color:#c7c7c9;
  font-size:13px;
}
.site-notice summary{
  cursor:pointer;
  font-weight:bold;
  color:var(--text);
  font-size:14px;
  list-style:revert;
}
.site-notice summary::marker{color:var(--accent)}
.site-notice-body{margin-top:14px;line-height:1.8}
.site-notice-body h3{font-size:14px;margin:16px 0 6px;color:var(--text)}
.site-notice-body h3:first-child{margin-top:0}
.site-notice-body p{margin:0 0 10px}

.site-footer{margin-top:40px;font-size:14px;color:var(--muted)}

@media(max-width:600px){
  /*.event{display:block}
  .event img{width:100%;height:auto;max-height:280px;margin-bottom:10px}*/
  .filters form{display:block}
  .filters select,.filters button{margin:3px 0;width:100%}
}
