/* general
-------------------------------------------------- */
:root {
    --text-color: #1A1311;
    --link-color: #0068B3;
    --link-color-hover: #0068B3;
    --color-blue: #0068B3;
    --color-lightblue: #DDF1FC;
    --color-orange: #EA6000;
    --color-yellow: #FFF367;
    --color-beige: #FDF1E8;

    --box-padding-left: 20px;
    --box-padding-right: 20px;

    @media screen and
    (max-width : 767px) {
        --box-padding-left: 3vw;
        --box-padding-right: 3vw; 
    }
}

article{
    overflow-x: hidden;
}

img{
    max-width: 100%;
    height: auto;
}

/* 競合改修
---------------------------------------------------*/
.c-page-sub__main {
    margin: 70px auto 0;
    @media screen and (max-width: 767px) {
        margin: 60px auto 0;
    }
}
.c-page-sub__content h2 {
    position: static;
    padding-bottom: 0;
    margin: 0;
}

.c-page-sub__content h2:after {

    width: auto;
    height: auto;
    bottom:inherit;
    left: inherit;
    margin: 0;
}

.c-page-sub__content h3 {
    border-bottom: 0;
    padding-bottom: 0;
    margin: 0;
}


@media print, screen and (min-width: 768px){
    ._sp {
        display: none!important;
    }
}

@media screen and (max-width: 767px){
    ._pc {
        display: none!important;
    }
}

/* 共通
-------------------------------------------------- */
main {
    article > .accentBox,
    section {
        display: block;
        width: 100%;
        height: auto;
    }
    article > .accentBox .container,
    section .container {
        max-width: 1062px;
        padding: 60px 0;
        margin: 0 auto;

        @media only screen and
        (max-width : 1062px) {
            max-width: 100%;
            padding-left: var(--box-padding-left);
            padding-right: var(--box-padding-right);
        }
    }
    section.cv_area {
        background-color: var(--color-blue);
        color: #fff;

        .textLink{
            --color:#fff;
        }
    }
    section#lastSection {
        background-color: var(--color-blue);
        color: #fff;
    }
    
}

/* margin
-------------------------------- */
.mt8 {margin-top: 8px!important;}
.mt16 {margin-top: 16px!important;}
.mt20 {margin-top: 20px!important;}
.mt30 {margin-top: 30px!important;}
.mt40 {margin-top: 40px!important;}
.mt50 {margin-top: 50px!important;}
.mt60 {margin-top: 60px!important;}
.mb8 {margin-bottom: 8px!important;}
.mb20 {margin-bottom: 20px!important;}
.mb30 {margin-bottom: 30px!important;}
.mb40 {margin-bottom: 40px!important;}
.mb50 {margin-bottom: 50px!important;}
.mb60 {margin-bottom: 60px!important;}

/* ◇ .grid_box
-------------------------------- */
.grid_box {
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px 1.02675585284%
}
.grid_box.col2 {
    grid-template-columns: 1fr 1fr;
    gap: 40px 32px;
}
.grid_box.col3 {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px 32px;
}
.grid_box.col4 {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 32px 32px;
}

.grid_box.gap20 {
    gap: 20px 20px;
}

@media only screen and
(max-width : 767px) {

    .grid_box.sp_col1 {
        grid-template-columns: 1fr;
    }
    
}


/* title
-------------------------------- */
.title
{
    position: relative;
    font-weight: 700;

    &._lv2{
        text-align: center;
        font-size: 4.0rem;
        color: var(--color-blue);

        &._large{
            font-size: 5.2rem;
        }
    }

    &._lv3{
        font-size: 2.4rem;

        & + *{
            margin-top: 18px;
        }
    }

    &._lv4{
        font-size: 1.5rem;

        & + *{
            margin-top: 4px;
        }
    }

    & + *{
        margin-top: 48px;
    }
    @media screen and (max-width: 767px) {

        &._lv2{
            font-size: 2.8rem;
            &._large{
                font-size: 3.2rem;
            }
        }

        &._lv3{
            font-size: 2.2rem;

            & + *{
                margin-top: 18px;
            }
        }

        &._lv4{
            font-size: 1.5rem;

            & + *{
                margin-top: 4px;
            }
        }

        & + *{
            margin-top: 36px;
        }
    }
}

/* buttonStyle
-------------------------------- */
main {
    .buttonStyle{
        position: relative;
        text-align: center;

        > a{
            position: relative;
            display: inline-block;
            padding: 17px 20px 17px 20px;
            max-width: 100%;
            background: #fff;
            border: 2px solid var(--color-blue);
            border-radius: 50px;
            font-size: 2.0rem;
            font-weight: 700;
            line-height: 1.2;
            color: var(--color-blue);
            text-decoration: none;
            cursor: pointer;
            min-width: 400px;
            transition: .3s;
            &:hover {
                opacity: 0.85;
            }
            @media screen and (max-width: 767px) {
                min-width: auto;
                padding: 13px 20px 13px 20px;
                font-size: 1.8rem;
            }

            > span{
                position: relative;
                padding-right: 40px;
                &::before{
                    position: absolute;
                    top: 0;
                    bottom: 0;
                    margin: auto 0;
                    right: 0px;
                    content: "";
                    display: block;
                    width: 33px;
                    height: 33px;
                    background: url("../img/button_arrow_blue.svg") no-repeat center center;
                    background-size: contain;
                }
            }

        }

        &._single{
            > a{
                margin-inline: auto;
                width: 408px;
            }
        }

        &._border{
            > a{
                border: 2px solid var(--color-blue);
            }
        }

        &._inBlock{
            > a{
                display: block;
                > span{
                    display: block;
                    padding-right: 0;
                }
            }
        }

        &._shadow{
            > a{
                box-shadow: 0px 6px #005796;   
                &:active{
                    top: 5px;
                    box-shadow: 0px 2px 0px #005796;
                }
            }

            &.blue{
                > a{
                    &:active{
                        color: var(--color-blue);
                    }
                }
            }
        }

        &.orange{
            > a{
                color: #fff;
                background-color: var(--color-orange);
                > span{
                    &::before{
                        background-image: url("../img/button_arrow_orange.svg");
                    }
                }
            }
        }
        &.blue{
            > a{
                > span{
                    &::before{
                        background-image: url("../img/button_arrow_blue.svg");
                    }
                }
            }
        }
        &._anker{
            > a{
                > span{
                    &::before{
                        transform:rotate(90deg);
                    }
                }
            }
        }

    }
}
/* textLink
-------------------------------- */
a.textLink{
    --color:#000000;
    display: inline-block;
    position: relative;
    padding-right: 0.8em;
    color: var(--color)!important;

    &::before,
    &::after {
      content: "";
      position: absolute;
      top: calc(50% - 0.5px);
      right: 0;
      width: 0.5em;
      height: 2px;
      border-radius: 9999px;
      background-color: var(--color);
      transform-origin: calc(100% - 0.5px) 50%;
    }
    
    &::before {
      transform: rotate(45deg);
    }
    
    &::after {
      transform: rotate(-45deg);
    }
}

/* utility
-------------------------------- */
.text_u {
    text-decoration: underline;
}

main article { 

/* #accentBox
-------------------------------------------------- */
    .accentBox {
        position: relative;
        display: block;
        width: 100%;
        height: auto;
        background: url("../img/kv_bg.png") no-repeat;
        background-size: cover;
        z-index: 5;
        @media screen and (max-width: 767px) {
            background-position: 50% 0;
        }
        
        &::before{
            content: "";
            display: block;
            width: 100%;
            height: 146px;
            background: linear-gradient(rgba(255,255,255,0),rgba(255,255,255,1));
            position: absolute;
            bottom: 0;
            left: 0;
        }

        .container{
            position: relative;
            height: auto;
            padding-top: 17px;
            padding-bottom: 100px;
            margin: 0 auto;
            
            @media screen and (max-width: 767px) {
                padding-top: 24px;
                padding-bottom: 90px;
            }

            .badge{
                position: absolute;
                top: 10px;
                right: -53px;
                
                @media screen and (max-width: 767px) {
                    top: 0px;
                    right: 0px;
                    width: 78px;
                    height: 78px;
                    img {
                        width: 100%;
                    }
                }
            }

            .box{
                position: relative;
                background-color: #fff;
                padding: 17px 26px 17px 170px;
                border-radius: 12px;
                box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
                margin-top: 16px;
                margin-bottom: 0;
                margin-inline: auto;
                width: 750px;
                max-width: 100%;
                
                display: flex;
                flex-wrap: wrap;
                gap: 12px 8px;

                
                @media screen and (max-width: 767px) {
                    padding: 16px 12px;
                    width: auto;
                    gap: 6px 4px;
                }

                &::before{
                    content: "";
                    display: block;
                    width: 130px;
                    height: 172px;
                    background:url("../img/kv_navit.png") 0 0 no-repeat;
                    background-size: contain;
                    position: absolute;
                    top: -48px;
                    left: 16px;
                    
                    @media screen and (max-width: 767px) {
                        width: 55px;
                        height: 72px;
                        top: -55px;
                        left: -4px;
                    }
                }

                dt{
                    width: 6em;
                    @media screen and (max-width: 767px) {
                        width: 3.8em;
                    }

                    span{
                        width: 100%;
                        display: inline-block;
                        padding: 8px 0;
                        line-height: 1.1;
                        background: var(--color-orange);
                        color: #fff;
                        font-size: 1.7rem;
                        font-weight: 700;
                        text-align: center;
                        border-radius: 50px;
                        @media screen and (max-width: 767px) {
                            padding: 4px 0;
                            font-size: 1.1rem;
                        }
                    }

                }

                dd{
                    flex-grow: 1;
                    margin-left: 0;
                    padding: 0;
                    max-width: calc(100% - 6em - 17px);

                    em{
                        display: block;
                        font-size: 1.9rem;
                        font-weight: 700;
                    }

                    small{
                        font-size: 1.4rem;
                    }
                    
                    @media screen and (max-width: 767px) {
                        max-width: calc(100% - 4em - 17px);
                        line-height: 1.0;

                        em{
                            font-size: 1.4rem;
                        }

                        small{
                            font-size: 0.9rem;
                        }
                    }
                }
            }
        } 
    }

/* #present
-------------------------------------------------- */
    #present{
        margin-top: -84px;
        padding-bottom: 0;
        position: relative;
        z-index: 10;
        .container{
            padding-top: 0;
            @media screen and (max-width: 767px) {
                h3 {
                    width: 80%;
                    margin-inline: auto;
                }
            }
            .list{
                display: flex;
                flex-wrap: wrap;
                gap: 20px;
                margin-top: -36px;
                @media screen and (max-width: 767px) {
                    gap: 12px;
                    margin-top: 10px;
                }
                

                .item{
                    width: calc(50% - 10px);
                    img{
                        width: 100%;
                        height: auto;
                    }

                    &:first-child{
                        width: 100%;
                    }

                    @media screen and (max-width: 767px) {
                        width: 100%;
                        margin: 0;
                        line-height: auto;
                    }
                }
            }
        }
    }

/* .cvArea 
-------------------------------------------------- */
    .cv_area{
        .container{
            padding-top:40px;
            padding-bottom:40px;
            .explain{
                .title{
                    color: var(--color-yellow);
                    font-size: 2.8rem;
                    font-weight: 700;
                    margin-bottom: 20px;
                    
                    @media screen and (max-width: 767px) {
                        font-size: 2.0rem;
                        margin-bottom: 20px;
                    }

                    span{
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        gap: 10px;
                        @media screen and (max-width: 767px) {
                            align-items: end;
                        }
                    }

                    &.fukidashi{
                        span::before,
                        span::after{
                            content: "";
                            display: block;
                            width: 32px;
                            height:48px;
                            background: url("../img/cv_fukidashi.svg") 50% 50% no-repeat;
                            background-size: contain;
                            top: 50%;
                            left: 0;
                        }

                        span::after{
                            left: inherit;
                            right: 0;
                            transform: scaleX(-1);
                        }
                    }
                }

                .buttonList{
                    gap: 20px;
                    margin-top: 20px;
                    .buttonStyle{
                        > a{
                            width: 100%;
                            max-width: 100%;
                            font-size: 2.4rem;
                            span{
                                display: flex;
                                flex-direction: column;
                                align-items: center;
                                justify-content: center;
                                gap: 4px;
                                width: 100%;

                                small{
                                    font-size: 1.6rem;
                                }
                            }
                            @media screen and (max-width: 767px) {
                                font-size: 2.2rem;
                            }
                        }

                         + .hosoku{
                            margin-top: 20px;
                        }
                    }

                    & + .hosoku{
                        margin-top: 20px;
                    }
                }

                .hosoku{
                    position: relative;
                    padding: 14px;
                    font-size: 1.4rem;
                    background-color: #2980BF;
                    border-radius: 8px;
                    z-index: 1;
                    text-align: center;

                    &::before{
                        content: "";
                        position: absolute;
                        top: -28px;
                        left: 240px;
                        border: 15px solid transparent;
                        border-bottom: 15px solid #2980BF;
                    }
                }

                .emphasis{
                    font-size: 2.3rem;
                    font-weight: 700;
                    margin-top: 20px;
                    text-align: center;
                    @media screen and (max-width: 767px) {
                        font-size: 2.0rem;
                    }
                }

                .link{
                    margin-top: 8px;
                    text-align: center;
                }

                .c-list__note > li{
                    text-indent: 0;
                    padding-left: 0;
                    text-align: center;

                    &:before{
                        content: "※";
                        background:none;
                        width: auto;
                        height: auto;
                        top: 0;
                        left: 0;
                        margin-right: 0.31em;
                    }
                }
            }
        }
    }

/* #flow
-------------------------------------------------- */
    #flow{
        background-color: var(--color-lightblue);
        .flowList {
            li {
                background-color: #fff;
                border-radius: 12px;
                box-shadow: 0 5px 0 0 rgba(0, 0, 0, .16);
                padding: 0 20px 20px;
                position: relative;
                .step {
                    margin-top: -23px;
                    text-align: center;
                }
                h4 {
                    color: var(--color-orange);
                    min-height: 70px;
                    text-align: center;
                    margin: 20px 0 0;
                    span {
                        display: inline;
                        background:linear-gradient(transparent 80%, var(--color-yellow) 0%);
                    }
                }
                .image {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    min-height: 158px;
                    margin-bottom: 12px;
                }
                .text {
                    font-weight: bold;
                    em {
                        color: var(--color-orange);
                    }
                }
                &:not(:last-child)::after {
                    content: url(../img/flow_arrow.svg);
                    position: absolute;
                    margin: auto 0;
                    top: 0;
                    bottom: 0;
                    right: -24px;
                    width: 17px;
                    height: 44px;
                }

            }
        }
        @media screen and (max-width: 767px) {
            .flowList {
                gap: 40px;
                li {
                    padding: 0 20px 20px;
                    .step {
                        margin-top: -18px;
                        text-align: left;
                        width: 92px;
                    }
                    h4 {
                        min-height: auto;
                        text-align: left;
                        margin: 16px 0 12px;
                        line-height: 1.5;
                        font-size: 2.0rem;
                    }
                    .image {
                        position: absolute;
                        min-height: auto;
                        margin-bottom: 0;
                        top: 0;
                        bottom: 0;
                        margin: auto 0;
                        right: 12px;
                        max-width: 24%;
                    }
                    .text {
                        width: 70%;
                    }
                    &:not(:last-child)::after {
                        content: url(../img/flow_arrow.svg);
                        position: absolute;
                        margin: 0 auto;
                        top: auto;
                        bottom: -43px;
                        right: 0;
                        left: 0;
                        width: 17px;
                        height: 44px;
                        transform: rotate(90deg)
                    }

                }
            }
        }
    }

/* faq
-------------------------------------------------- */

#faq {
    ul.qa {
        li {
            &:not(:last-child) {
                margin-bottom: 20px;
            }
            dl.ac {
                background-color: var(--color-lightblue);
                border-radius: 8px;
                letter-spacing: 0;
                .question {
                    position: relative;
                    padding: 32px 120px 32px 96px;
                    cursor: pointer;
                    font-weight: bold;
                    font-size: 1.8rem;
                    
                    &:before {
                        position: absolute;
                        content: "";
                        width: 48px;
                        height: 48px;
                        background: url("../img/faq_icon_q.svg") no-repeat;
                        background-size: contain;
                        top: 50%;
                        left: 30px;
                        transform: translateY(-50%);
                        -webkit-transform: translateY(-50%);
                    }
                }
                .answer {
                    padding: 1em 32px 32px 96px;
                    position: relative;
                    font-size: 16px;
                    line-height: 1.8;
                    box-sizing: initial;
                    &:before {
                        position: absolute;
                        content: "";
                        width: 48px;
                        height: 48px;
                        background: url("../img/faq_icon_a.svg") no-repeat;
                        background-size: contain;
                        top: 32px;
                        left: 30px;
                        transform: translateY(-50%);
                        -webkit-transform: translateY(-50%);
                    }
                    .o-note-list {
                        margin-top: 8px;
                    }
                }

            }
        }

    }
                    
    @media screen and (max-width: 767px) {
        ul.qa {
            li {
                &:not(:last-child) {
                    margin-bottom: 12px;
                }
                dl.ac {
                    .question {
                        position: relative;
                        padding: 20px 50px 20px 68px;
                        font-size: 1.6rem;
                        
                        &:before {
                            width: 40px;
                            height: 40px;
                            left: 16px;
                        }
                    }
                    .answer {
                        padding: 0 20px 20px 68px;
                        font-size: 15px;
                        line-height: 1.6;
                        &:before {
                            width: 40px;
                            height: 40px;
                            top: 20px;
                            left: 16px;
                        }
                    }

                }
            }

        }
    }

}

#faq dl.ac .question span:before,
#faq dl.ac .question span:after {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(0.4em + 32px);
    width: 20px;
    height: 2px;
    background: var(--color-blue);
    transform: translateY(-50%);
    font-size: 72%;
}
#faq dl.ac .question span:after {
    right: calc(0.4em + 41px);
    width: 2px;
    height: 20px;
    background: var(--color-blue);
    transition: .2s;
}
#faq dl.ac .question.open span:after {
    top: 39%;
    transform: rotate(270deg);
}
    
@media screen and (max-width: 767px) {
    
    #faq dl.ac .question span:before,
    #faq dl.ac .question span:after {
        right: calc(0.4em + 12px);
    }
    #faq dl.ac .question span:after {
        right: calc(0.4em + 21px);
    }
}
    

/* lastSection
-------------------------------------------------- */

#lastSection {

    h3 {
        color: #fff;
    }
    .buttonStyle{
        margin-top: 32px;
        > a{
            width: 620px;
            font-size: 2.2rem;
            padding-top: 24px;
            padding-bottom: 24px;
            span{
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 4px;
                width: 100%;

                small{
                    font-size: 1.6rem;
                }
            }
            @media screen and (max-width: 767px) {
                font-size: 1.8rem;
                padding-top: 20px;
                padding-bottom: 20px;
            }
        }
    }
    
}

}