@charset "UTF-8";
/* ----------------------------------------
  初期設定
---------------------------------------- */
/* ---------------------------
  フォント
--------------------------- */
/* 日本語フォント */
/* 英字フォント */
/* 日本語タイトル */
/* ---------------------------
  カラー
--------------------------- */
/* ---------------------------
  ヘッダー高さ
--------------------------- */
/* ---------------------------
  レスポンシブ
--------------------------- */
/* ----------------------------------------
  TOPページ
---------------------------------------- */
#top {
  background: #f4f4f4;
}
#top .wrapper {
  max-width: 108rem;
}

/* ---------------------------
  メインビジュアル
--------------------------- */
.mv {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  height: 53rem;
  /* background: url(../img/top/mv.jpg)no-repeat center center / cover; */
  margin-top: 8rem;
}
@media screen and (max-width: 768px) {
  .mv {
    margin-top: 6.4rem;
    height: 100%;
  }
}
.mv__inner {
  /* max-width: 1440px; */
  width: 100%;
  /* height: 100%; */
  height: 53rem;
  padding: 0;
}
@media screen and (max-width: 768px) {
  .mv__inner {
    height: 100%;
  }
}
.mv__container {
  width: 100%;
  /* height: 100%; */
  height: 53rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .mv__container {
    height: 100%;
  }
}
.mv__slide {
  height: 53rem;
}
@media screen and (max-width: 768px) {
  .mv__slide {
    height: 100%;
  }
}
.mv__content {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: 5;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  color: #ffffff;
  text-align: center;
}
.mv__ttl {
  font-size: 6rem;
  font-family: "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 500;
  padding-left: 4rem;
  padding-bottom: 1.2rem;
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
@media screen and (max-width: 768px) {
  .mv__ttl {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 550px) {
  .mv__ttl {
    padding-left: 0rem;
  }
}
.mv__copy {
  font-size: 2rem;
  font-weight: 500;
  padding-bottom: 4rem;
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
@media screen and (max-width: 768px) {
  .mv__copy {
    font-size: 1.6rem;
    font-weight: 400;
  }
}
.mv__company-name {
  font-size: 2.4rem;
  font-weight: 500;
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
@media screen and (max-width: 768px) {
  .mv__company-name {
    font-size: 2rem;
  }
}

/* ---------------------------
  当社の特徴
--------------------------- */
.feature {
  padding: 12rem 0 8rem;
}
.feature__cards {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2.2222222222vw;
}
@media screen and (max-width: 768px) {
  .feature__cards {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3.2rem;
  }
}
.feature__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
  width: 100%;
  max-width: 33.8rem;
}
@media screen and (max-width: 768px) {
  .feature__card {
    max-width: 60rem;
  }
}
.feature__img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
}
.feature__ttl {
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1.3;
  background: #ffffff;
  padding: 0.5rem 0.8rem;
	/*padding: 0 0.8rem;*/
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (max-width: 768px) {
  .feature__ttl {
    font-size: 2rem;
  }
}

/* ---------------------------
  製品紹介
--------------------------- */
#top .product__cards {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
}
@media screen and (max-width: 768px) {
  #top .product__cards {
    -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;
  }
}
#top .product__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  width: 100%;
  max-width: 54rem;
  height: auto;
  aspect-ratio: 540/640;
}
@media screen and (max-width: 768px) {
  #top .product__card {
    aspect-ratio: 640/540;
  }
}
#top .product a {
  width: 100%;
  height: 100%;
}
#top .product__cat {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  font-size: 2.4rem;
  line-height: 1;
  letter-spacing: 0.4em;
  font-weight: 400;
  background: #ffffff;
  padding: 1rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  margin-top: 1.4rem;
  margin-right: 2rem;
}
@media screen and (max-width: 768px) {
  #top .product__cat {
    font-size: 2rem;
    letter-spacing: 0.1em;
  }
}
#top .product__card:nth-of-type(1) {
  background: url(../img/top/product_1.jpg) no-repeat center center/cover;
}
#top .product__card:nth-of-type(2) {
  -webkit-transform: translateY(8rem);
          transform: translateY(8rem);
  background: url(../img/top/product_2.jpg) no-repeat center center/cover;
}
@media screen and (max-width: 768px) {
  #top .product__card:nth-of-type(2) {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    background: url(../img/top/product_2-sp.jpg) no-repeat center center/cover;
  }
}
#top .product .btn {
  padding-top: 12rem;
}
@media screen and (max-width: 768px) {
  #top .product .btn {
    padding-top: initial;
  }
}

/* ---------------------------
  技術 / 設備紹介
  会社案内
--------------------------- */
.items {
  padding: 0;
}
.items__wrapper {
  gap: 0;
}
@media screen and (max-width: 768px) {
  .items__wrapper {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.items__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  gap: 6rem;
  position: relative;
  margin: 10rem 0;
}
.items__container.left::before {
  position: absolute;
  content: "";
  width: 100vw;
  height: 124%;
  background-color: #ffffff;
  display: block;
  top: 50%;
  right: 25%;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.items__container.left .items__img {
  margin: 0 calc(50% - 50vw);
}
@media screen and (max-width: 768px) {
  .items__container.left .items__img {
    margin: 0;
  }
}
.items__container.right {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  margin-bottom: 14rem;
}
.items__container.right::before {
  position: absolute;
  content: "";
  width: 100vw;
  height: 124%;
  background-color: #ffffff;
  display: block;
  top: 50%;
  left: 25%;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.items__container.right .items__item {
  margin-left: 4rem;
}
@media screen and (max-width: 768px) {
  .items__container.right .items__item {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
.items__container.right .items__img {
  margin: 0 calc(50% - 50vw);
}
@media screen and (max-width: 768px) {
  .items__container.right .items__img {
    margin: 0;
  }
}
@media screen and (max-width: 768px) {
  .items__container.right .ttl {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
.items__item {
  width: 40rem;
  min-width: 33.6rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8rem;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .items__item {
    width: 100%;
    min-width: auto;
    gap: 4rem;
  }
}
.items__img {
  max-width: 80rem;
  width: 100%;
  height: 50rem;
  aspect-ratio: 16/10;
  z-index: 2;
}
.items .btn {
  padding-top: 0;
}

/* ---------------------------
  お知らせ
--------------------------- */
#top .news {
  background: #ffffff;
}
#top .news__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
}

.news__posts {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
}
.news__post {
  width: 100%;
  border-bottom: 1px solid #666666;
  padding: 4rem 0;
  gap: 3.2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (max-width: 768px) {
  .news__post {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.6rem;
  }
}
.news__time {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 700;
}
.news__ttl {
  font-weight: 500;
}

/* ----------------------------------------
  事業内容 ページ
---------------------------------------- */
#service {
  background: #f4f4f4;
}
#service .contents {
  padding: 10rem 0 4rem;
}
@media screen and (max-width: 768px) {
  #service .contents {
    padding-top: 4rem;
  }
}
#service .contents__wrapper {
  gap: 10rem;
}
@media screen and (max-width: 768px) {
  #service .contents__wrapper {
    gap: 6rem;
  }
}
#service .contents__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  gap: 4rem;
}
@media screen and (max-width: 768px) {
  #service .contents__container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
#service .contents__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 50rem;
  gap: 6rem;
}
@media screen and (max-width: 768px) {
  #service .contents__item {
    width: 100%;
    gap: 3.2rem;
  }
}
#service .contents__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.2rem;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
#service .contents__ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #ffffff;
  gap: 1rem;
  padding: 0 0.8rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#service .contents__ttl-no {
  font-size: 2rem;
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  color: #ffffff;
  padding: 0 0.8rem;
  background: #2f4a7d;
}
@media screen and (max-width: 768px) {
  #service .contents__ttl-no {
    font-size: 1.8rem;
  }
}
#service .contents__ttl-ja {
  font-size: 2rem;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  #service .contents__ttl-ja {
    font-size: 1.8rem;
  }
}
#service .contents__copy {
  font-size: 3.2rem;
  font-family: "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 500;
  color: #2f4a7d;
}
@media screen and (max-width: 768px) {
  #service .contents__copy {
    font-size: 2.4rem;
  }
}
#service .contents__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.2rem;
}
#service .contents__lists {
  font-weight: 500;
  border: 1px solid #c0c0c0;
  padding: 1.6rem 0.8rem;
}
#service .contents__list {
  font-weight: 400;
  list-style-type: disc;
  margin-left: 3.2rem;
}
#service .contents__img {
  width: 60rem;
  height: 100%;
  aspect-ratio: 120/91;
}
@media screen and (max-width: 768px) {
  #service .contents__img {
    width: 100%;
  }
}

/* ----------------------------------------
  技術 / 設備紹介 ページ
---------------------------------------- */
#technology-facility .contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
}
#technology-facility .contents__wrapper {
  gap: 10rem;
}
@media screen and (max-width: 768px) {
  #technology-facility .contents__wrapper {
    gap: 6rem;
  }
}
#technology-facility .contents__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.2rem;
  width: 100%;
}
#technology-facility .contents__heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 6rem;
  width: 100%;
  row-gap: 2rem;
}
#technology-facility .contents__ttl {
  font-family: "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 500;
  font-size: 3.2rem;
  line-height: 2;
}
@media screen and (max-width: 768px) {
  #technology-facility .contents__ttl {
    font-size: 2.4rem;
  }
}
#technology-facility .contents__ttl-bar {
  width: 80rem;
  height: 1px;
  background: #c0c0c0;
}
#technology-facility .contents__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  row-gap: 10rem;
}
@media screen and (max-width: 768px) {
  #technology-facility .contents__container {
    row-gap: 6rem;
  }
}
#technology-facility .contents__container:nth-child(3) {
  margin-top: 6.8rem;
}
@media screen and (max-width: 768px) {
  #technology-facility .contents__container:nth-child(3) {
    margin-top: 2.8rem;
  }
}
#technology-facility .contents__col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  gap: 2rem;
}
#technology-facility .contents__col2 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 55rem;
  gap: 2rem;
}
@media screen and (max-width: 1200px) {
  #technology-facility .contents__col2 {
    width: 45.8333333333%;
  }
}
@media screen and (max-width: 768px) {
  #technology-facility .contents__col2 {
    width: 100%;
  }
}
#technology-facility .contents__col2 .contents__img {
  aspect-ratio: 4/3;
  /*  width: 100%;
  height: auto; */
}
#technology-facility .contents__col2 .contents__img img {
  -o-object-fit: contain;
     object-fit: contain;
}
#technology-facility .contents__name {
  font-family: "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 500;
  font-size: 2.4rem;
  line-height: 2;
}
@media screen and (max-width: 768px) {
  #technology-facility .contents__name {
    font-size: 2rem;
  }
}
#technology-facility .contents__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  gap: 2.4rem;
}
#technology-facility .contents__lists {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  gap: 0.4rem;
}
#technology-facility .contents__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0 0.8rem 0.4rem;
  gap: 0.8rem;
}
#technology-facility .contents__list dt {
  width: 36.3636363636%;
  color: #666666;
  padding-left: 1.6rem;
  position: relative;
}
#technology-facility .contents__list dt::before {
  position: absolute;
  content: "";
  width: 8px;
  height: 1px;
  background: #666666;
  top: 14px;
  left: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
#technology-facility .contents__list dd {
  width: 59.2727272727%;
}
#technology-facility .anchor-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  gap: 4rem;
}
@media screen and (max-width: 768px) {
  #technology-facility .anchor-link {
    gap: 2rem;
  }
}
#technology-facility .anchor-link a {
  line-height: 2;
  letter-spacing: 0.08em;
  border: 1px solid #666666;
  width: 22rem;
  text-align: center;
}
#technology-facility .facility .contents__lists {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#technology-facility .facility .contents__list dt {
  width: 34rem;
  color: #333333;
}
@media screen and (max-width: 768px) {
  #technology-facility .facility .contents__list dt {
    width: 28rem;
  }
}
#technology-facility .facility .contents__list dd {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#technology-facility .btn a {
  width: 34.4rem;
}

/* ----------------------------------------
  会社案内 ページ
---------------------------------------- */
#company .contents {
  padding: 10rem 0;
}
#company .contents__wrapper {
  max-width: 108rem;
  gap: 6rem;
}
#company .contents .ttl {
  width: 100%;
}

/* ---------------------------
  会社概要
--------------------------- */
.about__lists {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.about__list {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  border-bottom: 1px solid #c0c0c0;
}
@media screen and (max-width: 768px) {
  .about__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.about__list dt {
  width: 20rem;
  padding: 2.4rem 2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (max-width: 768px) {
  .about__list dt {
    padding-bottom: 0;
    font-weight: 500;
    width: 100%;
  }
}
.about__list dd {
  width: 81.4814814815%;
  padding: 2.4rem 2rem;
}
@media screen and (max-width: 768px) {
  .about__list dd {
    width: 100%;
  }
}
.about__list ul {
  padding-left: 2rem;
}
.about__list li {
  list-style-type: disc;
}
.about__list span {
  color: #2f4a7d;
  display: block;
}
.about__list span a {
  text-decoration: underline;
}
.about__map {
  width: 100%;
  padding-top: 50.9259259259%;
  position: relative;
}
.about__map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* ---------------------------
  沿革
--------------------------- */
.history {
  background: #f4f4f4;
}
.history__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
}
.history__lists {
  max-width: 90rem;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.2rem;
  position: relative;
}
.history__lists::before {
  content: "";
  position: absolute;
  height: 100%;
  width: 1px;
  border: 1px dashed #2f4a7d;
  left: 6px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  top: 14px;
}
.history__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .history__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.history__list dt {
  width: 20rem;
  padding-left: 2.4rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .history__list dt {
    width: 100%;
  }
}
.history__list dt::before {
  position: absolute;
  content: "";
  width: 12px;
  height: 12px;
  background: #2f4a7d;
  border-radius: 100px;
  top: 8px;
  left: 0;
}
.history__list dd {
  width: 74.2222222222%;
}
@media screen and (max-width: 768px) {
  .history__list dd {
    width: 100%;
    padding-left: 2.4rem;
  }
}

/* ----------------------------------------
  製品紹介 ページ
---------------------------------------- */
#products .contents__wrapper {
  gap: 10rem;
}
#products .contents__posts {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  gap: 4.1666666667vw;
}
@media screen and (min-width: 1440px) {
  #products .contents__posts {
    gap: 6rem;
  }
}
#products .contents__post {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2rem;
  width: 57rem;
}
#products .contents__post:hover {
  opacity: 0.3 !important;
}
#products .contents__thumbnail {
  width: 100%;
  height: auto;
  aspect-ratio: 570/417;
}
#products .contents img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4/3 !important;
  -o-object-fit: contain;
     object-fit: contain;
}
#products .contents__ttl {
  font-size: 2.4rem;
  font-family: "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 500;
  line-height: 2;
}
#products .contents__lists {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  gap: 0.4rem;
}
#products .contents__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0 0.8rem 0.4rem;
  gap: 0.8rem;
}
#products .contents__list dt {
  width: 36.3636363636%;
  color: #666666;
  padding-left: 1.6rem;
  position: relative;
}
#products .contents__list dt::before {
  position: absolute;
  content: "";
  width: 8px;
  height: 1px;
  background: #666666;
  top: 14px;
  left: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
#products .contents__list dd {
  width: 59.2727272727%;
}
#products .contents__message {
  text-align: center;
  width: 100%;
}
#products .genre-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  gap: 4rem;
}
@media screen and (max-width: 550px) {
  #products .genre-nav {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3.2rem;
  }
}
@media screen and (max-width: 550px) {
  #products .genre-nav__link {
    width: 100%;
  }
}
#products .genre-nav__link a {
  padding: 0 3.2rem;
  border: 1px solid #666666;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 550px) {
  #products .genre-nav__link a {
    width: 100%;
    text-align: center;
    padding: 0.4rem 3.2rem;
  }
}
#products .genre-nav__link .is-active {
  background: #2f4a7d;
  color: #ffffff;
  border: none;
}

/* ----------------------------------------
  製品紹介記事 ページ
---------------------------------------- */
#product .contents__wrapper {
  gap: 10rem;
}
#product .contents__post {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4rem;
  padding-bottom: 4rem;
  max-width: 75rem;
  width: 100%;
}
#product .contents__thumbnail {
  max-width: 75rem;
  width: 100%;
  height: auto;
  max-height: 56.3rem;
  aspect-ratio: 4/3;
}
#product .contents__thumbnail img {
  -o-object-fit: contain;
     object-fit: contain;
}
#product .contents__ttl {
  font-size: 3.2rem;
  font-family: "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 500;
  line-height: 2;
}
#product .contents__lists {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  gap: 0.4rem;
}
#product .contents__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0 0.8rem 0.4rem;
  gap: 0.8rem;
}
#product .contents__list dt {
  width: 36.3636363636%;
  color: #666666;
  padding-left: 1.6rem;
  position: relative;
}
#product .contents__list dt::before {
  position: absolute;
  content: "";
  width: 8px;
  height: 1px;
  background: #666666;
  top: 14px;
  left: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
#product .contents__list dd {
  width: 59.2727272727%;
}
#product .contents .wp-block-image {
  max-width: 75rem;
  width: 75rem;
}
#product .contents .wp-block-image img {
  max-height: 56.3rem;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 768px) {
  #product .contents .wp-block-image {
    width: 100%;
  }
}
#product .contents__bottom {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  max-width: 90rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  #product .contents__bottom {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3.2rem;
  }
}
#product .contents__btn a {
  line-height: 2;
  color: #666666;
  font-weight: 500;
}
#product .btn {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  padding-top: 0;
}
@media screen and (max-width: 768px) {
  #product .btn {
    position: inherit;
    -webkit-transform: translate(0);
            transform: translate(0);
    top: inherit;
    left: inherit;
  }
}
#product .btn a {
  font-size: 1.6rem;
  line-height: 2;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#product .btn__back {
  width: 2.4rem;
  height: 2.4rem;
}

/* ----------------------------------------
  お知らせ一覧 ページ
---------------------------------------- */
#news .news__wrapper {
  gap: 10rem;
  max-width: 108rem;
}
#news .news__posts {
  gap: 1.6rem;
}
#news .news__post {
  border-bottom: none;
  padding: 1.6rem 0;
}

/* ----------------------------------------
  お知らせ詳細 ページ
---------------------------------------- */
#single .btn {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  padding-top: 0;
}
@media screen and (max-width: 768px) {
  #single .btn {
    position: inherit;
    -webkit-transform: translate(0);
            transform: translate(0);
    top: inherit;
    left: inherit;
  }
}
#single .btn a {
  font-size: 1.6rem;
  line-height: 2;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.single__wrapper {
  max-width: 108rem;
  gap: 10rem;
}
.single__post {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  gap: 1.6rem;
}
.single__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  gap: 0.8rem;
  padding-bottom: 3.2rem;
}
.single__time {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
}
.single__ttl {
  font-size: 3.2rem;
  font-family: "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 500;
  line-height: 2;
}
.single h2 {
  padding: 1.2rem 2rem;
  background: #2f4a7d;
  color: #ffffff;
  font-size: 2.4rem;
  font-weight: 700;
}
.single h3 {
  font-size: 2.4rem;
  font-weight: 500;
  padding: 0 2rem;
  border-left: 4px solid #2f4a7d;
}
.single h4 {
  font-weight: 500;
  font-size: 2rem;
}
.single .wp-block-image {
  max-width: 50rem;
}
.single__bottom {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  max-width: 90rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .single__bottom {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3.2rem;
  }
}
.single__btn a {
  line-height: 2;
  color: #666666;
  font-weight: 500;
}
.single__back {
  width: 2.4rem;
  height: 2.4rem;
}

/*--------------------------------- ↓未編集 */
/* ----------------------------------------
  お問い合わせページ
---------------------------------------- */
#contact {
  background: #f4f4f4;
}
#contact .contents {
  padding: 0;
}
#contact .contents__wrapper {
  max-width: 108rem;
}
#contact .contents__lead {
  text-align: center;
  padding: 4rem 0;
}
#contact .contents__container {
  padding: 4rem 0 8rem;
  gap: 4rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
}

.contact {
  background: #ffffff;
  padding: 10rem 0;
  gap: 6rem;
}
.contact .ttl {
  text-align: center;
}
.contact__form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  max-width: 90rem;
}
.contact input,
.contact textarea,
.contact select {
  width: 100%;
  border-radius: 0;
  outline: none;
  padding: 1.2rem 1.6rem;
  background-color: #ffffff;
  border: 1px solid #666666;
  font-size: 1.6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
  line-height: 1.75;
  color: #666666;
}
.contact input::-webkit-input-placeholder, .contact textarea::-webkit-input-placeholder, .contact select::-webkit-input-placeholder {
  font-size: 1.6rem;
  line-height: 1.75;
  color: #666666;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}
.contact input::-moz-placeholder, .contact textarea::-moz-placeholder, .contact select::-moz-placeholder {
  font-size: 1.6rem;
  line-height: 1.75;
  color: #666666;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}
.contact input:-ms-input-placeholder, .contact textarea:-ms-input-placeholder, .contact select:-ms-input-placeholder {
  font-size: 1.6rem;
  line-height: 1.75;
  color: #666666;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}
.contact input::-ms-input-placeholder, .contact textarea::-ms-input-placeholder, .contact select::-ms-input-placeholder {
  font-size: 1.6rem;
  line-height: 1.75;
  color: #666666;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}
.contact input::placeholder,
.contact textarea::placeholder,
.contact select::placeholder {
  font-size: 1.6rem;
  line-height: 1.75;
  color: #666666;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}
.contact textarea {
  height: 30rem;
}
.contact .wpcf7-form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  gap: 2rem;
}
.contact .wpcf7-list-item {
  margin: 0 !important;
}
.contact__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
}
.contact__head {
  padding: 1.2rem 0;
}
.contact__head p {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 2.4rem;
  line-height: 2;
  font-weight: 500;
}
.contact .radio-wrap .wpcf7-radio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.2rem 4rem;
}
.contact .radio-wrap .wpcf7-list-item label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
  font-weight: 500;
}
.contact .radio-wrap input {
  width: 2rem;
  height: 2rem;
}
.contact__accept {
  text-align: center;
  font-size: 1.2rem;
  color: #ffffff;
  line-height: 2;
  font-weight: 500;
  background: #e95050;
  padding: 0.4rem 2rem;
}
.contact__data {
  width: 100%;
}
.contact__check {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-top: 1.2rem;
}
.contact__check label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2rem;
}
.contact__check input[name=acceptance] {
  width: 2rem;
  height: 2rem;
}
.contact__check .checkbox-cl01 input {
  display: none;
}
.contact__submit-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
}
.contact__submit-wrap p {
  position: relative;
}
.contact input[type=submit] {
  color: #ffffff;
  padding: 1.6rem 6rem;
  border: none;
  background: #2f4a7d;
  font-weight: 500;
  font-size: 2rem;
}
.contact .wpcf7-spinner {
  display: none;
}

.privacy {
  width: 100%;
  height: 24rem;
  border: 1px solid #666666;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 1.2rem 2rem;
}
@media screen and (max-width: 768px) {
  .privacy {
    gap: 8px;
    padding: 20px;
    height: 400px;
  }
}
.privacy__container {
  overflow-y: scroll;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2.4rem;
}
.privacy__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4rem;
}
.privacy h3 {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
}
.privacy li {
  list-style-type: disc;
  margin-left: 20px;
}