@charset "utf-8";

*, *::before, *::after{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root{
    --colorBase: #505050;
    --colorWhite: #fff;
    --colorMain: #af99b9;
    --colorSub: #f1ecf5;
    --colorBG: linear-gradient(to bottom, #e7f2f7, #f7e7f4);
    --colorBGTypeB: #faf7f3;
    --colorGradation: linear-gradient(to right, #c6b0d0, #b1d4e4);
    --colorGradationB: linear-gradient(to left, #e7f2f7, #f7e7f4);
    --colorGray: #d0d0d0;
    --lineHeight: 1.5;
    --fontSizeBase: 1.4rem;
    --fontFamilyBase: "ヒラギノ角ゴ ProN", "游ゴシック", sans-serif;
    --fontFamilyAccent: "EB Garamond", serif;
    --paddingSide: 5vw;
    --paddingMain: 9.6rem;
    --widthBase: 92rem;
    --widthTypeB: 120rem;
    --aspectThumbnail: 700 / 388;
    --animTypeB:
        animeTypeBTranslate .9s cubic-bezier(0.96, 0.06, 0.52, 0.88) forwards,
        animeTypeBOpacity 1s cubic-bezier(0.66, 0.31, 0, 1.09) forwards;

    @media(min-width: 768px){
        --fontSizeBase: 1.6rem;
        --paddingMain: 12rem;
    }
}
html{
    font-size: 62.5%;
}
body{
    font-size: var(--fontSizeBase);
    line-height: var(--lineHeight);
    color: var(--colorBase);
    font-feature-settings: "palt";
    font-family: var(--fontFamilyBase);
    font-weight: 500;
    word-break: break-all;
}
img, iframe{
    display: block;
    max-width: 100%;
    height: auto;
}
li{
    list-style: none;
}
a{
    text-decoration: none;
    color: inherit;
}
small{
    font-size: inherit;
}
textarea, input:is([type="text"], [type="tel"], [type="email"]){
    display: block;
    width: 100%;
    border: .1rem solid var(--colorSub);
    background: var(--colorSub);
    font: inherit;
    padding: .8rem 1.2rem;

    &:focus-visible{
        outline: .2rem solid var(--colorMain);
    }
}
textarea{
    resize: none;
}
.bg-a{
    background: var(--colorBG);
}
.container{
    max-width: var(--widthBase);
    padding-left: var(--paddingSide);
    padding-right: var(--paddingSide);
    box-sizing: content-box;
    margin-inline: auto;
}
.no-image,
.no-thumbnail{
    background: url(../img/no_image.webp);
    background-position: center;
    background-size: cover;
}

/* open-menu */
body.open-menu{
    overflow: hidden;
    
    .menu-toggle-btn{
        .icon-open{
            display: none !important;
        }
        .icon-close{
            display: flex !important;
        }
    }
    .header, .footer{
        scrollbar-gutter: stable;
        overflow: auto;
    }
    .header{
        .global_nav__wrap{
            translate: 0 !important;
        }
    }
    .main{
        padding-right: var(--scrollBarSize, 0);
    }
    .layer{
        opacity: 1 !important;
        visibility: visible !important;
    }
}
body.change-size{
    .global_nav__wrap{
        transition: none !important;
    }
}

.anim-child:not(.anim-type-b) > *,
.anim:not(.anim-type-b){
    opacity: 0;
    translate: 0 2rem;
    transition: translate .9s cubic-bezier(0.34, 0, 0, 1.13),
                opacity 1s cubic-bezier(0.96, 0.79, 0.18, 1);

    &.is-active{
        opacity: 1;
        translate: 0;
    }
}

@keyframes animeTypeBOpacity{
    from{
        opacity: 0;
        translate: 0 2rem;
    }
    to{
        opacity: 1;
        translate: 0;
    }
}
@keyframes animeTypeBTranslate{
    from{
        translate: 0 2rem;
    }
    to{
        translate: 0;
    }
}

/* header */
.header{
    position: sticky;
    top: 0;
    z-index: 99;
    padding-left: var(--paddingSide);

    @media(min-width: 1000px){
        position: static;
    }

    h1{
        line-height: 1;
        color: var(--colorWhite);
        font-size: 2.4rem;
        font-family: var(--fontFamilyAccent);
        text-transform: capitalize;

        img{
            max-width: 18rem;
        }
    }

    .header-container{
        .header-container-inner{
            display: flex;
            justify-content: space-between;
            align-items: center;

            .global_nav__wrap{
                position: fixed;
                right: 0;
                top: 0;
                bottom: 0;
                z-index: 9999;
                transition: translate .2s;
                translate: 100%;
                padding: 11rem clamp(2.4rem, 5vw, 8rem) 1rem;
                width: min(40rem, 60vw);
                background: rgba(255, 255, 255, .94);

                @media(min-width: 1000px){
                    position: static;
                    translate: none;
                    font-size: 1.4rem;
                    padding: 0;
                    width: auto;
                    background: transparent;
                }

                .menu{
                    @media(min-width: 1000px){
                        display: flex;
                        align-items: center;
                        column-gap: 2.8rem;
                    }

                    a{
                        text-align: center;
                        padding: 1.2rem;
                        display: block;

                        @media(min-width: 1000px){
                            padding: 0;
                        }
                    }

                    li:not(.to-contact){
                        @media(min-width: 1000px){
                            a{
                                transition: color .3s;

                                &:hover{
                                    color: var(--colorMain);
                                }
                            }
                        }
                    }

                    .to-contact{
                        a{
                            display: flex;
                            justify-content: center;
                            column-gap: .8rem;
                            background: var(--colorMain);
                            color: var(--colorWhite);
                            margin-top: 2rem;

                            &::before{
                                content: '';
                                display: block;
                                width: 1.6rem;
                                background: url(../img/mail.svg);
                                background-size: 1.6rem;
                                background-position: center;
                                background-repeat: no-repeat;
                            }

                            @media(min-width: 1000px){
                                padding: 2rem 2.4rem;
                                margin-top: 0;
                                transition: opacity .3s;

                                &:hover{
                                    opacity: .8;
                                }
                            }
                        }
                    }
                }

                .sns-items{
                    margin-top: 4rem;

                    @media(min-width: 1000px){
                        display: none;
                    }

                    a{
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        column-gap: 1.2rem;

                        & + a{
                            margin-top: 1.2rem;
                        }

                        img{
                            max-width: 2.8rem;
                        }
                    }
                }
            }

            .menu-toggle-btn{
                flex: 0 0 4.8rem;
                position: relative;
                z-index: 10000;
                padding: .8rem;
                cursor: pointer;

                @media(min-width: 1000px){
                    display: none;
                }

                .icon-open{
                    display: flex;
                }
                .icon-close{
                    display: none;
                }
            }
        }
    }
}
body:is(.post-type-archive-voice, .page-template-page-with-sidebar, .blog, .single, .archive){
    .header{
        h1{
            color: var(--colorMain);
        }
    }
}

/* pagination */
.pagination{
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: .8rem;

    a, span{
        width: 3.6rem;
        height: 3.6rem;
        border: .1rem solid var(--colorMain);
        color: var(--colorMain);
        display: flex;
        align-items: center;
        justify-content: center;
    }
    a{
        transition: opacity .3s;
        &:hover{
            opacity: .7;
        }
    }

    span.page-numbers.dots{
        border: none;
        width: auto;
    }
    span.current{
        background: var(--colorMain);
        color: var(--colorWhite);
    }

    svg{
        max-width: 2.4rem;
        display: block;
    }
}
/* post-navigation */
.post-navigation{
    display: flex;
    flex-direction: column;
    column-gap: 2.8rem;
    row-gap: 2rem;
    margin-top: 6rem;

    @media(min-width: 768px){
        flex-direction: row;
    }

    .item-wrap{
        flex: 0 0 100%;
        @media(min-width: 768px){
            flex: 0 0 calc(100% / 2 - 2.8rem / 2);
        }

        a{
            display: flex;
            box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
            transition: scale .2s linear;

            &:hover{
                scale: 1.025;
            }

            .item{
                display: flex;
                align-items: center;
                column-gap: 2rem;
                background: var(--colorWhite);
                flex: 1;
                padding: 2rem;

                .thumbnail{
                    max-width: 14rem;
                    width: 100%;

                    img{
                        aspect-ratio: var(--aspectThumbnail);
                        object-fit: cover;
                    }
                    .no-image{
                        aspect-ratio: var(--aspectThumbnail);
                    }
                }
                h3{
                    flex: 1;
                    font-size: 1.4rem;
                    font-weight: inherit;
                    display: -webkit-box;
                    -webkit-box-orient: vertical;
                    -webkit-line-clamp: 2;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }
            }
            .icon{
                flex: 0 0 2.4rem;
                background: var(--colorMain);
                color: var(--colorWhite);
                display: flex;
                align-items: center;
                justify-content: center;
            }
        }
    }
}

/* sidebar */
.sidebar{
    flex: 0 0 28rem;

    .profile-box{
        margin-bottom: 2.8rem;
        background: var(--colorWhite);
        border: .1rem solid var(--colorGray);

        .profile-inner{
            padding: 2rem;

            .img-area{
                width: 14rem;
                height: 14rem;
                overflow: hidden;
                border-radius: 50%;
                margin-inline: auto;
                margin-bottom: 1.2rem;

                img{
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
            }
            
            .name{
                text-align: center;
            }
            
            .position{
                font-size: 1.2rem;
                text-align: center;
                margin-top: .8rem;
                line-height: 1;
                margin-bottom: 2rem;
            }

            .profile-text{
                max-width: 40rem;
                margin-inline: auto;
                letter-spacing: .1rem;
                padding-left: .1rem;
                line-height: 2;
                font-size: 1.4rem;
            }

            .btn-area{
                margin-top: 4rem;

                a{
                    margin-inline: auto;
                }
            }
        }

        .sns-inner{
            padding: 2rem;
            background: var(--colorGradationB);

            .sns-title{
                display: flex;
                align-items: center;
                justify-content: center;
                column-gap: .4rem;
                color: var(--colorMain);
                font-size: 1.4rem;
                margin-bottom: 1.2rem;

                &::before,
                &::after{
                    content: '';
                    display: block;
                    border-bottom: .1rem solid;
                    flex: 0 0 1em;
                }
            }

            .sns-items{
                display: flex;
                justify-content: center;
                align-items: center;
                column-gap: 1.6rem;

                a{
                    background: var(--colorWhite);
                    border-radius: .8rem;
                    height: 4.8rem;
                    width: 4.8rem;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    transition: opacity .3s;

                    &:hover{
                        opacity: .8;
                    }

                    img{
                        max-width: 2.8rem;
                    }
                }
            }
        }
    }

    .widget_block{

        & + .widget_block{
            margin-top: 2.8rem;
        }

        .wp-block-group:not(.newsletter-area){
            background: var(--colorWhite);
            border: .1rem solid var(--colorGray);

            .wp-block-heading{
                background: var(--colorMain);
                color: var(--colorWhite);
                text-align: center;
                font-size: var(--fontSizeBase);
                padding: 1.2rem;
            }

            .wp-block-categories,
            .popular-posts{
                padding: 2rem;

                .wpp-list{
                    li{
                        display: flex;
                        align-items: center;
                        transition: opacity .3s;

                        &:hover{
                            opacity: .8;
                        }

                        & + li{
                            margin-top: 1.2rem;
                        }

                        a.wpp-post-title{
                            font-size: 1.4rem;
                            flex: 1;
                            padding-left: 2rem;
                            display: flex;
                            display: -webkit-box;
                            -webkit-box-orient: vertical;
                            -webkit-line-clamp: 2;
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }
                        a:not(.wpp-post-title){
                            flex: 0 0 10rem;
                        }
                        .wpp-thumbnail{
                            float: none;
                            margin-right: 0;
                            aspect-ratio: 722 / 388;
                            object-fit: cover;
                            display: block;
                        }
                    }
                }
            }
            .wp-block-categories{
                font-size: 1.4rem;

                li{
                    & + li{
                        margin-top: .8rem;
                    }

                    a{
                        display: flex;
                        align-items: center;
                        column-gap: .8rem;
                        transition: opacity .3s;

                        &:hover{
                            text-decoration: underline;
                            opacity: .8;
                        }

                        &::before{
                            content: '';
                            width: 1.6rem;
                            height: 1.6rem;
                            background-image: url(../img/right-block.svg);
                            background-size: 1.6rem;
                        }
                    }
                }
            }
        }
        .wp-block-group.newsletter-area{
            .wp-block-heading{
                font-size: var(--fontSizeBase);
                padding-bottom: 1.2rem;
                position: relative;
                margin-bottom: 1.2rem;

                &::after{
                    content: '';
                    display: block;
                    position: absolute;
                    bottom: 0;
                    left: 0;
                    right: 0;
                    height: .2rem;
                    background: linear-gradient(to right, var(--colorMain) 0, var(--colorMain) 25%, var(--colorGray) 25%, var(--colorGray) 100%);
                }
            }
        }
    }
}

/* title-decoration */
.title-decoration{
    font-size: clamp(4rem, 5vw, 6rem);
    line-height: 1;
    color: var(--colorSub);
    text-align: center;
}

/* title */
.title{
    text-align: center;
    font-size: var(--fontSizeBase);
    margin-top: 1.2rem;
    margin-bottom: 6rem;
}

/* page-title-wrap */
.page-title-wrap{
    display: flex;
    position: relative;

    &::before{
        content: '';
        display: block;
        position: absolute;
        z-index: -1;
        left: 0;
        width: 80%;
        top: -8rem;
        bottom: 6rem;
        background: var(--colorGradation);

        @media(min-width: 768px){
            width: 40%;
        }
    }

    .title-area{
        padding-left: var(--paddingSide);
        padding-right: var(--paddingSide);
        display: flex;
        justify-content: center;
        align-items: center;
        color: var(--colorWhite);
        padding-bottom: calc(100vw / (16 / 9));
        padding-top: 4.8rem;
        
        @media(min-width: 768px){
            padding-top: 0;
            padding-bottom: 6rem;
            flex: 0 0 35%;
        }

        .page-title-decoration{
            font-family: var(--fontFamilyAccent);
            color: var(--colorBGTypeB);
            font-size: clamp(5.2rem, 5vw, 8rem);
            text-transform: capitalize;
            line-height: 1;
        }
        .page-title{
            font-size: inherit;

            @media(min-width: 768px){
                font-size: 2rem;
            }
        }
    }

    .thumbnail-area{
        flex: 1;
        position: absolute;
        right: 0;
        bottom: 0;
        width: 85%;

        @media(min-width: 768px){
            position: static;
            width: 100%;
        }

        .img-area{
            box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);

            img{
                max-height: 50rem;
                object-fit: cover;
                object-position: center;
                aspect-ratio: 16 / 9;
            }
        }
    }
}

/* btn-area */
.btn-area{
    a{
        display: flex;
        align-items: center;
        justify-content: center;
        column-gap: .8rem;
        background: var(--colorMain);
        color: var(--colorWhite);
        padding: 1.6rem 2rem;
        font-size: 1.4rem;
        max-width: 24rem;
        line-height: 1;
        transition: opacity .3s;

        &:hover{
            opacity: .8;
        }

        &::after{
            content: '';
            display: block;
            background-image: url(../img/right.svg);
            background-size: 2rem;
            width: 2rem;
            height: 2rem;
        }
    }
}

/* post-area__list */
.post-area__list{
    display: flex;
    flex-direction: column;
    column-gap: 2rem;
    row-gap: 2.8rem;

    @media(min-width: 768px){
        flex-direction: row;
    }

    .post-area__item{
        flex: 0 0 calc(100% / 3 - 2rem * 2 / 3);
        background: var(--colorWhite);
        box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
        opacity: 0;
        transition: scale .2s linear;

        &.is-active{
            animation: var(--animTypeB);
        }

        &:hover{
            scale: 1.025;
        }

        img, .no-thumbnail{
            aspect-ratio: var(--aspectThumbnail);
            object-fit: cover;
        }

        .inner{
            padding: 1.6rem 2rem 2.4rem;

            .post-area--info{
                display: flex;
                justify-content: space-between;
                align-items: center;
                margin-bottom: 1.2rem;

                .post-area--category{
                    font-size: .75em;
                    background: var(--colorGradationB);
                    border-radius: 4rem;
                    padding: .8rem 3.2rem;

                    @media(min-width: 768px){
                        padding: .8rem min(3.2rem, 2vw);
                    }
                }
                .post-area__date{
                    font-size: .9em;
                }
            }
            .post-area__title{
                font-size: 1.4rem;
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-line-clamp: 2;
                overflow: hidden;
                text-overflow: ellipsis;
                letter-spacing: .1rem;
                line-height: 1.75;
            }
        }
    }
}

/* main-visual */
.main-visual{
    position: relative;

    @media(min-width: 768px){
        display: flex;
    }

    &::before{
        content: '';
        display: block;
        position: absolute;
        z-index: -1;
        left: 0;
        width: 80%;
        top: -8rem;
        bottom: -8rem;
        background: var(--colorGradation);

        @media(min-width: 768px){
            width: 40%;
        }
    }

    .text-area{
        padding-left: var(--paddingSide);
        left: 0;
        top: 50%;
        z-index: 2;
        color: var(--colorWhite);
        padding-top: 4rem;
        padding-bottom: 4rem;
        
        @media(min-width: 768px){
            position: absolute;
            padding-top: 0;
            padding-bottom: 0;
            translate: 0 -50%;
        }

        .top-text{
            font-size: clamp(2.4rem, 4vw, 3.2rem);
            line-height: 1.5;
            margin-bottom: 2rem;
            font-weight: 700;
            letter-spacing: .2rem;
            overflow: hidden;
            
            span{
                display: block;
                transform: translate3d(0, 100%, 0);
                opacity: 0;
                transition:
                    transform .6s cubic-bezier(0.77, 0, 0.175, 1),
                    opacity .6s ease;
                transition-duration: .6s;
            }
            &.is-active{
                span{
                    transform: translate3d(0, 0, 0);
                    opacity: 1;
                }
            }
        }
        .bottom-text{
            letter-spacing: .2rem;
            line-height: 2;
            overflow: hidden;

            span{
                display: block;
                transform: translate3d(0, 100%, 0);
                opacity: 0;
                transition:
                    transform .6s cubic-bezier(0.77, 0, 0.175, 1),
                    opacity .6s ease;
                transition-duration: .6s;
            }

            &.is-active{
                span{
                    transform: translate3d(0, 0, 0);
                    opacity: 1;
                }
            }
        }
        .name{
            font-size: clamp(6rem, 8vw, 14rem);
            line-height: 1;
            font-family: var(--fontFamilyAccent);
            letter-spacing: .5rem;
            color: var(--colorBGTypeB);
            position: absolute;
            bottom: 25%;
            overflow: hidden;

            span{
                display: block;
                transform: translate3d(0, 100%, 0);
                opacity: 0;
                transition:
                    transform .6s cubic-bezier(0.77, 0, 0.175, 1),
                    opacity .6s ease;
                transition-duration: .6s;
            }

            &.is-active{
                span{
                    transform: translate3d(0, 0, 0);
                    opacity: 1;
                }
            }

            @media(min-width: 768px){
                position: static;
                margin-top: 4rem;
            }
        }
    }
    .img-area{
        width: 85%;
        margin-left: auto;
        box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
        position: relative;
        z-index: -1;

        @media(min-width: 768px){
            flex: 0 0 65%;
            width: 100%;
        }

        .no-image,
        img{
            min-height: 40rem;
            object-fit: cover;
            aspect-ratio: 388 / 259;
        }
    }

    .scroll{
        position: absolute;
        left: var(--paddingSide);
        font-family: var(--fontFamilyAccent);
        writing-mode: sideways-rl;
        bottom: -4rem;
        border-left: .1rem solid;
        color: #fff;
        padding-top: 2rem;
        padding-bottom: 4rem;
        letter-spacing: .1rem;

        &::after{
            content: '';
            display: block;
            position: absolute;
            left: 0;
            width: 1.4rem;
            rotate: -35deg;
            bottom: -1.4rem;
            height: 1.4rem;
            border-top: .1rem solid;
            transform-origin: left top;
        }
    }
}


/* section-top-wrap */
.section-top-wrap{
    position: relative;

    &::before{
        content: '';
        display: block;
        left: 0;
        right: 0;
        bottom: 0;
        top: -8rem;
        position: absolute;
        background: linear-gradient(45deg, #f7e7f4, #e7f2f7);
        z-index: -2;
    }
}
/* section-top-about-us */
.section-top-about-us{
    position: relative;

    &::after{
        content: '';
        display: block;
        position: absolute;
        right: 0;
        top: 60rem;
        width: 80%;
        background: var(--colorWhite);
        height: 60rem;

        @media(min-width: 768px){
            top: 40rem;
            bottom: 0;
            width: 52%;
            height: auto;
        }
    }

    .container{
        padding-top: calc(8rem + var(--paddingMain));
        position: relative;
        z-index: 2;

        @media(min-width: 768px){
            padding-bottom: 8rem;
        }

        .title-decoration-adjust{
            font-size: clamp(4rem, 5vw, 8rem);
            letter-spacing: .2rem;
            font-family: var(--fontFamilyAccent);
            color: var(--colorWhite);
            line-height: 1;
            margin-bottom: 2rem;

            @media(min-width: 768px){
                margin-bottom: 6rem;
            }
        }
        .title-adjust{
            font-size: 2.4rem;
            margin-bottom: 6rem;
            letter-spacing: .1rem;

            @media(min-width: 768px){
                margin-bottom: 4rem;
            }
        }

        .flex{
            display: flex;
            column-gap: 4rem;
            row-gap: 4rem;
            flex-direction: column-reverse;

            @media(min-width: 768px){
                flex-direction: row;
            }

            .left{
                flex: 0 0 60%;

                .text-area{
                    letter-spacing: .2rem;
                    line-height: 2;

                    br{
                        display: none;

                        @media(min-width: 768px){
                            display: initial;
                        }
                    }

                    p + p{
                        margin-top: 2em;
                    }
                }
            }
            .right{
                flex: 1;

                .img-area{
                    position: relative;
                    max-width: 85%;
                    margin-inline: auto;

                    .no-image,
                    img{
                        object-fit: cover;
                        aspect-ratio: 2 / 3;
                        box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
                    }
                    
                    @media(min-width: 768px){                           
                        translate: 0 -12rem;
                        max-width: 100%;
                        padding-top: 6rem;
                    }

                    &::before{
                        content: '';
                        display: block;
                        position: absolute;
                        left: 0;
                        right: 0;
                        top: 0;
                        bottom: 0;
                        z-index: -1;
                        background: var(--colorBGTypeB);
                        translate: min(6rem, var(--paddingSide)) max(-6rem, calc(var(--paddingSide) * -1));

                        @media(min-width: 768px){
                            top: 6rem;
                        }
                    }
                }
            }
        }

        .board-area{
            display: flex;
            background: var(--colorBGTypeB);
            margin-top: 6rem;
            box-shadow: 0 .6rem .6rem rgba(0, 0, 0, .2);
            flex-direction: column;

            @media(min-width: 768px){
                flex-direction: row;
                margin-top: 8rem;
            }

            .img-area{
                flex: 0 0 45%;

                .no-image,
                img{
                    height: 100%;
                    object-fit: cover;
                    aspect-ratio: 112 / 71;
                    width: 100%;
                }
            }
            .text-area{
                flex: 1;
                padding: 2rem 4rem;
                display: flex;
                flex-direction: column;
                justify-content: center;

                .board-title{
                    font-size: 1.15em;
                    font-weight: 700;
                    color: var(--colorMain);
                    margin-bottom: 2rem;
                }
                .text{
                    line-height: 2;
                    letter-spacing: .2rem;
                    margin-bottom: 2rem;
                }
            }
        }
    }
}
/* section-top-voice */
.section-top-voice{
    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .title-decoration{
            color: var(--colorWhite);
        }

        .btn-area{
            margin-top: 6rem;

            a{
                margin-inline: auto;
            }
        }
    }
}

/* section-top-blog */
.section-top-blog{
    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .btn-area{
            margin-top: 6rem;

            a{
                margin-inline: auto;
            }
        }
    }
}

/* section-top-youtube */
.section-top-youtube{
    padding-left: var(--paddingSide);
    padding-right: var(--paddingSide);

    .board{
        background: linear-gradient(45deg, #f7e7f4, #e7f2f7);
        padding: 8rem 2rem;

        @media(min-width: 768px){
            padding: 8rem 4rem;
        }

        .title-decoration{
            color: var(--colorWhite);
        }

        .border-area{
            position: relative;
            border: .4rem solid var(--colorWhite);
            padding: 8rem 2rem 6rem;
            
            @media(min-width: 768px){
                padding: 8rem 4rem 6rem;

            }

            h3{
                position: absolute;
                top: 0;
                left: 50%;
                translate: -50% -50%;
                background: var(--colorWhite);
                color: var(--colorMain);
                line-height: 1;
                border-radius: 6rem;
                width: 90%;
                text-align: center;
                padding: 2rem 1.2rem;
                font-size: var(--fontSizeBase);
                
                @media(min-width: 768px){
                    width: auto;
                    padding: 2rem 4rem;
                    font-size: 2rem;
                }
            }
            .video-area{
                display: flex;
                flex-direction: column;
                column-gap: 2rem;
                row-gap: 2rem;
                margin-bottom: 4rem;

                @media(min-width: 768px){
                    flex-direction: row;
                }

                & > div{
                    flex: 1;

                    iframe{
                        aspect-ratio: 744.4 / 418.725;
                    }
                }
            }
            .btn-area{
                a{
                    margin-inline: auto;
                }
            }
        }
    }
}

/* section-top-contact */
.section-top-contact{
    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .text{
            padding-left: .2rem;
            letter-spacing: .2rem;
            line-height: 2;
            text-align: center;
        }
        .btn-area{
            margin-top: 6rem;

            a{
                margin-inline: auto;
            }
        }
    }
}

/* section-profile-profile */
.section-profile-profile{
    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        @media(min-width: 768px){
            padding-top: calc(var(--paddingMain) + 6rem);
            padding-bottom: calc(var(--paddingMain) + 6rem);
        }

        .border-area{
            position: relative;
            border: .6rem solid #e7f2f7;
            padding: 4rem 2rem;
            margin-inline: auto;

            @media(min-width: 768px){
                padding: 8rem 0;
                max-width: min(80rem, 60vw);
            }

            .img-area{
                box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);

                &.img-top{
                    margin-bottom: 2.8rem;
                }
                &.img-bottom{
                    margin-top: 4rem;
                    margin-bottom: 2.8rem;
                }

                @media(min-width: 768px){
                    position: absolute;
                    max-width: min(39rem, 30vw);

                    &.img-top {
                        left: 0;
                        top: 0;
                        margin-bottom: 0;
                        translate: -50% -6rem;
                    }
                    &.img-bottom{
                        right: 0;
                        bottom: 0;
                        margin-top: 0;
                        margin-bottom: 0;
                        translate: 50% 6rem;
                    }
                }

                img{
                    aspect-ratio: 3 / 4;
                    object-fit: cover;
                }
            }

            .top-text,
            .bottom-text{
                line-height: 2.5;
                letter-spacing: .2rem;
            }
            h2, .top-text{
                @media(min-width: 768px){
                    padding-left: min(26rem, 18vw);
                }
            }
            h2{
                margin-bottom: 2rem;
            }
            .top-text{
                
                p{
                    & + p{
                        margin-top: 1.5em;

                        @media(min-width: 768px){
                            margin-top: 4rem;
                        }
                    }

                    br{
                        display: none;

                        @media(min-width: 768px){
                            display: initial;
                        }
                    }
                }
            }
            .bottom-text{
                @media(min-width: 768px){
                    padding-left: min(8rem, 5vw);
                    padding-right: min(26rem, 18vw);
                    margin-top: 6rem;
                }
                @media(min-width: 1200px){
                    margin-top: 10rem;
                }

                p{
                    br{
                        display: none;

                        @media(min-width: 768px){
                            display: initial;
                        }
                    }
                }
            }
        }
    }
}
/* section-profile-story */
.section-profile-story{
    background: linear-gradient(45deg, #f7e7f4, #e7f2f7);

    .title-decoration{
        color: var(--colorWhite);
    }

    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);
    }

    .story-area-wrap{
        margin-top: 12rem;
        & > .story-area{
            position: relative;
            display: flex;

            & + .story-area{
                margin-top: 12rem;
            }
            .inner{
                background: var(--colorWhite);
                padding: calc(min(70%, 30rem) / (443 / 307)) 2rem 6rem;
                width: 90%;
                
                @media(min-width: 768px){
                    width: 100%;
                    flex: 0 0 60%;
                    padding: 4rem 6rem;
                    min-height: 32rem;
                }

                .story-number{
                    display: flex;
                    align-items: center;
                    column-gap: .4rem;
                    font-family: var(--fontFamilyAccent);

                    &::before{
                        content: '';
                        border-bottom: .1rem solid;
                        flex: 0 0 4em;
                    }
                }
                h3{
                    margin-top: 2rem;
                    margin-bottom: 2rem;
                    color: var(--colorMain);
                }
                .text{
                    letter-spacing: .1rem;
                    line-height: 2;
                }
            }
            .img-area{
                position: absolute;
                top: -4rem;
                width: min(70%, 30rem);
                
                @media(min-width: 768px){
                    width: 45%;
                }

                img{
                    aspect-ratio: 443 / 307;
                    object-fit: cover;
                }
            }

            &:nth-of-type(odd){
                .img-area{
                    left: 0;
                }
                .inner{
                    margin-left: auto;

                    & > *{
                        @media(min-width: 768px){
                            padding-left: 2rem;
                        }
                    }
                }
            }
            &:nth-of-type(even){
                .img-area{
                    right: 0;
                }
                .inner{
                    & > *{
                        @media(min-width: 768px){
                            padding-right: 2rem;
                        }
                    }
                }
            }
        }
    }
}

/* section-sns */
.section-sns{
    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .sns-area-wrap{
            display: flex;
            flex-direction: column;
            column-gap: 2rem;
            row-gap: 2rem;

            @media(min-width: 768px){
                row-gap: 6rem;
                flex-wrap: wrap;
                row-gap: 3.2rem;
                flex-direction: row;
            }

            a{
                flex: 0 0 calc(100% / 2 - 2rem / 2);
                transition: scale .3s;
                opacity: 0;
                
                &:hover{
                    scale: 1.025;
                }
                &.is-active{
                    animation: var(--animTypeB);
                }

                .img-area{
                    box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
                }

                .text{
                    margin-top: 1.2rem;
                    text-align: center;
                }
            }
        }
    }
}

/* section-contact */
.section-contact{
    .container{
        padding-top: var(--paddingMain);
        padding-bottom: var(--paddingMain);

        .text{
            text-align: center;
            letter-spacing: .1rem;
            padding-left: .1rem;
            line-height: 2;
            margin-bottom: 6rem;
        }

        form{
            max-width: 80rem;
            margin-inline: auto;

            .field{
                display: flex;
                flex-direction: column;

                @media(min-width: 768px){
                    flex-direction: row;
                }

                & + .field{
                    margin-top: 2.4rem;
                }

                .label{
                    margin-bottom: .4rem;
                    @media(min-width: 768px){
                        margin-bottom: 0;
                        flex: 0 0 18rem;
                        padding-top: .9rem;
                    }

                    .required{
                        color: #dc3232;
                        margin-left: .4rem;
                    }
                }
                .input{
                    flex: 1;
                }
            }

            span.wpcf7-not-valid-tip {
                font-size: 1.2rem;
                font-weight: 700;
                margin-top: .4rem;
            }
            .wpcf7-spinner{
                display: none;
            }
            .wpcf7-response-output{
                border: none;
                padding: 0;
                margin-top: 4rem;
                margin-bottom: 0;
                text-align: center;
                font-size: 1.4rem;
                letter-spacing: .1rem;
                padding-left: .1rem;
            }
            .btn-area{
                margin-top: 4.8rem;
                
                input{
                    font: inherit;
                    border: none;
                    cursor: pointer;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    column-gap: .8rem;
                    background: var(--colorMain);
                    color: var(--colorWhite);
                    padding: 1.6rem 2rem;
                    font-size: 1.4rem;
                    max-width: 24rem;
                    line-height: 1;
                    width: 100%;
                    margin-inline: auto;
                    transition: opacity .3s;

                    &:hover{
                        opacity: .8;
                    }
                }
            }
        }
    }
}

/* with sidebar */
.template-type-b-title-area,
.blog-title-area,
.voice-title-area{
    text-align: center;
    padding: 4rem var(--paddingSide);
    color: var(--colorWhite);
    background: var(--colorGradation);

    .page-title-decoration{
        color: var(--colorSub);
        font-size: clamp(4rem, 4vw, 6rem);
        line-height: 1;
        text-transform: capitalize;
    }
}
.template-type-b-container,
.blog-container,
.voice-container{
    display: flex;
    flex-direction: column;
    column-gap: 2.8rem;
    row-gap: 8rem;
    max-width: var(--widthTypeB);
    margin-inline: auto;
    padding: var(--paddingMain) var(--paddingSide);
    box-sizing: content-box;

    @media(min-width: 999px){
        flex-direction: row;
    }

    .inner{
        flex: 1;

        .blog-list,
        .voice-list{
            display: flex;
            flex-direction: column;
            flex-wrap: wrap;
            column-gap: 2rem;
            row-gap: 2.8rem;

            @media(min-width: 768px){
                flex-direction: row;
            }

            a{
                flex: 0 0 calc(100% / 2 - 1rem);
                display: block;
                background: var(--colorWhite);
                box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
                transition: scale .2s linear;

                &:hover{
                    scale: 1.025;
                }

                .card-thumbnail{
                    img{
                        object-fit: cover;
                        aspect-ratio: var(--aspectThumbnail);
                    }
                    .no-image{
                        aspect-ratio: var(--aspectThumbnail);
                    }
                }

                .text-area{
                    padding: 2rem 2.8rem;

                    .info{
                        display: flex;
                        justify-content: space-between;
                        align-items: center;
                        margin-bottom: 1.2rem;

                        .category{
                            font-size: .75em;
                            background: var(--colorGradationB);
                            padding: .8rem 3.2rem;
                            border-radius: 4rem;
                        }
                        .date{
                            font-size: .9em;
                        }
                    }

                    h3{
                        font-weight: inherit;
                        font-size: var(--fontSizeBase);
                        line-height: 1.75;
                        letter-spacing: .1rem;
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 2;
                        overflow: hidden;
                        text-overflow: ellipsis;
                    }
                }
            }

            & + .pagination{
                margin-top: 6rem;
            }
        }
    }
}

/* category-page */
body.category{
    .category-page-name{
        max-width: var(--widthTypeB);
        margin-inline: auto;
        padding-left: var(--paddingSide);
        padding-right: var(--paddingSide);
        box-sizing: content-box;
        margin-top: calc(var(--paddingMain) / 2);
        display: flex;
        align-items: center;
        justify-content: center;
        column-gap: .8rem;
        color: var(--colorMain);
        font-size: calc(var(--fontSizeBase) * 1.5);
        font-weight: 700;

        &::before,
        &::after{
            content: '';
            display: block;
            border-top: .1rem solid;
            flex: 0 0 3em;
        }
    }
    .blog-container{
        padding-top: calc(var(--paddingMain) / 2);
    }
}

/* related-area */

.related-area{
    margin-top: 6rem;

    h3.related-title {
        padding-bottom: 1.2rem;
        margin-bottom: 2.8rem;
        position: relative;
        font-size: calc(var(--fontSizeBase) * 1.25);

        &::after {
            content: '';
            display: block;
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: .3rem;
            background: linear-gradient(to right, var(--colorMain) 0, var(--colorMain) 25%, var(--colorGray) 25%, var(--colorGray) 100%);
        }
    }

    .inner{
        display: flex;
        flex-direction: column;
        column-gap: 1.6rem;
        row-gap: 2rem;

        @media(min-width: 768px){
            flex-direction: row;
        }

        a{
            flex: 0 0 calc(100% / 3 - 1.6rem * 2 / 3);
            display: block;
            background: var(--colorWhite);
            box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
            transition: scale .2s linear;

            &:hover{
                scale: 1.025;
            }

            .card-thumbnail{
                img{
                    object-fit: cover;
                    aspect-ratio: var(--aspectThumbnail);
                }
                .no-image{
                    aspect-ratio: var(--aspectThumbnail);
                }
            }

            .text-area{
                padding: 2rem 1.2rem;
                font-size: 1.2rem;

                .info{
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    margin-bottom: 1.2rem;

                    .category{
                        font-size: .75em;
                        background: var(--colorGradationB);
                        padding: .8rem 3.2rem;
                        border-radius: 4rem;
                    }
                    .date{
                        font-size: .9em;
                    }
                }

                h3{
                    font-weight: inherit;
                    font-size: inherit;
                    line-height: 1.75;
                    letter-spacing: .1rem;
                    display: -webkit-box;
                    -webkit-box-orient: vertical;
                    -webkit-line-clamp: 2;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }
            }
        }
    }
}

.template-type-b-container,
.blog-container.single-page,
.voice-container.single-page{
    .inner{
        .board{
            background: var(--colorWhite);
            box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
            padding: 4rem 2rem;

            @media(min-width: 768px){
                padding: 4rem;
            }

            .article-info{
                display: flex;
                align-items: center;
                column-gap: 2rem;
                margin-top: 2rem;
                margin-bottom: 2rem;

                .category{
                    font-size: .75em;
                    background: var(--colorGradationB);
                    padding: .8rem 3.2rem;
                    border-radius: 4rem;
                }
                .date{
                    font-size: .9em;
                }
            }
            .article-title + .thumbnail{
                margin-top: 2.8rem;
            }
            .thumbnail{
                img{
                    margin-inline: auto;
                }
                margin-bottom: 4rem;
            }
        }
    }
}

/* page-article */
.page-article{
    h1{
        background: var(--colorMain);
        color: var(--colorWhite);
        font-size: calc(var(--fontSizeBase) * 1.5);
        letter-spacing: .1rem;
        margin-bottom: 2.8rem;
        padding: 1.2rem 1.6rem;
        position: relative;
        /* padding: .4rem 0;
        display: flex;
        flex-direction: column;
        row-gap: .3rem;
        padding-left: 1.6rem;
        padding-right: 1.6rem; */

        &::before,
        &::after{
            content: '';
            position: absolute;
            display: block;
            border-top: .2rem solid var(--colorWhite);
            margin-left: -1.6rem;
            margin-right: -1.6rem;
            left: 0;
            right: 0;
        }
        &::before{
            top: .4rem;
        }
        &::after{
            bottom: .4rem;
        }
    }
    h2{
        background: var(--colorSub);
        padding: 1.2rem 1.6rem;
        line-height: 1.25;
        font-size: calc(var(--fontSizeBase) * 1.25);
        position: relative;
        margin-left: 1rem;
        margin-bottom: 1.4rem;

        &::before{
            content: '';
            position: absolute;
            left: -1rem;
            top: 0;
            bottom: 0;
            width: .5rem;
            background: var(--colorMain);
        }
    }
    h3{
        font-size: calc(var(--fontSizeBase) * 1.15);
        position: relative;
        padding-bottom: .8rem;
        margin-bottom: .8rem;

        &::after{
            content: '';
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: .3rem;
            background: linear-gradient(to right, var(--colorMain) 0, var(--colorMain) 25%, var(--colorGray) 25%, var(--colorGray) 100%);
        }
    }
    p{
        line-height: 2;
        letter-spacing: .2rem;
    }
    .wp-block-table{
        thead{
            border-bottom: none;

            th{
                background: var(--colorSub);
            }
        }
    }
    ul, ol{
        margin-left: 1em;

        li{
            & + li{
                margin-top: .4rem;
            }
        }
    }
    ul{
        li{
            list-style: initial;
        }
    }
    ol{
        li{
            list-style: decimal;
        }
    }
    :is(p, table, figure, ul, ol, img){
        & + :is(h1){
            margin-top: 6rem;
        }
        & + :is(h2){
            margin-top: 4rem;
        }
        & + :is(h3){
            margin-top: 2.8rem;
        }
        & + :is(table, figure, ul, ol, img){
            margin-top: 1.5em;
        }
    }
}

/* footer */
.footer{
    background: var(--colorMain);
    color: var(--colorWhite);
    padding: 4.8rem var(--paddingSide);

    .footer-sns{
        width: fit-content;
        margin-inline: auto;
        margin-bottom: 4rem;

        .sns-items{
            display: flex;
            column-gap: 4.8rem;

            a{
                display: flex;
                align-items: center;
                column-gap: .8rem;
                transition: opacity .3s;

                &:hover{
                    opacity: .8;
                }

                .img-area{
                    max-width: 2.4rem;
                }
            }
        }
    }

    .copyright{
        text-align: center;
        font-size: 1.2rem;
    }
}

/* layer */
.layer{
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: block;
    z-index: 3;
    opacity: 0;
    visibility: hidden;
}

/* line-btn */
.line-btn{
    a{
        display: block;
        padding: 2rem;
        background: #05c756;
        text-align: center;
        color: #fff;
        font-size: 2rem;
        border-radius: .4rem;
        transition: opacity .3s;

        &:hover{
            opacity: .8;
        }
    }
}


/* ez-toc-container */
body #ez-toc-container{
    background: transparent;
    padding: 0;
    border: .2rem solid var(--colorMain);
    border-radius: 0;
    margin: 4rem 0;
    max-width: 100%;
    display: block;
    width: auto;

    @media(min-width: 768px){
        margin: 4rem 2em;
    }

    .ez-toc-title-container{
        display: flex;
        flex-direction: row-reverse;
        justify-content: center;
        align-items: center;
        column-gap: 1.2rem;
        padding: 1.2rem;
        background: var(--colorGradationB);
        color: var(--colorMain);
        
        .ez-toc-title{
            font-weight: 700;
        }
        svg{
            color: var(--colorMain) !important;
            fill: var(--colorMain) !important;
        }

        .ez-toc-js-icon-con{
            border: none;
        }
    }
    nav{
        padding-left: 2rem;
        padding-right: 2rem;

        @media(min-width: 768px){
            padding-left: 4rem;
            padding-right: 4rem;
        }

        & > ul{
            padding-top: 2.8rem;
            padding-bottom: 2.8rem;

            @media(min-width: 768px){
                padding-top: 4rem;
                padding-bottom: 4rem;
            }
        }
        ul{
            li{
                a{
                    color: inherit !important;
                    display: flex;
                    align-items: center;

                    &::before{
                        content: counters(item, '.', decimal);
                        color: var(--colorMain);
                        border-right: .2rem solid;
                        padding-right: .8rem;
                        margin-right: .8rem;
                        font-size: var(--fontSizeBase);
                    }
                }
            }

            &.ez-toc-list-level-1{
                & > li{
                    & + li{
                        margin-top: 1.6rem;
                    }
                    a{
                        font-size: inherit;
                    }
                }
            }
            &.ez-toc-list-level-2{
                margin-top: .4rem;

                & > li{
                    & + li{
                        margin-top: .8rem;
                    }
                }
            }
            &.ez-toc-list-level-3{
                margin-top: .4rem;

                & > li{
                    & + li{
                        margin-top: .4rem;
                    }
                }
            }
        }
    }
}