@charset "utf-8";

*, *::before, *::after{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root{
    --fontSizeBase: 1.4rem;
    --lineHeight: 1.5;
    --colorTextBase: #222;
    --colorGradation: linear-gradient(to left, #ff8279, #f5476c);
    --colorBG: #f3eeea;
    --colorBGTypeB: #f1cfc7;
    --colorPink: #f64e6d;
    --colorWhite: #fff;
    --widthBase: 108rem;
    --paddingSide: min(2rem, 5vw);
    --paddingMain: 8rem;
    --sideGutter: min(2rem, 5vw);

    @media(min-width: 768px){
        --fontSizeBase: 1.6rem;
        --paddingMain: 14rem;
    }
}
html{
    font-size: 62.5%;
}
body{
    font-size: var(--fontSizeBase);
    font-feature-settings: "palt";
    line-height: var(--lineHeight);
}
.container{
    max-width: var(--widthBase);
    box-sizing: content-box;
    margin-inline: auto;
    padding-left: var(--paddingSide);
    padding-right: var(--paddingSide);
}
img{
    max-width: 100%;
    display: block;
    height: auto;
}
li{
    list-style: none;
}
a{
    color: inherit;
    text-decoration: none;
}
small{
    font-size: inherit;
}
br.pc{
    display: none;
    
    @media(min-width: 768px){
        display: initial;
    }
}
input:is([type="text"], [type="tel"], [type="email"]),
textarea{
    width: 100%;
    font: inherit;
    line-height: inherit;
    outline: none;
    border: .1rem solid #aaa;
    padding: 1.2rem 2rem;
}
textarea{
    height: calc(10em * var(--lineHeight));
    resize: none;
}
.title-wrap{
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 2rem;
    margin-bottom: 4.8rem;

    @media(min-width: 768px){
        margin-bottom: 6rem;
    }

    &::after{
        content: '';
        height: .7rem;
        width: 5em;
        display: block;
        background: var(--colorGradation);
        border-radius: 2rem;
    }

    .title{
        font-size: clamp(2rem, 5vw, 2.8rem);
    }
}

.main-visual{
    @media(min-width: 768px){
        margin-top: var(--paddingSide);
        margin-left: var(--paddingSide);
        margin-right: var(--paddingSide);
    }
}

/* section-aboutus */
.section-aboutus{
    position: relative;

    @media(min-width: 768px){
        &::before,
        &::after{
            content: '';
            display: block;
            position: absolute;
            width: 18vw;
            background-size: contain;
            background-repeat: no-repeat;
        }
        &::before{
            background-image: url(img/bg_left_item1.webp);
            padding-bottom: calc(18vw / 1.0072463768115942);
            top: 2rem;
            left: 0;
        }
        &::after{
            background-image: url(img/bg_right_item.webp);
            bottom: 0;
            right: 0;
            padding-bottom: calc(18vw / 0.4633333333333333);
            translate: 0 50%;
            scale: -1;
        }
    }

    .container{
        position: relative;
        z-index: 2;
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .text-area{
            text-align: center;
            line-height: 2.25;
            letter-spacing: .1rem;
            padding-left: .1rem;

            @media(min-width: 768px){
                line-height: 2.5;
            }

            p + p, .note{
                margin-top: 1.5em;
            }
        }
    }
}

/* section-board-wrap */
.section-board-wrap{
    background: var(--colorBG);
    margin-left: var(--sideGutter);
    margin-right: var(--sideGutter);
}

/* section-reason */
.section-reason{
    position: relative;

    @media(min-width: 768px){
        &::before,
        &::after{
            content: '';
            display: block;
            position: absolute;
            width: 18vw;
            background-size: contain;
            background-repeat: no-repeat;
        }
        &::before{
            background-image: url(img/bg_left_item.webp);
            padding-bottom: calc(18vw / 0.4633333333333333);
            top: 50%;
            left: calc(var(--paddingSide) * -1);
            scale: -1;
        }
        &::after{
            background-image: url(img/bg_right_item.webp);
            bottom: 0;
            right: calc(var(--paddingSide) * -1);
            padding-bottom: calc(18vw / 0.4633333333333333);
            translate: 0 50%;
            scale: -1;
        }
    }

    .container{
        position: relative;
        z-index: 2;
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .points-area{
            display: flex;
            flex-direction: column;
            row-gap: 6rem;

            @media(min-width: 768px){
                row-gap: 18rem;
                margin-top: 16rem;
            }

            .point{
                position: relative;

                &:nth-of-type(odd){
                    .img-area{
                        right: 0;
                    }
                    .inner{
                        @media(min-width: 768px){
                            padding-right: 16rem;
                        }
                    }
                }
                &:nth-of-type(even){
                    .inner{
                        @media(min-width: 768px){
                            margin-left: auto;
                            padding-left: 16rem;
                        }
                    }
                }

                .img-area{
                    @media(min-width: 768px){
                        position: absolute;
                        z-index: 2;
                        width: 40%;
                        translate: 0 -6rem;
                        box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
                    }
                }
                .inner{
                    background: var(--colorWhite);
                    padding: 4rem var(--sideGutter);
                    
                    @media(min-width: 768px){
                        position: relative;
                        width: 70%;
                        padding: 7.2rem 6rem 6rem;
                    }

                    .number{
                        color: var(--colorBGTypeB);
                        font-size: 2rem;

                        @media(min-width: 768px){
                            position: absolute;
                            top: 0;
                            translate: 0 -50%;
                            font-size: 6rem;
                        }
                    }
                    .point-title{
                        color: var(--colorPink);
                        margin-bottom: 2.8rem;
                        font-size: 2.4rem;
                    }
                    .text{
                        line-height: 2.25;
                        letter-spacing: .1rem;

                        @media(min-width: 768px){
                            line-height: 2.5;
                        }
                    }
                }
            }
        }
    }
}

/* section-strengths */
.section-strengths{
    position: relative;

    @media(min-width: 768px){
        &::before,
        &::after{
            content: '';
            display: block;
            position: absolute;
            width: 18vw;
            background-size: contain;
            background-repeat: no-repeat;
        }
        &::before{
            background-image: url(img/bg_left_item.webp);
            padding-bottom: calc(18vw / 0.4633333333333333);
            top: 33%;
            left: calc(var(--paddingSide) * -1);
            scale: -1;
        }
        &::after{
            background-image: url(img/bg_right_item.webp);
            bottom: 0;
            right: calc(var(--paddingSide) * -1);
            padding-bottom: calc(18vw / 0.4633333333333333);
            translate: 0 80%;
            scale: -1;
        }
    }

    .container{
        position: relative;
        z-index: 2;
        padding-top: calc(var(--paddingMain) / 4);
        padding-bottom: var(--paddingMain);

        .strengths-area{
            display: flex;
            flex-wrap: wrap;
            column-gap: 3.2rem;
            row-gap: 6rem;
            margin-top: 6rem;

            @media(min-width: 768px){
                row-gap: 8rem;
                margin-top: 10rem;
            }

            .strength{
                flex: 0 0 100%;
                background: var(--colorWhite);
                position: relative;
                box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);

                @media(min-width: 768px){
                    flex: 0 0 calc(50% - 3.2rem / 2);
                }

                .inner{
                    padding: 6rem 4rem;

                    .number{
                        position: absolute;
                        top: 0;
                        left: 50%;
                        translate: -50% -50%;
                        background: var(--colorBGTypeB);
                        color: var(--colorPink);
                        padding: 1.2rem 2rem;
                        line-height: 1;
                        width: 100%;
                        max-width: 20rem;
                        text-align: center;
                    }
                    .img-area{
                        background: var(--colorBG);
                        border-radius: 50%;
                        width: fit-content;
                        margin-inline: auto;
                        margin-bottom: 2.8rem;
                        max-width: 8rem;
                        padding: 2rem;

                        @media(min-width: 768px){
                            padding: 4rem;
                            max-width: 14rem;
                        }
                    }
                    .strength-title{
                        text-align: center;
                        color: var(--colorPink);
                        margin-bottom: 2.8rem;
                        font-size: clamp(1.8rem, 4vw, 2rem);
                    }
                    .text{
                        line-height: 2;
                        letter-spacing: .1rem;
                    }
                }
            }
        }
        .border-area{
            margin-top: 8rem;
            border: .1rem solid;
            padding: 4rem var(--paddingSide);
            position: relative;

            @media(min-width: 768px){
                margin-top: 12rem;
                padding: 4rem;
            }

            .border-title{
                position: absolute;
                left: 50%;
                top: 0;
                translate: -50% -50%;
                background: var(--colorBG);
                padding: 0 1.2rem;
                min-width: 10em;
                text-align: center;
                font-size: clamp(2rem, 5vw, 2.8rem);

                @media(min-width: 768px){
                    padding: 0 4rem;
                }
            }
            .inner{
                display: flex;
                column-gap: 4rem;
                row-gap: 4rem;
                align-items: center;
                flex-direction: column-reverse;

                @media(min-width: 768px){
                    flex-direction: row;
                }

                .img-area{
                    flex: 1;
                }
                .text-area{
                    flex: 2;
                    line-height: 2.25;
                    letter-spacing: .1rem;

                    @media(min-width: 768px){
                        line-height: 2.5;
                    }

                    .color{
                        color: var(--colorPink);
                        font-weight: 700;
                    }
                }
            }
        }
    }
}

/* section-price */
.section-price{
    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .price-board{
            background: var(--colorBG);
            max-width: 80rem;
            margin-inline: auto;
            padding: 4rem;
            
            .inner{
                display: flex;
                justify-content: center;
                column-gap: 2rem;
                row-gap: 1.2rem;
                flex-direction: column;

                @media(min-width: 768px){
                    flex-direction: row;
                }

                .border{
                    border-top: .1rem solid;
                    @media(min-width: 768px){
                        border-top: none;
                        border-left: .1rem solid;
                    }
                }
                .left, .right{
                    font-weight: 700;
                    letter-spacing: .1rem;
                    align-self: center;
                    font-size: clamp(2rem, 4vw, 2.4rem);

                    @media(min-width: 768px){
                        padding-top: 2rem;
                        padding-bottom: 2rem;
                    }

                    span{
                        font-size: 2em;
                    }
                }
            }
        }
        .note{
            text-align: center;
            margin-top: 4rem;
            line-height: 2;
        }
    }
}

/* section-flow */
.section-flow{
    background: var(--colorBG);
    margin-left: 2rem;
    margin-right: 2rem;
    position: relative;

    @media(min-width: 768px){
        &::before,
        &::after{
            content: '';
            display: block;
            position: absolute;
            width: 18vw;
            background-size: contain;
            background-repeat: no-repeat;
        }
        &::before{
            background-image: url(img/bg_left_item.webp);
            padding-bottom: calc(18vw / 0.4633333333333333);
            top: 10%;
            left: calc(var(--paddingSide) * -1);
            scale: -1;
        }
        &::after{
            background-image: url(img/bg_right_item.webp);
            bottom: 0;
            right: calc(var(--paddingSide) * -1);
            padding-bottom: calc(18vw / 0.4633333333333333);
            translate: 0 20%;
            scale: -1;
        }
    }

    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);
        position: relative;
        z-index: 2;

        .flow{
            background: var(--colorWhite);
            max-width: 80rem;
            margin-inline: auto;

            & + .flow{
                margin-top: 4rem;
            }

            .inner{
                padding: 4rem var(--paddingSide);
                display: flex;
                column-gap: 2rem;
                flex-direction: column;

                @media(min-width: 768px){
                    flex-direction: row;
                    padding: 4rem;
                }

                .border{
                    display: none;

                    @media(min-width: 768px){
                        display: block;
                        border-left: .1rem solid;
                    }
                }
                .left, .right{
                    padding-bottom: 2.8rem;

                    @media(min-width: 768px){
                        padding-top: 2rem;
                        padding-bottom: 2rem;
                        align-self: center;
                    }
                }
                .left{
                    text-align: center;
                    line-height: 1;
                    font-weight: 700;

                    span{
                        display: block;
                        font-size: 2em;
                    }
                }
                .right{
                    .flow-title{
                        color: var(--colorPink);
                        margin-bottom: 1.2rem;
                        text-align: center;

                        @media(min-width: 768px){
                            text-align: left;
                        }
                    }
                    .text{
                        line-height: 2;
                        letter-spacing: .1rem;

                        .note{
                            margin-top: 1.5em;
                            font-size: 1.2rem;

                            @media(min-width: 768px){
                                font-size: 1.4rem;
                            }
                        }
                    }
                }
            }
        }
    }
}

/* section-contact */
.section-contact{
    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .form-area{
            .field{
                display: flex;
                flex-direction: column;
                row-gap: .8rem;

                @media(min-width: 768px){
                    flex-direction: row;
                }

                + .field{
                    margin-top: 2.8rem;
                }

                .label{
                    @media(min-width: 768px){
                        flex: 0 0 18em;
                    }

                    .required{
                        font-size: calc(var(--fontSizeBase) * .75);
                        margin-left: 1.2rem;
                        font-weight: 700;
                        color: #a00;
                    }
                }

                .input-area{
                    @media(min-width: 768px){
                        flex: 1;
                    }
                }
            }
            .note-area{
                margin-top: 2.8rem;
                
                @media(min-width: 768px){
                    display: flex;
                }

                :not(.note){
                    flex: 0 0 18em;
                }
                .note{
                    font-size: 1.4rem;
                }
            }
            .btn-area{
                margin-top: 4rem;

                input{
                    font: inherit;
                    border: none;
                    max-width: 24rem;
                    width: 100%;
                    padding: 1.6rem;
                    margin-inline: auto;
                    display: block;
                    background: var(--colorGradation);
                    color: var(--colorWhite);
                    cursor: pointer;
                    transition: opacity .3s;

                    &:hover{
                        opacity: .8;
                    }
                }
            }
            .wpcf7-response-output{
                margin: 0;
                padding: 0;
                border: none;
                margin-top: 2rem;
                font-size: 1.4rem;
                letter-spacing: .1rem;
                padding-left: .1rem;
                text-align: center;
            }
            .wpcf7-not-valid-tip{
                font-size: 1.2rem;
                color: #a00;
                margin-top: .4rem;
            }
        }
    }
}

.footer{
    padding-top: 2.8rem;
    padding-bottom: 2.8rem;
    background: var(--colorBG);

    .copyright{
        text-align: center;
        letter-spacing: .1rem;
        padding-left: .1rem;
        font-size: 1.2rem;
    }
}