html {
    scroll-behavior: smooth;
}
/* --- ヘッダー全体のコンテナ --- */
.new-header {
    width: 100%;
    max-width: 1200px; /* 元の画像幅(470+420)＋余白に近い数値に設定 */
    margin: 0 auto;
    padding: 0 15px;   /* 画面端に密着しないようガード */
    box-sizing: border-box;
    background: url(../images/bg_head.png) left top no-repeat;
}

/* --- ロゴ部分：高さを確保しつつ配置 --- */
.new-header__logo {
    padding: 30px 0 10px 100px; /* 元の top: 30px を再現 */
}

.new-header__logo img {
    display: block;
    width: 108px; /* 元のサイズ */
    height: auto;
}

/* --- 画像エリア：Flexboxで横並び --- */
.new-header__main-visual {
    max-width: 1000px;
    display: flex;
    flex-wrap: wrap;    /* 幅が足りなくなったら折り返す */
    gap: 20px;          /* 画像と画像の間隔 */
    justify-content: space-evenly; /* 両端に寄せる */
    align-items: flex-start;
    margin: 0 auto;
}

/* --- 各画像の設定 --- */
.new-header__img-item {
    flex: 1;            /* 伸び縮みを許可 */
    min-width: 300px;   /* スマホサイズ（320px程度）に近づいたら縦並びへ */
    max-width: 470px;   /* 元の最大幅を維持 */
}

.new-header__img-item img {
    width: 100%;        /* 親の幅いっぱいに広がる */
    height: auto;       /* 比率を維持 */
    display: block;
}

/* --- スマートフォン用（画面幅768px以下）の微調整 --- */
@media screen and (max-width: 768px) {
    .new-header__logo {
        padding: 10px 0;
    }
    .new-header__main-visual {
        gap: 15px; /* スマホ時の画像間の隙間 */
    }
    .new-header__img-item {
        max-width: 100%; /* スマホでは横幅いっぱいまで許可 */
    }
}


/* --- メニュー全体の背景色 --- */
.new-gnav {
    width: 100%;
    background-color: #000;

    position: sticky;
    top: 0;           /* 画面のどこに張り付くか（一番上なので0） */
    z-index: 1000;    /* 他のコンテンツの下に潜り込まないように */
}

/* --- リンクの並び：Flexboxで制御 --- */
.new-gnav__links {
    display: flex;
    flex-wrap: wrap;        /* 幅が足りない時に自動で折り返す */
    justify-content: center; /* 中央寄せ */
    max-width: 1000px;      /* PC時の最大幅 */
    margin: 0 auto;
}

/* --- 各メニュー共通設定 --- */
.new-gnav__link {
    display: block;
    max-width: 250px;
    height: 110px;
    cursor: pointer;
    text-indent: -119988px; /* 一旦維持（画像切り替えのため） */
    overflow: hidden;
    background-repeat: no-repeat;
}

/* 各ボタンの幅と背景画像（元コードの数値を継承） */
/* ※スマホ時は幅 50% などにして 2列に並べる調整を後述します */
.new-gnav__link:nth-child(1) { width: 240px; background: url(../images/nav_01.jpg) top center / 240px 220px; }
.new-gnav__link:nth-child(2) { width: 230px; background: url(../images/nav_02.jpg) top center / 230px 220px; }
.new-gnav__link:nth-child(3) { width: 210px; background: url(../images/nav_03.jpg) top center / 210px 220px; }
.new-gnav__link:nth-child(4) { width: 250px; background: url(../images/nav_04.jpg) top center / 250px 220px; }

/* ホバー時の挙動（下半分を表示） */
.new-gnav__link:hover {
    background-position: bottom center !important;
}

/* --- スマホ対応（画面幅が狭い時） --- */
@media screen and (max-width: 768px) {
    .new-gnav__link {
        /* スマホで2列に並べたい場合：50% */
        /* 1列にしたい場合：100% */
        width: 50% !important;
        height: auto;
        aspect-ratio: 240 / 110; /* 画像の比率を維持して高さを自動計算 */
        background-size: cover;  /* 幅に合わせて背景を調整 */
    }

    /* 各ボタンの background-size をスマホ用に上書き */
    .new-gnav__link:nth-child(1),
    .new-gnav__link:nth-child(2),
    .new-gnav__link:nth-child(3),
    .new-gnav__link:nth-child(4) {
        background-size: 100% 200%; /* 横幅いっぱい、縦は元の画像（2行分）のまま */
    }
}
.mainvisual__inner {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    font-size: 0;
}
.mainvisual__eyecatch {
    display: inline-block;
    width: 50%;
    height: auto;
}

/* 全セクション共通の箱 */
.new-container {
    width: 100%;
    max-width: 1000px; /* PCでの最大幅 */
    margin: 0 auto;    /* 中央寄せ */
    padding: 0 20px;   /* スマホで見た時の左右の遊び */
    box-sizing: border-box; /* これを入れないとpaddingで幅が突き抜ける */
}

/* セクションごとの上下余白も共通化しておくと綺麗 */
.new-section {
}
.new-section-title {
    text-align: center; /* 画像を中央寄せにする */
    margin-bottom: 60px; /* タイトルと中身の間の余白 */
}

.new-section-title img {
    max-height: 75px;
    width: auto;
}

/* スマホでは余白を少し詰めたい場合 */
@media screen and (max-width: 768px) {
    .new-section-title {
        margin-bottom: 25px;
        padding: 0 10px; /* 画像が端に寄りすぎないよう調整 */
    }
}

.new-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 70px 20px;
    box-sizing: border-box;
}
.new-section:nth-child(odd) .new-container {
    background-color: #fff; 
}
.new-section:nth-child(even) .new-container {
    background-color: #f7f7f7;
}

.is-narrow {
    max-width: 1000px;
    margin-left: auto;  /* 中央寄せを維持 */
    margin-right: auto;
}

/* どんなセクションでも使える横並びの箱 */
.flex-layout {
    display: flex;
    flex-wrap: wrap;
    gap: 40px; /* 共通の隙間 */
    justify-content: space-between;
}

/* 2分割する子要素 */
.flex-col-2 {
    flex: 1;
    min-width: 300px; /* 300pxを切ったら自動で縦並び */
}

/* 言語ごとのスタイルだけ別で定義（これは使い回せる） */
.text-ja {
    line-height: 2.2;
}

.text-en {
    line-height: 1.8;
    word-wrap: break-word;
}


.new-media-block {
    display: flex;
    flex-wrap: wrap; /* スマホで折り返すため */
    gap: 30px;       /* 画像と文字の間の余白 */
    align-items: center; 
    margin-bottom: 40px;
}

/* 画像側の箱 */
.new-media__img {
    flex: 0 0 300px; /* 「伸びない・縮まない・基本300px」という意味 */
    max-width: 100%; /* 親より大きくならないように */
}

.new-media__img img {
    width: 100%;
    max-width: 500px;
    height: auto;
}

/* テキスト側の箱 */
.new-media__text {
    flex: 1;         /* 「残りのスペースを全部使う」という意味 */
    min-width: 300px; /* これより狭くなると縦並びへ */
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
    .new-media-block {
        gap: 20px;
    }
    .new-media__img {
        flex: 0 0 100%; /* スマホでは画像も横幅いっぱい */
        text-align: center;
    }
}


/* --- フッター全体のスタイル --- */
.new-footer {
    padding: 60px 0 30px;
    color: #888;
}

/* メイン部分を横並び（両端揃え）にする */
.new-footer__main {
    display: flex;
    justify-content: space-between;
    align-items: flex-end; /* ロゴとテキストの底辺を合わせる */
    flex-wrap: wrap;       /* 幅が狭くなったら折り返す */
    gap: 30px;
    margin-bottom: 10px;
}

/* リンクエリアのスタイル */
.new-footer__links {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.new-footer__links a {
    text-decoration: none;
    font-size: 1.4rem;
}

.new-footer__links a:hover {
    text-decoration: underline;
}

/* リンクの間にセパレーター（|）を入れたい場合 */
.new-footer__links a:not(:last-child)::after {
    content: "|";
    margin-left: 15px;
    color: #ccc;
    cursor: default;
    display: inline-block;
}

/* ロゴエリアの設定 */
.new-footer__logos {
    display: flex;
    align-items: center;
    gap: 50px;
}

.new-footer__logos img {
    display: block;
    height: auto;
}

/* 元のサイズを維持 */
.new-footer__logo-jvta img { width: 108px; }
.new-footer__logo-gcai img { width: 50px; }

/* コピーライト */
.new-footer__copyright {
    margin-top: 10px;
    padding-top: 10px;
}

@media screen and (max-width: 768px) {
    .new-footer {
        padding: 40px 0 20px;
    }

    .new-footer__main {
        flex-direction: column; /* 縦に積む */
        align-items: center;    /* 中央寄せ */
        text-align: center;
        gap: 40px;
    }

    .new-footer__links {
        justify-content: center;
    }

    /* スマホでは縦並びになるのでセパレーターを消す */
    .new-footer__links a:not(:last-child)::after {
        display: none;
    }

    .new-footer__links a {
        width: 100%; /* 1項目1行にする場合 */
        margin: 5px 0;
    }

    .new-footer__logos {
        justify-content: center;
    }

    .new-footer__copyright {
        text-align: center;
    }
}

.topbtn {
    text-decoration: none;
    font-size: 0;        /* 文字の大きさをゼロにする */
    line-height: 0;
    color: transparent; /* 文字を透明にする */
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    z-index: 9999;
}

.news-date {
    font-size: 1.8rem;
    font-weight: bold;
    margin-top: 17px;
    color: #000;
}

/* 既存CSS上書き用 */
.home-participating__box {
    display: flex;
    align-items: center; 
}
.home-participating-item__caption {
  float: none;
}
@media screen and (max-width: 768px) {
  .home-participating-item__thumbnail {
      margin: 5px;
    width: 80px;
  }
}
