@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;
    letter-spacing: 0.08em;
    padding: 1em;
}

#footer a {
    color: #000000;
    text-decoration: none;
}

.sticky {
    position: fixed;
    width: 100%;
    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秒かけて滑らかに */
}

.sticky.hidden {
    opacity: 0;
    /* 非表示時は透明 */
    pointer-events: none;
    /* 透明時はクリックを無視 */
}

/* ボタン配置（画像上に絶対配置） */
.btn_box {
    position: absolute;
    width: 95%;
    z-index: 999;
    top: 50%;
    right: 0;
    left: 0;
    margin: auto;
}

/* ボタンアニメーションここから */

/* キラリと光らせる1 */
.cta_style1 {
    position: relative;
    display: block;
    overflow: hidden;
    /*border-radius: 15px;*/
    /*ボタン角が丸い場合コメント解除*/
}

.cta_style1:before {
    content: "";
    width: 200%;
    height: 200%;
    background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, 1) 45%, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 1) 55%, rgba(255, 255, 255, 0) 80%, rgba(255, 255, 255, 0) 100%);
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, 1) 45%, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 1) 55%, rgba(255, 255, 255, 0) 80%, rgba(255, 255, 255, 0) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#00ffffff', GradientType=0);
    position: absolute;
    top: -50%;
    left: -50%;
    animation: cta_style1 1.5s infinite linear;
    -webkit-animation: cta_style1 2.5s infinite linear;
    pointer-events: none
}

@keyframes cta_style1 {

    from,
    0% {
        -webkit-transform: translate3d(-100%, 0, 0) rotate(45deg);
        transform: translate3d(-100%, 0, 0) rotate(45deg);
        opacity: 0;
    }

    20% {
        -webkit-transform: translate3d(-100%, 0, 0) rotate(45deg);
        transform: translate3d(-100%, 0, 0) rotate(45deg);
        opacity: 1;
    }

    70% {
        -webkit-transform: translate3d(100%, 0, 0) rotate(45deg);
        transform: translate3d(100%, 0, 0) rotate(45deg);
        opacity: 1;
    }

    80% {
        -webkit-transform: translate3d(100%, 0, 0) rotate(45deg);
        transform: translate3d(100%, 0, 0) rotate(45deg);
        opacity: 0;
    }

    to,
    100% {
        -webkit-transform: translate3d(-100%, 0, 0) rotate(45deg);
        transform: translate3d(-100%, 0, 0) rotate(45deg);
        opacity: 0;
    }
}

/* 横に揺れる */
.cta_style2 {
    display: block;
    animation: cta_style2 2s infinite;
}

@keyframes cta_style2 {
    0% {
        transform: translate(2px, 0px);
    }

    5% {
        transform: translate(-2px, 0px);
    }

    10% {
        transform: translate(2px, 0px);
    }

    15% {
        transform: translate(-2px, 0px);
    }

    20% {
        transform: translate(2px, 0px);
    }

    25% {
        transform: translate(-2px, 0px);
    }

    30% {
        transform: translate(0px, 0px);
    }
}

/* 上下に振動する */
.cta_style3 {
    display: block;
    animation: cta_style3 2s infinite;
}

@keyframes cta_style3 {
    0% {
        transform: translate(0px, 2px);
    }

    5% {
        transform: translate(0px, -2px);
    }

    10% {
        transform: translate(0px, 2px);
    }

    15% {
        transform: translate(0px, -2px);
    }

    20% {
        transform: translate(0px, 2px);
    }

    25% {
        transform: translate(0px, -2px);
    }

    30% {
        transform: translate(0px, 0px);
    }
}

/* 拡大縮小 */
.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);
    }
}

/* ぷにぷに */
.cta_style5 {
    display: block;
    animation: cta_style5 0.8s infinite;
}

@keyframes cta_style5 {
    0% {
        transform: scale(1, 1);
    }

    50% {
        transform: scale(0.98, 1.15)
    }
}

/* もちもち */
.cta_style6 {
    display: block;
    animation: cta_style6 3s infinite;
}

@keyframes cta_style6 {
    0% {
        transform: scale(1, 0.8);
    }

    20% {
        transform: scale(0.8, 1.1);
    }

    95% {
        transform: scale(1, 1);
    }

    100% {
        transform: scale(1, 0.8);
    }
}

/* ボタンアニメーションここまで */

/* iframe配置用（動画や地図などを画像上に重ねて配置したい時） */

.iframe_box1,
.iframe_box2 {
    position: absolute;
    max-width: 600px;
    width: 87%;
    aspect-ratio: 16 / 9;
    z-index: 999;
    right: 0;
    left: 0;
    margin: auto;
    pointer-events: auto;
}

.iframe_box1 {
    top: 14.5%;
}

.iframe_box2 {
    top: 66%;
}

.iframe_box1 iframe,
.iframe_box2 iframe {
    width: 100%;
    height: 100%;
    border: none;
}


/* ---------------------------------------------------
 * common（PC　min-width: 1023px）
/* ---------------------------------------------------*/
.wrap {
    width: 2000px;
    max-width: 100%;
}

.container {
    position: relative;
    max-width: 600px;
    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;
}

.-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 {
        width: 95%;
    }
}

/*----------------------------------------*/