@charset "UTF-8";
/* CSS Document */
/*----------------------------------------
変数
----------------------------------------*/
/*----------------------------------------
サイト共通 スタイルシート
----------------------------------------*/
.sectionTitle .en {
  font-size: var(--size12px);
  font-family: "Inter", sans-serif;
  font-weight: 600;
  color: var(--colorMain);
  letter-spacing: 0.04em;
  line-height: 1.25;
  margin-bottom: 4px;
}
.sectionTitle .ja {
  font-size: var(--size32px);
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.44;
}
@media screen and (min-width: 590px) {
  .sectionTitle .ja {
    font-size: var(--size48px);
  }
}
@media screen and (min-width: 1367px) {
  .sectionTitle .ja {
    font-size: clamp(3rem, 3.5vw, 4rem);
  }
}

body {
  padding-top: 0;
}

/* トップページ限定ヘッダー
---------------------------------------------- */
#header {
  position: absolute;
  background-color: unset;
}
@media screen and (min-width: 900px) {
  #header #headerInner #menuBtn a {
    width: 96px;
    height: 96px;
  }
}
@media screen and (min-width: 900px) {
  #header #headerInner #menuBtn a span:first-child {
    top: 35px;
  }
}
@media screen and (min-width: 900px) {
  #header #headerInner #menuBtn a span:nth-child(2) {
    top: 45px;
  }
}
@media screen and (min-width: 900px) {
  #header #headerInner #menuBtn a span:last-child {
    top: 55px;
  }
}
@media screen and (min-width: 900px) {
  #header #headerInner #mainMenu {
    top: 96px;
  }
}
#header.scrolltop {
  position: fixed;
  top: 0;
  left: 0;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition: all ease 0.5s;
  transition: all ease 0.5s;
  background-color: var(--colorBackGroundBox);
}
@media screen and (min-width: 590px) {
  #header.scrolltop #headerInner #headerLogo {
    visibility: inherit;
  }
}
@media screen and (min-width: 900px) {
  #header.scrolltop #headerInner #menuBtn a {
    width: 70px;
    height: 70px;
  }
}
@media screen and (min-width: 900px) {
  #header.scrolltop #headerInner #menuBtn a span:first-child {
    top: 25px;
  }
}
@media screen and (min-width: 900px) {
  #header.scrolltop #headerInner #menuBtn a span:nth-child(2) {
    top: 35px;
  }
}
@media screen and (min-width: 900px) {
  #header.scrolltop #headerInner #menuBtn a span:last-child {
    top: 45px;
  }
}
@media screen and (min-width: 900px) {
  #header.scrolltop #headerInner #mainMenu {
    top: 70px;
  }
}
#header.shift {
  -webkit-transform: translateY(-80px);
          transform: translateY(-80px);
}
@media screen and (min-width: 590px) {
  #header #headerInner #headerLogo {
    visibility: hidden;
  }
}
#header:has(#menuBtn > a.close) {
  position: fixed;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* メインイメージ
---------------------------------------------- */
#mv {
  position: relative;
  height: 100svh;
}
#mv .mvBg {
  position: relative;
  z-index: -1;
  height: 84%;
  width: 100%;
  overflow: hidden;
}
@media screen and (min-width: 900px) {
  #mv .mvBg {
    height: 100%;
  }
}
#mv .mvBg .mvBgList {
  height: 100%;
  position: relative;
}
#mv .mvBg .mvBgList .mvBgListItem {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  opacity: 0;
  -webkit-transition: opacity 6s;
  transition: opacity 6s;
}
#mv .mvBg .mvBgList .mvBgListItem.show {
  opacity: 1;
}
#mv .mvBg .mvBgList .mvBgListItem img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 900px) {
  #mv .mvBg.right {
    position: absolute;
    width: 65%;
    top: 0;
    right: 0;
  }
}
@media screen and (min-width: 900px) {
  #mv .mvBg.left {
    width: 5.8%;
    position: absolute;
    left: 0;
    top: 0;
  }
}
@media screen and (min-width: 900px) {
  #mv .mvBg.left img {
    -o-object-position: right center;
       object-position: right center;
  }
}
#mv .mvBg.left .mvBgList .mvBgListItem:nth-child(1) img {
  -o-object-position: 92% 50%;
     object-position: 92% 50%;
}
#mv .mvBg.left .mvBgList .mvBgListItem:nth-child(3) img {
  -o-object-position: 48% 50%;
     object-position: 48% 50%;
}
#mv .mvBg.left .mvBgList .mvBgListItem:nth-child(4) img {
  -o-object-position: 72% 50%;
     object-position: 72% 50%;
}
#mv .mvBg.left .mvBgList .mvBgListItem:nth-child(5) img {
  -o-object-position: 72% 50%;
     object-position: 72% 50%;
}
#mv .mvBg.left .mvBgList .mvBgListItem:nth-child(6) img {
  -o-object-position: 40% 50%;
     object-position: 40% 50%;
}
@media screen and (min-width: 900px) {
  #mv .mvWallpaper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: absolute;
    top: 0;
    left: 5.8%;
    width: 30%;
    max-width: 784px;
    height: 100%;
    background-color: var(--colorBackGround);
  }
}
@media screen and (min-width: 900px) {
  #mv .mvWallpaper .logo {
    width: 62%;
    max-width: 488px;
    -webkit-transform: translateY(-25%);
            transform: translateY(-25%);
    z-index: 2;
  }
}
#mv .mvContent {
  position: absolute;
  bottom: 5.6%;
  left: 20px;
}
@media screen and (min-width: 900px) {
  #mv .mvContent {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
#mv .mvContent .en {
  color: var(--colorTextSub);
  font-size: var(--size12px);
  font-family: "Manrope", sans-serif;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
}
@media screen and (min-width: 900px) {
  #mv .mvContent .en {
    font-size: var(--size16px);
    text-align: right;
    margin-bottom: 20px;
  }
}
#mv .mvContent .title .mainTitle {
  color: var(--colorTextSub);
  font-size: clamp(1.5rem, 6.4vw, 2.5rem);
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}
@media screen and (min-width: 900px) {
  #mv .mvContent .title .mainTitle {
    white-space: nowrap;
    margin-bottom: 16px;
  }
}
@media screen and (min-width: 1367px) {
  #mv .mvContent .title .mainTitle {
    font-size: clamp(2.5rem, 4.4vw, 4.5rem);
  }
}
#mv .mvContent .title .mainTitle span {
  background-color: var(--colorTextMain);
  padding: 0 8px;
}
#mv .mvContent .title .catchphrase {
  color: var(--colorTextSub);
  font-size: var(--size16px);
  font-weight: 700;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 1367px) {
  #mv .mvContent .title .catchphrase {
    font-size: clamp(1rem, 1.7vw, 1.6rem);
  }
}
#mv .mvContent .title .catchphrase span {
  background-color: var(--colorTextMain);
}
@media screen and (max-width: 899px) {
  #mv .mvContent .title .catchphrase span {
    padding: 0 8px;
  }
}
@media screen and (min-width: 900px) {
  #mv .mvContent .title .catchphrase span:first-of-type {
    padding-left: 8px;
  }
  #mv .mvContent .title .catchphrase span:last-of-type {
    padding-right: 8px;
  }
}
#mv .mvIllust {
  position: absolute;
  bottom: 6.8%;
  right: -4.8%;
  width: 38%;
  max-width: 200px;
  z-index: -1;
}
@media screen and (min-width: 900px) {
  #mv .mvIllust {
    width: 14.6%;
    max-width: 372px;
    right: unset;
    left: 94px;
    bottom: 0;
    z-index: 1;
  }
}
#mv .mvScrollDown {
  display: none;
}
@media screen and (min-width: 900px) {
  #mv .mvScrollDown {
    display: block;
    position: absolute;
    right: 2.4%;
    bottom: 0;
    -webkit-transform: translateY(32%);
            transform: translateY(32%);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 8px;
  }
}
#mv .mvScrollDown .scrollDownText {
  color: var(--colorTextSub);
  font-size: var(--size12px);
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  -webkit-writing-mode: vertical-lr;
      -ms-writing-mode: tb-lr;
          writing-mode: vertical-lr;
}
#mv .mvScrollDown .scrollDownBar {
  width: 100%;
  height: 128px;
  position: relative;
}
#mv .mvScrollDown .scrollDownBar::before {
  content: "";
  display: block;
  margin: 0 auto;
  width: 1px;
  height: 100%;
  background-color: var(--colorTextSub);
}
#mv .mvScrollDown .scrollDownBar span {
  position: absolute;
  display: block;
  width: 8px;
  height: 8px;
  top: -10%;
  left: 50%;
  border: 2px solid var(--colorTextSub);
  border-radius: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  opacity: 0;
  -webkit-animation: scrollDown 3s cubic-bezier(0.66, 0.66, 0.42, 0.9) forwards infinite;
          animation: scrollDown 3s cubic-bezier(0.66, 0.66, 0.42, 0.9) forwards infinite;
}

@-webkit-keyframes scrollDown {
  0% {
    opacity: 0;
    top: -10%;
  }
  5% {
    opacity: 1;
    top: 0;
  }
  95% {
    top: 100%;
    opacity: 1;
  }
  96% {
    opacity: 0;
  }
  100% {
    top: 110%;
  }
}

@keyframes scrollDown {
  0% {
    opacity: 0;
    top: -10%;
  }
  5% {
    opacity: 1;
    top: 0;
  }
  95% {
    top: 100%;
    opacity: 1;
  }
  96% {
    opacity: 0;
  }
  100% {
    top: 110%;
  }
}
/* お知らせ
---------------------------------------------- */
#news .newsInner {
  padding-top: 80px;
  padding-bottom: 64px;
}
@media screen and (min-width: 590px) {
  #news .newsInner {
    padding-top: 102px;
    padding-bottom: 148px;
  }
}
#news .sectionTitle {
  position: relative;
  margin-bottom: 40px;
}
@media screen and (min-width: 590px) {
  #news .sectionTitle {
    margin-bottom: 64px;
  }
}
#news .sectionTitle::before {
  content: "";
  display: block;
  width: 344px;
  height: 298px;
  position: absolute;
  top: -214px;
  left: 0;
  margin-inline: calc(50% - 50vw);
  background-image: url(images/pcb.svg);
  background-size: contain;
}
@media screen and (min-width: 590px) {
  #news .sectionTitle::before {
    margin-inline: unset;
    width: 462px;
    height: 400px;
    top: -302px;
    left: -84px;
  }
}
@media screen and (min-width: 1367px) {
  #news .sectionTitle::before {
    width: 786px;
    height: 680px;
    top: -596px;
    left: -112px;
  }
}
#news .newsWrapper {
  margin-bottom: 40px;
}
@media screen and (min-width: 590px) {
  #news .newsWrapper {
    margin-bottom: 64px;
  }
}
#news .newsWrapper .newsitem {
  border-bottom: solid 1px var(--colorBorderGray);
}
#news .newsWrapper .newsitem a {
  padding-bottom: 24px;
}
@media screen and (min-width: 900px) {
  #news .newsWrapper .newsitem a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
#news .newsWrapper .newsitem:not(:first-child) a {
  padding-top: 24px;
}
#news .newsWrapper .newsitem .itemInner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 16px;
  gap: 32px;
}
@media screen and (min-width: 900px) {
  #news .newsWrapper .newsitem .itemInner {
    margin-bottom: unset;
  }
}
#news .newsWrapper .newsitem .itemInner .category {
  font-size: var(--size12px);
  font-weight: 500;
  border: solid 1px #D5D5D5;
  border-radius: 15px;
  padding: 4px 20px;
}
@media screen and (min-width: 900px) {
  #news .newsWrapper .newsitem .itemInner .category {
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
#news .newsWrapper .newsitem .itemInner .date {
  width: 8em;
  font-size: var(--size16px);
  font-family: "Manrope", sans-serif;
  font-weight: 400;
}
@media screen and (min-width: 1367px) {
  #news .newsWrapper .newsitem .itemInner .date {
    font-size: clamp(1rem, 1.1vw, 1.25rem);
  }
}
#news .newsWrapper .newsitem .text {
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--size16px);
  font-weight: 500;
  letter-spacing: 0.08em;
}
@media screen and (min-width: 900px) {
  #news .newsWrapper .newsitem .text {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    line-height: 1.8;
  }
}
@media screen and (min-width: 1367px) {
  #news .newsWrapper .newsitem .text {
    font-size: clamp(1rem, 1.1vw, 1.25rem);
  }
}

/* insertされている無限ループ画像
---------------------------------------------- */
#insert .insertInner {
  position: relative;
}
#insert .insertInner::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -56px;
  left: 4px;
  z-index: 1;
  width: 70px;
  height: 104px;
  background-image: url(images/swiper_illust.png);
  background-size: contain;
}
@media screen and (min-width: 590px) {
  #insert .insertInner::after {
    width: 120px;
    height: 180px;
  }
}

.insertSwiper {
  margin-inline: calc(50% - 50vw) !important;
}

.insertSwiper > .swiper-wrapper {
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important;
}

.insertSwiper .swiper-slide {
  width: auto !important;
}
.insertSwiper .swiper-slide img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 200px;
  height: 150px;
}
@media screen and (min-width: 590px) {
  .insertSwiper .swiper-slide img {
    width: 400px;
    height: 300px;
  }
}
.insertSwiper .swiper-slide.up {
  padding-bottom: 40px;
}
.insertSwiper .swiper-slide.down {
  padding-top: 40px;
}

/* 代表あいさつ
---------------------------------------------- */
.ceo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.ceo .image {
  position: relative;
  margin-bottom: 32px;
  padding-right: 24px;
}
.ceo .image::after {
  content: "";
  display: block;
  width: calc(100% - 24px);
  height: 100%;
  position: absolute;
  right: 0;
  bottom: -24px;
  background-color: var(--colorMain);
  z-index: -1;
}
.ceo .post {
  font-family: "Yuji Syuku", serif;
  line-height: 1.8;
}
.ceo .name {
  font-family: "Yuji Syuku", serif;
}

#message {
  max-width: 1100px;
  margin: 0 auto;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
}
@media screen and (min-width: 1367px) {
  #message {
    max-width: 1520px;
  }
}
#message .messageInner {
  position: relative;
  margin-top: 148px;
  padding-bottom: calc(35.8208955224% + 120px);
  padding-left: 5%;
  padding-right: 5%;
}
@media screen and (min-width: 590px) {
  #message .messageInner {
    padding-bottom: calc(26.9454545455% + 170px);
  }
}
@media screen and (min-width: 900px) {
  #message .messageContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    gap: 7.2%;
  }
}
@media screen and (min-width: 1367px) {
  #message .messageContainer {
    gap: 12%;
  }
}
@media screen and (min-width: 900px) {
  #message .messageContainer .title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 24%;
    max-width: 260px;
  }
}
#message .messageContainer .title .sectionTitle {
  position: relative;
  margin-bottom: 40px;
}
@media screen and (min-width: 900px) {
  #message .messageContainer .title .sectionTitle {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-flow: row-reverse;
            flex-flow: row-reverse;
    margin-bottom: unset;
  }
}
#message .messageContainer .title .sectionTitle::before {
  content: "";
  display: block;
  width: 344px;
  height: 298px;
  position: absolute;
  top: -214px;
  left: 0;
  margin-inline: calc(50% - 50vw);
  background-image: url(images/pcb.svg);
  background-size: contain;
}
@media screen and (min-width: 900px) {
  #message .messageContainer .title .sectionTitle::before {
    content: unset;
  }
}
@media screen and (min-width: 900px) {
  #message .messageContainer .title .sectionTitle .en {
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
  }
}
@media screen and (min-width: 900px) {
  #message .messageContainer .title .sectionTitle .ja {
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
  }
}
#message .messageContainer .title .ceo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
#message .messageContainer .title .ceo .name {
  font-size: var(--size24px);
}
@media screen and (min-width: 900px) {
  #message .messageContainer .text {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-top: 88px;
  }
}
#message .messageContainer .text .leadText {
  color: var(--colorMain);
  font-size: var(--size24px);
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  margin-bottom: 32px;
}
@media screen and (min-width: 590px) {
  #message .messageContainer .text .leadText {
    font-size: var(--size32px);
    line-height: 1.8;
    margin-bottom: 48px;
  }
}
@media screen and (min-width: 1367px) {
  #message .messageContainer .text .leadText {
    font-size: clamp(2rem, 2.3vw, 2.5rem);
  }
}
#message .messageContainer .text .leadText span {
  display: inline-block;
}
#message .messageContainer .text p {
  font-size: var(--size16px);
  line-height: 1.75;
  font-weight: 500;
  margin-bottom: 56px;
}
@media screen and (min-width: 590px) {
  #message .messageContainer .text p {
    margin-bottom: 82px;
    line-height: 2;
  }
}
@media screen and (min-width: 1367px) {
  #message .messageContainer .text p {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
  }
}
#message .messageContainer .text p:not(:last-of-type) {
  margin-bottom: 2em;
}
#message .messageContainer .text .ceo .image {
  width: 48%;
  max-width: 260px;
}
#message .messageContainer .text .ceo .post {
  font-size: var(--size16px);
}
#message .messageContainer .text .ceo .name {
  font-size: var(--size24px);
}
#message .messageBottomImage {
  -webkit-transform: translateY(46%);
          transform: translateY(46%);
}

/* 会社概要
---------------------------------------------- */
#information {
  background-color: var(--colorBackGroundBox);
}
@media screen and (min-width: 590px) {
  #information {
    max-width: 1920px;
    margin: 0 auto;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
  }
}
#information .informationInner {
  position: relative;
  padding-top: calc(32.2388059701% + 60px);
  padding-left: 5%;
  padding-right: 5%;
  padding-bottom: 60px;
}
@media screen and (min-width: 590px) {
  #information .informationInner {
    padding-top: calc(21.2727272727% + 120px);
    padding-bottom: 66px;
  }
}
#information .informationMv {
  width: 90%;
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
#information .informationMv img {
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 589px) {
  #information .informationMv img {
    aspect-ratio: 335/240;
  }
}
@media screen and (min-width: 590px) {
  #information .informationMv img {
    aspect-ratio: 1100/520;
    -o-object-position: top left;
       object-position: top left;
  }
}
#information .sectionTitle {
  margin-bottom: 40px;
}
@media screen and (min-width: 590px) {
  #information .sectionTitle {
    margin-bottom: 80px;
  }
}
@media screen and (min-width: 590px) {
  #information .informationDescription {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
#information .informationDescription dt {
  padding-top: var(--size16px);
  font-size: var(--size16px);
  font-weight: 700;
  line-height: 1.875;
}
@media screen and (min-width: 590px) {
  #information .informationDescription dt {
    width: 290px;
    padding-bottom: var(--size16px);
    border-bottom: 1px solid var(--colorBorderGray);
  }
}
@media screen and (min-width: 1367px) {
  #information .informationDescription dt {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
  }
}
#information .informationDescription dt:first-of-type {
  border-top: 1px solid var(--colorBorderGray);
}
@media screen and (min-width: 590px) {
  #information .informationDescription dt:last-of-type {
    border-bottom: 1px solid var(--colorBorderGray);
  }
}
#information .informationDescription dd {
  font-size: var(--size16px);
  font-weight: 500;
  line-height: 1.875;
  padding-bottom: var(--size16px);
  border-bottom: 1px solid var(--colorBorderGray);
}
@media screen and (min-width: 590px) {
  #information .informationDescription dd {
    width: calc(100% - 290px);
    padding-top: var(--size16px);
  }
}
@media screen and (min-width: 1367px) {
  #information .informationDescription dd {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
  }
}
@media screen and (min-width: 590px) {
  #information .informationDescription dd:first-of-type {
    border-top: 1px solid var(--colorBorderGray);
  }
}
#information .informationDescription dd .detailList {
  margin-left: 1em;
}
#information .informationDescription dd .detailList .detailListItem {
  list-style: disc;
}
#information .informationDescription dd .url a {
  display: inline-block;
}

/* 会社沿革
---------------------------------------------- */
@media screen and (min-width: 900px) {
  #history .historyMv {
    max-width: 1920px;
    margin: 0 auto;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
  }
}
#history .historyInner {
  padding-top: 120px;
  padding-bottom: 104px;
}
@media screen and (min-width: 900px) {
  #history .historyInner {
    padding-bottom: calc(4.2884927066% + 280px);
  }
}
#history .sectionTitle {
  margin-bottom: 56px;
}
@media screen and (min-width: 900px) {
  #history .sectionTitle {
    margin-bottom: 166px;
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea {
    max-width: 900px;
    margin: 0 auto;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
  }
}
@media screen and (min-width: 1367px) {
  #history .historyArea {
    max-width: 1520px;
  }
}
@media screen and (max-width: 899px) {
  #history .historyArea dl {
    padding-left: 32px;
  }
}
@media screen and (max-width: 899px) {
  #history .historyArea dl dt,
  #history .historyArea dl dd {
    padding-left: 48px;
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dt,
  #history .historyArea dl dd {
    width: 50% !important;
  }
}
#history .historyArea dl dt {
  color: var(--colorMain);
  margin-right: calc(50% - 50vw);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--colorBorderGreen);
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dt {
    margin-right: unset;
  }
}
#history .historyArea dl dt:not(:first-of-type) {
  border-left: 2px solid var(--colorMain);
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dt:not(:first-of-type) {
    border-left: unset;
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dt:nth-of-type(odd) {
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    margin-right: auto !important;
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dt:not(:first-child):nth-of-type(odd) {
    border-right: 2px solid var(--colorMain);
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dt:nth-of-type(even) {
    margin-left: auto !important;
    padding-left: 60px;
    border-left: 2px solid var(--colorMain);
  }
}
#history .historyArea dl dt .year {
  font-size: 1.75em;
  font-weight: 500;
  font-family: "Inter", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 590px) {
  #history .historyArea dl dt .year {
    font-size: 2rem;
  }
}
@media screen and (min-width: 1367px) {
  #history .historyArea dl dt .year {
    font-size: clamp(2rem, 2.3vw, 3.25rem);
  }
}
#history .historyArea dl dt .month {
  font-size: var(--size24px);
  font-weight: 600;
  font-family: "Inter", sans-serif;
}
@media screen and (min-width: 590px) {
  #history .historyArea dl dt .month {
    font-size: 1.75rem;
  }
}
@media screen and (min-width: 1367px) {
  #history .historyArea dl dt .month {
    font-size: clamp(1.75rem, 2vw, 2.75rem);
  }
}
#history .historyArea dl dt sub {
  font-size: var(--size16px);
  font-weight: 700;
  padding: 0 4px;
}
@media screen and (min-width: 590px) {
  #history .historyArea dl dt sub {
    font-size: var(--size20px);
  }
}
@media screen and (min-width: 1367px) {
  #history .historyArea dl dt sub {
    font-size: clamp(1.25rem, 1.46vw, 2rem);
  }
}
#history .historyArea dl dd {
  position: relative;
  font-size: var(--size16px);
  font-weight: 500;
  padding-top: 16px;
  padding-bottom: 40px;
  border-left: 2px solid var(--colorMain);
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd {
    padding-bottom: unset;
    border-left: unset;
    line-height: 1.8;
  }
}
@media screen and (min-width: 1367px) {
  #history .historyArea dl dd {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:nth-of-type(odd) {
    margin-right: auto !important;
    border-right: 2px solid var(--colorMain);
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:nth-of-type(odd):not(:first-of-type)::before {
    left: unset;
    content: "";
    display: block;
    right: 0;
    top: 0;
    -webkit-transform: translate(52%, -50%);
            transform: translate(52%, -50%);
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:nth-of-type(odd) p {
    padding-right: 2em;
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:nth-of-type(even) {
    margin-left: auto !important;
    padding-left: 60px;
    border-left: 2px solid var(--colorMain);
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:nth-of-type(even):not(:first-of-type)::before {
    content: "";
    display: block;
    top: 0;
    left: 0;
    -webkit-transform: translate(-52%, -50%);
            transform: translate(-52%, -50%);
  }
}
#history .historyArea dl dd:first-of-type::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  -webkit-transform: translate(-52%, -50%);
          transform: translate(-52%, -50%);
  width: 64px;
  height: 64px;
  background-image: url(images/point_founding.svg);
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:first-of-type::before {
    left: unset;
    right: 0;
    -webkit-transform: translate(52%, -50%);
            transform: translate(52%, -50%);
  }
}
#history .historyArea dl dd:not(:first-of-type)::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  -webkit-transform: translate(-52%, -50%);
          transform: translate(-52%, -50%);
  width: 24px;
  height: 24px;
  background-image: url(images/point_time_sp.svg);
  background-size: contain;
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:not(:first-of-type)::before {
    content: unset;
    background-image: url(images/point_time_pc.svg);
  }
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:last-of-type {
    padding-bottom: 208px;
  }
}
#history .historyArea dl dd:last-of-type::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  -webkit-transform: translate(-52%, 50%);
          transform: translate(-52%, 50%);
  width: 15px;
  height: 30px;
  background-image: url(images/point_current.svg);
  background-size: contain;
}
@media screen and (min-width: 900px) {
  #history .historyArea dl dd:last-of-type::after {
    width: 22px;
    height: 49px;
    left: unset;
    right: 0;
    -webkit-transform: translate(54%, 50%);
            transform: translate(54%, 50%);
  }
}

/* 事業内容
---------------------------------------------- */
#service .serviceInner {
  padding-bottom: 80px;
}
@media screen and (min-width: 590px) and (max-width: 899px) {
  #service .serviceInner {
    padding-bottom: 160px;
  }
}
@media screen and (min-width: 900px) {
  #service .serviceInner {
    padding-bottom: 200px;
  }
}
#service .serviceImage {
  position: relative;
  margin-bottom: 114px;
  margin-inline: calc(50% - 50vw);
}
@media screen and (min-width: 590px) {
  #service .serviceImage {
    margin-bottom: 162px;
  }
}
@media screen and (min-width: 1920px) {
  #service .serviceImage {
    margin-inline: unset;
    max-width: 1920px;
    margin: 0 auto 162px;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
  }
}
#service .serviceImage .image {
  width: 94%;
  margin-left: auto;
}
@media screen and (min-width: 590px) {
  #service .serviceImage .image {
    width: 90%;
  }
}
#service .serviceImage::before {
  content: "";
  display: block;
  width: 94%;
  padding-top: 84.7323943662%;
  position: absolute;
  top: -6.2%;
  left: 0;
  z-index: -1;
  background-color: var(--colorMain);
}
@media screen and (min-width: 590px) {
  #service .serviceImage::before {
    padding-top: 42.8849270665%;
    top: -10%;
  }
}
#service .sectionTitle {
  margin-bottom: 40px;
  position: relative;
}
@media screen and (min-width: 900px) {
  #service .sectionTitle {
    margin-bottom: 120px;
  }
}
#service .sectionTitle::before {
  content: "";
  display: block;
  width: 468px;
  height: 406px;
  position: absolute;
  top: -200px;
  left: 20px;
  margin-inline: calc(50% - 50vw);
  background-image: url(images/pcb.svg);
  background-size: contain;
}
@media screen and (min-width: 1367px) {
  #service .sectionTitle::before {
    margin-inline: unset;
    height: 680px;
    width: 786px;
    top: -438px;
    left: 0;
  }
}
#service .sectionTitle::after {
  content: "";
  display: block;
  width: 70px;
  height: 110px;
  position: absolute;
  top: -18px;
  right: 20px;
  margin-inline: calc(50% - 50vw);
  background-image: url(images/service_illust.png);
  background-size: contain;
  z-index: -1;
}
@media screen and (min-width: 590px) {
  #service .sectionTitle::after {
    margin-inline: unset;
    width: 140px;
    height: 220px;
    right: 8%;
  }
}
#service .leadText {
  color: var(--colorMain);
  font-size: 1.375rem;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  margin-bottom: 48px;
}
@media screen and (min-width: 590px) {
  #service .leadText {
    font-size: 1.375rem;
  }
}
@media screen and (min-width: 1367px) {
  #service .leadText {
    font-size: clamp(1.375rem, 1.6vw, 2.5rem);
    margin-bottom: 132px;
  }
}
#service .leadText span {
  display: inline-block;
}
#service .serviceList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
  margin-bottom: 84px;
}
@media screen and (min-width: 590px) and (max-width: 899px) {
  #service .serviceList {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 56px 4%;
    margin-bottom: 120px;
  }
}
@media screen and (min-width: 900px) {
  #service .serviceList {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 2%;
    margin-bottom: 120px;
  }
}
#service .serviceList .serviceListItem {
  background-color: var(--colorBackGroundBox);
  position: relative;
  padding: 36px 8% 30px;
}
@media screen and (min-width: 590px) and (max-width: 899px) {
  #service .serviceList .serviceListItem {
    width: 48%;
    padding: 72px 4% 64px;
  }
}
@media screen and (min-width: 900px) {
  #service .serviceList .serviceListItem {
    width: 23.5%;
    padding: 72px 2% 32px;
  }
}
@media screen and (min-width: 1920px) {
  #service .serviceList .serviceListItem {
    padding: 72px 4% 60px;
  }
}
@media screen and (min-width: 900px) {
  #service .serviceList .serviceListItem:nth-child(1) {
    margin-top: 120px;
  }
}
@media screen and (min-width: 900px) {
  #service .serviceList .serviceListItem:nth-child(2) {
    margin-top: 80px;
  }
}
@media screen and (min-width: 900px) {
  #service .serviceList .serviceListItem:nth-child(3) {
    margin-top: 40px;
  }
}
#service .serviceList .serviceListItem .number {
  position: absolute;
  top: 0;
  left: 8%;
  color: var(--colorMain);
  font-size: var(--size12px);
  font-weight: 600;
  font-family: "Inter", sans-serif;
  letter-spacing: 0.04em;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media screen and (min-width: 900px) {
  #service .serviceList .serviceListItem .number {
    left: 6%;
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    font-size: clamp(0.75rem, 0.8vw, 1.125rem);
    -webkit-transform: translateY(-26%);
            transform: translateY(-26%);
  }
}
#service .serviceList .serviceListItem .titleContainer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--colorBorderGreen);
}
@media screen and (min-width: 590px) {
  #service .serviceList .serviceListItem .titleContainer {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 56px;
    border-bottom: unset;
    padding-bottom: 16px;
  }
}
#service .serviceList .serviceListItem .titleContainer .mark {
  width: 127px;
  height: auto;
}
@media screen and (min-width: 590px) {
  #service .serviceList .serviceListItem .titleContainer .mark {
    width: 62%;
  }
}
#service .serviceList .serviceListItem .titleContainer .title {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: var(--size24px);
  font-weight: 700;
}
@media screen and (min-width: 590px) and (max-width: 899px) {
  #service .serviceList .serviceListItem .titleContainer .title {
    font-size: var(--size24px);
  }
}
@media screen and (min-width: 1367px) {
  #service .serviceList .serviceListItem .titleContainer .title {
    font-size: clamp(1.5rem, 1.7vw, 2.375rem);
  }
}
#service .serviceList .serviceListItem .text {
  padding-top: 16px;
  font-weight: 500;
  line-height: 1.75;
}
@media screen and (min-width: 590px) {
  #service .serviceList .serviceListItem .text {
    padding-top: unset;
  }
}
@media screen and (min-width: 590px) {
  #service .serviceList .serviceListItem .text.tabPcCenter {
    text-align: center;
  }
}
#service #achievements .achievementsTitle {
  color: var(--colorMain);
  font-size: var(--size32px);
  font-weight: 700;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 60px;
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsTitle {
    font-size: 2.25rem;
    margin-bottom: 86px;
  }
}
@media screen and (min-width: 1367px) {
  #service #achievements .achievementsTitle {
    font-size: clamp(2.25rem, 2.6vw, 3rem);
  }
}
#service #achievements .achievementsList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 48px;
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList {
    gap: 64px;
  }
}
#service #achievements .achievementsList .achievementsListItem {
  padding-top: 16px;
  border-top: 1px solid var(--colorBorderGreen);
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2%;
  }
}
#service #achievements .achievementsList .achievementsListItem .title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 24px;
  color: var(--colorMain);
  font-weight: 700;
  margin-bottom: 24px;
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem .title {
    width: 220px;
  }
}
#service #achievements .achievementsList .achievementsListItem .title sup {
  font-size: var(--size12px);
  letter-spacing: 0.04em;
  font-family: "Inter", sans-serif;
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem .title sup {
    line-height: 1;
  }
}
#service #achievements .achievementsList .achievementsListItem .title span {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-size: var(--size18px);
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem .title span {
    line-height: 1;
  }
}
@media screen and (min-width: 1367px) {
  #service #achievements .achievementsList .achievementsListItem .title span {
    font-size: clamp(1.125rem, 1.3vw, 1.5rem);
  }
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem dl {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
#service #achievements .achievementsList .achievementsListItem dl dt {
  font-size: var(--size16px);
  font-weight: 300;
  font-family: "Inter", sans-serif;
  margin-bottom: 8px;
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem dl dt {
    width: 72px;
    padding-bottom: 16px;
    margin-bottom: unset;
  }
}
@media screen and (min-width: 900px) {
  #service #achievements .achievementsList .achievementsListItem dl dt {
    width: 104px;
  }
}
@media screen and (min-width: 1367px) {
  #service #achievements .achievementsList .achievementsListItem dl dt {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
  }
}
#service #achievements .achievementsList .achievementsListItem dl dt:not(:first-of-type) {
  padding-top: 16px;
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem dl dt:not(:last-of-type) {
    border-bottom: 1px dotted var(--colorBorderGreen);
  }
}
#service #achievements .achievementsList .achievementsListItem dl dd {
  font-size: var(--size16px);
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem dl dd {
    width: calc(100% - 72px);
  }
}
@media screen and (min-width: 900px) {
  #service #achievements .achievementsList .achievementsListItem dl dd {
    width: calc(100% - 104px);
  }
}
@media screen and (min-width: 1367px) {
  #service #achievements .achievementsList .achievementsListItem dl dd {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
  }
}
@media screen and (min-width: 590px) {
  #service #achievements .achievementsList .achievementsListItem dl dd:not(:first-of-type) {
    padding-top: 16px;
  }
}
#service #achievements .achievementsList .achievementsListItem dl dd:not(:last-of-type) {
  padding-bottom: 16px;
  border-bottom: 1px dotted var(--colorBorderGreen);
}/*# sourceMappingURL=index.css.map */