@charset "UTF-8";
/* CSS Document */
/* CSS Document */
/* 色 */
/* フォント */
/* テキストサイズ */
/*----------------------------------------------------------------------
/////■■ utility ■■/////
----------------------------------------------------------------------*/
/*-------- margin --------*/
.u-mt10 {
  margin-top: 10px;
}
@media screen and (width < 1000px) {
  .u-mt10 {
    margin-top: 1vw;
  }
}
@media screen and (width < 768px) {
  .u-mt10 {
    margin-top: 1.25vw;
  }
}

.u-mt20 {
  margin-top: 20px;
}
@media screen and (width < 1000px) {
  .u-mt20 {
    margin-top: 2vw;
  }
}
@media screen and (width < 768px) {
  .u-mt20 {
    margin-top: 2.5vw;
  }
}

.u-mt30 {
  margin-top: 30px;
}
@media screen and (width < 1000px) {
  .u-mt30 {
    margin-top: 3vw;
  }
}
@media screen and (width < 768px) {
  .u-mt30 {
    margin-top: 3.75vw;
  }
}

.u-mt40 {
  margin-top: 40px;
}
@media screen and (width < 1000px) {
  .u-mt40 {
    margin-top: 4vw;
  }
}
@media screen and (width < 768px) {
  .u-mt40 {
    margin-top: 5vw;
  }
}

.u-mt50 {
  margin-top: 50px;
}
@media screen and (width < 1000px) {
  .u-mt50 {
    margin-top: 5vw;
  }
}
@media screen and (width < 768px) {
  .u-mt50 {
    margin-top: 6.25vw;
  }
}

.u-mt60 {
  margin-top: 60px;
}
@media screen and (width < 1000px) {
  .u-mt60 {
    margin-top: 6vw;
  }
}
@media screen and (width < 768px) {
  .u-mt60 {
    margin-top: 7.5vw;
  }
}

.u-mt70 {
  margin-top: 70px;
}
@media screen and (width < 1000px) {
  .u-mt70 {
    margin-top: 7vw;
  }
}
@media screen and (width < 768px) {
  .u-mt70 {
    margin-top: 8.75vw;
  }
}

.u-mt80 {
  margin-top: 80px;
}
@media screen and (width < 1000px) {
  .u-mt80 {
    margin-top: 8vw;
  }
}
@media screen and (width < 768px) {
  .u-mt80 {
    margin-top: 10vw;
  }
}

.u-mt90 {
  margin-top: 90px;
}
@media screen and (width < 1000px) {
  .u-mt90 {
    margin-top: 9vw;
  }
}
@media screen and (width < 768px) {
  .u-mt90 {
    margin-top: 11.25vw;
  }
}

.u-mt100 {
  margin-top: 100px;
}
@media screen and (width < 1000px) {
  .u-mt100 {
    margin-top: 10vw;
  }
}
@media screen and (width < 768px) {
  .u-mt100 {
    margin-top: 12.5vw;
  }
}

.u-mt110 {
  margin-top: 110px;
}
@media screen and (width < 1000px) {
  .u-mt110 {
    margin-top: 11vw;
  }
}
@media screen and (width < 768px) {
  .u-mt110 {
    margin-top: 13.75vw;
  }
}

.u-mt120 {
  margin-top: 120px;
}
@media screen and (width < 1000px) {
  .u-mt120 {
    margin-top: 12vw;
  }
}
@media screen and (width < 768px) {
  .u-mt120 {
    margin-top: 15vw;
  }
}

.u-mt130 {
  margin-top: 130px;
}
@media screen and (width < 1000px) {
  .u-mt130 {
    margin-top: 13vw;
  }
}
@media screen and (width < 768px) {
  .u-mt130 {
    margin-top: 16.25vw;
  }
}

.u-mt140 {
  margin-top: 140px;
}
@media screen and (width < 1000px) {
  .u-mt140 {
    margin-top: 14vw;
  }
}
@media screen and (width < 768px) {
  .u-mt140 {
    margin-top: 17.5vw;
  }
}

.u-mt150 {
  margin-top: 150px;
}
@media screen and (width < 1000px) {
  .u-mt150 {
    margin-top: 15vw;
  }
}
@media screen and (width < 768px) {
  .u-mt150 {
    margin-top: 18.75vw;
  }
}

.u-mt1em {
  margin-top: 1em;
}

.u-mt2em {
  margin-top: 2em;
}

.u-mt3em {
  margin-top: 3em;
}

.u-mt4em {
  margin-top: 4em;
}

.u-mt5em {
  margin-top: 5em;
}

.u-mt6em {
  margin-top: 6em;
}

.u-mt7em {
  margin-top: 7em;
}

.u-mt8em {
  margin-top: 8em;
}

.u-mt9em {
  margin-top: 9em;
}

.u-mt10em {
  margin-top: 10em;
}

/*-------- padding --------*/
.u-pt10 {
  padding-top: 10px;
}
@media screen and (width < 1000px) {
  .u-pt10 {
    padding-top: 1vw;
  }
}
@media screen and (width < 768px) {
  .u-pt10 {
    padding-top: 1.25vw;
  }
}

.u-pb10 {
  padding-bottom: 10px;
}
@media screen and (width < 1000px) {
  .u-pb10 {
    padding-bottom: 1vw;
  }
}
@media screen and (width < 768px) {
  .u-pb10 {
    padding-bottom: 1.25vw;
  }
}

.u-pt20 {
  padding-top: 20px;
}
@media screen and (width < 1000px) {
  .u-pt20 {
    padding-top: 2vw;
  }
}
@media screen and (width < 768px) {
  .u-pt20 {
    padding-top: 2.5vw;
  }
}

.u-pb20 {
  padding-bottom: 20px;
}
@media screen and (width < 1000px) {
  .u-pb20 {
    padding-bottom: 2vw;
  }
}
@media screen and (width < 768px) {
  .u-pb20 {
    padding-bottom: 2.5vw;
  }
}

.u-pt30 {
  padding-top: 30px;
}
@media screen and (width < 1000px) {
  .u-pt30 {
    padding-top: 3vw;
  }
}
@media screen and (width < 768px) {
  .u-pt30 {
    padding-top: 3.75vw;
  }
}

.u-pb30 {
  padding-bottom: 30px;
}
@media screen and (width < 1000px) {
  .u-pb30 {
    padding-bottom: 3vw;
  }
}
@media screen and (width < 768px) {
  .u-pb30 {
    padding-bottom: 3.75vw;
  }
}

.u-pt40 {
  padding-top: 40px;
}
@media screen and (width < 1000px) {
  .u-pt40 {
    padding-top: 4vw;
  }
}
@media screen and (width < 768px) {
  .u-pt40 {
    padding-top: 5vw;
  }
}

.u-pb40 {
  padding-bottom: 40px;
}
@media screen and (width < 1000px) {
  .u-pb40 {
    padding-bottom: 4vw;
  }
}
@media screen and (width < 768px) {
  .u-pb40 {
    padding-bottom: 5vw;
  }
}

.u-pt50 {
  padding-top: 50px;
}
@media screen and (width < 1000px) {
  .u-pt50 {
    padding-top: 5vw;
  }
}
@media screen and (width < 768px) {
  .u-pt50 {
    padding-top: 6.25vw;
  }
}

.u-pb50 {
  padding-bottom: 50px;
}
@media screen and (width < 1000px) {
  .u-pb50 {
    padding-bottom: 5vw;
  }
}
@media screen and (width < 768px) {
  .u-pb50 {
    padding-bottom: 6.25vw;
  }
}

.u-pt60 {
  padding-top: 60px;
}
@media screen and (width < 1000px) {
  .u-pt60 {
    padding-top: 6vw;
  }
}
@media screen and (width < 768px) {
  .u-pt60 {
    padding-top: 7.5vw;
  }
}

.u-pb60 {
  padding-bottom: 60px;
}
@media screen and (width < 1000px) {
  .u-pb60 {
    padding-bottom: 6vw;
  }
}
@media screen and (width < 768px) {
  .u-pb60 {
    padding-bottom: 7.5vw;
  }
}

.u-pt70 {
  padding-top: 70px;
}
@media screen and (width < 1000px) {
  .u-pt70 {
    padding-top: 7vw;
  }
}
@media screen and (width < 768px) {
  .u-pt70 {
    padding-top: 8.75vw;
  }
}

.u-pb70 {
  padding-bottom: 70px;
}
@media screen and (width < 1000px) {
  .u-pb70 {
    padding-bottom: 7vw;
  }
}
@media screen and (width < 768px) {
  .u-pb70 {
    padding-bottom: 8.75vw;
  }
}

.u-pt80 {
  padding-top: 80px;
}
@media screen and (width < 1000px) {
  .u-pt80 {
    padding-top: 8vw;
  }
}
@media screen and (width < 768px) {
  .u-pt80 {
    padding-top: 10vw;
  }
}

.u-pb80 {
  padding-bottom: 80px;
}
@media screen and (width < 1000px) {
  .u-pb80 {
    padding-bottom: 8vw;
  }
}
@media screen and (width < 768px) {
  .u-pb80 {
    padding-bottom: 10vw;
  }
}

.u-pt90 {
  padding-top: 90px;
}
@media screen and (width < 1000px) {
  .u-pt90 {
    padding-top: 9vw;
  }
}
@media screen and (width < 768px) {
  .u-pt90 {
    padding-top: 11.25vw;
  }
}

.u-pb90 {
  padding-bottom: 90px;
}
@media screen and (width < 1000px) {
  .u-pb90 {
    padding-bottom: 9vw;
  }
}
@media screen and (width < 768px) {
  .u-pb90 {
    padding-bottom: 11.25vw;
  }
}

.u-pt100 {
  padding-top: 100px;
}
@media screen and (width < 1000px) {
  .u-pt100 {
    padding-top: 10vw;
  }
}
@media screen and (width < 768px) {
  .u-pt100 {
    padding-top: 12.5vw;
  }
}

.u-pb100 {
  padding-bottom: 100px;
}
@media screen and (width < 1000px) {
  .u-pb100 {
    padding-bottom: 10vw;
  }
}
@media screen and (width < 768px) {
  .u-pb100 {
    padding-bottom: 12.5vw;
  }
}

.u-pt110 {
  padding-top: 110px;
}
@media screen and (width < 1000px) {
  .u-pt110 {
    padding-top: 11vw;
  }
}
@media screen and (width < 768px) {
  .u-pt110 {
    padding-top: 13.75vw;
  }
}

.u-pb110 {
  padding-bottom: 110px;
}
@media screen and (width < 1000px) {
  .u-pb110 {
    padding-bottom: 11vw;
  }
}
@media screen and (width < 768px) {
  .u-pb110 {
    padding-bottom: 13.75vw;
  }
}

.u-pt120 {
  padding-top: 120px;
}
@media screen and (width < 1000px) {
  .u-pt120 {
    padding-top: 12vw;
  }
}
@media screen and (width < 768px) {
  .u-pt120 {
    padding-top: 15vw;
  }
}

.u-pb120 {
  padding-bottom: 120px;
}
@media screen and (width < 1000px) {
  .u-pb120 {
    padding-bottom: 12vw;
  }
}
@media screen and (width < 768px) {
  .u-pb120 {
    padding-bottom: 15vw;
  }
}

.u-pt130 {
  padding-top: 130px;
}
@media screen and (width < 1000px) {
  .u-pt130 {
    padding-top: 13vw;
  }
}
@media screen and (width < 768px) {
  .u-pt130 {
    padding-top: 16.25vw;
  }
}

.u-pb130 {
  padding-bottom: 130px;
}
@media screen and (width < 1000px) {
  .u-pb130 {
    padding-bottom: 13vw;
  }
}
@media screen and (width < 768px) {
  .u-pb130 {
    padding-bottom: 16.25vw;
  }
}

.u-pt140 {
  padding-top: 140px;
}
@media screen and (width < 1000px) {
  .u-pt140 {
    padding-top: 14vw;
  }
}
@media screen and (width < 768px) {
  .u-pt140 {
    padding-top: 17.5vw;
  }
}

.u-pb140 {
  padding-bottom: 140px;
}
@media screen and (width < 1000px) {
  .u-pb140 {
    padding-bottom: 14vw;
  }
}
@media screen and (width < 768px) {
  .u-pb140 {
    padding-bottom: 17.5vw;
  }
}

.u-pt150 {
  padding-top: 150px;
}
@media screen and (width < 1000px) {
  .u-pt150 {
    padding-top: 15vw;
  }
}
@media screen and (width < 768px) {
  .u-pt150 {
    padding-top: 18.75vw;
  }
}

.u-pb150 {
  padding-bottom: 150px;
}
@media screen and (width < 1000px) {
  .u-pb150 {
    padding-bottom: 15vw;
  }
}
@media screen and (width < 768px) {
  .u-pb150 {
    padding-bottom: 18.75vw;
  }
}

/*-------- max-width --------*/
.u-width--400 {
  max-width: 400px;
}

.u-width--500 {
  max-width: 500px;
}

.u-width--600 {
  max-width: 600px;
}

.u-width--700 {
  max-width: 700px;
}

.u-width--800 {
  max-width: 800px;
}

.u-width--900 {
  max-width: 900px;
}

.u-width--1000 {
  max-width: 1000px;
}

.u-width--1100 {
  max-width: 1100px;
}

.u-width--1200 {
  max-width: 1200px;
}

.u-width--1300 {
  max-width: 1300px;
}

.u-width--1400 {
  max-width: 1400px;
}

.u-width--1500 {
  max-width: 1500px;
}

.u-width--1600 {
  max-width: 1600px;
}

/*-------- br --------*/
.u-br--pc {
  display: inline;
}
@media screen and (width < 1000px) {
  .u-br--pc {
    display: none;
  }
}
.u-br--pc_tb {
  display: inline;
}
@media screen and (width < 768px) {
  .u-br--pc_tb {
    display: none;
  }
}
.u-br--tb {
  display: none;
}
@media screen and (width < 1000px) {
  .u-br--tb {
    display: inline;
  }
}
@media screen and (width < 768px) {
  .u-br--tb {
    display: none;
  }
}
.u-br--tb_sp {
  display: none;
}
@media screen and (width < 1000px) {
  .u-br--tb_sp {
    display: inline;
  }
}
.u-br--sp {
  display: none;
}
@media screen and (width < 768px) {
  .u-br--sp {
    display: inline;
  }
}

/*-------- display_block --------*/
.u-block--pc {
  display: block;
}
@media screen and (width < 768px) {
  .u-block--pc {
    display: none;
  }
}
.u-block--sp {
  display: none;
}
@media screen and (width < 768px) {
  .u-block--sp {
    display: block;
  }
}

/*-------- object position --------*/
.u-position--center {
  margin-left: auto;
  margin-right: auto;
}
.u-position--left {
  margin-left: 0;
  margin-right: auto;
}
.u-position--right {
  margin-left: auto;
  margin-right: 0;
}

.u-zindex--0 {
  position: relative;
  z-index: 0;
}

.u-zindex--1 {
  position: relative;
  z-index: 1;
}

.u-zindex--2 {
  position: relative;
  z-index: 2;
}

.u-zindex--3 {
  position: relative;
  z-index: 3;
}

.u-zindex--4 {
  position: relative;
  z-index: 4;
}

.u-zindex--5 {
  position: relative;
  z-index: 5;
}

.u-zindex--6 {
  position: relative;
  z-index: 6;
}

.u-zindex--7 {
  position: relative;
  z-index: 7;
}

.u-zindex--8 {
  position: relative;
  z-index: 8;
}

.u-zindex--9 {
  position: relative;
  z-index: 9;
}

.u-zindex--10 {
  position: relative;
  z-index: 10;
}

/*--------  link --------*/
.u-link--hover {
  font: inherit;
  position: relative;
}
.u-link--hover::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.7);
  width: 0;
  height: 1px;
  position: absolute;
  inset: auto auto 0 0;
}
.u-link--hover:hover::before {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
.u-link--arrow {
  position: relative;
}
.u-link--arrow::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  width: 1em;
  height: 1em;
  position: absolute;
  inset: 0 -1.5em 0 auto;
  margin: auto 0 auto auto;
}
.u-link--back_arrow {
  margin-left: 1.5em;
  position: relative;
}
.u-link--back_arrow::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  width: 1em;
  height: 1em;
  position: absolute;
  inset: 0 auto 0 -1.5em;
  margin: auto auto auto 0;
  -webkit-transform: scaleX(-1);
          transform: scaleX(-1);
}

/*--------  text align --------*/
.u-text_align--center {
  text-align: center;
}
.u-text_align--pc_center {
  text-align: center;
}
@media screen and (width < 1000px) {
  .u-text_align--pc_center {
    text-align: left;
  }
}
.u-text_align--pc_tb_center {
  text-align: center;
}
@media screen and (width < 768px) {
  .u-text_align--pc_tb_center {
    text-align: left;
  }
}
.u-text_align--right {
  text-align: right;
}
.u-text_align--left {
  text-align: left;
}

/*--------  text size & weight --------*/
.u-font_size--lg {
  font-size: min(4vw, 4rem);
}
@media screen and (width < 768px) {
  .u-font_size--lg {
    font-size: 7vw;
  }
}
.u-font_size--md {
  font-size: min(2.6vw, 2.6rem);
}
@media screen and (width < 768px) {
  .u-font_size--md {
    font-size: 5.2vw;
  }
}
.u-font_size--sm {
  font-size: clamp(1.3rem, 1.6vw, 1.6rem);
}
.u-font_size--link {
  font-size: min(1.8vw, 1.8rem);
}
@media screen and (width < 768px) {
  .u-font_size--link {
    font-size: 5.4vw;
  }
}

.u-font_weight--300 {
  font-weight: 300;
}
.u-font_weight--400 {
  font-weight: 400;
}
.u-font_weight--500 {
  font-weight: 500;
}
.u-font_weight--600 {
  font-weight: 600;
}

/*--------  text color & decoration --------*/
.u-color--black {
  color: #111;
}
.u-color--white {
  color: #fff;
}

.u-under_line--white {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
}

/*-------- flexbox utility --------*/
.u-align_items--start {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.u-align_items--center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.u-align_items--end {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

/* CSS Document */
/*----------------------------------------------------------------------
/////■■ component ■■/////
----------------------------------------------------------------------*/
/*--------  wrapper & container --------*/
.c-wrapper--1660 {
  margin-left: auto;
  margin-right: auto;
  width: min(92%, 166rem);
}

.c-wrapper--1420 {
  margin-left: auto;
  margin-right: auto;
  width: min(78%, 142rem);
}
@media (width < 768px) {
  .c-wrapper--1420 {
    width: 90%;
  }
}

.c-wrapper--1000 {
  margin-left: auto;
  margin-right: auto;
  width: min(80%, 100rem);
}

.c-container {
  padding: min(8vw, 8rem) 0 min(12vw, 12rem);
}

.c-contents_top {
  padding-top: clamp(14rem, 20vw, 20rem);
}

/*-------- flexbox --------*/
.c-multi_col,
.c-multi_col_reverse,
.c-multi_col--center,
.c-multi_col--left,
.c-multi_col--right {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.c-multi_col_reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
@media screen and (width < 768px) {
  .c-multi_col_reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
}

.c-multi_col--center,
.c-multi_col_reverse--center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.c-multi_col--left,
.c-multi_col_reverse--left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
}
.c-multi_col--right,
.c-multi_col_reverse--right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: end;
}

/* CSS Document */
/*----------------------------------------------------------------------
/////■■ project ■■/////
----------------------------------------------------------------------*/
.p-category_icon--branding {
  aspect-ratio: 3/2;
}
.p-category_icon--website {
  aspect-ratio: 84/53;
}
.p-category_icon--ad {
  aspect-ratio: 42/31;
}
.p-category_icon--graphic {
  aspect-ratio: 84/55;
}
.p-category_icon--dtp {
  aspect-ratio: 12/7;
}
.p-category_icon--others {
  aspect-ratio: 81/56;
}

.p-multi_column--img {
  width: min(48%, 40rem);
}
@media screen and (width < 768px) {
  .p-multi_column--img {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
}
.p-multi_column--text {
  width: min(48%, 55rem);
}
@media screen and (width < 768px) {
  .p-multi_column--text {
    width: 100%;
    margin-top: 1.5em;
  }
}
.p-multi_column--text p:nth-child(n+2) {
  margin-top: 1.5em;
}

.p-page_heading {
  padding-bottom: min(14vw, 14rem);
}
.p-page_heading h1 {
  font-size: min(10vw, 11rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  .p-page_heading h1 {
    font-size: 19vw;
  }
}
.p-page_heading__subtitle {
  font-size: min(2.2vw, 2.4rem);
  font-weight: 400;
  line-height: 1.5;
  margin-top: 0.8em;
}
@media screen and (width < 768px) {
  .p-page_heading__subtitle {
    font-size: 4vw;
  }
}

.p-section_border {
  border-top: 1px solid rgba(255, 255, 255, 0.7);
  width: 100%;
}

.p-section_heading--index {
  font-size: min(9vw, 11rem);
  font-weight: 400;
  line-height: 1;
}
.p-section_heading--index::first-letter {
  font-size: min(11vw, 13rem);
  vertical-align: -2%;
}
@media screen and (width < 768px) {
  .p-section_heading--index {
    font-size: 16vw;
  }
  .p-section_heading--index::first-letter {
    font-size: 19vw;
    vertical-align: -2%;
  }
}

.p-sentence p:nth-child(n+2) {
  margin-top: 1.5em;
}

/* CSS Document */
/*----------------------------------------------------------------------
/////■■ layout ■■/////
----------------------------------------------------------------------*/
/* CSS Document */
/*----------------------------------------------------------------------
/////■■ layout__header ■■/////
----------------------------------------------------------------------*/
.l-header {
  position: fixed;
  z-index: 999;
}
.l-header__logo {
  position: fixed;
  inset: min(3vw, 3rem) 0 0 min(2vw, 3rem);
  width: min(5.5vw, 7rem);
  z-index: 9999;
}
@media screen and (width < 768px) {
  .l-header__logo {
    inset: 3.6vw 0 0 2.6vw;
    width: 12vw;
  }
}
.l-header__logo img {
  aspect-ratio: 143/150;
}
.l-header__nav {
  cursor: pointer;
  display: block;
  font-size: clamp(1.4rem, 1.5vw, 1.6rem);
  inset: min(2vw, 2rem) min(1.4vw, 3rem) auto auto;
  position: fixed;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (width < 768px) {
  .l-header__nav {
    display: none;
  }
}
.l-header__nav::after {
  content: "";
  background-color: #fff;
  width: 4em;
  height: 1px;
  position: absolute;
  inset: auto 0 0 auto;
}
.l-header__nav .menu_label {
  height: min(5vw, 5.6rem);
  margin: 0 0 0 auto;
  position: relative;
  width: 4em;
}
.l-header__nav .menu_label::before, .l-header__nav .menu_label::after {
  content: "";
  background-color: #fff;
  width: 4em;
  height: 1px;
  position: absolute;
  inset: auto 0 0.7em auto;
}
.l-header__nav .menu_label:hover::after {
  -webkit-transform: translateY(15rem);
          transform: translateY(15rem);
  -webkit-transition: 0.4s;
  transition: 0.4s;
  opacity: 0;
}
.l-header__nav .menu_label li {
  font-size: min(2vw, 2.2rem);
  font-weight: 300;
  line-height: 1;
  position: absolute;
  inset: min(1vw, 1rem) 0 0 0;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
.l-header__nav .menu_label li:first-of-type {
  opacity: 1;
}
.l-header__nav .menu_label li:last-of-type {
  opacity: 0;
}
.l-header__nav .menu_label.close ul {
  height: 100%;
}
.l-header__nav .menu_label.close ul::before, .l-header__nav .menu_label.close ul::after {
  content: none;
}
.l-header__nav .menu_label.close li {
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
.l-header__nav .menu_label.close li:first-of-type {
  opacity: 0;
}
.l-header__nav .menu_label.close li:last-of-type {
  opacity: 1;
}
.l-header__nav .menu_link {
  display: none;
  min-height: 0.8em;
  padding: 0.2em 0 1.25em;
  position: relative;
}
.l-header__nav .menu_link li {
  color: #999;
  font-size: min(2vw, 2rem);
  font-weight: 300;
  line-height: 2;
  text-align: right;
}
.l-header__nav .menu_link li a {
  color: #999;
  font: inherit;
  position: relative;
}
.l-header__nav .menu_link li a::after {
  content: "";
  background-color: rgba(255, 255, 255, 0.7);
  width: 0;
  height: 1px;
  position: absolute;
  inset: auto auto 0 0;
}
.l-header__nav .menu_link li a:hover {
  color: #fff;
}
.l-header__nav .menu_link li a:hover::after {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
.l-header__nav_sp {
  display: none;
  position: fixed;
  inset: 0 0 auto auto;
}
@media screen and (width < 768px) {
  .l-header__nav_sp {
    display: block;
  }
}
.l-header__nav_sp__menu {
  position: fixed;
  inset: 0 0 auto auto;
  padding: 8vw 3vw 6vw;
  width: 16vw;
  height: 16vw;
}
.l-header__nav_sp__menu span {
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  display: block;
  width: 100%;
  height: 2vw;
}
.l-header__nav_sp__modal {
  display: grid;
  place-content: center;
  overflow-y: scroll;
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
  position: fixed;
  z-index: 8880;
}
.l-header__nav_sp__modal:target {
  background-color: rgba(17, 17, 17, 0.95);
  inset: 0;
  width: 100%;
  height: calc(100lvh + 2px);
  opacity: 1;
  visibility: visible;
  -webkit-transition: opacity 1s, visibility 1s;
  transition: opacity 1s, visibility 1s;
}
.l-header__nav_sp__modal:not(:target) {
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 1s, visibility 1s;
  transition: opacity 1s, visibility 1s;
}
.l-header__nav_sp__modal__inner {
  margin: 0 auto;
  padding-bottom: 15vh;
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  z-index: 8882;
}
.l-header__nav_sp__modal__inner li {
  font-size: 8vw;
  font-weight: 300;
  line-height: 2;
  text-align: center;
}
.l-header__nav_sp__modal__inner li a {
  font: inherit;
}
.l-header__nav_sp__modal__close {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 8881;
}
.l-header__nav_sp__modal__close span {
  display: block;
  width: 10vw;
  height: 0;
  position: absolute;
  inset: 9vw 4vw auto auto;
}
.l-header__nav_sp__modal__close span::before, .l-header__nav_sp__modal__close span::after {
  content: "";
  background-color: #fff;
  width: 10vw;
  height: 1px;
  position: absolute;
  inset: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.l-header__nav_sp__modal__close span::after {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

/* CSS Document */
/*----------------------------------------------------------------------
/////■■ layout__footer ■■/////
----------------------------------------------------------------------*/
/*-------- contact_links --------*/
.l-contact_links {
  border-top: 1px solid #f3f3f3;
  position: relative;
  width: min(96%, 168rem);
  z-index: 100;
}
.l-contact_links::before {
  content: "";
  background-color: #f3f3f3;
  width: 100vw;
  height: 50%;
  position: absolute;
  inset: auto 0 0;
  z-index: 0;
}
.l-contact_links__container {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  aspect-ratio: 56/54;
  background-color: #666;
  border-right: 1px solid #f3f3f3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  width: min(33.333%, 56rem);
  z-index: 110;
}
@media screen and (width < 768px) {
  .l-contact_links__container {
    aspect-ratio: 2/1;
    border-bottom: 1px solid #f3f3f3;
    width: 100%;
  }
}
.l-contact_links__container a:hover img {
  -webkit-filter: brightness(90%);
          filter: brightness(90%);
  -webkit-transform: scale(1.12);
          transform: scale(1.12);
}
.l-contact_links__container::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/contain;
  width: min(2.8vw, 4.4rem);
  aspect-ratio: 1;
  position: absolute;
  inset: auto min(2vw, 3.8rem) min(10vw, 10rem) auto;
}
@media screen and (width < 768px) {
  .l-contact_links__container::after {
    width: 6.4vw;
    inset: auto 2.5vw 6vw auto;
  }
}
.l-contact_links__container__img_inner {
  overflow: hidden;
  position: absolute;
  width: 100%;
  height: 100%;
  inset: 0;
}
@media screen and (width < 768px) {
  .l-contact_links__container__img_inner {
    display: grid;
    place-content: center;
  }
}
.l-contact_links__container__img_inner img {
  aspect-ratio: 56/54;
  -o-object-fit: cover;
     object-fit: cover;
  position: relative;
  inset: 0;
  -webkit-transition: 0.6s all;
  transition: 0.6s all;
  -webkit-filter: brightness(50%);
          filter: brightness(50%);
}
.l-contact_links__container__text_inner {
  position: absolute;
  inset: auto auto min(6vw, 6rem) min(2.4vw, 3.8rem);
  z-index: 120;
}
.l-contact_links__container__text_inner__label {
  font-size: min(4.4vw, 7.2rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  .l-contact_links__container__text_inner__label {
    font-size: 12vw;
  }
}
.l-contact_links__container__text_inner p {
  font-size: min(2vw, 2rem);
  line-height: 1;
  margin-top: 1em;
}
@media screen and (width < 768px) {
  .l-contact_links__container__text_inner p {
    font-size: 4vw;
  }
}

/*-------- footer --------*/
.l-footer {
  background-color: #f3f3f3;
  padding: min(14vw, 14rem) 0;
  position: relative;
  z-index: 99;
}
.l-footer * {
  color: #111;
}
.l-footer__main {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.l-footer__main__logo {
  width: min(40vw, 74rem);
}
@media screen and (width < 768px) {
  .l-footer__main__logo {
    width: 80vw;
  }
}
.l-footer__main__logo img {
  aspect-ratio: 300/88;
  -webkit-filter: brightness(6.67%);
          filter: brightness(6.67%);
  width: 100%;
}
.l-footer__main__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (width < 768px) {
  .l-footer__main__nav {
    margin-top: 2em;
    width: 100%;
  }
}
.l-footer__main__nav ul {
  padding-left: 5em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (width < 768px) {
  .l-footer__main__nav ul {
    padding-left: 2em;
    width: 50%;
  }
  .l-footer__main__nav ul:last-of-type {
    padding-left: 0;
  }
}
.l-footer__main__nav li {
  line-height: 1;
  margin-top: 0.8em;
}
.l-footer__main__nav li a {
  font-size: min(2.2vw, 2.6rem);
  font-weight: 400;
  position: relative;
}
@media screen and (width < 768px) {
  .l-footer__main__nav li a {
    font-size: 5.4vw;
  }
}
.l-footer__main__nav li a::after {
  content: "";
  background-color: rgba(0, 0, 0, 0.7);
  width: 0;
  height: 1px;
  position: absolute;
  inset: auto auto 0 0;
}
.l-footer__main__nav li a:hover::after {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
.l-footer__main__nav .li_small {
  margin-top: 0.5em;
}
.l-footer__main__nav .li_small a {
  font-size: min(2vw, 2rem);
}
@media screen and (width < 768px) {
  .l-footer__main__nav .li_small a {
    font-size: 4.8vw;
  }
}
.l-footer__main__nav .li_small a i {
  font-size: 90%;
  vertical-align: -11%;
  margin-right: 0.2em;
}
.l-footer__border {
  border-top: 1px solid #111;
  margin-top: min(6vw, 6rem);
  margin-bottom: min(3vw, 3rem);
  width: 100%;
}
.l-footer__bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.l-footer__bottom__corp_info dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.l-footer__bottom__corp_info dt {
  font-weight: 500;
  width: 100%;
}
.l-footer__bottom__corp_info dd {
  font-weight: 400;
  padding-right: 2em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.l-footer__bottom__corp_info dd p {
  cursor: pointer;
  font-weight: inherit;
  position: relative;
}
.l-footer__bottom__corp_info dd p::after {
  content: "";
  background-color: rgba(0, 0, 0, 0.7);
  width: 0;
  height: 1px;
  position: absolute;
  inset: auto auto 0 0;
}
.l-footer__bottom__corp_info dd p:hover::after {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
.l-footer__bottom__corp_info dd i {
  font-size: 90%;
  vertical-align: -11%;
  margin-right: 0.2em;
}
.l-footer__bottom__copyright * {
  font-weight: 400;
  margin-top: 1.2em;
}

/*-------- privacy_policy --------*/
.l-modal_window {
  background-color: #111;
  display: none;
  overflow-y: scroll;
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
  padding: 2em 2em 10em;
  position: fixed;
  inset: 0;
  z-index: 9990;
}
@media screen and (width < 768px) {
  .l-modal_window {
    padding: 1em 1em 5em;
  }
}
.l-modal_window__inner {
  border: 1px solid rgba(255, 255, 255, 0.7);
  margin: 0 auto;
  padding: 2em;
  position: relative;
  width: min(90%, 90rem);
  z-index: 9992;
}
@media screen and (width < 768px) {
  .l-modal_window__inner {
    padding: 3em 1em 4em;
    width: 100%;
  }
}
.l-modal_window__inner h2 {
  font-size: min(3vw, 3.2rem);
  font-weight: 400;
  line-height: 1;
  text-align: center;
}
@media screen and (width < 768px) {
  .l-modal_window__inner h2 {
    font-size: 6vw;
  }
}
.l-modal_window__inner dt {
  font-size: clamp(1.9rem, 2.2vw, 2.2rem);
  font-weight: 400;
  line-height: 1.4;
  margin-top: 2em;
}
.l-modal_window__inner dt:last-of-type {
  font-size: clamp(1.5rem, 1.8vw, 1.8rem);
  margin-top: 1em;
}
.l-modal_window__inner dd {
  margin-top: 0.5em;
}
.l-modal_window__inner p a {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.l-modal_window__close {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: black;
  border-radius: 50%;
  cursor: pointer;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 140%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  bottom: -3rem;
  right: 0;
  left: 0;
  margin: 0 auto;
  width: 6rem;
  height: 6rem;
  z-index: 9993;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

/*-------- main --------*/
main {
  padding-bottom: min(14vw, 14rem);
}

/*-------- index --------*/
#index {
  position: relative;
}
#index::before {
  content: "";
  background: url(../images/index/lucille-shaped.svg) no-repeat;
  background-position: max(-9vw, -17rem) max(-5.6vw, -17rem);
  background-size: min(102.5vw, 180rem);
  width: 100%;
  height: calc(100vh + min(100vw, 100rem));
  opacity: 0.8;
  position: absolute;
  inset: 0 auto 0 auto;
  z-index: -1;
}
@media screen and (width < 768px) {
  #index::before {
    background-position: -8vw 11vw;
    background-size: 110% auto;
    height: 100%;
  }
}
#index .l-index__bg_img {
  display: grid;
  -o-object-fit: cover;
     object-fit: cover;
  overflow: hidden;
  place-content: start right;
  position: absolute;
  inset: 0 0 auto auto;
  width: min(80%, 140rem);
  height: 110vh;
  z-index: -2;
}
@media screen and (width < 1400px) {
  #index .l-index__bg_img {
    height: 60vw;
  }
}
@media screen and (width < 768px) {
  #index .l-index__bg_img {
    width: 100%;
    height: 78vh;
  }
}
#index .l-index__key {
  position: relative;
  width: 100%;
  height: max(74rem, 96vh);
}
@media screen and (width < 1400px) {
  #index .l-index__key {
    height: 55vw;
  }
}
@media screen and (width < 768px) {
  #index .l-index__key {
    padding-top: 60vh;
    height: auto;
  }
}
#index .l-index__key__title {
  position: absolute;
  inset: auto auto 0 min(12vw, 15rem);
  width: min(48vw, 86rem);
}
@media screen and (width < 768px) {
  #index .l-index__key__title {
    padding-left: 2vw;
    position: static;
    inset: auto;
    width: 96vw;
  }
}
#index .l-index__key__title img {
  aspect-ratio: 1000/291;
}
#index .l-index__key__about {
  position: absolute;
  inset: min(12vw, 17rem) auto auto min(10vw, 14rem);
}
@media screen and (width < 768px) {
  #index .l-index__key__about {
    margin-left: auto;
    margin-right: auto;
    margin-top: 3em;
    position: static;
    inset: auto;
    width: 92%;
  }
}
#index .l-index__key__about h2 {
  font-size: min(5.5vw, 6.8rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  #index .l-index__key__about h2 {
    font-size: 10vw;
    margin-top: 3em;
  }
}
#index .l-index__key__about__text {
  margin-top: 1.5em;
  position: relative;
  width: min(40vw, 50rem);
}
@media screen and (width < 768px) {
  #index .l-index__key__about__text {
    width: 100%;
  }
}
#index .l-index__key__about__text--jp, #index .l-index__key__about__text--en {
  font-size: clamp(1.3rem, 1.3vw, 1.4rem);
  letter-spacing: 0.03em;
  line-height: 1.9;
  text-align: justify;
}
#index .l-index__key__about__text--jp {
  position: absolute;
  inset: 0 auto auto 0;
  -webkit-animation: index_about_jp 10s infinite;
          animation: index_about_jp 10s infinite;
}
@-webkit-keyframes index_about_jp {
  0% {
    opacity: 1;
  }
  43% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  93% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes index_about_jp {
  0% {
    opacity: 1;
  }
  43% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  93% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
#index .l-index__key__about__text--en {
  font-size: clamp(1.4rem, 1.4vw, 1.5rem);
  line-height: 1.75;
  -webkit-animation: index_about_en 10s infinite;
          animation: index_about_en 10s infinite;
}
@-webkit-keyframes index_about_en {
  0% {
    opacity: 0;
  }
  43% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  93% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes index_about_en {
  0% {
    opacity: 0;
  }
  43% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  93% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
#index .l-index__key__about__link {
  margin-top: 1.2em;
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#index .l-index__key__about__link a {
  font-size: min(3vw, 3.6rem);
  font-weight: 400;
  line-height: 1;
  padding: 0;
  position: relative;
}
@media screen and (width < 768px) {
  #index .l-index__key__about__link a {
    font-size: 7.2vw;
  }
}
#index .l-index__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin-top: min(20vw, 30rem);
}
@media screen and (width < 1500px) {
  #index .l-index__nav {
    margin-top: 12vw;
  }
}
@media screen and (width < 768px) {
  #index .l-index__nav {
    display: none;
    margin-top: 2em;
  }
}
#index .l-index__nav ul {
  padding-left: 5em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (width < 768px) {
  #index .l-index__nav ul {
    padding-left: 2em;
    width: 50%;
  }
  #index .l-index__nav ul:last-of-type {
    padding-left: 0;
  }
}
#index .l-index__nav li {
  line-height: 1;
  margin-top: 0.6em;
}
#index .l-index__nav li a {
  font-size: min(2.2vw, 2.6rem);
  font-weight: 300;
  position: relative;
}
@media screen and (width < 768px) {
  #index .l-index__nav li a {
    font-size: 6vw;
  }
}
#index .l-index__nav li a::after {
  content: "";
  background-color: rgba(255, 255, 255, 0.7);
  width: 0;
  height: 1px;
  position: absolute;
  inset: auto auto 0 0;
}
#index .l-index__nav li a:hover::after {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
#index .l-index__nav .li_small {
  margin-top: 0.5em;
}
#index .l-index__nav .li_small a {
  font-size: min(2vw, 2rem);
}
@media screen and (width < 768px) {
  #index .l-index__nav .li_small a {
    font-size: 4.8vw;
  }
}
#index .l-index__nav .li_small a i {
  font-size: 90%;
  vertical-align: -11%;
  margin-right: 0.2em;
}
#index .l-index__services {
  margin-top: min(8vw, 8rem);
}
@media screen and (width < 768px) {
  #index .l-index__services {
    margin-top: 14vh;
  }
}
@media screen and (width < 768px) {
  #index .l-index__services__heading {
    text-align: left;
  }
}
#index .l-index__services__links {
  margin-left: auto;
  margin-right: auto;
  margin-top: min(9vw, 9rem);
  width: calc(100% - min(3vw, 5rem));
}
@media screen and (width < 768px) {
  #index .l-index__services__links {
    margin-top: 4vw;
    width: 92%;
  }
}
#index .l-index__services__links a:hover img {
  -webkit-filter: brightness(140%);
          filter: brightness(140%);
  -webkit-transform: scale(1.12);
          transform: scale(1.12);
}
#index .l-index__services__links--web, #index .l-index__services__links--ad {
  overflow: hidden;
  position: relative;
  width: 42%;
  height: min(80vw, 92rem);
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
@media screen and (width < 768px) {
  #index .l-index__services__links--web, #index .l-index__services__links--ad {
    height: 56vh;
    width: 100%;
  }
}
#index .l-index__services__links--web img, #index .l-index__services__links--ad img {
  aspect-ratio: 1;
  -o-object-fit: cover;
     object-fit: cover;
  position: relative;
  width: 100%;
  height: 100%;
  -webkit-transition: 0.6s all;
  transition: 0.6s all;
}
#index .l-index__services__links--ad {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}
@media screen and (width < 768px) {
  #index .l-index__services__links--ad {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-top: 4vw;
  }
}
#index .l-index__services__links__inner {
  position: absolute;
  inset: auto 0 1.5em 0;
  width: 94%;
  margin: auto;
}
#index .l-index__services__links__inner dt {
  font-size: min(14vw, 20rem);
  font-weight: 400;
  line-height: 1;
  position: relative;
  width: 100%;
}
@media screen and (width < 768px) {
  #index .l-index__services__links__inner dt {
    font-size: 26vw;
  }
}
#index .l-index__services__links__inner dt::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  width: min(4vw, 6rem);
  height: min(4vw, 6rem);
  position: absolute;
  inset: auto 2% 24% auto;
}
@media screen and (width < 768px) {
  #index .l-index__services__links__inner dt::after {
    width: 9vw;
    height: 9vw;
  }
}
#index .l-index__services__links__inner dd {
  font-size: clamp(1.3rem, 1.6vw, 1.7rem);
  line-height: 1.8;
  margin-top: 0.4em;
  width: 100%;
}
#index .l-index__services__links__category {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
  padding: 0 1vw;
  position: relative;
  width: 16%;
}
@media screen and (width < 768px) {
  #index .l-index__services__links__category {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    margin-left: auto;
    margin-right: auto;
    margin-top: 3em;
    width: 92%;
  }
}
#index .l-index__services__links__category--heading {
  color: #fff;
  font-size: min(3vw, 3rem);
  font-weight: 400;
  line-height: 1;
  text-align: center;
}
@media screen and (width < 768px) {
  #index .l-index__services__links__category--heading {
    font-size: 9vw;
  }
}
@media screen and (width < 768px) {
  #index .l-index__services__links__category ul {
    margin-top: 1em;
  }
}
#index .l-index__services__links__category li {
  margin-top: min(5vw, 5.6rem);
}
@media screen and (width < 768px) {
  #index .l-index__services__links__category li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.7);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: auto;
    padding: 1em 0;
  }
  #index .l-index__services__links__category li:last-of-type {
    border: none;
    margin-top: 1em;
    margin-right: 2vw;
    position: relative;
  }
}
#index .l-index__services__links__category--icon {
  width: min(7vw, 9rem);
}
@media screen and (width < 768px) {
  #index .l-index__services__links__category--icon {
    width: 20vw;
  }
}
#index .l-index__services__links__category--lavel {
  font-size: min(1.3vw, 1.4rem);
  font-weight: 300;
  line-height: 1.5;
  margin-top: 1em;
  text-align: center;
}
@media screen and (width < 768px) {
  #index .l-index__services__links__category--lavel {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font-size: 4vw;
    padding-left: 8vw;
    text-align: left;
  }
}
#index .l-index__services__links__category--details {
  position: absolute;
  inset: auto 0 0 0;
  margin: auto;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-transform: translateX(-0.5em);
          transform: translateX(-0.5em);
}
#index .l-index__services__links__category--details a {
  line-height: 1.5;
}
#index .l-index__works {
  margin-top: min(16vw, 16rem);
}
@media screen and (width < 768px) {
  #index .l-index__works {
    margin-top: 14vh;
  }
}
@media screen and (width < 768px) {
  #index .l-index__works__heading {
    text-align: left;
  }
}
#index .l-index__works__slider {
  margin-left: auto;
  margin-right: auto;
  margin-top: min(9vw, 9rem);
  width: min(180rem, 100% - min(3vw, 5rem));
}
#index .l-index__works .splide__slide {
  overflow: hidden;
  height: min(88vh, 51vw);
}
@media screen and (width < 1400px) {
  #index .l-index__works .splide__slide {
    height: min(88vh, 77vw);
  }
}
@media screen and (width < 768px) {
  #index .l-index__works .splide__slide {
    height: 64vh;
  }
}
#index .l-index__works .splide__slide img {
  aspect-ratio: 54/90;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: 0.6s all;
  transition: 0.6s all;
}
#index .l-index__works .splide__slide img:hover {
  -webkit-transform: scale(1.12);
          transform: scale(1.12);
}
#index .l-index__works .splide__slide a {
  position: relative;
}
#index .l-index__works .splide__slide a::after {
  content: "";
  background-color: rgba(0, 0, 0, 0.3);
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  z-index: 1;
  -webkit-transition: 0.6s all;
  transition: 0.6s all;
}
#index .l-index__works .splide__slide a:hover img {
  -webkit-transform: scale(1.12);
          transform: scale(1.12);
}
#index .l-index__works .splide__slide a:hover::after {
  background-color: rgba(0, 0, 0, 0.08);
}
#index .l-index__works .splide__arrow {
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  border-radius: 0;
  opacity: 1;
  top: auto;
  bottom: max(-6vw, -6rem);
  -webkit-transform: none;
          transform: none;
}
@media screen and (width < 768px) {
  #index .l-index__works .splide__arrow {
    bottom: -12vw;
  }
}
#index .l-index__works .splide__arrow--prev {
  -webkit-transform: scale(-1, 1);
          transform: scale(-1, 1);
}
#index .l-index__works .splide__pagination {
  top: auto;
  bottom: max(-5.2vw, -5.2rem);
}
@media screen and (width < 768px) {
  #index .l-index__works .splide__pagination {
    bottom: -10vw;
  }
}
#index .l-index__works .splide__pagination li {
  margin-left: 1em;
  margin-right: 1em;
  position: relative;
}
#index .l-index__works .splide__pagination li:not(:last-of-type)::after {
  content: "";
  background-color: rgba(255, 255, 255, 0.3);
  width: min(2.5vw, 2.5rem);
  height: 1px;
  position: absolute;
  right: max(-2.9vw, -2.9rem);
  top: 0;
  bottom: 0;
  margin: auto;
}
@media screen and (width < 768px) {
  #index .l-index__works .splide__pagination li:not(:last-of-type)::after {
    right: -1.8em;
    width: 1.5em;
  }
}
#index .l-index__works .splide__pagination__page {
  background-color: transparent;
  border: 1px solid rgba(255, 255, 255, 0.7);
  width: min(1vw, 1rem);
  height: min(1vw, 1rem);
  opacity: 1;
}
#index .l-index__works .splide__pagination__page.is-active {
  background-color: rgba(255, 255, 255, 0.9);
  border: none;
  -webkit-transform: scale(1.2);
          transform: scale(1.2);
}
@media screen and (width < 768px) {
  #index .l-index__works .splide__pagination__page {
    width: 2.4vw;
    height: 2.4vw;
  }
}
#index .l-index__news {
  margin-top: min(16vw, 16rem);
}
@media screen and (width < 768px) {
  #index .l-index__news {
    margin-top: 32vw;
  }
}
#index .l-index__news__heading {
  width: min(33vw, 50rem);
  padding-left: min(3vw, 4rem);
}
@media screen and (width < 768px) {
  #index .l-index__news__heading {
    padding-left: 0;
    width: 100%;
  }
}
#index .l-index__news__list {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media screen and (width < 768px) {
  #index .l-index__news__list {
    -webkit-box-flex: 1;
        -ms-flex: auto;
            flex: auto;
    margin-top: 2em;
    width: 100%;
  }
}
#index .l-index__news__list__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1.1em 0;
  position: relative;
}
#index .l-index__news__list__item::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  width: 1.65em;
  height: 1.65em;
  position: absolute;
  inset: 0 0 0 auto;
  margin: auto 0 auto auto;
}
@media screen and (width < 768px) {
  #index .l-index__news__list__item::after {
    width: 5vw;
    height: 5vw;
  }
}
#index .l-index__news__list__item dt,
#index .l-index__news__list__item dd {
  font-size: clamp(1.4rem, 1.6vw, 1.7rem);
  line-height: 1.6;
}
#index .l-index__news__list__item dt {
  width: 7.4em;
}
#index .l-index__news__list__item dd {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-right: 3em;
}
#index .l-index__news__list a {
  position: relative;
}
#index .l-index__news__list a::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.1);
  width: 0%;
  height: 100%;
  position: absolute;
  inset: 0 auto 0 0;
}
#index .l-index__news__list a:hover::before {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
#index .l-index__news__more {
  margin-left: auto;
  margin-right: min(3vw, 3rem);
  text-align: right;
}
@media screen and (width < 768px) {
  #index .l-index__news__more {
    margin-right: 6vw;
  }
}

/*-------- about --------*/
#about .l-about__bg_img {
  display: grid;
  overflow: hidden;
  place-content: start center;
  position: absolute;
  inset: min(-4vw, -4rem) 0 auto;
  width: 100%;
  height: 100%;
  z-index: -1;
}
#about .l-about__bg_img img {
  aspect-ratio: 140/122;
  width: min(120vw, 140rem);
}
#about .l-about__philosophy h1 {
  font-size: min(12vw, 17rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  #about .l-about__philosophy h1 {
    font-size: 18vw;
    line-height: 1.1;
  }
}
#about .l-about__philosophy p {
  margin-top: 2em;
  width: min(100%, 50rem);
  text-align: justify;
}
#about .l-about__philosophy p:first-of-type {
  margin-top: 5em;
}
#about .l-about__concept, #about .l-about__rules {
  margin-top: min(24vw, 30rem);
}
#about .l-about__concept__heading, #about .l-about__rules__heading {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (width < 768px) {
  #about .l-about__concept__heading, #about .l-about__rules__heading {
    width: 100%;
  }
}
#about .l-about__concept__heading h2, #about .l-about__rules__heading h2 {
  font-size: min(7.2vw, 11rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  #about .l-about__concept__heading h2, #about .l-about__rules__heading h2 {
    font-size: 14vw;
  }
}
#about .l-about__concept__heading p, #about .l-about__rules__heading p {
  font-size: min(2vw, 2.4rem);
  font-weight: 400;
  line-height: 1.5;
  margin-top: 0.8em;
}
@media screen and (width < 768px) {
  #about .l-about__concept__heading p, #about .l-about__rules__heading p {
    font-size: 4vw;
  }
}
#about .l-about__concept__text, #about .l-about__rules__text {
  width: min(58%, 70rem);
}
@media screen and (width < 768px) {
  #about .l-about__concept__text, #about .l-about__rules__text {
    width: 100%;
    margin-top: 3em;
  }
}
#about .l-about__concept__text p, #about .l-about__rules__text p {
  text-align: justify;
}
#about .l-about__concept__text p:nth-of-type(n + 2), #about .l-about__rules__text p:nth-of-type(n + 2) {
  margin-top: 1.8em;
}
#about .l-about__concept__text ol, #about .l-about__rules__text ol {
  padding-left: 1em;
}
#about .l-about__concept__text ol li, #about .l-about__rules__text ol li {
  list-style-type: decimal;
}
#about .l-about__rules {
  margin-top: min(12vw, 12rem);
}

/*-------- services --------*/
#services #service_web,
#services #service_ad {
  scroll-margin-top: min(6vw, 6rem);
}
#services .l-services__web--img, #services .l-services__ad--img {
  overflow: hidden;
  width: min(52%, 80rem);
}
@media screen and (width < 768px) {
  #services .l-services__web--img, #services .l-services__ad--img {
    display: none;
    visibility: collapse;
  }
}
#services .l-services__web--img img, #services .l-services__ad--img img {
  aspect-ratio: 80/68;
  width: 100%;
  height: 68rem;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (width < 1300px) {
  #services .l-services__web--img img, #services .l-services__ad--img img {
    height: 52vw;
  }
}
#services .l-services__web__content, #services .l-services__ad__content {
  width: calc(100% - (min(52%, 80rem) + min(6vw, 10rem)));
}
@media screen and (width < 768px) {
  #services .l-services__web__content, #services .l-services__ad__content {
    width: 100%;
  }
}
#services .l-services__web__content__img, #services .l-services__ad__content__img {
  display: none;
  visibility: collapse;
}
@media screen and (width < 768px) {
  #services .l-services__web__content__img, #services .l-services__ad__content__img {
    display: block;
    visibility: visible;
    overflow: hidden;
    position: relative;
    margin-left: -5vw;
    margin-top: 2rem;
    width: 100vw;
  }
  #services .l-services__web__content__img img, #services .l-services__ad__content__img img {
    aspect-ratio: 80/68;
    width: 100%;
    height: 85vw;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
#services .l-services__web__content h2, #services .l-services__ad__content h2 {
  font-size: min(15vw, 20rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  #services .l-services__web__content h2, #services .l-services__ad__content h2 {
    font-size: 26vw;
  }
}
#services .l-services__web__content li, #services .l-services__ad__content li {
  font-size: clamp(1.4rem, 1.8vw, 1.8rem);
  line-height: 1.6;
  margin-top: 1em;
  padding-left: min(1.2vw, 1.2rem);
}
#services .l-services__web__content li:first-of-type, #services .l-services__ad__content li:first-of-type {
  margin-top: 2.5em;
}
#services .l-services__web__content a, #services .l-services__ad__content a {
  font-size: min(4vw, 4rem);
  font-weight: 400;
  line-height: 1;
  padding-left: min(1.2vw, 1.2rem);
  position: relative;
}
@media screen and (width < 768px) {
  #services .l-services__web__content a, #services .l-services__ad__content a {
    font-size: 6vw;
  }
}
#services .l-services__categories {
  margin-top: min(15vw, 20rem);
}
#services .l-services__categories__heading {
  margin-right: min(6vw, 8rem);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (width < 1400px) {
  #services .l-services__categories__heading {
    width: 100%;
  }
  #services .l-services__categories__heading h2 br {
    display: none;
  }
}
#services .l-services__categories__heading h2 {
  font-size: min(3.6vw, 6rem);
  font-weight: 400;
  line-height: 1.1;
}
@media screen and (width < 768px) {
  #services .l-services__categories__heading h2 {
    font-size: 9vw;
  }
}
#services .l-services__categories__list {
  border-top: 1px solid rgba(255, 255, 255, 0.7);
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media screen and (width < 1400px) {
  #services .l-services__categories__list {
    -webkit-box-flex: 1;
        -ms-flex: auto;
            flex: auto;
    margin-top: 3vw;
    width: 100%;
  }
}
@media screen and (width < 768px) {
  #services .l-services__categories__list {
    margin-top: 6vw;
  }
}
#services .l-services__categories__list li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  padding: min(2.2vw, 2.8rem) 0;
}
@media screen and (width < 768px) {
  #services .l-services__categories__list li {
    padding: 6vw 0;
  }
}
#services .l-services__categories__list dl {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
#services .l-services__categories__list--icon {
  margin-right: min(4vw, 5rem);
  width: min(10vw, 11rem);
}
@media screen and (width < 768px) {
  #services .l-services__categories__list--icon {
    margin-right: 6vw;
    width: 24vw;
  }
}
#services .l-services__categories__list .icon_others {
  padding: min(1.2vw, 1.2rem);
}
#services .l-services__categories__list .icon_others {
  padding: min(1.2vw, 1.2rem);
}
#services .l-services__categories__list--lavel {
  font-size: min(1.9vw, 2.2rem);
  font-weight: 400;
  line-height: 1.6;
  margin-right: min(4vw, 5rem);
  width: 10em;
}
@media screen and (width < 768px) {
  #services .l-services__categories__list--lavel {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font-size: 1.9rem;
    width: auto;
  }
}
#services .l-services__categories__list--detail {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media screen and (width < 768px) {
  #services .l-services__categories__list--detail {
    -webkit-box-flex: 1;
        -ms-flex: auto;
            flex: auto;
    margin-top: 1em;
    width: 100%;
  }
}

/*-------- works --------*/
#works .l-works__nav li {
  aspect-ratio: 34/45;
  margin-bottom: 2rem;
  position: relative;
  overflow: hidden;
  width: min(19%, 34rem);
}
@media screen and (width < 768px) {
  #works .l-works__nav li {
    width: 48.5%;
  }
  #works .l-works__nav li:nth-of-type(n + 3) {
    margin-top: 0.75em;
  }
}
#works .l-works__nav li span {
  font-size: min(3vw, 3rem);
  font-weight: 400;
  line-height: 1;
  position: absolute;
  inset: 0.7em auto auto 0.7em;
  z-index: 2;
}
@media screen and (width < 768px) {
  #works .l-works__nav li span {
    font-size: 8vw;
    inset: 0.2em auto auto 0.2em;
  }
}
#works .l-works__nav li img {
  aspect-ratio: 34/45;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: auto;
  position: relative;
  -webkit-transition: 0.6s all;
  transition: 0.6s all;
}
#works .l-works__nav li a {
  position: relative;
}
#works .l-works__nav li a::before {
  content: "";
  background-color: rgba(0, 0, 0, 0.3);
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  z-index: 1;
  -webkit-transition: 0.6s all;
  transition: 0.6s all;
}
@media screen and (width < 768px) {
  #works .l-works__nav li a::before {
    background-color: rgba(0, 0, 0, 0.15);
  }
}
#works .l-works__nav li a::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  width: min(3vw, 3rem);
  height: min(3vw, 3rem);
  position: absolute;
  inset: auto 0.7em 0.7em auto;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  z-index: 2;
}
@media screen and (width < 768px) {
  #works .l-works__nav li a::after {
    width: 7vw;
    height: 7vw;
    inset: auto 0.4em 0.4em auto;
  }
}
#works .l-works__nav li a:hover img {
  -webkit-transform: scale(1.12);
          transform: scale(1.12);
}
#works .l-works__nav li a:hover::before {
  background-color: rgba(0, 0, 0, 0.08);
}
#works .l-works__more {
  padding-right: clamp(2.4rem, 2.7vw, 2.7rem);
}
#works .l-works__list {
  padding-top: min(5vw, 5rem);
}
#works .l-works__item {
  margin-top: min(16vw, 16rem);
  scroll-margin-top: min(6vw, 6rem);
}
#works .l-works__item__data {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media screen and (width < 1300px) {
  #works .l-works__item__data {
    -webkit-box-flex: 1;
        -ms-flex: auto;
            flex: auto;
    width: 100%;
  }
}
#works .l-works__item__data span {
  font-size: min(9vw, 9rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  #works .l-works__item__data span {
    font-size: 14vw;
  }
}
#works .l-works__item__data--name {
  font-size: clamp(1.8rem, 1.8vw, 2rem);
  font-weight: 400;
  line-height: 1.6;
}
#works .l-works__item__data--url {
  margin-top: 1.8em;
  color: #999;
  font-size: clamp(1.5rem, 1.5vw, 1.7rem);
  line-height: 1.2;
  word-break: break-all;
}
#works .l-works__item__data--url a {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  font-size: clamp(1.5rem, 1.5vw, 1.7rem);
  line-height: 1.2;
  word-break: break-all;
}
#works .l-works__item__data--charge {
  margin-top: 1.8em;
}
#works .l-works__item__data--charge li {
  font-size: clamp(1.4rem, 1.5vw, 1.7rem);
  line-height: 1.2;
  margin-top: 0.6em;
  padding-left: 0.6em;
  position: relative;
}
#works .l-works__item__data--charge li::before {
  content: "-";
  position: absolute;
  inset: 0 auto 0 0;
}
@media screen and (width < 1300px) {
  #works .l-works__item__data--charge li {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    margin-right: 2em;
    margin-top: 0.3em;
  }
}
#works .l-works__item__image {
  margin-left: min(6vw, 6rem);
  width: min(60vw, 110rem);
}
@media screen and (width < 1300px) {
  #works .l-works__item__image {
    margin-left: auto;
    margin-top: 6vw;
    width: 100%;
  }
}

/*-------- news --------*/
#news .l-news {
  /* 記事詳細 */
}
#news .l-news__archive {
  margin-right: min(5vw, 12rem);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (width < 768px) {
  #news .l-news__archive {
    width: 80vw;
    margin-left: auto;
    margin-right: 0;
    margin-top: 4em;
  }
}
#news .l-news__archive dl {
  position: sticky;
  inset: 0 0 auto 0;
}
#news .l-news__archive dt {
  font-size: min(2vw, 2rem);
  font-weight: 400;
  line-height: 1.5;
}
@media screen and (width < 768px) {
  #news .l-news__archive dt {
    font-size: 6vw;
  }
}
#news .l-news__archive dd {
  margin-top: 0.2em;
}
#news .l-news__archive dd:first-of-type {
  margin-top: 0.8em;
}
@media screen and (width < 768px) {
  #news .l-news__archive dd {
    display: inline-block;
    margin-top: 1.8em;
    margin-right: 1.8em;
  }
  #news .l-news__archive dd:first-of-type {
    margin-top: 2em;
  }
}
#news .l-news__archive dd a {
  font-size: min(1.6vw, 1.7rem);
  font-weight: 300;
  line-height: 1.5;
  padding-left: 0.6em;
  position: relative;
}
@media screen and (width < 768px) {
  #news .l-news__archive dd a {
    font-size: 1.8rem;
  }
}
#news .l-news__archive dd a::before {
  content: "-";
  position: absolute;
  inset: 0 auto 0 0;
}
#news .l-news__archive dd a::after {
  content: "";
  background-color: rgba(255, 255, 255, 0.7);
  width: 0;
  height: 1px;
  position: absolute;
  inset: auto auto 0 0;
}
#news .l-news__archive dd a:hover::after {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
#news .l-news__archive dd span {
  font-size: 96%;
  margin-left: 0.8em;
}
#news .l-news__list {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media screen and (width < 768px) {
  #news .l-news__list {
    border: none;
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    margin-left: auto;
    margin-right: 0;
    width: 80vw;
  }
}
#news .l-news__list__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
}
#news .l-news__list__item:nth-of-type(1) {
  border-top: 1px solid rgba(255, 255, 255, 0.7);
}
@media screen and (width < 768px) {
  #news .l-news__list__item {
    border: none;
  }
}
#news .l-news__list__item a {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: min(1.2vw, 1.3rem) 0;
  position: relative;
}
@media screen and (width < 768px) {
  #news .l-news__list__item a {
    padding: 0 0 3em 0;
  }
}
#news .l-news__list__item a::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.05);
  width: 0%;
  height: 100%;
  position: absolute;
  inset: 0 auto 0 0;
  z-index: -1;
}
#news .l-news__list__item a:hover::before {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
#news .l-news__list__item img {
  aspect-ratio: 28/12;
  width: min(20vw, 28rem);
}
@media screen and (width < 768px) {
  #news .l-news__list__item img {
    width: 100%;
  }
}
#news .l-news__list__item dl {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-left: min(4vw, 5rem);
  position: relative;
}
@media screen and (width < 768px) {
  #news .l-news__list__item dl {
    margin-top: 1em;
    padding-left: 0;
  }
}
#news .l-news__list__item dl::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  width: 1.65em;
  height: 1.65em;
  position: absolute;
  inset: 0 0 0 auto;
  margin: auto 0 auto auto;
}
#news .l-news__list__item dl dt,
#news .l-news__list__item dl dd {
  font-size: clamp(1.6rem, 1.7vw, 1.8rem);
  font-weight: 300;
  line-height: 1.6;
}
#news .l-news__list__item dl dd {
  margin-top: 0.2em;
  padding-right: 3em;
}
#news .l-news__archive_year {
  font-size: clamp(2rem, 3.6vw, 4rem);
  font-weight: 400;
  line-height: 1;
  padding-bottom: 0.65em;
  position: relative;
}
#news .l-news__archive_year span {
  font-size: 88%;
  margin-left: 0.12em;
}
#news .l-news__content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media screen and (width < 768px) {
  #news .l-news__content {
    -webkit-box-flex: 1;
        -ms-flex: auto;
            flex: auto;
    width: 100%;
  }
}
#news .l-news__content__article {
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-left: transparent;
  border-right: transparent;
  padding: min(6vw, 6rem) 0;
}
#news .l-news__content__article--thumbnail {
  width: min(14vw, 28rem);
  margin-right: min(5vw, 6rem);
}
@media screen and (width < 1300px) {
  #news .l-news__content__article--thumbnail {
    width: 25vw;
  }
}
#news .l-news__content__article--thumbnail img {
  aspect-ratio: 28/12;
}
#news .l-news__content__article--detail {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media screen and (width < 1300px) {
  #news .l-news__content__article--detail {
    -webkit-box-flex: 1;
        -ms-flex: auto;
            flex: auto;
    margin-top: 5vw;
    width: 100%;
  }
}
#news .l-news__content__article--detail p {
  font-size: clamp(1.5rem, 1.7vw, 1.7rem);
}
#news .l-news__content__article--detail p strong {
  font-size: 130%;
  line-height: 1.7;
}
#news .l-news__content__article__title {
  font-size: clamp(2rem, 2.8vw, 2.8rem);
  font-weight: 400;
  line-height: 1.6;
}

/*-------- company --------*/
#company .l-company__overview__heading, #company .l-company__access__heading {
  width: min(30%, 38rem);
}
@media screen and (width < 768px) {
  #company .l-company__overview__heading, #company .l-company__access__heading {
    width: 100%;
  }
}
#company .l-company__overview__heading h2, #company .l-company__access__heading h2 {
  font-size: min(5.5vw, 7rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  #company .l-company__overview__heading h2, #company .l-company__access__heading h2 {
    font-size: 10vw;
  }
}
#company .l-company__overview__data {
  border-top: 1px solid rgba(255, 255, 255, 0.7);
  width: max(62%, 100% - 42rem);
}
@media screen and (width < 768px) {
  #company .l-company__overview__data {
    width: 100%;
    margin-top: 3em;
  }
}
#company .l-company__overview__data dl {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0.8em 0;
}
#company .l-company__overview__data dl dt {
  width: 7em;
  font-weight: 400;
}
#company .l-company__overview__data dl dd {
  width: calc(100% - 8em);
}
#company .l-company__overview__data dl dd li {
  padding-left: 1em;
  text-indent: -1em;
}
@media screen and (width < 768px) {
  #company .l-company__overview__data .list-revert {
    width: revert;
    margin-top: 0.5em;
  }
}
#company .l-company__overview__data__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
#company .l-company__overview__data__contact dl {
  border: none;
  margin-top: 0.2em;
  padding: 0;
  width: 100%;
}
#company .l-company__overview__data__contact dl:first-of-type {
  margin-top: 0;
}
#company .l-company__overview__data__contact dt {
  width: 8em;
}
#company .l-company__access__map {
  width: max(62%, 100% - 42rem);
}
@media screen and (width < 768px) {
  #company .l-company__access__map {
    width: 100%;
    margin-top: 3em;
  }
}
#company .l-company__access__map__canvas {
  background: #666;
  height: 72rem;
}
@media screen and (width < 1400px) {
  #company .l-company__access__map__canvas {
    aspect-ratio: 685/720;
    height: auto;
  }
}
@media screen and (width < 768px) {
  #company .l-company__access__map__canvas {
    aspect-ratio: 1/1.5;
  }
}

/*-------- recruit --------*/
#recruit .l-recruit__job, #recruit .l-recruit__detail {
  width: min(100%, 100rem);
  margin-left: auto;
  margin-right: 0;
}
#recruit .l-recruit__job__lead {
  font-size: clamp(1.8rem, 2.2vw, 2.4rem);
  font-weight: 400;
  line-height: 1.75;
}
#recruit .l-recruit__job__list {
  border-top: 1px solid rgba(255, 255, 255, 0.7);
}
#recruit .l-recruit__job__list li {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: min(2vw, 1.5rem) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
}
@media screen and (width < 768px) {
  #recruit .l-recruit__job__list li {
    padding: 3vw 0;
  }
}
#recruit .l-recruit__job__list li p {
  font-size: min(5.2vw, 5.6rem);
  font-weight: 400;
  line-height: 1;
}
@media screen and (width < 768px) {
  #recruit .l-recruit__job__list li p {
    font-size: 10vw;
    width: 100%;
  }
}
#recruit .l-recruit__job__list li ruby {
  font-size: clamp(1.4rem, 1.8vw, 1.8rem);
  line-height: 1.65;
}
@media screen and (width < 768px) {
  #recruit .l-recruit__job__list li ruby {
    margin-top: 0.25em;
    width: 100%;
  }
}
#recruit .l-recruit__job__bridge {
  font-size: clamp(1.6rem, 1.8vw, 1.8rem);
  line-height: 1.75;
}
#recruit .l-recruit__detail h2 {
  background-color: #333;
  color: white;
  font-size: clamp(1.8rem, 2.2vw, 2.2rem);
  font-weight: 400;
  line-height: 1.6;
  margin-top: 2.5em;
  margin-bottom: 1.25em;
  padding: 0.5em 1em 0.4em;
}
#recruit .l-recruit__detail h3 {
  border-left: 3px solid #666;
  font-size: clamp(1.8rem, 2.2vw, 2.2rem);
  font-weight: 400;
  line-height: 1.6;
  padding-left: 0.8em;
  margin-top: 1.75em;
}
#recruit .l-recruit__detail p,
#recruit .l-recruit__detail li {
  font-size: clamp(1.6rem, 1.8vw, 1.8rem);
  font-weight: 300;
  line-height: 1.75;
}
#recruit .l-recruit__detail p em,
#recruit .l-recruit__detail li em {
  font-size: 115%;
  font-weight: 400;
}
#recruit .l-recruit__detail p strong,
#recruit .l-recruit__detail li strong {
  font-size: clamp(2.4rem, 3.6vw, 4rem);
  line-height: 1.55;
}
#recruit .l-recruit__detail p b,
#recruit .l-recruit__detail li b {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  font: inherit;
}
#recruit .l-recruit__detail li {
  text-indent: -1em;
  padding-left: 1em;
}
#recruit .l-recruit__detail p:nth-child(n+2),
#recruit .l-recruit__detail ul:nth-child(n+2) {
  margin-top: 1em;
}
#recruit .l-recruit__entry, #recruit .l-recruit__entry__mynavi, #recruit .l-recruit__entry__duda {
  border: 1px solid rgba(255, 255, 255, 0.7);
  margin-left: auto;
  margin-right: 0;
  padding: min(4vw, 2rem);
  width: min(100%, 100rem);
}
#recruit .l-recruit__entry p, #recruit .l-recruit__entry__mynavi p, #recruit .l-recruit__entry__duda p {
  font-size: min(2vw, 2.2rem);
  font-weight: 400;
  line-height: 1.65;
  margin-right: min(5vw, 6rem);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (width < 768px) {
  #recruit .l-recruit__entry p, #recruit .l-recruit__entry__mynavi p, #recruit .l-recruit__entry__duda p {
    font-size: 4.4vw;
    margin-right: auto;
    text-align: center;
    width: 100%;
  }
}
#recruit .l-recruit__entry p {
  text-align: center;
  width: 100%;
}
@media screen and (width < 768px) {
  #recruit .l-recruit__entry p {
    font-size: 1.8rem;
    text-align: left;
  }
}
#recruit .l-recruit__entry__mynavi a {
  width: min(30vw, 30rem);
}
@media screen and (width < 768px) {
  #recruit .l-recruit__entry__mynavi a {
    margin-top: 1em;
    width: 90%;
  }
}
#recruit .l-recruit__entry__mynavi img {
  aspect-ratio: 15/4;
}
#recruit .l-recruit__entry__duda a {
  width: min(24vw, 24rem);
}
@media screen and (width < 768px) {
  #recruit .l-recruit__entry__duda a {
    margin-top: 1em;
    width: 90%;
  }
}
#recruit .l-recruit__entry__duda img {
  aspect-ratio: 2/1;
}

/*-------- contact --------*/
#contact .l-contact__contents__lead, #contact .l-contact__contents__message {
  margin-left: auto;
  margin-right: 0;
  width: calc(80rem + 50% - 40rem);
}
@media screen and (width < 768px) {
  #contact .l-contact__contents__lead, #contact .l-contact__contents__message {
    width: 100%;
  }
}
#contact .l-contact__contents__message {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  font-size: clamp(2.2rem, 3.6vw, 3.6rem);
  font-weight: 400;
  line-height: 1.6;
}
#contact .l-contact__contents hr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  width: 100%;
}
#contact .l-contact__contents__form {
  margin-left: auto;
  margin-right: 0;
  width: calc(80rem + 50% - 40rem);
}
@media screen and (width < 1000px) {
  #contact .l-contact__contents__form {
    width: 100%;
  }
}
#contact .l-contact__contents__form form {
  width: min(96%, 80rem);
}
@media screen and (width < 768px) {
  #contact .l-contact__contents__form form {
    width: 100%;
  }
}
#contact .l-contact__contents__form li {
  margin-top: clamp(4rem, 4.5vw, 4.5rem);
}
#contact .l-contact__contents__form__label {
  font-size: clamp(1.7rem, 2.2vw, 2.2rem);
  font-weight: 400;
  line-height: 1.4;
  padding-left: 1em;
  position: relative;
}
#contact .l-contact__contents__form__label::before {
  content: "・";
  width: 1em;
  height: 1em;
  position: absolute;
  inset: auto auto auto 0;
}
#contact .l-contact__contents__form__label i {
  color: #fc5b5b;
  font-size: clamp(1.4rem, 1.5vw, 1.6rem);
  font-weight: 300;
  margin-left: 0.3em;
}
#contact .l-contact__contents__form__inputted {
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  color: #ccc;
  font-size: clamp(1.6rem, 2vw, 2rem);
  font-weight: 300;
  line-height: 1.6;
  padding: 0.8em 0 1em 1.1em;
  width: 90%;
}
#contact .l-contact__contents__form__select, #contact .l-contact__contents__form__field {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #333;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  color: #fff;
  display: block;
  font-size: clamp(1.5rem, 1.8vw, 1.8rem);
  font-weight: 300;
  line-height: 1;
  margin-top: 0.8em;
  padding: 0.8em 1.2em 0.9em;
  position: relative;
  width: 100%;
}
#contact .l-contact__contents__form__select {
  background: #333 url(../images/contact/contact_select_arrow.svg) no-repeat calc(100% - 1em) 50%/1.15em 1em;
  padding: 1em 1.2em 0.9em;
}
#contact .l-contact__contents__form__select:invalid {
  color: #999;
}
#contact .l-contact__contents__form__select:focus {
  color: #fff;
}
#contact .l-contact__contents__form input[type=number]::-webkit-inner-spin-button,
#contact .l-contact__contents__form input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
  -moz-appearance: textfield;
}
#contact .l-contact__contents__form__agree {
  display: block;
  margin-top: clamp(4rem, 6vw, 6rem);
  font-size: clamp(1.4rem, 1.8vw, 1.8rem);
  line-height: 1.6;
  position: relative;
}
#contact .l-contact__contents__form__agree__check {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  vertical-align: middle;
}
#contact .l-contact__contents__form__agree span {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  cursor: pointer;
  margin-left: 1em;
}
#contact .l-contact__contents__form__agree input[type=checkbox] {
  cursor: pointer;
  vertical-align: middle;
  position: relative;
  width: 4rem;
  height: 4rem;
}
#contact .l-contact__contents__form__agree input[type=checkbox]::before, #contact .l-contact__contents__form__agree input[type=checkbox]::after {
  content: "";
  display: block;
  width: 4rem;
  height: 4rem;
  position: absolute;
  inset: 0 auto 0 0;
  margin: auto;
}
#contact .l-contact__contents__form__agree input[type=checkbox]::before {
  background-color: #333;
  border: 1px solid rgba(255, 255, 255, 0.7);
  z-index: 1;
}
#contact .l-contact__contents__form__agree input[type=checkbox]::after {
  background: #111 url(../images/contact/check_mark.svg) no-repeat center/70% 70%;
  border: 1px solid rgba(255, 255, 255, 0.7);
  z-index: 2;
  opacity: 0;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
#contact .l-contact__contents__form__agree input[type=checkbox]:checked::after {
  opacity: 1;
}
#contact .l-contact__contents__form__submit {
  border: 1px solid rgba(255, 255, 255, 0.7);
  cursor: pointer;
  position: relative;
  width: min(100%, 46rem);
  z-index: 999;
}
@media screen and (width < 768px) {
  #contact .l-contact__contents__form__submit {
    width: 100%;
  }
}
#contact .l-contact__contents__form__submit::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  width: 1.65em;
  height: 1.65em;
  position: absolute;
  inset: 0 1em 0 auto;
  margin: auto;
  z-index: 1;
}
#contact .l-contact__contents__form__submit::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.1);
  width: 0%;
  height: 100%;
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 1;
}
#contact .l-contact__contents__form__submit:hover {
  border: 1px solid white;
}
#contact .l-contact__contents__form__submit:hover::before {
  width: 100%;
  -webkit-transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
  transition: 0.4s cubic-bezier(0.5, 0, 0.75, 0);
}
#contact .l-contact__contents__form__submit__icon {
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: min(2.4vw, 2.4rem);
  position: absolute;
  inset: 0 auto 0 1em;
}
@media screen and (width < 768px) {
  #contact .l-contact__contents__form__submit__icon {
    font-size: 5.4vw;
  }
}
#contact .l-contact__contents__form__submit__button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: transparent;
  border: none;
  color: white;
  font-size: min(2.4vw, 2.4rem);
  font-weight: 400;
  padding: 0.7em 1em 0.7em 2.5em;
  position: relative;
  text-align: left;
  width: 100%;
  z-index: 10;
}
@media screen and (width < 768px) {
  #contact .l-contact__contents__form__submit__button {
    padding: 1.2em 1em 1.2em 2.5em;
    font-size: 5.4vw;
  }
}
#contact .l-contact__contents__form__back {
  cursor: pointer;
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  z-index: 999;
}
@media screen and (width < 768px) {
  #contact .l-contact__contents__form__back {
    width: 100%;
  }
}
#contact .l-contact__contents__form__back::after {
  content: "";
  background: url(../images/common/link_arrow.svg) no-repeat center/98% 98%;
  width: 1.66em;
  height: 1.66em;
  position: absolute;
  inset: 0 auto 0 0;
  margin: auto;
  -webkit-transform: scaleX(-1);
          transform: scaleX(-1);
  z-index: 1;
}
#contact .l-contact__contents__form__back__button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: transparent;
  border: none;
  color: white;
  font-size: min(2.2vw, 2.2rem);
  font-weight: 300;
  line-height: 2;
  padding: 0 0 0 1.75em;
  text-align: left;
  width: 100%;
}
@media screen and (width < 768px) {
  #contact .l-contact__contents__form__back__button {
    font-size: 4.8vw;
  }
}

/*-------- notfound --------*/
#notfound .l-notfound__message {
  font-size: clamp(2.4rem, 3.8vw, 4rem);
  font-weight: 500;
  line-height: 1.6;
}
#notfound .l-notfound__detail {
  font-size: clamp(1.5rem, 1.8vw, 1.8rem);
}