body {
    color: black;
    height: 100vh;
    font-style: normal;
    font-family: "meiryo", sans-serif;
    font-weight: 700;
    line-height: 1;
}

a {
    color: black;
    text-decoration: none;
    display: block;
}

p {
    margin: 0;
    padding: 0;
}

li {
    list-style: none;
}

button {
    cursor: pointer;
    color: black;
    border: none;
    background-color: white;
}

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

.img > img, .img > iframe {
    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;
}
.flex-bet {
    display: flex;
    justify-content: space-between;
}

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

.block {
    display: block;
}

.cw-290 {
    width: calc(100% - calc((580 / 1920) * 100vw));
    margin: 0 auto;
}
.cw-160 {
    width: calc(100% - calc((320 / 1920) * 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((50 / 1920)* 100vw) 0;
}

.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}
.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}
.gap-10 {
    gap: calc((10 / 1920)* 100vw);
}
.gap-30 {
    gap: calc((30 / 1920)* 100vw);
}
.gap-50 {
    gap: calc((50 / 1920)* 100vw);
}
.gap-70 {
    gap: calc((70 / 1920)* 100vw);
}
.gap-100 {
    gap: calc((100 / 1920)* 100vw);
}

.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;
}

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

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

.border-gray {
    border: calc((2 / 1920)* 100vw) solid #727171;
}

.wid-100 {
    width: 100%;
}

.c-blue {
    color: #040064;
}
.c-white {
    color: white;
}
.bgc-blue {
    background-color: #040064;
}
.bgc-pink {
    background-color: #E84F96;
}
.bgc-water {
    background-color: #00A0E9;
}

.btn {
    width: calc((430 / 1920)* 100vw);
    height: calc((55 / 1920)* 100vw);
    border-radius: calc((20 / 1920)* 100vw);
    transition: all 0.3s;
}
.btn.yellow {
    background-color: #FFFE02;
}
.btn:hover {
    background-color: #040064;
    color: white;
}
.btn.yellow:hover {
    background-color: black;
    color: white;
}

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

    .cw-160 {
        width: calc(100% - 40px);
    }

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

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

    .rad-10 {
        border-radius: 10px;
    }

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

    .border-gray {
        border: 1px solid #727171;
    }

    .btn {
        width: 300px;
        height: 50px;
        border-radius: 10px;
    }
}

/* フォント */
@font-face {
    font-family: 'ryumin';
    src: url('../fonts/a-otf-ryumin-pro-m-kl.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

.lh-12 {
    line-height: 1.2;
}

.lh-175 {
    line-height: 1.75;
}

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

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

.ko-re {
    font-family: kozuka-gothic-pro, sans-serif;
    font-weight: 400;
}

.ko-bo {
    font-family: kozuka-gothic-pro, sans-serif;
    font-weight: 700;
}

.ko-he {
    font-family: kozuka-gothic-pro, sans-serif;
    font-weight: 900;
}

.ry-ex {
    font-family: 'ryumin';
    font-weight: 800;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.f-76 {
    font-size: calc((76 / 1920)* 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: 16px;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.mb-180 {
    margin-bottom: calc((180 / 1920)* 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;
    }
}