
/* #region 汎用パーツ */

    .all {
        padding: 0;
        width: 100%;
        overflow: hidden;
    }

    /* Heading */
    .h2 {
        text-align: center;
        align-items: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 40px 0 16px 0;
    }
    .h2__txt {
        font-weight: 700;
        font-size: var(--font-size-2xl);
        padding: 10px 0px;
        margin-top: var(--spacing-xs);
        border-radius: 10px;
        line-height: 1.5;
        word-break: keep-all;
        overflow-wrap: break-word;
    }
    .h2__txt--white {
        color: white;
        font-weight: 700;
        font-size: var(--font-size-2xl);
        padding: 10px 0px;
        margin-top: var(--spacing-xs);
        border-radius: 10px;
        line-height: 1.5;
        word-break: keep-all;
        overflow-wrap: break-word;
    }
    .h2__subcopy {
        display: inline;
        letter-spacing: 0.3em;
        font-size: var(--font-size-md);
        font-weight: 700;
        color: white;
        background-color: var(--color-secondary);
        border-radius: 100px;
        padding: var(--spacing-2xs) var(--spacing-2xl);
    }
    .h2__subcopy--white {
        display: inline;
        letter-spacing: 0.3em;
        font-size: var(--font-size-md);
        font-weight: 700;
        color: var(--color-main);
        background-color: white;
        border-radius: 100px;
        padding: var(--spacing-2xs) var(--spacing-2xl);
    }
    .h3__txt {
        font-weight: 700;
        font-size: var(--font-size-lg);
        color: var(--color-main);
        padding: 10px 0px;
        border-radius: 10px;
    }
    .h4__text {
        font-weight: 700;
        font-size: var(--font-size-md);
        color: var(--color-main);
        padding: 10px 0px;
        border-radius: 10px;
    }

    /* パラグラフ */
    .red-text {
        font-weight: 700;
        color: var(--color-red);
    }
    .color-text {
        font-weight: 700;
        color: var(--color-main);
    }
    .big-text {
        font-weight: 700;
        font-size: var(--font-size-lg);
    }
    /* マーカー */
    .marker-text {
        background: linear-gradient(transparent 60%, #F5E956 50%);
    }


    
    /* スペーサー */
    .spacer--md {
        height: var(--spacing-lg);
    }
    .spacer--lg {
        height: var(--spacing-lg);
    }
    .spacer--xl {
        height: var(--spacing-xl);
    }
    .spacer--4xl {
        height: var(--spacing-4xl);
    }

    /* visuallyhidden */
    .visuallyhidden {
        position: fixed !important;
        top: 0px !important;
        left: 0px !important;
        opacity: 0 !important;
        overflow: hidden !important;
        border: none !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        visibility: visible !important;
    }

    /* 注釈 */
    .kome {
        text-align: center;
        margin-top: 0;
        letter-spacing: 0.05em;
        font-size: var(--font-size-xs);
        opacity: 0.7;
        display: block;
    }
    .kome--right {
        text-align: end;
        margin-top: 0;
        margin-right: 16px;
        letter-spacing: 0.05em;
        font-size: var(--font-size-xs);
        opacity: 0.7;
        display: block;
    }
    .kome--left {
        text-align: start;
        margin-top: 0;
        letter-spacing: 0.05em;
        font-size: var(--font-size-xs);
        opacity: 0.7;
        display: block;
    }

    

/* #endregion */

/* #region FV  */

    .fv__wrapper {
        width: 100%;
        margin: 0 auto;
    }
    .fv__bg {
    }
    .fv__main {
    }
    @media screen and (min-width: 766.98px) {
    /* 上記のpx以上に適用 */
    .fv__main {
        min-width: 1680px;
        position: relative;
        left: 50%;
        transform: translate(-50%, 0%);
    } 
    }


    @media screen and (max-width: 1180px) {
        .fv__main>picture>img {
        width: calc(100vw * 1.45);
        margin: auto;
        }
    }

/* #endregion*/

/* #region fv-after */
    .fv-after__bg {
        background-color: var(--color-light-secondary); 
    }
    .fv-after {
        max-width: 450px;
        margin: 0 auto;
        width: 90%;
    }
/* #endregion */

/* #region content*/
    /* 全体のwrapper */
    .content__bg {
        background-color: var(--color-light-secondary);
    }
    .content__inner {
        max-width: 700px;
        margin: 0 auto;
        padding: 8px 0;
        background-color: white;
    }
    /* 画像wrapper */
    .img-wrapper {
        max-width: 500px;
        width: 90%;
        margin: 32px auto;
    }
    .img-wrapper--wide {
        max-width: 500px;
        width: 100%;
        margin: 32px auto;
    }
    .img-wrapper--cata {
        max-width: 200px;
        width: 90%;
        margin: 32px auto;
    }
    .img-wrapper--title {
        max-width: 440px;
        width: 90%;
        margin: 64px auto 16px auto;
    }
    .img-wrapper--h3 {
        max-width: 220px;
        width: 90%;
        margin: 32px auto 16px auto;
    }
    .img-wrapper--example {
        max-width: 390px;
        width: 100%;
        margin: 32px auto;
    }
    .title-bg {
        display: flex;
        background-color: #696969;
        padding: 12px 0;
        margin-top: 60px;
        /* border-radius: 8px; */
    }
    .title-bg--correct {
        background-color: var(--color-main);
        padding: 12px 0;
        /* border-radius: 8px; */
    }
    .img-h3 {
        width: 90%;
        max-width: 300px;
        margin: 12px auto ;
    }
    /* タウンライフの使い方 */
    .town-howto-img-wrap {
        max-width: 440px;
        display: flex;
        align-items: center;
        justify-content: center;
        /* 10-80-320-500 */
        gap: clamp(0.625rem, -7.153rem + 38.89vw, 5rem);
        width: 100%;
        margin: 0 auto 16px auto;
    }
    .town-howto-img {
        /* 130-200-320-500 */
        max-width: clamp(8.125rem, 0.347rem + 38.89vw, 12.5rem);
        width: 150px;
    }
/* #endregion */

/* #region スライダー */
    .slider__inner--100per {
        max-width: 1000px;
        text-align: center;
        justify-content: center;
        margin: 0 auto;
        background-color: transparent;
    }
    .splide__wrapper {
        background-color: transparent;
    }
    .splide__slide img {
        transform: scale(.9); /* 左右のスライドを小さくする */
        transition: .7s; /* ゆっくり小さくさせる */
        height: auto;
        width: 100%;
        border: solid white 6px;
        border-radius: 12px;
        box-shadow: 0 0 5px rgb(0 0 0 / 20%);
        transition: all 0.5s ease 0.2s;
        margin: 8px;
        z-index: 0;
    }
    /* アクティブなスライドのスタイル */
    .splide__slide.is-active img {
        transform: scale(1); /* 中央のスライドは小さくしない */
        z-index: 1;
    }
/* #endregion スライダー */

/* #region CTA */

    .cta-btn {
        background: none;
        border: none;
        padding: 0;
        cursor: pointer;
        display: block;
        margin: 0 auto 32px auto;
        animation: shake 5s infinite;
        width: 90%;
    }
    .cta-btn:hover {
        animation: none;
        transform: translateY(2px);
        opacity: 0.9;
    }
    .cta-btn--noanime {
        background: none;
        border: none;
        padding: 0;
        cursor: pointer;
        display: block;
        margin: 0 auto 32px auto;
        width: 90%;
    }

    /* ふわふわアニメーション */
    @keyframes shake {
        0% {
            transform: translateY(4px);
        }

        10% {
            transform: translateY(-4px);
        }

        20% {
            transform: translateY(4px);
        }

        30% {
            transform: translateY(-4px);
        }

        40% {
            transform: translateY(4px);
        }

        50% {
            transform: translateY(-4px);
        }

        60% {
            transform: translateY(4px);
        }

        70% {
            transform: translateY(-4px);
        }

        80% {
            transform: translateY(4px);
        }

        90% {
            transform: translateY(-4px);
        }

        100% {
            transform: translateY(4px);
        }
    }

/* #endregion cta*/

/* #region フッター */
    footer {
        color: #676767;
        height: auto;
        text-align: center;
    }
    .bg_footer {
        width: 100%;
        background: var(--color-light-secondary);
    }
    .fotter_inner {
        padding: 30px 0;
        width: 100%;
        max-width: 700px;
        margin: 0 auto;
        box-sizing: border-box;
    }
    .footer__wrap {
        display: block;
        padding: 40px;
        margin-top: 40px;
        justify-content: center;
        box-shadow: 0px -1px 2px ;
    }
    .footer__text {
        display: inline-block;
        font-size: var(--font-size-sm);
        text-align: start;
    }
/* #endregion*/

/* #region フローティングボタン */
    /* スマホの場合 */
    .floating-cta {
        position: fixed;
        bottom: 11.2px;
        bottom: 0.5rem;
        left: 50%;
        transform: translate(-50%, 0);
        opacity: 0;
        pointer-events: none;
        transition: all 0.2s ease 0s;
        width: 90%;
        z-index: 999;
        max-width: 500px;
        cursor: pointer;
    }
    .floating-cta button {
        /* width: 90%; */
        display: block;
        cursor: pointer;
        max-width: 450px;
        margin: 0 auto; /* Button を親要素の中央に配置 */
        animation: none;
    }
    .floating-cta button:hover {
        box-shadow: 0 0px 0px var(--color-cta-shadow);
        cursor: pointer;
        transform: translateY(4px);
    }
    .is-none {
        display: none !important;
    }
    .floating-cta.is-active {
        opacity: 1;
        pointer-events: initial;
    }
    /* PCの場合 */
    /* @media only screen and (min-width: 768px) {
    
        .floating-cta {
            position: fixed;
            bottom: 0;
            left: initial;
            right: 0;
            transform: translate(-5%, 0);
            max-width: 240px;
            justify-content: center;
        }
    
        .floating-cta button {
            width: 100%;
            display: block;
            border-radius: 100px;
            border-radius: 6.25rem;
            padding: 12px;
            padding: 1.45rem 0.5rem;
            text-align: center;
            font-weight: 700;
            font-size: 17px;
            font-size: 1.0625rem;
            line-height: 1;
            color: white;
        }
    } */

    /* *,
    ::after,
    ::before {
    -webkit-box-sizing: inherit;
    box-sizing: border-box;
    } */
/* #endregion */
