@charset "utf-8";

/* ---------------------------------------------------
 * base
/* ---------------------------------------------------*/

html {
    font-size: 62.5%;
    /*適宜変更お願いします*/
    width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

body {
    text-align: center !important;
    font-size: 10px;
    font-family: 'Noto Sans JP', YuGothic, 'Yu Gothic', 'ヒラギノ角ゴシック', 'Hiragino Sans', sans-serif;
    color: #000000;
    line-height: 1.75;
    width: 100%;
    background-color: #fff;
    font-weight: 400;
    /*適宜変更お願いします*/
    font-feature-settings: "palt" 1;
    /*自動カーニング*/
}

img {
    max-width: 100%;
    height: auto;
}

a {
    color: #fff;
}

a:hover {
    /*opacity: 0.8;*/
    text-decoration: none;
}

p {
    text-align: justify;
    hanging-punctuation: allow-end;
    /*文字のぶら下げ*/
}

#footer {
    text-align: center;
}

.sticky {
    position: fixed;
    width: 95%;
    max-width: 220px;
    bottom: 15px;
    right: 3%;
    z-index: 1000;
    opacity: 1;
    /* 最初は完全に不透明 */
    visibility: visible;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    /* 不透明度と可視性の変化に0.5秒かけて滑らかに */
}

.sticky.hidden {
    opacity: 0;
    /* 非表示時は透明 */
    pointer-events: none;
    /* 透明時はクリックを無視 */
}

/* ボタン配置（画像上に絶対配置） */
.btn_box_kiso01 {
    position: absolute;
    width: 59%;
    z-index: 999;
    top: 21%;
    right: 0;
    left: 0;
    margin: auto;
}

.btn_box_kobetsu_wh01 {
    position: absolute;
    width: 53%;
    z-index: 999;
    top: 67%;
    right: 0;
    left: 0;
    margin: auto;
}

.btn_box_kobetsu_gl01 {
    position: absolute;
    width: 60%;
    z-index: 999;
    top: 47%;
    right: 0;
    left: 0;
    margin: auto;
}

.btn_box_kiso02 {
    position: absolute;
    width: 59%;
    z-index: 999;
    top: 14%;
    right: 0;
    left: 0;
    margin: auto;
}

.btn_box_kobetsu_wh02 {
    position: absolute;
    width: 53%;
    z-index: 999;
    top: 44%;
    right: 0;
    left: 0;
    margin: auto;
}

.btn_box_kobetsu_gl02 {
    position: absolute;
    width: 60%;
    z-index: 999;
    top: 78%;
    right: 0;
    left: 0;
    margin: auto;
}

.gif_box {
    position: absolute;
    width: 58%;
    z-index: 999;
    top: 56%;
    right: 0;
    left: 0;
    margin: auto;
}

/* ボタンアニメーションここから */

/* 拡大縮小 */
.cta_style4 {
    display: block;
    -webkit-animation: cta_style8 2.0s infinite ease-in-out;
    animation: cta_style4 1.0s infinite ease-in-out;
}

@keyframes cta_style4 {

    0%,
    100% {
        transform: scale(0.9);
    }

    50% {
        transform: scale(1.0);
    }
}

/* ボタンアニメーションここまで */
/* ① wrap を中央に固定 */
#wrap {
    width: 2000px;
    max-width: 100%;
    margin-inline: auto;
    /* 中央寄せ */
}

/* ② フルブリードを “セクション基準” で絶対配置にする */
#section-73,
#section-74,
#section-75 {
    position: relative;
    /* セクションを基準にする */
}

#section-73 .container,
#section-74 .container,
#section-75 .container {
    position: static;
    /* ここでは relative を無効化して基準から外す */
}

/* ③ 画面幅で中央化（absolute版） */
.media_box {
    position: absolute;
    top: 33%;
    /* 好きな縦位置 */
    left: 50%;
    transform: translateX(-50%);
    /* 中央揃え */
    width: 100dvw;
    /* 画面幅ぴったり */
    max-width: none;
    z-index: 5;
    overflow: visible;
}

/* ④ 横スクロール由来の見かけズレを抑止 */
html,
body {
    overflow-x: clip;
}



/* ---- Base（SP既定） ---- */
.media-marquee {
    /* ロゴサイズ & 間隔（SP初期値） */
    --logo-height: 300px;
    --gap: clamp(20px, 3vw, 56px);

    /* JSが設定する変数（フォールバック値） */
    --duration: 26s;
    /* アニメ時間 */
    --loop-distance: 1500px;
    /* 1ループの移動距離(px) */

    width: 100%;
    overflow: hidden;
    padding-block: 8px;
}

/* セクション別バリエーション（必要に応じて付与） */
.media-marquee.marquee--small {
    --logo-height: 24px;
    --gap: 24px;
}

.media-marquee.marquee--large {
    --logo-height: 40px;
    --gap: 48px;
}

/* レーン（1段） */
.media-marquee .marquee-lane {
    position: relative;
    width: 100%;
    overflow: hidden;
    /* 初期描画のチラつき防止：ロゴ高ぶんだけ最低高さを確保 */
    min-height: calc(var(--logo-height) + 2px);
}

/* 走行トラック（JSで--gap/--duration/--loop-distance設定） */
.media-marquee .marquee-track {
    display: flex;
    align-items: center;
    gap: var(--gap);
    will-change: transform;
    animation: marquee var(--duration) linear infinite;
    /* 方向は JS で animation-direction を付与（reverse/normal） */
}

.media-marquee li {
    list-style: none;
    flex: 0 0 auto;
    margin: 0;
}

/* ロゴ画像 */
.media-marquee img {
    height: var(--logo-height);
    width: auto;
    display: block;
    object-fit: contain;
}

/* ホバーで一時停止（PC向け可読性） */
@media (hover: hover) {}

/* 動きに弱いユーザー配慮 */
@media (prefers-reduced-motion: reduce) {
    .media-marquee .marquee-track {
        animation: none;
    }
}

/* 無限ループ（px距離で正確にループ） */
@keyframes marquee {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        transform: translate3d(calc(-1 * var(--loop-distance)), 0, 0);
    }
}

/* ---- PCブレークポイント（例: 768px以上） ---- */
@media (min-width: 768px) {

    /* PCではサイズを大きく＆間隔も広げる */
    .media-marquee {
        --logo-height: 300px;
        --gap: 48px;
    }

    /* バリエーションも上書き */
    .media-marquee.marquee--small {
        --logo-height: 30px;
        --gap: 32px;
    }

    .media-marquee.marquee--large {
        --logo-height: 52px;
        --gap: 56px;
    }
}

/* ---- 高解像度ディスプレイで微増し（任意） ---- */
@media (min-width: 768px) and (min-resolution: 2dppx) {
    .media-marquee {
        /* PCかつRetinaでは 10%だけ拡大（好みに合わせて変更/削除） */
        --logo-height: calc(var(--logo-height) * 1.1);
    }
}

/* ---- オプション：流体的な可変（固定値の代わりに使いたいとき） ---- */
/* 固定の代わりに下記1行を .media-marquee に書けば
   画面幅に合わせて 26px〜48px、間隔24px〜56pxで自動スケールします。
   .media-marquee{ --logo-height: clamp(26px, 4vw, 48px); --gap: clamp(24px, 3vw, 56px); }
*/
/* まずは通常（gap対応ブラウザ） */
.media-marquee .marquee-track {
    gap: var(--gap, 32px);
}

/* ---- Flex gap未対応ブラウザ用のフォールバック ---- */
@supports not (gap: 1px) {

    /* 子要素の左右パディングで“見た目の間隔”を作る */
    .media-marquee .marquee-track {
        /* 端がはみ出さないようにトラック側はマイナスマージンで相殺 */
        margin-left: calc(var(--gap, 32px) / -2);
        margin-right: calc(var(--gap, 32px) / -2);
    }

    .media-marquee li {
        padding-left: calc(var(--gap, 32px) / 2);
        padding-right: calc(var(--gap, 32px) / 2);
    }
}

/* レイアウト */
.video-grid {
    max-width: 1300px;
    margin-inline: auto;
    /* ← 中央寄せ */
    display: grid;
    grid-template-columns: 1fr;
    /* SP：1列 */
    gap: clamp(12px, 2.5vw, 24px);
    /* 余白は流体 */
    padding-bottom: 100px;
}

/* PCで3列 */
@media (min-width: 600px) {
    .video-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* 16:9 を崩さない埋め込みボックス */
.video {
    aspect-ratio: 16 / 9;
    background: #000;
    /* 読み込み中の下地 */
    overflow: hidden;
}

/* 古いブラウザ用フォールバック */
@supports not (aspect-ratio: 1) {
    .video {
        position: relative;
        padding-top: 56.25%;
    }

    .video>iframe {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }
}

/* 通常はこれでOK */
.video>iframe {
    width: 100%;
    height: 100%;
    border: 0;
}


/* iframe配置用（動画や地図などを画像上に重ねて配置したい時） */
/*
.iframe_box {
  position: absolute;
  width: 95%;
  aspect-ratio: 16 / 9;  // 動画ならアスペクト比指定もおすすめ
  z-index: 999;
  bottom: 10%;
  right: 0;
  left: 0;
  margin: auto;
  pointer-events: auto;  // ユーザー操作を許可
}
.iframe_box iframe {
  width: 100%;
  height: 100%;
  border: none;
}
*/

/* ---------------------------------------------------
 * common（PC　min-width: 1023px）
/* ---------------------------------------------------*/
.wrap {
    width: 2000px;
    max-width: 100%;
}

.container {
    position: relative;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

/*--テキストコーディングここから
.text_box {
    padding: 1em;
    overflow: hidden;
}

.text_box p {
    font-size: 1em;
    margin-bottom: 1.5em;
    line-height: 1.5em;
}
--テキストコーディングここまで--*/


/*背景画像を指定*/
section#section-01 {
    background: url(../img_pc/section_01.webp)no-repeat top center;
}

section#section-02 {
    background: url(../img_pc/section_02.webp)no-repeat top center;
}

section#section-03 {
    background: url(../img_pc/section_03.webp)no-repeat top center;
}

section#section-04 {
    background: url(../img_pc/section_04.webp)no-repeat top center;
}

section#section-05 {
    background: url(../img_pc/section_05.webp)no-repeat top center;
}

section#section-06 {
    background: url(../img_pc/section_06.webp)no-repeat top center;
}

section#section-07 {
    background: url(../img_pc/section_07.webp)no-repeat top center;
}

section#section-08 {
    background: url(../img_pc/section_08.webp)no-repeat top center;
}

section#section-09 {
    background: url(../img_pc/section_09.webp)no-repeat top center;
}

section#section-10 {
    background: url(../img_pc/section_10.webp)no-repeat top center;
}

/*背景画像を指定*/
section#section-11 {
    background: url(../img_pc/section_11.webp)no-repeat top center;
}

section#section-12 {
    background: url(../img_pc/section_12.webp)no-repeat top center;
}

section#section-13 {
    background: url(../img_pc/section_13.webp)no-repeat top center;
}

section#section-14 {
    background: url(../img_pc/section_14.webp)no-repeat top center;
}

section#section-15 {
    background: url(../img_pc/section_15.webp)no-repeat top center;
}

section#section-16 {
    background: url(../img_pc/section_16.webp)no-repeat top center;
}

section#section-17 {
    background: url(../img_pc/section_17.webp)no-repeat top center;
}

section#section-18 {
    background: url(../img_pc/section_18.webp)no-repeat top center;
}

section#section-19 {
    background: url(../img_pc/section_19.webp)no-repeat top center;
}

section#section-20 {
    background: url(../img_pc/section_20.webp)no-repeat top center;
}

/*背景画像を指定*/
section#section-21 {
    background: url(../img_pc/section_21.webp)no-repeat top center;
}

section#section-22 {
    background: url(../img_pc/section_22.webp)no-repeat top center;
}

section#section-23 {
    background: url(../img_pc/section_23.webp)no-repeat top center;
}

section#section-24 {
    background: url(../img_pc/section_24.webp)no-repeat top center;
}

section#section-25 {
    background: url(../img_pc/section_25.webp)no-repeat top center;
}

section#section-26 {
    background: url(../img_pc/section_26.webp)no-repeat top center;
}

section#section-27 {
    background: url(../img_pc/section_27.webp)no-repeat top center;
}

section#section-28 {
    background: url(../img_pc/section_28.webp)no-repeat top center;
}

section#section-29 {
    background: url(../img_pc/section_29.webp)no-repeat top center;
}

section#section-30 {
    background: url(../img_pc/section_30.webp)no-repeat top center;
}

/*背景画像を指定*/
section#section-31 {
    background: url(../img_pc/section_31.webp)no-repeat top center;
}

section#section-32 {
    background: url(../img_pc/section_32.webp)no-repeat top center;
}

section#section-33 {
    background: url(../img_pc/section_33.webp)no-repeat top center;
}

section#section-34 {
    background: url(../img_pc/section_34.webp)no-repeat top center;
}

section#section-35 {
    background: url(../img_pc/section_35.webp)no-repeat top center;
}

section#section-36 {
    background: url(../img_pc/section_36.webp)no-repeat top center;
}

section#section-37 {
    background: url(../img_pc/section_37.webp)no-repeat top center;
}

section#section-38 {
    background: url(../img_pc/section_38.webp)no-repeat top center;
}

section#section-39 {
    background: url(../img_pc/section_39.webp)no-repeat top center;
}

section#section-40 {
    background: url(../img_pc/section_40.webp)no-repeat top center;
}


/*背景画像を指定*/
section#section-41 {
    background: url(../img_pc/section_41.webp)no-repeat top center;
}

section#section-42 {
    background: url(../img_pc/section_42.webp)no-repeat top center;
}

section#section-43 {
    background: url(../img_pc/section_43.webp)no-repeat top center;
}

section#section-44 {
    background: url(../img_pc/section_44.webp)no-repeat top center;
}

section#section-45 {
    background: url(../img_pc/section_45.webp)no-repeat top center;
}

section#section-46 {
    background: url(../img_pc/section_46.webp)no-repeat top center;
}

section#section-47 {
    background: url(../img_pc/section_47.webp)no-repeat top center;
}

section#section-48 {
    background: url(../img_pc/section_48.webp)no-repeat top center;
}

section#section-49 {
    background: url(../img_pc/section_49.webp)no-repeat top center;
}

section#section-50 {
    background: url(../img_pc/section_50.webp)no-repeat top center;
}

/*背景画像を指定*/
section#section-51 {
    background: url(../img_pc/section_51.webp)no-repeat top center;
}

section#section-52 {
    background: url(../img_pc/section_52.webp)no-repeat top center;
}

section#section-53 {
    background: url(../img_pc/section_53.webp)no-repeat top center;
}

section#section-54 {
    background: url(../img_pc/section_54.webp)no-repeat top center;
}

section#section-videos {
    background-color: #9E071C;
}

section#section-58 {
    background: url(../img_pc/section_58.webp)no-repeat top center;
}

section#section-59 {
    background: url(../img_pc/section_59.webp)no-repeat top center;
}

section#section-60 {
    background: url(../img_pc/section_60.webp)no-repeat top center;
}

/*背景画像を指定*/
section#section-61 {
    background: url(../img_pc/section_61.webp)no-repeat top center;
}

section#section-62 {
    background: url(../img_pc/section_62.webp)no-repeat top center;
}

section#section-63 {
    background: url(../img_pc/section_63.webp)no-repeat top center;
}

section#section-64 {
    background: url(../img_pc/section_64.webp)no-repeat top center;
}

section#section-65 {
    background: url(../img_pc/section_65.webp)no-repeat top center;
}

section#section-66 {
    background: url(../img_pc/section_66.webp)no-repeat top center;
}

section#section-67 {
    background: url(../img_pc/section_67.webp)no-repeat top center;
}

section#section-67_2 {
    background: url(../img_pc/section_67_2.webp)no-repeat top center;
}

section#section-68 {
    background: url(../img_pc/section_68.webp)no-repeat top center;
}

section#section-69 {
    background: url(../img_pc/section_69.webp)no-repeat top center;
}

section#section-69_2 {
    background: url(../img_pc/section_69_2.webp)no-repeat top center;
}

section#section-70 {
    background: url(../img_pc/section_70.webp)no-repeat top center;
}

/*背景画像を指定*/
section#section-71 {
    background: url(../img_pc/section_71.webp)no-repeat top center;
}

section#section-72 {
    background: url(../img_pc/section_72.webp)no-repeat top center;
}

section#section-73 {
    background: url(../img_pc/section_73.webp)no-repeat top center;
}

section#section-74 {
    background: url(../img_pc/section_74.webp)no-repeat top center;
}

section#section-75 {
    background: url(../img_pc/section_75.webp)no-repeat top center;
}

section#section-76 {
    background: url(../img_pc/section_76.webp)no-repeat top center;
}


.-pc {
    display: block;
}

.-sp {
    display: none;
}

*,
*::before,
*::after {
    -webkit-box-sizing: inherit;
    box-sizing: inherit;
    /*親要素のbox-sizingを継承*/
}

/*-----------------タブレットサイズ-----------------------
@media (min-width: 600px) and (max-width: 1023px) {
    body {
        font-size: 3.2rem;
    }
    .-pc {
        display: none;
    }
    .-sp {
        display: block;
    }
    .wrap {
        max-width: 100%;
        width: 100%;
    }
}
----------------------------------------*/

/*-----------------スマホサイズ-----------------------*/

@media screen and (max-width:600px) {
    .-pc {
        display: none;
    }

    .-sp {
        display: block;
    }

    body {
        font-size: 4.2vw;
    }

    .wrap {
        max-width: 100%;
        width: 100%;
    }

    #footer {
        text-align: center;
        font-size: 0.8em;
        padding: 1em;
    }

    #footer a {
        color: #000000;
    }

    section {
        background: none !important;
    }

    .sticky {
        position: fixed;
        width: 95%;
        max-width: 500px;
        bottom: 0;
        left: 0;
        right: 0;
        margin: auto;
        z-index: 1000;
        opacity: 1;
        /* 最初は完全に不透明 */
        visibility: visible;
        transition: opacity 0.5s ease, visibility 0.5s ease;
        /* 不透明度と可視性の変化に0.5秒かけて滑らかに */
    }

    /* ボタン配置（画像上に絶対配置） */
    .btn_box_kiso01 {
        position: absolute;
        width: 90%;
        z-index: 999;
        top: 21%;
        right: 0;
        left: 0;
        margin: auto;
    }

    .btn_box_kobetsu_wh01 {
        position: absolute;
        width: 78%;
        z-index: 999;
        top: 67%;
        right: 0;
        left: 0;
        margin: auto;
    }

    .btn_box_kobetsu_gl01 {
        position: absolute;
        width: 91%;
        z-index: 999;
        top: 47%;
        right: 0;
        left: 0;
        margin: auto;
    }

    .btn_box_kiso02 {
        position: absolute;
        width: 90%;
        z-index: 999;
        top: 14%;
        right: 0;
        left: 0;
        margin: auto;
    }

    .btn_box_kobetsu_wh02 {
        position: absolute;
        width: 78%;
        z-index: 999;
        top: 44%;
        right: 0;
        left: 0;
        margin: auto;
    }

    .btn_box_kobetsu_gl02 {
        position: absolute;
        width: 91%;
        z-index: 999;
        top: 78%;
        right: 0;
        left: 0;
        margin: auto;
    }

    .gif_box {
        position: absolute;
        width: 92%;
        z-index: 999;
        top: 52%;
        right: 0;
        left: 0;
        margin: auto;
    }

    .media-marquee img {
        height: 12em;
        /* ← ここで小さくする。好みで100〜150pxあたり */
        width: auto;
    }

    /* ロゴや余白が広すぎる場合の調整 */
    .media-marquee {
        --gap: 16px;
        /* 画像間の余白も減らす */
    }

    #section-videos {
        background-color: #9E071C !important;
    }

    .video-grid {
        padding: 0 18px 36px;
        gap: 28px;
    }
}

/*----------------------------------------*/