@charset "utf-8";


/************************************************************************************************
* MV
************************************************************************************************/

/**************************************************************
* mv
**************************************************************/
.mv {
  position: relative;
	width: 100%;
  height: 100vh;
}
@media all and (min-width: 768px) {}
@media all and (max-width: 767px) {}

/* c-outer
**************************************************************/
.mv .c-outer {}

/* mv-list item__contents
**************************************************************/
.mv-list .item__contents {
  position: relative;
  background-color: var(--base-bg-color);
}


/* mv-list item__photo
**************************************************************/
.mv-list .item__photo {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100vh;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
@media all and (min-width: 768px) {
  .mv-list .item__photo {}
}
@media all and (min-width: 1921px) {
  .mv-list .item__photo {}
}
@media all and (max-width: 767px) {
  .mv-list .item__photo {
    position: absolute;
    top: 0;
    left: 0;
  }
}

/* item__photo-bg
********************************/
.mv-list .item__photo-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  margin: auto;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.mv-list .--01 .item__photo-bg {
	background-image: url(../img/top/mv/main_01.jpg);
}
.mv-list .--02 .item__photo-bg {
	background-image: url(../img/top/mv/main_02.jpg);
}
.mv-list .--03 .item__photo-bg {
  background-image: url(../img/top/mv/main_03.jpg);
}
.mv-list .item__photo-bg::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media all and (min-width: 768px) {
  .mv-list .item__photo-bg {
  }
}
@media all and (max-width: 767px) {
  .mv-list .item__photo-bg {
  }
}


/* mv-cp-container
**************************************************************/
.mv-cp-container {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
}
@media all and (min-width: 768px) {
  .mv-cp-container {
    width: 70.833%;
    min-width: 70rem;
    margin: 0 auto -130px;
  }
}
@media all and (min-width: 1921px) {
  .mv-cp-container {
    margin: 0 auto -130px;
  }
}
@media all and (max-width: 767px) {
  .mv-cp-container {
    width: 88%;
    margin: 0 auto -16vw;
  }
}


/* mv-cp-main
********************************/
.mv-cp-main .mv-cp__inner {
  line-height: 2;
}
.mv-cp-main .mv-cp__inner {
  display: block;
  color: var(--main-font-color);
}
.mv-cp-main .mv-cp__inner.--01 {
  color: #fff;
}
.mv-cp-main .mv-cp__inner.--st {
  color: var(--base-font-color);
}
@media all and (min-width: 768px) {
  .mv-cp-main {
    font-size: 7.2rem;
  }
  .mv-cp-main .mv-cp__inner .mv-cp__inner-sm {
    font-size: 3.6rem;
  }
  .mv-cp-main .mv-cp__inner .mv-cp__inner-sm.--01 {
    margin-left: 4.5rem;
  }
  .mv-cp-main .mv-cp__inner .mv-cp__inner-sm.--02 {
    margin-right: 4.5rem;
  }
}
@media all and (min-width: 1921px) {}
@media all and (max-width: 767px) {
  .mv-cp-main {
    font-size: 8vw;
  }
  .mv-cp-main .mv-cp__inner .mv-cp__inner-sm {
    font-size: 4vw;
  }
  .mv-cp-main .mv-cp__inner .mv-cp__inner-sm.--02 {
    margin-right: 2rem;
  }
}


/* mv-subImg-container
**************************************************************/

/* list__item
********************************/
.mv-subImg-list .list__item {
  opacity: .1;
  height: 0;
  position: absolute;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.mv-subImg-list .list__item.--01 {
  background-image: url(../img/top/mv/sub_01.jpg);
}
.mv-subImg-list .list__item.--02 {
  background-image: url(../img/top/mv/sub_02.jpg);
}
.mv-subImg-list .list__item.--03 {
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto 0;
  background-color: rgb(255 255 255);
}
@media all and (min-width: 768px) {
  .mv-subImg-list .list__item {
    z-index: 1;
  }
  .mv-subImg-list .list__item.--01 {
    top: 0;
    left: 0;
    width: 26.0416%;
    margin-top: 4rem;
    padding-top: 16.1458%;
  }
  .mv-subImg-list .list__item.--02 {
    top: 0;
    right: 0;
    width: 41.666%;
    margin: calc(100vh - 11.458%) 15.625% 0 0;
    padding-top: 23.4375%;
  }
  .mv-subImg-list .list__item.--03 {
    width: 22rem;
    padding-top: 45rem;
  }
}
@media all and (min-width: 1921px) {
  .mv-subImg-list .list__item.--01 {
    width: 50rem;
    padding-top: 31rem;
  }
  .mv-subImg-list .list__item.--02 {
    width: 80rem;
    margin: calc(100vh - 11.458%) 30rem 0 0;
    padding-top: 45rem;
  }
}
@media all and (max-width: 767px) {
  .mv-subImg-list .list__item {
    z-index: 1;
  }
  .mv-subImg-list .list__item.--01 {
    top: 0;
    left: 0;
    width: 40%;
    margin-top: 2rem;
    padding-top: 24.8%;
  }
  .mv-subImg-list .list__item.--02 {
    top: 0;
    left: 0;
    right: 0;
    width: 53.333%;
    margin: calc(100vh - 19.2%) auto 0;
    padding-top: 29.866%;
  }
  .mv-subImg-list .list__item.--03 {
    width: 6rem;
    padding-top: 22rem;
  }
}


/* mv-logo-container
**************************************************************/

/* mv-logo
********************************/
@media all and (min-width: 768px) {
  .mv-logo {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 3;
    width: 24rem;
    margin: 0 6.25% 6.927% 0;
  }
}
@media all and (max-width: 767px) {}



/************************************************************************************************
* INTRO
************************************************************************************************/

/**************************************************************
* intro
**************************************************************/

/* intro-contents
**************************************************************/
.intro-contents {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  position: relative;
  margin: 0 auto;
}
.intro-contents::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: .1rem;
  height: 0;
  padding-top: 18rem;
  background-color: #444;
}
@media all and (min-width: 768px) {
  .intro-contents {
    width: 86.904%;
    padding-top: 25.4rem;
  }
  .intro-contents::before {
    margin-left: 16.8rem;
    padding-top: 18rem;
  }
}
@media all and (max-width: 767px) {
  .intro-contents {
    width: 92%;
    padding-top: 18rem;
  }
  .intro-contents::before {
    right: 0;
    margin: 0 auto;
    padding-top: 10rem;
  }
}

/* intro-head
********************************/
@media all and (min-width: 768px) {
  .intro-head {
    display: flex;
    flex-wrap: wrap;
    width: 60rem;
  }
}
@media all and (max-width: 767px) {}

/* intro-ttl / intro-lead
********************************/
.intro-ttl {
  font-weight: bold;
}
.intro-ttl,
.intro-lead
{
  line-height: 2;
}
@media all and (min-width: 768px) {
  .intro-ttl {
    font-size: 1.2rem;
  }
  .intro-lead {
    margin-left: 6rem;
    font-size: 1.8rem;
  }
}
@media all and (max-width: 767px) {
  .intro-ttl {
    font-size: 1.1rem;
  }
  .intro-lead {
    font-size: 1.5rem;
  }
}

/* intro-end
********************************/
.intro-end {
  display: flex;
  justify-content: end;
}
@media all and (min-width: 768px) {
  .intro-end {
    width: calc(100% - 60rem);
    margin-top: 10rem;
  }
}
@media all and (min-width: 768px) and (max-width: 1023px) {
  .intro-end {
    width: 100%;
  }
}
@media all and (max-width: 767px) {
  .intro-end {
    width: 100%;
    margin-top: 6rem;
  }
}

/* intro-des
********************************/
.intro-des {
  line-height: 1.5;
}
@media all and (min-width: 768px) {
  .intro-des {
    font-size: 1rem;
  }
}


/************************************************************************************************
* NEWS
************************************************************************************************/

/**************************************************************
* news
**************************************************************/
.news {
  background-color: #FFFBF5;
}
@media all and (min-width: 768px) {
  .news {
    padding: 12rem 0;
  }
}
@media all and (max-width: 767px) {
  .news {
    padding: 4rem 0;
  }
}


/* c-btn
**************************************************************/
@media all and (min-width: 768px) {
  .news .c-btn {
    margin-top: 2rem;
  }
}



/************************************************************************************************
* CONCEPT
************************************************************************************************/

/**************************************************************
* concept
**************************************************************/
@media all and (min-width: 768px) {
  .concept.c-section {
    height: 100vh;
  }
}
@media all and (max-width: 767px) {
}

/* c-outer
**************************************************************/
.concept .c-outer {
  position: static;
}

/* concept-head-wrapper
**************************************************************/
.concept-head-wrapper {
  position: relative;
  z-index: 1;
  background-color: rgb(255 255 255 / .1);
}
@media all and (min-width: 768px) {
  .concept-head-wrapper {
    width: 50rem;
    margin-left: 12rem;
    padding: 8rem 0;
  }
}
@media all and (max-width: 767px) {
  .concept-head-wrapper {
    width: 88%;
    margin: 0 auto;
    padding: 4rem 0;
  }
}


/* c-concept-container
**************************************************************/

/* concept-bg
**************************************************************/
.concept-bg {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 0;
  background-image: url(../img/top/concept/main.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media all and (min-width: 768px) {
  .concept-bg {
    width: 81.25%;
    height: 100%;
    margin-left: 24rem;
  }
}
@media all and (max-width: 767px) {
  .concept-bg {
    width: calc(100% - 4rem);
    height: 100%;
    margin-left: 4rem;
  }
}


/* concept-mainTtl-container
**************************************************************/
.concept-mainTtl-container {
  z-index: 1;
}
@media all and (min-width: 768px) {
  .concept-mainTtl-container {
    position: absolute;
    top: 0;
    right: 0;
    margin: 10rem 13.095% 0 0;
  }
}
@media all and (min-width: 768px) and (max-width: 1023px) {
  .concept-mainTtl-container {
    position: relative;
    margin: 0 0 0;
  }
}
@media all and (max-width: 767px) {
  .concept-mainTtl-container {
    position: relative;
    padding: 0 2rem;
  }
}

/* concept-mainTtl
********************************/
.concept-mainTtl__inner {
  color: #fff;
  letter-spacing: 1rem;
}
@media all and (min-width: 768px) {
  .concept-mainTtl {
    display: flex;
    flex-direction: row-reverse;
    font-size: 2.8rem;
  }
  .concept-mainTtl__inner {
    display: inline-block;
    writing-mode: vertical-rl;
    padding: 0 1rem;
    border-left: .1rem solid #fff;
  }
  .concept-mainTtl__inner + .concept-mainTtl__inner {
    margin-right: 3rem;
  }
}
@media all and (max-width: 767px) {
  .concept-mainTtl {
    font-size: 1.8rem;
  }
  .concept-mainTtl__inner {
    line-height: 2;
    border-bottom: .1rem solid #fff;
  }
  .concept-mainTtl__inner + .concept-mainTtl__inner {
    margin-top: 2rem;
  }
}


/* concept-subTtl-container
**************************************************************/
.concept-subTtl-container {
  z-index: 1;
}
@media all and (min-width: 768px) {
  .concept-subTtl-container {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 30rem;
    margin: 0 24.404% 8rem 0;
  }
}
@media all and (min-width: 768px) and (max-width: 1023px) {
  .concept-subTtl-container {
    position: relative;
    margin: 6rem 0 0 2rem;
  }
}
@media all and (max-width: 767px) {
  .concept-subTtl-container {
    position: relative;
    margin: 6rem 0 0 2rem;
  }
}

/* concept-subTtl
********************************/
.concept-subTtl__inner {
  display: inline-block;
  padding: 1rem 2rem;
  color: var(--base-font-color);
  background-color: var(--base-bg-color);
}
.concept-subTtl__inner + .concept-subTtl__inner {
  margin-top: 1rem;
}
@media all and (min-width: 768px) {
  .concept-subTtl {
    font-size: 1.8rem;
  }
}
@media all and (max-width: 767px) {
  .concept-subTtl {
    display: flex;
    flex-wrap: wrap;
    justify-content: end;
    font-size: 1.4rem;
  }
}



/************************************************************************************************
* PRODUCTS
************************************************************************************************/

/**************************************************************
* products
**************************************************************/
.products.c-section {}



/************************************************************************************************
* COMMITMENT
************************************************************************************************/

/**************************************************************
* commitment
**************************************************************/
.commitment.c-section {
  background-color: var(--accent-color-02);
}

/* c-head-container
**************************************************************/
@media all and (min-width: 768px) {
  .commitment .c-head-container .c-head-vl-2,
  .commitment .c-head-container .c-head-vl-2__inner
  {
    text-align: center;
  }
}


/**************************************************************
* c-commitment-wrapper
**************************************************************/
.c-commitment-wrapper {
  position: relative;
}


/* c-commitment-container
**************************************************************/

/* c-commitment-list
**************************************************************/

/* list__item
**************************************************************/
@media all and (min-width: 768px) {
  .c-commitment-list .list__item {
    width: 100%;
    margin-left: auto;
  }
}
@media all and (max-width: 767px) {
  .c-commitment-list .list__item.swiper-slide {
    opacity: 0 !important;
  }
  .c-commitment-list .list__item.swiper-slide.swiper-slide-active {
    opacity: 1 !important;
  }
}

/* item__link
**************************************************************/
@media all and (min-width: 768px) {
  .c-commitment-list .item__link {
    width: 81.25%;
    margin-left: auto;
  }
}
@media all and (max-width: 767px) {}

/* item__contents
**************************************************************/
.c-commitment-list .item__contents {
  position: relative;
}
@media all and (min-width: 768px) {}
@media all and (max-width: 767px) {}

/* item__mask
**************************************************************/
.c-commitment-list .item__mask {
  background-color: rgb(0 0 0 / .5);
}
@media all and (min-width: 768px) {
  .c-commitment-list .item__mask {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
    width: 100%;
    margin: 0;
  }
}
@media all and (max-width: 767px) {}

/* item__info
**************************************************************/
@media all and (min-width: 768px) {
  .c-commitment-list .item__info {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row-reverse;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    padding: 0 5.882vw;
    transform: translate(-50%, -50%);
  }
}
@media all and (min-width: 1920px) {
  .c-commitment-list .item__info {
    padding: 0 8rem;
  }
}
@media all and (max-width: 767px) {}

/* item__header
**************************************************************/

/* item__body
**************************************************************/
@media all and (min-width: 768px) {
  .c-commitment-list .item__body {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    width: 100%;
  }
  .c-commitment-list .item__body-inner {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 72.051%;
    margin: 0 12rem 0 auto;
    padding: 4.1666vw;
  }
}
@media all and (min-width: 1920px) {
  .c-commitment-list .item__body-inner {
    padding: 8rem;
  }
}
@media all and (max-width: 767px) {
  .c-commitment-list .item__body-inner {
    padding: 4rem 2rem;
  }
}

/* item__ttl-container
**************************************************************/
.c-commitment-list .item__ttl {
  font-weight: bold;
  line-height: 1.5;
}
@media all and (min-width: 768px) {
  .c-commitment-list .item__ttl-container {
    width: 10rem;
  }
  .c-commitment-list .item__ttl {
    display: flex;
    flex-direction: row-reverse;
    width: 100%;
    color: #fff;
    font-size: 1.458vw;
    letter-spacing: 1rem;
  }
  .c-commitment-list .item__ttl-txt {
    writing-mode: vertical-rl;
  }
  .c-commitment-list .item__ttl-txt + .item__ttl-txt {
    margin-right: 1.6rem;
  }
}
@media all and (min-width: 1920px) {
  .c-commitment-list .item__ttl {
    font-size: 2.8rem;
  }
}
@media all and (max-width: 767px) {
  .c-commitment-list .item__ttl {
    font-size: 1.8rem;
  }
}

/* item__des-container
**************************************************************/
.c-commitment-list .item__des {
  line-height: 2;
}
@media all and (min-width: 768px) {
  .c-commitment-list .item__des-container {
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    width: calc(100% - 8.896% - 10rem);
    margin-right: 8.896%;
  }
  .c-commitment-list .item__des {
    color: #fff;
    font-size: .833vw;
  }
  .c-commitment-list .item__des + .item__des {
    margin-top: 3rem;
  }
}
@media all and (min-width: 1920px) {
  .c-commitment-list .item__des-container {
    width: calc(100% - 10rem - 10rem);
    margin-right: 10rem;
  }
  .c-commitment-list .item__des {
    font-size: 1.6rem;
  }
}
@media all and (max-width: 767px) {
  .c-commitment-list .item__des-container {
    margin-top: 2rem;
  }
  .c-commitment-list .item__des {
    font-size: 1.4rem;
  }
}


/************************************************************************************************
* FLOW
************************************************************************************************/

/**************************************************************
* flow
**************************************************************/
.flow.c-section {
  background-color: var(--accent-color-01);
}
@media all and (min-width: 768px) {}
@media all and (max-width: 767px) {}



/************************************************************************************************
* COMPANY
************************************************************************************************/

/**************************************************************
* company
**************************************************************/



/************************************************************************************************
* RECRUIT
************************************************************************************************/

/**************************************************************
* recruit
**************************************************************/
.recruit.c-section {
  background-color: var(--accent-color-01);
}
@media all and (min-width: 768px) {
  .recruit.c-section {
    padding: 4rem 0;
  }
}
@media all and (max-width: 767px) {}

/* c-contents.--recruit
**************************************************************/
@media all and (min-width: 768px) {
  .c-contents.--recruit {
    padding: 4rem 0;
  }
}
@media all and (max-width: 767px) {}

/* .c-btn-container
**************************************************************/
@media all and (min-width: 768px) {
  .recruit .c-btn-container {
    margin-top: 6rem;
  }
}
@media all and (max-width: 767px) {
  .recruit .c-btn-container {
    margin-top: 3rem;
  }
}