body{

    margin:0;
    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{
    max-height:440px;
    overflow-y:auto;
}
.news-item{
    display:grid;
    grid-template-columns:90px 1fr;
    font-size:13px;
    margin-bottom:4px;
}
.news-box{
    max-height:180px;
    overflow-y:auto;
}
footer{
    text-align:center;
    padding:20px;
}