@charset "UTF-8";

a {
    text-decoration: none;
}

body {
    margin-top: 80px;
}

h2 {
    margin: 50px 0;
    font-size: 20px;
    font-weight: 700;
    text-align: center;
}

article {
    display: flex;
    justify-content: center;
    align-items: start;
    gap: 50px;
    flex-wrap: wrap;
}

.news-wrapper {
    width: 60%;
    margin: 0 auto 100px auto;
}

/* ==========================================
   ギャラリー・リンク一覧の共通グリッド設定
   （PC時は4列、スマホ等の狭い画面時は2列に完全連動）
   ========================================== */

.backnum-gallery,
.backnum-k {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* デフォルトは横4列 */
    gap: 20px;
    width: 80%;
    margin: 0 auto 50px auto;
    box-sizing: border-box;
}

.gallery-item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.gallery-item > a {
    padding: 0;
    text-align: center;
}

.gallery-item > img {
    padding: 0;
    margin: 0 auto;
    height: 300px; /* ご指定の高さ300pxに統一 */
    width: auto;
    object-fit: cover;
}

/* 5件目以降のテキストリンクの個別スタイル調整 */
.backnum-k-item {
    text-align: center;
    word-break: break-all;
}

.backnum-k-item > a {
    display: block;
    padding: 8px;
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 4px;
}

form {
    margin-bottom: 100px;
}

/* 画面幅が狭くなったとき（例: 768px以下）：ギャラリーとリンク一覧を同時に2列にする */
@media (max-width: 768px) {
    .backnum-gallery,
    .backnum-k {
        grid-template-columns: repeat(2, 1fr) !important; /* 2列に連動 */
    }
}

@media (max-width: 480px) {
    .news-wrapper {
        width: 90%;
    }

    .backnum-gallery,
    .backnum-k {
        width: 90%;
    }
}

/* 上にタイトル、下に写真と目次 */
.news-wrapper article.grid-blk,
.magazine-wrapper article.grid-blk {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    grid-template-areas:
        "title title"
        "a     b";
    gap: 30px;
    align-items: start;
}

.grid-blk > .grid-title {
    grid-area: title;
    min-width: 0;
    margin: 50px 0 0;
    text-align: center;
    overflow-wrap: anywhere;
}

.grid-blk > .grid-a {
    grid-area: a;
    min-width: 0;
    text-align: center;
}

.grid-blk > .grid-b {
    grid-area: b;
    min-width: 0;
    text-align: left;
    overflow-wrap: anywhere;
}

.news-wrapper .grid-blk > .grid-a > img,
.magazine-wrapper .grid-blk > .grid-a > img {
    display: block;
    width: 100%;
    max-width: 340px;
    height: auto;
    margin: 0 auto;
    box-sizing: border-box;
}

.grid-blk > .grid-b > dl.table {
    width: 100%;
    margin: 0;
    box-sizing: border-box;
}

.grid-blk .toc-section {
    margin-top: 20px;
}

.grid-blk > .grid-b > a {
    display: block;
    margin-bottom: 20px;
}

/* スマホでは縦に配置 */
@media (max-width: 640px) {
    .news-wrapper article.grid-blk,
    .magazine-wrapper article.grid-blk {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "title"
            "a"
            "b";
        gap: 20px;
    }
}

.space-botom {
    display: block;
    margin: 0 0 1rem;
}