@charset 'UTF-8';
/* ----------------------------------------------
　PC設定
------------------------------------------------*/
/* load_anime */
.p-loadAnime
{
    position: fixed;
    z-index: 100000;
    top: 0;
    left: 0;

    display: flex;

    width: 100%;
    height: 100%;

    transition: all .5s;
    transform: translateX(0%);

    justify-content: center;
    align-items: center;
}
.p-loadAnime.complate
{
    animation: disnone 1s 0s linear forwards;
}
.p-loadAnime.opacity
{
    background: unset;
}
.p-loadAnime.opacity .load_logo
{
    display: none;
}
.p-loadAnime.reload
{
    z-index: -100 !important;

    display: none !important;

    transform: translateX(-500%) !important;

    opacity: 0 !important;
}
.p-loadAnime__inner
{
    width: 90%;
    max-width: 900px;

    opacity: 0;
}
.p-loadAnime__inner.load
{
    opacity: 1;
}
.p-loadAnime__inner.complate
{
    animation: disnone .5s 0s linear forwards;
}
.p-loadAnime__bg
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    background-color: var(--black);
}
.p-loadAnime__bg::after
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 100%;

    content: '';

    background: url(../images/common/bg01.png) top center/cover no-repeat;

    mix-blend-mode: screen;
}
.p-loadAnime .cls-1
{
    fill: var(--white);
}

@keyframes disnone
{
    0%
    {
        z-index: 100000;

        display: flex;

        transform: translateX(0%);

        opacity: 1;
    }
    99%
    {
        z-index: 100000;

        display: flex;

        transform: translateX(0%);

        opacity: 0;
    }
    100%
    {
        z-index: -100;

        display: none;

        transform: translateX(-500%);

        opacity: 0;
    }
}
.p-mv
{
    position: relative;
}
.p-mv__catch
{
    position: absolute;
    z-index: 10;
    top: 50%;
    left: 0;

    display: flex;
    flex-direction: column;

    width: 100%;

    transform: translateY(-50%);

    align-items: center;
    justify-content: center;
}
.p-mv__main-catch
{
    width: 70%;
    max-width: 536px;
    margin-bottom: 5px;
}
.p-mv__sub-catch
{
    font-size: var(--fs18_26);
    font-weight: 500;

    position: relative;
    z-index: 1;

    width: 100%;
    padding: .25em 0;

    text-align: center;

    color: var(--white);
}
.p-mv__sub-catch::before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 100%;

    content: '';

    opacity: .7;
    background-color: var(--green01);

    mix-blend-mode: multiply;
}
.p-mv__slider
{
    position: relative;
    z-index: 1;
}
.p-mv__slider::after
{
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 100%;

    content: '';

    opacity: .1;
    background-color: var(--black);
}
.p-mv__slide
{
    display: flex;
    overflow: hidden;

    width: 100%;
    height: auto !important;
    max-height: 580px;

    align-items: center;
    justify-content: center;
}
.p-mv__slide img
{
    height: 100%;

    -o-object-fit: cover;

       object-fit: cover;
}
.p-mv__copy
{
    font-size: var(--fs32_80);
    font-weight: bold;
    line-height: 1;

    position: absolute;
    z-index: 10;
    right: 9%;
    bottom: 3%;

    color: var(--white);
}

.p-works
{
    position: relative;
    z-index: 1;

    padding-top: var(--m85);
    padding-bottom: var(--m280);

    background: var(--mainblack);

    clip-path: polygon(0 0, 100% 0%, 100% 100%, 0 calc(100% - var(--m150)));
}
.p-works::after
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 100%;

    content: '';

    background: url(../images/common/bg01.png) top center/cover no-repeat;

    mix-blend-mode: screen;
}
.p-works__title
{
    font-size: var(--fs22_32);
    font-weight: 600;

    margin-bottom: var(--m20);

    text-align: center;

    color: var(--white);
}
.p-works__list
{
    display: flex;

    margin-bottom: var(--m50);

    flex-wrap: wrap;
    grid-gap: var(--m40) 1.13%;
}
.p-works__box
{
    width: 24.1525%;
}
.p-works__link
{
    display: block;
}
.p-works__image
{
    position: relative;
    z-index: 1;

    display: block;

    aspect-ratio: 32/22;
}
.p-works__image::after
{
    position: absolute;
    right: 1.5%;
    bottom: 2%;

    display: inline-block;

    width: 2.8%;

    content: '';
    transition: all .5s;

    background-color: var(--white);

    aspect-ratio: 1/1;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.p-works__image-inner
{
    width: 100%;
    height: 100%;

    clip-path: polygon(100% 0, 100% 85.5%, 90% 100%, 0 100%, 0 0);
}
.p-works__image-inner img
{
    height: 100%;

    -o-object-fit: cover;

       object-fit: cover;
}
.p-works__text
{
    font-size: var(--fs14_20);

    margin-top: 1em;

    color: var(--white);
}
.p-works .c-button
{
    max-width: 200px;
    margin: 0 auto;
}

.p-about
{
    position: relative;
    z-index: 1;

    margin-top: calc(var(--m30) * -1);
    padding-bottom: var(--m120);
}
.p-about::after
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 100%;

    content: '';
    transform: rotate(180deg);

    background: url(../images/common/bg02.png) bottom -50% center/cover no-repeat;
}
.p-about__box
{
    position: relative;
    z-index: 1;

    width: 60%;
    max-width: 600px;
    padding: var(--fs32_80) var(--m50);
}
.p-about__box::before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 100%;

    content: '';

    background-color: rgba(21, 44, 76, .8);

    clip-path: polygon(100% 0, 100% calc(100% - var(--m60)), calc(100% - var(--m60)) 100%, 0 100%, 0 0);
}
.p-about__box::after
{
    position: absolute;
    right: 5px;
    bottom: 5px;

    display: inline-block;

    width: min(2.5%, 12px);

    content: '';

    background-color: rgba(21, 44, 76, .8);

    aspect-ratio: 1/1;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.p-about__box-title
{
    font-size: var(--fs22_32);
    font-weight: 600;

    margin-bottom: var(--m20);

    color: var(--white);
}
.p-about__box-text
{
    font-size: var(--fs14_20);
    font-weight: 500;
    line-height: 2;

    margin-bottom: var(--m60);

    color: var(--white);
}
.p-about__image
{
    display: flex;
    overflow: hidden;

    width: 90.9%;
    margin-top: calc(min(27.26vw, 400px) * -1);
    margin-left: auto;

    aspect-ratio: 120/54;
    align-items: center;
    justify-content: center;
}
.p-about__image img
{
    width: auto;
    max-width: unset;
    height: 108.14%;

    transform: translateX(-2%);
}
.p-about .c-border-bt:not(.c-border-bt + .c-border-bt){
  margin-bottom: var(--m25);
}

.p-service
{
    padding-top: var(--m80);
    padding-bottom: var(--m80);

    background-color: var(--green01);
}
.p-service__inner
{
    display: flex;

    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
}
.p-service__text-area
{
    width: 48%;
}
.p-service__list
{
    width: 50%;
    max-width: -moz-fit-content;
    max-width: fit-content;
    margin-left: auto;
}
.p-service__box
{
    max-width: 550px;
}
.p-service__box:not(:last-of-type)
{
    margin-bottom: var(--m24);
}
.p-service__box-link
{
    position: relative;
    z-index: 1;

    display: flex;
    flex-direction: row-reverse;
}
.p-service__box-link::before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 100%;

    content: '';
    transition: all .5s;

    background-color: var(--white);

    clip-path: polygon(100% 0, 100% calc(100% - var(--m35)), calc(100% - var(--m35)) 100%, 0 100%, 0 0);
}
.p-service__box-link::after
{
    position: absolute;
    right: 0;
    bottom: 0;

    display: inline-block;

    width: min(2.5%, 12px);

    content: '';
    transition: all .5s;

    background-color: var(--white);

    aspect-ratio: 1/1;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.p-service__box-inner
{
    display: flex;
    flex-direction: column;

    width: 78%;
    padding: 0 var(--m40);

    justify-content: center;
}
.p-service__box-sub
{
    font-size: var(--fs14_20);

    color: var(--green01);
}
.p-service__box-text
{
    font-size: var(--fs18_26);
    font-weight: 600;

    color: var(--green01);
}
.p-service__image
{
    overflow: hidden;

    width: 22%;
}
.p-service__image img
{
    height: 100%;

    -o-object-fit: cover;

       object-fit: cover;
}

.p-gallery
{
    position: relative;
    z-index: 1;

    padding-top: var(--m150);
    padding-bottom: var(--m100);
}
.p-gallery::after
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 100%;

    content: '';

    background: url(../images/common/bg02.png) bottom 0 center/cover no-repeat;
}
.p-gallery__top
{
    position: relative;

    display: flex;
    flex-direction: row-reverse;

    margin-bottom: var(--m50);

    justify-content: space-between;
    align-items: center;
}
.p-gallery__top::before
{
    position: absolute;
    bottom: 0;
    left: 50%;

    display: inline-block;

    width: 100vw;
    height: 1px;

    content: '';
    transform: translateX(-50%);

    background-color: var(--black);
}
.p-gallery__top .c-title
{
    line-height: .8;
}
.p-gallery__top-box
{
    display: flex;

    align-items: center;
    grid-gap: var(--m30) var(--m40);
}
.p-gallery__top-box .c-button
{
    width: 200px;
}
.p-gallery__text
{
    font-size: var(--fs22_32);
    font-weight: 600;

    white-space: nowrap;
}
.p-gallery__slider
{
    overflow: hidden;
}
.p-gallery__slide
{
    aspect-ratio: 310/245;
}
.p-gallery__slide-link
{
    display: block;
    overflow: hidden;

    width: 100%;
    height: 100%;
}
.p-gallery__slide img
{
    height: 100%;

    -o-object-fit: cover;

       object-fit: cover;
}

.p-news
{
    margin-bottom: var(--m80);
    padding-top: var(--m90);
    padding-bottom: var(--m70);

    background-color: var(--gray01);
}
.p-news__title
{
    font-size: var(--fs22_32);
    font-weight: 600;
}
.p-news__top
{
    position: relative;

    display: flex;

    margin-bottom: var(--m50);
    padding-bottom: var(--m16);

    justify-content: space-between;
    align-items: center;
}
.p-news__top::before
{
    position: absolute;
    bottom: 0;
    left: 50%;

    display: inline-block;

    width: 100vw;
    height: 1px;

    content: '';
    transform: translateX(-50%);

    background-color: var(--black);
}
.p-news__top .c-button
{
    width: 200px;
}

/* ----------------------------------------------
　PAD以下設定
------------------------------------------------*/
@media all and (min-width: 768px)
{
    .p-works__link:hover .p-works__image::after
    {
        transform: translateX(100%);
    }
    .p-works__link:hover .p-works__image-inner img
    {
        transform: scale(1.1);
    }
    .p-service__box-link:hover::before
    {
        background-color: var(--green01);
    }
    .p-service__box-link:hover::after
    {
        transform: translateX(5px);
    }
    .p-service__box-link:hover .p-service__box-sub,
    .p-service__box-link:hover .p-service__box-text
    {
        color: var(--white);
    }
}
@media all and (max-width: 890px)
{
    .p-works__list
    {
        justify-content: space-between;
    }
    .p-works__box
    {
        width: 48%;
    }
}
@media all and (max-width: 768px)
{
    .p-mv__slide
    {
        aspect-ratio: 3/2;
    }
}
/* ----------------------------------------------
　SP調整
------------------------------------------------*/
@media all and (max-width: 620px)
{
    .p-mv__sub-catch
    {
        font-size: 14px;
    }
    .p-mv__copy
    {
        right: 3%;
    }
    .p-works
    {
        padding-bottom: 60px;

        clip-path: polygon(0 0, 100% 0%, 100% 100%, 0 calc(100% - 50px));
    }
    .p-about
    {
        margin-top: 0;
    }
    .p-about__box
    {
        width: 88%;
    }
    .p-about__box-text
    {
        margin-bottom: 20px;
    }
    .p-about__image
    {
        margin-top: -70%;

        aspect-ratio: 561/765;
    }
    .p-service__text-area
    {
        width: 100%;
    }
    .p-service__list
    {
        width: 100%;
    }
    .p-service__image
    {
        width: 22%;
    }
    .p-gallery__top
    {
        flex-wrap: wrap;
    }
    .p-gallery__top::before
    {
        position: static;

        min-width: 630px;
        margin-bottom: 24px;

        transform: translateX(5vw);

        order: 2;
    }
    .p-gallery__top-box
    {
        width: 100%;
        padding-bottom: 16px;

        order: 1;
        justify-content: space-between;
    }
    .p-gallery__top-box .c-button
    {
        width: 50%;
        max-width: 260px;
    }
    .p-gallery__top .c-title
    {
        margin-left: auto;

        order: 3;
    }
    .p-news__top .c-button
    {
        width: 50%;
        max-width: 260px;
    }
}
