﻿@charset "UTF-8";

/**
 *
 * 繧ｳ繝ｳ繝・Φ繝・ *
**/

/* ========== Animation ========== */
.spin-right {
  animation: spinRight 60s linear infinite;
}

@keyframes spinRight {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.spin-left {
  animation: spinLeft 60s linear infinite;
}

@keyframes spinLeft {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(-360deg);
  }
}

@keyframes waveMove {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}

@keyframes tick60 {
  from {
    transform: translate(-50%, 0) rotate(0deg);
  }
  to {
    transform: translate(-50%, 0) rotate(360deg);
  }
}

@keyframes tick3600 {
  from {
    transform: translate(-50%, 0) rotate(0deg);
  }
  to {
    transform: translate(-50%, 0) rotate(360deg);
  }
}

.slideup01 {
  transform: translate(0, 60px);
  transition: all 0.7s 0s ease-in-out;
  opacity: 0;
}
.slideup01.scrollin {
  transform: translate(0, 0);
  opacity: 1;
}
.slideup02 {
  clip-path: inset(0 100% 0 0);
  transform: translate(0, 60px);
  transition: all 0.7s 0s ease-in-out;
}
.slideup02.scrollin {
  clip-path: inset(0 0% 0 0);
  transform: translate(0, 0);
}

.zoomin01 {
  opacity: 0;
  transform: scale(1.2);
  transition: all 1.3s 0s ease-in-out;
}
.zoomin01.scrollin {
  transform: scale(1);
  opacity: 1;
}
.zoomin02 {
  opacity: 0;
  transform: scale(1.2);
  transition: all 1.3s 0.8s ease-in-out;
}
.zoomin02.scrollin {
  transform: scale(1);
  opacity: 1;
}

/* ========== Common Components ========== */
.c-txt-right {
  text-align: right;
}

.c-txt-left {
  text-align: left;
}

.c-txt-center {
  text-align: center;
}

.c-txt-center img {
  margin-left: auto;
  margin-right: auto;
}

.c-eng {
  font-family: "Marcellus";
}

.c-gothic {
  font-family: "Noto Sans JP";
}

.c-opa {
  transition: all 0.4s 0s;
}
.c-opa:hover {
  opacity: 0.6;
}

/* c-page-title */
.c-page-title {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.c-page-title.c-page-title--recruit {
  background: url("../images/recruit/page_title_01.jpg") no-repeat center center;
  background-size: cover;
}
.c-page-title.c-page-title--law {
  background: url("../images/law/page_title_01.png") no-repeat center center;
  background-size: cover;
}
.c-page-title.c-page-title--privacy {
  background: url("../images/privacy/page_title_01.png") no-repeat center center;
  background-size: cover;
}
.c-page-title.c-page-title--policy {
  background: url("../images/policy/page_title_01.png") no-repeat center center;
  background-size: cover;
}
.c-page-title.c-page-title--service {
  background: url("../images/service/page_title_01.png") no-repeat center center;
  background-size: cover;
}
.c-page-title.c-page-title--about {
  background: url("../images/about/page_title_01.jpg") no-repeat center center;
  background-size: cover;
}
.c-page-title.c-page-title--contact {
  background: url("../images/contact/page_title_01.png") no-repeat center center;
  background-size: cover;
}
.c-page-title.c-page-title--project {
  background: url("../images/project/project-fv.png") no-repeat center center;
  background-size: cover;
}
.c-page-title.c-page-title--project .inner.c-txt-center {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.c-page-title.c-page-title--project h1 {
  margin: 0;
}
.c-page-title.c-page-title--project .eng {
  margin-top: 6px;
}
.c-page-title h1 {
  margin: 0 0 5px 0;
  line-height: 1.2em;
  font-size: 48px;
  font-weight: 600;
  color: #fff;
}
.c-page-title .eng {
  margin: 0 0 0 0;
  line-height: 1.2em;
  font-size: 18px;
  font-weight: 400;
  color: #fff;
}
.c-page-title.c-page-title--law h1 {
  color: #314f6a;
}
.c-page-title.c-page-title--law .eng {
  color: #314f6a;
}
.c-page-title.c-page-title--about h1 {
  color: #314f6a;
}
.c-page-title.c-page-title--about .eng {
  color: #314f6a;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .c-page-title {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 23.077vw;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .c-page-title h1 {
    margin: 0 0 0.385vw 0;
    line-height: 1.2em;
    font-size: 3.692vw;
    font-weight: 600;
    color: #fff;
  }
  .c-page-title .eng {
    margin: 0 0 0 0;
    line-height: 1.2em;
    font-size: 1.385vw;
    font-weight: 400;
    color: #fff;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .c-page-title {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 53.333vw;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .c-page-title.c-page-title--law {
    background: url("../images/law/page_title_01-sp.png") no-repeat center
      center;
    background-size: cover;
  }
  .c-page-title.c-page-title--privacy {
    background: url("../images/privacy/page_title_01-sp.png") no-repeat center
      center;
    background-size: cover;
  }
  .c-page-title.c-page-title--policy {
    background: url("../images/policy/page_title_01-sp.png") no-repeat center
      center;
    background-size: cover;
  }
  .c-page-title.c-page-title--service {
    background: url("../images/service/page_title_01-sp.png") no-repeat center
      center;
    background-size: cover;
  }
  .c-page-title.c-page-title--about {
    background: url("../images/about/page_title_01-sp.png") no-repeat center
      center;
    background-size: cover;
  }
  .c-page-title.c-page-title--contact {
    background: url("../images/contact/page_title_01-sp.png") no-repeat center
      center;
    background-size: cover;
  }
  .c-page-title.c-page-title--news {
    background: url("../images/news/news-fv-sp.png") no-repeat center center;
    background-size: cover;
  }
  .c-page-title h1 {
    margin: 0 0 1.333vw 0;
    line-height: 1.2em;
    font-size: 6.4vw;
    font-weight: 600;
    color: #fff;
  }
  .c-page-title .eng {
    margin: 0 0 0 0;
    line-height: 1.2em;
    font-size: 3.467vw;
    font-weight: 400;
    color: #fff;
  }
}

/* .c-base-head */
.c-base-head {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  text-align: center;
  position: relative;
  z-index: 10;
}
.c-base-head h2 {
  margin: 0 0 0 0;
  padding: 0 0 12px 0;
  line-height: 1.2em;
  font-size: 35px;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.c-base-head .eng {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.03em;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .c-base-head {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    text-align: center;
    position: relative;
    z-index: 10;
  }
  .c-base-head h2 {
    margin: 0 0 0 0;
    padding: 0 0 12px 0;
    line-height: 1.2em;
    font-size: 2.692vw;
    font-weight: 600;
    letter-spacing: 0.04em;
  }
  .c-base-head .eng {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    line-height: 1.2em;
    font-size: 1.231vw;
    font-weight: 400;
    letter-spacing: 0.03em;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .c-base-head {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    text-align: center;
    position: relative;
    z-index: 10;
  }
  .c-base-head h2 {
    margin: 0 0 0 0;
    padding: 0 0 12px 0;
    line-height: 1.2em;
    font-size: 25px;
    font-weight: 600;
    letter-spacing: 0.04em;
  }
  .c-base-head .eng {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    line-height: 1.2em;
    font-size: 3.733vw;
    font-weight: 400;
    letter-spacing: 0.03em;
  }
}

/* CTA繝懊ち繝ｳ蜈ｱ騾・ 蟾ｦ竊貞承縺ｫ蝪励ｊ・・ackground-size縲・-index:-1 縺ｮ逍台ｼｼ隕∫ｴ縺ｯ隕ｪ縺ｮ閭梧勹縺ｫ髫繧後ｋ・・*/
.c-link-btn01,
.c-link-btn02 {
  --c-linkbtn-ease: cubic-bezier(0.36, 0.9, 0.93, 0.34);
  --c-linkbtn-dur: 0.3s;
  --c-linkbtn-fill: linear-gradient(180deg, #3d6e94, #4d99d1);
  --c-linkbtn-fill-active: rgb(28, 73, 107);
}
.c-link-btn03 {
  --c-linkbtn-ease: cubic-bezier(0.36, 0.9, 0.93, 0.34);
  --c-linkbtn-dur: 0.3s;
  --c-linkbtn-fill: linear-gradient(180deg, #e9be3c 40.2%, #f8a622 59.3%);
  --c-linkbtn-fill-active: #c97a18;
}
.c-link-btn01,
.c-link-btn02,
.c-link-btn03,
.c-link-btn03--invert {
  isolation: isolate;
}
.c-link-btn01::before,
.c-link-btn02::before,
.c-link-btn03::before,
.c-link-btn03--invert::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: var(--c-linkbtn-fill);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  z-index: -1;
}
.c-link-btn01:hover::before,
.c-link-btn02:hover::before,
.c-link-btn03:not(.c-link-btn03--invert):hover::before,
.c-link-btn03--invert:hover::before,
.c-link-btn01:active::before,
.c-link-btn02:active::before,
.c-link-btn03:not(.c-link-btn03--invert):active::before,
.c-link-btn03--invert:active::before {
  transform: scaleX(1);
}
.c-link-btn01:active::before,
.c-link-btn02:active::before,
.c-link-btn03:not(.c-link-btn03--invert):active::before,
.c-link-btn03--invert:active::before {
  background-image: none;
  background-color: var(--c-linkbtn-fill-active);
}
.c-link-btn01:active,
.c-link-btn02:active,
.c-link-btn03:not(.c-link-btn03--invert):active,
.c-link-btn03--invert:active {
  background-image: none;
}

/* .c-link-btn01 */
.c-link-btn01 {
  width: 100%;
  height: 50px;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 400;
  color: #314f6a;
  background-color: #fff;
  border: 1px solid #314f6a;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.03em;
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  transition:
    color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
    border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
}
.c-link-btn01:hover {
  text-decoration: none;
  color: #fff;
  border-color: transparent;
}
.c-link-btn01:active {
  text-decoration: none;
  color: #fff;
  border-color: transparent;
}
.c-link-btn01::after {
  width: 12px;
  height: 12px;
  content: "";
  background: url("../images/common/arrow_01.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: 50%;
  right: 17px;
  transform: translate(0, -50%);
  z-index: 1;
  transition: background 0.2s ease;
}
.c-link-btn01:hover::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}
.c-link-btn01:active::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .c-link-btn01 {
    width: 100%;
    height: 3.846vw;
    line-height: 1.2em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #314f6a;
    background-color: #fff;
    border: 1px solid #314f6a;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.03em;
    position: relative;
    border-radius: 0.308vw;
    overflow: hidden;
    transition:
      color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
      border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  }
  .c-link-btn01:hover {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn01:active {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn01::after {
    width: 0.923vw;
    height: 0.923vw;
    content: "";
    background: url("../images/common/arrow_01.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 1.308vw;
    transform: translate(0, -50%);
    z-index: 1;
    transition: background 0.2s ease;
  }
  .c-link-btn01:hover::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .c-link-btn01:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .c-link-btn01 {
    width: 100%;
    height: 13.333vw;
    line-height: 1.2em;
    font-size: 4.267vw;
    font-weight: 400;
    color: #314f6a;
    background-color: #fff;
    border: 1px solid #314f6a;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.03em;
    position: relative;
    border-radius: 1.067vw;
    overflow: hidden;
    transition:
      color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
      border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  }
  .c-link-btn01:hover {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn01:active {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn01::after {
    width: 3.2vw;
    height: 3.2vw;
    content: "";
    background: url("../images/common/arrow_01.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 4.533vw;
    transform: translate(0, -50%);
    z-index: 1;
    transition: background 0.2s ease;
  }
  .c-link-btn01:hover::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .c-link-btn01:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
}

/* .c-link-btn02 */
.c-link-btn02 {
  width: 100%;
  height: 50px;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 400;
  color: #314f6a;
  background-color: #fff;
  border: 1px solid #314f6a;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.03em;
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  transition:
    color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
    border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
}
.c-link-btn02:hover {
  text-decoration: none;
  color: #fff;
  border-color: transparent;
}
.c-link-btn02:active {
  text-decoration: none;
  color: #fff;
  border-color: transparent;
}
.c-link-btn02::after {
  width: 12px;
  height: 12px;
  content: "";
  background: url("../images/common/arrow_01.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: 50%;
  right: 17px;
  transform: translate(0, -50%);
  z-index: 1;
  transition: background 0.2s ease;
}
.c-link-btn02:hover::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}
.c-link-btn02:active::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .c-link-btn02 {
    width: 100%;
    height: 3.846vw;
    line-height: 1.2em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #314f6a;
    background-color: #fff;
    border: 1px solid #314f6a;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.03em;
    position: relative;
    border-radius: 0.308vw;
    overflow: hidden;
    transition:
      color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
      border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  }
  .c-link-btn02:hover {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn02:active {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn02::after {
    width: 0.923vw;
    height: 0.923vw;
    content: "";
    background: url("../images/common/arrow_01.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 1.308vw;
    transform: translate(0, -50%);
    z-index: 1;
    transition: background 0.2s ease;
  }
  .c-link-btn02:hover::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .c-link-btn02:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .c-link-btn02 {
    width: 100%;
    height: 13.333vw;
    line-height: 1.2em;
    font-size: 4.267vw;
    font-weight: 400;
    color: #314f6a;
    background-color: #fff;
    border: 1px solid #314f6a;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.03em;
    position: relative;
    border-radius: 1.067vw;
    overflow: hidden;
    transition:
      color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
      border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  }
  .c-link-btn02:hover {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn02:active {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn02::after {
    width: 3.2vw;
    height: 3.2vw;
    content: "";
    background: url("../images/common/arrow_01.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 4.533vw;
    transform: translate(0, -50%);
    z-index: 1;
    transition: background 0.2s ease;
  }
  .c-link-btn02:hover::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .c-link-btn02:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
}

/* .c-link-btn03 */
.c-link-btn03 {
  width: 100%;
  height: 50px;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 400;
  color: #fff;
  background-color: #ea8c1a;
  border: 1px solid rgba(234, 140, 26, 1);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.03em;
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  transition:
    color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
    border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
}
.c-link-btn03:hover {
  text-decoration: none;
  color: #fff;
  border-color: transparent;
}
.c-link-btn03:active {
  text-decoration: none;
  color: #fff;
  border-color: transparent;
}
.c-link-btn03::after {
  width: 12px;
  height: 12px;
  content: "";
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: 50%;
  right: 17px;
  transform: translate(0, -50%);
  z-index: 1;
  transition: background 0.2s ease;
}
.c-link-btn03:hover::after,
.c-link-btn03:active::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}

/* .c-link-btn03--invert（白地・オレンジ枠／ホバーで c-link-btn03 と反転） */
.c-link-btn03--invert {
  color: #ea8c1a;
  background-color: #fff;
  border: 1px solid rgba(234, 140, 26, 1);
}
.c-link-btn03--invert::after {
  background: url("../images/common/arrow_04.png") no-repeat center center;
  background-size: 100% 100%;
}
.c-link-btn03--invert:hover,
.c-link-btn03--invert:active {
  color: #fff;
  border-color: transparent;
}
.c-link-btn03--invert:active {
  background-image: none;
}
.c-link-btn03--invert:hover::after,
.c-link-btn03--invert:active::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .c-link-btn03 {
    width: 100%;
    height: 3.846vw;
    line-height: 1.2em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #fff;
    background-color: #ea8c1a;
    border: 1px solid rgba(234, 140, 26, 1);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.03em;
    position: relative;
    border-radius: 0.308vw;
    overflow: hidden;
    transition:
      color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
      border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  }
  .c-link-btn03:hover {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn03:active {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn03::after {
    width: 0.923vw;
    height: 0.923vw;
    content: "";
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 1.308vw;
    transform: translate(0, -50%);
    z-index: 1;
    transition: background 0.2s ease;
  }

  .c-link-btn03--invert {
    color: #ea8c1a;
    background-color: #fff;
    border: 1px solid rgba(234, 140, 26, 1);
  }

  .c-link-btn03--invert::after {
    background: url("../images/common/arrow_04.png") no-repeat center center;
    background-size: 100% 100%;
  }

  .c-link-btn03--invert:hover,
  .c-link-btn03--invert:active {
    color: #fff;
    border-color: transparent;
  }

  .c-link-btn03--invert:active {
    background-image: none;
  }

  .c-link-btn03--invert:hover::after,
  .c-link-btn03--invert:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .c-link-btn03 {
    width: 100%;
    height: 13.333vw;
    line-height: 1.2em;
    font-size: 4.267vw;
    font-weight: 400;
    color: #fff;
    background-color: #ea8c1a;
    border: 1px solid rgba(234, 140, 26, 1);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.03em;
    position: relative;
    border-radius: 1.067vw;
    overflow: hidden;
    transition:
      color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
      border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  }
  .c-link-btn03:hover {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn03:active {
    text-decoration: none;
    color: #fff;
    border-color: transparent;
  }
  .c-link-btn03::after {
    width: 3.2vw;
    height: 3.2vw;
    content: "";
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 4.533vw;
    transform: translate(0, -50%);
    z-index: 1;
    transition: background 0.2s ease;
  }

  .c-link-btn03--invert {
    color: #ea8c1a;
    background-color: #fff;
    border: 1px solid rgba(234, 140, 26, 1);
  }

  .c-link-btn03--invert::after {
    background: url("../images/common/arrow_04.png") no-repeat center center;
    background-size: 100% 100%;
  }

  .c-link-btn03--invert:hover,
  .c-link-btn03--invert:active {
    color: #fff;
    border-color: transparent;
  }

  .c-link-btn03--invert:active {
    background-image: none;
  }

  .c-link-btn03--invert:hover::after,
  .c-link-btn03--invert:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
}

.c-openbtn {
}
@media only screen and (max-width: 767px) {
  .c-openbtn {
    background: none;
    position: absolute;
    display: block;
    top: 0;
    right: 0;
    cursor: pointer;
    width: 60px;
    height: 60px;
    z-index: 1001;
    transition: all 0.6s 0s;
  }
  .c-openbtn {
  }
  .c-openbtn.active {
    background: #dce9f7;
  }
  .c-openbtn span {
    display: inline-block;
    transition: all 0.4s;
    position: absolute;
    left: 10px;
    height: 2px;
    background: #000;
    width: 40px;
  }

  .c-openbtn span:nth-of-type(1) {
    top: 15px;
  }
  .c-openbtn span:nth-of-type(2) {
    top: 29px;
  }
  .c-openbtn span:nth-of-type(3) {
    top: 42px;
  }
  .c-openbtn.active span:nth-of-type(1) {
    top: 27px;
    transform: rotate(-45deg);
  }
  .c-openbtn.active span:nth-of-type(2) {
    opacity: 0;
  }
  .c-openbtn.active span:nth-of-type(3) {
    top: 27px;
    transform: rotate(45deg);
  }
}

/* ========== Layout ========== */
:root {
  --site-header-h: 82px;
}

.wrapper {
  padding: 0;
  overflow-x: clip;
  max-width: 100%;
}

@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  :root {
    --site-header-h: 6.308vw;
  }
}

@media only screen and (max-width: 767px) {
  /* 375 */
  :root {
    --site-header-h: 60px;
  }
}

/* header */
.header {
  width: 100%;
  height: var(--site-header-h);
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1000;
}
.header img {
  display: block;
}
.header .header-inner {
  width: 100%;
  height: var(--site-header-h);
  position: relative;
}
.header .header-inner .logo {
  width: 186px;
  position: absolute;
  top: 21px;
  left: 94px;
  z-index: 2;
}
.header .header-inner .logo img {
  display: block;
}
.header .header-inner .logo h1 {
  margin: 0;
  padding: 0;
}
.header .header-inner .logo h1 a {
  display: inline-block;
  position: relative;
}
.header .header-inner .logo h1 a::after {
  content: none;
}
.header .header-inner .logo h1 a:hover::after,
.header .header-inner .logo h1 a:focus-visible::after {
  content: none;
}
.header .header-inner .navi {
  position: absolute;
  top: 33.5px;
  right: 359px;
  z-index: 2;
}
.header .header-inner .navi ul {
  display: flex;
  justify-content: flex-end;
}
.header .header-inner .navi ul li {
  margin: 0 0 0 29px;
  line-height: 1.2em;
  font-size: 14px;
  font-weight: 600;
}
.header .header-inner .navi ul li a {
  display: inline-block;
  position: relative;
}
.header .header-inner .navi ul li a:hover {
  text-decoration: none;
}
.header .header-inner .navi ul li a::after {
  width: calc(100% + 16px);
  height: 2px;
  content: "";
  background: url("../images/common/link_line_01.png") no-repeat center center;
  background-size: 100% 100%;
  display: block;
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translate(-50%, 0);
  clip-path: inset(0 100% 0 0);
  transition: all 0.5s 0s ease-in-out;
}
.header .header-inner .navi ul li a:hover::after {
  clip-path: inset(0 0 0 0);
}
.header .header-inner .navi ul li a.current::after {
  clip-path: inset(0 0 0 0);
}
.header .header-inner .contact-info {
  position: absolute;
  top: 11px;
  right: 31px;
}
.header .header-inner .contact-info .tel {
  width: 248px;
  height: 40px;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: 700;
  text-align: center;
  background: url("../images/common/tel_back_01.png") no-repeat center center;
  background-size: 100% 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.header .header-inner .contact-info .tel::before {
  margin: 0 9px 0 0;
  width: 20px;
  height: 20px;
  content: "";
  background: url("../images/common/icon_tel_01.png") no-repeat center center;
  background-size: 100% 100%;
  display: inline-block;
}
.header .header-inner .contact-info .business-hours {
  padding: 5px 0 0 0;
  line-height: 1.2em;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .header .header-inner .logo {
    width: 14.308vw;
    top: 1.615vw;
    left: 7.231vw;
  }
  .header .header-inner .navi {
    top: 2.577vw;
    right: 27.615vw;
  }
  .header .header-inner .navi ul li {
    margin: 0 0 0 2.231vw;
    line-height: 1.2em;
    font-size: 1.077vw;
    font-weight: 600;
  }
  .header .header-inner .navi ul li a::after {
    width: calc(100% + 1.231vw);
    height: 0.154vw;
    bottom: -0.308vw;
  }
  .header .header-inner .logo h1 a::after {
    width: calc(100% + 1.231vw);
    height: 0.154vw;
    bottom: -0.462vw;
  }
  .header .header-inner .contact-info {
    top: 0.846vw;
    right: 2.385vw;
  }
  .header .header-inner .contact-info .tel {
    width: 19.077vw;
    height: 3.077vw;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: 700;
  }
  .header .header-inner .contact-info .tel::before {
    margin: 0 0.692vw 0 0;
    width: 1.538vw;
    height: 1.538vw;
  }
  .header .header-inner .contact-info .business-hours {
    padding: 0.385vw 0 0 0;
    line-height: 1.2em;
    font-size: 0.923vw;
    font-weight: 600;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .header img {
    display: block;
  }
  .header .header-inner {
    width: 100%;
    position: relative;
  }
  .header .header-inner .logo {
    width: 186px;
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translate(0, -50%);
    z-index: 2;
  }
  .header .header-inner .logo img {
    display: block;
  }
  .header .header-inner .logo h1 a::after {
    width: calc(100% + 16px);
    height: 2px;
    bottom: -6px;
    left: 50%;
    transform: translate(-50%, 0);
    display: block;
  }
  .header .header-inner .navi {
    width: 100%;
    background: #dce9f7;
    overflow: hidden;
    position: absolute;
    top: var(--site-header-h);
    right: 0px;
    z-index: 2;
    display: none;
    padding: 0 11.2820512821vw;
    box-sizing: border-box;
  }
  .header .header-inner .navi ul {
    margin: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }
  .header .header-inner .navi ul li {
    margin: 0;
    background: url("../images/home/news_line_01.png") no-repeat center bottom;
    background-size: 100% 2px;
  }
  .header .header-inner .navi ul li a {
    padding: 24px 0 9px;
    text-align: left;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    position: relative;
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0;
    color: inherit;
  }
  .header .header-inner .navi ul li:first-child a {
    padding-top: 31px;
  }
  .header .header-inner .navi ul li a:hover {
    text-decoration: none;
  }
  .header .header-inner .navi ul li a::after {
    position: static;
    width: 4.75px;
    height: 8.6px;
    content: "";
    background: url("../images/home/drawer-vector.png") no-repeat center center;
    background-size: contain;
    display: block;
    clip-path: none;
    transform: none;
    bottom: auto;
    left: auto;
    transition: none;
  }
  .header .header-inner .navi ul li a.current {
    color: #359dd5;
  }
  .header .header-inner .contact-info {
    position: relative;
    top: auto;
    right: auto;
  }
  .header .header-inner .navi .contact-info.sp_disp {
    padding: 38px 0 37px;
  }
  .header .header-inner .contact-info .tel {
    margin: 0 auto;
    width: 248px;
    height: 40px;
    line-height: 1.2em;
    font-size: 25px;
    font-weight: 700;
    text-align: center;
    background: url("../images/common/tel_back_01.png") no-repeat center center;
    background-size: 100% 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .header .header-inner .contact-info .tel::before {
    margin: 0 9px 0 0;
    width: 20px;
    height: 20px;
    content: "";
    background: url("../images/common/icon_tel_01.png") no-repeat center center;
    background-size: 100% 100%;
    display: inline-block;
  }
  .header .header-inner .contact-info .business-hours {
    padding: 5px 0 0 0;
    line-height: 1.2em;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
  }
  .header .header-inner .navi .contact-info.sp_disp .business-hours {
    padding-bottom: 0;
  }
  .navi-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 999;
    background: transparent;
  }
  .navi-overlay.is-open {
    display: block;
  }
  body.is-navi-open {
    overflow: hidden;
    touch-action: none;
  }
}

/* main */
.main {
  width: 100%;
  padding-top: var(--site-header-h);
}

/* footer */
.footer {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  background: #314f6a;
  position: relative;
  z-index: 10;
}
.footer .page-top {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
}
.footer .page-top a {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  height: 102px;
  background: #5d8ba6;
  display: flex;
  align-items: center;
  justify-content: center;
}
.footer .page-top a img {
  margin: 0 auto;
  padding: 0 0 0 0;
  width: 83px;
  max-width: 83px;
  display: block;
}
.footer .box {
  margin: 0 auto;
  color: #fff;
  display: flex;
  justify-content: space-between;
}
.footer .box a {
  color: #fff;
}

.footer .box.box--first {
  padding: 58px 0 28px 0;
  width: 90%;
  max-width: 1225px;
  justify-content: flex-start;
}
.footer .box.box--second {
  padding: 14px 0 58px 0;
  width: 90%;
  max-width: 1225px;
  flex-direction: row-reverse;
  border-top: 1px solid #fff;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 11px;
  line-height: 25px;
  letter-spacing: 0;
}

.footer .box .info {
  width: 31%;
  flex-shrink: 0;
  text-align: left;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 25px;
  letter-spacing: 0;
}
.footer .box .info .company {
  padding: 0 0 10px 0;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  font-size: 13px;
  line-height: 100%;
  letter-spacing: 0;
}
.footer .box .footer-nav {
  flex: 1;
  width: auto;
  min-width: 0;
  text-align: left;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  box-sizing: border-box;
}
.footer .box .footer-nav__col {
  flex: 0 0 auto;
}
.footer .box .footer-nav__col--center {
  margin-left: 52px;
}
.footer .box .footer-nav__col--right {
  margin-left: 69px;
}
.footer .box .footer-nav__col ul {
  width: auto;
  display: flex;
  flex-direction: column;
}
.footer .box .footer-nav__col li {
  padding: 0;
  width: 100%;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 25px;
  letter-spacing: 0;
}
.footer .box .copyright {
  font-weight: 400;
}
.footer .box .sub-link {
  font-weight: 400;
  display: flex;
}
.footer .box .sub-link li {
  padding: 0 0 0 43px;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .footer .page-top a {
    height: 7.846vw;
  }
  .footer .page-top a img {
    width: 6.385vw;
    max-width: 6.385vw;
  }
  .footer .box.box--first {
    padding: 4.462vw 0 2.154vw 0;
    width: 90%;
    max-width: 94.231vw;
    justify-content: flex-start;
  }
  .footer .box.box--second {
    padding: 1.077vw 0 4.462vw 0;
    width: 90%;
    max-width: 94.231vw;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 0.846vw;
    line-height: 1.923vw;
    letter-spacing: 0;
  }

  .footer .box .info {
    width: 31%;
    flex-shrink: 0;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 0.923vw;
    line-height: 1.923vw;
    letter-spacing: 0;
  }
  .footer .box .info .company {
    padding: 0 0 0.769vw 0;
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    font-size: 1vw;
    line-height: 100%;
    letter-spacing: 0;
  }
  .footer .box .footer-nav {
    flex: 1;
    width: auto;
    min-width: 0;
    justify-content: flex-end;
  }
  .footer .box .footer-nav__col--center {
    margin-left: 4vw;
  }
  .footer .box .footer-nav__col--right {
    margin-left: 5.308vw;
  }
  .footer .box .footer-nav__col ul {
    width: auto;
  }
  .footer .box .footer-nav__col li {
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 0.923vw;
    line-height: 1.923vw;
    letter-spacing: 0;
  }
  .footer .box .copyright {
    font-weight: 400;
  }
  .footer .box .sub-link {
    font-weight: 400;
    display: flex;
  }
  .footer .box .sub-link li {
    padding: 0 0 0 3.308vw;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .footer {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    background: #314f6a;
    position: relative;
    z-index: 10;
  }
  .footer .page-top {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
  }
  .footer .page-top a {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 13.333vw;
    background: #5d8ba6;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .footer .page-top a img {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 10.667vw;
    max-width: 10.667vw;
    display: block;
  }
  .footer .box {
    margin: 0 auto;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .footer .box a {
    color: #fff;
  }

  .footer .box.box--first {
    padding: 15.467vw 19.487vw 4.872vw;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    align-items: stretch;
  }
  .footer .box.box--second {
    padding: 0 0 6.154vw;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    flex-direction: column;
    align-items: stretch;
    border-top: none;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 2.821vw;
    line-height: 6.41vw;
    letter-spacing: 0;
  }
  .footer .box.box--second::before {
    content: "";
    display: block;
    flex-shrink: 0;
    width: 91.795vw;
    max-width: 358px;
    height: 1px;
    margin: 0 auto 3.733vw;
    background-color: #fff;
  }

  .footer .box .info {
    padding: 0 0 10.256vw 0;
    width: 100%;
    text-align: center;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 3.077vw;
    line-height: 6.41vw;
    letter-spacing: 0;
  }
  .footer .box .info .company {
    padding: 0 0 4.615vw 0;
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    font-size: 4.102vw;
    line-height: 100%;
    letter-spacing: 0;
  }
  .footer .box .footer-nav {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 15.128vw;
    text-align: left;
    padding-right: 0;
  }
  .footer .box .footer-nav__col--left {
    width: auto;
    grid-column: 1;
    grid-row: 1;
  }
  .footer .box .footer-nav__col--center {
    width: auto;
    margin-left: 0;
    grid-column: 2;
    grid-row: 1;
  }
  .footer .box .footer-nav__col--right {
    width: auto;
    margin-left: 0;
    padding-top: 6.667vw;
    grid-column: 1;
    grid-row: 2;
  }
  .footer .box .footer-nav__col ul {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .footer .box .footer-nav__col li {
    padding: 0 0 1.333vw 0;
    width: 100%;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 3.077vw;
    line-height: 6.41vw;
    letter-spacing: 0;
  }
  .footer .box .footer-nav__col--left li:nth-child(3) a {
    white-space: nowrap;
  }
  .footer .box .copyright {
    padding: 9.487vw 0 0 0;
    text-align: center;
    font-weight: 400;
    align-self: center;
  }
  .footer .box .sub-link {
    width: 100%;
    padding: 0 8.462vw;
    box-sizing: border-box;
    font-size: 2.821vw;
    font-weight: 400;
    line-height: 6.41vw;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .footer .box .sub-link li {
    padding: 0;
  }
}

/* ========== Breadcrumbs ========== */

.breadcrumbs {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  background: #f3f7fb;
}
.breadcrumbs ol {
  margin: 0 auto;
  padding: 0 0 0 0;
  width: 90%;
  max-width: 1040px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.breadcrumbs ol li {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  line-height: 1.4em;
  font-size: 14px;
  font-weight: bold;
  color: #404044;
}
.breadcrumbs ol li::after {
  margin: 0 15px;
  padding: 0 0 0 0;
  width: 5px;
  height: 9px;
  content: "";
  background: url("../images/common/arrow_05.png") no-repeat center center;
  background-size: 100% 100%;
  display: inline-block;
  vertical-align: middle;
}
.breadcrumbs ol li:last-child::after {
  display: none;
}

.breadcrumbs ol li a {
  color: #404044;
}

/* ========== Page ========== */

/* home-page */
.home-page {
}
.home-page .content-bg-wrapper {
  width: 100%;
  background: #fff;
  position: relative;
  z-index: 5;
}
.home-page .main-visual {
  width: 100%;
  /*  height: 200vh;*/
  /*  max-height: calc( 100vh - 82px );*/
  position: relative;
  z-index: 1;
}
.home-page .main-visual .movie {
  width: 100%;
  /*  position: sticky;
  position: fixed;
  top: 0;*/
}

.home-page .main-visual video {
  width: 100%;
  display: block;
}

.home-page .intro-image {
  height: 400vh;
  position: relative;
  background: #fff;
}

.home-page .intro-image .image {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  min-height: 100vh;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  z-index: 2;
}
.home-page .intro-image .image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  transform-origin: center center;
  z-index: 1;
  opacity: 0;
}
.home-page .intro-image .image .box {
}
.home-page .intro-image .image .catch {
  line-height: 1.2em;
  font-size: 58px;
  font-weight: 600;
  letter-spacing: 0.07em;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -45%);
  width: 100%;
  z-index: 2;
}
.home-page .intro-image .image .company {
  line-height: 1.2em;
  font-size: 27px;
  font-weight: 600;
  letter-spacing: 0.01em;
  position: absolute;
  bottom: 22%;
  left: 50%;
  transform: translate(-50%, 0);
  z-index: 2;
}

/*
.home-page .intro-message {
  margin: -100vh 0 0 0;
  width: 100%;
  height: 300vh;
  position: relative;
  z-index: 3;
}
.home-page .intro-message .box {
  width: 100%;
  background: #fff;
  position: sticky;
  top: 0;
  height: 100vh;
  opacity: 0;
  transition: opacity 0.8s ease;
}
.home-page .intro-message.scrollin .box {
  opacity: 1;
}
.home-page .intro-message img {
  width: 100%;
  height: 100vh;
  object-fit: cover;
  display: block;
}
.home-page .intro-message .catch {
  line-height: 1.2em;
  font-size: 58px;
  font-weight: 600;
  letter-spacing: 0.07em;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-45%);
  opacity: 0;
  transition: opacity 0.8s 0.6s ease-in-out;
}
.home-page .intro-message .company {
  line-height: 1.2em;
  font-size: 27px;
  font-weight: 600;
  letter-spacing: 0.01em;
  position: absolute;
  bottom: 22%;
  left: 50%;
  transform: translate(-50%,0);
  opacity: 0;
  transition: opacity 0.8s 1.6s ease-in-out;
}
.home-page .intro-message.scrollin .catch {
  opacity: 1;
}
.home-page .intro-message.scrollin .company {
  opacity: 1;
}
*/

.home-page .our-service {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  position: relative;
  z-index: 3;
}
/*
.home-page .our-service::before {
  width: 100%;
  height: 100%;
  content: "";
  background: url("../images/home/our_service_back_01.png") no-repeat center bottom;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.home-page .our-service::after {
  width: 100%;
  height: 100%;
  content: "";
  background: url("../images/home/our_service_back_02.png") no-repeat center bottom;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
*/
.home-page .our-service .wave-container {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: url("../images/home/our_service_back_04.png") repeat-x center top;
  background-size: auto 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.home-page .our-service .wave-container .wave {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 160px;
  overflow: hidden;
}
.home-page .our-service .wave-container .wave svg {
  width: 200%;
  height: 100%;
}
.home-page .our-service .wave-container .wave path {
  fill: #fff;
}
.home-page .our-service .wave-container .wave-group {
  animation: waveMove 30s linear infinite;
}
.home-page .our-service .wave-container .wave.reverse .wave-group {
  animation-direction: reverse;
}

.home-page .our-service .our-service-wrap {
  margin: 0 0 0 0;
  padding: 101px 0 232px 0;
  position: relative;
}
.home-page .our-service .our-service-wrap::before {
  width: 100%;
  height: 82%;
  content: "";
  /*  background: url("../images/home/our_service_back_03.png") repeat-x center top;
  background-size: auto 100%;*/
  background: url("../images/home/our_service_back_03.png") no-repeat center top;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  transform: translate(0, 50px);
  opacity: 0;
  transition: all 0.4s 0s ease-in-out;
}
.home-page .our-service.scrollin .our-service-wrap::before {
  transform: translate(0, 0);
  opacity: 1;
}

.home-page .our-service .description {
  margin: 0 0 0 0;
  padding: 25px 0 65px 0;
  line-height: 1.4em;
  font-size: 16px;
  font-weight: 600;
  position: relative;
  z-index: 5;
}
.home-page .our-service .description .catch {
  margin: 0 0 0 0;
  padding: 0 0 10px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 600;
}
.home-page .our-service .menu {
  margin: 0 auto;
  padding: 0 0 0 0;
  width: 90%;
  max-width: 870px;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 5;
}
.home-page .our-service .menu .item {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 20.459%;
  max-width: 178px;
}
.home-page .our-service .menu .item a {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  height: 187px;
  display: block;
  background: url("../images/home/menu_back_01.png") no-repeat center center;
  background-size: 100% 100%;
  position: relative;
  overflow: visible;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 0.45s cubic-bezier(0, 0.55, 0.45, 1);
}
.home-page .our-service .menu .item a::after {
  width: calc(100% + 6px);
  height: calc(100% + 14px);
  content: "";
  display: block;
  background: url("../images/home/effect.svg") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translate(-50%, 0);
  opacity: 1;
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  transition:
    clip-path 1s cubic-bezier(0.16, 1, 0.3, 1),
    -webkit-clip-path 1s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  z-index: 2;
}
.home-page .our-service .menu .item a:hover::after {
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0);
}
.home-page .our-service .menu .item a .icon {
  margin: 0 auto;
  padding: 0 0 0 0;
  width: 100px;
  height: 138px;
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 0.45s cubic-bezier(0, 0.55, 0.45, 1);
}
.home-page .our-service .menu .item a .icon img {
  transition: opacity 0.35s cubic-bezier(0, 0.55, 0.45, 1);
  opacity: 1;
}
.home-page .our-service .menu .item a:hover .icon img {
  opacity: 0;
}
.home-page .our-service .menu .item a .icon img:nth-of-type(2) {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
}
.home-page .our-service .menu .item a:hover .icon img:nth-of-type(2) {
  opacity: 1;
}

.home-page .our-service .menu .item a .name {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 600;
  display: block;
  position: relative;
  z-index: 3;
}
.home-page .our-service .menu .item a:hover {
  text-decoration: none;
  transform: scale(1.04);
}
.home-page .our-service .menu .item a:hover .icon {
  transform: scale(1.1);
}
.home-page .our-projects {
  margin: 0 0 0 0;
  padding: 131px 0 0 0;
  position: relative;
}
.home-page .our-projects .deco01 {
  width: 980px;
  position: absolute;
  top: 30px;
  left: -203px;
  z-index: 0;
  line-height: 0;
}
.home-page .our-projects .deco01 img {
  width: 100%;
  height: auto;
  display: block;
}
.home-page .our-projects .deco02 {
  width: 468px;
  position: absolute;
  top: 690px;
  right: -160px;
  z-index: 0;
  line-height: 0;
}
.home-page .our-projects .deco02 img {
  width: 100%;
  height: auto;
  display: block;
}

.home-page .our-projects .expo {
  margin: 63px auto 0;
  padding: 0;
  width: 1228px;
  max-width: 100%;
  height: 393px;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  z-index: 5;
}
.home-page .our-projects .expo__media {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform 0.4s ease;
  transform-origin: center center;
}
.home-page .our-projects .expo__media img {
  width: 50%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.home-page .our-projects .expo:hover .expo__media {
  transform: scale(1.1);
}
.home-page .our-projects .expo__overlay {
  position: absolute;
  inset: 0;
  background: rgba(49, 79, 106, 0.55);
  z-index: 1;
  pointer-events: none;
}
.home-page .our-projects .expo__content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.home-page .our-projects .expo h3 {
  margin: 0;
  padding: 0;
  line-height: 1.2em;
  font-size: 30px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.05em;
  text-align: center;
}
.home-page .our-projects .expo .more {
  margin: 24px 0 0;
  padding: 0;
  width: 272px;
  position: static;
  transform: none;
}
.home-page .our-projects .expo .more .c-link-btn01,
.home-page .our-projects .achievements .more .c-link-btn02 {
  border-radius: 4px;
  overflow: hidden;
}
.home-page .our-projects .expo .more .c-link-btn01:hover,
.home-page .our-projects .expo .more .c-link-btn01:active,
.home-page .our-projects .achievements .more .c-link-btn02:hover,
.home-page .our-projects .achievements .more .c-link-btn02:active {
  border-radius: 4px;
  overflow: hidden;
  border-color: #314f6a;
}
.home-page .our-projects .achievements {
  margin: 60px auto 0;
  padding: 0 0 0 0;
  width: 90%;
  max-width: 1228px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  position: relative;
  z-index: 5;
}
.home-page .our-projects .achievements .item {
  margin: 0;
  padding: 0 0 0 0;
  width: 26.628%;
  max-width: 327px;
}
.home-page .our-projects .achievements .item.hide {
  display: none;
}

/*
.home-page .our-projects .achievements .item:nth-of-type(3n+2) {
  width: 33.22%;
  max-width: 408px;
}
*/
.home-page .our-projects .achievements .item a,
.home-page .our-projects .achievements .item .achievements-item-inner {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  display: block;
  transition: all 0.4s 0s ease-in-out;
}
.home-page .our-projects .achievements .item a:hover,
.home-page .our-projects .achievements .item .achievements-item-inner:hover {
  text-decoration: none;
}
.home-page .our-projects .achievements .item .image {
  margin: 0 0 32px 0;
  padding: 0 0 0 0;
  width: 100%;
  min-height: 200px;
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.5s 0s ease-in-out;
  position: relative;
}
.home-page .our-projects .achievements .item a:hover .image,
.home-page
  .our-projects
  .achievements
  .item
  .achievements-item-inner:hover
  .image {
  transform: scale(1.2);
}
.home-page .our-projects .achievements .item a .image::after,
.home-page
  .our-projects
  .achievements
  .item
  .achievements-item-inner
  .image::after {
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(49, 79, 106, 1);
  position: absolute;
  top: 0;
  left: 0;
  transition: all 0.5s 0s ease-in-out;
  opacity: 0;
}
.home-page .our-projects .achievements .item a:hover .image::after,
.home-page
  .our-projects
  .achievements
  .item
  .achievements-item-inner:hover
  .image::after {
  opacity: 0.6;
}
.home-page .our-projects .achievements .item a .image img,
.home-page
  .our-projects
  .achievements
  .item
  .achievements-item-inner
  .image
  img {
  width: 100%;
  height: 200px;
  display: block;
  object-fit: cover;
}

.home-page .our-projects .achievements .item a .title,
.home-page .our-projects .achievements .item .achievements-item-inner .title {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 600;
  letter-spacing: 0.05em;
  display: block;
  text-align: center;
  white-space: pre-line;
}
.home-page .our-projects .achievements .more {
  display: block;
  flex: 0 0 100%;
  box-sizing: border-box;
  margin: 61px 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
}
.home-page .our-projects .achievements .more a {
  margin: 0 auto;
  max-width: 272px;
}
.home-page .news {
  margin: 54px 0 0 0;
  padding: 48px 0 94px 0;
  background: #f5fcfe;
  position: relative;
  z-index: 5;
}
.home-page .news::after {
  display: none;
}
.home-page .news.scrollin::after {
  display: none;
}
.home-page .news .list {
  margin: 34px auto 17px auto;
  padding: 2px 0 0 0;
  width: 90%;
  max-width: 836px;
  background: url("../images/home/news_line_01.png") no-repeat center top;
  background-size: 100% 2px;
  position: relative;
  z-index: 1;
}
.home-page .news .list .item {
  background: #fff url("../images/home/news_line_01.png") no-repeat center
    bottom;
  background-size: 100% 2px;
}
.home-page .news .list .item a,
.home-page .news .list .item .news-item-body {
  padding: 0 37px 0 37px;
  min-height: 88px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  transition: all 0.4s 0s ease-in-out;
}
.home-page .news .list .item a:hover {
  text-decoration: none;
  opacity: 0.6;
}

.home-page .news .list .item a .post,
.home-page .news .list .item .news-item-body .post {
  padding: 0 0 0 0;
  width: auto;
  margin-right: 0;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  color: #404044;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}
.home-page .news .list .item a .genre {
  width: 68px;
  height: 30px;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  color: rgba(217, 71, 66, 1);
  border: 1px solid rgba(217, 71, 66, 1);
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 23.5px;
  margin-right: 39px;
  box-sizing: border-box;
  flex-shrink: 0;
}
.home-page .news .list .item a .genre.genre--works {
  color: rgba(29, 150, 130, 1);
  border-color: rgba(29, 150, 130, 1);
}
.home-page .news .list .item a .genre.genre--recruit {
  color: rgba(229, 174, 47, 1);
  border-color: rgba(229, 174, 47, 1);
}
.home-page .news .list .item a .genre.genre--event {
  color: rgba(73, 149, 174, 1);
  border-color: rgba(73, 149, 174, 1);
}
.home-page .news .list .item a .title,
.home-page .news .list .item .news-item-body .title {
  padding: 0 57px 0 0;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
  display: flex;
  justify-content: flex-start;
  flex: 1 1 auto;
  min-width: 0;
}
.home-page .news .list .item a::after {
  width: 41px;
  height: 28px;
  content: "";
  background: url("../images/common/arrow_02.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: 50%;
  right: 37px;
  transform: translate(0, -50%);
}
.home-page .news .more {
  margin: 0 auto 0 auto;
  padding: 0 0 0 0;
  width: 90%;
  max-width: 836px;
  display: flex;
  justify-content: flex-end;
}
.home-page .news .more a {
  --c-linkbtn-ease: cubic-bezier(0.36, 0.9, 0.93, 0.34);
  --c-linkbtn-dur: 0.3s;
  padding: 0 0 0 15px;
  width: 107px;
  height: 40px;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 400;
  color: #fff;
  background-color: #5186a5;
  background-image: linear-gradient(180deg, #5186a5, #416c85);
  border: 1px solid transparent;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  letter-spacing: 0.03em;
  position: relative;
  border-radius: 180px;
  box-sizing: border-box;
  overflow: hidden;
  isolation: isolate;
  transition:
    color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
    border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
}
.home-page .news .more a::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  z-index: -1;
}
.home-page .news .more a:hover {
  text-decoration: none;
  color: #3e5069;
  border-color: #3e5069;
}
.home-page .news .more a:hover::before {
  transform: scaleX(1);
}
.home-page .news .more a:active {
  text-decoration: none;
  color: #3e5069;
  border-color: #3e5069;
}
.home-page .news .more a:active::before {
  transform: scaleX(1);
}
.home-page .news .more a::after {
  width: 12px;
  height: 12px;
  content: "";
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: 50%;
  right: 19px;
  transform: translate(0, -50%);
  z-index: 1;
  transition: background 0.2s ease;
}
.home-page .news .more a:hover::after,
.home-page .news .more a:active::after {
  background: url("../images/common/arrow_01.png") no-repeat center center;
  background-size: 100% 100%;
}

.home-page .our-origin {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  /*  height: 650px;*/
  position: relative;
  z-index: 6;
  background-color: #f5fcfe;
  overflow: visible;
}
.home-page .our-origin .box {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 272px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(229px, -100px);
  z-index: 1;
}
.home-page .our-origin .box .more {
  margin: 32px 0 0 0;
  padding: 0 0 0 0;
}
.home-page .our-origin .box .more .c-link-btn02 {
  border-radius: 4px;
  overflow: hidden;
}
.home-page .our-origin .box .more .c-link-btn02:hover,
.home-page .our-origin .box .more .c-link-btn02:active {
  border-radius: 4px;
  overflow: hidden;
  border-color: #314f6a;
}
.home-page .our-origin .image {
  line-height: 0;
  opacity: 0;
  transform: translate(0, 50px);
  transition: all 0.4s 0s ease-in-out;
}
.home-page .our-origin .image img {
  width: 100%;
  height: auto;
  display: block;
}
.home-page .our-origin.scrollin .image {
  transform: translate(0, 0);
  opacity: 1;
}

.home-page .work-days {
  margin: 0 0 0 0;
  padding: 130px 0 135px 0;
  position: relative;
  overflow-x: visible;
  overflow-y: visible;
}
.home-page .work-days::before {
  width: 100%;
  height: 100%;
  content: "";
  background: linear-gradient(
    to bottom,
    #d9d9d900 0%,
    #a0cbecb2 50%,
    #fff1ca 100%
  );
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  transition: all 0.4s 0s ease-in-out;
  transform: translate(0, 50px);
  opacity: 0;
}
.home-page .work-days.scrollin::before {
  transform: translate(0, 0);
  opacity: 1;
}
.home-page .work-days-wave {
  width: 100%;
  height: 201px;
  position: absolute;
  top: 300px;
  left: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}
.home-page .work-days-wave__img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
}

.home-page .work-days .movie {
  margin: 35px auto 0 auto;
  padding: 0 0 0 0;
  width: 90%;
  max-width: 870px;
  height: 438px;
  background: #ddd;
  position: relative;
  z-index: 2;
}
.home-page .work-days .movie iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.home-page .recruit,
.anniversary-page .anniv-recruit,
.news-page .anniv-recruit,
.works-page .anniv-recruit,
.page-with-recruit .anniv-recruit {
  margin: 0 0 0 0;
  padding: 61px 0 0 0;
  background: #ffeab2 url("../images/home/recruit_back_01.png") no-repeat center
    top;
  background-size: 100% auto;
  position: relative;
}
.home-page .recruit h2,
.anniversary-page .anniv-recruit h2,
.news-page .anniv-recruit h2,
.works-page .anniv-recruit h2,
.page-with-recruit .anniv-recruit h2 {
  margin: 0 0 30px 0;
  padding: 0 0 0 0;
  line-height: 1.3em;
  font-size: 48px;
  font-weight: 600;
  color: #3e5069;
  letter-spacing: 0.04em;
  position: relative;
  z-index: 5;
}
.home-page .recruit .more,
.anniversary-page .anniv-recruit .more,
.news-page .anniv-recruit .more,
.works-page .anniv-recruit .more,
.page-with-recruit .anniv-recruit .more {
  margin: 0 auto 0 auto;
  padding: 0 0 0 0;
  width: 272px;
  position: relative;
  z-index: 5;
}
.home-page .recruit .eng-group,
.anniversary-page .anniv-recruit .eng-group,
.news-page .anniv-recruit .eng-group,
.works-page .anniv-recruit .eng-group,
.page-with-recruit .anniv-recruit .eng-group {
  width: 100%;
  margin: -98px 0 -62px 0;
  position: relative;
  z-index: 3;
  mix-blend-mode: multiply;
  overflow: hidden;
  pointer-events: none;
}
.home-page .recruit .eng,
.anniversary-page .anniv-recruit .eng,
.news-page .anniv-recruit .eng,
.works-page .anniv-recruit .eng,
.page-with-recruit .anniv-recruit .eng {
  width: auto;
  white-space: nowrap;
  line-height: 1.4em;
  font-size: 162px;
  font-weight: 700;
  font-family: "Cardo";
  text-align: center;
  opacity: 0.8;
  background: linear-gradient(180deg, #fdffe9 0%, #fee9c6 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  /*  position: absolute;
  top: 170px;
  left: 50%;
  transform: translate(-50%,0);*/
}

.home-page .recruit .image-box,
.anniversary-page .anniv-recruit .image-box,
.news-page .anniv-recruit .image-box,
.works-page .anniv-recruit .image-box,
.page-with-recruit .anniv-recruit .image-box {
  margin: 0 0 0 0;
  padding: 0 0 80px 0;
  width: 100%;
  background-color: #fff;
  position: relative;
  z-index: 1;
}
.home-page .recruit .image-box::after,
.anniversary-page .anniv-recruit .image-box::after,
.news-page .anniv-recruit .image-box::after,
.works-page .anniv-recruit .image-box::after,
.page-with-recruit .anniv-recruit .image-box::after {
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(252, 246, 184, 0.32);
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.home-page .recruit .image-box img,
.anniversary-page .anniv-recruit .image-box img,
.news-page .anniv-recruit .image-box img,
.works-page .anniv-recruit .image-box img,
.page-with-recruit .anniv-recruit .image-box img {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
  height: auto;
  display: block;
  position: relative;
  z-index: 0;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .home-page .intro-image .image .catch {
    line-height: 1.2em;
    font-size: 4.462vw;
    font-weight: 600;
    letter-spacing: 0.07em;
  }
  .home-page .intro-image .image .company {
    line-height: 1.2em;
    font-size: 2.077vw;
    font-weight: 600;
    letter-spacing: 0.01em;
  }

  .home-page .our-service .wave-container .wave {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 12.308vw;
    overflow: hidden;
  }
  .home-page .our-service .wave-container .wave svg {
    width: 200%;
    height: 100%;
  }

  .home-page .our-service .our-service-wrap {
    margin: 0 0 0 0;
    padding: 7.769vw 0 17.846vw 0;
  }
  .home-page .our-service .our-service-wrap::before {
    width: 100%;
    height: 82%;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
  }

  .home-page .our-service .description {
    margin: 0 0 0 0;
    padding: 1.923vw 0 5vw 0;
    line-height: 1.4em;
    font-size: 1.231vw;
    font-weight: 600;
  }
  .home-page .our-service .description .catch {
    margin: 0 0 0 0;
    padding: 0 0 0.769vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 600;
  }
  .home-page .our-service .menu {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 66.923vw;
  }
  .home-page .our-service .menu .item {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 20.459%;
    max-width: 13.692vw;
  }
  .home-page .our-service .menu .item a {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 14.385vw;
  }
  .home-page .our-service .menu .item a::after {
    width: calc(100% + 0.462vw);
    height: calc(100% + 1.077vw);
    bottom: -0.154vw;
    left: 50%;
    transform: translate(-50%, 0);
  }
  .home-page .our-service .menu .item a .icon {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 7.692vw;
    height: 10.615vw;
  }

  .home-page .our-service .menu .item a .name {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    line-height: 1.2em;
    font-size: 1.231vw;
    font-weight: 600;
    display: block;
  }
  .home-page .our-service .menu .item a:hover {
    text-decoration: none;
  }
  .home-page .our-projects {
    margin: 0 0 0 0;
    padding: 10.077vw 0 3.846vw 0;
    position: relative;
  }
  .home-page .our-projects .deco01 {
    width: 60.769vw;
    position: absolute;
    top: 9.231vw;
    left: -10vw;
    z-index: 0;
  }
  .home-page .our-projects .deco02 {
    width: 46.769vw;
    position: absolute;
    top: 44.615vw;
    right: -4.231vw;
    z-index: 0;
  }

  .home-page .our-projects .expo {
    margin: 4.846vw auto 0;
    width: 94.462vw;
    max-width: 1228px;
    height: 30.231vw;
    max-height: 393px;
  }
  .home-page .our-projects .expo h3 {
    font-size: 2.308vw;
  }
  .home-page .our-projects .expo .more {
    margin-top: 1.846vw;
    width: 20.923vw;
  }
  .home-page .our-projects .achievements {
    margin: 60px auto 0;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 94.462vw;
  }
  .home-page .our-projects .achievements .item {
    margin: 0 0 3.615vw 0;
    padding: 0 0 0 0;
    width: 26.628%;
    max-width: 25.154vw;
  }

  .home-page .our-projects .achievements .item .image {
    margin: 0 0 2.462vw 0;
    padding: 0 0 0 0;
    width: 100%;
    min-height: 15.385vw;
    border-radius: 0.308vw;
  }

  .home-page .our-projects .achievements .item a .title,
  .home-page .our-projects .achievements .item .achievements-item-inner .title {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 600;
    letter-spacing: 0.05em;
    display: block;
    text-align: center;
  }
  .home-page .our-projects .achievements .more a {
    margin: 0 auto;
    max-width: 20.923vw;
  }
  .home-page .news {
    margin: 0 0 0 0;
    padding: 3.692vw 0 94px 0;
    background: #f5fcfe;
    position: relative;
    z-index: 5;
  }
  .home-page .news .list {
    margin: 34px auto 17px auto;
    padding: 0.154vw 0 0 0;
    width: 90%;
    max-width: 64.308vw;
  }
  .home-page .news .list .item a,
  .home-page .news .list .item .news-item-body {
    padding: 0 37px 0 37px;
    min-height: 6.769vw;
  }
  .home-page .news .list .item a .post,
  .home-page .news .list .item .news-item-body .post {
    padding: 0 0 0 0;
    width: auto;
    margin-right: 0;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    justify-content: center;
  }
  .home-page .news .list .item a .genre {
    width: 5.231vw;
    height: 2.308vw;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    margin-left: 1.808vw;
    margin-right: 3vw;
  }
  .home-page .news .list .item a .title,
  .home-page .news .list .item .news-item-body .title {
    padding: 0 57px 0 0;
    line-height: 1.2em;
    font-size: 1.231vw;
    font-weight: 600;
  }
  .home-page .news .list .item a::after {
    width: 3.154vw;
    height: 2.154vw;
    top: 50%;
    right: 37px;
    transform: translate(0, -50%);
  }
  .home-page .news .more {
    margin: 0 auto 0 auto;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 64.308vw;
  }
  .home-page .news .more a {
    padding: 0 0 0 1.154vw;
    width: 8.231vw;
    height: 3.077vw;
    line-height: 1.2em;
    font-size: 1.231vw;
    font-weight: 400;
    letter-spacing: 0.03em;
    position: relative;
    border-radius: 13.846vw;
    overflow: hidden;
    isolation: isolate;
    transition:
      color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
      border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  }
  .home-page .news .more a::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: #fff;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform var(--c-linkbtn-dur) var(--c-linkbtn-ease);
    z-index: -1;
  }
  .home-page .news .more a:hover {
    text-decoration: none;
    color: #3e5069;
    border-color: #3e5069;
  }
  .home-page .news .more a:hover::before {
    transform: scaleX(1);
  }
  .home-page .news .more a:active {
    color: #3e5069;
    border-color: #3e5069;
  }
  .home-page .news .more a:active::before {
    transform: scaleX(1);
  }
  .home-page .news .more a::after {
    width: 0.923vw;
    height: 0.923vw;
    content: "";
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 1.462vw;
    transform: translate(0, -50%);
    z-index: 1;
    transition: background 0.2s ease;
  }
  .home-page .news .more a:hover::after,
  .home-page .news .more a:active::after {
    background: url("../images/common/arrow_01.png") no-repeat center center;
    background-size: 100% 100%;
  }

  .home-page .our-origin {
    margin: 0 0 0 0;
    z-index: 6;
    background-color: #f5fcfe;
  }
  .home-page .our-origin .box {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 20.923vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(17.615vw, -7.692vw);
    z-index: 1;
  }
  .home-page .our-origin .box .more {
    margin: 2.462vw 0 0 0;
    padding: 0 0 0 0;
  }

  .home-page .work-days {
    margin: 0 0 0 0;
    padding: 4.462vw 0 10.385vw 0;
    position: relative;
    overflow-x: visible;
    overflow-y: visible;
  }

  .home-page .work-days-wave {
    top: 23.077vw;
    height: 15.2vw;
  }

  .home-page .work-days-wave__img {
    object-fit: cover;
  }

  .home-page .work-days .movie {
    margin: 2.692vw auto 0 auto;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 66.923vw;
    height: 33.692vw;
    position: relative;
    z-index: 2;
  }

  .home-page .recruit,
  .anniversary-page .anniv-recruit,
  .news-page .anniv-recruit,
  .works-page .anniv-recruit,
  .page-with-recruit .anniv-recruit {
    margin: 0 0 0 0;
    padding: 4.692vw 0 0 0;
  }
  .home-page .recruit h2,
  .anniversary-page .anniv-recruit h2,
  .news-page .anniv-recruit h2,
  .works-page .anniv-recruit h2,
  .page-with-recruit .anniv-recruit h2 {
    margin: 0 0 2.308vw 0;
    padding: 0 0 0 0;
    line-height: 1.3em;
    font-size: 3.692vw;
    font-weight: 600;
    letter-spacing: 0.04em;
  }
  .home-page .recruit .more,
  .anniversary-page .anniv-recruit .more,
  .news-page .anniv-recruit .more,
  .works-page .anniv-recruit .more,
  .page-with-recruit .anniv-recruit .more {
    margin: 0 auto 0 auto;
    padding: 0 0 0 0;
    width: 20.923vw;
    position: relative;
    z-index: 5;
  }
  .home-page .recruit .eng-group,
  .anniversary-page .anniv-recruit .eng-group,
  .news-page .anniv-recruit .eng-group,
  .works-page .anniv-recruit .eng-group,
  .page-with-recruit .anniv-recruit .eng-group {
    width: 100%;
    margin: -7.538vw 0 -4.769vw 0;
    position: relative;
    z-index: 3;
    mix-blend-mode: multiply;
  }
  .home-page .recruit .eng,
  .anniversary-page .anniv-recruit .eng,
  .news-page .anniv-recruit .eng,
  .works-page .anniv-recruit .eng,
  .page-with-recruit .anniv-recruit .eng {
    width: auto;
    white-space: nowrap;
    line-height: 1.4em;
    font-size: 12.462vw;
    font-weight: 700;
    font-family: "Cardo";
    text-align: center;
    opacity: 0.8;
  }

  .home-page .recruit .image-box,
  .anniversary-page .anniv-recruit .image-box,
  .news-page .anniv-recruit .image-box,
  .works-page .anniv-recruit .image-box,
  .page-with-recruit .anniv-recruit .image-box {
    margin: 0 0 0 0;
    padding: 0 0 6.154vw 0;
    width: 100%;
    background-color: #fff;
    position: relative;
    z-index: 1;
  }
  .home-page .recruit .image-box::after,
  .anniversary-page .anniv-recruit .image-box::after,
  .news-page .anniv-recruit .image-box::after,
  .works-page .anniv-recruit .image-box::after,
  .page-with-recruit .anniv-recruit .image-box::after {
    width: 100%;
    height: 100%;
    content: "";
    background: rgba(252, 246, 184, 0.32);
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
  }

  .home-page .recruit .image-box img,
  .anniversary-page .anniv-recruit .image-box img,
  .news-page .anniv-recruit .image-box img,
  .works-page .anniv-recruit .image-box img,
  .page-with-recruit .anniv-recruit .image-box img {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    z-index: 0;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .home-page .content-bg-wrapper {
    width: 100%;
    background: #fff;
    position: relative;
    z-index: 5;
  }
  .home-page .main-visual {
    width: 100%;
    position: relative;
    z-index: 1;
  }
  .home-page .main-visual .movie {
    width: 100%;
  }

  .home-page .main-visual video {
    width: 100%;
    display: block;
  }

  .home-page .intro-image {
    height: 400vh;
    position: relative;
    background: #fff;
  }
  .home-page .intro-image .image {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 100vh;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    z-index: 2;
  }
  .home-page .intro-image .image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    transform-origin: center center;
    z-index: 1;
    opacity: 0;
  }
  .home-page .intro-image .image .box {
  }
  .home-page .intro-image .image .catch {
    line-height: 1.2em;
    font-size: 6.4vw;
    font-weight: 600;
    letter-spacing: 0.07em;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -45%);
    width: 100%;
    z-index: 2;
  }
  .home-page .intro-image .image .company {
    line-height: 1.2em;
    font-size: 5.333vw;
    font-weight: 600;
    letter-spacing: 0.01em;
    position: absolute;
    bottom: 22%;
    left: 50%;
    transform: translate(-50%, 0);
    z-index: 2;
  }

  .home-page .our-service {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    position: relative;
    z-index: 3;
  }
  .home-page .our-service .wave-container {
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: url("../images/home/our_service_back_04.png") repeat-x center
      top;
    background-size: auto 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
  }
  .home-page .our-service .wave-container .wave {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 18vw;
    overflow: hidden;
  }
  .home-page .our-service .wave-container .wave svg {
    width: 200%;
    height: 100%;
  }
  .home-page .our-service .wave-container .wave path {
    fill: #fff;
  }
  .home-page .our-service .wave-container .wave-group {
    animation: waveMove 30s linear infinite;
  }
  .home-page .our-service .wave-container .wave.reverse .wave-group {
    animation-direction: reverse;
  }

  .home-page .our-service .our-service-wrap {
    margin: 0 0 0 0;
    padding: 10.667vw 0 21.333vw 0;
    position: relative;
  }
  .home-page .our-service .our-service-wrap::before {
    width: 100%;
    height: 82%;
    content: "";
    /*  background: url("../images/home/our_service_back_03.png") repeat-x center top;
    background-size: auto 100%;*/
    background: url("../images/home/our_service_back_03.png") no-repeat center
      top;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    transform: translate(0, 50px);
    opacity: 0;
    transition: all 0.4s 0s ease-in-out;
  }
  .home-page .our-service.scrollin .our-service-wrap::before {
    transform: translate(0, 0);
    opacity: 1;
  }

  .home-page .our-service .description {
    margin: 0 auto;
    padding: 6.667vw 0 17.333vw 0;
    width: 90%;
    line-height: 1.4em;
    font-size: 14px;
    font-weight: 600;
    position: relative;
    z-index: 5;
  }
  .home-page .our-service .description .catch {
    margin: 0 0 0 0;
    padding: 0 0 2.667vw 0;
    line-height: 1.4em;
    font-size: 22px;
    font-weight: 600;
  }
  .home-page .our-service .menu {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 232vw;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    position: relative;
    z-index: 5;
  }
  .home-page .our-service .menu .item {
    margin: 0 0 6.667vw 0;
    padding: 0 0 0 0;
    width: 48%;
    max-width: 47.467vw;
  }
  .home-page .our-service .menu .item:first-child {
    width: 48%;
    max-width: 47.467vw;
    flex: 0 0 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .home-page .our-service .menu .item a {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 49.867vw;
    display: block;
    background: url("../images/home/menu_back_01.png") no-repeat center center;
    background-size: 100% 100%;
    position: relative;
    overflow: visible;
    transform: scale(1);
    transform-origin: center center;
    transition: transform 0.45s cubic-bezier(0, 0.55, 0.45, 1);
  }
  .home-page .our-service .menu .item a::after {
    display: none;
  }
  .home-page .our-service .menu .item a .icon {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 26.667vw;
    height: 36.8vw;
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: scale(1);
    transform-origin: center center;
    transition: transform 0.45s cubic-bezier(0, 0.55, 0.45, 1);
  }
  .home-page .our-service .menu .item a .icon img {
    transition: opacity 0.35s cubic-bezier(0, 0.55, 0.45, 1);
    opacity: 1;
  }
  .home-page .our-service .menu .item a:hover .icon img {
    opacity: 0;
  }
  .home-page .our-service .menu .item a .icon img:nth-of-type(2) {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
  }
  .home-page .our-service .menu .item a:hover .icon img:nth-of-type(2) {
    opacity: 1;
  }

  .home-page .our-service .menu .item a .name {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    line-height: 1.2em;
    font-size: 4.267vw;
    font-weight: 600;
    display: block;
    position: relative;
    z-index: 3;
  }
  .home-page .our-service .menu .item a:hover {
    text-decoration: none;
    transform: scale(1.04);
  }
  .home-page .our-service .menu .item a:hover .icon {
    transform: scale(1.1);
  }
  .home-page .our-projects {
    margin: 0 0 0 0;
    padding: 10.667vw 0 13.333vw 0;
    position: relative;
  }
  .home-page .our-projects .deco01 {
    width: 280px;
    position: absolute;
    top: 11vw;
    left: -16.667vw;
    z-index: 0;
  }
  .home-page .our-projects .deco02 {
    width: 190px;
    position: absolute;
    top: auto;
    right: -74px;
    bottom: 34px;
    z-index: 0;
  }

  .home-page .our-projects .expo {
    margin: 16vw auto 0;
    width: 345px;
    max-width: calc(100% - 40px);
    height: auto;
    min-height: 0;
    padding-bottom: 80px;
    overflow: visible;
    border-radius: 0;
  }
  .home-page .our-projects .expo__media {
    width: 100%;
    height: 162px;
    border-radius: 5px 5px 0 0;
    overflow: hidden;
    transition: none;
    transform: none;
  }
  .home-page .our-projects .expo:hover .expo__media {
    transform: none;
  }
  .home-page .our-projects .expo__media img {
    width: 50%;
    height: 100%;
    object-fit: cover;
  }
  .home-page .our-projects .expo__overlay {
    top: 0;
    right: 0;
    bottom: auto;
    left: 0;
    height: 162px;
    border-radius: 5px 5px 0 0;
  }
  .home-page .our-projects .expo__content {
    top: 0;
    right: 0;
    bottom: auto;
    left: 0;
    height: 162px;
    justify-content: center;
  }
  .home-page .our-projects .expo h3 {
    font-size: 24px;
  }
  .home-page .our-projects .expo .more {
    position: absolute;
    top: calc(162px + 30px);
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    width: 294px;
    max-width: calc(100% - 40px);
  }
  .home-page .our-projects .expo .more .c-link-btn01 {
    height: 57px;
    font-size: 16px;
  }
  .home-page .our-projects .achievements {
    margin: 30px auto 0;
    padding: 0;
    width: 345px;
    max-width: calc(100% - 40px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;
    position: relative;
    z-index: 5;
  }
  .home-page .our-projects .achievements .item {
    margin: 0 0 30px 0;
    padding: 0;
    width: 100%;
    max-width: 345px;
  }
  /*
  .home-page .our-projects .achievements .item:nth-of-type(3n+2) {
    width: 33.22%;
    max-width: 108.8vw;
  }
  */
  .home-page .our-projects .achievements .item a,
  .home-page .our-projects .achievements .item .achievements-item-inner {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    display: block;
    transition: all 0.4s 0s ease-in-out;
  }
  .home-page .our-projects .achievements .item a:hover,
  .home-page .our-projects .achievements .item .achievements-item-inner:hover {
    text-decoration: none;
  }
  .home-page .our-projects .achievements .item .image {
    margin: 0 0 15px 0;
    padding: 0;
    width: 100%;
    height: 162px;
    min-height: 162px;
    border-radius: 5px 5px 0 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: none;
    position: relative;
  }
  .home-page .our-projects .achievements .item a:hover .image,
  .home-page
    .our-projects
    .achievements
    .item
    .achievements-item-inner:hover
    .image {
    transform: none;
  }
  .home-page .our-projects .achievements .item a .image::after,
  .home-page
    .our-projects
    .achievements
    .item
    .achievements-item-inner
    .image::after {
    width: 100%;
    height: 100%;
    content: "";
    background: rgba(49, 79, 106, 1);
    position: absolute;
    top: 0;
    left: 0;
    transition: all 0.5s 0s ease-in-out;
    opacity: 0;
  }
  .home-page .our-projects .achievements .item a:hover .image::after,
  .home-page
    .our-projects
    .achievements
    .item
    .achievements-item-inner:hover
    .image::after {
    opacity: 0.6;
  }

  .home-page .our-projects .achievements .item a .image img,
  .home-page
    .our-projects
    .achievements
    .item
    .achievements-item-inner
    .image
    img {
    width: 100%;
    height: 162px;
    display: block;
    object-fit: cover;
  }

  .home-page .our-projects .achievements .item a .title,
  .home-page .our-projects .achievements .item .achievements-item-inner .title {
    margin: 0;
    padding: 0;
    width: 100%;
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    font-size: 14px;
    line-height: 24px;
    letter-spacing: -0.04em;
    display: block;
    text-align: center;
    white-space: pre-line;
  }
  .home-page .our-projects .achievements .more {
    display: block !important;
    flex: 0 0 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0 0 0 0;
    width: 100%;
  }
  .home-page .our-projects .achievements .more a {
    margin: 0 auto;
    width: 294px;
    max-width: calc(100% - 40px);
    height: 57px;
    font-size: 14px;
  }
  @media only screen and (min-width: 400px) and (max-width: 767px) {
    .home-page .our-projects .expo,
    .home-page .our-projects .achievements,
    .home-page .our-projects .achievements .item {
      width: 90%;
      max-width: 420px;
    }

    .home-page .our-projects .expo .more {
      width: 294px;
      max-width: calc(100% - 40px);
    }
  }
  .home-page .news {
    margin: 0 0 0 0;
    padding: 12.8vw 0 65px 0;
    background: #f5fcfe;
    position: relative;
    z-index: 5;
  }
  .home-page .news::after {
    display: none;
  }
  .home-page .news.scrollin::after {
    display: none;
  }
  .home-page .news .list {
    margin: 9.067vw auto 4.5vw auto;
    padding: 0.533vw 0 0 0;
    width: 90%;
    max-width: 222.933vw;
    background: #fff;
    box-shadow: 0.93px 0.93px 9.3px 0px #314f6a33;
    border-radius: 5px;
    position: relative;
    z-index: 1;
  }
  .home-page .news .list .item {
    background: #fff;
  }
  .home-page .news .list .item a,
  .home-page .news .list .item .news-item-body {
    padding: 4vw 0 4vw 2.667vw;
    min-height: 23.467vw;
    position: relative;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    align-items: center;
    align-content: flex-start;
    justify-content: flex-start;
    column-gap: 0;
    row-gap: 4vw;
    transition: all 0.4s 0s ease-in-out;
  }
  .home-page .news .list .item a:hover {
    text-decoration: none;
    opacity: 0.6;
  }

  .home-page .news .list .item a .post,
  .home-page .news .list .item .news-item-body .post {
    padding: 0;
    width: auto;
    margin: 0 22px 0 0;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    color: #404044;
    display: inline-flex;
    justify-content: center;
    flex: none;
  }
  .home-page .news .list .item a .genre {
    width: 18.133vw;
    max-width: 68px;
    height: 8vw;
    max-height: 30px;
    font-family: "Noto Sans", "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    margin: 0;
    flex: none;
    white-space: nowrap;
  }
  .home-page .news .list .item a .title,
  .home-page .news .list .item .news-item-body .title {
    padding: 0;
    width: 100%;
    margin-bottom: 16px;
    line-height: 1.2em;
    font-size: 14px;
    font-weight: 600;
    color: #404044;
    text-align: left;
    display: flex;
    justify-content: flex-start;
    flex: 0 0 100%;
    position: relative;
  }
  .home-page .news .list .item a .title::after,
  .home-page .news .list .item .news-item-body .title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -16px;
    width: 100%;
    height: 2px;
    background: url("../images/home/news_line_01.png") no-repeat center center;
    background-size: 100% 2px;
  }
  .home-page .news .list .item a::after {
    display: none;
  }
  .home-page .news .more {
    margin: 0 auto 0 auto;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 222.933vw;
    display: flex;
    justify-content: center;
  }
  .home-page .news .more a {
    padding: 0;
    width: 294px;
    height: 57px;
    line-height: 1.2em;
    font-size: 14px;
    font-weight: 400;
    color: #fff;
    background-color: #5186a5;
    background-image: linear-gradient(180deg, #5186a5, #416c85);
    border: 1px solid transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.03em;
    position: relative;
    border-radius: 48vw;
    box-sizing: border-box;
    overflow: hidden;
    isolation: isolate;
    transition:
      color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
      border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  }
  .home-page .news .more a::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: #fff;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform var(--c-linkbtn-dur) var(--c-linkbtn-ease);
    z-index: -1;
  }
  .home-page .news .more a:hover {
    text-decoration: none;
    color: #3e5069;
    border-color: #3e5069;
  }
  .home-page .news .more a:hover::before {
    transform: scaleX(1);
  }
  .home-page .news .more a:active {
    text-decoration: none;
    color: #3e5069;
    border-color: #3e5069;
  }
  .home-page .news .more a:active::before {
    transform: scaleX(1);
  }
  .home-page .news .more a::after {
    width: 3.2vw;
    height: 3.2vw;
    content: "";
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 5.067vw;
    transform: translate(0, -50%);
    z-index: 1;
    transition: background 0.2s ease;
  }
  .home-page .news .more a:hover::after,
  .home-page .news .more a:active::after {
    background: url("../images/common/arrow_01.png") no-repeat center center;
    background-size: 100% 100%;
  }

  .home-page .our-origin {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    /*  height: 173.333vw;*/
    position: relative;
    z-index: 6;
    background-color: #f5fcfe;
    overflow: visible;
  }
  .home-page .our-origin .box {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 72.533vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
  }
  .home-page .our-origin .box .more {
    margin: 8.533vw 0 0 0;
    padding: 0 0 0 0;
  }
  .home-page .our-origin .image {
    width: 150vw;
    line-height: 0;
    opacity: 0;
    transform: translate(0, 50px);
    transition: all 0.4s 0s ease-in-out;
  }
  .home-page .our-origin .image img {
    width: 100%;
    height: auto;
    display: block;
  }
  .home-page .our-origin.scrollin .image {
    transform: translate(0, 0);
    opacity: 1;
  }

  .home-page .work-days {
    margin: 0;
    padding: 102px 0 67px;
    position: relative;
    overflow-x: visible;
    overflow-y: visible;
  }
  .home-page .work-days::before {
    width: 100%;
    height: 100%;
    content: "";
    background: linear-gradient(
      to bottom,
      #d9d9d900 0%,
      #a0cbecb2 50%,
      #fff1ca 100%
    );
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    transition: all 0.4s 0s ease-in-out;
    transform: translate(0, 50px);
    opacity: 0;
  }
  .home-page .work-days.scrollin::before {
    transform: translate(0, 0);
    opacity: 1;
  }
  .home-page .work-days-wave {
    top: 80vw;
    height: 15.2vw;
  }

  .home-page .work-days-wave__img {
    object-fit: cover;
  }

  .home-page .work-days .movie {
    margin: 9.333vw auto 0 auto;
    padding: 0;
    width: 326px;
    max-width: calc(100% - 64px);
    height: 168px;
    background: #ddd;
    position: relative;
    z-index: 2;
  }

  .home-page .recruit,
  .anniversary-page .anniv-recruit,
  .news-page .anniv-recruit,
  .works-page .anniv-recruit,
  .page-with-recruit .anniv-recruit {
    margin: 0 0 0 0;
    padding: 16.267vw 0 0 0;
    background: url("../images/home/recruit_back_sp.png") no-repeat center top;
    background-size: 100% auto;
    position: relative;
  }
  .home-page .recruit h2,
  .anniversary-page .anniv-recruit h2,
  .news-page .anniv-recruit h2,
  .works-page .anniv-recruit h2,
  .page-with-recruit .anniv-recruit h2 {
    margin: 0 0 8vw 0;
    padding: 0 0 0 0;
    line-height: 1.3em;
    font-size: 30px;
    font-weight: 600;
    color: #3e5069;
    letter-spacing: 0.04em;
    position: relative;
    z-index: 5;
  }
  .home-page .recruit .more,
  .anniversary-page .anniv-recruit .more,
  .news-page .anniv-recruit .more,
  .works-page .anniv-recruit .more,
  .page-with-recruit .anniv-recruit .more {
    margin: 0 auto 0 auto;
    padding: 0 0 0 0;
    width: 294px;
    max-width: calc(100% - 40px);
    position: relative;
    z-index: 5;
  }
  .home-page .recruit .eng-group,
  .anniversary-page .anniv-recruit .eng-group,
  .news-page .anniv-recruit .eng-group,
  .works-page .anniv-recruit .eng-group,
  .page-with-recruit .anniv-recruit .eng-group {
    width: 100%;
    margin: 16px 0 24px 0;
    position: relative;
    z-index: 3;
    mix-blend-mode: multiply;
    overflow: hidden;
    pointer-events: none;
  }
  .home-page .recruit .eng,
  .anniversary-page .anniv-recruit .eng,
  .news-page .anniv-recruit .eng,
  .works-page .anniv-recruit .eng,
  .page-with-recruit .anniv-recruit .eng {
    width: auto;
    white-space: nowrap;
    line-height: 1.4em;
    font-size: 44px;
    font-weight: 700;
    font-family: "Cardo";
    text-align: center;
    opacity: 0.8;
    background: linear-gradient(180deg, #fdffe9 0%, #fee9c6 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    /*  position: absolute;
    top: 45.333vw;
    left: 50%;
    transform: translate(-50%,0);*/
  }

  .home-page .recruit .image-box {
    margin: 0 0 0 0;
    padding: 0;
    width: 100%;
    background-color: #fff;
    position: relative;
    z-index: 1;
  }
  .anniversary-page .anniv-recruit .image-box,
  .news-page .anniv-recruit .image-box,
  .works-page .anniv-recruit .image-box,
  .page-with-recruit .anniv-recruit .image-box {
    margin: 0 0 0 0;
    padding: 0;
    width: 100%;
    background-color: #fff;
    position: relative;
    z-index: 1;
  }
  .home-page .recruit .image-box::after,
  .anniversary-page .anniv-recruit .image-box::after,
  .news-page .anniv-recruit .image-box::after,
  .works-page .anniv-recruit .image-box::after,
  .page-with-recruit .anniv-recruit .image-box::after {
    width: 100%;
    height: 100%;
    content: "";
    background: rgba(252, 246, 184, 0.32);
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
  }

  .home-page .recruit .image-box img,
  .anniversary-page .anniv-recruit .image-box img,
  .news-page .anniv-recruit .image-box img,
  .works-page .anniv-recruit .image-box img,
  .page-with-recruit .anniv-recruit .image-box img {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    z-index: 0;
  }
}

/* news-page・域兜遞ｿ荳隕ｧ繝ｻ隧ｳ邏ｰ・・*/
.c-page-title.c-page-title--news {
  background: url("../images/news/news-fv.png") no-repeat center center;
  background-size: cover;
}

.c-page-title.c-page-title--news .inner.c-txt-center {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.c-page-title.c-page-title--news h1 {
  margin: 0;
}

.c-page-title.c-page-title--news .eng {
  margin-top: 6px;
}

.news-page {
  background: #fff;
  padding-bottom: 0;
}

.news-archive__lead {
  margin: 77px auto 0;
  width: 90%;
  max-width: 1080px;
}

.news-archive__lead-text {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 25px;
  line-height: 1.5;
  letter-spacing: 0;
  text-align: center;
  color: #404044;
}

.news-archive__lead-toggle {
  display: none;
}

.news-archive__genres {
  margin: 100px auto 0;
  width: 90%;
  max-width: 1080px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
  flex-wrap: wrap;
}

.news-archive__genres-inner {
  display: contents;
}

.news-archive__genre-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 7px;
  min-width: 77px;
  border: 0;
  background: transparent;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.1em;
  text-align: center;
  color: #404044;
  position: relative;
  overflow: visible;
  cursor: pointer;
}

.news-archive__genre-btn::after {
  width: 77px;
  height: 3px;
  content: "";
  background: rgba(49, 79, 106, 1);
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.26s ease;
}

.news-archive__genre-btn.is-active::after {
  clip-path: inset(0 0 0 0);
}

.news-archive__genre-btn:not(.is-active):hover::after,
.news-archive__genre-btn:not(.is-active):focus-visible::after {
  clip-path: inset(0 0 0 0);
}

.news-archive__genres:not(.is-filter-ready)
  .news-archive__genre-btn[data-news-filter="all"]::after {
  clip-path: inset(0 0 0 0);
}

.news-page .news {
  margin: 0;
  padding: 48px 0 45px;
  position: relative;
  z-index: 1;
}

.news-page .news::after {
  width: 100%;
  height: 100%;
  content: "";
  background: url("../images/home/news_back_01.png") no-repeat center top;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  opacity: 1;
}

.news-page .news.news--archive {
  background: #fff;
}

.news-page .news.news--archive::after {
  display: none;
}

.news-page .news .list {
  margin: 34px auto 17px;
  padding: 2px 0 0;
  width: 90%;
  max-width: 836px;
  background: url("../images/home/news_line_01.png") no-repeat center top;
  background-size: 100% 2px;
  position: relative;
  z-index: 1;
}

.news-page .news.news--archive .list {
  margin-top: 32px;
}

.news-page .news + .news-archive__recruit {
  margin-top: 87px;
}

.news-page--single .news-single__back + .news-archive__recruit {
  margin-top: 87px;
}

.works-page .works-archive + .works-archive__recruit {
  margin-top: 87px;
}

.works-page--single .works-single__back + .works-archive__recruit {
  margin-top: 87px;
}

/* 座談会ページの採用エリア：座談会ボタンなし・写真なし・流れる文字をボタン位置へ */
.page-with-recruit--cross_talk .anniv-recruit.page-recruit--cross-talk {
  overflow: hidden;
}
.page-with-recruit--cross_talk .anniv-recruit.page-recruit--cross-talk .more.anniv-recruit__actions {
  gap: 0;
}
.page-with-recruit--cross_talk .anniv-recruit.page-recruit--cross-talk .eng-group {
  margin: -160px 0 0;
}

@media only screen and (min-width: 768px) and (max-width: 1300px) {
  .page-with-recruit--cross_talk .anniv-recruit.page-recruit--cross-talk .eng-group {
    margin: -12.5vw 0 0;
  }
}

.news-page .anniv-recruit .more.anniv-recruit__actions,
.works-page .anniv-recruit .more.anniv-recruit__actions,
.page-with-recruit .anniv-recruit .more.anniv-recruit__actions,
.anniversary-page .anniv-recruit .more.anniv-recruit__actions,
.home-page .recruit .more.anniv-recruit__actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 123px;
  width: auto;
  max-width: none;
}

.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03,
.page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03,
.home-page .recruit .anniv-recruit__actions .c-link-btn03 {
  width: 272px;
  flex-shrink: 0;
}

.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert,
.page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert,
.anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert,
.home-page .recruit .anniv-recruit__actions .c-link-btn03--invert {
  color: #ea8c1a;
  background-color: #fff;
  border: 1px solid rgba(234, 140, 26, 1);
  pointer-events: auto;
  position: relative;
  z-index: 6;
  cursor: pointer;
  transition:
    color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
    border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
}

.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover,
.page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover,
.anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover,
.home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:hover,
.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
.page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
.anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
.home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:active {
  color: #fff;
  border-color: transparent;
  text-decoration: none;
}

.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
.page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
.anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
.home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:active {
  background-image: none;
}

.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03::after,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03::after,
.page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03::after,
.anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03::after,
.home-page .recruit .anniv-recruit__actions .c-link-btn03::after {
  width: 14px;
  height: 14px;
}

.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert::after,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert::after,
.page-with-recruit
  .anniv-recruit
  .anniv-recruit__actions
  .c-link-btn03--invert::after,
.anniversary-page
  .anniv-recruit
  .anniv-recruit__actions
  .c-link-btn03--invert::after,
.home-page .recruit .anniv-recruit__actions .c-link-btn03--invert::after {
  background: url("../images/common/arrow_04.png") no-repeat center center;
  background-size: 100% 100%;
}

.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover::after,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover::after,
.page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover::after,
.anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover::after,
.home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:hover::after,
.news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active::after,
.works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active::after,
.page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active::after,
.anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active::after,
.home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:active::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}

.js-eng-slider .slick-slide {
  width: auto;
}

.js-eng-slider .slick-slide > div {
  display: inline-block;
}

.news-page .news .list .item {
  background: #fff url("../images/home/news_line_01.png") no-repeat center
    bottom;
  background-size: 100% 2px;
  position: relative;
}

.news-page .news .list .item a {
  padding: 30px 70px 30px 32px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  transition: opacity 0.4s ease;
}

.news-page .news .list .item a:hover {
  text-decoration: none;
  opacity: 0.6;
}

.news-page .news .list .item a .post {
  width: auto;
  height: 30px;
  line-height: 1;
  font-size: 12px;
  font-weight: 600;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  letter-spacing: 0;
  text-align: center;
  color: #404044;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-right: 22px;
}

.news-page .news .list .item a .genre {
  width: 68px;
  height: 30px;
  line-height: 1;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  color: rgba(217, 71, 66, 1);
  border: 1px solid rgba(217, 71, 66, 1);
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 26px;
  box-sizing: border-box;
  flex-shrink: 0;
}

.news-page .news .list .item a .genre.genre--works {
  color: rgba(29, 150, 130, 1);
  border-color: rgba(29, 150, 130, 1);
}

.news-page .news .list .item a .genre.genre--recruit {
  color: rgba(229, 174, 47, 1);
  border-color: rgba(229, 174, 47, 1);
}

.news-page .news .list .item a .genre.genre--event {
  color: rgba(73, 149, 174, 1);
  border-color: rgba(73, 149, 174, 1);
}

.news-page .news .list .item a .title {
  padding: 0;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 600;
  text-align: left;
  color: #404044;
  flex: 1 1 auto;
  align-self: auto;
  position: relative;
  display: block;
  width: auto;
}

.news-page .news .list .item a::after {
  display: none;
}

.news-page .news .list .item a .title::after {
  display: none;
  width: 41px;
  height: 28px;
  content: "";
  background: url("../images/common/arrow_02.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: auto;
  bottom: 0;
  right: 0;
  transform: none;
}

.news-page .news .list .item a::after {
  display: none;
}

.news-page .news .list .item::after {
  width: 41px;
  height: 28px;
  content: "";
  background: url("../images/common/arrow_02.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  right: 13px;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
}

.news-page .news .list .item:last-child {
  margin-bottom: 60px;
}

.news-page .news-empty {
  margin: 0;
  padding: 40px 20px;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
}

.news-pagination {
  margin: 24px auto 0;
  width: 90%;
  max-width: 836px;
}

.news-pagination ul.page-numbers {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.news-pagination ul.page-numbers a,
.news-pagination ul.page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #3e5069;
  border: 1px solid #3e5069;
  border-radius: 4px;
  text-decoration: none;
}

.news-pagination ul.page-numbers span.current {
  color: #fff;
  background: #3e5069;
}

.news-pagination--single .page-numbers .disabled {
  color: #3e5069;
  opacity: 0.35;
  pointer-events: none;
  cursor: default;
}

.news-pagination--single .page-numbers a {
  pointer-events: none;
  cursor: default;
}

.news-single {
  margin: 67px auto 0;
  padding: 0;
  width: 90%;
  max-width: 743px;
  background: #fff;
  border: 0;
}

.news-single::after {
  content: "";
  display: block;
  clear: both;
}

.news-single__meta {
  margin-top: 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.news-single__genre {
  order: 1;
  width: 68px;
  height: 30px;
  line-height: 1;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  color: rgba(217, 71, 66, 1);
  border: 1px solid rgba(217, 71, 66, 1);
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex-shrink: 0;
}

.news-single__genre--works {
  color: rgba(29, 150, 130, 1);
  border-color: rgba(29, 150, 130, 1);
}

.news-single__genre--recruit {
  color: rgba(229, 174, 47, 1);
  border-color: rgba(229, 174, 47, 1);
}

.news-single__genre--event {
  color: rgba(73, 149, 174, 1);
  border-color: rgba(73, 149, 174, 1);
}

.news-single__date {
  display: block;
  margin: 0;
  order: 2;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  color: #404044;
}

.news-single__title {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  line-height: 1;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0;
  text-align: left;
  color: #404044;
}

.news-single__head {
  display: flex;
  flex-direction: column;
}

.news-single__head .news-single__title {
  order: 1;
}

.news-single__head .news-single__meta {
  order: 2;
}

.news-single__body {
  margin-top: 45px;
  margin-bottom: 56px;
  line-height: 1.8;
  font-size: 16px;
  text-align: left;
  color: #404044;
}

.news-single__body::after {
  content: "";
  display: block;
  clear: both;
}

.news-single__body img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
}

.news-single__body .alignleft {
  float: left;
  margin: 0 1.5em 1em 0;
}

.news-single__body .alignright {
  float: right;
  margin: 0 0 1em 1.5em;
}

.news-single__body .aligncenter {
  display: block;
  margin-inline: auto;
}

.news-single__body p {
  margin: 0 0 1em;
}

.news-single__body p:last-child {
  margin-bottom: 0;
}

.news-single__back {
  clear: both;
  margin: 64px auto 0;
  width: 90%;
  max-width: 743px;
  text-align: center;
}

.news-single__back .c-link-btn02 {
  max-width: 272px;
  margin: 0 auto;
  font-size: 18px;
  color: #fff;
  background-color: #3d6e94;
  background-image: linear-gradient(180deg, #3d6e94, #4d99d1);
  background-size: 100% 100%;
  border-color: transparent;
  isolation: isolate;
  transition:
    color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
    border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
}
.news-single__back .c-link-btn02::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  z-index: -1;
}
.news-single__back .c-link-btn02:hover,
.news-single__back .c-link-btn02:active {
  color: #314f6a;
  border-color: #314f6a;
  background-image: linear-gradient(180deg, #3d6e94, #4d99d1);
  background-size: 100% 100%;
}
.news-single__back .c-link-btn02:hover::before,
.news-single__back .c-link-btn02:active::before {
  transform: scaleX(1);
}
.news-single__back .c-link-btn02::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}
.news-single__back .c-link-btn02:hover::after,
.news-single__back .c-link-btn02:active::after {
  background: url("../images/common/arrow_01.png") no-repeat center center;
  background-size: 100% 100%;
}

@media only screen and (max-width: 767px) {
  .breadcrumbs {
    display: none;
  }

  .c-page-title.c-page-title--news {
    background: url("../images/news/news-fv-sp.png") no-repeat center center;
    background-size: cover;
  }

  .news-page .news {
    padding: 0;
  }

  .news-page .news .list .item a {
    min-height: auto;
    display: grid;
    grid-template-columns: auto auto 1fr;
    align-items: center;
    column-gap: 22px;
    row-gap: 0;
    padding: 0 0 56px 0;
  }

  .news-page .news.news--archive .list {
    margin-top: 20px;
    margin-inline: 20px;
    width: auto;
    padding: 26px 12px 12px;
    border-radius: 5px;
    background: #fff;
    box-shadow: 0.93px 0.93px 9.3px 0 rgba(49, 79, 106, 0.2);
  }

  .news-page .news.news--archive .news-pagination {
    margin: 24px 20px 0;
    width: auto;
    max-width: none;
  }

  .news-page .news .list .item {
    position: relative;
  }

  .news-page .news .list .item::after {
    display: none;
  }

  .news-page .news .list .item a::after {
    display: none !important;
  }

  .news-page .news .list .item a .post {
    width: auto;
    justify-content: center;
    margin: 0;
    flex: none;
  }

  .news-page .news .list .item a .genre {
    width: 68px;
    height: 30px;
    margin: 0;
    flex: none;
  }

  .news-page .news.news--archive .list .item + .item {
    margin-top: 30px;
  }

  .news-page .news + .news-archive__recruit {
    margin-top: 56px;
  }

  .news-page--single .news-single__back + .news-archive__recruit {
    margin-top: 56px;
  }

  .works-page .works-archive + .works-archive__recruit {
    margin-top: 56px;
  }

  .works-page--single .works-single__back + .works-archive__recruit {
    margin-top: 56px;
  }

  .page-with-recruit--cross_talk .anniv-recruit.page-recruit--cross-talk {
    padding-top: 58px;
    background: #ffe9af url("../images/cross_talk/recruit_back_sp.png") no-repeat center top;
    background-size: 100% auto;
  }

  .page-with-recruit--cross_talk .anniv-recruit.page-recruit--cross-talk h2 {
    margin-bottom: 28px;
  }

  .page-with-recruit--cross_talk .anniv-recruit.page-recruit--cross-talk .more {
    margin-bottom: 28px;
  }

  .page-with-recruit--cross_talk .anniv-recruit.page-recruit--cross-talk .eng-group {
    /* ボタン下端から28px／文字下の余白 */
    margin: 0 0 56px;
  }

  .news-page .anniv-recruit .more.anniv-recruit__actions,
  .works-page .anniv-recruit .more.anniv-recruit__actions,
  .page-with-recruit .anniv-recruit .more.anniv-recruit__actions,
  .anniversary-page .anniv-recruit .more.anniv-recruit__actions,
  .home-page .recruit .more.anniv-recruit__actions {
    flex-direction: column;
    gap: 20px;
    width: 294px;
    max-width: calc(100% - 40px);
  }

  .news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03,
  .works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03,
  .page-with-recruit .anniv-recruit .anniv-recruit__actions .c-link-btn03,
  .anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03 {
    width: 294px;
    max-width: 100%;
    height: 54px;
    font-size: 16px;
    border-radius: 4px;
  }

  .news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert,
  .works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03--invert {
    color: #ea8c1a;
    background-color: #fff;
    border: 1px solid rgba(234, 140, 26, 1);
  }

  .news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover,
  .works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:hover,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:hover,
  .news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
  .works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:active {
    color: #fff;
    border-color: transparent;
    text-decoration: none;
  }

  .news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
  .works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03--invert:active,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active,
.home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:active {
  background-image: none;
}

  .news-page .anniv-recruit .anniv-recruit__actions .c-link-btn03::after,
  .works-page .anniv-recruit .anniv-recruit__actions .c-link-btn03::after,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03::after,
  .anniversary-page .anniv-recruit .anniv-recruit__actions .c-link-btn03::after,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03::after {
    width: 14px;
    height: 14px;
  }

  .news-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert::after,
  .works-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert::after,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert::after,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert::after,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03--invert::after {
    background: url("../images/common/arrow_04.png") no-repeat center center;
    background-size: 100% 100%;
  }

  .news-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .works-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:hover::after,
  .news-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .works-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .home-page
    .recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }

  .news-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .works-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:hover::after,
  .news-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .works-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .home-page
    .recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }

  .news-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .works-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:hover::after,
  .home-page .recruit .anniv-recruit__actions .c-link-btn03--invert:hover::after,
  .news-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .works-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .page-with-recruit
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .anniversary-page
    .anniv-recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after,
  .home-page
    .recruit
    .anniv-recruit__actions
    .c-link-btn03--invert:active::after {
    background: url("../images/common/arrow_03.png") no-repeat center center;
    background-size: 100% 100%;
  }

  .news-page .news .list .item a .title {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 34px;
    padding: 0;
    font-size: 14px;
    position: relative;
  }

  .news-page .news .list .item a .title::after {
    display: block;
    width: 41px;
    height: 28px;
    content: "";
    background: url("../images/common/arrow_02.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    top: calc(100% + 4.75px);
    right: 0;
    transform: none;
  }

  .news-archive__filter-wrap {
    position: relative;
    z-index: 20;
    margin: 38px auto 50px;
    width: 345px;
    max-width: calc(100% - 30px);
  }

  .news-archive__lead {
    margin: 0;
    width: 100%;
  }

  .news-archive__lead-text {
    display: none;
  }

  .news-archive__lead-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 57px;
    margin: 0;
    padding: 0 44px;
    border: 1px solid rgba(49, 79, 106, 1);
    background: #fff;
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: center;
    color: #404044;
    position: relative;
    z-index: 2;
    cursor: pointer;
    transition: border-color 0.3s ease;
  }

  .news-archive__lead-toggle-arrow {
    width: auto;
    height: auto;
    position: absolute;
    top: 50%;
    right: 22px;
    transform: translateY(-50%);
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
  }

  .news-archive__lead.is-open .news-archive__lead-toggle {
    border-bottom-color: transparent;
  }

  .news-archive__lead.is-open .news-archive__lead-toggle-arrow {
    transform: translateY(-50%) rotate(180deg);
  }

  .news-archive__genres-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 100%;
    overflow: hidden;
    min-height: 0;
    border: 1px solid rgba(49, 79, 106, 1);
    border-top: none;
    background: #fff;
    box-sizing: border-box;
  }

  .news-archive__genres {
    display: grid;
    grid-template-rows: 0fr;
    grid-template-columns: 1fr;
    position: absolute;
    top: 57px;
    left: 0;
    right: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    justify-content: stretch;
    align-items: stretch;
    gap: 0;
    flex-wrap: nowrap;
    border: 0;
    background: transparent;
    pointer-events: none;
    box-sizing: border-box;
    transition:
      grid-template-rows 0.55s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1),
      visibility 0.55s;
  }

  .news-archive__lead.is-open + .news-archive__genres {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .news-archive__genre-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 100%;
    min-width: 100%;
    max-width: none;
    height: 57px;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid rgba(49, 79, 106, 1);
    background: #fff;
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: center;
    color: #404044;
  }

  .news-archive__genre-btn::after {
    display: none;
  }

  .news-archive__genre-btn.is-active {
    background: #fff;
    color: rgba(33, 147, 185, 1);
  }

  .news-page--single .c-page-title.c-page-title--news {
    display: none;
  }

  .news-page--single .news-single {
    margin-top: 0;
    padding: 28px 20px 0;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }

  .news-page--single .news-single__head .news-single__title {
    order: 2;
    margin-top: 30px;
    font-size: 20px;
    line-height: 1.4;
    text-align: left;
  }

  .news-page--single .news-single__head .news-single__meta {
    order: 1;
    margin-top: 0;
    justify-content: flex-start;
    gap: 22px;
  }

  .news-page--single .news-single__date {
    order: 1;
    text-align: left;
  }

  .news-page--single .news-single__genre {
    order: 2;
  }

  .news-page--single .news-single__body {
    margin-top: 30px;
    margin-bottom: 40px;
  }

  .news-page--single .news-single__back {
    margin-top: 56px;
    padding-inline: 20px;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }

  .news-single__back .c-link-btn02 {
    font-size: 16px;
  }
}

/* clock */
.clock {
  width: 100%;
  aspect-ratio: 2880 / 940;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.clock__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.clock__bg-item {
  position: absolute;
  left: 0;
  right: 0;
  height: 100%;
  background: url("../images/home/clock-background.png") no-repeat center center;
  background-size: cover;
}

.clock__bg-item:first-child {
  top: 0;
}

.clock__bg-item:last-child {
  top: 100%;
}

.clock__gradient {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.clock__dial {
  position: relative;
  z-index: 3;
  width: min(31vw, 470px);
}

.clock__body {
  width: 100%;
  height: auto;
  display: block;
}

.clock__needles {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.clock__needle {
  position: absolute;
  width: auto;
  height: auto;
  --needle-angle: 0deg;
  transition: none;
}

.clock__needle--short {
  height: 28.8%;
  left: 50%;
  top: 50.1%;
  transform-origin: 50% 98.8%;
  transform: translate(-50%, -98.8%) rotate(var(--needle-angle));
  z-index: 1;
  display: block;
}

.clock__needle--long {
  height: 40.8%;
  left: 50%;
  top: 50.2%;
  transform-origin: 50% 95.9%;
  transform: translate(-50%, -95.9%) rotate(var(--needle-angle));
  z-index: 2;
  display: block;
}

@media only screen and (max-width: 767px) {
  .clock {
    aspect-ratio: auto;
    height: 181px;
  }

  .clock__bg-item {
    background-image: url("../images/home/clock-background-sp.png");
  }

  .clock__dial {
    width: 162px;
  }
}

/* recruit */
.recruit-page {
  margin: 0 auto;
  padding: 56px 0 35px 0;
  width: 90%;
  max-width: 996px;
}
.recruit-page h2 {
  padding: 0 0 25px 0;
  text-align: center;
  color: #314f6a;
  line-height: 1.2em;
  font-size: 35px;
  font-weight: 600;
}
.recruit-page .job-description {
  margin: 0 0 0 0;
  padding: 0 0 95px 0;
  width: 100%;
}
.recruit-page .job-description table {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
}
.recruit-page .job-description table th {
  margin: 0 0 0 0;
  padding: 25px 0 25px 7px;
  width: 200px;
  line-height: 1.8em;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
  text-align: left;
  border-bottom: 1px solid #2e759c;
  vertical-align: middle;
  box-sizing: border-box;
}
.recruit-page .job-description table th.vt {
  vertical-align: top;
}

.recruit-page .job-description table td {
  margin: 0 0 0 0;
  padding: 25px 0;
  line-height: 1.8em;
  font-size: 16px;
  font-weight: 600;
  text-align: left;
  color: #404044;
  border-bottom: 1px solid #2e759c;
}
.recruit-page .job-description table td .list01 {
}
.recruit-page .job-description table td .list01 li {
  padding: 0 0 0 1.2em;
  position: relative;
}
.recruit-page .job-description table td .list01 li::before {
  content: "■";
  position: absolute;
  top: 0;
  left: 0;
}
.recruit-page .job-description table td .dl01 {
  display: flex;
}
.recruit-page .job-description table td .dl01 dt {
  padding: 0 0 0 1.2em;
  width: 140px;
  position: relative;
  box-sizing: border-box;
}
.recruit-page .job-description table td .dl01 dt::before {
  content: "■";
  position: absolute;
  top: 0;
  left: 0;
}
.recruit-page .job-description table td .dl02 {
  margin: 0 0 20px 0;
  display: flex;
  flex-direction: column;
}
.recruit-page .job-description table td .dl02:last-child {
  margin: 0 0 0 0;
}
.recruit-page .job-description table td .dl02 dt {
  padding: 0 0 0 1.2em;
  position: relative;
  box-sizing: border-box;
}
.recruit-page .job-description table td .dl02 dt::before {
  content: "■";
  position: absolute;
  top: 0;
  left: 0;
}
.recruit-page .job-description table td .dl02 dd {
  padding: 0 0 0 1.2em;
  position: relative;
  box-sizing: border-box;
}
.recruit-page .job-description table td .dl03 {
  display: flex;
}
.recruit-page .job-description table td .dl03 dt {
  padding: 0 25px 0 1.2em;
  position: relative;
  box-sizing: border-box;
}
.recruit-page .job-description table td .dl03 dt::before {
  content: "■";
  position: absolute;
  top: 0;
  left: 0;
}
.recruit-page .job-description table td a {
  color: #404044;
  text-decoration: underline;
}
.recruit-page .job-description table td a:hover {
  text-decoration: none;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .recruit-page {
    margin: 0 auto;
    padding: 4.308vw 0 2.692vw 0;
    width: 90%;
    max-width: 76.615vw;
  }
  .recruit-page h2 {
    padding: 0 0 1.923vw 0;
    text-align: center;
    color: #314f6a;
    line-height: 1.2em;
    font-size: 2.692vw;
    font-weight: 600;
  }
  .recruit-page .job-description {
    margin: 0 0 0 0;
    padding: 0 0 7.308vw 0;
    width: 100%;
  }
  .recruit-page .job-description table {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
  }
  .recruit-page .job-description table th {
    margin: 0 0 0 0;
    padding: 1.923vw 0 1.923vw 0.538vw;
    width: 15.385vw;
    line-height: 1.8em;
    font-size: 1.231vw;
    font-weight: 600;
    color: #404044;
    text-align: left;
    border-bottom: 1px solid #2e759c;
    vertical-align: middle;
    box-sizing: border-box;
  }
  .recruit-page .job-description table th.vt {
    vertical-align: top;
  }

  .recruit-page .job-description table td {
    margin: 0 0 0 0;
    padding: 1.923vw 0;
    line-height: 1.8em;
    font-size: 1.231vw;
    font-weight: 600;
    text-align: left;
    color: #404044;
    border-bottom: 1px solid #2e759c;
  }
  .recruit-page .job-description table td .list01 {
  }
  .recruit-page .job-description table td .list01 li {
    padding: 0 0 0 1.2em;
    position: relative;
  }
  .recruit-page .job-description table td .list01 li::before {
    content: "■";
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .job-description table td .dl01 {
    display: flex;
  }
  .recruit-page .job-description table td .dl01 dt {
    padding: 0 0 0 1.2em;
    width: 10.769vw;
    position: relative;
    box-sizing: border-box;
  }
  .recruit-page .job-description table td .dl01 dt::before {
    content: "■";
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .job-description table td .dl02 {
    margin: 0 0 1.538vw 0;
    display: flex;
    flex-direction: column;
  }
  .recruit-page .job-description table td .dl02:last-child {
    margin: 0 0 0 0;
  }
  .recruit-page .job-description table td .dl02 dt {
    padding: 0 0 0 1.2em;
    position: relative;
    box-sizing: border-box;
  }
  .recruit-page .job-description table td .dl02 dt::before {
    content: "■";
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .job-description table td .dl02 dd {
    padding: 0 0 0 1.2em;
    position: relative;
    box-sizing: border-box;
  }
  .recruit-page .job-description table td .dl03 {
    display: flex;
  }
  .recruit-page .job-description table td .dl03 dt {
    padding: 0 25px 0 1.2em;
    position: relative;
    box-sizing: border-box;
  }
  .recruit-page .job-description table td .dl03 dt::before {
    content: "■";
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .job-description table td a {
    color: #404044;
    text-decoration: underline;
  }
  .recruit-page .job-description table td a:hover {
    text-decoration: none;
  }
}
@media only screen and (max-width: 767px) {
  /* 375 */
  .recruit-page {
    margin: 0 auto;
    padding: 14.933vw 0 9.333vw 0;
    width: 90%;
  }
  .recruit-page h2 {
    padding: 0 0 6.667vw 0;
    text-align: center;
    color: #314f6a;
    line-height: 1.2em;
    font-size: 9.333vw;
    font-weight: 600;
  }
  .recruit-page .job-description {
    margin: 0 0 0 0;
    padding: 0 0 25.333vw 0;
    width: 100%;
  }
  .recruit-page .job-description table {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    display: block;
  }
  .recruit-page .job-description table tr {
    display: block;
  }
  .recruit-page .job-description table tbody {
    display: block;
  }
  .recruit-page .job-description table th {
    margin: 0 0 0 0;
    padding: 4vw 0 4vw 1.867vw;
    width: 100%;
    line-height: 1.8em;
    font-size: 3.733vw;
    font-weight: 600;
    color: #404044;
    text-align: left;
    border-bottom: none;
    vertical-align: middle;
    box-sizing: border-box;
    display: block;
  }
  .recruit-page .job-description table th.vt {
    vertical-align: top;
  }
  .recruit-page .job-description table th {
  }
  .recruit-page .job-description table td {
    margin: 0 0 0 0;
    padding: 0 0 4vw 5.333vw;
    line-height: 1.8em;
    font-size: 3.733vw;
    font-weight: 600;
    text-align: left;
    color: #404044;
    border-bottom: 1px solid #2e759c;
    display: block;
  }
  .recruit-page .job-description table td .list01 {
  }
  .recruit-page .job-description table td .list01 li {
    padding: 0 0 0 1.2em;
    position: relative;
  }
  .recruit-page .job-description table td .list01 li::before {
    content: "■";
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .job-description table td .dl01 {
    display: flex;
  }
  .recruit-page .job-description table td .dl01 dt {
    padding: 0 0 0 1.2em;
    width: 37.333vw;
    position: relative;
    box-sizing: border-box;
  }
  .recruit-page .job-description table td .dl01 dt::before {
    content: "■";
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .job-description table td .dl02 {
    margin: 0 0 5.333vw 0;
    display: flex;
    flex-direction: column;
  }
  .recruit-page .job-description table td .dl02:last-child {
    margin: 0 0 0 0;
  }
  .recruit-page .job-description table td .dl02 dt {
    padding: 0 0 0 1.2em;
    position: relative;
    box-sizing: border-box;
  }
  .recruit-page .job-description table td .dl02 dt::before {
    content: "■";
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .job-description table td .dl02 dd {
    padding: 0 0 0 1.2em;
    position: relative;
    box-sizing: border-box;
  }
  .recruit-page .job-description table td .dl03 {
    display: flex;
  }
  .recruit-page .job-description table td .dl03 dt {
    padding: 0 25px 0 1.2em;
    position: relative;
    box-sizing: border-box;
  }
  .recruit-page .job-description table td .dl03 dt::before {
    content: "■";
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .job-description table td a {
    color: #404044;
    text-decoration: underline;
  }
  .recruit-page .job-description table td a:hover {
    text-decoration: none;
  }
}

/* privacy-page */
.privacy-page {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
}
.privacy-page .intro {
  margin: 0 0 43px 0;
  padding: 59px 0 59px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 700;
  color: #314f6a;
}
.privacy-page h2 {
  margin: 0 auto 20px auto;
  padding: 0 0 13px 0;
  width: 90%;
  max-width: 996px;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 600;
  text-align: left;
  color: #314f6a;
  border-bottom: 1px solid rgba(46, 117, 156, 0.5);
}
.privacy-page .description {
  margin: 0 auto 0 auto;
  padding: 0 0 35px 0;
  width: 90%;
  max-width: 996px;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 500;
  text-align: left;
  color: #404044;
}
.privacy-page .description p {
  margin: 0 0 0 0;
  padding: 0 0 35px 0;
}
.privacy-page .description ul {
  margin: 0 0 0 1.2em;
  padding: 0 0 0 0;
  list-style: disc;
}
.privacy-page .description a {
  text-decoration: underline;
}
.privacy-page .description a:hover {
  text-decoration: none;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .privacy-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .privacy-page .intro {
    margin: 0 0 3.308vw 0;
    padding: 4.538vw 0 4.538vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 700;
    color: #314f6a;
  }
  .privacy-page h2 {
    margin: 0 auto 1.538vw auto;
    padding: 0 0 1vw 0;
    width: 90%;
    max-width: 76.615vw;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 600;
    text-align: left;
    color: #314f6a;
    border-bottom: 1px solid rgba(46, 117, 156, 0.5);
  }
  .privacy-page .description {
    margin: 0 auto 0 auto;
    padding: 0 0 2.692vw 0;
    width: 90%;
    max-width: 76.615vw;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 500;
    text-align: left;
    color: #404044;
  }
  .privacy-page .description p {
    margin: 0 0 0 0;
    padding: 0 0 2.692vw 0;
  }
  .privacy-page .description ul {
    margin: 0 0 0 1.2em;
    padding: 0 0 0 0;
    list-style: disc;
  }
  .privacy-page .description a {
    text-decoration: underline;
  }
  .privacy-page .description a:hover {
    text-decoration: none;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .privacy-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .privacy-page .intro {
    margin: 0 0 6.154vw 0;
    padding: 8.205vw 0 8.205vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 700;
    color: #314f6a;
  }
  .privacy-page h2 {
    margin: 0 auto 2.564vw auto;
    padding: 0 0 2.564vw 0;
    width: 83.077vw;
    max-width: 83.077vw;
    line-height: 1.4em;
    font-size: 5.128vw;
    font-weight: 600;
    text-align: left;
    color: #314f6a;
    border-bottom: 1px solid rgba(46, 117, 156, 0.5);
  }
  .privacy-page .description {
    margin: 0 auto 0 auto;
    padding: 0 0 8.974vw 0;
    width: 83.077vw;
    max-width: 83.077vw;
    line-height: 1.4em;
    font-size: 3.59vw;
    font-weight: 500;
    text-align: left;
    color: #404044;
  }
  .privacy-page .description p {
    margin: 0 0 0 0;
    padding: 0 0 8.974vw 0;
  }
  .privacy-page .description ul {
    margin: 0 0 0 1.2em;
    padding: 0 0 0 0;
    list-style: disc;
  }
  .privacy-page .description a {
    text-decoration: underline;
  }
  .privacy-page .description a:hover {
    text-decoration: none;
  }
}

/* law-page */
.law-page {
  margin: 0 0 0 0;
  padding: 55px 0 75px 0;
}
.law-page h2 {
  margin: 0 auto 20px auto;
  padding: 0 0 13px 0;
  width: 90%;
  max-width: 996px;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 600;
  text-align: left;
  color: #314f6a;
  border-bottom: 1px solid rgba(46, 117, 156, 0.5);
}
.law-page .description {
  margin: 0 auto 0 auto;
  padding: 0 0 0 0;
  width: 90%;
  max-width: 996px;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 500;
  text-align: left;
  color: #404044;
}
.law-page .description p {
  margin: 0 0 0 0;
  padding: 0 0 25px 0;
}
.law-page .description a {
  text-decoration: underline;
}
.law-page .description a:hover {
  text-decoration: none;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .law-page {
    margin: 0 0 0 0;
    padding: 4.231vw 0 5.769vw 0;
  }
  .law-page h2 {
    margin: 0 auto 1.538vw auto;
    padding: 0 0 1vw 0;
    width: 90%;
    max-width: 76.615vw;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 600;
    text-align: left;
    color: #314f6a;
    border-bottom: 1px solid rgba(46, 117, 156, 0.5);
  }
  .law-page .description {
    margin: 0 auto 0 auto;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 76.615vw;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 500;
    text-align: left;
    color: #404044;
  }
  .law-page .description p {
    margin: 0 0 0 0;
    padding: 0 0 1.923vw 0;
  }
  .law-page .description a {
    text-decoration: underline;
  }
  .law-page .description a:hover {
    text-decoration: none;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .law-page {
    margin: 0 0 0 0;
    padding: 15.385vw 0 8.974vw 0;
  }
  .law-page h2 {
    margin: 0 auto 2.564vw auto;
    padding: 0 0 2.564vw 0;
    width: 83.077vw;
    max-width: 83.077vw;
    line-height: 1.4em;
    font-size: 5.128vw;
    font-weight: 600;
    text-align: left;
    color: #314f6a;
    border-bottom: 1px solid rgba(46, 117, 156, 0.5);
  }
  .law-page .description {
    margin: 0 auto 0 auto;
    padding: 0 0 0 0;
    width: 83.077vw;
    max-width: 83.077vw;
    line-height: 1.4em;
    font-size: 3.59vw;
    font-weight: 500;
    text-align: left;
    color: #404044;
  }
  .law-page .description p {
    margin: 0 0 0 0;
    padding: 0 0 6.41vw 0;
  }
  .law-page .description a {
    text-decoration: underline;
  }
  .law-page .description a:hover {
    text-decoration: none;
  }
}

/* policy-page */
.policy-page {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
}
.policy-page .intro {
  margin: 0 0 0 0;
  padding: 77px 0 77px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 700;
  color: #314f6a;
}
.policy-page .company-creed {
  margin: 0 0 0 0;
  padding: 84px 0 70px 0;
  width: 100%;
  text-align: center;
  color: #fff;
  background: url("../images/policy/company_creed_back_01.png") no-repeat center
    center;
  background-size: cover;
  position: relative;
}
.policy-page .company-creed::after {
  width: 416px;
  height: 440px;
  content: "";
  background: url("../images/policy/company_creed_deco_01.png") no-repeat center
    center;
  background-size: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  mix-blend-mode: multiply;
}
.policy-page .company-creed h2 {
  margin: 0 0 0 0;
  padding: 0 0 30px 0;
  line-height: 1.2em;
  font-size: 35px;
  font-weight: 600;
  position: relative;
  z-index: 1;
}
.policy-page .company-creed p {
  margin: 0 0 0 0;
  padding: 0 0 30px 0;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 600;
  position: relative;
  z-index: 1;
}
.policy-page .company-creed hr {
  margin: 0 auto;
  padding: 0 0 0 0;
  width: 700px;
  height: 0;
  background: none;
  border: none;
  border-top: 1px solid #fff;
  clear: both;
  position: relative;
  z-index: 1;
}
.policy-page .company-creed ul {
  margin: 0 auto;
  padding: 42px 0;
  width: 700px;
  text-align: left;
  line-height: 2.5em;
  font-size: 20px;
  font-weight: 600;
  position: relative;
  z-index: 1;
}
.policy-page .corporate-philosophy {
  margin: 0 0 0 0;
  padding: 100px 0 100px 0;
  width: 100%;
}
.policy-page .corporate-philosophy h2 {
  margin: 0 0 0 0;
  padding: 0 0 30px 0;
  line-height: 1.2em;
  font-size: 35px;
  font-weight: 600;
  color: #314f6a;
}
.policy-page .corporate-philosophy p {
  margin: 0 0 0 0;
  padding: 0 0 60px 0;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 600;
  color: #314f6a;
}
.policy-page .corporate-philosophy .item {
  margin: 0 auto;
  padding: 0 0 0 0;
  width: 90%;
  max-width: 1200px;
  height: 377px;
  text-align: center;
  box-sizing: border-box;
  position: relative;
}
.policy-page .corporate-philosophy .item.item--num01 {
  padding: 47px 0 0 0;
  background: url("../images/policy/corporate_philosophy_back_01.png") no-repeat
    center center;
  background-size: cover;
}
.policy-page .corporate-philosophy .item.item--num01::after {
  width: 100%;
  height: 100%;
  content: "";
  background: url("../images/policy/corporate_philosophy_back_02.png") no-repeat
    center center;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  mix-blend-mode: multiply;
}
.policy-page .corporate-philosophy .item.item--num02 {
  padding: 54px 0 0 0;
  background: url("../images/policy/corporate_philosophy_back_03.png") no-repeat
    center center;
  background-size: cover;
}
.policy-page .corporate-philosophy .item.item--num02::after {
  width: 100%;
  height: 100%;
  content: "";
  background: url("../images/policy/corporate_philosophy_back_04.png") no-repeat
    center center;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  mix-blend-mode: multiply;
}
.policy-page .corporate-philosophy .item.item--num03 {
  padding: 54px 0 0 0;
  background: url("../images/policy/corporate_philosophy_back_05.png") no-repeat
    center center;
  background-size: cover;
}

.policy-page .corporate-philosophy .item .num {
  margin: 0 auto 22px;
  position: relative;
  z-index: 1;
}
.policy-page .corporate-philosophy .item.item--num01 .num {
  width: 56px;
}
.policy-page .corporate-philosophy .item.item--num02 .num {
  width: 73px;
}
.policy-page .corporate-philosophy .item.item--num03 .num {
  width: 69px;
}
.policy-page .corporate-philosophy .item h3 {
  margin: 0 0 0 0;
  padding: 0 0 15px 0;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: 600;
  color: #314f6a;
}
.policy-page .corporate-philosophy .item p {
  margin: 0 0 0 0;
  padding: 0 0 33px 0;
  line-height: 32px;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
  letter-spacing: 0;
  text-align: center;
}
.policy-page .corporate-philosophy .item .eng {
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  mix-blend-mode: screen;
}
.policy-page .corporate-philosophy .item.item--num03 .eng {
  mix-blend-mode: multiply;
}
.policy-page .quality-policy {
  margin: 0 0 0 0;
  padding: 84px 0 86px 0;
  width: 100%;
  text-align: center;
  background: url("../images/policy/quality_policy_back_01.png") no-repeat
    center center;
  background-size: cover;
  position: relative;
}
.policy-page .quality-policy h2 {
  margin: 0 0 0 0;
  padding: 0 0 30px 0;
  line-height: 1.2em;
  font-size: 35px;
  font-weight: 600;
  color: #314f6a;
}
.policy-page .quality-policy p {
  margin: 0 0 0 0;
  padding: 0 0 60px 0;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 600;
  color: #314f6a;
}
.policy-page .quality-policy .list {
  margin: 0 auto;
  padding: 0 0 0 0;
  width: 90%;
  max-width: 802px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.policy-page .quality-policy .list .item {
  margin: 0 0 38px 0;
  padding: 35px 31px 32px 31px;
  width: 49%;
  max-width: 382px;
  box-sizing: border-box;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0 18px 6px rgba(46, 117, 156, 0.2);
}
.policy-page .quality-policy .list .item .eng {
  margin: 0 0 0 0;
  padding: 0 0 13px 0;
  text-align: center;
  line-height: 1.1em;
  font-size: 30px;
  font-weight: 400;
}
.policy-page .quality-policy .list .item.item--num01 .eng {
  color: #dc5743;
}
.policy-page .quality-policy .list .item.item--num02 .eng {
  color: #3b927b;
}
.policy-page .quality-policy .list .item.item--num03 .eng {
  color: #2a789c;
}
.policy-page .quality-policy .list .item.item--num04 .eng {
  color: #c7a257;
}
.policy-page .quality-policy .list .item h3 {
  margin: 0 0 0 0;
  padding: 0 0 28px 0;
  text-align: center;
  line-height: 1.1em;
  font-size: 25px;
  font-weight: 700;
}
.policy-page .quality-policy .list .item.item--num01 h3 {
  color: #dc5743;
}
.policy-page .quality-policy .list .item.item--num02 h3 {
  color: #3b927b;
}
.policy-page .quality-policy .list .item.item--num03 h3 {
  color: #2a789c;
}
.policy-page .quality-policy .list .item.item--num04 h3 {
  color: #c7a257;
}
.policy-page .quality-policy .list .item p {
  margin: 0 0 0 0;
  padding: 0 0 0 7px;
  text-align: left;
  line-height: 1.7em;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .policy-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .policy-page .intro {
    margin: 0 0 0 0;
    padding: 5.923vw 0 5.923vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 700;
    color: #314f6a;
  }
  .policy-page .company-creed {
    margin: 0 0 0 0;
    padding: 6.462vw 0 5.385vw 0;
    width: 100%;
    text-align: center;
    color: #fff;
    background: url("../images/policy/company_creed_back_01.png") no-repeat
      center center;
    background-size: cover;
    position: relative;
  }
  .policy-page .company-creed::after {
    width: 32vw;
    height: 33.846vw;
    content: "";
    background: url("../images/policy/company_creed_deco_01.png") no-repeat
      center center;
    background-size: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    mix-blend-mode: multiply;
  }
  .policy-page .company-creed h2 {
    margin: 0 0 0 0;
    padding: 0 0 2.308vw 0;
    line-height: 1.2em;
    font-size: 2.692vw;
    font-weight: 600;
    position: relative;
    z-index: 1;
  }
  .policy-page .company-creed p {
    margin: 0 0 0 0;
    padding: 0 0 2.308vw 0;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 600;
    position: relative;
    z-index: 1;
  }
  .policy-page .company-creed hr {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 53.846vw;
    height: 0;
    background: none;
    border: none;
    border-top: 1px solid #fff;
    clear: both;
    position: relative;
    z-index: 1;
  }
  .policy-page .company-creed ul {
    margin: 0 auto;
    padding: 3.231vw 0;
    width: 53.846vw;
    text-align: left;
    line-height: 2.5em;
    font-size: 1.538vw;
    font-weight: 600;
    position: relative;
    z-index: 1;
  }
  .policy-page .corporate-philosophy {
    margin: 0 0 0 0;
    padding: 7.692vw 0 7.692vw 0;
    width: 100%;
  }
  .policy-page .corporate-philosophy h2 {
    margin: 0 0 0 0;
    padding: 0 0 2.308vw 0;
    line-height: 1.2em;
    font-size: 2.692vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .corporate-philosophy p {
    margin: 0 0 0 0;
    padding: 0 0 4.615vw 0;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .corporate-philosophy .item {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 92.308vw;
    height: 29vw;
    text-align: center;
    box-sizing: border-box;
    position: relative;
  }
  .policy-page .corporate-philosophy .item.item--num01 {
    padding: 3.615vw 0 0 0;
    background: url("../images/policy/corporate_philosophy_back_01.png")
      no-repeat center center;
    background-size: cover;
  }
  .policy-page .corporate-philosophy .item.item--num01::after {
    width: 100%;
    height: 100%;
    content: "";
    background: url("../images/policy/corporate_philosophy_back_02.png")
      no-repeat center center;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    mix-blend-mode: multiply;
  }
  .policy-page .corporate-philosophy .item.item--num02 {
    padding: 4.154vw 0 0 0;
    background: url("../images/policy/corporate_philosophy_back_03.png")
      no-repeat center center;
    background-size: cover;
  }
  .policy-page .corporate-philosophy .item.item--num02::after {
    width: 100%;
    height: 100%;
    content: "";
    background: url("../images/policy/corporate_philosophy_back_04.png")
      no-repeat center center;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    mix-blend-mode: multiply;
  }
  .policy-page .corporate-philosophy .item.item--num03 {
    padding: 4.154vw 0 0 0;
    background: url("../images/policy/corporate_philosophy_back_05.png")
      no-repeat center center;
    background-size: cover;
  }

  .policy-page .corporate-philosophy .item .num {
    margin: 0 auto 1.692vw;
    position: relative;
    z-index: 1;
  }
  .policy-page .corporate-philosophy .item.item--num01 .num {
    width: 4.308vw;
  }
  .policy-page .corporate-philosophy .item.item--num02 .num {
    width: 5.615vw;
  }
  .policy-page .corporate-philosophy .item.item--num03 .num {
    width: 5.308vw;
  }
  .policy-page .corporate-philosophy .item h3 {
    margin: 0 0 0 0;
    padding: 0 0 1.154vw 0;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .corporate-philosophy .item p {
    margin: 0 0 0 0;
    padding: 0 0 2.538vw 0;
    line-height: 1.7em;
    font-size: 1.154vw;
    font-weight: 500;
    color: #404044;
  }
  .policy-page .corporate-philosophy .item .eng {
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
    mix-blend-mode: screen;
  }
  .policy-page .corporate-philosophy .item.item--num03 .eng {
    mix-blend-mode: multiply;
  }
  .policy-page .quality-policy {
    margin: 0 0 0 0;
    padding: 6.462vw 0 6.615vw 0;
    width: 100%;
    text-align: center;
    background: url("../images/policy/quality_policy_back_01.png") no-repeat
      center center;
    background-size: cover;
    position: relative;
  }
  .policy-page .quality-policy h2 {
    margin: 0 0 0 0;
    padding: 0 0 2.308vw 0;
    line-height: 1.2em;
    font-size: 2.692vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .quality-policy p {
    margin: 0 0 0 0;
    padding: 0 0 4.615vw 0;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .quality-policy .list {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 90%;
    max-width: 61.692vw;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .policy-page .quality-policy .list .item {
    margin: 0 0 2.923vw 0;
    padding: 2.692vw 2.385vw 2.462vw 2.385vw;
    width: 49%;
    max-width: 29.385vw;
    box-sizing: border-box;
    border-radius: 0.385vw;
    background: rgba(255, 255, 255, 0.8);
    box-shadow: 0 18px 6px rgba(46, 117, 156, 0.2);
  }
  .policy-page .quality-policy .list .item .eng {
    margin: 0 0 0 0;
    padding: 0 0 1vw 0;
    text-align: center;
    line-height: 1.1em;
    font-size: 2.308vw;
    font-weight: 400;
  }
  .policy-page .quality-policy .list .item.item--num01 .eng {
    color: #dc5743;
  }
  .policy-page .quality-policy .list .item.item--num02 .eng {
    color: #3b927b;
  }
  .policy-page .quality-policy .list .item.item--num03 .eng {
    color: #2a789c;
  }
  .policy-page .quality-policy .list .item.item--num04 .eng {
    color: #c7a257;
  }
  .policy-page .quality-policy .list .item h3 {
    margin: 0 0 0 0;
    padding: 0 0 2.154vw 0;
    text-align: center;
    line-height: 1.1em;
    font-size: 1.923vw;
    font-weight: 700;
  }
  .policy-page .quality-policy .list .item.item--num01 h3 {
    color: #dc5743;
  }
  .policy-page .quality-policy .list .item.item--num02 h3 {
    color: #3b927b;
  }
  .policy-page .quality-policy .list .item.item--num03 h3 {
    color: #2a789c;
  }
  .policy-page .quality-policy .list .item.item--num04 h3 {
    color: #c7a257;
  }
  .policy-page .quality-policy .list .item p {
    margin: 0 0 0 0;
    padding: 0 0 0 7px;
    text-align: left;
    line-height: 1.7em;
    font-size: 1.385vw;
    font-weight: 500;
    color: #404044;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .policy-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .policy-page .intro {
    margin: 0 0 0 0;
    padding: 9.744vw 0 9.744vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 700;
    color: #314f6a;
  }
  .policy-page .company-creed {
    margin: 0 0 0 0;
    padding: 15.385vw 0 16.154vw 0;
    width: 100%;
    text-align: center;
    color: #fff;
    background: url("../images/policy/company_creed_back_01.png") no-repeat
      center center;
    background-size: cover;
    position: relative;
  }
  .policy-page .company-creed::after {
    width: 106.667vw;
    height: 112.821vw;
    content: "";
    background: url("../images/policy/company_creed_deco_01.png") no-repeat
      center center;
    background-size: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    mix-blend-mode: multiply;
  }
  .policy-page .company-creed h2 {
    margin: 0 0 0 0;
    padding: 0 0 7.692vw 0;
    line-height: 1.2em;
    font-size: 6.41vw;
    font-weight: 600;
    position: relative;
    z-index: 1;
  }
  .policy-page .company-creed p {
    margin: 0 0 0 0;
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 600;
    position: relative;
    z-index: 1;
  }
  .policy-page .company-creed hr {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 83.077vw;
    height: 0;
    background: none;
    border: none;
    border-top: 1px solid #fff;
    clear: both;
    position: relative;
    z-index: 1;
  }
  .policy-page .company-creed ul {
    margin: 0 auto;
    padding: 7.692vw 0;
    width: 83.077vw;
    text-align: left;
    line-height: 1.5em;
    font-size: 4.103vw;
    font-weight: 600;
    position: relative;
    z-index: 1;
  }
  .policy-page .company-creed ul li {
    padding: 0 0 5.128vw 0;
  }
  .policy-page .company-creed ul li:last-child {
    padding: 0 0 0 0;
  }
  .policy-page .corporate-philosophy {
    margin: 0 0 0 0;
    padding: 15.385vw 0 15.385vw 0;
    width: 100%;
  }
  .policy-page .corporate-philosophy h2 {
    margin: 0 0 0 0;
    padding: 0 0 7.692vw 0;
    line-height: 1.2em;
    font-size: 6.41vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .corporate-philosophy p {
    margin: 0 0 0 0;
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .corporate-philosophy .item {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 100%;
    max-width: 100%;
    height: 80.769vw;
    text-align: center;
    box-sizing: border-box;
    position: relative;
  }
  .policy-page .corporate-philosophy .item.item--num01 {
    padding: 6.154vw 0 0 0;
    background: url("../images/policy/corporate_philosophy_back_01-sp.png")
      no-repeat center center;
    background-size: cover;
  }
  .policy-page .corporate-philosophy .item.item--num01::after {
    width: 100%;
    height: 100%;
    content: "";
    background: url("../images/policy/corporate_philosophy_back_02-sp.png")
      no-repeat center center;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    mix-blend-mode: multiply;
  }
  .policy-page .corporate-philosophy .item.item--num02 {
    padding: 6.154vw 0 0 0;
    background: url("../images/policy/corporate_philosophy_back_03-sp.png")
      no-repeat center center;
    background-size: cover;
  }
  .policy-page .corporate-philosophy .item.item--num02::after {
    width: 100%;
    height: 100%;
    content: "";
    background: url("../images/policy/corporate_philosophy_back_04-sp.png")
      no-repeat center center;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    mix-blend-mode: multiply;
  }
  .policy-page .corporate-philosophy .item.item--num03 {
    padding: 6.154vw 0 0 0;
    background: url("../images/policy/corporate_philosophy_back_05-sp.png")
      no-repeat center center;
    background-size: cover;
  }

  .policy-page .corporate-philosophy .item .num {
    margin: 0 auto 15px;
    position: relative;
    z-index: 1;
  }
  .policy-page .corporate-philosophy .item.item--num01 .num {
    width: 15.641vw;
  }
  .policy-page .corporate-philosophy .item.item--num02 .num {
    width: 15.897vw;
  }
  .policy-page .corporate-philosophy .item.item--num03 .num {
    width: 15.641vw;
  }
  .policy-page .corporate-philosophy .item h3 {
    margin: 0 0 0 0;
    padding: 0 0 6.41vw 0;
    line-height: 1.2em;
    font-size: 5.641vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .corporate-philosophy .item p {
    margin: 0 auto;
    width: 83.077vw;
    padding: 0 0 0 0;
    font-family: "Zen Old Mincho", serif;
    line-height: 24px;
    font-size: 14px;
    font-weight: 500;
    color: #404044;
    letter-spacing: -0.06em;
    text-align: left;
  }
  .policy-page .corporate-philosophy .item .eng {
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
    mix-blend-mode: screen;
  }
  .policy-page .corporate-philosophy .item.item--num03 .eng {
    mix-blend-mode: multiply;
  }
  .policy-page .quality-policy {
    margin: 0 0 0 0;
    padding: 15.128vw 0 12.051vw 0;
    width: 100%;
    text-align: center;
    background: url("../images/policy/quality_policy_back_01-sp.png") no-repeat
      center center;
    background-size: cover;
    position: relative;
  }
  .policy-page .quality-policy h2 {
    margin: 0 0 0 0;
    padding: 0 0 7.692vw 0;
    line-height: 1.2em;
    font-size: 6.41vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .quality-policy p {
    margin: 0 0 0 0;
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 600;
    color: #314f6a;
  }
  .policy-page .quality-policy .list {
    margin: 0 auto;
    padding: 0 0 0 0;
    width: 83.077vw;
    max-width: 83.077vw;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .policy-page .quality-policy .list .item {
    margin: 0 0 3.846vw 0;
    padding: 7.436vw 5.128vw 7.179vw 5.128vw;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    border-radius: 1.282vw;
    background: rgba(255, 255, 255, 0.8);
    box-shadow: 0 4.615vw 1.538vw rgba(46, 117, 156, 0.2);
  }
  .policy-page .quality-policy .list .item .eng {
    margin: 0 0 0 0;
    padding: 0 0 3.333vw 0;
    text-align: center;
    line-height: 1.1em;
    font-size: 7.692vw;
    font-weight: 400;
  }
  .policy-page .quality-policy .list .item.item--num01 .eng {
    color: #dc5743;
  }
  .policy-page .quality-policy .list .item.item--num02 .eng {
    color: #3b927b;
  }
  .policy-page .quality-policy .list .item.item--num03 .eng {
    color: #2a789c;
  }
  .policy-page .quality-policy .list .item.item--num04 .eng {
    color: #c7a257;
  }
  .policy-page .quality-policy .list .item h3 {
    margin: 0 0 0 0;
    padding: 0 0 3.846vw 0;
    text-align: center;
    line-height: 1.1em;
    font-size: 4.103vw;
    font-weight: 700;
  }
  .policy-page .quality-policy .list .item.item--num01 h3 {
    color: #dc5743;
  }
  .policy-page .quality-policy .list .item.item--num02 h3 {
    color: #3b927b;
  }
  .policy-page .quality-policy .list .item.item--num03 h3 {
    color: #2a789c;
  }
  .policy-page .quality-policy .list .item.item--num04 h3 {
    color: #c7a257;
  }
  .policy-page .quality-policy .list .item p {
    margin: 0 0 0 0;
    padding: 0 0 0 7px;
    text-align: left;
    line-height: 1.7em;
    font-size: 3.59vw;
    font-weight: 500;
    color: #404044;
  }
}

/* recruit-page */
.recruit-page.recruit-page--second {
  margin: 0 0 0 0;
  padding: 73px 0 0 0;
  width: 100%;
  max-width: 100%;
}
.recruit-page .tab-menu {
  margin: 0 auto;
  width: 420px;
  display: flex;
  justify-content: space-between;
}
.recruit-page .tab-menu a {
  width: 175px;
  height: 58px;
  color: #fff;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}
.recruit-page .tab-menu a:nth-of-type(1) {
  background: #3e90da;
}
.recruit-page .tab-menu a:nth-of-type(2) {
  background: #0e599d;
}
.recruit-page .tab-menu a:hover {
  text-decoration: none;
}
.recruit-page .tab-contents {
  margin: 0 auto 100px;
  padding: 44px 89px 25px 89px;
  width: 90%;
  max-width: 1174px;
  text-align: left;
  box-sizing: border-box;
  border: 1px solid #96c5f0;
  display: none;
}
.recruit-page .tab-contents.active {
  display: block;
}
.recruit-page .tab-contents h2 {
  margin: 0 0 12px 0;
  padding: 0 20px;
  width: fit-content;
  height: 56px;
  color: #fff;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: 600;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
}
.recruit-page .tab-contents#tab01 h2 {
  background: #3e90da;
}
.recruit-page .tab-contents#tab02 h2 {
  background: #0e599d;
}
.recruit-page .tab-contents table {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
}
.recruit-page .tab-contents table th {
  margin: 0 0 0 0;
  padding: 20px 0;
  width: 190px;
  line-height: 1.5em;
  font-size: 16px;
  font-weight: 600;
  color: #314f6a;
  vertical-align: top;
  border-top: 1px solid #96c5f0;
}
.recruit-page .tab-contents table tr:nth-of-type(1) th {
  border-top: none;
}
.recruit-page .tab-contents table td {
  margin: 0 0 0 0;
  padding: 20px 0;
  line-height: 1.5em;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
  border-top: 1px solid #96c5f0;
}
.recruit-page .tab-contents table tr:nth-of-type(1) td {
  border-top: none;
}
.recruit-page .tab-contents table td li {
  margin: 0 0 0 0;
  padding: 0 0 5px 1.2em;
  position: relative;
}
.recruit-page .tab-contents table td li::before {
  content: "■";
  color: #314f6a;
  position: absolute;
  top: 0;
  left: 0;
}

/* 蜍､蜍吝慍繝ｪ繧ｹ繝茨ｼ域髪蠎怜錐縺ｨ菴乗園繧貞・謠・∴・・*/
.recruit-page .tab-contents table td ul.recruit-place-list > li {
  display: grid;
  grid-template-columns: 5.5em 1fr;
  column-gap: 2ch;
  align-items: start;
}
.recruit-page
  .tab-contents
  table
  td
  ul.recruit-place-list
  .recruit-place__name {
  grid-column: 1;
}
.recruit-page
  .tab-contents
  table
  td
  ul.recruit-place-list
  .recruit-place__detail,
.recruit-page
  .tab-contents
  table
  td
  ul.recruit-place-list
  .recruit-place__address {
  grid-column: 2;
}

/* 邨ｦ荳取ｬ・ｼ磯・岼蜷阪→驥鷹｡阪ｒ蛻玲純縺茨ｼ・*/
.recruit-page .tab-contents table td .dl02 {
  margin: 0 0 20px 0;
  display: flex;
  flex-direction: column;
}
.recruit-page .tab-contents table td .dl02:last-child {
  margin: 0;
}
.recruit-page .tab-contents table td .dl02 dt {
  padding: 0 0 0 1.2em;
  position: relative;
  box-sizing: border-box;
}
.recruit-page .tab-contents table td .dl02 dt::before {
  content: "■";
  color: #314f6a;
  position: absolute;
  top: 0;
  left: 0;
}
.recruit-page .tab-contents table td .dl02 dd {
  padding: 0 0 0 1.2em;
  position: relative;
  box-sizing: border-box;
}
.recruit-page .tab-contents table td .dl03 {
  display: flex;
}
.recruit-page .tab-contents table td .dl03 dt {
  padding: 0 25px 0 1.2em;
  position: relative;
  box-sizing: border-box;
}
.recruit-page .tab-contents table td .dl03 dt::before {
  content: "■";
  color: #314f6a;
  position: absolute;
  top: 0;
  left: 0;
}
.recruit-page .tab-contents table td .recruit-pay-line {
  display: grid;
  grid-template-columns: 10.5em 1fr;
  column-gap: 0.5em;
  align-items: baseline;
}
.recruit-page .tab-contents table td .recruit-pay-line__value {
  font-variant-numeric: tabular-nums;
}
.recruit-page .tab-contents table td .recruit-pay-line--plain {
  display: block;
}

.recruit-page .tab-contents table td a {
  text-decoration: underline;
}
.recruit-page .tab-contents table td a:hover {
  text-decoration: none;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .recruit-page.recruit-page--second {
    margin: 0 0 0 0;
    padding: 5.615vw 0 0 0;
    width: 100%;
    max-width: 100%;
  }
  .recruit-page .tab-menu {
    margin: 0 auto;
    width: 32.308vw;
    display: flex;
    justify-content: space-between;
  }
  .recruit-page .tab-menu a {
    width: 13.462vw;
    height: 4.462vw;
    color: #fff;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    border-top-left-radius: 0.769vw;
    border-top-right-radius: 0.769vw;
  }
  .recruit-page .tab-menu a:nth-of-type(1) {
    background: #3e90da;
  }
  .recruit-page .tab-menu a:nth-of-type(2) {
    background: #0e599d;
  }
  .recruit-page .tab-menu a:hover {
    text-decoration: none;
  }
  .recruit-page .tab-contents {
    margin: 0 auto 7.692vw;
    padding: 3.385vw 6.846vw 1.923vw 6.846vw;
    width: 90%;
    max-width: 90.308vw;
    text-align: left;
    box-sizing: border-box;
    border: 1px solid #96c5f0;
  }
  .recruit-page .tab-contents h2 {
    margin: 0 0 0.923vw 0;
    padding: 0 1.538vw;
    width: fit-content;
    height: 4.308vw;
    color: #fff;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: 600;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.231vw;
  }
  .recruit-page .tab-contents:nth-of-type(1) h2 {
    background: #3e90da;
  }
  .recruit-page .tab-contents:nth-of-type(2) h2 {
    background: #0e599d;
  }
  .recruit-page .tab-contents table {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
  }
  .recruit-page .tab-contents table th {
    margin: 0 0 0 0;
    padding: 1.538vw 0;
    width: 14.615vw;
    line-height: 1.5em;
    font-size: 1.231vw;
    font-weight: 600;
    color: #314f6a;
    vertical-align: top;
    border-top: 1px solid #96c5f0;
  }
  .recruit-page .tab-contents table tr:nth-of-type(1) th {
    border-top: none;
  }
  .recruit-page .tab-contents table td {
    margin: 0 0 0 0;
    padding: 1.538vw 0;
    line-height: 1.5em;
    font-size: 1.231vw;
    font-weight: 600;
    color: #404044;
    border-top: 1px solid #96c5f0;
  }
  .recruit-page .tab-contents table tr:nth-of-type(1) td {
    border-top: none;
  }
  .recruit-page .tab-contents table td li {
    margin: 0 0 0 0;
    padding: 0 0 0.385vw 1.2em;
    position: relative;
  }
  .recruit-page .tab-contents table td li::before {
    content: "■";
    color: #314f6a;
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .tab-contents table td a {
    text-decoration: underline;
  }
  .recruit-page .tab-contents table td a:hover {
    text-decoration: none;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .recruit-page.recruit-page--second {
    margin: 0 0 0 0;
    padding: 14.103vw 0 0 0;
    width: 100%;
    max-width: 100%;
  }
  .recruit-page .tab-menu {
    margin: 0 auto;
    width: 80.769vw;
    display: flex;
    justify-content: space-between;
  }
  .recruit-page .tab-menu a {
    width: 34.615vw;
    height: 12.051vw;
    color: #fff;
    line-height: 1.2em;
    font-size: 5.128vw;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    border-top-left-radius: 2.564vw;
    border-top-right-radius: 2.564vw;
  }
  .recruit-page .tab-menu a:nth-of-type(1) {
    background: #3e90da;
  }
  .recruit-page .tab-menu a:nth-of-type(2) {
    background: #0e599d;
  }
  .recruit-page .tab-menu a:hover {
    text-decoration: none;
  }
  .recruit-page .tab-contents {
    margin: 0 auto 15.385vw;
    padding: 11.282vw 2.564vw 0px 2.564vw;
    width: 88.462vw;
    max-width: 88.462vw;
    text-align: left;
    box-sizing: border-box;
    border: 1px solid #96c5f0;
  }
  .recruit-page .tab-contents h2 {
    margin: 0 auto 3.077vw auto;
    padding: 0 5.128vw;
    width: fit-content;
    height: 12.564vw;
    color: #fff;
    line-height: 1.2em;
    font-size: 5.128vw;
    font-weight: 600;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4.103vw;
  }
  .recruit-page .tab-contents:nth-of-type(1) h2 {
    background: #3e90da;
  }
  .recruit-page .tab-contents:nth-of-type(2) h2 {
    background: #0e599d;
  }
  .recruit-page .tab-contents table {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    display: block;
  }
  .recruit-page .tab-contents table tr {
    display: block;
  }
  .recruit-page .tab-contents table tbody {
    display: block;
  }
  .recruit-page .tab-contents table th {
    margin: 0 0 0 0;
    padding: 0 0 4.103vw 0;
    width: 100%;
    line-height: 1.5em;
    font-size: 4.103vw;
    font-weight: 600;
    color: #314f6a;
    vertical-align: top;
    border-top: none;
    display: block;
  }
  .recruit-page .tab-contents table tr:nth-of-type(1) th {
    border-top: none;
  }
  .recruit-page .tab-contents table td {
    margin: 0 0 0 0;
    padding: 2.564vw 0 7.692vw 0;
    line-height: 1.5em;
    font-size: 3.59vw;
    font-weight: 600;
    color: #404044;
    border-top: 1px solid #96c5f0;
    display: block;
  }
  .recruit-page .tab-contents table tr:nth-of-type(1) td {
    border-top: 1px solid #96c5f0;
  }
  .recruit-page .tab-contents table td li {
    margin: 0 0 0 0;
    padding: 0 0 1.282vw 1.2em;
    position: relative;
  }
  .recruit-page .tab-contents table td li::before {
    content: "・";
    color: #314f6a;
    position: absolute;
    top: 0;
    left: 0;
  }
  .recruit-page .tab-contents table td ul.recruit-place-list > li {
    grid-template-columns: 5.2em 1fr;
    column-gap: 2ch;
  }
  .recruit-page .tab-contents table td .dl02 {
    margin: 0 0 5.333vw 0;
  }
  .recruit-page .tab-contents table td .recruit-pay-line {
    grid-template-columns: 9.2em 1fr;
    column-gap: 0.5em;
  }
  .recruit-page .tab-contents table td a {
    text-decoration: underline;
  }
  .recruit-page .tab-contents table td a:hover {
    text-decoration: none;
  }
}

/* service-page */
.service-page {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
}
.service-page .intro {
  margin: 0 0 0 0;
  padding: 59px 0 59px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 700;
  color: #314f6a;
}
.service-page .service-list {
  margin: 0 0 100px 0;
  padding: 0 0 0 0;
}
.service-page .service-list .service {
  margin: 0 0 0 0;
  padding: 62px 0 78px 0;
}
.service-page .service-list .service.service--num01 {
  background: #f3f7fb;
}
.service-page .service-list .service.service--num02 {
  background: #fff;
}
.service-page .service-list .service.service--num03 {
  background: #f3f7fb;
}
.service-page .service-list .service .head {
  margin: 0 auto 52px;
  width: 90%;
  max-width: 996px;
  border-bottom: 1px solid rgb(46, 117, 156, 0.5);
}
.service-page .service-list .service .head h2 {
  margin: 0 auto;
  width: 70%;
  max-width: 566px;
}
.service-page .service-list .service .head h2::before {
  margin: 0 auto;
  content: "";
  display: block;
}
.service-page .service-list .service .head h2.icon01::before {
  width: 19px;
  height: 35px;
  background: url("../images/service/icon_01.png") no-repeat center center;
  background-size: 100% 100%;
}
.service-page .service-list .service .head h2.icon02::before {
  width: 34px;
  height: 28px;
  background: url("../images/service/icon_02.png") no-repeat center center;
  background-size: 100% 100%;
}
.service-page .service-list .service .head h2.icon03::before {
  width: 40px;
  height: 26px;
  background: url("../images/service/icon_03.png") no-repeat center center;
  background-size: 100% 100%;
}
.service-page .service-list .service .detail {
  margin: 0 auto;
  width: 90%;
  max-width: 996px;
  display: flex;
  justify-content: space-between;
}
.service-page .service-list .service.service--num02 .detail {
  flex-direction: row-reverse;
}
.service-page .service-list .service .detail .image {
  width: 38.65%;
  max-width: 385px;
}
.service-page .service-list .service .detail .description {
  width: 54.417%;
  max-width: 542px;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
  text-align: left;
}
.service-page .service-list .service .detail .description p {
  min-height: 120px;
}
.service-page .service-list .service .detail .description ul {
}
.service-page .service-list .service .detail .description ul li {
  padding: 0 0 5px 1.3em;
  line-height: 1.6em;
  font-size: 16px;
  font-weight: bold;
  position: relative;
}
.service-page .service-list .service .detail .description ul li::before {
  content: "●";
  font-size: 0.7em;
  color: #314f6a;
  position: absolute;
  top: 0.15em;
  left: 0;
}
.service-page .other-service {
  margin: 0 auto 100px;
  width: 90%;
  max-width: 765px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.service-page .other-service h3 {
  margin: 0 0 30px 0;
  width: 100%;
  text-align: center;
  line-height: 1.4em;
  font-size: 35px;
  font-weight: 600;
  color: #314f6a;
}
.service-page .other-service p {
  margin: 0 0 60px 0;
  width: 100%;
  text-align: center;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 600;
  color: #314f6a;
}
.service-page .other-service .service {
  padding: 34px 20px 32px 20px;
  width: 48%;
  max-width: 335px;
  box-sizing: border-box;
}
.service-page .other-service .service.service--num01 {
  color: #d65421;
  background: url("../images/service/service_back_02.png") no-repeat center
    center;
  background-size: 100% 100%;
}
.service-page .other-service .service.service--num02 {
  color: #314f6a;
  background: url("../images/service/service_back_01.png") no-repeat center
    center;
  background-size: 100% 100%;
}
.service-page .other-service .service .eng {
  margin: 0 0 8px 0;
  text-align: center;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: normal;
}
.service-page .other-service .service h4 {
  margin: 0 0 19px 0;
  text-align: center;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: bold;
}
.service-page .other-service .service p {
  margin: 0 0 0 0;
  width: 100%;
  text-align: left;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .service-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .service-page .intro {
    margin: 0 0 0 0;
    padding: 4.538vw 0 4.538vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 700;
    color: #314f6a;
  }
  .service-page .service-list {
    margin: 0 0 7.692vw 0;
    padding: 0 0 0 0;
  }
  .service-page .service-list .service {
    margin: 0 0 0 0;
    padding: 4.769vw 0 6vw 0;
  }
  .service-page .service-list .service.service--num01 {
    background: #f3f7fb;
  }
  .service-page .service-list .service.service--num02 {
    background: #fff;
  }
  .service-page .service-list .service.service--num03 {
    background: #f3f7fb;
  }
  .service-page .service-list .service .head {
    margin: 0 auto 4vw;
    width: 90%;
    max-width: 76.615vw;
    border-bottom: 1px solid rgb(46, 117, 156, 0.5);
  }
  .service-page .service-list .service .head h2 {
    margin: 0 auto;
    width: 70%;
    max-width: 43.538vw;
  }
  .service-page .service-list .service .head h2::before {
    margin: 0 auto;
    content: "";
    display: block;
  }
  .service-page .service-list .service .head h2.icon01::before {
    width: 1.462vw;
    height: 2.692vw;
    background: url("../images/service/icon_01.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .service-page .service-list .service .head h2.icon02::before {
    width: 2.615vw;
    height: 2.154vw;
    background: url("../images/service/icon_02.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .service-page .service-list .service .head h2.icon03::before {
    width: 3.077vw;
    height: 2vw;
    background: url("../images/service/icon_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .service-page .service-list .service .detail {
    margin: 0 auto;
    width: 90%;
    max-width: 76.615vw;
    display: flex;
    justify-content: space-between;
  }
  .service-page .service-list .service.service--num02 .detail {
    flex-direction: row-reverse;
  }
  .service-page .service-list .service .detail .image {
    width: 38.65%;
    max-width: 29.615vw;
  }
  .service-page .service-list .service .detail .description {
    width: 54.417%;
    max-width: 41.692vw;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    color: #404044;
    text-align: left;
  }
  .service-page .service-list .service .detail .description p {
    min-height: 9.231vw;
  }
  .service-page .service-list .service .detail .description ul {
  }
  .service-page .service-list .service .detail .description ul li {
    padding: 0 0 0.385vw 1.3em;
    line-height: 1.6em;
    font-size: 1.231vw;
    font-weight: bold;
    position: relative;
  }
  .service-page .service-list .service .detail .description ul li::before {
    content: "●";
    font-size: 0.7em;
    color: #314f6a;
    position: absolute;
    top: 0.15em;
    left: 0;
  }
  .service-page .other-service {
    margin: 0 auto 7.692vw;
    width: 90%;
    max-width: 58.846vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .service-page .other-service h3 {
    margin: 0 0 2.308vw 0;
    width: 100%;
    text-align: center;
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: 600;
    color: #314f6a;
  }
  .service-page .other-service p {
    margin: 0 0 4.615vw 0;
    width: 100%;
    text-align: center;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 600;
    color: #314f6a;
  }
  .service-page .other-service .service {
    padding: 2.615vw 1.538vw 2.462vw 1.538vw;
    width: 48%;
    max-width: 25.769vw;
    box-sizing: border-box;
  }
  .service-page .other-service .service.service--num01 {
    color: #d65421;
    background: url("../images/service/service_back_02.png") no-repeat center
      center;
    background-size: 100% 100%;
  }
  .service-page .other-service .service.service--num02 {
    color: #314f6a;
    background: url("../images/service/service_back_01.png") no-repeat center
      center;
    background-size: 100% 100%;
  }
  .service-page .other-service .service .eng {
    margin: 0 0 0.615vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 1.231vw;
    font-weight: normal;
  }
  .service-page .other-service .service h4 {
    margin: 0 0 1.462vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: bold;
  }
  .service-page .other-service .service p {
    margin: 0 0 0 0;
    width: 100%;
    text-align: left;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    color: #404044;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .service-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .service-page .intro {
    margin: 0 0 0 0;
    padding: 8.462vw 0 8.462vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 700;
    color: #314f6a;
  }
  .service-page .service-list {
    margin: 0 0 15.385vw 0;
    padding: 0 0 0 0;
  }
  .service-page .service-list .service {
    margin: 0 0 0 0;
    padding: 10.513vw 0 10.256vw 0;
  }
  .service-page .service-list .service.service--num01 {
    background: #f3f7fb;
  }
  .service-page .service-list .service.service--num02 {
    background: #fff;
  }
  .service-page .service-list .service.service--num03 {
    background: #f3f7fb;
  }
  .service-page .service-list .service .head {
    margin: 0 auto 7.692vw;
    width: 88.462vw;
    max-width: 88.462vw;
    border-bottom: none;
  }
  .service-page .service-list .service .head h2 {
    margin: 0 auto;
    width: 100%;
    max-width: 100%;
  }
  .service-page .service-list .service .head h2::before {
    margin: 0 auto 3.846vw;
    content: "";
    display: block;
  }
  .service-page .service-list .service .head h2.icon01::before {
    width: 4.872vw;
    height: 8.974vw;
    background: url("../images/service/icon_01.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .service-page .service-list .service .head h2.icon02::before {
    width: 8.718vw;
    height: 7.179vw;
    background: url("../images/service/icon_02.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .service-page .service-list .service .head h2.icon03::before {
    width: 10.256vw;
    height: 6.667vw;
    background: url("../images/service/icon_03.png") no-repeat center center;
    background-size: 100% 100%;
  }
  .service-page .service-list .service .detail {
    margin: 0 auto;
    width: 88.462vw;
    max-width: 88.462vw;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .service-page .service-list .service.service--num02 .detail {
    flex-direction: column;
  }
  .service-page .service-list .service .detail .image {
    margin: 0 0 4.615vw 0;
    width: 100%;
    max-width: 100%;
  }
  .service-page .service-list .service .detail .description {
    padding: 0 3.333vw 0 3.333vw;
    width: 100%;
    max-width: 100%;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    box-sizing: border-box;
    color: #404044;
    text-align: left;
  }
  .service-page .service-list .service .detail .description p {
    min-height: 0;
    margin: 0 0 3.846vw 0;
  }
  .service-page .service-list .service .detail .description ul {
  }
  .service-page .service-list .service .detail .description ul li {
    padding: 0 0 1.282vw 1.3em;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: bold;
    position: relative;
  }
  .service-page .service-list .service .detail .description ul li::before {
    content: "●";
    font-size: 0.7em;
    color: #314f6a;
    position: absolute;
    top: 0.15em;
    left: 0;
  }
  .service-page .other-service {
    margin: 0 auto 15.385vw;
    width: 88.462vw;
    max-width: 88.462vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .service-page .other-service h3 {
    margin: 0 0 7.692vw 0;
    width: 100%;
    text-align: center;
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: 600;
    color: #314f6a;
  }
  .service-page .other-service p {
    margin: 0 0 9.744vw 0;
    width: 100%;
    text-align: center;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 600;
    color: #314f6a;
  }
  .service-page .other-service .service {
    padding: 8.462vw 7.692vw 8.205vw 7.692vw;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .service-page .other-service .service.service--num01 {
    margin: 0 0 3.59vw 0;
    color: #d65421;
    background: url("../images/service/service_back_02-sp.png") no-repeat center
      center;
    background-size: 100% 100%;
  }
  .service-page .other-service .service.service--num02 {
    color: #314f6a;
    background: url("../images/service/service_back_01-sp.png") no-repeat center
      center;
    background-size: 100% 100%;
  }
  .service-page .other-service .service .eng {
    margin: 0 0 2.051vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 4.103vw;
    font-weight: normal;
  }
  .service-page .other-service .service h4 {
    margin: 0 0 3.846vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 5.641vw;
    font-weight: bold;
  }
  .service-page .other-service .service p {
    margin: 0 0 0 0;
    width: 100%;
    text-align: left;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    color: #404044;
  }
}

/* cross-talk */
.cross-talk {
  margin: 0 0 0 0;
  padding: 43px 0 45px 0;
  width: 100%;
  background: url("../images/recruit/cross_talk_back_01.png") repeat center
    center;
  background-size: 24px auto;
}
.cross-talk h3 {
  margin: 0 auto 0 auto;
  padding: 0 0 17px 0;
  width: 346px;
}
.cross-talk h3 img {
  width: 100%;
  display: block;
}
.cross-talk .more {
  margin: 0 auto;
  width: 272px;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .cross-talk {
    margin: 0 0 0 0;
    padding: 3.308vw 0 3.462vw 0;
    width: 100%;
    background: url("../images/recruit/cross_talk_back_01.png") repeat center
      center;
    background-size: 1.846vw auto;
  }
  .cross-talk h3 {
    margin: 0 auto 0 auto;
    padding: 0 0 1.308vw 0;
    width: 26.615vw;
  }
  .cross-talk h3 img {
    width: 100%;
    display: block;
  }
  .cross-talk .more {
    margin: 0 auto;
    width: 20.923vw;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .cross-talk {
    margin: 0 0 0 0;
    padding: 11.795vw 0 11.538vw 0;
    width: 100%;
    background: url("../images/recruit/cross_talk_back_01.png") repeat center
      center;
    background-size: 3.077vw auto;
  }
  .cross-talk h3 {
    margin: 0 auto 0 auto;
    padding: 0 0 7.692vw 0;
    width: 64.103vw;
  }
  .cross-talk h3 img {
    width: 100%;
    display: block;
  }
  .cross-talk .more {
    margin: 0 auto;
    width: 75.385vw;
  }
}

/* results */
.results {
  margin: 0 0 0 0;
  padding: 57px 0 65px 0;
  width: 100%;
  background: url("../images/service/results_back_01.png") no-repeat center
    center;
  background-size: cover;
}
.results h3 {
  margin: 0 0 0 0;
  padding: 0 0 14px 0;
  line-height: 1.2em;
  font-size: 35px;
  font-weight: 600;
  color: #fff;
}
.results p {
  margin: 0 0 0 0;
  padding: 0 0 51px 0;
  line-height: 1.8em;
  font-size: 18px;
  font-weight: 600;
  color: #fff;
}
.results .more {
  margin: 0 auto;
  width: 272px;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .results {
    margin: 0 0 0 0;
    padding: 4.385vw 0 5vw 0;
    width: 100%;
    background: url("../images/service/results_back_01.png") no-repeat center
      center;
    background-size: cover;
  }
  .results h3 {
    margin: 0 0 0 0;
    padding: 0 0 1.077vw 0;
    line-height: 1.2em;
    font-size: 2.692vw;
    font-weight: 600;
    color: #fff;
  }
  .results p {
    margin: 0 0 0 0;
    padding: 0 0 3.923vw 0;
    line-height: 1.8em;
    font-size: 1.385vw;
    font-weight: 600;
    color: #fff;
  }
  .results .more {
    margin: 0 auto;
    width: 20.923vw;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .results {
    margin: 0 0 0 0;
    padding: 19.744vw 0 19.487vw 0;
    width: 100%;
    background: url("../images/service/results_back_01-sp.png") no-repeat center
      center;
    background-size: cover;
  }
  .results h3 {
    margin: 0 0 0 0;
    padding: 0 0 3.846vw 0;
    line-height: 1.2em;
    font-size: 6.41vw;
    font-weight: 600;
    color: #fff;
  }
  .results p {
    margin: 0 auto 0 auto;
    padding: 0 0 7.692vw 0;
    width: 83.077vw;
    line-height: 1.8em;
    font-size: 3.59vw;
    font-weight: 600;
    color: #fff;
  }
  .results .more {
    margin: 0 auto;
    width: 75.385vw;
  }
}

/* ========== Works・域命蟾･螳溽ｸｾ・・========== */

.works-page {
  padding: 0;
  background: #fff;
}

.works-archive__lead {
  margin: 59px auto 0;
  width: 100%;
  max-width: none;
}

.works-archive__lead-text {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 25px;
  line-height: 1.5em;
  letter-spacing: 0;
  text-align: center;
  color: #404044;
}

.works-archive__highlight {
  position: relative;
  margin: 114px auto 0;
  width: 1200px;
  max-width: calc(100% - 40px);
  height: auto;
  aspect-ratio: 1200 / 633;
  line-height: 0;
  overflow: hidden;
  container-type: inline-size;
  container-name: works-highlight;
}

.works-archive__highlight-img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.works-archive__highlight-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  padding-top: 113px;
  box-sizing: border-box;
  pointer-events: none;
}

.works-archive__highlight-label {
  margin: 0;
  font-family: "Marcellus", serif;
  font-weight: 400;
  font-size: 35px;
  line-height: 1;
  letter-spacing: 0.04em;
  text-align: center;
  color: #314f6a;
  pointer-events: none;
}

.works-archive__highlight-body {
  margin-top: 70px;
  padding: 0 70px 40px;
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
  flex: 1;
  min-height: 0;
  pointer-events: auto;
}

.works-archive__feature-copy {
  width: 473px;
  max-width: 100%;
  flex-shrink: 0;
  line-height: normal;
  text-align: left;
}

.works-archive__feature-title {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  font-size: 25px;
  line-height: 1.5;
  letter-spacing: 0;
  color: #314f6a;
  text-align: left;
}

.works-archive__feature-text {
  margin: 23px 0 0;
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 30px;
  letter-spacing: -0.04em;
  color: #314f6a;
  text-align: left;
}

.works-archive__feature-more {
  margin: 39px 0 0;
  text-align: left;
}

.works-archive__feature-btn {
  --c-linkbtn-ease: cubic-bezier(0.36, 0.9, 0.93, 0.34);
  --c-linkbtn-dur: 0.3s;
  width: 272px;
  max-width: 100%;
  height: 50px;
  line-height: 1.2em;
  font-size: 16px;
  font-weight: 400;
  color: #fff;
  background-color: #314f6a;
  border: 1px solid #314f6a;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 44px;
  text-decoration: none;
  letter-spacing: 0.03em;
  position: relative;
  box-sizing: border-box;
  overflow: hidden;
  isolation: isolate;
  transition:
    color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
    border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
}

.works-archive__feature-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  z-index: -1;
}

.works-archive__feature-btn::after {
  width: 12px;
  height: 12px;
  content: "";
  position: absolute;
  top: 50%;
  right: 17px;
  transform: translateY(-50%);
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
  transition: background 0.2s ease;
  z-index: 1;
}

.works-archive__feature-btn:hover,
.works-archive__feature-btn:active {
  text-decoration: none;
  color: #314f6a;
  border-color: #314f6a;
}

.works-archive__feature-btn:hover::before,
.works-archive__feature-btn:active::before {
  transform: scaleX(1);
}

.works-archive__feature-btn:hover::after,
.works-archive__feature-btn:active::after {
  background-image: url("../images/common/arrow_01.png");
}

.works-archive__intro {
  margin: 100px auto 0;
  width: 90%;
  max-width: 1200px;
}

.works-archive__intro-title {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  font-size: 35px;
  line-height: 1;
  letter-spacing: 0.1em;
  text-align: center;
  color: #404044;
}

.works-archive__intro-text {
  margin: 30px 0 0;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-align: center;
  color: #404044;
}

.works-archive__content {
  margin: 60px auto 0;
  width: 996px;
  max-width: calc(100% - 40px);
}

.works-archive__filter-wrap {
  position: relative;
}

.works-archive__filter-toggle {
  display: none;
}

.works-archive__genres-inner {
  display: contents;
}

.works-archive__genres {
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  list-style: none;
  position: relative;
  border-bottom: 1px solid #314f6a;
}

.works-archive__genre-btn {
  margin: 0;
  padding: 8.5px 20px;
  border: 0;
  background: transparent;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #404044;
  cursor: pointer;
  white-space: nowrap;
  border-radius: 5px 5px 0 0;
  position: relative;
  z-index: 0;
  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}

.works-archive__genre-btn + .works-archive__genre-btn {
  margin-left: 10px;
}

.works-archive__genre-btn:first-child + .works-archive__genre-btn {
  margin-left: 24px;
}

.works-archive__genre-btn.is-active {
  background: #314f6a;
  color: #fff;
  margin-bottom: -1px;
  z-index: 1;
}

.works-page .works-archive {
  margin: 0 auto;
  width: 100%;
  max-width: none;
}

.works-page .works-archive .achievements {
  margin-top: 57px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 43px 51px;
}

.works-page .works-archive .achievements .item {
  width: 100%;
  max-width: none;
  margin: 0;
}

.works-page .works-archive .achievements .item a {
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.works-page .works-archive .achievements .item a:hover {
  text-decoration: none;
}

.works-page .works-archive .achievements .item .image {
  margin: 0;
  width: 100%;
  height: 141px;
  min-height: 0;
  border-radius: 5px 5px 0 0;
  overflow: hidden;
  display: block;
  position: relative;
}

.works-page .works-archive .achievements .item a .image::after {
  display: none;
}

.works-page .works-archive .achievements .item a .image img {
  width: 100%;
  height: 141px;
  display: block;
  object-fit: cover;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 0.5s ease-in-out;
}

.works-page .works-archive .achievements .item a:hover .image img {
  transform: scale(1.12);
}

.works-page .works-archive .achievements .item-body {
  height: 96px;
  box-sizing: border-box;
  background: #f3f7fb;
  border-radius: 0 0 5px 5px;
  padding: 18px 19px 22px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.works-page .works-archive .achievements .item a .title {
  margin: 0;
  width: 100%;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: -0.04em;
  color: #404044;
  display: block;
  text-align: center;
}

.home-page .our-projects .achievements .item-body {
  background: transparent;
  height: auto;
  padding: 0;
  border-radius: 0;
}

.works-archive__feature-media {
  flex: 0 0 520px;
  width: 520px;
  max-width: 100%;
  line-height: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
}

.works-archive__feature-media img {
  width: 520px;
  max-width: 100%;
  height: 244px;
  display: block;
  object-fit: cover;
}

@media only screen and (min-width: 768px) {
  /* --- 譁ｽ蟾･螳溽ｸｾ繝壹・繧ｸ・壽ｵ∽ｽ薙ち繧､繝昴げ繝ｩ繝輔ぅ・・96px・・440px・・--- */
  .works-page .c-page-title h1 {
    font-size: clamp(
      24px,
      calc(24px + (48px - 24px) * var(--fluid-progress)),
      48px
    );
  }

  .works-page .c-page-title .eng {
    font-size: clamp(
      13px,
      calc(13px + (18px - 13px) * var(--fluid-progress)),
      18px
    );
  }

  .works-archive__lead-text {
    font-size: clamp(
      16px,
      calc(16px + (25px - 16px) * var(--fluid-progress)),
      25px
    );
    line-height: 1.5em;
  }

  .works-archive__highlight {
    margin-top: clamp(60px, 9.5vw, 114px);
  }

  .works-archive__highlight-overlay {
    padding-top: 9.416667cqw;
  }

  .works-archive__highlight-label {
    font-size: clamp(
      25px,
      calc(25px + (35px - 25px) * var(--fluid-progress)),
      35px
    );
  }

  .works-archive__highlight-body {
    margin-top: 5.833333cqw;
    padding: 0 5.833333cqw 3.333333cqw;
    gap: 3.333333cqw;
  }

  .works-archive__feature-copy {
    width: 39.416667cqw;
  }

  .works-archive__feature-title {
    font-size: clamp(
      22px,
      calc(22px + (25px - 22px) * var(--fluid-progress)),
      25px
    );
    line-height: 1.5;
  }

  .works-archive__feature-text {
    margin-top: 1.916667cqw;
    font-size: clamp(
      14px,
      calc(14px + (18px - 14px) * var(--fluid-progress)),
      18px
    );
    line-height: clamp(
      24px,
      calc(24px + (30px - 24px) * var(--fluid-progress)),
      30px
    );
  }

  .works-archive__feature-more {
    margin-top: 3.25cqw;
  }

  .works-archive__feature-btn {
    width: 272px;
    max-width: 100%;
    height: 50px;
    font-size: 16px;
    padding: 0 44px;
    white-space: nowrap;
  }

  .works-archive__feature-btn::after {
    width: 12px;
    height: 12px;
    right: 17px;
  }

  .works-archive__feature-media {
    flex: 0 0 43.333333cqw;
    width: 43.333333cqw;
  }

  .works-archive__feature-media img {
    width: 43.333333cqw;
    height: 20.333333cqw;
    max-width: none;
  }

  .works-archive__intro-title {
    font-size: clamp(
      24px,
      calc(24px + (35px - 24px) * var(--fluid-progress)),
      35px
    );
  }

  .works-archive__intro-text {
    font-size: clamp(
      16px,
      calc(16px + (18px - 16px) * var(--fluid-progress)),
      18px
    );
  }

  .works-archive__genre-btn {
    font-size: clamp(
      16px,
      calc(16px + (18px - 16px) * var(--fluid-progress)),
      18px
    );
  }

  /* --- 譁ｽ蟾･螳溽ｸｾ 蛟句挨繝壹・繧ｸ --- */
  .works-single__title {
    font-size: clamp(
      21px,
      calc(21px + (30px - 21px) * var(--fluid-progress)),
      30px
    );
  }

  .works-single__meta-row dt {
    font-size: clamp(
      13px,
      calc(13px + (14px - 13px) * var(--fluid-progress)),
      14px
    );
  }

  .works-single__meta-row dd {
    font-size: clamp(
      13px,
      calc(13px + (16px - 13px) * var(--fluid-progress)),
      16px
    );
  }

  .works-single__body {
    font-size: clamp(
      13px,
      calc(13px + (16px - 13px) * var(--fluid-progress)),
      16px
    );
  }
}

@media only screen and (min-width: 768px) and (max-width: 950px) {
  .works-archive__genres {
    flex-wrap: nowrap;
  }

  .works-archive__genre-btn {
    font-size: clamp(
      13px,
      calc(13px + (17px - 13px) * ((100vw - 769px) / (950px - 769px))),
      17px
    );
    padding: clamp(
        5px,
        calc(5px + (8px - 5px) * ((100vw - 769px) / (950px - 769px))),
        8px
      )
      clamp(
        8px,
        calc(8px + (16px - 8px) * ((100vw - 769px) / (950px - 769px))),
        16px
      );
    letter-spacing: clamp(
      0.02em,
      calc(0.02em + (0.08em - 0.02em) * ((100vw - 769px) / (950px - 769px))),
      0.08em
    );
  }

  .works-archive__genre-btn + .works-archive__genre-btn {
    margin-left: clamp(
      4px,
      calc(4px + (8px - 4px) * ((100vw - 769px) / (950px - 769px))),
      8px
    );
  }

  .works-archive__genre-btn:first-child + .works-archive__genre-btn {
    margin-left: clamp(
      12px,
      calc(12px + (20px - 12px) * ((100vw - 769px) / (950px - 769px))),
      20px
    );
  }
}

.works-page .achievements {
  margin: 0 auto;
  padding: 0;
  width: 100%;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 60px 9.558%;
  position: relative;
}

.works-page .achievements .item {
  margin: 0;
  padding: 0;
  width: 26.628%;
  max-width: 327px;
}

.works-page .achievements .item a {
  margin: 0;
  padding: 0;
  width: 100%;
  display: block;
  transition: all 0.4s ease-in-out;
  text-decoration: none;
}

.works-page .achievements .item a:hover {
  text-decoration: none;
}

.works-page .achievements .item .image {
  margin: 0 0 32px;
  width: 100%;
  min-height: 200px;
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.5s ease-in-out;
  position: relative;
}

.works-page .achievements .item a:hover .image {
  transform: scale(1.2);
}

.works-page .achievements .item a .image::after {
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(49, 79, 106, 1);
  position: absolute;
  top: 0;
  left: 0;
  transition: all 0.5s ease-in-out;
  opacity: 0;
}

.works-page .achievements .item a:hover .image::after {
  opacity: 0.4;
}

.works-page .achievements .item a .image img {
  width: 100%;
  height: 200px;
  display: block;
  object-fit: cover;
}

.works-page .achievements .item a .title {
  margin: 0;
  width: 100%;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #404044;
  display: block;
  text-align: center;
  white-space: pre-line;
}

.works-empty {
  margin: 0;
  padding: 40px 0;
  line-height: 1.8em;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
  text-align: center;
}

.works-pagination {
  margin: 61px auto 0;
  width: 100%;
}

.works-pagination .page-numbers {
  display: flex;
  justify-content: center;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.works-pagination .page-numbers a,
.works-pagination .page-numbers span {
  min-width: 40px;
  height: 40px;
  line-height: 40px;
  font-size: 14px;
  font-weight: 600;
  color: #404044;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.works-pagination .page-numbers span.current {
  color: #fff;
  background: #5186a5;
  border-color: #5186a5;
}

.works-single {
  margin: 76px auto 0;
  padding: 0;
  width: 90%;
  max-width: 1040px;
}

.works-single__head {
  margin: 0 0 54px;
}

.works-single__image {
  margin: 0 auto 36px;
  width: min(60.5556vw, 872px);
  max-width: 100%;
  line-height: 0;
  border-radius: 4px;
  overflow: hidden;
}

.works-single__image--slider {
  overflow: visible;
}

.works-single__image--slider .slick-list {
  border-radius: 4px;
  overflow: hidden;
}

.works-single__slide {
  line-height: 0;
}

.works-single__image img {
  width: 100%;
  height: auto;
  display: block;
}

.works-single__pager {
  width: 68px;
  height: 68px;
  border: 0;
  border-radius: 50%;
  background: #ffffffe5;
  box-shadow: 0px 4px 18px 6px #2e759c33;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
  cursor: pointer;
  padding: 0;
}

.works-single__pager::before {
  content: "";
  width: 7.3px;
  height: 13.3px;
  display: block;
  margin: 0 auto;
  background: url("../images/project/vector.png") no-repeat center center;
  background-size: 100% 100%;
}

.works-single__pager--prev {
  left: -107px;
}

.works-single__pager--prev::before {
  transform: scaleX(-1);
}

.works-single__pager--next {
  right: -107px;
}

.works-single__pager.slick-disabled {
  display: none !important;
}

.works-single__title {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  line-height: 1.5em;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0;
  text-align: center;
  color: #404044;
  white-space: pre-line;
}

.works-single__meta {
  width: min(60.5556vw, 872px);
  max-width: 100%;
  margin: 0 auto;
  padding: 0;
  border-top: 0;
}

.works-single__meta-row {
  display: flex;
  align-items: center;
  min-height: 63px;
  margin: 0;
  border: 1px solid #cee2f7;
}

.works-single__meta-row + .works-single__meta-row {
  margin-top: -1px;
  position: relative;
}

.works-single__meta-row + .works-single__meta-row::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: #fff;
  z-index: 1;
}

.works-single__meta-row dt {
  margin: 0;
  width: 234px;
  height: 63px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  padding: 0 0 0 57px;
  box-sizing: border-box;
  background: #cee2f7;
  line-height: 1.6em;
  font-size: 14px;
  font-weight: 700;
  color: #404044;
}

.works-single__meta-row dd {
  margin: 0;
  flex: 1;
  height: 63px;
  display: flex;
  align-items: center;
  padding: 0 0 0 33px;
  box-sizing: border-box;
  background: #fff;
  line-height: 1.6em;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
}

.works-single__body {
  margin: 40px 0 0;
  line-height: 1.8em;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
}

.works-single__lead {
  width: min(60.5556vw, 872px);
  max-width: 100%;
  margin: 35px auto;
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 30px;
  letter-spacing: -0.04em;
  text-align: center;
  color: #404044;
}

.works-single__body img {
  max-width: 100%;
  height: auto;
}

.works-single__back {
  margin: 54px auto 0;
  width: 90%;
  max-width: 836px;
  text-align: center;
}

.works-single__back .c-link-btn02 {
  width: 272px;
  height: 50px;
  margin: 0 auto;
  font-size: 18px;
  background-image: linear-gradient(180deg, #3d6e94, #4d99d1);
  background-size: 100% 100%;
  color: #fff;
  border-color: #314f6a;
  overflow: hidden;
  position: relative;
  z-index: 1;
  isolation: isolate;
}

.works-single__back .c-link-btn02::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  z-index: -1;
}

.works-single__back .c-link-btn02:hover,
.works-single__back .c-link-btn02:active {
  color: #314f6a;
  border-color: #314f6a;
  background-image: linear-gradient(180deg, #3d6e94, #4d99d1);
  background-size: 100% 100%;
}

.works-single__back .c-link-btn02:hover::before,
.works-single__back .c-link-btn02:active::before {
  transform: scaleX(1);
}

.works-single__back .c-link-btn02::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}

.works-single__back .c-link-btn02:hover::after,
.works-single__back .c-link-btn02:active::after {
  background: url("../images/common/arrow_01.png") no-repeat center center;
  background-size: 100% 100%;
}

@media only screen and (max-width: 767px) {
  .works-archive__lead {
    margin: 19px auto 0;
    width: auto;
    padding: 0 33px;
    box-sizing: border-box;
  }

  .works-archive__lead-text {
    font-size: 16px;
    line-height: 1.5em;
    letter-spacing: -0.04em;
    text-align: center;
  }

  .works-archive__highlight {
    margin: 43px auto 0;
    width: 350px;
    max-width: 100%;
    aspect-ratio: 350 / 624;
    height: auto;
    min-height: 0;
    position: relative;
    display: block;
    line-height: 0;
    overflow: hidden;
    border-radius: 5px;
    box-sizing: border-box;
  }

  .works-archive__highlight > .works-archive__highlight-img {
    position: static;
    inset: unset;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    z-index: 0;
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    object-fit: fill;
    object-position: center center;
    vertical-align: top;
  }

  .works-archive__highlight > .works-archive__highlight-img.sp_disp {
    position: absolute;
    top: -12px;
    left: -12px;
    width: calc(100% + 24px);
    height: calc(100% + 24px);
    object-fit: fill;
    object-position: center center;
  }

  .works-archive__highlight > .works-archive__highlight-img.pc_disp {
    display: none !important;
  }

  .works-archive__highlight-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    padding-top: 42px;
    box-sizing: border-box;
    pointer-events: none;
    line-height: normal;
  }

  .works-archive__highlight-label {
    font-size: 25px;
  }

  .works-archive__highlight-body {
    margin-top: 43px;
    padding-inline: 13px;
    padding-bottom: 33px;
    box-sizing: border-box;
    flex: none;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
  }

  .works-archive__feature-copy {
    display: contents;
  }

  .works-archive__feature-title {
    order: 1;
    align-self: stretch;
    width: 100%;
    font-size: 22px;
    line-height: 1.5;
    text-align: center;
  }

  .works-archive__feature-text {
    order: 2;
    align-self: stretch;
    width: 100%;
    margin-top: 30px;
    font-family: "Zen Old Mincho", serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 24px;
    letter-spacing: -0.04em;
    text-align: justify;
  }

  .works-archive__feature-media {
    order: 3;
    flex: none;
    width: 100%;
    margin-top: 36px;
    display: flex;
    justify-content: center;
  }

  .works-archive__feature-media img {
    width: 324px;
    max-width: 100%;
    height: 152px;
    object-fit: cover;
  }

  .works-archive__feature-more {
    order: 4;
    align-self: stretch;
    width: 100%;
    margin-top: 30px;
    display: flex;
    justify-content: center;
  }

  .works-archive__feature-btn {
    width: 294px;
    max-width: 100%;
    height: 57px;
  }

  .works-archive__intro {
    margin: 60px auto 0;
    width: calc(100% - 66px);
  }

  .works-archive__intro-title {
    font-size: 24px;
    letter-spacing: 0.08em;
  }

  .works-archive__intro-text {
    margin-top: 20px;
    font-size: 16px;
    line-height: 28px;
  }

  .works-archive__content {
    margin-top: 27px;
    width: calc(100% - 46px);
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
  }

  .works-archive__filter-wrap {
    z-index: 20;
    margin: 0 auto;
    width: 100%;
    max-width: 400px;
  }

  .works-archive__filter-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 57px;
    margin: 0;
    padding: 0 44px;
    border: 1px solid rgba(49, 79, 106, 1);
    background: #fff;
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: center;
    color: #404044;
    position: relative;
    z-index: 2;
    cursor: pointer;
    transition: border-color 0.3s ease;
  }

  .works-archive__filter-toggle-arrow {
    width: auto;
    height: auto;
    position: absolute;
    top: 50%;
    right: 22px;
    transform: translateY(-50%);
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
  }

  .works-archive__filter-lead.is-open .works-archive__filter-toggle {
    border-bottom-color: transparent;
  }

  .works-archive__filter-lead.is-open .works-archive__filter-toggle-arrow {
    transform: translateY(-50%) rotate(180deg);
  }

  .works-archive__genres-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 100%;
    overflow: hidden;
    min-height: 0;
    border: 1px solid rgba(49, 79, 106, 1);
    border-top: none;
    background: #fff;
    box-sizing: border-box;
  }

  .works-archive__genres {
    display: grid;
    grid-template-rows: 0fr;
    grid-template-columns: 1fr;
    position: absolute;
    top: 57px;
    left: 0;
    right: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    justify-content: stretch;
    align-items: stretch;
    flex-wrap: nowrap;
    border: 0;
    background: transparent;
    pointer-events: none;
    box-sizing: border-box;
    transition:
      grid-template-rows 0.55s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1),
      visibility 0.55s;
  }

  .works-archive__filter-lead.is-open + .works-archive__genres {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .works-archive__genre-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 100%;
    min-width: 100%;
    max-width: none;
    height: 57px;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid rgba(49, 79, 106, 1);
    border-radius: 0;
    background: #fff;
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: center;
    color: #404044;
    white-space: normal;
  }

  .works-archive__genre-btn.is-active {
    background: #fff;
    color: rgba(33, 147, 185, 1);
    margin-bottom: 0;
    z-index: auto;
  }

  .works-archive__genre-btn + .works-archive__genre-btn {
    margin-left: 0;
  }

  .works-archive__genre-btn:first-child + .works-archive__genre-btn {
    margin-left: 0;
  }

  .works-page .works-archive .achievements {
    margin-top: 32px;
    grid-template-columns: 1fr;
    gap: 19px;
    width: 100%;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
  }

  .works-page .achievements {
    gap: 10.667vw 0;
  }

  .works-page .achievements .item {
    width: 100%;
    max-width: none;
  }

  .works-page .works-archive .achievements .item .image {
    height: auto;
    min-height: 0;
  }

  .works-page .works-archive .achievements .item a .image img {
    height: 162px;
  }

  .works-page .works-archive .achievements .item-body {
    height: 74px;
    padding: 15px 20px 11px;
  }

  .works-page .works-archive .achievements .item a .title {
    font-size: 14px;
    line-height: 24px;
  }

  .works-page .achievements .item .image {
    margin: 0 0 6.4vw;
    min-height: 53.333vw;
  }

  .works-page .achievements .item a .image img {
    height: 53.333vw;
  }

  .works-page .achievements .item a .title {
    font-size: 4.615vw;
  }

  .works-single {
    margin: 76px auto 0;
    width: 90%;
  }

  .works-single__head {
    margin: 0 0 54px;
  }

  .works-single__image {
    width: 345px;
    max-width: 100%;
    margin: 0 auto;
  }

  .works-single__pager {
    width: 40px;
    height: 40px;
  }

  .works-single__pager::before {
    width: 4.31px;
    height: 7.84px;
  }

  .works-single__pager--prev {
    left: 10px;
  }

  .works-single__pager--next {
    right: 10px;
  }

  .works-single__title {
    width: 286px;
    max-width: 100%;
    margin: 0 auto;
    line-height: 28px;
    font-size: 22px;
  }

  .works-single__lead {
    width: 324px;
    max-width: 100%;
    margin: 30px auto 35px;
    font-family: "Zen Old Mincho", serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 24px;
    letter-spacing: -0.04em;
    text-align: justify;
    color: #404044;
  }

  .works-single__meta {
    width: 345px;
    max-width: 100%;
    margin: 0 auto;
  }

  .works-single__meta-row {
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
    margin: 0;
    gap: 0;
  }

  .works-single__meta-row + .works-single__meta-row {
    margin-top: -1px;
  }

  .works-single__meta-row + .works-single__meta-row::before {
    display: none;
  }

  .works-single__meta-row dt {
    width: 100%;
    height: auto;
    min-height: 40px;
    padding: 12px 16px;
    font-size: 14px;
  }

  .works-single__meta-row dd {
    width: 100%;
    height: auto;
    min-height: 40px;
    padding: 12px 16px;
    font-size: 14px;
  }

  .works-single__body {
    margin: 8vw 0 0;
    font-size: 3.59vw;
  }

  .works-single__back {
    margin: 10.667vw auto 0;
  }

  .works-single__back .c-link-btn02 {
    font-size: 16px;
  }
}

.about-page {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
}
.about-page .intro {
  padding: 59px 0 59px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 700;
  color: #314f6a;
}
.about-page .greeting {
  padding: 78px 0 59px 0;
  background: url("../images/about/greeting_back_01.png") no-repeat center
    center;
  background-size: cover;
  position: relative;
}
.about-page .greeting::after {
  width: 100%;
  height: 188px;
  content: "";
  background: url("../images/about/greeting_back_02.png") no-repeat center
    center;
  background-size: auto 100%;
  position: absolute;
  bottom: 149px;
  left: 0;
  z-index: 0;
}
.about-page .greeting h2 {
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314f6a;
}
.about-page .greeting .eng {
  padding: 0 0 60px 0;
  line-height: 1.4em;
  font-size: 16px;
  font-weight: 400;
  color: #314f6a;
}
.about-page .greeting .catch {
  padding: 0 0 28px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 600;
  color: #314f6a;
}
.about-page .greeting .box {
  margin: 0 auto;
  width: 90%;
  max-width: 955px;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}
.about-page .greeting .box .image {
  width: 20.732%;
}
.about-page .greeting .box .description {
  width: 73%;
  text-align: left;
  line-height: 1.8em;
  font-size: 18px;
  font-weight: 500;
}
.about-page .greeting .box .description p {
  padding: 0 0 25px 0;
}
.about-page .greeting .box .description .name {
  display: flex;
  justify-content: flex-end;
}
.about-page .greeting .box .description .name img {
  max-width: 364px;
  mix-blend-mode: multiply;
  display: block;
}
.about-page .quality-policy {
  padding: 100px 0 176px 0;
  position: relative;
}
.about-page .quality-policy h2 {
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314f6a;
}
.about-page .quality-policy .eng {
  padding: 0 0 46px 0;
  line-height: 1.4em;
  font-size: 16px;
  font-weight: 400;
  color: #314f6a;
}
.about-page .quality-policy .catch {
  padding: 0 0 139px 0;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 600;
  color: #314f6a;
}
.about-page .quality-policy .list {
  margin: 0 auto;
  width: 90%;
  max-width: 895px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  position: relative;
}
.about-page .quality-policy .list::before {
  width: 847px;
  height: 847px;
  content: "";
  background: url("../images/about/circle_image_01.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
.about-page .quality-policy .list::after {
  width: 667px;
  height: 667px;
  content: "";
  background: url("../images/about/circle_image_02.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
}
.about-page .quality-policy .list .s4 {
  width: 46px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
}
.about-page .quality-policy .list .list-item {
  margin: 0 0 98px 0;
  padding: 29px 31px 50px 31px;
  width: 42.681%;
  max-width: 382px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 4px 6px 18px rgba(46, 117, 156, 0.2);
  border-radius: 6px;
  box-sizing: border-box;
  position: relative;
  z-index: 5;
}
.about-page .quality-policy .list .list-item:nth-of-type(4) {
  margin: 0 0 0 0;
}
.about-page .quality-policy .list .list-item:nth-of-type(5) {
  margin: 0 0 0 0;
}
.about-page .quality-policy .list .list-item .eng {
  padding: 0 0 13px 0;
  line-height: 1.2em;
  font-size: 30px;
  font-weight: 400;
  text-align: center;
}
.about-page .quality-policy .list .list-item.list-item--num01 .eng {
  color: #dc5743;
}
.about-page .quality-policy .list .list-item.list-item--num02 .eng {
  color: #3b927b;
}
.about-page .quality-policy .list .list-item.list-item--num03 .eng {
  color: #2a789c;
}
.about-page .quality-policy .list .list-item.list-item--num04 .eng {
  color: #c7a257;
}
.about-page .quality-policy .list .list-item h3 {
  padding: 0 0 16px 0;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: bold;
  text-align: center;
}
.about-page .quality-policy .list .list-item.list-item--num01 h3 {
  color: #dc5743;
}
.about-page .quality-policy .list .list-item.list-item--num02 h3 {
  color: #3b927b;
}
.about-page .quality-policy .list .list-item.list-item--num03 h3 {
  color: #2a789c;
}
.about-page .quality-policy .list .list-item.list-item--num04 h3 {
  color: #c7a257;
}
.about-page .quality-policy .list .list-item .description {
  padding: 0 0 0 7px;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  text-align: left;
}
.about-page .profile {
  padding: 97px 0 93px 0;
  position: relative;
  background: #f3f7fb;
}
.about-page .profile h2 {
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314f6a;
}
.about-page .profile .eng {
  padding: 0 0 60px 0;
  line-height: 1.4em;
  font-size: 16px;
  font-weight: 400;
  color: #314f6a;
}
.about-page .profile .data {
  margin: 0 auto;
  width: 90%;
  max-width: 1082px;
}
.about-page .profile .data table {
  width: 100%;
}
.about-page .profile .data table th {
  padding: 20px 20px 20px 32px;
  width: 44.91%;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 600;
  color: #404044;
  box-sizing: border-box;
  text-align: left;
  background: #cee2f7;
  border-bottom: 1px solid #fff;
  vertical-align: middle;
}
.about-page .profile .data table td {
  padding: 20px 20px 20px 28px;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
  text-align: left;
  background: #fff;
  border-bottom: 1px solid #cee2f7;
}
.about-page .profile .data table td a {
  text-decoration: underline;
}
.about-page .profile .data table td a:hover {
  text-decoration: none;
}
.about-page .profile .data table td .list01 {
  display: flex;
  flex-wrap: wrap;
}
.about-page .profile .data table td .list01 dt {
  margin: 0 1em 0 0;
  width: 7em;
  text-align: right;
}
.about-page .profile .data table td .list01 dd {
  width: calc(100% - 8em);
}
.about-page .profile .data table td .list02 {
  width: 270px;
  display: flex;
  flex-wrap: wrap;
}
.about-page .profile .data table td .list02 dt {
  width: 50%;
}
.about-page .profile .data table td .list02 dd {
  width: 50%;
  text-align: right;
}
.about-page .history {
  padding: 97px 0 143px 0;
  background: url("../images/about/history_back_02.png") no-repeat center bottom;
  background-size: 100% auto;
  position: relative;
}
.about-page .history::before {
  width: 100%;
  height: 100%;
  content: "";
  background: url("../images/about/history_back_01.png") no-repeat center bottom;
  background-size: 100% 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.about-page .history h2 {
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314f6a;
  position: relative;
  z-index: 1;
}
.about-page .history .eng {
  padding: 0 0 60px 0;
  line-height: 1.4em;
  font-size: 16px;
  font-weight: 400;
  color: #314f6a;
  position: relative;
  z-index: 1;
}
.about-page .history .flow {
  margin: 0 auto;
  width: 90%;
  max-width: 1000px;
  position: relative;
  z-index: 1;
  text-align: left;
}
.about-page .history .flow ol {
}
.about-page .history .flow ol li {
  margin: 0 0 25px 0;
  padding: 0 0 0 59px;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  position: relative;
}
.about-page .history .flow ol li::before {
  width: 1px;
  height: calc(100% + 25px);
  content: "";
  background: #314f6a;
  position: absolute;
  top: 25px;
  left: 0;
  z-index: 1;
}
.about-page .history .flow ol li:last-child::before {
  display: none;
}
.about-page .history .flow ol li::after {
  width: 10px;
  height: 10px;
  border-radius: 180px;
  content: "";
  background: #314f6a;
  position: absolute;
  top: 50%;
  left: -5px;
  transform: translate(0, -50%);
  z-index: 2;
}
.about-page .history .flow ol li .year-box {
  width: 8em;
  text-align: center;
}
.about-page .history .flow ol li .year-box .year {
  text-align: center;
  line-height: 1.3em;
  font-size: 31px;
  font-weight: bold;
  display: block;
}
.about-page .history .flow ol li .year-box .era {
  text-align: center;
  line-height: 1.3em;
  font-size: 16px;
  font-weight: bold;
  display: block;
}
.about-page .history .flow ol li .detail {
  margin: 0 0 0 60px;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  text-align: left;
}
.about-page .history .flow .photo-box {
  width: 16.8%;
  position: absolute;
  top: 0;
  right: 0;
}
.about-page .history .flow .photo-box .photo {
  margin: 0 0 40px 0;
  width: 100%;
}
.about-page .history .flow .photo-box .photo:nth-of-type(2) {
  margin: 0 0 159px 0;
}
.about-page .history .flow .photo-box .photo figcaption {
  margin: 0 -10%;
  padding: 8px 0 0 0;
  width: 120%;
  text-align: center;
  line-height: 1.6em;
  font-size: 12px;
  font-weight: bold;
  display: block;
  color: #404044;
}
.about-page .business {
  padding: 70px 0 35px 0;
  background: #e2efff;
  position: relative;
}
.about-page .business h2 {
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314f6a;
  position: relative;
  z-index: 1;
}
.about-page .business .eng {
  padding: 0 0 30px 0;
  line-height: 1.4em;
  font-size: 16px;
  font-weight: 400;
  color: #314f6a;
  position: relative;
  z-index: 1;
}
.about-page .business p {
  padding: 0 0 70px 0;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 600;
  color: #314f6a;
}
.about-page .business .list {
  margin: 0 auto;
  width: 90%;
  max-width: 1005px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.about-page .business .list .list-item {
  margin: 0 0 65px 0;
  padding: 17px 16px 30px 16px;
  width: 32%;
  background: #fff;
  border: 1px solid #cee2f7;
  box-sizing: border-box;
  border-radius: 16px;
  position: relative;
}
.about-page .business .list .list-item .num {
  width: 64px;
  position: absolute;
  top: -12px;
  left: -8px;
}
.about-page .business .list .list-item .num.num--num01 {
  width: 45px;
}
.about-page .business .list .list-item .num.num--num02 {
  width: 60px;
}
.about-page .business .list .list-item .num.num--num03 {
  width: 56px;
}
.about-page .business .list .list-item .num.num--num04 {
  width: 61px;
}
.about-page .business .list .list-item .num.num--num05 {
  width: 56px;
}
.about-page .business .list .list-item .num.num--num06 {
  width: 60px;
}
.about-page .business .list .list-item dt {
  text-align: center;
  padding: 0 0 20px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: bold;
  color: #314f6a;
}
.about-page .business .list .list-item dd {
  padding-left: 7px;
  text-align: left;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
}
.about-page .access {
  padding: 100px 0 35px 0;
  position: relative;
}
.about-page .access h2 {
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314f6a;
  position: relative;
  z-index: 1;
}
.about-page .access .eng {
  padding: 0 0 60px 0;
  line-height: 1.4em;
  font-size: 16px;
  font-weight: 400;
  color: #314f6a;
  position: relative;
  z-index: 1;
}
.about-page .access .list {
  margin: 0 auto;
  width: 90%;
  max-width: 950px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.about-page .access .list .list-item {
  margin: 0 0 30px 0;
  padding: 18px 0 28px 0;
  width: 46.2%;
  text-align: center;
  background: #f3f7fb;
  box-sizing: border-box;
}
.about-page .access .list .list-item:nth-of-type(1) {
  width: 100%;
}
.about-page .access .list .list-item h3 {
  margin: 0 0 0 0;
  padding: 0 0 17px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: bold;
  color: #314f6a;
}
.about-page .access .list .list-item .address {
  margin: 0 0 0 0;
  padding: 18px 15px 0;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: bold;
  color: #404044;
}
.about-page .access .list .list-item:nth-of-type(1) .address {
  margin-left: auto;
  margin-right: auto;
}
.about-page .access .list .list-item .map {
  margin: 0 63px;
  padding: 0 0 0 0;
}
.about-page .access .list .list-item .map iframe {
  width: 100%;
  height: 215px;
  display: block;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .about-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .about-page .intro {
    padding: 4.538vw 0 4.538vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 700;
    color: #314f6a;
  }
  .about-page .greeting {
    padding: 6vw 0 4.538vw 0;
    background: url("../images/about/greeting_back_01.png") no-repeat center
      center;
    background-size: cover;
    position: relative;
  }
  .about-page .greeting::after {
    width: 100%;
    height: 14.462vw;
    content: "";
    background: url("../images/about/greeting_back_02.png") no-repeat center
      center;
    background-size: auto 100%;
    position: absolute;
    bottom: 11.462vw;
    left: 0;
    z-index: 0;
  }
  .about-page .greeting h2 {
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .greeting .eng {
    padding: 0 0 4.615vw 0;
    line-height: 1.4em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #314f6a;
  }
  .about-page .greeting .catch {
    padding: 0 0 2.154vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 600;
    color: #314f6a;
  }
  .about-page .greeting .box {
    margin: 0 auto;
    width: 90%;
    max-width: 73.462vw;
    display: flex;
    justify-content: space-between;
    position: relative;
    z-index: 1;
  }
  .about-page .greeting .box .image {
    width: 20.732%;
  }
  .about-page .greeting .box .description {
    width: 73%;
    text-align: left;
    line-height: 1.8em;
    font-size: 1.385vw;
    font-weight: 500;
  }
  .about-page .greeting .box .description p {
    padding: 0 0 1.923vw 0;
  }
  .about-page .greeting .box .description .name {
    display: flex;
    justify-content: flex-end;
  }
  .about-page .greeting .box .description .name img {
    max-width: 28vw;
    mix-blend-mode: multiply;
    display: block;
  }
  .about-page .quality-policy {
    padding: 7.692vw 0 13.538vw 0;
    position: relative;
  }
  .about-page .quality-policy h2 {
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .quality-policy .eng {
    padding: 0 0 3.538vw 0;
    line-height: 1.4em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #314f6a;
  }
  .about-page .quality-policy .catch {
    padding: 0 0 10.692vw 0;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 600;
    color: #314f6a;
  }
  .about-page .quality-policy .list {
    margin: 0 auto;
    width: 90%;
    max-width: 68.846vw;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    position: relative;
  }
  .about-page .quality-policy .list::before {
    width: 65.154vw;
    height: 65.154vw;
    content: "";
    background: url("../images/about/circle_image_01.png") no-repeat center
      center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
  }
  .about-page .quality-policy .list::after {
    width: 51.308vw;
    height: 51.308vw;
    content: "";
    background: url("../images/about/circle_image_02.png") no-repeat center
      center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
  }
  .about-page .quality-policy .list .s4 {
    width: 3.538vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
  }
  .about-page .quality-policy .list .list-item {
    margin: 0 0 7.538vw 0;
    padding: 2.231vw 2.385vw 3.846vw 2.385vw;
    width: 42.681%;
    max-width: 29.385vw;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 4px 6px 18px rgba(46, 117, 156, 0.2);
    border-radius: 0.462vw;
    box-sizing: border-box;
    position: relative;
    z-index: 5;
  }
  .about-page .quality-policy .list .list-item:nth-of-type(4) {
    margin: 0 0 0 0;
  }
  .about-page .quality-policy .list .list-item:nth-of-type(5) {
    margin: 0 0 0 0;
  }
  .about-page .quality-policy .list .list-item .eng {
    padding: 0 0 1vw 0;
    line-height: 1.2em;
    font-size: 2.308vw;
    font-weight: 400;
    text-align: center;
  }
  .about-page .quality-policy .list .list-item.list-item--num01 .eng {
    color: #dc5743;
  }
  .about-page .quality-policy .list .list-item.list-item--num02 .eng {
    color: #3b927b;
  }
  .about-page .quality-policy .list .list-item.list-item--num03 .eng {
    color: #2a789c;
  }
  .about-page .quality-policy .list .list-item.list-item--num04 .eng {
    color: #c7a257;
  }
  .about-page .quality-policy .list .list-item h3 {
    padding: 0 0 1.231vw 0;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: bold;
    text-align: center;
  }
  .about-page .quality-policy .list .list-item.list-item--num01 h3 {
    color: #dc5743;
  }
  .about-page .quality-policy .list .list-item.list-item--num02 h3 {
    color: #3b927b;
  }
  .about-page .quality-policy .list .list-item.list-item--num03 h3 {
    color: #2a789c;
  }
  .about-page .quality-policy .list .list-item.list-item--num04 h3 {
    color: #c7a257;
  }
  .about-page .quality-policy .list .list-item .description {
    padding: 0 0 0 7px;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    text-align: left;
  }
  .about-page .profile {
    padding: 7.462vw 0 7.154vw 0;
    position: relative;
    background: #f3f7fb;
  }
  .about-page .profile h2 {
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .profile .eng {
    padding: 0 0 4.615vw 0;
    line-height: 1.4em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #314f6a;
  }
  .about-page .profile .data {
    margin: 0 auto;
    width: 90%;
    max-width: 83.231vw;
  }
  .about-page .profile .data table {
    width: 100%;
  }
  .about-page .profile .data table th {
    padding: 1.538vw 1.538vw 1.538vw 2.462vw;
    width: 44.91%;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 600;
    color: #404044;
    box-sizing: border-box;
    text-align: left;
    background: #cee2f7;
    border-bottom: 1px solid #fff;
    vertical-align: middle;
  }
  .about-page .profile .data table td {
    padding: 1.538vw 1.538vw 1.538vw 2.154vw;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    color: #404044;
    text-align: left;
    background: #fff;
    border-bottom: 1px solid #cee2f7;
  }
  .about-page .profile .data table td a {
    text-decoration: underline;
  }
  .about-page .profile .data table td a:hover {
    text-decoration: none;
  }
  .about-page .profile .data table td .list01 {
    display: flex;
    flex-wrap: wrap;
  }
  .about-page .profile .data table td .list01 dt {
    margin: 0 1em 0 0;
    width: 7em;
    text-align: right;
  }
  .about-page .profile .data table td .list01 dd {
    width: calc(100% - 8em);
  }
  .about-page .profile .data table td .list02 {
    width: 20.769vw;
    display: flex;
    flex-wrap: wrap;
  }
  .about-page .profile .data table td .list02 dt {
    width: 50%;
  }
  .about-page .profile .data table td .list02 dd {
    width: 50%;
    text-align: right;
  }
  .about-page .history {
    padding: 7.462vw 0 11vw 0;
    background: url("../images/about/history_back_02.png") no-repeat center
      bottom;
    background-size: 100% auto;
    position: relative;
  }
  .about-page .history::before {
    width: 100%;
    height: 100%;
    content: "";
    background: url("../images/about/history_back_01.png") no-repeat center
      bottom;
    background-size: 100% 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
  }
  .about-page .history h2 {
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .history .eng {
    padding: 0 0 4.615vw 0;
    line-height: 1.4em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .history .flow {
    margin: 0 auto;
    width: 90%;
    max-width: 76.923vw;
    position: relative;
    z-index: 1;
    text-align: left;
  }
  .about-page .history .flow ol {
  }
  .about-page .history .flow ol li {
    margin: 0 0 1.923vw 0;
    padding: 0 0 0 4.538vw;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
  }
  .about-page .history .flow ol li::before {
    width: 0.077vw;
    height: calc(100% + 1.923vw);
    content: "";
    background: #314f6a;
    position: absolute;
    top: 1.923vw;
    left: 0;
    z-index: 1;
  }
  .about-page .history .flow ol li:last-child::before {
    display: none;
  }
  .about-page .history .flow ol li::after {
    width: 0.769vw;
    height: 0.769vw;
    border-radius: 13.846vw;
    content: "";
    background: #314f6a;
    position: absolute;
    top: 50%;
    left: -0.385vw;
    transform: translate(0, -50%);
    z-index: 2;
  }
  .about-page .history .flow ol li .year-box {
    width: 8em;
    text-align: center;
  }
  .about-page .history .flow ol li .year-box .year {
    text-align: center;
    line-height: 1.3em;
    font-size: 2.385vw;
    font-weight: bold;
    display: block;
  }
  .about-page .history .flow ol li .year-box .era {
    text-align: center;
    line-height: 1.3em;
    font-size: 1.231vw;
    font-weight: bold;
    display: block;
  }
  .about-page .history .flow ol li .detail {
    margin: 0 0 0 4.615vw;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    text-align: left;
  }
  .about-page .history .flow .photo-box {
    width: 16.8%;
    position: absolute;
    top: 0;
    right: 0;
  }
  .about-page .history .flow .photo-box .photo {
    margin: 0 0 3.077vw 0;
    width: 100%;
  }
  .about-page .history .flow .photo-box .photo:nth-of-type(2) {
    margin: 0 0 12.231vw 0;
  }
  .about-page .history .flow .photo-box .photo figcaption {
    margin: 0 -10%;
    padding: 0.615vw 0 0 0;
    width: 120%;
    text-align: center;
    line-height: 1.6em;
    font-size: 0.923vw;
    font-weight: bold;
    display: block;
    color: #404044;
  }
  .about-page .business {
    padding: 5.385vw 0 2.692vw 0;
    background: #e2efff;
    position: relative;
  }
  .about-page .business h2 {
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .business .eng {
    padding: 0 0 2.308vw 0;
    line-height: 1.4em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .business p {
    padding: 0 0 5.385vw 0;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 600;
    color: #314f6a;
  }
  .about-page .business .list {
    margin: 0 auto;
    width: 90%;
    max-width: 77.308vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .about-page .business .list .list-item {
    margin: 0 0 5vw 0;
    padding: 1.308vw 1.231vw 2.308vw 1.231vw;
    width: 32%;
    background: #fff;
    border: 1px solid #cee2f7;
    box-sizing: border-box;
    border-radius: 1.231vw;
    position: relative;
  }
  .about-page .business .list .list-item .num {
    width: 4.923vw;
    position: absolute;
    top: -0.923vw;
    left: -0.615vw;
  }
  .about-page .business .list .list-item .num.num--num01 {
    width: 3.462vw;
  }
  .about-page .business .list .list-item .num.num--num02 {
    width: 4.615vw;
  }
  .about-page .business .list .list-item .num.num--num03 {
    width: 4.308vw;
  }
  .about-page .business .list .list-item .num.num--num04 {
    width: 4.692vw;
  }
  .about-page .business .list .list-item .num.num--num05 {
    width: 4.308vw;
  }
  .about-page .business .list .list-item .num.num--num06 {
    width: 4.615vw;
  }
  .about-page .business .list .list-item dt {
    text-align: center;
    padding: 0 0 1.538vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .business .list .list-item dd {
    padding-left: 7px;
    text-align: left;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    color: #404044;
  }
  .about-page .access {
    padding: 7.692vw 0 2.692vw 0;
    position: relative;
  }
  .about-page .access h2 {
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .access .eng {
    padding: 0 0 4.615vw 0;
    line-height: 1.4em;
    font-size: 1.231vw;
    font-weight: 400;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .access .list {
    margin: 0 auto;
    width: 90%;
    max-width: 73.077vw;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .about-page .access .list .list-item {
    margin: 0 0 2.308vw 0;
    padding: 1.385vw 0 2.154vw 0;
    width: 46.2%;
    text-align: center;
    background: #f3f7fb;
    box-sizing: border-box;
  }
  .about-page .access .list .list-item:nth-of-type(1) {
    width: 100%;
  }
  .about-page .access .list .list-item h3 {
    margin: 0 0 0 0;
    padding: 0 0 1.308vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .access .list .list-item .address {
    margin: 0 0 0 0;
    padding: 1.385vw 1.154vw 0;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: bold;
    color: #404044;
  }
  .about-page .access .list .list-item .map {
    margin: 0 4.846vw;
    padding: 0 0 0 0;
  }
  .about-page .access .list .list-item .map iframe {
    width: 100%;
    height: 16.538vw;
    display: block;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .about-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .about-page .intro {
    padding: 6.923vw 0 6.923vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 700;
    color: #314f6a;
  }
  .about-page .greeting {
    padding: 7.692vw 0 8.462vw 0;
    background: url("../images/about/greeting_back_01-sp.png") no-repeat center
      center;
    background-size: cover;
    position: relative;
  }
  .about-page .greeting::after {
    width: 100%;
    height: 33.077vw;
    content: "";
    background: url("../images/about/greeting_back_02-sp.png") no-repeat center
      center;
    background-size: auto 100%;
    position: absolute;
    bottom: 17.436vw;
    left: 0;
    z-index: 0;
  }
  .about-page .greeting h2 {
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .greeting .eng {
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 3.333vw;
    font-weight: 400;
    color: #314f6a;
  }
  .about-page .greeting .catch {
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 600;
    color: #314f6a;
  }
  .about-page .greeting .box {
    margin: 0 auto;
    width: 83.077vw;
    max-width: 83.077vw;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    z-index: 1;
  }
  .about-page .greeting .box .image {
    width: 37.949vw;
    margin: 0 auto 7.692vw;
  }
  .about-page .greeting .box .description {
    width: 100%;
    text-align: left;
    line-height: 1.8em;
    font-size: 3.59vw;
    font-weight: 500;
  }
  .about-page .greeting .box .description p {
    padding: 0 0 5.128vw 0;
  }
  .about-page .greeting .box .description .name {
    display: flex;
    justify-content: center;
  }
  .about-page .greeting .box .description .name img {
    max-width: 44.615vw;
    mix-blend-mode: multiply;
    display: block;
  }
  .about-page .quality-policy {
    padding: 15.385vw 0 45.128vw 0;
    position: relative;
  }
  .about-page .quality-policy h2 {
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .quality-policy .eng {
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 3.333vw;
    font-weight: 400;
    color: #314f6a;
  }
  .about-page .quality-policy .catch {
    padding: 0 0 19.744vw 0;
    line-height: 1.6em;
    font-size: 4.103vw;
    font-weight: 600;
    color: #314f6a;
  }
  .about-page .quality-policy .list {
    margin: 0 auto;
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-wrap: wrap;
    position: relative;
  }
  .about-page .quality-policy .list::before {
    width: 100vw;
    height: 293.077vw;
    content: "";
    background: url("../images/about/circle_image_01-sp.png") no-repeat center
      center;
    background-size: 100% 100%;
    position: absolute;
    top: -17.949vw;
    left: 50%;
    transform: translate(-50%, 0);
    z-index: 1;
  }
  .about-page .quality-policy .list::after {
    display: none;
  }
  .about-page .quality-policy .list .s4 {
    width: 8.462vw;
    position: relative;
    top: auto;
    left: auto;
    transform: translate(0, 0);
    margin: 0 auto 6.667vw auto;
    z-index: 3;
  }
  .about-page .quality-policy .list .list-item {
    margin: 0 auto 3.846vw auto;
    padding: 9.487vw 5.128vw 9.487vw 5.128vw;
    width: 83.077vw;
    max-width: 83.077vw;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 4px 6px 18px rgba(46, 117, 156, 0.2);
    border-radius: 1.538vw;
    box-sizing: border-box;
    position: relative;
    z-index: 5;
  }
  .about-page .quality-policy .list .list-item:nth-of-type(4) {
    margin: 0 auto 3.846vw auto;
  }
  .about-page .quality-policy .list .list-item:nth-of-type(5) {
    margin: 0 auto 0px auto;
  }
  .about-page .quality-policy .list .list-item .eng {
    padding: 0 0 3.333vw 0;
    line-height: 1.2em;
    font-size: 6.41vw;
    font-weight: 400;
    text-align: center;
  }
  .about-page .quality-policy .list .list-item.list-item--num01 .eng {
    color: #dc5743;
  }
  .about-page .quality-policy .list .list-item.list-item--num02 .eng {
    color: #3b927b;
  }
  .about-page .quality-policy .list .list-item.list-item--num03 .eng {
    color: #2a789c;
  }
  .about-page .quality-policy .list .list-item.list-item--num04 .eng {
    color: #c7a257;
  }
  .about-page .quality-policy .list .list-item h3 {
    padding: 0 0 4.103vw 0;
    line-height: 1.2em;
    font-size: 4.103vw;
    font-weight: bold;
    text-align: center;
  }
  .about-page .quality-policy .list .list-item.list-item--num01 h3 {
    color: #dc5743;
  }
  .about-page .quality-policy .list .list-item.list-item--num02 h3 {
    color: #3b927b;
  }
  .about-page .quality-policy .list .list-item.list-item--num03 h3 {
    color: #2a789c;
  }
  .about-page .quality-policy .list .list-item.list-item--num04 h3 {
    color: #c7a257;
  }
  .about-page .quality-policy .list .list-item .description {
    padding: 0 0 0 7px;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    text-align: left;
  }
  .about-page .profile {
    padding: 14.872vw 0 16.667vw 0;
    position: relative;
    background: #f3f7fb;
  }
  .about-page .profile h2 {
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .profile .eng {
    padding: 0 0 8.718vw 0;
    line-height: 1.4em;
    font-size: 3.333vw;
    font-weight: 400;
    color: #314f6a;
  }
  .about-page .profile .data {
    margin: 0 auto;
    width: 88.462vw;
    max-width: 88.462vw;
  }
  .about-page .profile .data table {
    width: 100%;
    display: block;
  }
  .about-page .profile .data table tbody {
    display: block;
  }
  .about-page .profile .data table tr {
    display: block;
  }

  .about-page .profile .data table th {
    padding: 3.333vw 2.564vw 3.333vw 2.564vw;
    width: 100%;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 600;
    color: #404044;
    box-sizing: border-box;
    text-align: left;
    background: #cee2f7;
    border-bottom: 1px solid #fff;
    vertical-align: middle;
    display: block;
  }
  .about-page .profile .data table td {
    padding: 3.333vw 2.564vw 3.333vw 2.564vw;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    color: #404044;
    text-align: left;
    background: #fff;
    border-bottom: 1px solid #cee2f7;
    display: block;
  }
  .about-page .profile .data table td a {
    text-decoration: underline;
  }
  .about-page .profile .data table td a:hover {
    text-decoration: none;
  }
  .about-page .profile .data table td .list01 {
    display: flex;
    flex-wrap: wrap;
  }
  .about-page .profile .data table td .list01 dt {
    margin: 0 1em 0 0;
    width: 7em;
    text-align: right;
  }
  .about-page .profile .data table td .list01 dd {
    width: calc(100% - 8em);
  }
  .about-page .profile .data table td .list02 {
    width: 56.41vw;
    display: flex;
    flex-wrap: wrap;
  }
  .about-page .profile .data table td .list02 dt {
    width: 50%;
  }
  .about-page .profile .data table td .list02 dd {
    width: 50%;
    text-align: right;
  }
  .about-page .history {
    padding: 9.744vw 0 0 0;
    background: url("../images/about/history_back_02-sp.png") no-repeat center
      bottom;
    background-size: 100% auto;
    position: relative;
  }
  .about-page .history::before {
    width: 100%;
    height: 100%;
    content: "";
    background: url("../images/about/history_back_01-sp.png") no-repeat center
      bottom;
    background-size: 100% 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
  }
  .about-page .history h2 {
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .history .eng {
    padding: 0 0 12.308vw 0;
    line-height: 1.4em;
    font-size: 3.333vw;
    font-weight: 400;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .history .flow {
    margin: 0 2.564vw 0 10vw;
    padding: 0 0 30.769vw 0;
    width: calc(100% - 12.564vw);
    max-width: calc(100% - 12.564vw);
    position: relative;
    z-index: 1;
    text-align: left;
  }
  .about-page .history .flow ol {
  }
  .about-page .history .flow ol li {
    margin: 0 0 3.846vw 0;
    padding: 0 0 0 5.128vw;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
  }
  .about-page .history .flow ol li::before {
    width: 0.256vw;
    height: calc(100% + 10.256vw);
    content: "";
    background: #314f6a;
    position: absolute;
    top: 3.846vw;
    left: 0;
    z-index: 1;
  }

  .about-page .history .flow ol li:last-child::before {
    display: none;
  }
  .about-page .history .flow ol li::after {
    width: 2.564vw;
    height: 2.564vw;
    border-radius: 46.154vw;
    content: "";
    background: #314f6a;
    position: absolute;
    top: 50%;
    left: -1.282vw;
    transform: translate(0, -50%);
    z-index: 2;
  }
  .about-page .history .flow ol li .year-box {
    width: 5em;
    text-align: left;
  }
  .about-page .history .flow ol li .year-box .year {
    text-align: left;
    line-height: 1.3em;
    font-size: 4.359vw;
    font-weight: bold;
    display: block;
  }
  .about-page .history .flow ol li .year-box .era {
    text-align: left;
    line-height: 1.3em;
    font-size: 3.077vw;
    font-weight: bold;
    display: block;
  }
  .about-page .history .flow ol li .detail {
    margin: 0 0 0 0;
    width: calc(100% - 5em);
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    text-align: left;
  }
  .about-page .history .flow .photo-box {
    margin: 0 0 6.923vw -2.308vw;
    width: 84.359vw;
    position: relative;
    top: auto;
    right: auto;
  }
  .about-page .history .flow .photo-box .photo {
    margin: 0 0 3.846vw 0;
    width: 100%;
    display: flex;
    align-items: center;
  }
  .about-page .history .flow .photo-box .photo:nth-of-type(2) {
    margin: 0 0 3.846vw 0;
  }
  .about-page .history .flow .photo-box .photo img {
    margin: 0 2.564vw 0 0;
    width: 39.231vw;
  }
  .about-page .history .flow .photo-box .photo figcaption {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: calc(100%- 41.795vw);
    text-align: left;
    line-height: 1.6em;
    font-size: 2.821vw;
    font-weight: bold;
    display: block;
    color: #404044;
  }
  .about-page .history .view-wrap {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 57.692vw;
    overflow: hidden;
    position: relative;
  }
  .about-page .history .view-wrap {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 57.692vw;
    overflow: hidden;
    position: relative;
    transition: all 0.5s 0s ease-in-out;
  }
  .about-page .history .view-wrap.open {
    height: auto;
  }
  .about-page .history .view-wrap::after {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 57.692vw;
    content: "";
    background: url("../images/about/history_back_03-sp.png") no-repeat center
      bottom;
    background-size: 100% auto;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
  }
  .about-page .history .view-wrap.open::after {
    display: none;
  }
  .about-page .history .view-wrap .more {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 66.667vw;
    position: absolute;
    bottom: 14.872vw;
    left: 50%;
    z-index: 2;
    transform: translate(-50%, 0);
  }
  .about-page .history .view-wrap .more a {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    height: 12.821vw;
    line-height: 1.2em;
    font-size: 3.59vw;
    text-decoration: none;
    color: #3e5069;
    border: 1px solid #3e5069;
    border-radius: 46.154vw;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .about-page .history .view-wrap .more a .open {
    display: inline-block;
  }
  .about-page .history .view-wrap .more a .close {
    display: none;
  }
  .about-page .history .view-wrap.open .more a .open {
    display: none;
  }
  .about-page .history .view-wrap.open .more a .close {
    display: inline-block;
  }

  .about-page .business {
    padding: 14.872vw 0 3.846vw 0;
    background: #e2efff;
    position: relative;
  }
  .about-page .business h2 {
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .business .eng {
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 3.333vw;
    font-weight: 400;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .business p {
    padding: 0 0 10.256vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 600;
    color: #314f6a;
  }
  .about-page .business .list {
    margin: 0 auto;
    width: 83.077vw;
    max-width: 83.077vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .about-page .business .list .list-item {
    margin: 0 0 10.256vw 0;
    padding: 6.667vw 5.128vw 6.41vw 5.128vw;
    width: 100%;
    background: #fff;
    border: 1px solid #cee2f7;
    box-sizing: border-box;
    border-radius: 4.103vw;
    position: relative;
  }
  .about-page .business .list .list-item .num {
    width: 16.41vw;
    position: absolute;
    top: -3.077vw;
    left: 0px;
  }
  .about-page .business .list .list-item .num.num--num01 {
    width: 13.333vw;
  }
  .about-page .business .list .list-item .num.num--num02 {
    width: 16.154vw;
  }
  .about-page .business .list .list-item .num.num--num03 {
    width: 15.641vw;
  }
  .about-page .business .list .list-item .num.num--num04 {
    width: 16.923vw;
  }
  .about-page .business .list .list-item .num.num--num05 {
    width: 15.641vw;
  }
  .about-page .business .list .list-item .num.num--num06 {
    width: 16.667vw;
  }
  .about-page .business .list .list-item dt {
    text-align: center;
    padding: 0 0 5.128vw 0;
    line-height: 1.4em;
    font-size: 5.641vw;
    font-weight: bold;
    color: #314f6a;
  }
  .about-page .business .list .list-item dd {
    padding-left: 7px;
    text-align: left;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    color: #404044;
  }
  .about-page .access {
    padding: 15.385vw 0 8.974vw 0;
    position: relative;
  }
  .about-page .access h2 {
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .access .eng {
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 3.333vw;
    font-weight: 400;
    color: #314f6a;
    position: relative;
    z-index: 1;
  }
  .about-page .access .list {
    margin: 0 auto;
    width: 100%;
    max-width: 100%;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .about-page .access .list .list-item {
    margin: 0 0 7.692vw 0;
    padding: 0 0 4.615vw 0;
    width: 100%;
    text-align: center;
    background: #f3f7fb;
    box-sizing: border-box;
  }
  .about-page .access .list .list-item:nth-of-type(1) {
    width: 100%;
  }
  .about-page .access .list .list-item h3 {
    margin: 0 0 12.564vw 0;
    padding: 0 0 3.846vw 0;
    line-height: 1.4em;
    font-size: 5.641vw;
    font-weight: bold;
    color: #314f6a;
    background: #fff;
  }
  .about-page .access .list .list-item .address {
    margin: 0 0 0 0;
    padding: 3.846vw 3.846vw 0;
    line-height: 1.4em;
    font-size: 3.59vw;
    font-weight: bold;
    color: #404044;
  }
  .about-page .access .list .list-item .map {
    margin: 0 8.462vw;
    padding: 0 0 0 0;
  }
  .about-page .access .list .list-item .map iframe {
    width: 100%;
    height: 45.897vw;
    display: block;
  }
}

/* contact-page */
.contact-page {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
}
.contact-page .intro {
  padding: 77px 0 77px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 700;
  color: #314f6a;
}
.contact-page h2 {
  padding: 23px 0 46px 0;
  line-height: 1.4em;
  font-size: 25px;
  font-weight: 600;
  color: #314f6a;
}
.contact-page .form {
  margin: 0 auto;
  width: 90%;
  max-width: 792px;
}
.contact-page .message {
  padding: 40px 0 75px 0;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 400;
  color: #314f6a;
}
.contact-page .message a {
  text-decoration: underline;
}
.contact-page .message a:hover {
  text-decoration: none;
}
.contact-page .contact-info {
  margin: 0 auto 100px auto;
  padding: 40px 0;
  width: 90%;
  max-width: 1038px;
  background: rgba(206, 226, 247, 0.3);
  border: 1px solid #cee2f7;
  box-sizing: border-box;
  text-decoration: none;
}
.contact-page .contact-info h3 {
  padding: 0 0 30px 0;
  text-align: center;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: 600;
  color: #314f6a;
}
.contact-page .contact-info dl {
  margin: 0 auto;
  padding: 0 0 30px 0;
  width: 90%;
  max-width: 530px;
  display: flex;
  align-items: center;
}
.contact-page .contact-info dl dt {
  width: 90px;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: bold;
  color: #314f6a;
}
.contact-page .contact-info dl dd {
  padding: 0 0 0 44px;
  line-height: 1.1em;
  font-size: 37px;
  font-weight: bold;
  color: #314f6a;
  position: relative;
}
.contact-page .contact-info dl dd::before {
  width: 36px;
  height: 36px;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
}
.contact-page .contact-info dl dd.icon-tel::before {
  background: url("../images/contact/icon_01.png") no-repeat center center;
  background-size: 100% auto;
}
.contact-page .contact-info dl dd.icon-fax::before {
  background: url("../images/contact/icon_02.png") no-repeat center center;
  background-size: 100% auto;
}
.contact-page .contact-info dl dd.icon-time::before {
  background: url("../images/contact/icon_03.png") no-repeat center center;
  background-size: 100% auto;
}
.contact-page .contact-info dl dd .day {
  line-height: 1.4em;
  font-size: 18px;
  font-weight: bold;
}
.contact-page .contact-info dl dd .note {
  line-height: 1.4em;
  font-size: 16px;
  font-weight: 400;
}
.contact-page .smf-form {
  margin: 0 auto;
  width: 90%;
  max-width: 792px;
  text-align: left;
}
.contact-page .smf-form .smf-item {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 100%;
}
.contact-page .smf-form .smf-item__col--label {
  margin: 0 0 0 0;
  padding: 0 0 7px 0;
  width: 100%;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: bold;
  font-family: "Noto Sans JP";
  color: #314f6a;
}
.contact-page .smf-form .smf-item__col--controls {
  margin: 0 0 0 0;
  padding: 0 0 24px 0;
  width: 100%;
}
.contact-page .smf-form .smf-item__col--controls .smf-text-control__control {
  margin: 0 0 0 0;
  padding: 15px;
  width: 100%;
  background: #fff;
  border: 1px solid #cee2f7;
  border-radius: 5px;
  box-sizing: border-box;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: bold;
  font-family: "Noto Sans JP";
  color: #314f6a;
  -webkit-appearance: none;
}
.contact-page
  .smf-form
  .smf-item__col--controls
  .smf-textarea-control__control {
  margin: 0 0 0 0;
  padding: 15px;
  width: 100%;
  height: 203px;
  background: #fff;
  border: 1px solid #cee2f7;
  border-radius: 5px;
  box-sizing: border-box;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: bold;
  font-family: "Noto Sans JP";
  color: #314f6a;
  -webkit-appearance: none;
}
.contact-page .smf-action {
  margin: 0 0 0 0;
  padding: 16px 0 0 0;
  width: 100%;
  display: flex;
  justify-content: center;
}
.contact-page .smf-action button {
  margin: 0 15px;
  padding: 0 0 0 0;
  width: 272px;
  height: 50px;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 600;
  color: #fff;
  background: #314f6a;
  border: 1px solid #314f6a;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  -webkit-appearance: none;
  cursor: pointer;
  transition: all 0.5s 0s ease-in-out;
}
.contact-page .smf-action button:hover {
  opacity: 0.7;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .contact-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .contact-page .intro {
    padding: 5.923vw 0 5.923vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 700;
    color: #314f6a;
  }
  .contact-page h2 {
    padding: 1.769vw 0 3.538vw 0;
    line-height: 1.4em;
    font-size: 1.923vw;
    font-weight: 600;
    color: #314f6a;
  }
  .contact-page .form {
    margin: 0 auto;
    width: 90%;
    max-width: 60.923vw;
  }
  .contact-page .message {
    padding: 3.077vw 0 5.769vw 0;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 400;
    color: #314f6a;
  }
  .contact-page .message a {
    text-decoration: underline;
  }
  .contact-page .message a:hover {
    text-decoration: none;
  }
  .contact-page .contact-info {
    margin: 0 auto 7.692vw auto;
    padding: 3.077vw 0;
    width: 90%;
    max-width: 79.846vw;
    background: rgba(206, 226, 247, 0.3);
    border: 1px solid #cee2f7;
    box-sizing: border-box;
    text-decoration: none;
  }
  .contact-page .contact-info h3 {
    padding: 0 0 2.308vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: 600;
    color: #314f6a;
  }
  .contact-page .contact-info dl {
    margin: 0 auto;
    padding: 0 0 2.308vw 0;
    width: 90%;
    max-width: 40.769vw;
    display: flex;
    align-items: center;
  }
  .contact-page .contact-info dl dt {
    width: 6.923vw;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: bold;
    color: #314f6a;
  }
  .contact-page .contact-info dl dd {
    padding: 0 0 0 3.385vw;
    line-height: 1.1em;
    font-size: 2.846vw;
    font-weight: bold;
    color: #314f6a;
    position: relative;
  }
  .contact-page .contact-info dl dd::before {
    width: 2.769vw;
    height: 2.769vw;
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%);
  }
  .contact-page .contact-info dl dd.icon-tel::before {
    background: url("../images/contact/icon_01.png") no-repeat center center;
    background-size: 100% auto;
  }
  .contact-page .contact-info dl dd.icon-fax::before {
    background: url("../images/contact/icon_02.png") no-repeat center center;
    background-size: 100% auto;
  }
  .contact-page .contact-info dl dd.icon-time::before {
    background: url("../images/contact/icon_03.png") no-repeat center center;
    background-size: 100% auto;
  }
  .contact-page .contact-info dl dd .day {
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: bold;
  }
  .contact-page .contact-info dl dd .note {
    line-height: 1.4em;
    font-size: 1.231vw;
    font-weight: 400;
  }
  .contact-page .smf-form {
    margin: 0 auto;
    width: 90%;
    max-width: 60.923vw;
    text-align: left;
  }
  .contact-page .smf-form .smf-item {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
  }
  .contact-page .smf-form .smf-item__col--label {
    margin: 0 0 0 0;
    padding: 0 0 0.538vw 0;
    width: 100%;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: bold;
    font-family: "Noto Sans JP";
    color: #314f6a;
  }
  .contact-page .smf-form .smf-item__col--controls {
    margin: 0 0 0 0;
    padding: 0 0 1.846vw 0;
    width: 100%;
  }
  .contact-page .smf-form .smf-item__col--controls .smf-text-control__control {
    margin: 0 0 0 0;
    padding: 1.154vw;
    width: 100%;
    background: #fff;
    border: 1px solid #cee2f7;
    border-radius: 0.385vw;
    box-sizing: border-box;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: bold;
    font-family: "Noto Sans JP";
    color: #314f6a;
    -webkit-appearance: none;
  }
  .contact-page
    .smf-form
    .smf-item__col--controls
    .smf-textarea-control__control {
    margin: 0 0 0 0;
    padding: 1.154vw;
    width: 100%;
    height: 15.615vw;
    background: #fff;
    border: 1px solid #cee2f7;
    border-radius: 0.385vw;
    box-sizing: border-box;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: bold;
    font-family: "Noto Sans JP";
    color: #314f6a;
    -webkit-appearance: none;
  }
  .contact-page .smf-action {
    margin: 0 0 0 0;
    padding: 1.231vw 0 0 0;
    width: 100%;
    display: flex;
    justify-content: center;
  }
  .contact-page .smf-action button {
    margin: 0 1.154vw;
    padding: 0 0 0 0;
    width: 20.923vw;
    height: 3.846vw;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 600;
    color: #fff;
    background: #314f6a;
    border: 1px solid #314f6a;
    border-radius: 0.385vw;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    -webkit-appearance: none;
    cursor: pointer;
    transition: all 0.5s 0s ease-in-out;
  }
  .contact-page .smf-action button:hover {
    opacity: 0.7;
  }
}
@media only screen and (max-width: 767px) {
  /* 390 */
  .contact-page {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
  }
  .contact-page .intro {
    padding: 9.744vw 0 9.744vw 0;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 700;
    color: #314f6a;
  }
  .contact-page h2 {
    padding: 0 0 8.718vw 0;
    line-height: 1.4em;
    font-size: 5.641vw;
    font-weight: 600;
    color: #314f6a;
  }
  .contact-page .form {
    margin: 0 auto;
    width: 83.077vw;
    max-width: 83.077vw;
  }
  .contact-page .message {
    padding: 7.692vw 0 11.538vw 0;
    line-height: 1.4em;
    font-size: 3.59vw;
    font-weight: 400;
    color: #314f6a;
  }
  .contact-page .message a {
    text-decoration: underline;
  }
  .contact-page .message a:hover {
    text-decoration: none;
  }
  .contact-page .contact-info {
    margin: 0 auto 15.385vw auto;
    padding: 7.692vw 0;
    width: 89.744vw;
    max-width: 89.744vw;
    background: rgba(206, 226, 247, 0.3);
    border: 1px solid #cee2f7;
    box-sizing: border-box;
    text-decoration: none;
  }
  .contact-page .contact-info h3 {
    padding: 0 0 7.692vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 5.641vw;
    font-weight: 600;
    color: #314f6a;
  }
  .contact-page .contact-info dl {
    margin: 0 0 0 0;
    padding: 0 0 3.333vw 18.462vw;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .contact-page .contact-info dl dt {
    width: 100%;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: bold;
    color: #314f6a;
    text-align: left;
  }
  .contact-page .contact-info dl dd {
    padding: 0 0 0 0;
    width: 100%;
    line-height: 1.1em;
    font-size: 9.487vw;
    font-weight: bold;
    text-align: left;
    color: #314f6a;
    position: relative;
  }
  .contact-page .contact-info dl dd::before {
    width: 10.513vw;
    height: 10.513vw;
    content: "";
    position: absolute;
    top: 0px;
    left: -12.821vw;
    transform: translate(0, 0);
  }
  .contact-page .contact-info dl dd.icon-tel::before {
    background: url("../images/contact/icon_01.png") no-repeat center center;
    background-size: 100% auto;
  }
  .contact-page .contact-info dl dd.icon-fax::before {
    background: url("../images/contact/icon_02.png") no-repeat center center;
    background-size: 100% auto;
  }
  .contact-page .contact-info dl dd.icon-time::before {
    background: url("../images/contact/icon_03.png") no-repeat center center;
    background-size: 100% auto;
  }
  .contact-page .contact-info dl dd .day {
    line-height: 1.4em;
    font-size: 4.615vw;
    font-weight: bold;
  }
  .contact-page .contact-info dl dd .note {
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: 400;
    display: block;
  }
  .contact-page .smf-form {
    margin: 0 auto;
    width: 83.077vw;
    max-width: 83.077vw;
    text-align: left;
  }
  .contact-page .smf-form .smf-item {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
  }
  .contact-page .smf-form .smf-item__col--label {
    margin: 0 0 0 0;
    padding: 0 0 3.846vw 0;
    width: 100%;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: bold;
    font-family: "Noto Sans JP";
    color: #314f6a;
  }
  .contact-page .smf-form .smf-item__col--controls {
    margin: 0 0 0 0;
    padding: 0 0 4.872vw 0;
    width: 100%;
  }
  .contact-page .smf-form .smf-item__col--controls .smf-text-control__control {
    margin: 0 0 0 0;
    padding: 2.564vw;
    width: 100%;
    background: #fff;
    border: 1px solid #cee2f7;
    border-radius: 1.282vw;
    box-sizing: border-box;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: bold;
    font-family: "Noto Sans JP";
    color: #314f6a;
    -webkit-appearance: none;
  }
  .contact-page
    .smf-form
    .smf-item__col--controls
    .smf-textarea-control__control {
    margin: 0 0 0 0;
    padding: 2.564vw;
    width: 100%;
    height: 52.051vw;
    background: #fff;
    border: 1px solid #cee2f7;
    border-radius: 1.282vw;
    box-sizing: border-box;
    line-height: 1.4em;
    font-size: 4.103vw;
    font-weight: bold;
    font-family: "Noto Sans JP";
    color: #314f6a;
    -webkit-appearance: none;
  }
  .contact-page .smf-action {
    margin: 0 0 0 0;
    padding: 4.103vw 0 0 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .contact-page .smf-action button {
    margin: 0 auto 3.846vw;
    padding: 0 0 0 0;
    width: 75.385vw;
    height: 14.615vw;
    line-height: 1.4em;
    font-size: 3.59vw;
    font-weight: 600;
    color: #fff;
    background: #314f6a;
    border: 1px solid #314f6a;
    border-radius: 1.282vw;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    -webkit-appearance: none;
    cursor: pointer;
    transition: all 0.5s 0s ease-in-out;
  }
  .contact-page .smf-action button:hover {
    opacity: 0.7;
  }
}

/* 404 */
.c-page-title.c-page-title--404 {
  background: #314f6a;
}
.error-404 {
  padding: 80px 0 120px;
}
.error-404__inner {
  margin: 0 auto;
  width: 90%;
  max-width: 743px;
  text-align: center;
}
.error-404__text {
  margin: 0 0 40px;
  line-height: 2;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
}
.error-404__back {
  margin: 0 auto;
  text-align: center;
}
.error-404__back .c-link-btn02 {
  max-width: 272px;
  margin: 0 auto;
  font-size: 18px;
  color: #fff;
  background-color: #3d6e94;
  background-image: linear-gradient(180deg, #3d6e94, #4d99d1);
  background-size: 100% 100%;
  border-color: transparent;
  isolation: isolate;
  transition:
    color var(--c-linkbtn-dur) var(--c-linkbtn-ease) 0.06s,
    border-color var(--c-linkbtn-dur) var(--c-linkbtn-ease);
}
.error-404__back .c-link-btn02::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--c-linkbtn-dur) var(--c-linkbtn-ease);
  z-index: -1;
}
.error-404__back .c-link-btn02:hover,
.error-404__back .c-link-btn02:active {
  color: #314f6a;
  border-color: #314f6a;
  background-image: linear-gradient(180deg, #3d6e94, #4d99d1);
  background-size: 100% 100%;
}
.error-404__back .c-link-btn02:hover::before,
.error-404__back .c-link-btn02:active::before {
  transform: scaleX(1);
}
.error-404__back .c-link-btn02::after {
  background: url("../images/common/arrow_03.png") no-repeat center center;
  background-size: 100% 100%;
}
.error-404__back .c-link-btn02:hover::after,
.error-404__back .c-link-btn02:active::after {
  background: url("../images/common/arrow_01.png") no-repeat center center;
  background-size: 100% 100%;
}
@media only screen and (max-width: 767px) {
  .error-404 {
    padding: 48px 0 80px;
  }
  .error-404__text {
    margin: 0 0 32px;
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
  }
  .error-404__back .c-link-btn02 {
    font-size: 16px;
  }
}

/* 戻るボタン：高さ・文字サイズ固定（c-link-btn02 の vw 指定を上書き） */
.error-404__back .c-link-btn02,
.news-single__back .c-link-btn02,
.works-single__back .c-link-btn02 {
  height: 50px;
  font-size: 18px;
}

@media only screen and (max-width: 767px) {
  .error-404__back .c-link-btn02,
  .news-single__back .c-link-btn02,
  .works-single__back .c-link-btn02 {
    height: 50px;
    font-size: 16px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1300px) {
  .error-404__back .c-link-btn02,
  .news-single__back .c-link-btn02,
  .works-single__back .c-link-btn02 {
    height: 50px;
    font-size: 18px;
  }
}

/* cross_talk-page */
.cross_talk-page {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  font-family: "Noto Sans JP";
}
.cross_talk-page img {
  width: 100%;
  display: block;
  height: auto;
}
.cross_talk-page h1 {
}
.cross_talk-page .message {
  margin: 0 0 20px 0;
}
.cross_talk-page .contents-menu {
  margin: 0 auto 55px;
  width: 90%;
  max-width: 688px;
  min-height: 232px;
  background: url("../images/cross_talk/contents_back_01.png") no-repeat center center;
  background-size: 100% 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cross_talk-page .contents-menu h2 {
  margin: 0 0 0 0;
  padding: 20px 0 20px 0;
  text-align: center;
  line-height: 1.4em;
  font-size: 18px;
  font-weight: 700;
  color: #1C5986;
}
.cross_talk-page .contents-menu ol {
  margin: 0 auto;
  text-align: left;
  line-height: 1.4em;
  font-size: 17px;
  font-weight: 700;
  color: #314F6A;
}
.cross_talk-page .contents-menu ol li {
  margin: 0 0 10px 0;
}
.cross_talk-page .contents-menu ol li .num {
  line-height: 1.4em;
  font-size: 19px;
  font-weight: 700;
  color: #5B9AD2;
}
.cross_talk-page .contents-menu ol li a {
  color: #314F6A;
}
.cross_talk-page h3 {
  margin: 0 auto;
  width: 515px;
  height: 83px;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: 700;
  color: #404044;
  background: rgba(122,189,207,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
}
.cross_talk-page h3 .num {
  padding: 0 27px 0 0;
  line-height: 1.2em;
  font-size: 27px;
  font-weight: 700;
  color: #314F6A;
}
.cross_talk-page h4 {
  padding: 65px 0 30px 0;
  line-height: 1.2em;
  font-size: 25px;
  font-weight: 700;
  color: #1C5986;
}
.cross_talk-page .talk-list {
  margin: 0 auto 65px;
  width: 90%;
  max-width: 815px;
  text-align: left;
}
.cross_talk-page .talk-list .talk-item {
  margin: 0 auto;
  padding: 0 0 48px 0;
  width: 100%;
  max-width: 792px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.cross_talk-page .talk-list .talk-item:nth-of-type(2n) {
  flex-direction: row-reverse;
}
.cross_talk-page .talk-list .talk-item .talk {
  padding: 20px 30px;
  width: 81.0%;
  line-height: 2.0em;
  font-size: 16px;
  font-weight: 600;
  color: #404044;
  position: relative;
  border-radius: 16px;
  box-sizing: border-box;
  background: #EBEBEB;
  display: flex;
}
.cross_talk-page .talk-list .talk-item .talk::after {
  width: 30px;
  height: 26px;
  content: "";
  background: url("../images/cross_talk/deco_02.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  bottom: -25px;
  left: 15px;
}
.cross_talk-page .talk-list .talk-item:nth-of-type(2n) .talk::after {
  background: url("../images/cross_talk/deco_01.png") no-repeat center center;
  background-size: 100% 100%;
  left: auto;
  right: 15px;
}
.cross_talk-page .talk-list .talk-item .image {
  padding: 0 0 0 0;
  width: 18.2%;
  text-align: center;
}
.cross_talk-page .talk-list .talk-item .image img {
  margin: 0 auto 2px;
  max-width: 103px;
}
.cross_talk-page .talk-list .talk-item .image figcaption {
  display: block;
  line-height: 1.6em;
  font-size: 14px;
  font-weight: 600;
  color: #404044;
}
.cross_talk-page .talk-list .photo-image {
  padding: 50px 0 0 0;
}
.cross_talk-page .last-message {
  margin: 0 auto 100px;
  padding: 28px 0 0 0;
  width: 90%;
  max-width: 792px;
  text-align: center;
}
.cross_talk-page .last-message .eng {
  margin: 0 auto 5px;
  width: 290px;
}
.cross_talk-page .last-message p {
  padding: 0 0 55px 0;
  line-height: 1.8em;
  font-size: 18px;
  font-weight: bold;
  color: #3E70AE;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  /* 1300 */
  .cross_talk-page .message {
    margin: 0 0 1.538vw 0;
  }
  .cross_talk-page .contents-menu {
    margin: 0 auto 4.231vw;
    width: 90%;
    max-width: 52.923vw;
    min-height: 17.846vw;
    background: url("../images/cross_talk/contents_back_01.png") no-repeat center center;
    background-size: 100% 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .cross_talk-page .contents-menu h2 {
    margin: 0 0 0 0;
    padding: 1.538vw 0 1.538vw 0;
    text-align: center;
    line-height: 1.4em;
    font-size: 1.385vw;
    font-weight: 700;
    color: #1C5986;
  }
  .cross_talk-page .contents-menu ol {
    margin: 0 auto;
    text-align: left;
    line-height: 1.4em;
    font-size: 1.308vw;
    font-weight: 700;
    color: #314F6A;
  }
  .cross_talk-page .contents-menu ol li {
    margin: 0 0 0.769vw 0;
  }
  .cross_talk-page .contents-menu ol li .num {
    line-height: 1.4em;
    font-size: 1.462vw;
    font-weight: 700;
    color: #5B9AD2;
  }
  .cross_talk-page .contents-menu ol li a {
    color: #314F6A;
  }
  .cross_talk-page h3 {
    margin: 0 auto;
    width: 39.615vw;
    height: 6.385vw;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: 700;
    color: #404044;
    background: rgba(122,189,207,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.231vw;
  }
  .cross_talk-page h3 .num {
    padding: 0 2.077vw 0 0;
    line-height: 1.2em;
    font-size: 2.077vw;
    font-weight: 700;
    color: #314F6A;
  }
  .cross_talk-page h4 {
    padding: 5vw 0 2.308vw 0;
    line-height: 1.2em;
    font-size: 1.923vw;
    font-weight: 700;
    color: #1C5986;
  }
  .cross_talk-page .talk-list {
    margin: 0 auto 5vw;
    width: 90%;
    max-width: 62.692vw;
    text-align: left;
  }
  .cross_talk-page .talk-list .talk-item {
    margin: 0 auto;
    padding: 0 0 3.692vw 0;
    width: 100%;
    max-width: 60.923vw;
    display: flex;
    justify-content: space-between;
  }
  .cross_talk-page .talk-list .talk-item:nth-of-type(2n) {
    flex-direction: row-reverse;
  }
  .cross_talk-page .talk-list .talk-item .talk {
    padding: 1.538vw 2.308vw;
    width: 81.0%;
    line-height: 2.0em;
    font-size: 1.231vw;
    font-weight: 600;
    color: #404044;
    position: relative;
    border-radius: 1.231vw;
    box-sizing: border-box;
    background: #EBEBEB;
    display: flex;
  }
  .cross_talk-page .talk-list .talk-item .talk::after {
    width: 2.308vw;
    height: 2vw;
    content: "";
    background: url("../images/cross_talk/deco_02.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    bottom: -1.923vw;
    left: 1.154vw;
  }
  .cross_talk-page .talk-list .talk-item:nth-of-type(2n) .talk::after {
    background: url("../images/cross_talk/deco_01.png") no-repeat center center;
    background-size: 100% 100%;
    left: auto;
    right: 1.154vw;
  }
  .cross_talk-page .talk-list .talk-item .image {
    padding: 0 0 0 0;
    width: 18.2%;
    text-align: center;
  }
  .cross_talk-page .talk-list .talk-item .image img {
    margin: 0 auto 0.154vw;
    max-width: 7.923vw;
  }
  .cross_talk-page .talk-list .talk-item .image figcaption {
    display: block;
    line-height: 1.6em;
    font-size: 1.077vw;
    font-weight: 600;
    color: #404044;
  }
  .cross_talk-page .talk-list .photo-image {
    padding: 3.846vw 0 0 0;
  }
  .cross_talk-page .last-message {
    margin: 0 auto 7.692vw;
    padding: 2.154vw 0 0 0;
    width: 90%;
    max-width: 60.923vw;
    text-align: center;
  }
  .cross_talk-page .last-message .eng {
    margin: 0 auto 0.385vw;
    width: 22.308vw;
  }
  .cross_talk-page .last-message p {
    padding: 0 0 4.231vw 0;
    line-height: 1.8em;
    font-size: 1.385vw;
    font-weight: bold;
    color: #3E70AE;
  }

}
@media only screen and (max-width: 767px) { /* 390 */
  .cross_talk-page {
  }
  .cross_talk-page img {
  }
  .cross_talk-page h1 {
  }
  .cross_talk-page .message {
    margin: 0 0 1.026vw 0;
  }
  .cross_talk-page .contents-menu {
    margin: 0 auto 8.205vw;
    width: 90.769vw;
    max-width: 90.769vw;
    min-height: 54.872vw;
    background: url("../images/cross_talk/contents_back_01-sp.png") no-repeat center center;
    background-size: 100% 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .cross_talk-page .contents-menu h2 {
    margin: 0 0 0 0;
    padding: 6.667vw 0 6.41vw 0;
    text-align: center;
    line-height: 1.4em;
    font-size: 3.59vw;
    font-weight: 700;
    color: #1C5986;
  }
  .cross_talk-page .contents-menu ol {
    margin: 0 auto;
    text-align: left;
    line-height: 1.4em;
    font-size: 3.59vw;
    font-weight: 700;
    color: #314F6A;
  }
  .cross_talk-page .contents-menu ol li {
    margin: 0 0 2.564vw 0;
  }
  .cross_talk-page .contents-menu ol li .num {
    line-height: 1.4em;
    font-size: 3.59vw;
    font-weight: 700;
    color: #5B9AD2;
  }
  .cross_talk-page .contents-menu ol li a {
    color: #314F6A;
  }
  .cross_talk-page h3 {
    margin: 0 auto;
    padding: 0 0 0 7.949vw;
    width: 90.769vw;
    height: 17.949vw;
    line-height: 1.2em;
    font-size: 5.128vw;
    font-weight: 700;
    color: #404044;
    background: rgba(122,189,207,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4.103vw;
    position: relative;
    box-sizing: border-box;
    text-align: center;
  }
  .cross_talk-page h3 .num {
    padding: 0 0 0 0;
    line-height: 1.2em;
    font-size: 4.359vw;
    font-weight: 700;
    color: #314F6A;
    position: absolute;
    top: 50%;
    left: 7.949vw;
    transform: translate(0,-50%);
  }
  .cross_talk-page h4 {
    padding: 7.692vw 0 6.41vw 0;
    line-height: 1.2em;
    font-size: 5.128vw;
    font-weight: 700;
    color: #1C5986;
  }
  .cross_talk-page .talk-list {
    margin: 0 auto 7.692vw;
    width: 90.769vw;
    max-width: 90.769vw;
    text-align: left;
  }
  .cross_talk-page .talk-list .talk-item {
    margin: 0 auto;
    padding: 0 0 6.41vw 0;
    width: 100%;
    max-width: 100%;
    display: flex;
    justify-content: space-between;
  }
  .cross_talk-page .talk-list .talk-item:nth-of-type(2n) {
    flex-direction: row-reverse;
  }
  .cross_talk-page .talk-list .talk-item .talk {
    padding: 5.128vw 5.128vw;
    width: calc( 100% - 25.128vw );
    line-height: 2.0em;
    font-size: 3.59vw;
    font-weight: 600;
    color: #404044;
    position: relative;
    border-radius: 4.103vw;
    box-sizing: border-box;
    background: #EBEBEB;
    display: flex;
  }
  .cross_talk-page .talk-list .talk-item .talk::after {
    width: 7.692vw;
    height: 6.667vw;
    content: "";
    background: url("../images/cross_talk/deco_02.png") no-repeat center center;
    background-size: 100% 100%;
    position: absolute;
    bottom: -3.846vw;
    left: 3.846vw;
  }
  .cross_talk-page .talk-list .talk-item:nth-of-type(2n) .talk::after {
    background: url("../images/cross_talk/deco_01.png") no-repeat center center;
    background-size: 100% 100%;
    left: auto;
    right: 3.846vw;
  }
  .cross_talk-page .talk-list .talk-item .image {
    padding: 0 0 0 0;
    width: 18.974vw;
    text-align: center;
  }
  .cross_talk-page .talk-list .talk-item .image img {
    margin: 0 auto 0.513vw;
    max-width: 26.41vw;
  }
  .cross_talk-page .talk-list .talk-item .image figcaption {
    display: block;
    line-height: 1.6em;
    font-size: 3.077vw;
    font-weight: 600;
    color: #404044;
  }
  .cross_talk-page .talk-list .photo-image {
    padding: 5.128vw 0 0 0;
  }
  .cross_talk-page .last-message {
    margin: 0 auto 15.385vw;
    padding: 7.179vw 0 0 0;
    width: 88.462vw;
    max-width: 88.462vw;
    text-align: center;
  }
  .cross_talk-page .last-message .eng {
    margin: 0 auto 5.128vw;
    width: 59.487vw;
  }
  .cross_talk-page .last-message p {
    margin: 0 auto;
    padding: 0 0 5.128vw 0;
    width: 83.077vw;
    line-height: 1.8em;
    font-size: 4.615vw;
    font-weight: bold;
    color: #3E70AE;
    text-align: left;
  }

}


/* banpaku-page */
.banpaku-page {
  width: 100%;
}
.banpaku-page img {
  width: 100%;
  display: block;
}
.banpaku-page .page-title {
  width: 100%;
  position: relative;
}
.banpaku-page .page-title h1 {
  width: 100%;
  height: 217px;
  line-height: 1.45em;
  font-size: 48px;
  font-weight: bold;
  color: #314F6A;
  background: url("../images/banpaku/page_title_02.png") no-repeat center center;
  background-size: auto 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0,-50%);
}
.banpaku-page .about {
  padding: 77px 0 60px 0;
  width: 100%;
  text-align: center;
  background: url("../images/banpaku/about_back_01.png") no-repeat center center;
  background-size: cover;
}
.banpaku-page .about h2 {
  padding: 0 0 30px 0;
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314F6A;
}
.banpaku-page .about p {
  padding: 0 0 30px 0;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
}
.banpaku-page .about p.catch {
  padding: 0 0 30px 0;
  line-height: 1.6em;
  font-size: 25px;
  font-weight: bold;
  color: #33A4CA;
}
.banpaku-page .message {
  margin: 0 auto;
  padding: 100px 0 100px 0;
  width: 90%;
  max-width: 837px;
  text-align: left;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.banpaku-page .message h2 {
  margin: 0 0 0 0;
  padding: 0 0 30px 0;
  width: 100%;
  text-align: center;
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314F6A;
}
.banpaku-page .message .image {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 23.655%;
}
.banpaku-page .message .image img {
  border-radius: 5px;
}
.banpaku-page .message .description {
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  width: 70.609%;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
}
.banpaku-page .message .description .name {
  margin: 0 0 0 0;
  padding: 40px 0 0 0;
  line-height: 1.6em;
  font-size: 18px;
  font-weight: 500;
  color: #404044;
  text-align: right;
}
.banpaku-page .pavilion-list {
  margin: 0 0 0 0;
  padding: 74px 0 0 0;
  background: #F0FBFC;
}
.banpaku-page .pavilion-list .pavilion {
  margin: 0 0 0 0;
  padding: 54px 0 121px 0;
  background: #F0FBFC;
}
.banpaku-page .pavilion-list .pavilion:nth-of-type(2) {
  background: #FCFBF0;
}
.banpaku-page .pavilion-list .pavilion:nth-of-type(3) {
  background: #F0F6EB;
}
.banpaku-page .pavilion-list h2 {
  margin: 0 0 0 0;
  padding: 0 0 70px 0;
  text-align: center;
  line-height: 1.4em;
  font-size: 35px;
  font-weight: bold;
  color: #314F6A;
  position: relative;
}
.banpaku-page .pavilion-list h2::after {
  width: 1px;
  height: 67px;
  content: "";
  background: #314F6A;
  position: absolute;
  bottom: -25px;
  left: 50%;
}
.banpaku-page .pavilion-list h3 {
  margin: 0 0 0 0;
  padding: 0 0 20px 0;
  text-align: center;
  line-height: 1.2em;
  font-size: 30px;
  font-weight: bold;
  color: #33A4CA;
}
.banpaku-page .pavilion-list .eng {
  margin: 0 0 0 0;
  padding: 0 0 52px 0;
  text-align: center;
  line-height: 1.2em;
  font-size: 20px;
  font-weight: 400;
  color: #33A4CA;
}
.banpaku-page .pavilion-list .pavilion-image-box {
  margin: 0 auto;
  width: 90%;
  max-width: 872px;
}
@media only screen and (min-width: 768px) and (max-width: 1300px) { /* 1300 */
  .banpaku-page {
    width: 100%;
  }
  .banpaku-page img {
    width: 100%;
    display: block;
  }
  .banpaku-page .page-title {
    width: 100%;
    position: relative;
  }
  .banpaku-page .page-title h1 {
    width: 100%;
    height: 16.692vw;
    line-height: 1.45em;
    font-size: 3.692vw;
    font-weight: bold;
    color: #314F6A;
    background: url("../images/banpaku/page_title_02.png") no-repeat center center;
    background-size: auto 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0,-50%);
  }
  .banpaku-page .about {
    padding: 5.923vw 0 4.615vw 0;
    width: 100%;
    text-align: center;
    background: url("../images/banpaku/about_back_01.png") no-repeat center center;
    background-size: cover;
  }
  .banpaku-page .about h2 {
    padding: 0 0 2.308vw 0;
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314F6A;
  }
  .banpaku-page .about p {
    padding: 0 0 2.308vw 0;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    color: #404044;
  }
  .banpaku-page .about p.catch {
    padding: 0 0 2.308vw 0;
    line-height: 1.6em;
    font-size: 1.923vw;
    font-weight: bold;
    color: #33A4CA;
  }
  .banpaku-page .message {
    margin: 0 auto;
    padding: 7.692vw 0 7.692vw 0;
    width: 90%;
    max-width: 64.385vw;
    text-align: left;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .banpaku-page .message h2 {
    margin: 0 0 0 0;
    padding: 0 0 2.308vw 0;
    width: 100%;
    text-align: center;
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314F6A;
  }
  .banpaku-page .message .image {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 23.655%;
  }
  .banpaku-page .message .image img {
    border-radius: 0.385vw;
  }
  .banpaku-page .message .description {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 70.609%;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    color: #404044;
  }
  .banpaku-page .message .description .name {
    margin: 0 0 0 0;
    padding: 3.077vw 0 0 0;
    line-height: 1.6em;
    font-size: 1.385vw;
    font-weight: 500;
    color: #404044;
    text-align: right;
  }
  .banpaku-page .pavilion-list {
    margin: 0 0 0 0;
    padding: 5.692vw 0 0 0;
    background: #F0FBFC;
  }
  .banpaku-page .pavilion-list .pavilion {
    margin: 0 0 0 0;
    padding: 4.154vw 0 9.308vw 0;
    background: #F0FBFC;
  }
  .banpaku-page .pavilion-list .pavilion:nth-of-type(2) {
    background: #FCFBF0;
  }
  .banpaku-page .pavilion-list .pavilion:nth-of-type(3) {
    background: #F0F6EB;
  }
  .banpaku-page .pavilion-list h2 {
    margin: 0 0 0 0;
    padding: 0 0 5.385vw 0;
    text-align: center;
    line-height: 1.4em;
    font-size: 2.692vw;
    font-weight: bold;
    color: #314F6A;
    position: relative;
  }
  .banpaku-page .pavilion-list h2::after {
    width: 0.077vw;
    height: 5.154vw;
    content: "";
    background: #314F6A;
    position: absolute;
    bottom: -1.923vw;
    left: 50%;
  }
  .banpaku-page .pavilion-list h3 {
    margin: 0 0 0 0;
    padding: 0 0 1.538vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 2.308vw;
    font-weight: bold;
    color: #33A4CA;
  }
  .banpaku-page .pavilion-list .eng {
    margin: 0 0 0 0;
    padding: 0 0 4vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 1.538vw;
    font-weight: 400;
    color: #33A4CA;
  }
  .banpaku-page .pavilion-list .pavilion-image-box {
    margin: 0 auto;
    width: 90%;
    max-width: 67.077vw;
  }
}
@media only screen and (max-width: 767px) { /* 390 */
  .banpaku-page {
    width: 100%;
  }
  .banpaku-page img {
    width: 100%;
    display: block;
  }
  .banpaku-page .page-title {
    width: 100%;
    display: flex;
    flex-direction: column-reverse;
    position: relative;
  }
  .banpaku-page .page-title h1 {
    padding: 6.667vw 0 7.692vw 0;
    width: 100%;
    height: auto;
    line-height: 1.45em;
    font-size: 7.692vw;
    font-weight: bold;
    color: #314F6A;
    background: #fff;
    display: block;
    position: relative;
    top: auto;
    left: auto;
    transform: translate(0,0);
  }
  .banpaku-page .about {
    padding: 10.256vw 0 3.846vw 0;
    width: 100%;
    text-align: center;
    background: url("../images/banpaku/about_back_01-sp.png") no-repeat center center;
    background-size: cover;
  }
  .banpaku-page .about h2 {
    padding: 0 0 7.692vw 0;
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314F6A;
  }
  .banpaku-page .about p {
    margin: 0 auto;
    padding: 0 0 7.692vw 0;
    width: 83.333vw;
    text-align: left;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    color: #404044;
  }
  .banpaku-page .about p.catch {
    padding: 0 0 7.692vw 0;
    line-height: 1.6em;
    font-size: 4.103vw;
    font-weight: bold;
    color: #33A4CA;
    text-align: center;
  }
  .banpaku-page .message {
    margin: 0 auto;
    padding: 15.385vw 0 15.385vw 0;
    width: 83.333vw;
    max-width: 83.333vw;
    text-align: left;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .banpaku-page .message h2 {
    margin: 0 0 0 0;
    padding: 0 0 7.692vw 0;
    width: 100%;
    text-align: center;
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314F6A;
  }
  .banpaku-page .message .image {
    margin: 0 auto 30px auto;
    padding: 0 0 0 0;
    width: 50.769vw;
  }
  .banpaku-page .message .image img {
    border-radius: 1.282vw;
  }
  .banpaku-page .message .description {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    text-align: left;
    color: #404044;
  }
  .banpaku-page .message .description .name {
    margin: 0 0 0 0;
    padding: 5.128vw 0 0 0;
    line-height: 1.6em;
    font-size: 3.59vw;
    font-weight: 500;
    color: #404044;
    text-align: center;
  }
  .banpaku-page .pavilion-list {
    margin: 0 0 0 0;
    padding: 12.308vw 0 0 0;
    background: #F0FBFC;
  }
  .banpaku-page .pavilion-list .pavilion {
    margin: 0 0 0 0;
    padding: 11.795vw 0 10vw 0;
    background: #F0FBFC;
  }
  .banpaku-page .pavilion-list .pavilion:nth-of-type(2) {
    background: #FCFBF0;
  }
  .banpaku-page .pavilion-list .pavilion:nth-of-type(3) {
    background: #F0F6EB;
  }
  .banpaku-page .pavilion-list h2 {
    margin: 0 0 0 0;
    padding: 0 0 17.949vw 0;
    text-align: center;
    line-height: 1.4em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #314F6A;
    position: relative;
  }
  .banpaku-page .pavilion-list h2::after {
    width: 0.256vw;
    height: 17.179vw;
    content: "";
    background: #314F6A;
    position: absolute;
    bottom: -6.41vw;
    left: 50%;
  }
  .banpaku-page .pavilion-list h3 {
    margin: 0 0 0 0;
    padding: 0 0 2.564vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 6.41vw;
    font-weight: bold;
    color: #33A4CA;
  }
  .banpaku-page .pavilion-list .eng {
    margin: 0 0 0 0;
    padding: 0 0 7.692vw 0;
    text-align: center;
    line-height: 1.2em;
    font-size: 5.128vw;
    font-weight: 400;
    color: #33A4CA;
  }
  .banpaku-page .pavilion-list .pavilion-image-box {
    margin: 0 auto;
    width: 88.462vw;
    max-width: 88.462vw;
  }

}