body {
    height: 100vh;
    font-family: "M PLUS Rounded 1c", sans-serif;
    color: #591F19;
    font-weight: 800;
}

main {
    overflow-x: hidden;
}

a {
    color: #591F19;
    text-decoration: none;
    display: block;
}

p {
    margin: 0;
    padding: 0;
}

li {
    list-style: none;
}

button {
    cursor: pointer;
    color: #591F19;
    border: none;
    background-color: white;
}

img {
    max-width: 100%;
    vertical-align: bottom;
    object-fit: cover;
}

.img > img {
    width: 100%;
    height: 100%;
}

input {
    padding: 0;
}

dl {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}

.sp {
    display: none !important;
}
@media (max-width: 768px) {
    .sp {
        display: block !important;
    }
}

@media (max-width: 768px) {
    .pc {
        display: none;
    }
}

.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.posi-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.block {
    display: block;
}

.cw-300 {
    width: calc(100% - calc((600 / 1440) * 100vw));
    margin: 0 auto;
}

.ma-auto {
    margin-right: auto;
    margin-left: auto;
}

.w-fit {
    width: fit-content;
}

.txt-center {
    text-align: center;
}

.o-hov, .o-hov-w a {
    opacity: 1;
    transition: all 0.3s;
}
.o-hov:hover, .o-hov-w a:hover {
    opacity: 0.5;
}

.se-pd {
    padding: calc((180 / 1440)* 100vw) 0;
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}
.gap-20 {
    gap: calc((20 / 1440)* 100vw);
}
.gap-50 {
    gap: calc((50 / 1440)* 100vw);
}
.gap-100 {
    gap: calc((100 / 1440)* 100vw);
}

.c-red {
    color: #F70003;
}
.c-orange {
    color: #FB891F;
}
.c-green {
    color: #008435;
}
.c-yellow {
    color: #F4E650;
}
.c-brown {
    color: #591F19;
}
.bgc-red {
    background-color: #F70003;
}
.bgc-orange {
    background-color: #FB891F;
}
.bgc-green {
    background-color: #008435;
}
.bgc-yellow {
    background-color: #F4E650;
}
.bgc-yellow02 {
    background-color: #f7d749;
}
.bgc-brown {
    background-color: #591F19;
}

.posi-re {
    position: relative;
}

.posi-ab {
    position: absolute;
}

.x-50 {
    left: 50%;
    transform: translateX(-50%);
}

.y-50 {
    top: 50%;
    transform: translateY(-50%);
}

.z--1 {
    z-index: -1;
}

.ttl {
    color: #FB891F;
    text-shadow:
        calc((-2 / 1440)* 100vw) calc((-2 / 1440)* 100vw) 0 #591F19,
        calc((2 / 1440)* 100vw) calc((-2 / 1440)* 100vw) 0 #591F19,
        calc((-2 / 1440)* 100vw)  calc((2 / 1440)* 100vw) 0 #591F19,
        calc((2 / 1440)* 100vw)  calc((2 / 1440)* 100vw) 0 #591F19,
        0 calc((7 / 1440)* 100vw) 0 #591F19;
}

.ttl > p, .ttl > h2 {
    position: relative;
    z-index: 1;
}

.ttl > img {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: calc((535 / 1440)* 100vw);
    z-index: 0;
}

.txt-white {
    text-shadow:
        calc((-4 / 1440)* 100vw) calc((-4 / 1440)* 100vw) 0 white,
        calc((4 / 1440)* 100vw) calc((-4 / 1440)* 100vw) 0 white,
        calc((-4 / 1440)* 100vw)  calc((4 / 1440)* 100vw) 0 white,
        calc((4 / 1440)* 100vw)  calc((4 / 1440)* 100vw) 0 white;
}

.box-shadow {
    box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.08);
}

.rad-50 {
    border-radius: calc((50 / 1440)* 100vw);
}

.rad-100 {
    border-radius: calc((100 / 1440)* 100vw);
}

@media (max-width: 768px) {
    .cw-300 {
        width: calc(100% - 40px);
    }

    .contents-width-sp {
        width: calc(100% - 40px);
        margin-right: auto;
        margin-left: auto;
    }

    .se-pd {
        padding: 97px 0;
    }

    .grid-3 {
        grid-template-columns: repeat(1, 1fr);
    }
    .grid-2 {
        grid-template-columns: repeat(1, 1fr);
    }
    .gap-20 {
        gap: 50px;
    }
    .gap-50 {
        gap: 50px;
    }
    .gap-100 {
        gap: 50px;
    }

    .ttl {
        text-shadow:
            -2px -2px 0 #591F19,
            2px -2px 0 #591F19,
            -2px 2px 0 #591F19,
            2px 2px 0 #591F19,
            0 4px 0 #591F19;
    }

    .ttl > p {
        font-size: 19px;
        margin-bottom: 7px;
    }

    .ttl > img {
        width: 300px;
    }

    .txt-white {
        text-shadow:
            -2px -2px 0 white,
            2px -2px 0 white,
            -2px 2px 0 white,
            2px 2px 0 white;
    }


    .rad-50, .rad-100 {
        border-radius: 50px;
    }
}

/* フォント */
.po-ex {
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 800;
}

.lh-15 {
    line-height: 1.5;
}

.lh-2 {
    line-height: 2;
}

.f-bd {
    font-weight: bold;
}

.f-10 {
    font-size: calc((10 / 1440)* 100vw);
}

.f-12 {
    font-size: calc((12 / 1440)* 100vw);
}

.f-14 {
    font-size: calc((14 / 1440)* 100vw);
}

.f-16 {
    font-size: calc((16 / 1440)* 100vw);
}

.f-18 {
    font-size: calc((18 / 1440)* 100vw);
}

.f-20 {
    font-size: calc((20 / 1440)* 100vw);
}

.f-22 {
    font-size: calc((22 / 1440)* 100vw);
}

.f-24 {
    font-size: calc((24 / 1440)* 100vw);
}

.f-26 {
    font-size: calc((26 / 1440)* 100vw);
}

.f-28 {
    font-size: calc((28 / 1440)* 100vw);
}

.f-30 {
    font-size: calc((30 / 1440)* 100vw);
}

.f-32 {
    font-size: calc((32 / 1440)* 100vw);
}

.f-34 {
    font-size: calc((34 / 1440)* 100vw);
}

.f-36 {
    font-size: calc((36 / 1440)* 100vw);
}

.f-38 {
    font-size: calc((38 / 1440)* 100vw);
}

.f-40 {
    font-size: calc((40 / 1440)* 100vw);
}

.f-45 {
    font-size: calc((45 / 1440)* 100vw);
}

.f-48 {
    font-size: calc((48 / 1440)* 100vw);
}

.f-50 {
    font-size: calc((50 / 1440)* 100vw);
}

.f-58 {
    font-size: calc((58 / 1440)* 100vw);
}

.f-60 {
    font-size: calc((60 / 1440)* 100vw);
}

.f-96 {
    font-size: calc((96 / 1440)* 100vw);
}

@media (max-width: 768px) {
    .f-10 {
        font-size: 10px;
    }

    .f-12 {
        font-size: 12px;
    }

    .f-14 {
        font-size: 14px;
    }

    .f-16 {
        font-size: 16px;
    }

    .f-18 {
        font-size: 18px;
    }

    .f-20 {
        font-size: 18px;
    }

    .f-22 {
        font-size: 18px;
    }

    .f-24 {
        font-size: 20px;
    }

    .f-26 {
        font-size: 20px;
    }

    .f-28 {
        font-size: 24px;
    }

    .f-30 {
        font-size: 24px;
    }

    .f-32 {
        font-size: 24px;
    }

    .f-34 {
        font-size: 24px;
    }

    .f-36 {
        font-size: 24px;
    }

    .f-38 {
        font-size: 24px;
    }

    .f-40 {
        font-size: 24px;
    }

    .f-45 {
        font-size: 24px;
    }

    .f-48 {
        font-size: 24px;
    }

    .f-50 {
        font-size: 24px;
    }

    .f-58 {
        font-size: 24px;
    }

    .f-60 {
        font-size: 30px;
    }

    .f-96 {
        font-size: 30px;
    }
}

/* マージン */
.mb-5 {
    margin-bottom: calc((5 / 1440)* 100vw);
}

.mb-10 {
    margin-bottom: calc((10 / 1440)* 100vw);
}

.mb-20 {
    margin-bottom: calc((20 / 1440)* 100vw);
}

.mb-30 {
    margin-bottom: calc((30 / 1440)* 100vw);
}

.mb-40 {
    margin-bottom: calc((40 / 1440)* 100vw);
}

.mb-50 {
    margin-bottom: calc((50 / 1440)* 100vw);
}

.mb-60 {
    margin-bottom: calc((60 / 1440)* 100vw);
}

.mb-70 {
    margin-bottom: calc((70 / 1440)* 100vw);
}

.mb-80 {
    margin-bottom: calc((80 / 1440)* 100vw);
}

.mb-90 {
    margin-bottom: calc((90 / 1440)* 100vw);
}

.mb-100 {
    margin-bottom: calc((100 / 1440)* 100vw);
}

.mb-120 {
    margin-bottom: calc((120 / 1440)* 100vw);
}

.mb-180 {
    margin-bottom: calc((180 / 1440)* 100vw);
}

@media (max-width: 768px) {
    .mb-5 {
        margin-bottom: 5px;
    }

    .mb-10 {
        margin-bottom: 12px;
    }

    .mb-20 {
        margin-bottom: 15px;
    }

    .mb-30 {
        margin-bottom: 15px;
    }

    .mb-40 {
        margin-bottom: 30px;
    }

    .mb-50 {
        margin-bottom: 35px;
    }

    .mb-60 {
        margin-bottom: 35px;
    }

    .mb-70 {
        margin-bottom: 45px;
    }

    .mb-80 {
        margin-bottom: 50px;
    }

    .mb-90 {
        margin-bottom: 50px;
    }

    .mb-100 {
        margin-bottom: 50px;
    }

    .mb-120 {
        margin-bottom: 50px;
    }
}