@charset "utf-8";

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

    index.css

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



/* ==================================================================
■index
=================================================================== */
/* --------------------------------
■共通
-------------------------------- */
section {
    overflow: hidden;
    width: 100%;
    background:top center no-repeat;
    background-size: cover;
}
section p.text {
    font-size: 1.7rem;
    letter-spacing: 0.04em;
    line-height: 1.8;
    margin-bottom: 0;
}
section p.text.big {
    font-size: 2.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin-bottom: 46px;
    text-align: center;
}
section img {
    max-width: 100%;
    height: auto;
}


.bg_black .title.lv3{
    color: #fff!important;
}


/* タブレット用
-------------------------------------------- */
@media (max-width: 1080px) and (min-width: 768px) {
    /* --------------------------------
    ■共通
    -------------------------------- */
    section p.text {
        font-size: 1.6rem;
    }

}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {
    /* --------------------------------
    ■共通
    -------------------------------- */
    section p.text {
        font-size: 1.5rem;
        letter-spacing: 0;
    }
    section p.text.big {
        font-size: 2rem;
        letter-spacing: 0;
        margin-bottom: 23px;
    }

}

/* --------------------------------
■btn_sec
-------------------------------- */
.contents main > section.btn_sec {
    background: var(--text-color) url("../../images/index/cv_background.jpg") 50% 50% no-repeat;
    background-size: cover;
    padding: 70px 0;
    
    &.plain{
        background-image: none;
    }
    
}
.btn_sec .title.cp {
    font-size: 1.6rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    position: relative;
    display: inline-block;
    height: 42px;
    line-height: 42px;
    padding: 0 40px;
    text-align: center;
    margin-bottom: 0;
}

.btn_sec .title.lv3 {
    color: #fff;
    font-size: 2.4rem;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin: 18px auto 32px;
}

.btn_sec .btn_area {
    max-width: 973px;
    margin: 0 auto;
    gap: 21px
}
.btn_sec .btn_area p.buttonStyle {
    flex: 1;
    margin-bottom: 0;
}
.btn_sec .btn_area p.buttonStyle a {
    color: #1B1B1B;
    white-space: nowrap;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
.btn_sec .buttonStyle a span {
    font-size: 1.3rem;
    letter-spacing: 0.04em;
    background: url(../../images/common/icon/icon_line_b.svg) 0 50% no-repeat;
    background-size: auto 28px;
    padding-left: 64px;
    display: block;
}
.btn_sec .buttonStyle.mail a span {
    background: url(../../images/common/icon/icon_mail_b.svg) 0 50% no-repeat;
    background-size: auto 19px;
}
.btn_sec .buttonStyle.tel a span {
    background: url(../../images/common/icon/icon_tel_b.svg) 0 50% no-repeat;
    background-size: auto 28px;
}
.btn_sec .btn_area p.buttonStyle a em {
    font-size: 1.7rem;
    display: block;
}
.btn_sec .buttonStyle.tel a span em {
    font-size: 2.2rem;
    line-height: 1;
}
.btn_sec .buttonStyle.mail {
    display: none;
}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {
    /* --------------------------------
    ■btn_sec
    -------------------------------- */
    .contents main > section.btn_sec {
        padding: 47px 0;
    }
    .btn_sec .title.cp {
        font-size: 1.4rem;
        padding: 0 10px;
    }
    .btn_sec .title.lv3 {
        font-size: 1.8rem;
        margin: 16px auto;
    }
    .btn_sec .btn_area p.buttonStyle a {
        padding: 5px 20px;
    }

}
/* --------------------------------
■intro
-------------------------------- */
#intro .explain p {
    letter-spacing: 0.1em;
    line-height: 2;
    margin-bottom: 0;
}
#intro .explain p + p {
    margin-top: 24px;
}
#intro .image {
    margin-bottom: 0;
}

/* opening
-------------------------------- */
#intro .opening {
    max-width: 1289px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 138px;
}
#intro .opening > .explain {
    width: 50%;
}
    #intro .opening > .explain .lv3 {
        text-align: left;
        margin-top: 0;
    }
    #intro .opening > .explain .scene {
        display: flex;
        justify-content: space-between;
        flex-direction: row-reverse;
        gap: 0 12px;
    }
    #intro .opening > .explain .scene .explain {
        width: 55%;
    }
    #intro .opening > .explain .scene .explain p {
        line-height: 2.5;
    }
    #intro .opening > .explain .scene .image {
        width: 220px;
    }
#intro .opening > p.image {
    width: 45%;
    text-align: right;
    margin-bottom: 0;
}



/* タブレット用
-------------------------------------------- */
@media (max-width: 1080px) and (min-width: 768px) {
    
    #intro .opening > .explain {
        width: 68%;
    }
    #intro .opening > p.image {
        width: 30%;
        text-align: right;
        margin-left: auto;
        margin-bottom: 0;
    }
}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {
    /* opening
    -------------------------------- */
    #intro .opening {
        display: block;
        margin-bottom: 10vw;
    }
    #intro .opening > .explain {
        width: revert;
    }

        #intro .opening > .explain .scene {
            display: block;
        }
        #intro .opening > .explain .scene .explain {
            width: revert;
        }
        #intro .opening > .explain .scene .explain p {
            text-align: center;
        }
        #intro .opening > .explain .scene .image {
            margin-top: 4vw;
            width: 40%;;
        }
    #intro .opening > p.image {
        width: 50%;
        text-align: right;
        margin-left: auto;
        margin-top: -50vw;
        margin-bottom: 0;
    }

}

/* improvement
-------------------------------- */
#intro .improvement {
    max-width: 1082px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 100px;
}
#intro .improvement > .explain {
    width: 50%;
}
    #intro .improvement > .explain p {
        letter-spacing: 0.04em;
    }
    #intro .improvement > .explain p em {
        color: #fff;
        font-size: 2.1rem;
        letter-spacing: 0.1em;
        background-color: #1B1B1B;
        padding: 10px 23px;
    }
#intro .improvement > p.image {
    width: 42%;
}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {
    #intro .improvement {
        display: block;
        margin-bottom: 16vw;
    }
    #intro .improvement > .explain {
        width: revert;
    }
        #intro .improvement > .explain p {
            text-align: center;
        }
        #intro .improvement > .explain p em {
            font-size: 1.8rem;
            padding: 10px 10px;
        }
    #intro .improvement > p.image {
        margin-top: 8vw;
        width: revert;
        text-align: center;
    }

}


/* feature
-------------------------------- */
#intro .feature .lv4 {
    text-align: center;
    margin-bottom: 66px;
}
#intro .feature ul.items {
    display: flex;
    justify-content: space-between;
}
    #intro .feature ul.items li {
        width: 32%;
    }
    #intro .feature ul.items dl {
        display: flex;
        flex-direction: column;
    }
    #intro .feature ul.items dt {
        position: relative;
        margin-bottom: 30px;
    }
    #intro .feature ul.items dt figcaption {
        position: absolute;
        top: -20px;
        left: 20px;
        color: #fff;
        font-size: 1.2rem;
        letter-spacing: 0.06em;
        background-color: #31190D;
        padding: 14px 10px;
        text-align: center;
    }
    #intro .feature ul.items dt figcaption span {
        display: block;
        font-size: 2rem;
        letter-spacing: 0.04em;
    }
    #intro .feature ul.items dd {
        font-size: 1.5rem;
        letter-spacing: 0.1em;
        line-height: 1.8;
        padding-left: 20px;
        margin-left: 20px;
        position: relative;
    }
    #intro .feature ul.items dd::before {
        position: absolute;
        content: "";
        top: -60px;
        left: 0;
        display: inline-block;
        width: 1px;
        height: 135px;
        background-color: #A2A9AE;
    }

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {
    #intro .feature .lv4 {
        margin-bottom: 12vw;
    }
    #intro .feature ul.items {
        display: block;
        margin: 0 auto;
    }
        #intro .feature ul.items li {
            width: revert;
            
            + li{
                margin-top: 12vw;
            }
        }
        #intro .feature ul.items dl {
            width: fit-content;
            margin: 0 auto;
        }
        #intro .feature ul.items dt {
            margin-bottom: 3vw;
        }

}


/* --------------------------------
■voice
-------------------------------- */
#voice.bg_gray {
    background-color: #A2A9AE;
}
#voice .title.lv3 {
    color: #fff;
    position: relative;
}
#voice .text {
    color: #fff;
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    margin-bottom: 72px;
}
#voice .voiceList li .flex_box {
    background-color: #fff;
    justify-content: space-between;
    align-items: stretch;
}
#voice .voiceList li .flex_box > figure {
    width: 42%;
}
    #voice .voiceList li .flex_box > figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
#voice .voiceList li .flex_box > .explain {
    width: 58%;
    background-color: #fff;
    justify-content: space-between;
    padding: 79px 73px 70px 73px;
}
    #voice .voiceList li .flex_box .explain .no {
        font-size: 1.4rem;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        padding-top: 13px;
        border-top: 1px solid #1B1B1B;
        text-align: left;
        margin-bottom: 51px;
    }
    #voice .voiceList li .flex_box .explain .comment {
        font-size: 1.5rem;
        letter-spacing: 0.04em;
        line-height: 1.8;
        text-align: left;
        margin-bottom: 13px;
    }
    #voice .voiceList li .flex_box .explain .name {
        font-size: 1.6rem;
        font-weight: 600;
        letter-spacing: 0.1em;
        text-align: left;
        margin-bottom: 0;
    }

.slick-prev,
.slick-next {
    width: 38px;
    height: 97px;
    padding: 0;
    background: url("../../images/common/arrow.svg") 50% 50%!important;
    background-size: 100% auto;
    transform: translateY(-50%);
    transition: .5s;
}
.slick-prev {
    left: -85px;
}

.slick-next {
    right: -85px;
    transform: scale(-1, 1) translateY(-50%);
}

.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus
{
    opacity: 0.8;
}
.slick-prev:hover {
    left: -95px;
}

.slick-next:hover {
    right: -95px;
}


/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {


    #voice .text {
        font-size: 1.4rem;
        margin-bottom: 10vw;
    }
    #voice .voiceList li .flex_box {
        display: block;
    }
    #voice .voiceList li .flex_box > figure {
        width: revert;
    }

    #voice .voiceList li .flex_box > .explain {
        width: revert;
        display: block;
        padding: 6vw 8vw;
    }
        #voice .voiceList li .flex_box .explain .no {
            margin-bottom: 21px;
        }
        #voice .voiceList li .flex_box .explain .comment {
            font-size: 1.5rem;
            letter-spacing: 0.04em;
            line-height: 1.8;
            text-align: left;
            margin-bottom: 13px;
        }
        #voice .voiceList li .flex_box .explain .name {
            font-size: 1.6rem;
            font-weight: 600;
            letter-spacing: 0.1em;
            text-align: left;
            margin-bottom: 0;
        }

}

/* --------------------------------
■course
-------------------------------- */
#course {
    color: #fff;
}

/* case
-------------------------------- */
#course .case {
    --apply-size : 315px;
    border-top: 1px solid #7F7F7F;
    position: relative;
    
    @media (max-width : 767px) {
        --apply-size : 0;
    }
}
#course .case .no {
    font-size: 1.4rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-top: 13px;
    text-align: left;
    margin-bottom: 35px;
    position: relative;
    padding-left: 15px;
    padding-right: var(--apply-size);
    
    @media (max-width : 767px) {
        margin-bottom: 4vw;
    }
    
}
#course .case .no:before {
    content: "";
    position: absolute;
    top: .5em;
    left: 0;
    width: 7px;
    height: 7px;
    background-color: #fff;
    border-radius: 50%;
}
#course .case .title.lv4 {
    font-size: 2.8rem;
    text-align: left;
    margin-bottom: 15px;
    padding-right: var(--apply-size);

    @media (max-width : 767px) {
        font-size: 1.9rem;
        line-height: 1.3;
    }

}
#course .case .lead {
    font-size: 1.6rem;
    letter-spacing: 0.04em;
    text-align: left;
    margin-bottom: 39px;
    padding-right: var(--apply-size);
    
    @media (max-width : 767px) {
        font-size: 1.5rem;
        margin-bottom:6vw;
    }
}


/* recommend
-------------------------------- */
#course .case {
    
    .recommend {
        background-color: #72727B;
        padding: 63px 73px 69px 73px;
        flex-wrap: nowrap;
        align-items: flex-start;
        box-sizing: border-box;

        @media (max-width : 767px) {
            display:block;
            padding: 5vw;
        }

        .title.lv5 {
            color: #fff;
            font-size: 2rem;
            width: 286px;
            flex-shrink: 0;
            padding: 0;
            @media (max-width : 767px) {
                font-size: 1.8rem;
                width: revert;
                text-align:center;
            }
        }
        .menuList {
            max-width: calc(100% - 286px);
            flex-grow: 1;
            
                        
            @media (max-width : 767px) {
                max-width:revert;
            }
            .menu{
                display: flex;
                flex-wrap: nowrap;
                justify-content: flex-start;
                align-items: stretch;
                gap:0 50px;
                
                @media (max-width : 767px) {
                    display: block;
                }

                .explain{
                    position: relative;
                    flex-grow: 1;
                    padding-left: 1.5em;
                
                    @media (max-width : 767px) {
                        padding-left: 1.2em;
                    }

                    &::before{
                        position: absolute;
                        top: 3px;
                        left: 0;

                        display: inline-block;
                        content: "■";
                        font-size: 1.2rem;
                        color: #B1A075;
                        
                        @media (max-width : 767px) {
                            font-size: 1rem;
                        }
                    }

                    dt{
                        font-size: 2.0rem;
                        
                        @media (max-width : 767px) {
                            font-size: 1.8rem;
                        }
                    }
                    dd{
                        margin-top: 12px;
                        font-size: 1.4rem;
                        font-weight: 400;
                        line-height: 1.75;
                    }

                    dd.price{
                        font-size: 2.0rem;
                        
                        @media (max-width : 767px) {
                            font-size: 1.8rem;
                        }

                        > .unit{
                            font-size: 1.4rem;
                        }
                    }
                }
                .image{
                    flex-shrink: 0;
                    margin: 0;
                    
                    @media (max-width : 767px) {
                        margin: 3vw 0;
                        text-align:center;
                    }
                }

                + .menu{
                    margin-top: 35px;
                    padding-top: 35px;
                    border-top:1px solid #949494;
                    
                    @media (max-width : 767px) {
                        margin-top: 25px;
                        padding-top: 25px;
                    }
                }
            }
        }
    }

    + .case{
        margin-top: 80px;
        @media (max-width : 767px) {
            margin-top: 40px;
        }
    }
    
    /* apply
    -------------------------------- */
    .apply {
        position: absolute;
        top: 42px;
        right: 0;
        max-width: 315px;
        
        @media (max-width : 767px) {
            position:static;
            max-width:revert;
            margin-top:8vw;
        }

        p.text {
            font-size: 1.4rem;
            text-align: center;
            line-height: 1.64;
            margin-bottom: 15px;
        }

        p.buttonStyle {
            max-width: 266px;
            margin-inline:auto;

        }
    }
    
    
}

/* --------------------------------
■consulting
-------------------------------- */
#counseling {
    background: #FFFCF9;
    padding-top: 0;
    .mv{
        height: min(60vh , 700px);
        background: url("../../images/index/image.jpg") 50% 50% no-repeat;
        background-size: cover;
        background-attachment: fixed;

        + *{
            margin-top: 90px;
            
            @media (max-width : 767px) {
                margin-top:8vw;
            }
        }
    }
    @media (max-width : 767px) {
        .mv{
            background-attachment: inherit;
        }
    }

    
    .node{
        display: flex;
        flex-wrap: nowrap;
        justify-content: space-between;
        align-items: center;
        gap:0 75px;
        
        @media (max-width : 767px) {
            display:block;
        }
        
        .title.lv3{
            margin-top: 0;
        }
        
        .image{
            margin: 0;
            flex-shrink: 0;
        }
        
        + .node{
            margin-top: 42px;
        }
    }
    
    .node1{
        flex-direction: row-reverse;
        
        .explain{
            .text{
                line-height: 2.25;
                margin-bottom: 57px;
                
                @media (max-width : 767px) {
                    margin-bottom: 6vw;
                }
            }
            
            @media (max-width : 767px) {
                margin-bottom: 6vw;
            }
        }
    }
    .node2{
        .explain{
            margin-right: -23px;
            @media (max-width : 767px) {
                margin-right: 0;
            }
            p{
                margin: 0;
                line-height: 2.25;
                
                + p{
                    margin-top: 35px;
                    @media (max-width : 767px) {
                        margin-top:1rem;
                    }
                }
                
                strong{
                    font-size: 2.4rem;
                    text-decoration: underline;
                    
                    @media (max-width : 767px) {
                        font-size: 1.8rem;
                    }
                }
            }
        }
        .image{
            margin-right: -23px;
            @media (max-width : 767px) {
                margin-right: 0;
                margin-top: 6vw;
            }
        }
    }
    
    .oath{
        text-align: center;
        font-size: 2.6rem;
        line-height: 2;
        margin-top: 75px;
        margin-bottom: 0;
        
        span {
            background: linear-gradient(transparent 94%, #B1A075 0%);
        }
        
        @media (max-width : 767px) {
            font-size: 1.8rem;
            margin-top: 8vw;
        }
    }
}

/* --------------------------------
■.sideTitle
-------------------------------- */
.sideTitle{
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    flex-wrap: nowrap;
    
    @media (max-width : 767px) {
        display:block;
    }

    > .heading{
        box-sizing: border-box;
        width: 315px;
        flex-shrink: 0;
        padding-right: 32px;

        @media (max-width : 767px) {
            width: revert;
            margin-bottom:6vw;
            padding-right: revert;
        }

        .title.lv3{
            font-size: 1.5rem;
            span{
                font-size: 4.2rem;
            }
        }
        
        .text{
            font-size: 1.6rem;
        }
    }
    > .content {
        flex-grow: 1;
    }
}
/* --------------------------------
■flow
-------------------------------- */
#flow {
    position: relative;
    background: #FFFCF9;
    
    &::before{
        top: 0;
        left: 0;
        height: 100%;
        width: 74%;
        position: absolute;
        content: "";
        background: #F1EEEB;
    }

    
}
#flow .flow_list {
    gap: 84px;
    flex-grow: 1;
}
#flow .flow_list li {
    position: relative;
}
#flow .flow_list li:not(:last-child)::after {
    content: "";
    display: inline-block;
    width: 37px;
    height: 35px;
    background: url(../../images/common/icon/arrow.svg) no-repeat left center;
    background-size: contain;
    position: absolute;
    bottom: -59px;
    left: 15%;
    background-size: contain;
}
#flow .flow_list li dl {
    gap: 32px;
}
#flow .flow_list li dl dt {
    flex-shrink: 0;
    width: 283px;
}
#flow .flow_list li dt img {
    width: 100%;
}
#flow .flow_list li dl dd {
    width: calc( 100% - 283px - 32px)
}
#flow .flow_list li dl dd .ttl {
    font-size: 2rem;
    letter-spacing: 0.04em;
    margin-bottom: 21px;
}
#flow .flow_list li dl dd .ttl span {
    color: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    background-color: #31190D;
    padding: 6px 11px;
    margin-right: 13px;
}
#flow .flow_list li dl dd .text {
    font-size: 1.6rem;
    letter-spacing: 0.04em;
    line-height: 1.8;
    margin-bottom: 21px;
}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {

    /* --------------------------------
    ■flow
    -------------------------------- */
    #flow .flow_about {
        gap: 24px;
        margin-top: 40px;
    }
    #flow .flow_about .lv4 small {
        font-size: 1.3rem;
    }
    #flow .flow_about p.text {
        font-size: 1.5rem;
    }
    #flow .flow_list li:not(:last-child)::after{
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
    }
    #flow .flow_list li dl {
        gap: 13px;
    }
    #flow .flow_list li dl dt {
        font-size: 1.8rem;
        letter-spacing: 0;
    }
    #flow .flow_list li dl dt img {
        width: 100%;
    }
    #flow .flow_list li dl dd .ttl {
        font-size: 1.8rem;
        letter-spacing: 0;
        margin-bottom: 12px;
    }
    #flow .flow_list li dl dd .ttl span {
        font-size: 1.3rem;
        padding: 4px 11px;
    }
    #flow .flow_list li dl dd .text {
        font-size: 1.5rem;
        letter-spacing: 0;
        margin-bottom: 0;
    }
    #flow .flow_list li dl dd .buttonStyle {
        margin-top: 24px;
    }
}

/* --------------------------------
■faq
-------------------------------- */
#faq {
    background: #FFFCF9;
    
    dl.faqList {
        dt,
        dd {
            position: relative;
            letter-spacing: 0.1em;
            padding: 33px 93px;
            border-top:1px solid #E8E8E8;
            
            
            @media (max-width : 767px) {
                padding: 18px 18px 18px 46px;
            }
            
            &::before {
                position: absolute;
                left: 30px;
                top: 26px;
                
                display: flex;
                align-items: center;
                justify-content: center;
                
                content: "Q";
                border: 1px solid #31190D;
                color: #fff;
                background: #31190D;
                
                padding: 0;
                width: 42px;
                height: 42px;
                font-size: 2.1rem;
                font-weight: 700;
                letter-spacing: 0;
                border-radius: 100%;
                
            }
            @media (max-width : 767px) {
                &::before {
                    left: 8px;
                    top: 18px;
                    width: 28px;
                    height: 28px;
                    font-size: 1.8rem;
                    line-height:1.2;
                }
            }
        }
        dt {
            font-size: 2rem;
            @media (max-width : 767px) {
                font-size: 1.6rem;
            }
        }
        dd {
            font-size: 1.5rem;
            line-height: 1.8;
            
            @media (max-width : 767px) {
                font-size: 1.4rem;
            }
            
            &::before {
                content: "A";
                color: #31190D;
                background: #fff;
            }
        }
    }
}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {

    /* --------------------------------
    ■faq
    -------------------------------- */
    #faq dt,
    #faq dd {
        padding: 30px 4% 30px calc( 8% + 40px);
    }
    #faq dt {
        font-size: 1.6rem;
        letter-spacing: 0.04em;
    }
    #faq dd {
        font-size: 1.5rem;
        letter-spacing: 0;
        line-height: 1.5;
    }
    #faq dt:before,
    #faq dd:before {
        width: 40px;
        height: 40px;
        font-size: 1.8rem;
        line-height: 40px;
        left: 4%;
        top: 20px;
    }
}

/* --------------------------------
■access
-------------------------------- */
#access {
    background: #A2A9AE;
    padding: 0;
    color: #fff;
}
#access .txt_area {
    width: 50%;
    padding: 100px 0;
    
    a {
        color: #fff;
    }
}
#access .txt_area .title.lv3 {
    text-align: left;
}
#access .txt_area .logo {
    margin-bottom: 32px;
}
#access .txt_area .address {
    font-size: 1.5rem;
    margin-bottom: 13px;
}
#access .txt_area .tel {
    margin-bottom: 14px;
}
#access .txt_area .tel a {
    font-size: 2.8rem;
    color: #fff;
}
#access .txt_area .tel a small {
    font-size: 2.2rem;
}
#access figure {
    width: 50vw;
    margin-right: calc(50% - 50vw);
    z-index: 0;
}
#access figure img {
    width: 100%;
    object-fit: cover;
}
#access .map {
    margin: 0 calc(50% - 50vw);
}

@media (max-width: 1300px) and (min-width: 768px) {
    /* --------------------------------
    ■access
    -------------------------------- */
    #access .txt_area {
        padding: 60px 4% 60px 0
    }
}


/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {

    /* --------------------------------
    ■access
    -------------------------------- */
    #access .txt_area {
        padding: 60px 0 24px;
    }
    #access .txt_area .title.lv3 {
        text-align: center;
    }
    #access .logo {
        zoom: 0.6;
    }
    #access figure {
        margin: 0 calc(50% - 50vw) 24px;
    }
    #access iframe {
        aspect-ratio: 16 / 9;
        height: auto;
        width: 100%;
    }

}