@charset "UTF-8";

/* common header */

.underline-header {
    font-family: var(--zenmaru);
    font-style: normal;
    font-weight: 700;
    font-size: 2.4rem;
    line-height: 3.2rem;
    text-align: center;
    letter-spacing: 0.1em;
    color: #40342e;
    position: relative;
    padding-bottom: 2.2rem;
    white-space: nowrap;
    &::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 4.1rem;
        height: 0.4rem;
        background-color: #ff7568;
        border-radius: 0.5rem;
    }
}

/* banner */

#banner {
    width: 100%;
    position: relative;
    .banner-img {
        width: 100%;
        vertical-align: top;
        position: relative;
        z-index: 0;
    }
    .banner-text {
        position: absolute;
        top: 6.5rem;
        left: 2rem;
        width: 27.1rem;
        @media screen and (min-width: 768px) {
            top: 13rem;
            width: 34rem;
        }
        & img {
            width: 100%;
            vertical-align: top;
        }
    }
    .banner-links {
        position: absolute;
        bottom: 4rem;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        gap: 1rem;
        justify-content: center;
        @media screen and (min-width: 768px) {
            gap: 1.4rem;
        }
        & div {
            width: 11rem;
            @media screen and (min-width: 768px) {
                width: 14rem;
            }
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
    }
}

#section1 {
    background-color: #fff;
    padding-top: 3rem;
    padding-bottom: 6rem;
    .header {
        font-style: normal;
        font-weight: 600;
        font-size: 2.4rem;
        line-height: 3.4rem;
        text-align: center;
        letter-spacing: 0.1em;
        color: #000000;
        margin-bottom: 3.5rem;
        white-space: nowrap;
        & span {
            color: #336ec7;
        }
    }
    & ul.bubble {
        & li {
            border-radius: 1.5rem;
            background-color: #f0f1f8;
            width: 100%;
            height: 8.6rem;
            margin-bottom: 1.4rem;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            font-style: normal;
            font-weight: 400;
            font-size: 1.8rem;
            line-height: 2.8rem;
            letter-spacing: 0.05em;
            color: #000000;
            text-align: center;
            & img {
                width: 32rem;
                vertical-align: top;
                margin-top: -1.5rem;
            }
        }
    }
}

#section2 {
    background-color: #fff8f0;
    padding-bottom: 6rem;
    .top-bubble {
        width: 100%;
        background-color: #ff7568;
        height: 7rem;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        margin-bottom: 2.7rem;
        font-style: normal;
        font-weight: 600;
        font-size: 2.2rem;
        line-height: 3.4rem;
        text-align: center;
        letter-spacing: 0.05em;
        color: #ffffff;
        &:after {
            content: "";
            left: 50%;
            transform: translateX(-50%);
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 1.8rem 1.8rem 0 1.8rem;
            border-color: #ff7568 transparent transparent transparent;
            position: absolute;
            bottom: -1.8rem;
        }
    }
    .white-card {
        background-color: #fff;
        box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.15);
        border-radius: 1.4rem;
        padding: 2rem 4rem 3rem;
        box-sizing: border-box;
        .line3,
        .line1 {
            font-family: var(--zenmaru);
            font-style: normal;
            font-weight: 500;
            font-size: 2rem;
            line-height: 2.9rem;
            text-align: center;
            letter-spacing: 0.05em;
            color: #000000;
        }
        .line1 {
            margin-bottom: 2.4rem;
        }
        .line2 {
            width: 27rem;
            margin: 0 auto 1.9rem;
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
    }
}

#section3 {
    padding-top: 4rem;
    padding-bottom: 2rem;
    .underline-header {
        margin-bottom: 4rem;
    }
    .block {
        margin-bottom: 4rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        .block-img {
            width: 18rem;
            margin-bottom: 2rem;
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
        .block-header {
            font-style: normal;
            font-weight: 700;
            font-size: 2rem;
            line-height: 2.6rem;
            text-align: center;
            letter-spacing: 0.05em;
            color: #ff7568;
            margin-bottom: 1rem;
        }
        .block-text {
            font-style: normal;
            font-weight: 400;
            font-size: 1.6rem;
            line-height: 2.6rem;
            text-align: center;
            letter-spacing: 0.05em;
            color: #000000;
        }
        .note {
            font-style: normal;
            font-weight: 400;
            font-size: 1.2rem;
            line-height: 2rem;
            text-align: center;
            letter-spacing: 0.05em;
            color: #000000;
        }
    }
}

.banner-block {
    background-color: #fff6d8;
    padding-top: 4rem;
    padding-bottom: 4rem;
    .card {
        width: 100%;
        & img {
            width: 100%;
            vertical-align: top;
        }
    }
}

#section5 {
    padding-top: 6rem;
    padding-bottom: 6rem;
    .top-header {
        font-family: var(--zenmaru);
        font-style: normal;
        font-weight: 700;
        font-size: 2.2rem;
        line-height: 3rem;
        text-align: center;
        letter-spacing: 0.03em;
        color: #000000;
        margin-bottom: 3rem;
        position: relative;
        width: 100%;
        &:before,
        &:after {
            content: "";
            position: absolute;
            top: 1.5rem;
            width: 2.5rem;
            height: 4.3rem;
            background: url("../img/decoration.png") no-repeat center / 100% auto;
        }
        &:before {
            left: 0;
        }
        &:after {
            right: 0;
            transform: scaleX(-1);
            transform-origin: center;
        }
        & span {
            color: #ff7568;
        }
    }
    .check-list {
        margin-bottom: 6rem;
        & li {
            margin-bottom: 2rem;
            .checklist-header {
                background: #fff8f0;
                box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
                border-radius: 2.2rem;
                width: 100%;
                height: 4.4rem;
                padding-left: 2.8rem;
                box-sizing: border-box;
                font-style: normal;
                font-weight: 700;
                font-size: 1.8rem;
                line-height: 1;
                text-align: center;
                letter-spacing: 0.05em;
                color: #ff7568;
                display: flex;
                align-items: center;
                justify-content: center;
                position: relative;
                margin-bottom: 1rem;
                &::before {
                    content: "";
                    position: absolute;
                    top: 50%;
                    transform: translateY(-50%);
                    left: 1rem;
                    width: 2.8rem;
                    height: 2.8rem;
                    background: url("../img/check.png") no-repeat center / 100% auto;
                }
            }
            .centered-text {
                font-style: normal;
                font-weight: 600;
                font-size: 1.6rem;
                line-height: 2.4rem;
                text-align: center;
                letter-spacing: 0.05em;
                color: #000000;
            }
        }
        & li:last-child {
            margin-bottom: 0;
        }
    }
    .underline-header {
        margin-bottom: 2rem;
    }
    .description {
        font-style: normal;
        font-weight: 400;
        font-size: 1.6rem;
        line-height: 2.4rem;
        text-align: center;
        letter-spacing: 0.05em;
        color: #000000;
    }
    .chart {
        padding-top: 3rem;
        & img {
            width: 100%;
            vertical-align: top;
        }
    }
    .sub-inner2 {
        max-width: 35rem;
    }
    .bubble-text {
        margin-bottom: 2rem;
    }
    .card {
        background: #ffffff;
        box-shadow: 0px 1px 6px rgba(0, 0, 0, 0.15);
        border-radius: 18px;
        padding: 2rem;
        box-sizing: border-box;
        margin-bottom: 2rem;
        .pill-container {
            margin-bottom: 1rem;
            display: flex;
            flex-wrap: wrap;
            gap: 0.8rem;
            .pill {
                font-family: "Noto Sans JP", sans-serif;
                font-style: normal;
                font-weight: 700;
                font-size: 1.4rem;
                line-height: 1.9rem;
                color: #ed9549;
                padding: 0.3rem 1.3rem;
                box-sizing: border-box;
                height: 2.5rem;
                display: flex;
                align-items: center;
                border: 1px solid #ed9549;
                border-radius: 1.5rem;
            }
            .pill.hightlight {
                background-color: #ed9549;
                color: #ffffff;
                & img {
                    margin-right: 0.7rem;
                    transform: scale(0.8);
                }
            }
        }
        .title {
            font-family: "Noto Sans JP", sans-serif;
            font-style: normal;
            font-weight: 900;
            font-size: 2.2rem;
            line-height: 3.3rem;
            letter-spacing: 0.05em;
            color: #40342e;
        }
        .info-list {
            & li {
                margin-bottom: 0.5rem;
                display: flex;
                align-items: center;
                & img {
                    margin-right: 0.5rem;
                }
                & span {
                    font-family: "Noto Sans JP", sans-serif;
                    font-style: normal;
                    font-weight: 900;
                    font-size: 1.4rem;
                    line-height: 2.1rem;
                    letter-spacing: 0.05em;
                    color: #40342e;
                }
            }
        }
        .card-img {
            width: 100%;
            margin-top: 1rem;
            margin-bottom: 2.6rem;
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
        .cost-table {
            border-collapse: separate;
            border-spacing: 0 5px;
            margin-bottom: 2rem;
            & tr {
                & th {
                    /* text-align: left; */
                    vertical-align: top;
                    width: 8rem;
                    .pill {
                        font-family: "Noto Sans JP", sans-serif;
                        font-style: normal;
                        font-weight: 700;
                        font-size: 1.4rem;
                        line-height: 2rem;
                        display: flex;
                        align-items: center;
                        text-align: center;
                        letter-spacing: 0.05em;
                        color: #40342e;
                        width: 100%;
                        height: 2.6rem;
                        border-radius: 4.1rem;
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        border: #000 solid 1px;
                    }
                }
                & td {
                    padding-left: 1.6rem;
                    font-style: normal;
                    font-weight: 700;
                    font-size: 1.4rem;
                    line-height: 2.1rem;
                    color: #40342e;
                    .orange-text {
                        font-style: normal;
                        font-weight: 700;
                        font-size: 2.1rem;
                        line-height: 3.2rem;
                        color: #ed9549;
                    }
                }
            }
        }
        .beige-block {
            background-color: #f1ebe4;
            padding: 1.6rem 1.6rem 2.2rem;
            box-sizing: border-box;
            border-radius: 1.5rem;
            .beige-block-title {
                display: flex;
                align-items: center;
                gap: 1rem;
                margin-bottom: 1rem;
                & span {
                    font-style: normal;
                    font-weight: 700;
                    font-size: 1.6rem;
                    line-height: 2.4rem;
                    color: #40342e;
                }
            }
            .condition-list {
                display: flex;
                flex-wrap: wrap;
                gap: .9rem;
                & li {
                    background-color: #fff;
                    padding: .7rem .8rem;
                }
            }
        }
    }
    .note {
        font-family: "Noto Sans JP", sans-serif;
        font-style: normal;
        font-weight: 400;
        font-size: 1.4rem;
        line-height: 2.4rem;
        letter-spacing: 0.02em;
        color: #000000;
        margin-top: -1rem;
    }
}

#section6 {
    background-color: #fff8f0;
    padding-top: 4rem;
    padding-bottom: 4rem;
    .underline-header {
        margin-bottom: 2rem;
    }
    .description {
        margin-bottom: 3rem;
        font-style: normal;
        font-weight: 400;
        font-size: 1.6rem;
        line-height: 2.4rem;
        text-align: center;
        letter-spacing: 0.05em;
        color: #000000;
    }
    .block {
        background: #ffffff;
        box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
        border-radius: 1.1rem;
        width: 100%;
        padding-bottom: 1rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        position: relative;
        .step {
            position: absolute;
            top: 1.2rem;
            left: 1.2rem;
            background: #ff7568;
            border-radius: 1rem;
            width: 7.4rem;
            height: 2rem;
            display: flex;
            justify-content: center;
            align-items: center;
            font-style: normal;
            font-weight: 700;
            font-size: 1.2rem;
            line-height: 1.4rem;
            display: flex;
            align-items: center;
            text-align: center;
            letter-spacing: 0.1em;
            color: #ffffff;
        }
        .icon {
            width: 6rem;
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
        .title {
            font-style: normal;
            font-weight: 700;
            font-size: 1.6rem;
            line-height: 2.2rem;
            text-align: center;
            letter-spacing: 0.1em;
            color: #000000;
        }
    }
    .arrow {
        margin: 1rem auto;
        width: 0;
        height: 0;
        border-left: 1.2125rem solid transparent;
        border-right: 1.2125rem solid transparent;
        border-top: 0.9rem solid #ff7568;
    }
    .sub-inner {
        max-width: 35rem;
    }
}

#faq {
    padding-top: 6rem;
    padding-bottom: 4.8rem;
    .underline-header {
        margin-bottom: 4rem;
    }
    .faq-block {
        background-color: #fff;
        margin-bottom: 2rem;
        transition: ease-in 0.3s all;
        .question {
            cursor: pointer;
            background-color: #ff7568;
            border-radius: 8.2rem;
            width: 100%;
            position: relative;
            padding: 1rem 1.2rem;
            box-sizing: border-box;
            display: flex;
            align-items: center;
            &:after {
                content: "";
                position: absolute;
                top: 50%;
                right: 1.2rem;
                width: 1rem;
                height: 0.5rem;
                background: url(../img/faq-arrow.png) no-repeat center / contain;
                transition: ease 0.3s all;
                transform: translateY(-50%);
            }
            .q-icon {
                width: 3.5rem;
                height: 3.5rem;
                border-radius: 3.5rem;
                background-color: #fff;
                display: flex;
                justify-content: center;
                align-items: center;
                font-family: var(--zenmaru);
                font-style: normal;
                font-weight: 700;
                font-size: 1.7rem;
                line-height: 1;
                color: #ff7568;
                margin-right: 1rem;
            }
            .q-text {
                font-style: normal;
                font-weight: 700;
                font-size: 1.8rem;
                line-height: 2.2rem;
                color: #ffffff;
                max-width: 25.4rem;
                @media screen and (min-width: 768px) {
                    max-width: 45.4rem;
                    font-size: 1.6rem;
                }
                & br {
                    @media screen and (min-width: 768px) {
                        display: none;
                    }
                }
            }
        }
        .answer {
            cursor: pointer;
            display: none;
            padding-left: 1.2rem;
            padding-top: 1.5rem;
            box-sizing: border-box;
            gap: 0.9rem;
            transition: ease-in 0.3s all;
            .a-icon {
                width: 3.4rem;
                height: 3.4rem;
                border-radius: 3.4rem;
                background-color: #ff7568;
                display: flex;
                justify-content: center;
                align-items: center;
                font-family: var(--zenmaru);
                font-style: normal;
                font-weight: 700;
                font-size: 1.7rem;
                line-height: 1;
                color: #ffffff;
                @media screen and (min-width: 768px) {
                    font-size: 1.6rem;
                }
            }
            .a-text {
                flex: 1;
                font-style: normal;
                font-weight: 500;
                font-size: 1.6rem;
                line-height: 2.6rem;
                letter-spacing: 0.04em;
                color: #363636;
            }
        }
    }
    .faq-block.open {
        .answer {
            display: flex;
        }
        .question {
            &:after {
                transform: translateY(-50%) rotate(180deg);
            }
        }
    }
    .faq-block:last-child {
        margin-bottom: 0;
    }
}
