@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Sanchez&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Shippori+Mincho+B1:wght@400;500;600;700;800&display=swap');
/* case */


/* common */
img {
    vertical-align: top;
    max-width: 100%;
}
header {
    height: auto;
}
#main {
    margin-top: 80px;
    position: relative;
    padding-bottom: 80px;
}

.onlySP {
    display: none;
}

.inner {
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
}


.par-item {
    position: absolute;
    transition: transform 2s cubic-bezier(0.1, 0.5, 0.3, 1);
    pointer-events: none;
    z-index: 0;
}




.sec-chap {
    padding: 50px 0 100px;
}

.ttl-page {
}
.ttl-page span {
    line-height: 1;
}
.ttl-page span.en {
    font-size: 64px;
    letter-spacing: 0;
    color: #3a343a;
    font-weight: 400;
    /* font-family: "Noto Sans JP", sans-serif; */
}

/* sec-chap sp */
@media (max-width: 767px) {
    body {
        width: 100%;
    }
    .sec-chap {
        padding: 40px 20px 60px;
    }
    .ttl-page {
        span.en {
           font-size: 45px;
       }
    }
}



.sec-case {
    padding: 0 0 165px;
}
.sec-case .inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
}


.sec-case .inner .box-foo {
    flex: 1;
}

.sec-case .inner .list-case {
    display: flex;
    flex-wrap: wrap;
    gap: 80px 30px;
    flex: 1;
}
.sec-case .inner .list-case .item-case {
    width: calc(50% - 15px);
}
.sec-case .inner .list-case .item-case a {
    display: block;
}
.sec-case .inner .list-case .item-case a:hover {
    opacity: .6;
}
.sec-case .inner .list-case .item-case a figure {
    overflow: hidden;
    height: 0;
    padding-top: 74.1%;
    max-width: 348px;
    max-height: 300px;
    width: 100%;
    position: relative;
}
.sec-case .inner .list-case .item-case a figure img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.sec-case .inner .list-case .item-case a .elem-txt {
    padding: 40px 0 0;
}
.sec-case .inner .list-case .item-case a .elem-txt .ttl-post,
.sec-case .inner .list-case .item-case a .elem-txt .txt-ex {
    color: #3a343a;
    letter-spacing: .04em;
    line-height: 1.75;
}
.sec-case .inner .list-case .item-case a .elem-txt .ttl-post {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 10px;
}
.sec-case .inner .list-case .item-case a .elem-txt .txt-ex {
    font-size: 12px;
    font-weight: 400;
}
.sec-case .inner .pagination {
    width: 70%;
    margin: 100px 0 0 auto;

    .nav-links {
        display: flex;
        justify-content: space-between;

        .page-numbers {
            display: none;

            &.next, &.prev {
                margin-left: auto;
                font-family: 'Sanchez', serif;
                color: #3a343a;
                display: flex;
                width: 181px;
                height: 100%;
                font-size: 16px;
                letter-spacing: .02em;
                padding-bottom: 10px;
                justify-content: flex-start;
                align-items: center;
                position: relative;
                transition: all .4s ease-in-out;

                &::before {
                    content: "";
                    width: 8px;
                    height: 1px;
                    display: block;
                    background-color: #1a1a1a;
                    position: absolute;
                    bottom: 2px;
                    right: 0;
                    transition: all .4s ease-in-out;
                    transform: rotate(35deg);
                }
                &::after {
                    content: "";
                    width: 100%;
                    height: 1px;
                    display: block;
                    background-color: #1a1a1a;
                    position: absolute;
                    bottom: 0;
                    right: 0;
                    transition: all .4s ease-in-out;
                }
                &:hover {
                    opacity: .6;
                }
                &:hover::before,
                &:hover::after {
                    right: -10px;
                }
            }

            &.prev {
                margin-left: 0;
                margin-right: auto;
                justify-content: flex-end;

                &::before {
                    right: auto;
                    left: 0;
                    transform: rotate(-35deg);
                }
                &::after {
                    left: 0;
                    right: auto;
                }

                &:hover::before,
                &:hover::after {
                    right: auto;
                    left: -10px;
                }
            }

        }
    }
}

.case-btn {
    width: 100%;
    display: flex;
    justify-content: center;
    padding-top: 100px;
    max-width: 840px;
    margin-left: auto;

    .box-btn {
        width: 225px;
    }
}



/* カテゴリ */
.sec-case .inner .box-cat {
    width: 30%;
    top: 80px;
    position: sticky;
}
.sec-case .inner .box-cat .ttl-cat {
    font-size: 13px;
    font-weight: 600;
    color: #b0aeb0;
}
.sec-case .inner .box-cat .list-cat {
    display: flex;
    flex-direction: column;
    padding-left: 1em;
    margin-bottom: 2em;
}
.sec-case .inner .box-cat .list-cat .item-cat {
    position: relative;
}
.sec-case .inner .box-cat .list-cat .item-cat a,
.sec-case .inner .box-cat .list-cat .item-cat .txt-parent {
    color: #b0aeb0;
    font-size: 12px;
}
.sec-case .inner .box-cat .list-cat .item-cat a:hover {
    color: #3a343a;
}
.sec-case .inner .box-cat .list-cat .item-cat .txt-parent,
.sec-case .inner .box-cat .list-cat .item-cat .dot {
    position: relative;
    display: inline-block;
    cursor: pointer;
}
.sec-case .inner .box-cat .list-cat .item-cat .txt-parent::before,
.sec-case .inner .box-cat .list-cat .item-cat .dot::before {
    content: "";
    width: 4px;
    height: 4px;
    background-color: #b0aeb0;
    display: block;
    position: absolute;
    left: -1em;
    top: 50%;
    margin-top: -2px;
    border-radius: 5px;
    pointer-events: none;
}
.sec-case .inner .box-cat .list-cat .item-cat .txt-parent::after {
    content: "";
    width: 8px;
    height: 3px;
    background: transparent url(../images/case/icon_acc.svg) center center / 8px 3px no-repeat;
    display: block;
    position: absolute;
    right: -3em;
    top: 50%;
    margin-top: -1.5px;
    transition: all .4s ease-in-out;
    pointer-events: none;
}
.sec-case .inner .box-cat .list-cat .item-cat .list-cat-child {
    display: none;
}
.sec-case .inner .box-cat .list-cat .item-cat .txt-parent.open::after {
    transform: rotate(180deg);
}
.sec-case .inner .box-cat .list-cat .item-cat.active a {
    color: #3a343a;
}


/* sec-case sp */
@media (max-width: 767px) {
    .sec-case {
        padding: 0 20px 60px;
    }
    .sec-case .inner {
        justify-content: space-between;
        flex-direction: column;
        gap: 0;
    }
    .sec-case .inner .list-case {
        flex-direction: column;
        gap: 30px 0;
        width: 100%;
        order: 1;
    }
    .sec-case .inner .list-case .item-case {
        width: 100%;
    }
    .sec-case .inner .list-case .item-case a:hover {
        opacity: 1;
    }
    .sec-case .inner .list-case .item-case a figure {
        padding-top: 49%;
        max-width: 100%;
    }

    .sec-case .inner .list-case .item-case a .elem-txt {
        padding: 20px 0 0;
    }
    .sec-case .inner .list-case .item-case a .elem-txt .ttl-post,
    .sec-case .inner .list-case .item-case a .elem-txt .txt-ex {
        letter-spacing: .02em;
        line-height: 1.45;
    }
    .sec-case .inner .list-case .item-case a .elem-txt .ttl-post {
        font-size: 16px;
        margin-bottom: 10px;
    }
    .sec-case .inner .list-case .item-case a .elem-txt .txt-ex {
        font-size: 12px;
    }


    /* カテゴリ */
    .sec-case .inner .box-cat {
        width: 100%;
        margin-top: 60px;
        order: 4;
    }
    .sec-case .inner .box-cat .ttl-cat {
        font-size: 14px;
    }
    .sec-case .inner .box-cat .list-cat {
        flex-direction: row;
        padding-left: 1em;
        margin-bottom: 30px;
        flex-wrap: wrap;
        gap: 20px 2em;
    }
    .sec-case .inner .box-cat .list-cat .item-cat a,
    .sec-case .inner .box-cat .list-cat .item-cat .txt-parent {
        font-size: 14px;
    }

    .sec-case .inner .pagination {
        order: 2;
        margin: 60px 0 0 auto;
    }

    .case-btn {
        padding-right: 0;
        padding-top: 60px;
        order: 3;
        justify-content: flex-end;
    }
}












.sec-open {
    padding: 220px 0 295px;
    background: transparent url(../images/case/bg_open.png) center center / 100% 100% no-repeat;
}
.sec-open .inner {
    max-width: 1100px;
    width: 100%;
    margin: 0 5% 0 auto;
}
.sec-open .inner .slide-open {
    overflow: hidden;
    position: relative;
}
.sec-open .inner .slide-open .ttl-open {
    margin: 0 0 62px;
    display: flex;
    flex-direction: column;
    gap: 13px 0;
}
.sec-open .inner .slide-open .ttl-open span {
    line-height: 1;
    color: #3a343a;
    letter-spacing: .04em;
}
.sec-open .inner .slide-open .ttl-open span.en {
    font-size: 12px;
    font-weight: 400;
}
.sec-open .inner .slide-open .ttl-open span.ja {
    font-size: 28px;
    font-weight: 600;
}
.sec-open .inner .slide-open .swiper-button-prev,
.sec-open .inner .slide-open .swiper-button-next {
    position: absolute;
    top: 10px;
    right: 35px;
    left: auto;
    width: 40px;
    height: 40px;
    margin: 0;
    background: transparent url(../images/case/icon_slide-l.svg) center center / 39px 39px no-repeat;
    transition: all .4s ease-in-out;
}
.sec-open .inner .slide-open .swiper-button-prev {
    right: 90px;
}
.sec-open .inner .slide-open .swiper-button-next {
    background: transparent url(../images/case/icon_slide-r.svg) center center / 39px 39px no-repeat;
}
.sec-open .inner .slide-open .swiper-button-prev::after,
.sec-open .inner .slide-open .swiper-button-next::after {
    content: none;
}
.sec-open .inner .slide-open .swiper-button-prev:hover,
.sec-open .inner .slide-open .swiper-button-next:hover {
    opacity: .6;
}
.sec-open .inner .slide-open .swiper-slide a {
    display: flex;
    width: 100%;
    height: 100%;
    flex-direction: column;
}
.sec-open .inner .slide-open .swiper-slide a:hover figure {
    opacity: .6;
}
.sec-open .inner .slide-open .swiper-slide a figure {
    width: 100%;
    height: 0;
    padding-top: 110%;
    position: relative;
    overflow: hidden;
    transition: all .4s ease-in-out;
}
.sec-open .inner .slide-open .swiper-slide a figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
.sec-open .inner .slide-open .swiper-slide a .elem-txt {
    padding: 24px 0 0;
}
.sec-open .inner .slide-open .swiper-slide a .elem-txt .ttl-post {
    font-size: 16px;
    letter-spacing: .04em;
    line-height: 1.75;
    font-weight: 600;
    margin-bottom: 8px;
}
.sec-open .inner .slide-open .swiper-slide a .elem-txt .txt-cat {
    font-size: 11px;
    letter-spacing: .04em;
    line-height: 1;
    font-weight: 400;
    padding: 4px 10px;
    border-radius: 50px;
    border: 1px solid #3a343a;
    color: #3a343a;
    display: inline-block;
    margin-bottom: 18px;
}
.sec-open .inner .slide-open .swiper-slide a .elem-txt .txt-cat.state {
    background-color: #3a343a;
    color: #ffffff;
}
.sec-open .inner .slide-open .swiper-slide a .elem-txt .c-fields {
    border-top: 1px solid #b0aeb0;
    padding-top: 14px;
}
.sec-open .inner .slide-open .swiper-slide a .elem-txt .c-fields dl {
    display: flex;
    margin-bottom: 8px;
}
.sec-open .inner .slide-open .swiper-slide a .elem-txt .c-fields dl dt,
.sec-open .inner .slide-open .swiper-slide a .elem-txt .c-fields dl dd {
    font-size: 11px;
    letter-spacing: .04em;
    line-height: 1.72;
}

.sec-open .inner .box-btn {
    margin: 100px 0 0 auto;
}


/* sec-open sp */
@media (max-width: 767px) {
    .sec-open {
        padding: 100px 0 150px;
        background: transparent url(../images/case/bg_open.png) center center / 100% 100% no-repeat;
        overflow: hidden;
    }
    .sec-open .inner {
        max-width: 1100px;
        width: 100%;
        margin: 0 auto;
    }
    .sec-open .inner .slide-open {
        overflow: hidden;
        position: relative;
    }
    .sec-open .inner .slide-open .ttl-open {
        margin: 0 0 60px;
        padding: 0 20px;
        gap: 10px 0;
    }
    .sec-open .inner .slide-open .ttl-open span {
        letter-spacing: .02em;
    }
    .sec-open .inner .slide-open .ttl-open span.en {
        font-size: 12px;
    }
    .sec-open .inner .slide-open .ttl-open span.ja {
        font-size: 24px;
    }
    .sec-open .inner .slide-open .swiper-button-prev,
    .sec-open .inner .slide-open .swiper-button-next {
        position: absolute;
        top: 50px;
        right: 20px;
    }
    .sec-open .inner .slide-open .swiper-button-prev {
        right: 75px;
    }
    .sec-open .inner .slide-open .swiper-button-prev:hover,
    .sec-open .inner .slide-open .swiper-button-next:hover {
        opacity: 1;
    }
    .sec-open .inner .slide-open .swiper-slide a:hover figure {
        opacity: 1;
    }
    .sec-open .inner .slide-open .swiper-slide a figure {
        padding-top: 60%;
    }
    .sec-open .inner .slide-open .swiper-slide a .elem-txt {
        padding: 15px 0 0;
    }
    .sec-open .inner .slide-open .swiper-slide a .elem-txt .ttl-post {
        font-size: 16px;
        letter-spacing: .02em;
        line-height: 1.45;
    }
    .sec-open .inner .slide-open .swiper-slide a .elem-txt .txt-cat {
        letter-spacing: .02em;
    }
    .sec-open .inner .slide-open .swiper-slide a .elem-txt .c-fields {
        border-top: 1px solid #b0aeb0;
        padding-top: 14px;
    }
    .sec-open .inner .slide-open .swiper-slide a .elem-txt .c-fields dl {
        display: flex;
        margin-bottom: 8px;
    }
    .sec-open .inner .slide-open .swiper-slide a .elem-txt .c-fields dl dt,
    .sec-open .inner .slide-open .swiper-slide a .elem-txt .c-fields dl dd {
        font-size: 11px;
        letter-spacing: .04em;
        line-height: 1.72;
    }

    .sec-open .inner .box-btn {
        margin: 60px 20px 0 auto;
    }
}



.sec-bnr {
    padding: 65px 0 130px;
}
.sec-bnr .inner {
    max-width: 1100px;
    width: 100%;
    margin: 0 5% 0 auto;
}
.sec-bnr .inner .ttl-bnr {
    margin: 0 0 75px;
    display: flex;
    flex-direction: column;
    gap: 13px 0;
}
.sec-bnr .inner .ttl-bnr span {
    line-height: 1;
    color: #3a343a;
    letter-spacing: .04em;
}
.sec-bnr .inner .ttl-bnr span.en {
    font-size: 12px;
    font-weight: 400;
}
.sec-bnr .inner .ttl-bnr span.ja {
    font-size: 28px;
    font-weight: 600;
}
.sec-bnr .inner .list-bnr {
    display: flex;
    flex-direction: column;
    gap: 65px 0;
}
.sec-bnr .inner .list-bnr a {
    transition: all .4s ease-in-out;
    pointer-events: none;
}
.sec-bnr .inner .list-bnr a:hover {
    opacity: .6;
}

/* sec-bnr sp */
@media (max-width: 767px) {
    .sec-bnr {
        padding: 40px 20px 60px;
    }
    .sec-bnr .inner {
        margin: 0 auto;
    }
    .sec-bnr .inner .list-bnr {
        gap: 20px 0;
    }
    .sec-bnr .inner .list-bnr a:hover {
        opacity: 1;
    }
}


















.sec-more {
    padding: 120px 0 130px;
    position: relative;
}
.sec-more .par-item {
    position: absolute;
    transition: transform 2s cubic-bezier(0.1, 0.5, 0.3, 1);
}
.sec-more .par-item.par1 {
    width: 9.76%;
    left: -1%;
    top: -42%;
    z-index: 1;
}
.sec-more .par-item.par2 {
    width: 9.53%;
    left: 4.5%;
    top: 125%;
}
.sec-more .par-item.par3 {
    width: 12.23%;
    right: 6%;
    top: -33.5%;
    z-index: 1;
}
.sec-more .inner {
    margin: 0 auto;
    width: 70%;
}
.sec-more .ttl-more {
    position: relative;
    display: flex;
    flex-direction: column;
    margin-bottom: 40px;
    align-items: flex-start;
    gap: 10px 0;
}
.sec-more .ttl-more span {
    line-height: 1;
    color: #3e3a39;
}
.sec-more .ttl-more .en {
    font-size: 48px;
    letter-spacing: .06em;
}
.sec-more .ttl-more .ja {
    font-size: 12px;
    letter-spacing: .3em;
    font-weight: bold;
}
.sec-more .list-more {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: space-between;
}
.sec-more .list-more li {
    width: calc(50% - 5px);
    overflow: hidden;
}
.sec-more .list-more li.half {
    display: flex;
    gap: 0 10px;
}
.sec-more .list-more li.half a {
    width: calc(50% - 5px);
}
.sec-more .list-more li.half .link-staff {
    border: 1px solid #000000;
    box-sizing: border-box;
    overflow: hidden;
}
.sec-more .list-more li.half .link-staff .ttl-more {
    left: 5.24%;
}
.sec-more .list-more li.half .link-staff .ttl-more span {
    color: #231815;
    text-shadow: 0 0 1px rgba(255, 255, 255, .3);
    line-height: 1;
    transition: all .4s ease-in-out;
}
.sec-more .list-more li a {
    display: block;
    position: relative;
}
.sec-more .list-more li a img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    transition: all .4s ease-in-out;
    z-index: 0;
}
.sec-more .list-more li a:hover img {
    transform: scale(1.05);
}
.sec-more .list-more li a .ttl-more {
    position: absolute;
    top: 50%;
    left: 10.44%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.sec-more .list-more li a .ttl-more span {
    color: #ffffff;
    text-shadow: 0 0 1px rgba(0, 0, 0, .3);
    line-height: 1;
    transition: all .4s ease-in-out;
}
.sec-more .list-more li a .ttl-more .en {
    font-size: 31px;
    letter-spacing: .04em;
}
.sec-more .list-more li a .ttl-more .ja {
    font-size: 12px;
    letter-spacing: .1em;
}
.sec-more .list-more li a:hover .ttl-more span {
    opacity: .4;
}



/* sp */
@media (max-width: 767px) {
    .sec-more {
        padding: 40px 20px 40px;
    }
    .sec-more .par-item {
        display: none;
    }
    .sec-more .inner {
        margin: 0 auto;
        width: 100%;
    }
    .sec-more .ttl-more {
        margin-bottom: 20px;
    }
    .sec-more .ttl-more .en {
        font-size: 32px;
        letter-spacing: .03em;
    }
    .sec-more .ttl-more .ja {
        font-size: 12px;
        letter-spacing: .15em;
    }
    .sec-more .list-more {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        justify-content: space-between;
    }
    .sec-more .list-more li {
        width: 100%;
    }
    .sec-more .list-more li.half {
        display: flex;
        gap: 0 10px;
    }
    .sec-more .list-more li.half a {
        width: calc(50% - 5px);
    }
    .sec-more .list-more li a .ttl-more {
        left: 20px;
        align-items: flex-start;
    }
    .sec-more .list-more li a .ttl-more .en {
        font-size: 26px;
        letter-spacing: 0;
        font-weight: normal;
        margin-bottom: 7px;
    }
    .sec-more .list-more li a .ttl-more .ja {
        font-size: 11px;
        letter-spacing: .05em;
    }
}


































































/* sp */
@media (max-width: 767px) {
    #main {
        padding-top: 60px;
        margin-top: 0;
    }

    .onlyPC {
        display: none;
    }
    .onlySP {
        display: block;
    }






}
