/* ===========================
   基本レイアウト
=========================== */
body {
    background:#ffffff;
    color:#333333;
    font-size:17px;
    line-height:1.8;
    margin:0;
    padding:0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

header.simple-header {
    padding:20px;
    text-align:center;
}

footer.simple-footer {
    padding:20px;
    text-align:center;
    background:#000000;
    color:#ffffff;
}

/* ===========================
   見出し
=========================== */
h1, h2 {
    margin-top:40px;
    margin-bottom:20px;
}

h2 {
    padding:10px;
    background:#eeeeee;
    color:#474747;
}

/* ===========================
   メインビジュアル
=========================== */
.single_thumbnail {
    position:relative;
    margin:0 0 30px;
}

.content figure {
    margin-left:0;
    margin-right:0;
}

.single_thumbnail img {
    width:100%;
    max-height:500px;
    display:block;
}

/* 背景ぼかし（Diverテーマの効果を軽量化して残す） */
.single_thumbnail:before {
    content:'';
    background:inherit;
    filter:grayscale(100%) blur(5px) brightness(.9);
    position:absolute;
    top:-5px;
    left:-5px;
    right:-5px;
    bottom:-5px;
    z-index:-1;
}

/* ===========================
   ライブブロック
=========================== */
.live-block iframe {
    width:100%;
    min-height:400px;
    border:none;
}

.youtube-container iframe {
    width:100%;
    height:auto;
}

/* ===========================
   スポンサー画像（image map）
=========================== */
img[usemap] {
    max-width:100%;
    height:auto;
}

/* ===========================
   大会概要テーブル
=========================== */
.overview-table {
    width:100%;
    border-collapse:collapse;
    margin-bottom:40px;
}

.overview-table td {
    padding:14px 12px;
    border:none;
    border-bottom:2px solid #e3e3e3;
    vertical-align:top;
    line-height:1.7;
}

.overview-table tr:nth-child(even) td {
    background:#f7f7f7;
}

.overview-table td:first-child {
    width:7em;
    white-space:nowrap;
    padding-right:20px;
}

@media(max-width:768px){
    .overview-table td { font-size:15px; }
    .overview-table td:first-child { width:6em; }
}

/* ===========================
   コンテンツ領域
=========================== */
.content {
    padding:0 16px;
    box-sizing:border-box;
    max-width:1100px;
    margin:0 auto;
}

.content p {
    margin-bottom:1em;
}

.content ul,
.content ol,
.content table {
    margin-bottom:1em;
}

/* ===========================
   レスポンシブ
=========================== */
@media(max-width:768px){
    body { font-size:16px; }
    .youtube-container iframe { width:100%; height:auto; }
}

/* ===========================
   ページトップボタン
=========================== */
#page-top a {
    background:rgba(0,0,0,0.76);
    color:#ffffff;
    padding:10px;
    border-radius:4px;
}

/* ===========================
   影（必要最低限）
=========================== */
.single_thumbnail,
.overview-table,
.live-block {
    box-shadow:0 0 5px rgba(150,150,150,.2);
}

/* ===========================
   画像の比率調整（必要最低限）
=========================== */
.post-box-thumbnail__wrap::before {
    padding-top:56.25%;
}

/* ===========================
   newlabel（必要なら使用）
=========================== */
.newlabel {
    display:inline-block;
    position:absolute;
    margin:0;
    text-align:center;
    font-size:13px;
    color:#fff;
    background:#f66;
    top:0;
}

.newlabel span {
    color:#fff;
    background:#f66;
}

/* ===========================
   grid_post-box（必要最低限）
=========================== */
@media screen and (min-width:1201px){
    .grid_post-box { width:25%; }
}
@media screen and (max-width:1200px){
    .grid_post-box { width:33.3333%; }
}
@media screen and (max-width:599px){
    .grid_post-box { width:50% !important; }
}

/* ===========================
   画像ホバー（軽量化）
=========================== */
@media screen and (min-width:560px){
    .grid_post-box:hover img,
    .post-box:hover img {
        filter:grayscale(100%);
    }
}


.youtube-container iframe {
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:16/9;
    display:block;
}

.single_thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}

.accordion-item {
    margin-bottom: 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    overflow: hidden;
}

.accordion-header {
    width: 100%;
    text-align: left;
    background: #f5f5f5;
    padding: 12px 16px;
    font-size: 18px;
    border: none;
    cursor: pointer;
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
}

.accordion-item.active .accordion-content {
    max-height: 800px;
}

.heat-iframe {
    width: 100%;
    height: 600px;
    border: none;
}

