body{
    margin: 0 auto !important; /* 左右の余白を自動にして中央へ */
    display: block !important;
    width: 100%;               /* 画面いっぱいの幅を確保 */
    max-width: 1180px;         /* PCでの最大幅　*/
    font-family:sans-serif;
    background-image: url("/images/1onp2_09.gif");
    background-color: #ffdddd;
}
header{
    text-align:center;
    padding:10px;
}
/* --- 大幅修正部分：.hero --- */
.hero{
    position:relative;
    height:350px;

    background-image:url("../images/top.jpg");
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    max-width:1100px;
    margin:auto;

    /*transition:filter 1s ease-in-out;
    filter:brightness(1); *****/
}

.hero-text{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);

    color:white;
    font-size:36px;
    font-weight:bold;
    text-align:center;

    text-shadow:1px 1px 4px rgba(0,0,0,0.8);

    opacity:0;
    visibility:hidden;

    transition:opacity 1s;/* ease-in-out;*******/
}

/* 修正：画像が暗くなるクラス（.heroに付与） */
/*.hero.dark {
    filter: brightness(0.5);
}  */

.hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0);
    transition:background 1s;
}
.hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0);
    transition:background 1s;
}
.hero.dark .hero-overlay{
    background:rgba(0,0,0,0.5);
}

/* 修正：文字が表示されるクラス（.heroに付与） */
.hero.show-text .hero-text {
    opacity: 1;
    visibility: visible;
}
.layout{
    display:grid;
    grid-template-columns:minmax(140px,140px) 1fr minmax(200px,200px);
    gap:15px;
    max-width:1100px;
    margin:auto;
}
.menu ul{
    list-style:none;
    padding:0;
}
.menu li{
    margin-bottom:10px;
}
#concert-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:10px;
}
.concert-item img{
    width:100%;
}
.sidebar ul{
    list-style:none;
    padding:0;
}
.concert p{
    font-size:13px;
    text-align:center;
    margin:4px 0 10px;
}
.history p{
    font-size:6px;
    text-align:center;
    margin:4px 0 10px;
}
.history-box{
    font-size:13px;
    max-height:540px;
    overflow-y:auto;
}
.news-item {
    margin-bottom: 8px;    /* 記事と記事の間の余白 */
    line-height: 1.2;      /* ★ここを 1.1 〜 1.3 の間で調整してください */
}

.news-date {
    font-size: 11px;
    color: #666;
    display: block;        /* 日付を独立させて上に配置 */
    margin-bottom: 2px;    /* 日付と本文の間の隙間を最小限に */
}

.news-text {
    font-size: 11px;
    display: block;        /* ブロック化して行間制御を確実にする */
    margin: 0;
    padding-left: 0;       /* 左寄せにしてスッキリさせます */
}

.news-box {
    max-width: 150px;
    max-height: 170px;
    overflow-y: auto;
}

footer{
    text-align:center;
    padding:20px;
}

.seomain2{
    max-width:980px;
    margin:0 auto;
}
.accordion summary {
  display: block;
  padding: 12px;
  cursor: pointer;
  background: #f5f5f5;
  border-radius: 6px;
}

.accordion summary::after {
  content: "▶";
  font-weight: bold;
  color: #0073aa;
}

.accordion[open] summary::after {
  content: "▼ 閉じる";
}