@charset "UTF-8";
/*==============================================================================
1.ページタイトル・共通タイトル
2.各サービス
3.flow
==============================================================================*/

/*============================================================================================================================================================
==============================================================================================================================================================

	1.ページタイトル・共通タイトル

==============================================================================================================================================================
============================================================================================================================================================*/
#title{
    background-image: url(../1_img/page-service/title.jpg);
}
.underlayer .content{
    padding-top: 10px;
    padding-bottom: 0;
}
footer{
    margin-top: 0;
}
@media all and (min-width: 769px) {
    .underlayer .content{
        padding-top: 60px;
    }
}

/*============================================================================================================================================================
==============================================================================================================================================================

	2.各サービス

==============================================================================================================================================================
============================================================================================================================================================*/
.service_wrap{

    & h2{
        aspect-ratio: 36 / 18;
        position: relative;
        
        & img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
        }
        
        & span {
            padding: 5px;
            height: calc(100% - 50px);
            position: absolute;
            display: flex;
            justify-content: center;
            align-items: center;
            top: 0;
            left: 20px;
            writing-mode: vertical-rl;
            background-color: var(--color-sub);
            color: var(--color-font);
            font-weight: var(--weight-bold);
            font-family: var(--font-sub);
        }
    }

    &  .service-text{
        margin-top: 30px;

        & h3{
            text-align: center;
            font-family: var(--font-sub);
            font-weight: var(--weight-bold);
            font-size: 1.8rem;
        }
        & p{
            margin-top: 30px;
        }

        & .button_wrap{
            margin-top: 30px;

            & a{
                width: 100%;
            }
        }
    }
}

.service_wrap.img-right{

    & h2{
        order: 2;
    }
    &  .service-text{
        order: 1;
    }

}

.underlayer .content{
    & .service_wrap{
        & + .service_wrap{
            margin-top: 50px;
        }
    }
}
/*===========================================================================================================================================================

	各サービス PC

===========================================================================================================================================================*/
@media all and (min-width: 769px) {
    .service_wrap{
        display: flex;
        align-items: center;

        & h2{
            width: 470px;
            aspect-ratio: 47 / 29;
            
            & span {
                padding: 20px 5px 5px;
                height: 160px;
                align-items: center;
                justify-content: start;
                left: 30px;
                font-size: 1.8rem;
            }
        }

        &  .service-text{
            margin-top: 0;
            padding: 0 20px;
            width: 490px;

            & h3{
                text-align: left;
                font-size: 2rem;
            }
            & p{
                margin-top: 15px;
                font-size: 1.5rem;
            }

            & .button_wrap{
                text-align: center;

                & a{
                    width: 280px;
                }
            }
        }
    }

    .underlayer .content{
        & .service_wrap{
            & + .service_wrap{
                margin-top: 80px;
            }
        }
    }
}


/*============================================================================================================================================================
==============================================================================================================================================================

	3.flow

==============================================================================================================================================================
============================================================================================================================================================*/
#flow{
    margin-top: 50px;
    padding: 30px 0;
    background-color: #dfd8c8;

    /*======== flow =========*/
    & .flow-list {
        margin-top: 30px;
        position: relative;

        /* flowの横の線 */
        &::before {
            content: "";
            width: 2px;
            height: 100%;
            position: absolute;
            top: 0;
            left: 15px;
            transform: translateX(-50%);

            background:
                radial-gradient(
                circle at 1px 1px,
                var(--color-font) 0 1px,
                transparent 1px
                );

            background-size: 2px 8px; /* ← 幅 / 縦の間隔 */
            background-repeat: repeat-y;
        }


        & li {
            padding-left: 40px;
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 10px 0;

            & .flow-num {
                width: 30px;
                aspect-ratio: 1 / 1;
                display: flex;
                align-items: center;
                justify-content: center;
                position: absolute;
                top: 0;
                left: 0;
                color: #fff;
                font-family: var(--font-sub);
                font-weight: var(--weight-bold);
                font-size: 1.8rem;
                border-radius: 100%;
                background-color: var(--color-font);

                & span{
                    transform: translateY(-1px) translateX(1px);
                    line-height: 1;
                    letter-spacing: 0.1em;
                    display: inline-block;
                    vertical-align: top;
                }
            }

            & .flow-title {
                margin-top: -5px;
                font-weight: var(--weight-bold);
                font-family: var(--font-sub);
                font-size: 1.8rem;
                letter-spacing: 0.2em;
            }

            & .flow-img{
                & img{
                    width: 100%;
                }
            }

            & dl{
                & dt{
                    margin-left: calc(1em + 5px);
                    text-indent: calc(-1em - 5px);
                    position: relative;
                    font-weight: var(--weight-bold);

                    &::before{
                        content: "●";
                        margin-right: 5px;
                        color: var(--color-sub);
                    }
                }
                & dd{
                    margin-top: 5px;
                }
                & + dl{
                    margin-top: 20px;
                }
            }
        }

        & li+li {
            margin-top: 35px;
        }
        &.left li:first-child,
        &.right li:last-child{
            & .flow-num{
                background-color: var(--color-sub);
            }
        }

        
        &.left li:last-child {
            padding-bottom: 35px;
        }

        &.right{
            margin-top: 0;
        }

        /* flowの横の線の打ち消し用 */
        &.right li:last-child::before {
            content: "";
            width: 2px;
            height: calc(100% - 10px);
            position: absolute;
            top: 10px;
            left: 15px;
            transform: translateX(-50%);
            background-color: #dfd8c8;
        }
    }
}
/*===========================================================================================================================================================

	flow PC

===========================================================================================================================================================*/
@media all and (min-width: 769px) {
    #flow{
        margin-top: 70px;
        padding: 100px 0;

        & .flow-list_wrap{
            margin-top: 70px;
            display: flex;
            align-items: start;
            justify-content: center;
            gap: 60px;
        }

        /*======== flow =========*/
        & .flow-list {
            margin-top: 0;
            width: calc(50% - 30px);

            /* flowの横の線 */
            &::before {
                left: 19px;
            }

            & li {
                padding-left: 70px;
                gap: 20px 0;
                font-size: 1.5rem;

                & .flow-num {
                    width: 40px;
                    font-size: 2.5rem;
                }

                & .flow-title {
                    margin-top: 0px;
                    font-size: 2rem;
                }
            }

            & li+li {
                margin-top: 60px;
            }

            /* flowの横の線の打ち消し用 */
            &.right li:last-child::before {
                left: 19px;
            }
        }
    }
}