@charset "utf-8";

/* common */
:root {
    --color-green: #02C470;
    --color-beige: #F1E9D8;
    --color-white: #fff;
    --color-black: #333;
    --color-gray: #ccc;
    --color-dark-gray: #757575;
    --color-orange: #FF7F48;
    --color-red: #E60012;
    --easeOutBack: cubic-bezier(0.34, 1.56, 0.64, 1);
}

.font_rounded {
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 900;
    font-style: normal;
}
.font_noto_sans {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-weight: 400;
}
.fw400 {
    font-weight: 400;
}
.fw500 {
    font-weight: 500;
}
.fw700 {
    font-weight: 700;
}

.wrapper {
    background-color: var(--color-beige);
    overflow: hidden;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-weight: 400;
    color: var(--color-black);
}
.wrapper a,
.wrapper button {
    text-decoration: none;
    color: inherit;
}
img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}
body {
    font-size: 16rem;
}
@media (min-width: 961px) {
    html {
        font-size: 1px;
    }
}
@media (max-width: 960px) and (min-width: 769px) {
    html {
        font-size: calc(100 / 960 * 1vw);
    }
}
@media (min-width: 769px) {
    .sp_only {
        display: none !important;
    }
}
@media (max-width: 768px) {
    html {
        font-size: calc(100 / 390 * 1vw);
    }
    body {
        font-size: 16rem;
    }
    .pc_only {
        display: none !important;
    }
}


/* footer */
.footer {
    text-align: center;
    position: relative;
    z-index: 1;
    overflow: hidden;
}
.footer_logo,
.footer_logo_one {
    position: relative;
    z-index: 1;
}
.footer::before {
    content: '';
    display: block;
    position: absolute;
    left: 50%;
    background: url(../img/common/footer_circle.svg) no-repeat 0 0 / contain;
}
.footer_left,
.footer_right,
.footer_car {
    position: absolute;
    left: 50%;
}
@media (min-width: 769px) {
    .footer {
        padding-top: 90px;
        padding-bottom: 48px;
    }
    .footer_logo_one {
        left: 7px;
    }
    .footer::before {
        bottom: -117px;
        margin-left: -470px;
        width: 944px;
        height: 468px;
    }
    .footer_left {
        bottom: 31px;
        margin-left: -800px;
    }
    .footer_right {
        bottom: 140px;
        margin-left: 266px;
    }
    .footer_car {
        bottom: 0;
        margin-left: 405px;
    }
}
@media (max-width: 768px) {
    .footer {
        padding-top: 29rem;
        padding-bottom: 134rem;
    }
    .footer_logo {
        width: 274rem;
        margin: auto;
    }
    .footer_logo_one {
        width: 160rem;
        margin: auto;
    }
    .footer::before {
        bottom: 82rem;
        margin-left: -235rem;
        width: 471rem;
        height: 234rem;
    }
    .footer_left {
        bottom: -46rem;
        width: 296rem;
        margin-left: -356rem;
    }
    .footer_right {
        bottom: -28rem;
        width: 210rem;
        margin-left: 96rem;
    }
    .footer_car {
        bottom: 0;
        margin-left: -40rem;
        width: 80rem;
    }
}

/* footer animation */
.animation_ready .footer_left,
.animation_ready .footer_right {
    scale: 0;
}
.animation_loaded .footer.is_animated .footer_left {
    transition: scale .6s var(--easeOutBack);
    scale: 1;
    transform-origin: 80% 80%;
}
.animation_loaded .footer.is_animated .footer_right {
    transition: scale .6s 0.2s var(--easeOutBack);
    scale: 1;
    transform-origin: 20% 80%;
}
.animation_loaded .footer.is_animated .footer_moku:nth-of-type(3n+1) {
    animation: fuwafuwa 2s 0.4s ease-in-out infinite alternate;
}
.animation_loaded .footer.is_animated .footer_moku:nth-of-type(3n+2) {
    animation: fuwafuwa 2.4s 0.4s ease-in-out infinite alternate;
}
.animation_loaded .footer.is_animated .footer_moku:nth-of-type(3n+3) {
    animation: fuwafuwa 2.2s 0.4s ease-in-out infinite alternate;
}
