@charset "UTF-8";


@font-face {
    font-family: hgrge;
    src: url("../fonts/HGRGE.woff") format("woff");
}


@keyframes fadeInUpSmall {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
        /* ← デフォは 40px。ここを 10px に */
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInLeftSmall {
    from {
        transform: translate3d(-100px, 0, 0);
        /* デフォは -100% や -300px */
        opacity: 0;
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInLeftSmall {
    animation-name: fadeInLeftSmall;
    animation-duration: 0.5s !important;

}

.fadeInUpSmall {
    animation-name: fadeInUpSmall;
}


.color-white {
    color: #fff !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

/*カーソル*/
.cursor {
    position: fixed;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.2);
    z-index: 1000;
    transition: width 0.3s, height 0.3s;
    transform: translate(0, 0);
    pointer-events: none;
}

/*aタグにホバーした時に見た目変化*/
.cursor.cursor--hover {
    width: 100px;
    height: 100px;
    background: rgba(0, 0, 0, 0.2);
}

@media(max-width: 640px) {
    .cursor {
        display: none;
    }
}
/*ヘッダー*/

.header-contact {
    position: absolute;
    width: 110px;
    height: 85px;
    background-color: #EAC471;
    right: 0;
    top: 0;
}

.header-contact a {
    width: 100%;
    height: 100%;
    letter-spacing: 2px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    color: #fff;
    font-size: 13px;
    font-weight: bold;
    font-family: KozGoPr6N-Bold;
}

.header-contact a::before {
    content: '';
    width: 27px;
    height: 20px;
    background-image: url(../img/common/header_contact.svg);
    background-repeat: no-repeat;
    background-size: contain;
    position: relative;
    margin-bottom: 5px;
}

.header-center {
    padding-right: 110px !important;
}

.header-pt {
    padding-top: 25px !important;
}

@media(max-width: 1300px) {
    .header-contact {
        display: none;
    }

    .navmenu-group {
        padding-right: 130px;
    }

    .header-center {
        padding-right: 0 !important;
    }

    .header-pt {
        padding-top: 0 !important;
    }
}

/*タイトル*/
.ttl__style01-en {
    color: #fff;
    font-size: 80px;
    font-family: "Inter", sans-serif;
    font-weight: 900;
    margin-bottom: 1rem;
}

.ttl__style01-ja {
    color: #fff;
    font-size: 21px;
    font-family: KozGoPr6N-Bold;
    font-weight: bold;
    letter-spacing: 6px;
}

@media(max-width: 640px) {
    .ttl__style01-en {
        font-size: 40px;
    }

    .ttl__style01-ja {
        font-size: 11px;
    }
}

.ttl__style02 {
    margin-bottom: 60px;
}

.ttl__style02-en {
    color: #3E3A39;
    font-size: 80px;
    font-family: "Inter", sans-serif;
    font-weight: 900;
    margin-bottom: 1rem;
}

.ttl__style02-en span {
    color: #6CAA92;
}

.ttl__style02-ja {
    color: #3E3A39;
    font-size: 21px;
    font-family: KozGoPr6N-Bold;
    font-weight: bold;
    letter-spacing: 6px;
}

.ttl__style02-ja span {
    color: #6CAA92;
}

.ttl__style02-yellow {
    color: #EAC471 !important;
}

@media(max-width: 640px) {

    .ttl__style02-en {
        font-size: 40px;
    }

    .ttl__style02-ja {
        font-size: 11px;
    }

    .ttl__style02 {
        margin-bottom: 30px;
    }
}

.ttl__style03 {
    position: relative;
}

.ttl__style03-en {
    font-size: 60px;
    font-family: "Inter", sans-serif;
    font-weight: 900;
    margin-bottom: 1rem;
}

.ttl__style03-ja {
    font-size: 21px;
    font-family: KozGoPr6N-Bold;
    font-weight: bold;
    letter-spacing: 6px;
}

@media(max-width: 640px) {
    .ttl__style03-en {
        font-size: 30px;
    }

    .ttl__style03-ja {
        font-size: 11px;
    }
}

.ttl__style04 {
    font-size: 48px;
    font-family: KozGoPr6N-Bold;
    margin-top: 60px;
    font-weight: bold;
    margin-bottom: 40px;
}

@media(max-width: 640px) {
    .ttl__style04 {
        font-size: 24px;
        margin-top: 30px;
        margin-bottom: 20px;
    }
}

.ttl__style05-en {
    font-size: 60px;
    font-family: "Inter", sans-serif;
    font-weight: 900;
    color: #fff;
    margin-bottom: 1rem;
}

.ttl__style05-ja {
    font-size: 21px;
    font-family: KozGoPr6N-Bold;
    font-weight: bold;
    color: #fff;
    letter-spacing: 6px;
}

@media(max-width: 640px) {
    .ttl__style05-en {
        font-size: 30px;
    }

    .ttl__style05-ja {
        font-size: 11px;
    }
}

.ttl__style06 {
    font-size: 48px;
    font-family: KozGoPr6N-Bold;
    margin-top: 60px;
    font-weight: bold;
    margin-bottom: 40px;
    color: #fff;
}

@media(max-width: 640px) {
    .ttl__style06 {
        font-size: 24px;
        margin-top: 30px;
        margin-bottom: 20px;
    }
}

/*ボタン*/
a:hover {
    cursor: pointer;
}

.btn__style01 {
    color: #fff;
    letter-spacing: 2px;
    width: 230px;
    position: relative;
    display: block;
    padding: 0 25px 10px 25px;
    text-align: center;
    font-size: 16px;
}

.btn__style01::before {
    content: '';
    width: 230px;
    height: 21px;
    position: absolute;
    background-image: url(../img/common/btn_style01.svg);
    background-repeat: no-repeat;
    background-size: contain;
    bottom: 0;
    left: 0;
    transition: all .6s;
}

.btn__style01:hover {
    cursor: pointer;
}

.btn__style01:hover::before {
    left: 20px;
}

.btn__style02 {
    color: #3E3A39;
    letter-spacing: 2px;
    width: 230px;
    position: relative;
    display: block;
    padding: 0 25px 10px 15px;
    text-align: center;
    font-size: 16px;
}

.btn__style02::before {
    content: '';
    width: 230px;
    height: 21px;
    position: absolute;
    background-image: url(../img/common/btn_style02.svg);
    background-repeat: no-repeat;
    background-size: contain;
    bottom: 0;
    left: 0;
    transition: all .6s;
}

.btn__style02:hover {
    cursor: pointer;
}

.btn__style02:hover::before {
    left: 20px;
}

@media(max-width: 640px) {
    .btn__style01 {
        font-size: 14px;
        width: 170px;
    }

    .btn__style01::before {
        width: 170px;
    }

    .btn__style02 {
        font-size: 14px;
        width: 170px;
    }

    .btn__style02::before {
        width: 170px;
    }
}

/*レイアウト*/
.common__links {}

.common__links__item {
    margin-bottom: 50px;
}

.common__links__item:last-child {
    margin-bottom: 0;
}

.common__links__link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.common__links-num {
    position: absolute;
    color: #EAC471;
    font-family: 'hgrge';
    font-size: 18px;
    top: 0;
    left: 0;
    transform: translateY(-100%);
}

.common__links-ja {
    font-family: KozGoPr6N-Bold;
    font-size: 21px;
}

.common__links__link img {
    display: block;
    width: 38px;
    height: 38px;
    margin-right: 20px;
    transition: all .6s;
}

.common__links__link:hover {
    cursor: pointer;
}

.common__links__link:hover img {
    margin-right: 0;
}

@media(max-width: 640px) {
    .common__links__item {
        margin-bottom: 30px;
    }

    .common__links-num {
        font-size: 14px;
    }

    .common__links-ja {
        font-size: 16px;
    }

    .common__links__link img {
        width: 30px;
        height: 30px;
        margin-right: 0;
    }
}

/*お問い合わせ*/
.common-contact {
    background-image: url(../img/common/contact-bg.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    padding: 70px 0;
}

.common-contact-ttl {
    color: #fff;
    font-size: 48px;
    font-family: KozGoPr6N-Bold;
    font-weight: bold;
    margin-top: 50px;
}

.common-contact .btn__style01 {
    margin: 70px 0 0 auto;
}

@media(max-width: 640px) {
    .common-contact {
        padding: 80px 0;
    }

    .common-contact-ttl {
        font-size: 18px;
        margin-top: 30px;
    }

    .common-contact .btn__style01 {
        margin: 40px auto 0 0;
    }
}

/*コンテンツ幅*/
.wrapper01 {
    max-width: 1080px;
    margin: auto;
    position: relative;
}

.wrapper02 {
    max-width: 1920px;
    margin: auto;
    display: flex;
}

.wrapper02-l {
    width: 50%;
    padding-left: 420px;
}

.wrapper02-r {
    width: 50%;
}

@media(max-width: 1920px) {
    .wrapper02-l {
        padding-left: calc(50vw - 540px);
    }
}

@media(max-width: 1080px) {
    .wrapper01 {
        padding: 0 3rem;
    }

    .wrapper02 {
        padding: 0 3rem;
        display: block;
    }

    .wrapper02-l {
        padding-left: 0;
        width: 100%;
    }

    .wrapper02-r {
        width: 100%;
        margin-top: 30px;
    }
}

/*第2階層タイトル*/
.common-ttl {
    margin-top: 170px;
}

.common-ttl .ttl__style02 {
    margin-bottom: 40px;
}

@media(max-width: 640px) {
    .common-ttl {
        margin-top: 100px;
    }

    .common-ttl .ttl__style02 {
        margin-bottom: 20px;
    }
}

/*第2階層アンカーリンク*/
.common-top {
    height: 800px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

.common-top--company {
    position: relative;
}

.common-top--company::before {
    z-index: -1;
    max-height: 800px;
    height: 100%;
    width: 100%;
    background-image: url(../img/company/top-bg.jpg);
    position: absolute;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top center;
    content: '';
}

.common-top--reason {
    background-image: url(../img/reason/top-bg.jpg);
    background-position: top;
}

.common-top--service {
    background-image: url(../img/service/top-bg.jpg);
}

.common-top--project {
    background-image: url(../img/project/top-bg.jpg);
}

.common-top--recruit {
    background-image: url(../img/recruit/top-bg.jpg);
}

.common-top--csr {
    background-image: url(../img/csr/top-bg.jpg);
}

.common-top--blog {
    background-image: url(../img/blog/top-bg.jpg);
}

.common-top--work {
    background-image: url(../img/work/top-bg.jpg);
}


.common-top-breadcrumbs {
    color: #fff;
    font-weight: bold;
    font-size: 13px;
    font-family: KozGoPr6N-Bold;
    padding-top: 20px;
}

.common-top-breadcrumbs a {
    margin-right: 10px;
}

.common-top-breadcrumbs a::after {
    content: '>';
    position: relative;
    margin-left: 10px;
}


.common-top-breadcrumbs a::before {
    transform: rotate(45deg);
}

.common-top-breadcrumbs a::after {
    transform: rotate(-45deg);
}

.common-top .wrapper01 {
    height: 100%;
    position: relative;
}

.common-top-links {
    position: absolute;
    display: flex;
    flex-wrap: wrap;
    padding-right: 70px;
    width: 100%;
    left: 0;
    bottom: 40px;
}

.common-top-item {
    width: calc(100% / 3);
    padding-right: 50px;
    margin-bottom: 40px;
}

.common-top-link {
    font-size: 22px;
    font-family: KozGoPr6N-Bold;
    font-weight: bold;
    padding-bottom: 20px;
    border-bottom: 1px solid #3E3A39;
    width: 100%;
    display: block;
    position: relative;
    padding-left: 10px;
}

.common-top-link--white {
    color: #fff !important;
    border-bottom: 1px solid #fff !important;
}

.common-top-link::before {
    content: '';
    position: absolute;
    width: 30px;
    height: 30px;
    background-image: url(../img/common/arrow-circle.svg);
    transform: rotate(90deg);
    right: 20px;
    top: -3px;
    transition: all .6s;
}

.common-top-link--white::before {
    background-image: url(../img/top/arrow-top.svg) !important;
    transform: rotate(0);
}

.common-top-link:hover::before {
    right: 0;
}

.common-top-ttl {
    color: #fff;
    font-weight: bold;
    line-height: 1.83;
    font-size: 46px;
    font-family: KozGoPr6N-Bold;
    margin-top: 60px;
}

.common-top-sub {
    color: #fff;
    line-height: 2.77;
    font-size: 18px;
    margin-top: 40px;
}

.common-top-en {
    color: #fff;
}

.common-top-main {
    font-weight: bold;
    font-size: 24px;
    color: #fff;
    font-family: KozGoPr6N-Bold;
    margin-top: 30px;
}

@media(max-width: 1080px) {
    .common-top-links {
        padding-right: 20px;
        left: 3rem;
        width: calc(100% - 6rem);
    }

    .common-top-item {
        padding-right: 20px;
    }
}

@media(max-width: 640px) {
    .common-top {
        height: 400px;
        /* height: auto;        
        min-height: 80vw;*/
        padding-top: 1px;
    }

    /* .common-top.common-top--company{
        height: 400px;
    }
    .common-top.common-top--company .common-top-links{
        position: absolute;
    } */

    .common-top.common-top--recruit {
        height: 500px;
    }

    .common-top-breadcrumbs {
        padding-bottom: 10px;
        display: none;
    }

    .common-top-links {
        padding-right: 0;
        justify-content: space-between;
        bottom: 10px;
        /* position: relative; */
    }

    .common-top-item {
        width: calc(50% - 10px);
        margin-bottom: 20px;
    }

    .common-top-item {
        padding-right: 0;
    }

    .common-top-link {
        font-size: 16px;
        padding-bottom: 10px;
    }

    .common-top-link::before {
        right: 0;
        width: 20px;
        height: 20px;
    }

    .common-top-ttl {
        font-size: 24px;
        margin-top: 30px;
    }

    .common-top-sub {
        font-size: 14px;
        margin-top: 15px;
    }

    .common-top-main {
        font-size: 18px;
        margin-top: 20px;
    }
}

/*第2階層レイアウト01*/
.layout01 {
    padding-top: 90px;
    border-top: 2px solid #3E3A39;
}

.layout01.layout01--none {
    border-top: unset;
}

.layout01-mv {
    margin-top: 60px;
}

.layout01-mv img {
    width: 100%;
}

.layout01-sub {
    font-size: 18px;
    margin-top: 50px;
    line-height: 2.77;
}

.layout01__box {
    margin-top: 60px;
    display: flex;
    justify-content: space-between;
    margin-bottom: 100px;
}

.layout01__box-item {
    width: calc(33% - 17px);
}

.layout01__box-item img {
    width: 100%;
}

.layout01__box-txt {
    text-align: center;
    margin-top: 30px;
    font-size: 24px;
    font-family: KozGoPr6N-Bold;
    font-weight: bold;
}

.layout01__box-p {
    margin-top: 30px;
    font-size: 18px;
    line-height: 1.77;
}

.layout01 .slick-prev {
    left: calc(50% - 10px);
    top: auto;
    bottom: -150px;
    width: 56px;
    height: 56px;
    transform: translateX(-100%);
}

.layout01 .slick-next {
    left: 50%;
    top: auto;
    bottom: -150px;
    width: 56px;
    height: 56px;
    left: calc(50% + 10px);
    transform: translateX(0%);
}

.layout01 .slick-prev:before,
.slick-next:before {
    content: '' !important;
    opacity: 1 !important;
    width: 56px;
    height: 56px;
    position: relative;
    display: block;
}

.layout01 .slick-prev:before {
    background-image: url(../img/common/arrow-circle.svg);
    transform: scale(-1, 1);
}

.layout01 .slick-next:before {
    background-image: url(../img/common/arrow-circle.svg);
}

.layout01-black {
    font-size: 21px;
    color: #fff;
    font-weight: bold;
    font-family: KozGoPr6N-Bold;
    background-color: #3E3A39;
    margin-top: 40px;
    padding: 20px;
}

.layout01-yellow {
    font-size: 21px;
    color: #fff;
    font-weight: bold;
    font-family: KozGoPr6N-Bold;
    background-color: #EAC471;
    margin-top: 40px;
    padding: 20px;
}

.layout01__txt {
    margin-top: 20px;
    font-size: 18px;
    padding: 0 20px;
    line-height: 2.77;
}

.layout01__txt-color {
    color: #EAC471;
    font-weight: bold;
    font-family: KozGoPr6N-Bold;
}


@media(max-width: 640px) {
    .layout01 {
        padding-top: 40px;
    }

    .layout01-mv {
        margin-top: 30px;
    }

    .layout01-sub {
        font-size: 14px;
        margin-top: 30px;
    }

    .layout01__box {
        margin-top: 30px;
        margin-bottom: 150px;
    }

    .layout01__box-txt {
        margin-top: 20px;
        font-size: 18px;
    }

    .layout01__box-p {
        margin-top: 20px;
        font-size: 14px;
    }

    .layout01__box-item {
        padding: 0 10px;
    }

    .layout01 .slick-prev {
        bottom: -100px;
    }

    .layout01 .slick-next {
        bottom: -100px;
    }

    .layout01-black {
        font-size: 16px;
        margin-top: 30px;
        padding: 10px;
    }

    .layout01-yellow {
        font-size: 16px;
        margin-top: 30px;
        padding: 10px;
    }

    .layout01__txt {
        margin-top: 10px;
        font-size: 14px;
        padding: 0 10px;
    }
}

/*第2階層レイアウト02*/
.layout02 {
    background-color: #3E3A39;
    padding: 90px 0;
    margin-top: 90px;
    position: relative;
}

.layout02__slider {
    margin-top: 60px;
}

.layout02__slider {
    margin-top: 60px;
    margin-bottom: 150px;
}

.layout02__slider-item {
    position: relative;
    margin: 0 15px;
}

.layout02__slider-item img {
    width: 100%;
}

.layout02__slider-ttl {
    font-size: 22px;
    color: #fff;
    font-weight: bold;
    font-family: KozGoPr6N-Bold;
    margin-top: 20px;
}

.layout02__slider-txt {
    font-size: 18px;
    margin-top: 10px;
    color: #fff;
}

.layout02__slider-num {
    position: absolute;
    display: flex;
    width: 44px;
    height: 44px;
    justify-content: center;
    align-items: center;
    color: #fff;
    background-color: #3E3A39;
    font-family: "Bebas Neue", sans-serif;
    top: 0;
    left: 0;
}

.layout02 .slick-prev {
    left: calc(50% - 10px);
    top: auto;
    bottom: -150px;
    width: 56px;
    height: 56px;
    transform: translateX(-100%);
}

.layout02 .slick-next {
    left: 50%;
    top: auto;
    bottom: -150px;
    width: 56px;
    height: 56px;
    left: calc(50% + 10px);
    transform: translateX(0%);
}

.layout02 .slick-prev:before,
.slick-next:before {
    content: '' !important;
    opacity: 1 !important;
    width: 56px;
    height: 56px;
    position: relative;
    display: block;
}

.layout02 .slick-prev:before {
    background-image: url(../img/top/arrow-down.svg);
    transform: rotate(-90deg);
}

.layout02 .slick-next:before {
    background-image: url(../img/top/arrow-top.svg);
    transform: rotate(-90deg);
}

.layout02-sub {
    color: #fff;
    line-height: 2.77;
    font-size: 18px;
    margin-top: 60px;
}

@media(max-width: 640px) {
    .layout02 {
        padding: 40px 0 100px 0;
        margin-top: 40px;
    }

    .layout02__slider {
        margin-top: 30px;
    }

    .layout02__slider {
        margin-top: 30px;
        margin-bottom: 100px;
    }

    .layout02__slider-ttl {
        font-size: 18px;
    }

    .layout02__slider-txt {
        font-size: 14px;
    }

    .layout02 .slick-prev {
        bottom: -100px;
    }

    .layout02 .slick-next {
        bottom: -100px;
    }

    .layout02-sub {
        margin-top: 30px;
    }
}

/*第2階層レイアウト03*/
.layout03 {
    position: relative;
    padding: 90px 0;
}

.layout03 iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
}

.layout03--last {
    margin-bottom: 90px;
}

@media(max-width: 640px) {
    .layout03 {
        padding: 40px 0;
    }

    .layout03--last {
        margin-bottom: 40px;
    }
}

.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
    content: '';
}

.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
    content: '';
}

a:hover {
    opacity: .7;
}

button:hover {
    opacity: .7 !important;
}

button:hover::before {
    opacity: .7 !important;
}