@charset 'UTF-8';

.p-list-merit {
    max-width: 1000px;
    margin: 0 auto;
    dt {
        font-size: 18px;
        display: flex;
        gap:1em;
        font-weight: bold;
        align-items: self-start;
        line-height: 1;
        span {
            flex:1
        }
        &::before {
            content:'';
            display: block;
            width: 10px;
            aspect-ratio: 1/1;
            border-radius: 50%;;
            background: #0087d5;
            margin-top: 4px;
        }
        @media (max-width:767px) {
            font-size: 16px;
        }
    }
    dd {
        font-size: 16px;
        padding-left: calc(10px + 18px);
        margin-top: .5em;
        @media (max-width:767px) {
            font-size: 14px;
        }
    }
    >*+* {
        margin-top: 1.2em;
    }
    .-small {
        font-size: .8em;
        margin-top: .5em;
    }
}

.l-section_co {
    padding: 120px 0 100px;
    width: 100%;
    position: relative;
    overflow: clip;
    @media (max-width:767px) {
        padding: calc((160 / 780) * 100vw) 0 0;
        margin: 0 auto;
    }
    .c-gp__h2 {
        color:#fff;
        margin-top: 0;
        position: relative;
        z-index: 12;
        @media (max-width:767px) {
            padding: 0 2vw;
            .c-gp__h2__tt {
                font-size: calc((75 / 780) * 100vw);
                padding-bottom: .5em;
            }
        }
    }
    .c-gp__h2__ln {
        background: rgba(255,255,255,.8);
        &::before {
            background: rgba(255,255,255,1);
        }
    }
    .c-h2__logo {
        text-align: center;
        margin-bottom: 2em;
    }
    .c-gp__t {
        color: #fff;
        @media (max-width:767px) {
            padding: 0 2vw;
            text-align: left;
            br.is-pc {
                display: none;
            }
        }
    }
    &::before,
    &::after {
        content: '';
        display: block;
        position: absolute;
        left: 50%;
        top: 0;
        translate: -50% -5%;
        z-index: -1;
        width: 110%;
        height: 110%;
    }

    &.-co01 {
        margin-top: 160px;
        &::before {
            background: #1088dc;
            opacity: .42;
        }
        &::after {
            background: url(../img/bg_co_sec01.webp) 50% 0 no-repeat;
            background-size: cover;
            z-index: -2;
            filter: blur(8.4px);
        }
        .c-h2__logo {
            img {
                @media (max-width:767px) {
                    width: calc((316 / 780) * 100vw);
                    height: auto;;
                }                                
            }
        }
        @media (max-width:767px) {
            margin-top: calc((120 / 780) * 100vw);
        }
    }
    &.-co02 {
        &::before {
            background: #089450;
            opacity: .46;
        }
        &::after {
            background: url(../img/bg_co_sec02.webp) 50% 0 no-repeat;
            background-size: cover;
            z-index: -2;
            filter: blur(8.4px);
        }
    }    
}
.p-content-wrap {
    position: relative;
    z-index: 2;
    *+& {
        margin-top: 2em;
    }
    background: #fff;
    border-radius: min(calc((20 / 1280) * 100vw), 20px);
    padding: 40px 50px;
    .c-img {
        img {
            max-width: none;
            width: 100%;
            height: auto;
        }
    }
    @media (max-width:767px) {
        padding: 40px 2vw;
        border-radius: 0;
    }
}
.p-co01__bottom {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #0186d1;
    color: #fff;
    font-size: 24px;
    padding: .8em 1.6em;
    text-align: center;
    border-radius: min(calc((10 / 1280) * 100vw), 10px);
    margin-top: 1em;
    @media (max-width:767px) {
        font-size: calc((40 / 780) * 100vw);
        padding: 1em 1em;
        border-radius: calc((10 / 780) * 100vw);
        font-weight: bold;
        br.is-pc {
            display: none;
        }
    }
}
.p-figure-blk {
    *+& {
        margin-top: 2em;
    }
    .c-img {
        img {
            width: 100%;
            height: auto;;
        }
    }
    figcaption {
        margin-top: 3em;
        font-size: 14px;
        text-align: center;
        a {
            color: currentColor;
        }
        @media (min-width:768px) {
            br.is-sp {
                display: none;
            }
        }
    }
}
.l-secton-mv {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    height: min(calc((666 / 1280) * 100vw), 666px);
    background: #333;
    .inner {
        width: 1100px;
        margin: 0 auto;
        @media (max-width:767px) {
            width: 100%;
        }        
    }
    background: url(../img/bg_co_mv.webp) 50% 100% no-repeat;
    background-size: cover;
    @media (max-width:767px) {
        background-image: url(../img/bg_co_mv_sp.webp);
        height: auto;
        aspect-ratio: 790 / 650;
    }    
}
.p-list-anchor {
    display: flex;
    gap: 55px;
    padding-top: min(calc((80 / 1280) * 100vw), 80px);
    justify-content: center;
    img {
        filter: drop-shadow(0 0 20px rgba(80,110,120,.5));
        @media (max-width:767px) {
            height: calc((300 / 780) * 100vw);
            width: auto;
        }    
    }
    @media (max-width:767px) {
        padding-top: min(calc((72 / 780) * 100vw));
        gap: calc((72 / 780) * 100vw);
        justify-content: center;
    }
    a {
        transition: .3s opacity;
        @media (hover:hover) {
            &:hover {
                opacity: .8;
            }
        }
    }
}
@media print, (min-width: 768px) {
    .c-gp__w.is-w1100 {
        width: 1100px;
    }
    .is-sp {
        display: none;
    }
}
.text-offset {
    @media (max-width:767px) {
        br.is-pc {
            display: none;
        }
        text-align: left!important;
    }
}