@charset "UTF-8";

html {
  font-size: 50%;
}

@media print, screen and (min-width: 768px) {
  html {
    font-size: 56%;
  }
}

@media print, screen and (min-width: 1200px) {
  html {
    font-size: 62.5%;
  }
}

body {
  position: relative;
  font-size: 1.6rem;
  font-weight: 500;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif;
  color: #333;
  overflow-x: hidden;
  height: 100%;
  width: 100%;
}

.outside {
  position: relative;
  width: 95%;
  max-width: 1400px;
  margin: 0 auto;
}

.cover {
  position: relative;
  width: 95%;
  max-width: 1200px;
  margin: 0 auto;
}
.ceo_img li figure img {
  width: 100%;
  padding: 0 50px;
}
@media print, screen and (min-width: 768px) {
  .ceo_img li figure img {
    width: 65%;
  }
}

.ceo_img {
  display: flex;
}

.ceo_img .pc {
  display: none;
}

@media print, screen and (min-width: 768px) {
  .ceo_img .pc {
    display: block;
    padding: 150px 0 0 0;
  }
}

.ceo_img .sp {
  display: block;
  padding: 0;
  max-width: 600px;
  margin: 0 auto;
  width: 100%;
}

.ceo_img .sp img {
  display: flex;
  justify-content: center;
}

@media print, screen and (min-width: 768px) {
  .ceo_img .sp {
    display: none;
  }
}

.greeting-inner .ceo_message {
  display: flex;
  flex-direction: column;
}

@media print, screen and (min-width: 768px) {
  .greeting-inner .ceo_message {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
  }
}

@media print, screen and (min-width: 768px) {
  .greeting-inner .ceo_message {
    display: flex;
    max-width: 1200px;
    margin: 60px auto;
    width: 100%;
  }
}

.greeting-inner .ceo_message .sp figure {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}
@media print, screen and (min-width: 768px) {
  .greeting-inner .ceo_message .sp figure {
    display: none;
  }
}
.greeting-inner .ceo_message .pc figure {
  display: none;
}
.greeting-inner .ceo_message .pc figure img {
  max-width: none;
}
@media print, screen and (min-width: 768px) {
  .greeting-inner .ceo_message .pc figure {
    display: flex;
  }
}

.greeting-inner .ceo_message .pc {
  width: 100%;
}
.cover01 {
  padding-right: 20px;
  padding-left: 20px;
  text-align: justify;
}
@media print, screen and (min-width: 768px) {
  .cover01 {
    padding-left: 0;
    padding-right: 86px;
    text-align: justify;
  }
}
.ceo-name {
  padding-right: 20px;
  padding-left: 20px;
}
@media print, screen and (min-width: 768px) {
  .ceo-name {
    padding-right: 86px;
    padding-left: 0;
  }
}

.inner {
  position: relative;
  width: 95%;
  max-width: 1024px;
  margin: 0 auto;
}

.inside {
  position: relative;
  width: 95%;
  max-width: px;
  margin: 0 auto;
}

.contents-title01 {
  text-align: left;
  margin-bottom: 40px;
}

.contents-title01 h2 {
  font-size: 4rem;
  font-weight: bold;
  line-height: 1.2;
  color: #3c78c8;
}

.contents-title01 p {
  font-size: 1.8rem;
  font-weight: bold;
  color: #3c78c8;
}

.contents-title02 {
  text-align: left;
  margin-bottom: 40px;
}

.contents-title02 h2 {
  font-size: 4rem;
  font-weight: bold;
  line-height: 1.2;
  color: #fff;
}

.contents-title02 p {
  font-size: 1.8rem;
  font-weight: bold;
  color: #fff;
}

.a-button01 {
  color: #3c78c8;
  font-size: 2rem;
  font-weight: bold;
  display: inline-block;
  border-bottom: 2px solid #3c78c8;
  position: relative;
  padding-right: 40px;
}

a.a-button01:hover {
  opacity: 0.5;
}

a.a-button01::before {
  content: "";
  position: absolute;
  top: 18px;
  right: 0;
  width: 30px;
  height: 2px;
  background: #3c78c8;
}

a.a-button01::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 0;
  width: 12px;
  height: 2px;
  background: #3c78c8;
  transform: rotate(35deg);
}

.a-button02 {
  color: #fff;
  font-size: 2rem;
  font-weight: bold;
  display: inline-block;
  border-bottom: 2px solid #fff;
  position: relative;
  padding-right: 40px;
}

a.a-button02:hover {
  opacity: 0.5;
}

a.a-button02::before {
  content: "";
  position: absolute;
  top: 18px;
  right: 0;
  width: 30px;
  height: 2px;
  background: #fff;
}

a.a-button02::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 0;
  width: 12px;
  height: 2px;
  background: #fff;
  transform: rotate(35deg);
}

.contents_top {
  text-align: center;
  position: absolute;
  top: 58%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

.title01 {
  color: #fff;
  font-weight: bold;
}

.title02 {
  font-size: 3.2rem;
  color: #fff;
  font-weight: bold;
}

.title-block {
  text-align: center;
  margin-bottom: 40px;
}

.title-block h3 {
  font-size: 2.8rem;
  font-weight: bold;
}

h4.block-title {
  font-size: 3.2rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 40px;
}

h4.block-title02 {
  font-size: 3.2rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 40px;
  color: #fff;
}

@media print, screen and (min-width: 500px) {
  .contents-title01 h2 {
    font-size: 5.6rem;
  }

  .contents-title02 h2 {
    font-size: 5.6rem;
  }

  .title-block h3 {
    font-size: 3.2rem;
  }
}

@media print, screen and (min-width: 768px) {
  .contents-title01,
  .contents-title02 {
    margin-bottom: 80px;
  }

  .title-block {
    margin-bottom: 80px;
  }
}

a[href^="tel:"] {
  pointer-events: none !important;
  color: #fff !important;
}

@media screen and (max-width: 500px) {
  a[href^="tel:"] {
    pointer-events: auto !important;
    color: #fff !important;
  }
}

/*--------------------------------page-top-contentsここから---------------------------------*/

.page-top-contents {
  padding: 144px 0 64px 0;
}

.page-title h2 {
  color: #3c78c8;
  font-size: 4rem;
  font-weight: bold;
  line-height: 1.2;
}

.page-title h3 {
  color: #3c78c8;
  font-size: 1.8rem;
  font-weight: bold;
}

.bread {
  margin-bottom: 40px;
}

ul.breadcrumbs {
  display: flex;
}

ul.breadcrumbs li {
  margin: 0 12px 0 0;
  font-size: 1.4rem;
  font-weight: bold;
}

ul.breadcrumbs li a {
  color: #333;
  font-weight: bold;
  font-size: 1.4rem;
  border-bottom: solid 1px #fff;
}

ul.breadcrumbs li a:hover {
  border-bottom: solid 1px #333;
}

@media print, screen and (min-width: 550px) {
  .page-title h2 {
    font-size: 6.4rem;
  }

  .page-top-contents {
    padding: 160px 0 80px 0;
  }

  .bread {
    margin-bottom: 80px;
  }
}

/*--------------------------------page-top-contentsここまで---------------------------------*/

/*--------------------------------トップへ戻るボタンここから---------------------------------*/

.page-top {
  display: none;
  position: fixed;
  z-index: 10000;
  right: 40px;
  bottom: 20px;
  padding: 20px 10px;
  border-radius: 8px;
  background-color: #2465ae;
  transform: rotate(-90deg);
  color: #fff;
  cursor: pointer;
}

.page-top.active {
  display: block;
}

.page-top:hover {
  opacity: 0.5;
  transition: 0.3s;
}

.page-top figure img {
  width: 16px;
}

/*--------------------------------トップへ戻るボタンここまで---------------------------------*/

/*--------------------------------headerここから---------------------------------*/

header {
  background: rgba(255, 255, 255, 0.9);
  height: auto;
  position: fixed;
  width: 100%;
  z-index: 10000000;
}

header .header-inner h1 {
  max-width: 80px;
}

header .header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

header .header-inner .header-logo {
  width: 20%;
  margin-left: 80px;
}

header .header-inner nav {
  width: 80%;
}

header .header-inner h1 a:hover {
  opacity: 0.5;
}

.header-nav .header-nav-list {
  display: flex;
  justify-content: right;
}

.header-nav .header-nav-list li a {
  height: 80px;
  padding: 0px 20px;
  color: #1a3ea1;
  display: flex;
  align-items: center;
  font-size: calc(0.2vw + 1.2rem);
  position: relative;
  font-weight: bold;
}

.header-nav .header-nav-list li a:hover {
  color: #fff;
  background: #333;
  transition: 0.5s;
}

.header-nav .header-nav-list li:nth-of-type(6) a {
  background: #1a3ea1;
  color: #fff;
}

.header-nav .header-nav-list li:nth-of-type(6) a:hover {
  opacity: 0.5;
  transition: 0.5s;
}

.header-nav-list li ul.drop-menu {
  display: none;
  position: absolute;
  top: 100%;
  width: 240px;
  z-index: 99;
  border-top: none;
  border-left: none;
}

.header-nav-list li .drop-menu li {
  border-top: 1px solid #fff;
}

.header-nav-list li .drop-menu li:first-child {
  border-top: none;
}

.header-nav-list li .drop-menu li:hover a {
  background: #333 !important;
  opacity: 1 !important;
}

.header-nav .header-nav-list li:nth-of-type(1):hover ul.drop-menu,
.header-nav .header-nav-list li:nth-of-type(2):hover ul.drop-menu,
.header-nav .header-nav-list li:nth-of-type(3):hover ul.drop-menu,
.header-nav .header-nav-list li:nth-of-type(4):hover ul.drop-menu {
  display: block;
}

.header-nav-list li .drop-menu li a {
  font-size: 1.4rem;
  height: 40px;
  color: #fff;
  background: #1a3ea1 !important;
}

.menu {
  display: none;
}

@media print, screen and (max-width: 1024px) {
  header .header-inner {
    display: none;
  }

  .menu {
    display: block;
  }
}

/*--------------------------------ハンバーガーメニューここから---------------------------------*/
.menu {
  position: relative;
  z-index: 10;
  background: #fff;
  height: 64px;
}

#smt_menu_wrapper {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  color: #fff;
  text-align: center;
  transform: translateY(-100%);
  transition: all 0.2s;
  width: 100%;
  visibility: hidden;
  overflow-y: scroll;
  height: 100%;
}

#smt_menu_wrapper > ul {
  margin: 0 auto 0 0;
  padding: 40px 15%;
  width: 100%;
  height: auto;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
}

#smt_menu_wrapper > ul > li {
  list-style-type: none;
  padding: 0;
  width: 100%;
  color: #fff;
  font-weight: bold;
  text-align: left;
  margin: 20px 0;
}

#smt_menu_wrapper ul li.red a {
  color: #ffffff;
}

.cta_bg {
  width: 252px;
  height: 49px;
  text-align: center;
  line-height: 29px;
  margin: 5px 0 0 0;
  display: block;
  transition: all 0.3s ease;
}

.cta_bg:hover {
  color: #f5f5f5;
}

#smt_menu_wrapper ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

#smt_menu_wrapper ul li a {
  color: #fff;
  padding: 0;
  background: none;
  font-size: 2rem;
}

#smt_menu_wrapper ul li ul li a {
  margin-bottom: 5px;
  display: inline-block;
  font-size: 1.6rem;
}

.navToggle.active span:nth-child(1) {
  top: 18px;
  left: -1px;
  transform: rotate(-45deg);
  border-color: #fff;
}

.navToggle.active span:nth-child(2),
.navToggle.active span:nth-child(3) {
  top: 18px;
  transform: rotate(45deg);
  border-color: #fff;
}

.pc_none {
  display: block;
}

.navToggle {
  display: block;
  position: absolute;
  top: 16px;
  right: 20px;
  width: 40px;
  height: 33px;
  cursor: pointer;
  z-index: 10015;
  text-align: center;
  border-radius: 2px;
}

.navToggle span:nth-child(1) {
  top: 15px;
}

.navToggle span:nth-child(2) {
  top: 29px;
}

.navToggle span {
  display: block;
  position: absolute;
  width: 40px;
  border-top: solid 3px #333;
  transition: 0.3s;
  top: 1px;
}

.top_logo {
  margin-left: 20px;
}

#smt_menu_wrapper ul li a.title {
  margin-bottom: 8px;
  font-weight: bold;
  line-height: 1.5;
  display: inline-block;
}

#smt_menu_wrapper ul li a:hover,
#smt_menu_wrapper ul li ul li a:hover {
  color: #007777;
}

#smt_menu_wrapper ul li ul li a::before {
  content: "＞";
  margin-bottom: 2px;
  margin-right: 4px;
  color: #fff;
  font-weight: bold;
}

.product_all {
  margin-bottom: 5px;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 2.5;
  color: #fff;
}

#smt_menu_wrapper > ul > li {
  margin: 10px 0;
}

#smt_menu_wrapper ul li ul li a.smt_product {
  font-size: 2rem;
  display: inline-block;
}

.logo_button a {
  display: inline-block;
  margin-left: 20px;
}

.logo_button a figure img {
  max-width: 68px;
  width: 100%;
}

@media print, screen and (max-width: 1150px) {
  #smt_menu_wrapper.active {
    transform: translateY(0%);
    visibility: inherit;
    background-color: rgba(25, 25, 25, 0.7);
  }
}

/*--------------------------------ハンバーガーメニューここまで---------------------------------*/

/*--------------------------------headerここまで---------------------------------*/

/*--------------------------------footerここから---------------------------------*/

.footer-top {
  background-color: #293337;
  height: 100%;
}

.footer-contact-button {
  max-width: 690px;
  width: 95%;
  margin: 0 auto;
}

.footer-contact-button dl {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.footer-contact-button dl dt {
  width: 48%;
  text-align: center;
}

.footer-contact-button dl dd {
  width: 48%;
  text-align: center;
}

.footer-contact-button dl dd a p {
  color: #fff;
}

.footer-contact-button dl dt a p:first-child {
  padding-bottom: 16px;
  color: #fff;
}

.footer-contact-button dl dt a p:last-child {
  font-weight: bold;
  font-size: 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: #fff;
}

.footer-contact-button dl dt a p:last-child::before {
  content: "";
  display: inline-block;
  background: url(../img/footer-contact01.png) no-repeat center center / contain;
  width: 30px;
  height: 24px;
}

.footer-contact-button dl dt a,
.footer-contact-button dl dd a {
  padding: 16px 0;
  border: 1px solid #fff;
  height: 100%;
}

.footer-contact-button dl dd a:hover {
  opacity: 0.5;
}

.footer-contact-button dl dt a {
  pointer-events: none;
}

.footer-contact-button dl dd a p::after {
  background: url(../img/footer-contact02.png) no-repeat center center / contain;
  display: block;
  content: "";
  width: 30px;
  height: 24px;
  margin: 16px auto 0;
}

.footer-top a {
  color: #fff;
}

.footer-inner01 {
  padding: 40px 0 80px;
}

.footer-inner01 > p {
  color: #fff;
  display: grid;
  place-items: center;
  padding: 0 0 20px;
  width: 95%;
  margin: 0 auto;
}

.footer-inner02 > p {
  color: #fff;
  padding: 0 0 20px;
  display: grid;
  place-items: center;
  width: 95%;
  margin: 0 auto;
}

.footer-inner02 {
  padding-top: 80px;
}

.footer-media-button {
  max-width: 690px;
  width: 95%;
  margin: 0 auto;
}

.footer-media-button a {
  border: 1px solid #fff;
  padding: 40px 0;
  text-align: center;
  font-size: 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.footer-media-button a::before {
  display: inline-block;
  content: "";
  background: url(../img/footer-product-test.svg) no-repeat center center / contain;
  width: 40px;
  height: 30px;
}

.footer-media-button a:hover {
  opacity: 0.5;
}

.footer-bottom {
  padding: 80px 0;
  background: #293337;
}

.footer-bottom-inner01 {
  max-width: 1024px;
  width: 95%;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 80px;
}

.footer-bottom-inner01 a {
  display: inline-block;
}

.footer-bottom-inner01 a:hover {
  opacity: 0.5;
}

.footer-bottom-inner01 a figure img {
  width: 80px;
}

.footer-bottom-inner01 ul li h2 {
  color: #fff;
  font-weight: bold;
}

.footer-bottom-inner01 ul li p {
  color: #fff;
}

.footer_navi {
  display: flex;
  justify-content: space-between;
  max-width: 1400px;
  width: 95%;
  margin: 80px auto 0;
}

.footer_navi a {
  color: #fff;
  display: inline-block;
}

.footer_navi > li {
  text-align: center;
  width: 11%;
}

.footer_navi > li ul > li {
  line-height: 2;
  display: flex;
  align-items: center;
}

.font_free ul li a {
  font-size: 1.4rem;
  text-align: left;
}

.footer_navi li span.footer_border {
  display: block;
  width: 100%;
  border-bottom: 1px solid #fff;
  margin: 8px 0;
}

.footer_navi > li > a:hover,
.footer_navi a:hover {
  opacity: 0.5;
}

.footer_navi > li ul > li::before {
  content: "";
  background: #fff;
  width: 8px;
  height: 1px;
  margin-right: 2px;
}

.footer-navi-bottom {
  max-width: 1024px;
  width: 95%;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0 auto;
  gap: 46px;
}

.footer-navi-bottom li a {
  display: inline-block;
  color: #fff;
}

.footer-navi-bottom li a:hover {
  opacity: 0.5;
}

.footer-navi-bottom li:nth-of-type(n + 1):nth-of-type(-n + 2):after {
  content: "|";
  margin-left: 40px;
  color: #fff;
}

.copyright {
  background: #fff;
}

.copyright p {
  text-align: center;
  font-size: 1.4rem;
  font-weight: bold;
  color: #333;
  padding: 20px;
}

@media print, screen and (max-width: 1024px) {
  footer .footer-bottom-inner02 {
    display: none;
  }

  .footer-bottom {
    padding: 40px 0;
    background: #333;
  }

  .footer-bottom-inner01 {
    gap: 40px;
  }

  .copyright p {
    padding: 20px 0;
  }
}

@media print, screen and (max-width: 500px) {
  .footer-bottom-inner01 {
    flex-direction: column;
  }
}

@media print, screen and (max-width: 430px) {
  .footer-contact-button dl dt a {
    pointer-events: auto;
  }

  .footer-contact-button dl dt a:hover {
    opacity: 0.5;
  }

  .footer-contact-button dl {
    gap: 20px;
  }

  .footer-contact-button dl dt,
  .footer-contact-button dl dd {
    width: 100%;
  }

  .footer-inner01 {
    padding: 0px 0 40px;
  }

  .footer-inner02 {
    padding: 40px 0;
  }

  .footer-media-button a {
    padding: 32px 0;
  }
}

/*--------------------------------footerここまで---------------------------------*/

/* ---------------------------------topここから--------------------------------- */

#top-news,
#top-company,
#top-effort,
#top-product {
  margin-bottom: 64px;
}

.swiper02 {
  overflow: hidden;
}

.sample-slider {
  width: 100%;
}
.sample-slider img {
  width: 100%;
}

.sample-slider .swiper-wrapper {
  transition-timing-function: linear;
}

#top .swiper-wrapper {
  position: relative;
}

#top .swiper-wrapper .swiper-slide img.pc-img {
  display: none;
}

#top .swiper-wrapper .swiper-slide img.sp-img {
  display: block;
}

#top .swiper-wrapper .swiper-slide img {
  height: 50vh;
  width: 100%;
  object-fit: cover;
  object-position: left;
}

#top .top-swiper-contents {
  position: absolute;
  top: 30%;
  left: 8%;
}

#top .top-swiper-contents p {
  font-size: 2.4rem;
  font-weight: bold;
  font-family: "Yu Mincho", "YuMincho", serif;
  color: #fff;
}

#top-news {
  position: relative;
  z-index: 1000;
  margin-top: -2px;
}

#top-news .top-news-inner ul {
  display: flex;
  flex-direction: column;
  width: 100%;
}

#top-news .top-news-inner ul li:first-child {
  width: 100%;
}

#top-news .top-news-inner ul li:last-child {
  width: 95%;
  display: flex;
  flex-direction: column;
  align-items: baseline;
  margin: 10px 20px;
  background: #fff;
}

#top-news .top-news-inner ul li:last-child p {
  font-weight: bold;
}

#top-news .top-news-inner ul li:last-child a:nth-of-type(1) {
  margin: 10px 0;
}

#top-news .top-news-inner ul li:last-child a:nth-of-type(1):hover {
  opacity: 0.5;
}

#top-news .top-news-inner ul li h2 {
  font-size: 3.2rem;
  font-weight: bold;
  color: #fff;
  background: #1a3ea1;
  padding-left: 20px;
  text-align: left;
}

#top-company {
  position: relative;
}

.top-company-block ul {
  display: flex;
  margin-top: 40px;
}

.top-company-block ul li {
  width: 100%;
}

.top-company-block ul li h3 {
  font-size: 2rem;
  font-weight: bold;
}

.top-company-block ul li p.top-company-text {
  padding: 20px 0;
  font-size: 1.6rem;
}

.top-company-inner figure.top-company-figure {
  position: relative;
}

.top-company-inner figure.top-company-figure img {
  width: 95%;
  margin: 0 auto;
}

.br-none01 {
  display: none;
}

.top-effort-top {
  background: #1a3ea1;
  padding: 64px 0;
}

.top-effort-top ul.cover {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4%;
}

.top-effort-top ul.cover li {
  width: 100%;
  display: contents;
}

.top-effort-top ul.cover li div.contents-title01 {
  order: 1;
}

.top-effort-top ul.cover li h3 {
  font-size: 2.4rem;
  font-weight: bold;
  color: #fff;
  width: 100%;
  order: 2;
}

.top-effort-top ul.cover li h4 {
  font-size: 2.4rem;
  font-weight: bold;
  font-family: "Yu Mincho", "YuMincho", serif;
  color: #fff;
  width: 100%;
  order: 3;
}

.top-effort-top ul.cover li > p {
  color: #fff;
  padding: 20px 0 40px;
  order: 4;
}

.top-effort-top ul.cover li a {
  order: 5;
}

.d-demo__wrap {
  display: flex;
  overflow: hidden;
}

.d-demo__item img {
  width: 100%;
}

.d-demo__item {
  width: calc(100vw / 2);
}

.d-demo__list {
  display: flex;
  list-style: none;
}
.d-demo__list--left {
  animation: infinity-scroll-left 50s infinite linear 0.5s both;
}

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

.top-product-text {
  max-width: 800px;
  width: 95%;
  margin: 0 auto;
}

.top-product-inner dl {
  display: flex;
  flex-wrap: wrap;
  gap: 4%;
  margin-bottom: 40px;
}

.top-product-inner dl dt {
  width: 100%;
  margin-bottom: 40px;
}

.top-product-inner dl dd {
  width: 100%;
}

.top-product-inner .top-product-contents {
  display: flex;
  flex-flow: row wrap;
}

.top-product-inner .top-product-contents a {
  width: calc(100% / 2);
  position: relative;
}

.top-product-inner .top-product-contents a:hover {
  opacity: 0.5;
}

.top-product-inner .top-product-contents a figure {
  position: relative;
  z-index: -100;
}

.top-product-inner .top-product-contents a .top-product-contents-text h3 {
  font-weight: bold;
  color: #fff;
  padding: 8px 0;
  white-space: nowrap;
}

.top-product-inner .top-product-contents a .top-product-contents-text p:nth-child(1) {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1;
  color: #fff;
}

.top-product-inner .top-product-contents a .top-product-contents-text p:nth-child(3) {
  color: #fff;
  font-size: 14px;
  background: #3c78c8;
  border-radius: 30px;
  width: 24px;
  display: inline-block;
}

.top-product-contents-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
}

#top-recruit {
  background: url(../img/top/top-recruit.jpg) no-repeat center center / cover;
  padding: 64px 0;
}

.top-recruit-contents {
  display: grid;
  place-items: center;
}

.top-recruit-contents h3 {
  font-size: 2.4rem;
  font-weight: bold;
  color: #3c78c8;
}

.top-recruit-contents p {
  color: #fff;
  margin: 40px 0;
}

#top-equipment {
  background: #1a3ea1;
  overflow: hidden;
}

.top-equipment-contents h3 {
  color: #fff;
  font-size: 2.4rem;
  font-weight: bold;
}

.top-equipment-contents p {
  color: #fff;
  padding: 40px 0;
}

.top-equipment-inner ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: column-reverse;
  gap: 2%;
}

.top-equipment-inner ul li:first-child {
  width: 100%;
  padding-bottom: 64px;
  padding-top: 0;
}

.top-equipment-inner ul li:last-child {
  margin-right: calc(50% - 50vw);
  padding-top: 64px;
  padding-bottom: 40px;
}

.top-equipment-inner ul li figure img {
  width: 80vw;
}

@media print, screen and (min-width: 430px) {
  .br-none01 {
    display: block;
  }

  .top-company-block ul li p.top-company-text {
    padding: 40px 0;
  }

  .top-company-block ul li h3 {
    font-size: 2.4rem;
  }

  .top-recruit-contents h3 {
    font-size: 3.2rem;
  }
}

@media print, screen and (min-width: 550px) {
  .d-demo__item {
    width: calc(100vw / 3);
  }

  .top-product-inner .top-product-contents a {
    width: calc(100% / 3);
  }

  #top .swiper-wrapper .swiper-slide img.pc-img {
    display: block;
  }

  #top .swiper-wrapper .swiper-slide img.sp-img {
    display: none;
  }

  #top .swiper-wrapper .swiper-slide img {
    width: 100vw;
    height: auto;
  }

  #top .top-swiper-contents p {
    font-size: 3.2rem;
  }
}

@media print, screen and (min-width: 768px) {
  #top-news,
  #top-company,
  #top-effort,
  #top-product {
    margin-bottom: 120px;
  }

  #top .top-swiper-contents p {
    font-size: 4rem;
  }

  .top-company-inner figure.top-company-figure {
    position: absolute;
    z-index: -100;
    bottom: -20px;
    right: 0;
  }

  .top-company-inner figure.top-company-figure img {
    width: 45vw;
  }

  .top-company-block ul li {
    width: 54%;
  }

  .top-company-block ul {
    margin-top: 0;
  }

  .top-effort-top {
    padding: 120px 0;
  }

  .top-effort-top ul.cover li:first-child {
    width: 30%;
  }

  .top-effort-top ul.cover li:last-child {
    width: 66%;
  }

  .top-effort-top ul.cover li {
    display: block;
  }

  .top-effort-top ul.cover li > p {
    padding-top: 40px;
  }

  .top-effort-top ul.cover li h3,
  .top-effort-top ul.cover li h4 {
    font-size: 3.2rem;
  }

  .d-demo__item {
    width: calc(100vw / 4);
  }

  .top-product-inner dl {
    align-items: center;
    justify-content: center;
  }

  .top-product-inner dl dt {
    width: 60%;
    margin-bottom: 0;
  }

  .top-product-inner dl dd {
    width: 36%;
  }

  .top-product-inner .top-product-contents a {
    width: calc(100% / 4);
  }

  #top-recruit {
    padding: 120px 0;
  }

  .top-equipment-inner ul {
    flex-direction: row;
  }

  .top-equipment-inner ul li:first-child {
    padding: 120px 0;
    width: 55%;
  }

  .top-equipment-inner ul li:last-child {
    margin-right: calc(50% - 50vw);
    padding-top: 0;
    padding-bottom: 0;
  }

  .top-equipment-inner ul li figure img {
    width: 50vw;
  }
}

@media print, screen and (min-width: 1024px) {
  #top-news .top-news-inner ul li h2 {
    padding: 8px 80px 8px 0;
    text-align: right;
  }

  #top-news .top-news-inner ul {
    flex-direction: row;
  }
  #top-news .top-news-inner ul li:first-child {
    width: 40%;
  }

  #top-news .top-news-inner ul li:last-child {
    width: 60%;
    align-items: center;
    flex-direction: row;
    margin: 0;
  }

  #top-news .top-news-inner ul li:last-child p {
    margin-left: 20px;
  }

  #top-news .top-news-inner ul li:last-child a:nth-of-type(1) {
    margin: 0 20px;
  }

  .d-demo__item {
    width: calc(100vw / 5);
  }

  #top .top-swiper-contents p {
    font-size: 5.6rem;
  }
}

@media print, screen and (min-width: 1200px) {
  #top-news .top-news-inner ul li:last-child p {
    margin-left: 40px;
  }

  #top-news .top-news-inner ul li:last-child a:nth-of-type(1) {
    margin: 0 40px;
  }
}

/* ---------------------------------topここまで--------------------------------- */

/* ---------------------------------privacyここから--------------------------------- */

#privacy-contents {
  margin-bottom: 64px;
}

.privacy-contents-inner > p {
  font-weight: bold;
  border-bottom: 1px solid #333;
  padding-bottom: 40px;
  margin-bottom: 40px;
  text-align: left;
}

.privacy-contents-text p {
  margin-bottom: 20px;
}

.privacy-contents-text p:last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 430px) {
  .privacy-contents-inner > p {
    text-align: center;
  }
}

@media print, screen and (min-width: 500px) {
}

@media print, screen and (min-width: 768px) {
  #privacy-contents {
    margin-bottom: 120px;
  }
}

@media print, screen and (min-width: 1024px) {
}

@media print, screen and (min-width: 1200px) {
}

/* ---------------------------------privacyここまで--------------------------------- */

/* ---------------------------------newsここから--------------------------------- */

#news-contents,
#news-detail-contents {
  margin-bottom: 64px;
}

.news_link {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 40px;
  gap: 10px 1%;
  list-style-type: none;
}

.news_link li {
  background: #78909c;
  color: #fff;
  padding: 8px 24px;
  cursor: pointer;
  text-align: center;
  line-height: 1;
  border-radius: 30px;
  width: 49%;
}

.news_link li.active,
.news_link li:hover {
  background: #1a3ea1;
  color: #fff;
  font-weight: bold;
}

.news-content {
  scroll-margin-top: 80px;
}

.news-content:last-child {
  margin-bottom: 0;
  border-bottom: 1px solid #1a1a1a;
}

.news-content a {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  border-top: 1px solid #1a1a1a;

  padding: 16px 0;
}

.news-content:not(:last-child) {
  margin-bottom: 0;
}

.tags {
  background: #999999;
  min-width: 80px;
  font-size: 1.4rem;
  text-align: center;
  color: #fff;
}

.news-content a:hover {
  opacity: 0.5;
}

.news-r {
  width: 100%;
}

.news-detail-contents-inner p a {
  display: inline-block;
  color: #1a3ea1;
  font-weight: bold;
}

.news-detail-contents-inner p a:hover {
  opacity: 0.5;
}

.news-detail-contents-inner ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px 4%;
  margin-bottom: 20px;
}

.news-detail-contents-inner ul li img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 4/2.5;
  border: 1px solid #1a1a1a;
}

.news-detail-contents-inner ul li {
  width: 100%;
}

.news-detail-contents-inner p.news-detail-url {
  margin-bottom: 20px;
}

.news-detail-contents-inner .renewal {
  margin: 3rem;
}

.news-detail-contents-inner dl {
  display: flex;
  flex-wrap: wrap;
}

.news-detail-contents-inner dt {
  min-width: 300px;
}

.news-detail-contents-inner dd {
  min-width: 300px;
  margin-left: 2rem;
}

.news-detail-contents-inner dd p {
  display: inline;
  color: blue;
  border-bottom: 1px solid blue;
}

.news-detail-contents-inner dd p:hover {
  display: inline;
  color: rgb(185, 185, 255);
  border-bottom: 1px solid rgb(185, 185, 255);
}

.news-detail-contents-inner p.news-detail-pdf {
  margin-bottom: 20px;
}

.news-detail-contents-inner p.news-detail-pdf a {
  vertical-align: middle;
}

.news-detail-contents-inner p.news-detail-pdf a img {
  width: 30px;
}

.news-detail-contents-inner .news-detail-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 2%;
  margin-bottom: 40px;
}

.news-detail-contents-inner .news-detail-title time {
  font-weight: bold;
}

.news-detail-contents-inner .news-detail-title span {
  color: #fff;
  background: #999999;
  padding: 2px 24px;
}

.news-detail-contents-inner .news-detail-title h4 {
  font-size: 1.8rem;
  font-weight: bold;
}

@media print, screen and (min-width: 430px) {
  .news-r {
    width: auto;
  }

  .news-content a {
    flex-wrap: nowrap;
  }

  .news_link li {
    width: auto;
  }

  .news-detail-contents-inner .news-detail-title h4 {
    font-size: 2.4rem;
  }
}

@media print, screen and (min-width: 500px) {
  .news-detail-contents-inner ul li {
    width: 48%;
  }
}

@media print, screen and (min-width: 768px) {
  #news-contents,
  #news-detail-contents {
    margin-bottom: 120px;
  }

  .news-detail-contents-inner .news-detail-title {
    flex-wrap: nowrap;
  }

  .news-detail-contents-inner .renewal {
    margin: 3rem;
  }

  .news-detail-contents-inner .renewal p {
    margin-bottom: 2rem;
  }

  .news-detail-contents-inner dl {
    display: flex;
  }

  .news-detail-contents-inner dt {
    min-width: 300px;
  }

  .news-detail-contents-inner dd {
    min-width: 300px;
  }
}

@media print, screen and (min-width: 1024px) {
}

@media print, screen and (min-width: 1200px) {
}

/* ---------------------------------newsここまで--------------------------------- */

/* ---------------------------------companyここから--------------------------------- */

#greeting,
#philosophy,
#quality,
#environment,
#profile,
#access,
#history {
  margin-bottom: 64px;
  scroll-margin-top: 100px;
}

.greeting-inner-contents {
  background: url(../img/company/ceo-background.jpg) no-repeat center center / cover;
  margin-bottom: 20px;
}

.greeting-inner-contents ul {
  display: flex;
  justify-content: space-around;
  align-items: center;
  flex-direction: column;
  padding-top: 40px;
  row-gap: 40px;
}

.greeting-inner-contents ul li:last-child {
  margin-bottom: 0px;
}

@media print, screen and (min-width: 768px) {
  .greeting-inner-contents ul li:last-child {
    margin-bottom: 40px;
  }
}

.br-none01 {
  display: none;
}

.greeting-inner-contents ul li h4 {
  line-height: 1;
  text-align: left;
}

.greeting-inner-contents ul li p.main-title {
  font-size: 2.4rem;
  font-weight: bold;
  font-family: "Yu Mincho", "YuMincho", serif;
  border-bottom: 1px solid #1a1a1a;
  display: inline;
}

.greeting-inner-contents ul li p.ceo-name {
  margin-top: 40px;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-weight: bold;
  font-size: 1.6rem;
  text-align: right;
}

.greeting-inner p.ceo-name {
  /* width: 95%;
  max-width: 1200px;
  margin: 0 auto; */
  text-align: right;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-weight: bold;
  font-size: 1.6rem;
  margin-top: 20px;
}

.greeting-inner p.ceo-name span {
  font-size: 2.8rem;
  font-weight: bold;
}

.philosophy-inner ul {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  row-gap: 20px;
}

.philosophy-inner ul li span {
  font-size: 2rem;
  padding-right: 4%;
}

.philosophy-inner ul li {
  display: flex;
  width: 100%;
  align-items: baseline;
  padding: 10px 0;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}

.quality-inner > ul {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
}

.quality-inner > ul > li {
  width: 100%;
}

.quality-inner ul li ul li {
  display: flex;
  align-items: baseline;
  padding: 10px 0;
  border-top: 1px solid #ccc;
}

.quality-inner > ul > li > p:nth-of-type(1) {
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 10px;
}

.quality-inner > ul > li > p:nth-of-type(2) {
  margin-bottom: 20px;
}

.quality-inner ul li ul li:last-child {
  border-bottom: 1px solid #ccc;
}

.quality-inner ul li span {
  font-size: 2rem;
  padding-right: 4%;
}

.quality-inner .p {
  padding-top: 40px;
  text-align: right;
}
.quality-inner .p p {
  text-align: right;
}
.quality-inner .p .bold {
  text-align: right;
  font-weight: bold;
  font-size: 2rem;
  padding-bottom: 20px;
}
.quality-inner .p .p2 {
  margin: 0 auto;
}

#profile .profile-inner ul {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
}

#profile .profile-inner ul:last-child {
  margin-bottom: 0px;
}

#profile .profile-inner ul li:first-child {
  width: 100%;
  border-bottom: 1px solid #1a3ea1;
  padding-bottom: 8px;
  margin-bottom: 8px;
  font-weight: bold;
}

#profile .profile-inner ul li:last-child {
  width: 100%;
  border-bottom: 1px solid #ccc;
  padding-bottom: 8px;
}

.access-contents {
  margin-bottom: 40px;
}

.history-inner dl {
  display: flex;
  flex-flow: column wrap;
  width: 100%;
}

.history-inner dt {
  flex-basis: 100%;
  padding: 10px;
  border-right: 1px solid #ccc;
  border-top: 1px solid #ccc;
  border-left: 1px solid #ccc;
  text-align: center;
  font-weight: bold;
  color: #1a1a1a;
}

.history-inner dd {
  flex-basis: 100%;
  padding: 10px;
  background-color: #fff;
  border-top: 1px solid #ccc;
  border-right: 1px solid #ccc;
  line-height: 2;
  color: #1a1a1a;
}

.history-inner dd:nth-last-of-type(1) {
  border-bottom: 1px solid #ccc;
}

.history-inner dd {
  border-left: 1px solid #ccc;
}

div.access-contents:last-child {
  margin-bottom: 0;
}

.access-contents p {
  margin-bottom: 10px;
}

.access-contents p:first-child {
  font-size: 2.4rem;
  font-weight: bold;
}

.access-contents ul {
  display: flex;
  justify-content: space-between;
  flex-flow: row wrap;
  flex-direction: column-reverse;
  row-gap: 20px;
}

.access-contents ul li {
  width: 100%;
}

.access-contents ul li iframe {
  max-width: 580px;
  width: 100%;
  height: 240px;
}

@media print, screen and (min-width: 430px) {
  .greeting-inner-contents ul li p.main-title {
    font-size: 3.2rem;
  }
}

@media print, screen and (min-width: 500px) {
  #profile .profile-inner ul {
    flex-direction: row;
    margin-bottom: 16px;
  }

  #profile .profile-inner ul li:first-child {
    width: 30%;
    padding-left: 8px;
    padding-bottom: 16px;
    margin-bottom: 0px;
    font-weight: normal;
    font-weight: bold;
  }

  #profile .profile-inner ul li:last-child {
    width: 70%;
    padding-left: 8px;
    padding-bottom: 16px;
    margin-bottom: 0px;
  }

  .access-contents ul li {
    width: calc(100% / 2 - 20px);
  }

  .access-contents ul li iframe {
    max-height: 320px;
    height: 100%;
  }

  .access-contents ul {
    flex-direction: initial;
  }
}

@media print, screen and (min-width: 768px) {
  #greeting,
  #philosophy,
  #quality,
  #profile,
  #access,
  #history {
    margin-bottom: 120px;
  }

  .philosophy-inner ul li {
    width: calc(100% / 2 - 20px);
  }

  .quality-inner > ul > li {
    width: calc(100% / 2 - 20px);
  }

  .access-contents {
    margin-bottom: 80px;
  }

  .history-inner dl {
    flex-direction: row;
  }

  .history-inner dd {
    border-left: none;
  }

  .history-inner dd:last-child,
  .history-inner dt:nth-last-of-type(1) {
    border-bottom: 1px solid #ccc;
  }

  .greeting-inner-contents ul {
    flex-direction: row;
    row-gap: 40px;
  }

  .greeting-inner-contents ul li:last-child {
    margin-bottom: 0;
  }

  .br-none01 {
    display: block;
  }

  .greeting-inner-contents ul li p.main-title {
    font-size: 4.6rem;
  }

  .greeting-inner-contents ul {
    padding-top: 100px;
    padding-bottom: 60px;
  }

  .history-inner dt {
    flex-basis: 18%;
  }

  .history-inner dd {
    flex-basis: 82%;
  }
}

@media print, screen and (min-width: 1024px) {
}

@media print, screen and (min-width: 1200px) {
}

/* ---------------------------------companyここまで--------------------------------- */

/* ---------------------------------effortここから--------------------------------- */

#environment,
#business {
  margin-bottom: 64px;
  scroll-margin-top: 100px;
}

.environment-inner > ul {
  display: flex;
  justify-content: space-between;
  flex-flow: row wrap;
  align-items: center;
  row-gap: 40px;
  flex-direction: column-reverse;
}

.environment-inner > ul > li {
  width: 100%;
}

.environment-inner > ul > li > figure {
  display: table;
  margin: 0 auto;
}

.environment-inner > ul li h4 {
  text-align: left;
}

.environment-inner > ul li p.environment-title {
  font-size: 2.4rem;
  font-weight: bold;
  color: #3c78c8;
}

.environment-inner ul li p.environment-text {
  margin: 20px 0;
}

.environment-inner > ul > li > ul > li {
  padding: 10px;
  border-top: 1px solid #ccc;
}
.environment-inner > ul > li > ul .flex {
  display: flex;
}
.environment-inner > ul > li > ul > li:last-child {
  border-bottom: 1px solid #ccc;
}

.environment-inner > ul > li > ul > li ul {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
}

.environment-inner > ul > li > ul > li ul li {
  width: 100%;
  list-style-type: none;
  counter-increment: cnt;
  margin-left: 1.6rem;
  text-indent: -1.6rem;
}

.environment-inner > ul > li > ul > li ul li::before {
  content: "(" counter(cnt) ") ";
}

.environment-inner > ul > li .p2 {
  display: flex;
  justify-content: right;
  padding-top: 20px;
  text-align: right;
}

.business-contents ul {
  display: flex;
  justify-content: space-between;
  flex-flow: column-reverse wrap;
  align-items: center;
  margin-bottom: 40px;
  row-gap: 40px;
}

.business-contents ul li {
  width: 100%;
}

.business-contents ul li:last-child figure {
  margin-bottom: 20px;
}

.business-contents > figure img {
  height: 25vh;
  object-fit: cover;
}

.business-contents-explanation {
  background: #1a3ea1;
  padding: 20px;
}

.business-contents-explanation p:first-child {
  color: #fff;
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 20px;
}

.business-contents-explanation p:last-child {
  color: #fff;
}

.business-contents ul li:last-child p {
  font-size: 2.4rem;
  font-weight: bold;
}

.business-contents ul li:last-child p span {
  font-weight: bold;
  display: inline;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  background: #1a3ea1;
  color: #fff;
  padding: 8px;
  line-height: 2.2;
}

.business-contents {
  margin-bottom: 80px;
}

.business-contents:last-child {
  margin-bottom: 0;
}

.business-contents-img {
  display: flex;
  justify-content: space-between;
  flex-flow: row wrap;
  row-gap: 20px;
}

.business-contents-img figure {
  width: 100%;
}

@media print, screen and (min-width: 430px) {
}

@media print, screen and (min-width: 500px) {
  .business-contents ul li:last-child p {
    font-size: 3.2rem;
  }

  .business-contents > figure img {
    height: auto;
  }

  .business-contents {
    margin-bottom: 120px;
  }

  .business-contents-img figure {
    width: calc(100% / 2 - 20px);
  }
}

@media print, screen and (min-width: 768px) {
  #environment,
  #business {
    margin-bottom: 120px;
  }

  .business-contents ul li {
    width: calc(100% / 2 - 20px);
  }

  .business-contents ul {
    flex-direction: row;
  }
}

@media print, screen and (min-width: 1024px) {
  .environment-inner > ul > li {
    width: calc(100% / 2 - 20px);
  }

  .environment-inner > ul > li > ul > li ul li {
    width: calc(100% / 2 - 20px);
  }

  .environment-inner > ul {
    flex-direction: row;
  }
}

@media print, screen and (min-width: 1200px) {
}

/* ---------------------------------effortここまで--------------------------------- */

/* ---------------------------------recruitここから--------------------------------- */

.slide-img {
  width: 100%;
}

.slide-img img {
  height: 50vh;
  object-fit: cover;
  object-position: center;
}

#recruit-mv .swiper-container {
  position: relative;
}

#recruit-mv .swiper-container .swiper-wrapper {
  overflow: hidden;
}

.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img {
  animation: zoomUp 10s linear 0s 1 normal both;
}

#recruit-mv .swiper-contents {
  position: absolute;
  bottom: 0;
  z-index: 1000;
}

#recruit-mv .swiper-contents h2 {
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 9vw;
  font-weight: 400;
  line-height: 1;
  width: 100vw;
}

#recruit-mv .swiper-contents h3 {
  color: #1a3ea1;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 7.5vw;
  font-weight: 400;
  line-height: 1;
  margin-bottom: -10px;
}

@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}

#recruit-message {
  background: #1a3ea1;
  padding: 64px 0;
}

.recruit-message-inner p {
  display: flex;

  color: #fff;
  align-items: center;
}

.recruit-message-inner img.pc {
  display: none;
}

.recruit-message-inner img.sp {
  margin: 0 auto;
  margin-bottom: 40px;
}

.recruit-message-inner a {
  display: table;
  margin: 0 auto;
}

.recruit-ceo-message {
  display: block;
  padding-bottom: 40px;
}

#recruit-voice {
  background: #f2f2f2;
  padding: 64px 0;
}

.recruit-voice-inner h4 {
  margin-bottom: 70px;
}

.recruit-voice-inner ul {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  row-gap: 80px;
  margin-bottom: 40px;
}

.recruit-voice-inner ul li {
  width: 100%;
}

.recruit-voice-inner ul li a:hover {
  opacity: 0.5;
}

.recruit-voice-inner ul li figure {
  position: relative;
}

.recruit-voice-inner ul li figure figcaption {
  color: #3c78c8;
  font-size: 6.4rem;
  font-weight: bold;
  line-height: 1;
  position: absolute;
  top: -30px;
  left: 20px;
}

.recruit-voice-inner ul li p.recruit-name {
  font-size: 1.8rem;
  font-weight: bold;
  text-align: center;
  padding: 10px 0;
}

.recruit-voice-inner ul li span {
  display: block;
  text-align: center;
  padding-bottom: 10px;
  border-bottom: 1px solid #3c78c8;
  margin-bottom: 10px;
}

.recruit-voice-inner > a {
  display: table;
  margin: 0 auto;
}

#recruit-sub {
  padding: 64px 0;
}

.recruit-sub-inner ul {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  row-gap: 20px;
}

.recruit-sub-inner ul li a:hover {
  opacity: 0.5;
}

.recruit-sub-inner ul li figure {
  position: relative;
}

.recruit-sub-inner ul li figure figcaption {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

.recruit-sub-inner ul li figure figcaption p {
  font-size: 2.4rem;
  font-weight: bold;
  color: #fff;
}

.recruit-sub-inner ul li figure figcaption span {
  font-size: 1.6rem;
  font-weight: bold;
  color: #fff;
}

@media print, screen and (min-width: 430px) {
  .recruit-voice-inner ul li {
    width: calc(100% / 2 - 2%);
  }

  .recruit-sub-inner ul li {
    width: calc(100% / 2 - 2%);
  }
}

@media print, screen and (min-width: 500px) {
  .recruit-sub-inner ul li figure figcaption p {
    font-size: 3.2rem;
  }

  .slide-img img {
    width: 100%;
    height: auto;
  }
}

@media print, screen and (min-width: 768px) {
  #recruit-voice,
  #recruit-sub,
  #recruit-message {
    padding: 120px 0;
  }

  .recruit-voice-inner ul li {
    width: calc(100% / 3 - 2%);
  }
  .recruit-message-inner img.sp {
    display: none;
  }

  .recruit-message-inner img.pc {
    display: block;
    padding-bottom: 40px;
  }

  .recruit-ceo-message {
    display: flex;
    padding-bottom: 40px;
    gap: 5rem;
  }
}

@media print, screen and (min-width: 1024px) {
}

@media print, screen and (min-width: 1200px) {
}

/* ---------------------------------recruitここまで--------------------------------- */

/* ---------------------------------voiceここから--------------------------------- */

#voice-contents01,
#voice-contents02,
#voice-contents03,
#voice-contents04 {
  scroll-margin-top: 100px;
}

#voice-top,
.voice-contents {
  margin-bottom: 64px;
}

.voice-top-inner ul {
  display: flex;
  justify-content: space-between;
  flex-flow: row wrap;
  width: 100%;
  row-gap: 40px;
}

.voice-top-inner ul li {
  width: calc(100% / 2 - 20px);
}

.voice-top-inner ul li a:hover {
  opacity: 0.5;
}

.voice-top-inner ul li a figure {
  position: relative;
}

.voice-top-inner ul li a figure img {
  width: 100%;
}

.voice-top-inner ul li a figure figcaption {
  position: absolute;
  top: 10px;
  left: 10px;
  color: #fff;
  background: #3c78c8;
  padding: 10px 20px;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1;
}

.voice-top-inner ul li a p {
  font-size: 1.8rem;
  font-weight: bold;
  padding: 10px 0;
  text-align: center;
}

.voice-top-inner ul li a span {
  display: block;
  text-align: center;
  padding-bottom: 10px;
  border-bottom: 1px solid #3c78c8;
}

.voice-contents-top figure {
  position: relative;
}

.voice-contents-top figure figcaption {
  position: absolute;
  bottom: 0;
  left: 20px;
}

.voice-contents-top figure figcaption span {
  font-family: "Yu Mincho", "YuMincho", serif;
  display: block;
  color: #3d5699;
  font-size: 10rem;
  line-height: 1;
  margin-bottom: -40px;
}

.voice-contents-top figure figcaption p {
  font-family: "Yu Mincho", "YuMincho", serif;
  color: #fff;
  font-size: 2.4rem;
}

.voice-contents-top > p {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 20px 20px 40px;
}

.voice-contents-top > p span:first-child {
  font-size: 3rem;
  padding-right: 20px;
}

.voice-contents-top > p span:last-child {
  font-size: 1.8rem;
}

.voice-contents-bottom ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  flex-direction: column-reverse;
  row-gap: 20px;
  column-gap: 20px;
  width: 100%;
  margin-bottom: 80px;
}

.voice-contents-bottom ul li figure {
  display: table;
  margin: 0 auto;
}

.voice-contents-bottom ul:last-child {
  margin-bottom: 0;
}

.voice-contents-bottom ul li {
  width: 100%;
}

.voice-contents-bottom ul li div {
  margin-bottom: 40px;
}

.voice-contents-bottom ul li div:last-child {
  margin-bottom: 0;
}

.voice-contents-bottom ul li h4 {
  margin-bottom: 10px;
  font-size: 2rem;
  font-weight: bold;
  color: #1a3ea1;
}

.br-none03 {
  display: none;
}

@media print, screen and (min-width: 430px) {
  .voice-top-inner ul li a figure figcaption {
    top: 20px;
    left: 20px;
  }

  .br-none03 {
    display: block;
  }

  .voice-contents-top > p {
    flex-direction: row;
  }
}

@media print, screen and (min-width: 500px) {
  .voice-contents-top figure figcaption p {
    font-size: 3.2rem;
  }

  .voice-contents-top figure figcaption {
    left: 20px;
  }

  .voice-contents-top > p span:first-child {
    padding-right: 80px;
  }
}

@media print, screen and (min-width: 768px) {
  #voice-top,
  .voice-contents {
    margin-bottom: 120px;
  }

  .voice-top-inner ul li {
    width: calc(100% / 3 - 20px);
  }

  .voice-top-inner ul {
    row-gap: 80px;
  }

  .voice-contents-top figure figcaption p {
    font-size: 4rem;
  }

  .voice-contents-top figure figcaption {
    left: 40px;
  }

  .voice-contents-top > p {
    padding: 20px 40px 80px;
  }

  .voice-contents-top > p span:last-child {
    font-size: 2.4rem;
  }

  .voice-contents-top > p span:first-child {
    font-size: 4rem;
  }
}

@media print, screen and (min-width: 1024px) {
  .voice-contents-bottom ul li {
    width: calc(100% / 2 - 20px);
  }

  .voice-contents-bottom ul {
    flex-direction: row;
  }

  .voice-contents-bottom ul:nth-of-type(even) {
    flex-direction: row-reverse;
  }
}

@media print, screen and (min-width: 1200px) {
  .voice-contents-top figure figcaption p {
    font-size: 5.6rem;
  }
}

/* ---------------------------------voiceここまで--------------------------------- */

/* ---------------------------------requirementsここから--------------------------------- */

#requirements-top {
  background: #e1e4e6;
  padding: 64px 0;
}

.requirements-top-inner {
  display: grid;
  place-items: center;
  max-width: 740px;
  width: 95%;
  margin: 0 auto;
}

.requirements-top-inner h4 {
  font-weight: bold;
  font-size: 2.4rem;
  padding: 80px 0 40px;
  line-height: 1;
}

.requirements-contents {
  margin-bottom: 64px;
}

.requirements-contents:first-child {
  margin-top: 64px;
}

.requirements-contents > p {
  padding: 20px 0;
}

.requirements-contents > span {
  font-size: 2.4rem;
  font-weight: bold;
  color: #1a3ea1;
}

.requirements-contents ul.requirements-contents-img {
  display: flex;
  justify-content: space-between;
  flex-flow: row wrap;
  width: 100%;
  row-gap: 20px;
}

.requirements-contents ul.requirements-contents-img li {
  width: 100%;
}

.requirements-contents ul.requirements-contents-img li figure {
  display: table;
  margin: 0 auto;
}

#ac-menu {
  margin-top: 40px;
}

#ac-menu li {
  border-top: solid 1px #1a1a1a;
  border-bottom: solid 1px #1a1a1a;
}

#ac-menu .label {
  cursor: pointer;
  font-size: 1.8rem;
  font-weight: bold;
  padding: 2rem 2rem;
  position: relative;
  transition: 0.5s;
}

#ac-menu .detail {
  padding: 20px 0 0;
  display: none;
}

#ac-menu .label::before,
#ac-menu .label::after {
  content: "";
  width: 20px;
  height: 1px;
  background: #1a1a1a;
  position: absolute;
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
}

#ac-menu .label::after {
  transform: translateY(-50%) rotate(90deg);
  transition: 0.5s;
}

#ac-menu .label.open::after {
  transform: rotate(180deg);
}

#ac-menu .detail dl {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: baseline;
}

#ac-menu .detail dt {
  width: 100%;
  font-weight: bold;
  margin-bottom: 10px;
  font-size: 1.8rem;
}

#ac-menu .detail dd {
  width: 100%;
  margin-bottom: 40px;
  font-size: 1.6rem;
}

#ac-menu .label:hover {
  background: #9acaf8;
}

#ac-menu .label.open {
  background: #9acaf8;
}

@media print, screen and (min-width: 430px) {
  .requirements-top-inner h4 {
    font-size: 3.2rem;
  }

  #ac-menu .detail {
    padding: 40px 20px 0;
  }

  #ac-menu .label {
    padding: 4rem 2rem;
  }
}

@media print, screen and (min-width: 500px) {
}

@media print, screen and (min-width: 768px) {
  #requirements-top {
    padding: 120px 0;
  }

  .requirements-top-inner h4 {
    font-size: 4rem;
  }

  .requirements-contents {
    margin-bottom: 120px;
  }

  .requirements-contents:first-child {
    margin-top: 120px;
  }

  .requirements-contents ul.requirements-contents-img li {
    width: calc(100% / 2 - 20px);
  }

  #ac-menu .detail dl {
    flex-direction: initial;
  }

  #ac-menu .detail dt {
    margin-bottom: 40px;
    width: 20%;
  }

  #ac-menu .detail dd {
    width: 80%;
  }
}

@media print, screen and (min-width: 1024px) {
}

@media print, screen and (min-width: 1200px) {
}

/* ---------------------------------requirementsここまで--------------------------------- */

/* ------------------------------contactここから------------------------------ */

.contact_text {
  max-width: 1120px;
  width: 95%;
  margin: 40px auto 0;
  text-align: left;
}

.contact_text + .contact_text {
  margin-top: 1.2em;
}

#contact_confirm .contact_text,
#contact_send .contact_text {
  width: 100%;
  margin-top: 40px;
}

h4.contact-title {
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  background: #1a3ea1;
  text-align: center;
  padding: 20px 0;
  max-width: 1120px;
  width: 95%;
  margin: 0 auto;
}

.contact_form > h4 {
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  background: #1a3ea1;
  text-align: center;
  padding: 20px 0;
}

.form_area {
  margin-top: 30px;
}

.form_area dt .req {
  color: red;
}

.form_area dd + dt {
  margin-top: 25px;
}

.form_area dd.contact_radio {
  display: flex;
  flex-direction: column;
}

.form_area dd.contact_radio label {
  display: flex;
  align-items: center;
}

.form_area dd.contact_radio input {
  cursor: pointer;
}

.form_area input[type="text"],
.form_area textarea,
.form_area select {
  color: #333 !important;
  width: 100% !important;
  padding: 2rem !important;
  border: solid 1px #333 !important;
  line-height: 1 !important;
  font-weight: bold;
}

.form_area textarea {
  height: 8em;
}

.form_area select {
  width: auto !important;
  padding: 1.5rem 3.5rem 1.5rem 1rem !important;
}

#contact_confirm .form_area dd {
  background: #e6e6e6;
  color: #4d4d4d;
  padding: 10px 0.8em;
}

.contact_privacy {
  background: #f2f2f2;
  margin-top: 30px;
  padding: 18px 20px;
}

.contact_privacy p {
  line-height: 1.5;
  text-align: justify;
}

.contact_privacy p a {
  color: #3c78c8;
  text-decoration: underline;
  font-weight: bold;
  display: inline-block;
}

.contact_privacy p a:hover {
  opacity: 0.5;
}

.contact_privacy_check {
  background: #fff;
  padding: 20px 1em;
  margin-top: 14px;
  font-size: 1.2rem;
  line-height: 1;
  text-align: center;
}

.contact_privacy label {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 1.6rem;
}

.contact_privacy label input {
  margin: 0 12px 0 0;
  width: 1.8rem;
  height: 1.8rem;
  cursor: pointer;
}

.contact_button {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  row-gap: 20px;
  margin: 40px 0 64px;
}

.contact_button input:hover {
  opacity: 0.5;
  cursor: pointer;
}

.button_reset,
.button_back {
  width: 100%;
  background: #333;
  color: #fff;
  line-height: 1;
  padding: 20px 1em;
}

.button_confirm,
.button_send {
  width: 100%;
  background: #f7931e;
  color: #fff;
  line-height: 1;
  padding: 20px 1em;
  border: none;
}

.contact_totop {
  text-align: center;
  line-height: 1;
  margin: 40px 0 64px;
}

.contact_totop a {
  color: #3c78c8;
  text-decoration: underline;
  font-weight: bold;
  font-size: 2rem;
  display: inline-block;
}

.contact_totop a:hover {
  opacity: 0.5;
}

span.red {
  font-weight: bold;
  color: red;
}

span.bold02 {
  font-weight: bold;
}

@media print, screen and (min-width: 500px) {
  .button_reset,
  .button_back,
  .button_confirm,
  .button_send {
    width: calc(100% / 2 - 20px);
    padding: 20px 1em;
  }
}

@media print, screen and (min-width: 768px) {
  .contact_text {
    text-align: center;
  }

  #contact_confirm .contact_text,
  #contact_send .contact_text {
    margin-top: 90px;
  }

  .contact_text + .contact_text {
    margin-top: 40px;
  }

  .form_area {
    width: 95%;
    max-width: 1120px;
    margin: 40px auto 0;
    display: flex;
    flex-wrap: wrap;
  }

  .form_area dt {
    width: 200px;
    padding-top: 1rem;
    font-weight: bold;
  }

  .form_area dd {
    width: calc(100% - 200px);
    margin-top: 0;
    font-weight: bold;
  }

  .form_area dd + dt + dd {
    margin-top: 14px;
  }

  .form_area dd.contact_radio {
    flex-direction: row;
  }

  .form_area dd.contact_radio label {
    margin-right: 20px;
    display: inline-block;
    padding: 1rem 0;
  }

  .form_area textarea {
    height: 266px;
  }

  #contact_confirm .form_area dt {
    padding: 0.8em 0;
  }

  #contact_confirm .form_area dd {
    padding: 18px;
  }

  .form_area select {
    padding: 1.2rem 1rem !important;
  }

  .contact_privacy {
    margin: 80px auto 0;
    max-width: 1120px;
    width: 95%;
    padding: 40px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .contact_privacy_check {
    width: 100%;
    max-width: 812px;
    padding: 22px 0;
    margin-top: 25px;
  }

  .contact_privacy label input {
    margin: 0 25px 0 0;
    width: 24px;
    height: 24px;
  }

  .contact_button {
    margin: 80px auto 120px;
    max-width: 1120px;
    width: 95%;
  }

  .button_confirm,
  .button_send {
    width: 46.07%;
    padding: 16px 1em;
  }

  .contact_form > h4 {
    max-width: 1120px;
    width: 95%;
    margin: 0 auto;
  }

  .contact_totop {
    margin: 40px 0 120px;
  }
}

@media print, screen and (max-width: 768px) {
  .contact_form {
    width: 95%;
    margin: 0 auto;
  }
}

/* ------------------------------contactここまで------------------------------ */

/* ---------------------------------serviceここから--------------------------------- */

#result01,
#result02,
#result03,
#result04,
#result05,
#result06,
#result07,
#result08,
#result {
  scroll-margin-top: 100px;
}

#result,
#equipment {
  padding-bottom: 64px;
}

.result-inner > p {
  display: table;
  margin: 0 auto 40px;
}

.result-inner ul li figure figcaption {
  font-size: 1.8rem;
  font-weight: bold;
  color: #1a3ea1;
  padding: 20px 0;
  border-bottom: 1px solid #e1e1e1;
}

.result-inner ul li figure img {
  width: 100%;
}

.result-inner ul {
  display: flex;
  flex-flow: row wrap;
  gap: 40px 4%;
  width: 100%;
}

.result-inner ul li {
  width: calc(100% / 2 - 2%);
}

#equipment {
  padding: 64px 0;
  background: #f4f8fb;
}

.equipment-inner > p {
  margin-bottom: 40px;
  display: table;
  margin: 0 auto;
}

.equipment-inner ul {
  margin-top: 40px;
  margin-bottom: 80px;
}

.equipment-inner ul:last-child {
  margin-bottom: 0;
}

.equipment-inner ul li:first-child div {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 2%;
  border: 1px solid #e1e1e1;
  padding: 20px;
}

.equipment-inner ul li:first-child p {
  font-size: 2.4rem;
  font-weight: bold;
  color: #fff;
  background: #1a3ea1;
  padding: 4px 32px;
}

.equipment-inner ul li:first-child span {
  font-weight: bold;
  color: #1a3ea1;
}

.equipment-inner ul li:last-child {
  display: flex;
  flex-flow: row wrap;
  width: 100%;
}

.equipment-inner ul li:last-child figure {
  width: calc(100% / 2);
  padding: 20px;
  border: 1px solid #e1e1e1;
  border-top: none;
}

.equipment-inner ul li:last-child figure img {
  width: 100%;
}

.equipment-inner ul li:last-child figure:nth-of-type(6),
.equipment-inner ul li:last-child figure:nth-of-type(9),
.equipment-inner ul li:last-child figure:nth-of-type(2),
.equipment-inner ul li:last-child figure:nth-of-type(4),
.equipment-inner ul li:last-child figure:nth-of-type(8) {
  border-left: none;
}

#equipment-other {
  margin-top: 64px;
}

.equipment-inner ul li:last-child figure figcaption {
  padding-top: 10px;
  font-weight: bold;
}

.equipment-other-inner table,
.equipment-other-inner td,
.equipment-other-inner th {
  border: 1px solid #1a1a1a;
  border-collapse: collapse;
}

.equipment-other-inner table {
  width: 768px;
}

.equipment-other-inner .tableArea > p {
  font-weight: bold;
  font-size: 1.6rem;
  padding-top: 10px;
}

.equipment-other-inner th {
  font-weight: bold;
  color: #fff;
  background: #1a3ea1;
  padding: 8px 4px;
  width: 33%;
}

.equipment-other-inner td {
  text-align: center;
  padding: 2px;
}

@media print, screen and (min-width: 430px) {
}

@media print, screen and (min-width: 500px) {
  .equipment-inner ul li:first-child div {
    flex-direction: row;
  }
}

@media print, screen and (min-width: 768px) {
  #result,
  #equipment {
    padding-bottom: 120px;
  }

  .result-inner ul {
    gap: 80px 3%;
  }

  .result-inner ul li {
    width: calc(100% / 3 - 2%);
  }

  #equipment {
    padding: 120px 0;
  }

  .equipment-inner ul li:first-child div {
    padding: 40px;
  }

  .equipment-inner ul li:last-child figure {
    padding: 40px;
  }

  .equipment-inner ul li:last-child figure figcaption {
    padding-top: 20px;
  }

  .equipment-inner ul li:last-child figure {
    width: calc(100% / 3);
  }

  .equipment-inner ul li:last-child figure:nth-of-type(3),
  .equipment-inner ul li:last-child figure:nth-of-type(5) {
    border-left: none;
  }

  .equipment-inner ul li:last-child figure:nth-of-type(4) {
    border-left: 1px solid #e1e1e1;
  }

  #equipment-other {
    margin-top: 120px;
  }

  .equipment-other-inner table {
    width: 100%;
  }
}

@media print, screen and (min-width: 1024px) {
}

@media print, screen and (min-width: 1200px) {
}

/* ---------------------------------serviceここまで--------------------------------- */

/* ---------------------------------404ここから--------------------------------- */

#not_found_main {
  margin-bottom: 64px;
}

.not_found_text {
  display: grid;
  place-items: center;
  font-size: 1.8rem;
  font-weight: bold;
}

.btn_totop {
  margin-top: 40px;
  text-align: center;
}

.btn_totop a {
  max-width: 500px;
  width: 100%;
  color: #fff;
  background-color: #1a3ea1;
  padding: 20px 16px;
  text-align: center;
  font-weight: bold;
  display: inline-block;
}

.btn_totop a:hover {
  opacity: 0.5;
}

@media print, screen and (min-width: 430px) {
}

@media print, screen and (min-width: 500px) {
}

@media print, screen and (min-width: 768px) {
  #not_found_main {
    margin-bottom: 120px;
  }
}

@media print, screen and (min-width: 1024px) {
}

@media print, screen and (min-width: 1200px) {
}

/* ---------------------------------404ここまで--------------------------------- */

.preparation {
  font-size: 5.6rem;
  font-weight: bold;
  text-align: center;
  padding-bottom: 80px;
}
