@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Zen+Old+Mincho&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Noto+Sans+JP:wght@100..900&family=Zen+Old+Mincho&display=swap");

/* CSS Reset */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  outline: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

table,
td,
th {
  border: 1px solid #333;
}

html {
  font-size: 100%;
  background-color: #fff;
  word-break: break-word;
}

body {
  min-height: 100vh;
  color: #333;
  overflow-x: hidden;
  font: normal normal normal 14px/1.6 sans-serif;
  background-color: #fff;
}

a,
a:active,
a:link,
a:visited {
  text-decoration: none;
  color: inherit;
}

a:hover {
  text-decoration: underline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
dialog,
hr,
img {
  display: block;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

textarea {
  resize: vertical;
}

input,
select {
  vertical-align: middle;
}

button {
  vertical-align: inherit;
  line-height: inherit;
  cursor: pointer;
}

code,
kbd,
pre,
samp {
  font-family: monospace, sans-serif;
  font-size: 1em;
}

mark {
  background-color: #ff0;
}

small {
  font-size: 80%;
}

img {
  max-inline-size: 100%;
  height: auto;
}

ul,
li {
  margin: 0;
  padding: 0;
  list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li {
  margin: 0;
  padding: 0;
}

img {
  width: 100%;
}

/* 404エラーページスタイル */
.error-404 {
  text-align: center;
  padding: 50px 20px;
  background-color: #f8f8f8;
  border: 1px solid #ddd;
  border-radius: 8px;
  margin: 200px auto 80px;
  max-width: 600px;
}

.error-title {
  font-size: 36px;
  color: #e74c3c;
  margin-bottom: 20px;
}

.error-message {
  font-size: 18px;
  color: #333;
  margin-bottom: 30px;
}

.content {
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 40px;
}

@media screen and (max-width: 767px) {
  .content {
    padding: 0 20px;
  }
}

.home-link {
  margin-top: 20px;
}

.home-link .button {
  padding: 12px 25px;
  background-color: #2ecc71;
  color: white;
  text-decoration: none;
  border-radius: 4px;
  font-size: 18px;
}

.home-link .button:hover {
  background-color: #27ae60;
}

.recent-posts ul {
  list-style-type: none;
  padding: 0;
}

.recent-posts li {
  margin: 10px 0;
}

.recent-posts a {
  color: #3498db;
  text-decoration: none;
}

.recent-posts a:hover {
  text-decoration: underline;
}

body {
  font: 14px/1.8 "-apple-system", "Zen Old Mincho", "Libre Baskerville", "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "游ゴシック体", "メイリオ", "Hiragino Kaku Gothic ProN", "MS PGothic", sans-serif;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  background: white;
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: #fff;
  z-index: 97;
  transform: translateY(-100%);
}

.home .site-header {
  animation: slideDown 0.5s forwards;
  animation-delay: 7s;
}

.site-header.page-header {
  transform: translateY(0);
}

@keyframes slideDown {
  0% {
    transform: translateY(-100%);
  }

  100% {
    transform: translateY(0);
  }
}

.site-header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 40px;
}

.site-header .container .site-branding {
  max-width: 200px;
  position: relative;
  z-index: 100;
}

.site-header .container .site-branding a {
  display: block;
  transition: 0.2s;
}

.site-header .container .site-branding a:hover {
  opacity: 0.8;
}

.site-header .container .main-navigation {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.site-header .container .main-navigation .main-menu,
.site-header .container .main-navigation .main-menu ul {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 0;
  flex: 1;
}

.site-header .container .main-navigation .main-menu li {
  position: relative;
  margin: 0 20px;
}

.site-header .container .main-navigation .main-menu li>ul {
  display: none;
  position: absolute;
  top: 23px;
  left: 50%;
  z-index: 5;
  width: 130px;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

.site-header .container .main-navigation .main-menu li>ul>li {
  margin: 0;
}

.site-header .container .main-navigation .main-menu li>ul>li>a {
  padding: 10px;
  text-align: center;
  background: #70ade3;
  font-size: 14px;
  color: #fff !important;
}

.site-header .container .main-navigation .main-menu li>ul>li>a::before {
  display: none !important;
}

.site-header .container .main-navigation .main-menu li>ul>li>a:hover {
  color: #3146b9;
}

@media screen and (min-width:880px) {
  .site-header .container .main-navigation .main-menu li:hover>ul {
    display: block;
  }
}

.head_tel:hover {
  color: rgb(49, 70, 185);
  text-decoration: none;
}

@media screen and (max-width: 1280px) {
  .site-header .container .main-navigation .main-menu li>ul {
    top: 23px;
  }
}

@media screen and (max-width: 880px) {

  .site-header .container .main-navigation .main-menu li {
    margin: 0;
  }

  .site-header .container .main-navigation .main-menu li>ul {
    top: 29px;
  }
}

.site-header .container .main-navigation .main-menu li a {
  line-height: 1;
  position: relative;
  display: block;
  color: #000;
  font-size: 20px;
}

.site-header .container .main-navigation .main-menu li a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 0;
  border-bottom: 1px solid #000;
  transition: 0.2s;
}

.site-header .container .main-navigation .main-menu li:hover a {
  text-decoration: none;
}

.site-header .container .main-navigation .main-menu li:hover a::before {
  width: 100%;
}

.site-header .container .main-navigation .head_sns img {
  width: 30px;
}

.site-header .container .main-navigation .head_contact a {
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  display: block;
  margin-left: 30px;
  color: #fff;
  font-size: 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 25px;
}

.site-header .container .main-navigation .head_contact a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.site-header .container .main-navigation .head_contact a span:first-child {
  display: inline-block;
  margin-right: 15px;
  width: 20px;
}

.site-header .container .main-navigation .head_contact a span:first-child img {
  width: 100%;
}

.site-header .container .main-navigation .head_tel a {
  font-size: 18px;
}

@media screen and (max-width: 1280px) {
  .site-header .container .main-navigation .head_contact:nth-of-type(1) {
    display: none !important;
  }
}

@media screen and (max-width: 940px) {
  .head_tel {
    display: none;
  }
}

.top_container {
  position: relative;
  margin-top: 100px;
  /* padding-bottom: 95px; */
  height: 100%;
  width: 100%;
  z-index: 2;
}

.home .top_container {
  animation: fadeInZoom 1s forwards;
  animation-delay: 5.5s;
  opacity: 0;
  transform: scale(1.1);
}

@keyframes fadeInZoom {
  0% {
    opacity: 0;
    transform: scale(1.1);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* .top_container::before {
  position: absolute;
  content: "";
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(100% - 95px);
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
} */
.top_container .main {
  position: relative;
  max-height: calc(100vh - 95px);
  width: 100%;
  height: 100%;
  /* aspect-ratio: 1376 / 768; */
  aspect-ratio: 16 / 9;
}

.top_container .main .swiper {
  max-height: calc(100vh - 95px);
  height: 100%;
}

.top_container .main .swiper .main-slider_img {
  position: relative;
  height: 100%;
  width: 100%;
}

.top_container .main .main-slider.is-active .swiper-slide-active .main-slider_img-01 img,
.top_container .main .main-slider.is-active .swiper-slide-duplicate-active .main-slider_img-01 img,
.top_container .main .main-slider.is-active .swiper-slide-prev .main-slider_img-01 img {
  animation: zoomUp 5s linear 0s normal both;
}

.top_container .main .main-slider.is-active .swiper-slide-active .main-slider_img-02 img,
.top_container .main .main-slider.is-active .swiper-slide-duplicate-active .main-slider_img-02 img,
.top_container .main .main-slider.is-active .swiper-slide-prev .main-slider_img-02 img {
  animation: bottomToTop 5s linear 0s normal both;
}

.top_container .main .main-slider.is-active .swiper-slide-active .main-slider_img-03 img,
.top_container .main .main-slider.is-active .swiper-slide-duplicate-active .main-slider_img-03 img,
.top_container .main .main-slider.is-active .swiper-slide-prev .main-slider_img-03 img {
  animation: leftToRight 5s linear 0s normal both;
}

.top_container .main .main-slider.is-active .swiper-slide-active .main-slider_img-04 img,
.top_container .main .main-slider.is-active .swiper-slide-duplicate-active .main-slider_img-04 img,
.top_container .main .main-slider.is-active .swiper-slide-prev .main-slider_img-04 img {
  animation: zoomDown 5s linear 0s normal both;
}

.top_container .main .swiper .main-slider_img img {
  position: absolute;
  object-fit: cover;
  height: 100%;
  width: 100%;
}

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

  100% {
    transform: scale(1.15);
  }
}

@keyframes zoomDown {
  0% {
    transform: scale(1.15);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes leftToRight {
  0% {
    transform: translateX(-5%) scale(1.1);
  }

  100% {
    transform: translateX(5%) scale(1.1);
  }
}

@keyframes topToBottom {
  0% {
    transform: translateY(-5%) scale(1.1);
  }

  100% {
    transform: translateY(5%) scale(1.1);
  }
}

@keyframes bottomToTop {
  0% {
    transform: translateY(5%) scale(1.1);
  }

  100% {
    transform: translateY(-5%) scale(1.1);
  }
}

.top_container .main .main_txt {
  position: absolute;
  bottom: 120px;
  left: -60px;
  font-size: 70px;
  color: #fff;
  text-shadow: 4px 4px 6px rgba(0, 0, 0, 0.6);
  line-height: 1.4;
  animation: fadeInZoom 1s ease-out;
  animation-delay: 7.5s;
}

.top_container .main .main_scroll {
  position: absolute;
  left: 40px;
  /* bottom: 60px; */
  bottom: 144px;
  /* color: #fff; */
  font-size: 18px;
  writing-mode: vertical-rl;
  z-index: 5;
}

.top_container .main .main_scroll::before {
  position: absolute;
  content: "";
  left: 14px;
  bottom: calc(-100% - 30px);
  height: 90px;
  /* background: #fff; */
  background: #000;
  width: 1px;
  animation: moveDown 4s infinite alternate;
  animation-delay: 2s;
}

@keyframes moveDown {
  0% {
    transform: translateY(40px);
  }

  100% {
    transform: translateY(0);
  }
}

.top_content {
  margin: 0 auto;
  padding: 100px 0;
}

.top_content .content .top_business_con {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 30px;
}

.top_content .content .top_business_con li {
  width: calc(50% - 15px);
  position: relative;
}

.top_content .content .top_business_con li a:hover {
  text-decoration: none;
}

.top_content .content .top_business_con li .top_business_con_txt {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  text-align: center;
  display: flex;
  justify-items: center;
  justify-content: center;
  flex-wrap: wrap;
  flex-direction: column;
  padding: 20px;
}

.top_content .content .top_business_con li .top_business_con_txt h3 {
  font-size: 26px;
}

.top_content .content .top_business_con li .top_business_con_txt h3 span {
  font-size: 18px;
  display: block;
}

.top_content .content .top_business_con li .top_business_con_txt p {
  max-width: 470px;
  margin: 0 auto;
}

h2 {
  margin-bottom: 40px;
  padding-bottom: 40px;
  text-align: center;
  font-size: 36px;
  line-height: 1.4;
  position: relative;
}

h2::before {
  position: absolute;
  width: 60px;
  height: 4px;
  content: "";
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  left: calc(50% - 30px);
  bottom: 10px;
}

h2 span {
  display: block;
  font-size: 20px;
}

.more a {
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  display: block;
  color: #fff;
  font-size: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 13px 25px;
  margin: 40px auto 0;
  max-width: 280px;
  position: relative;
}

.more a img {
  position: absolute;
  top: calc(50% - 8px);
  right: 30px;
  max-width: 15px;
  margin-left: 20px;
}

.more a:hover {
  text-decoration: none;
  opacity: 0.8;
}


/* Top Business */
.top_business {
  background: url("../images/cad.jpg") left top/500px no-repeat, url("../images/cad1.jpg") right bottom/500px no-repeat;
}

.top_business .content {
  max-width: 1440px;
}

/* Top Works */
.top_works {
  background: rgb(245, 245, 245);
}

.top_works .content {
  max-width: 1440px;
}

.top_works .top_works_con {
  display: flex;
  gap: 30px;
}

.top_works .top_works_con li {
  width: calc(33.333% - ((30px * 2) / 3));
  margin-bottom: 40px;
}

.top_works .top_works_con li a {
  display: block;
}

.top_works .top_works_con li a img {
  transition: 0.4s;
}

.top_works .top_works_con li a:hover {
  text-decoration: none;
}

.top_works .top_works_con li a:hover img {
  transform: scale(1.1);
}

.top_works .top_works_con li .top_works_con_img {
  position: relative;
  height: 100%;
  width: 100%;
  overflow: hidden;
  padding-top: 100%;
}

.top_works .top_works_con li .top_works_con_img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.top_works .top_works_con li .top_works_con_txt {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin-top: 10px;
}

.top_works .top_works_con li .top_works_con_txt h3 {
  font-size: 18px;
}

.top_works .top_works_con li .top_works_con_txt span {
  display: block;
  margin-right: 10px;
  margin-top: 2px;
  padding: 2px 10px;
  background: #555;
  color: #fff;
  min-width: 76px;
}

.top_works .top_works_con li .top_works_con_txt span.new_building {
  background: #9A9B9B;
}

.top_works .top_works_con02 {
  display: none;
}

.top_works .top_works_cat {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  flex-direction: column;
  justify-items: center;
  text-align: center;
}

.top_works .top_works_cat p {
  font-size: 22px;
  font-weight: bold;
}

.top_works .top_works_cat ul {
  display: flex;
  justify-content: center;
  align-items: center;
}

.top_works .top_works_cat ul li {
  padding: 7px 80px;
  margin: 20px 20px 40px;
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  color: #fff;
  font-size: 18px;
  border: 1px solid #fff;
  transition: 0.2s;
  cursor: pointer;
}

.top_works .top_works_cat ul li:nth-child(1):hover,
.top_works .top_works_cat ul li:nth-child(1).active {
  /* border: 1px solid #9A9B9B; */
  background: #9A9B9B;
  color: #fff;
}

.top_works .top_works_cat ul li:nth-child(2):hover,
.top_works .top_works_cat ul li:nth-child(2).active {
  /* border: 1px solid #9A9B9B; */
  background: #555;
  color: #fff;
}

.top_about {
  background: url("../images/cad3.jpg") right top/500px no-repeat, url("../images/cad2.jpg") left bottom/500px no-repeat;
}

.top_about .top_about_con {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.top_about .top_about_con li {
  width: 50%;
  display: flex;
  justify-content: flex-start;
  flex-direction: column;
  align-items: flex-start;
}

.top_about .top_about_con li:first-child {
  padding-right: 60px;
}

.top_about .top_about_con li:first-child a {
  width: 280px;
}

.top_about .top_about_con h3 {
  font-size: 32px;
  background: linear-gradient(to right, rgb(000, 000, 000), rgb(000, 000, 000));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.top_about .top_about_con p {
  margin: 15px 0;
  font-size: 18px;
}

.top_contact {
  padding: 0;
}

.top_contact ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.top_contact ul li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 100px 20px;
  text-align: center;
  width: 100%;
  color: #fff;
  font-size: 16px;
}

.top_contact ul li:first-child {
  background: url("../images/top_contact_bg.jpg") top left/cover repeat;
}

.top_contact ul li:last-child {
  background: url("../images/top_recruit_bg.jpg") top left/cover repeat;
}

.top_contact ul li h2::before {
  background: #fff;
}

.top_contact ul li p {
  margin-bottom: 20px;
  min-height: 3.6em;
}

.top_contact ul li .top_contact_botn {
  display: flex;
  justify-content: center;
  align-items: center;
}

.top_contact ul li .top_contact_botn a:first-child {
  margin-right: 20px;
}

.top_contact ul li .top_contact_botn a:first-child span {
  font-size: 30px;
}

.top_contact ul .top_contact_botn_a {
  position: relative;
  display: flex;
  justify-content: center;
  padding: 13px 25px;
  max-width: 280px;
  width: 280px;
  border: 1px solid #fff;
  transition: 0.2s;
}

.top_contact ul .top_contact_botn_a img {
  position: absolute;
  top: calc(50% - 8px);
  right: 20px;
  max-width: 15px;
  margin-left: 20px;
}

.top_contact ul .top_contact_botn_a:hover {
  text-decoration: none;
  background: rgba(0, 0, 0, 0.6);
}

.top_contact a {
  color: #fff;
}

.top_contact a img {
  max-width: 15px;
}

.top_news_con .top_news_con_title h2 {
  text-align: center;
}

.top_news_con .top_news_con_title a {
  width: 280px;
}

.top_news_con .top_news_con_list li {
  font-size: 16px;
}

.top_news_con .top_news_con_list li:last-child {
  border-bottom: 1px solid #ccc;
}

.top_news_con .top_news_con_list li a {
  display: block;
  display: flex;
  justify-content: flex-start;
  padding: 20px 0;
  border-top: 1px solid #ccc;
  transition: 0.2s;
}

.top_news_con .top_news_con_list li a:hover {
  text-decoration: none;
  background: #eee;
}

.top_news_con .top_news_con_list li .top_news_con_list_time {
  min-width: 125px;
}

.top_news_con .top_news_con_list li .top_news_con_list_cate {
  margin: 0 20px;
  min-width: 80px;
  color: rgb(112, 173, 227);
}

.top_news_con .top_news_con_list li .newmark {
  color: rgb(254, 0, 0);
}

.footer-navigation {
  background: #9A9B9B;
  padding: 20px;
}

.footer-navigation ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.footer-navigation ul li {
  position: relative;
  margin: 10px 40px;
  font-size: 16px;
  color: #fff;
}

.footer-navigation ul li>ul {
  display: none;
  position: absolute;
  top: 23px;
  left: 50%;
  z-index: 5;
  width: 130px;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

.footer-navigation ul li>ul>li {
  margin: 0;
  width: 100%;
}

.footer-navigation ul li>ul>li>a {
  display: block;
  padding: 10px;
  width: 100%;
  text-align: center;
  background: #fff;
  font-size: 14px;
  color: #000;
}

.footer-navigation ul li>ul>li>a::before {
  display: none !important;
}

.footer-navigation ul li>ul>li>a:hover {
  text-decoration: none;
  color: #3146b9;
}

.footer-navigation ul li:hover>ul {
  display: block;
}

@media screen and (max-width: 767px) {
  .footer-navigation ul li>ul {
    top: 23px;
  }

  .footer-navigation ul li>ul>li>a {
    padding: 6px 10px;
  }
}

.site-info {
  margin: 0 auto;
  display: flex;
  padding: 20px 40px;
  justify-content: space-between;
  align-items: center;
}

.site-info>a:nth-of-type(1) {
  display: block;
  max-width: 150px;
  transition: 0.2s;
}

.site-info a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.site-info-addr {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 40px;
}

/* .site-info>dl{display:flex;}
.site-info>dl>dt:nth-of-type(2){margin-left:20px;}
.site-info>dl>dt>a{display:flex;align-items:center;padding:10px 25px;color:#fff;white-space:nowrap;
	background:linear-gradient(to right,rgb(49,70,185),rgb(112,173,227));
}
.site-info>dl>dt>a>img{display:block;margin-right:15px;width:20px;} */
@media (max-width:1260px) {
  .site-info {
    flex-direction: column;
    justify-content: center;
  }

  .site-info>*:not(:first-child) {
    margin-top: 30px;
  }
}

/* @media (max-width:767px){
	.site-info>dl{display:none;}
} */

.hamburger-menu {
  position: fixed;
  right: 20px;
  top: 27px;
  z-index: 97;
  display: none;
}

.home .hamburger-menu {
  opacity: 0;
  animation: fadeIn 0.5s forwards;
  animation-delay: 7.5s;
}

.hamburger-icon {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 21px;
  cursor: pointer;
}

.hamburger-icon .bar {
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  height: 4px;
  width: 100%;
  border-radius: 2px;
  transition: 0.2s;
}

.hamburger-icon .bar:nth-child(2) {
  transition: none;
}

.hamburger-icon.open .bar:nth-child(1) {
  transform: rotate(45deg);
  position: relative;
  top: 9px;
}

.hamburger-icon.open .bar:nth-child(2) {
  opacity: 0;
}

.hamburger-icon.open .bar:nth-child(3) {
  transform: rotate(-45deg);
  position: relative;
  top: -8px;
}

@media screen and (max-width: 1680px) {
  .site-header .container .main-navigation .main-menu li a {
    font-size: 18px;
  }
}

@media screen and (max-width: 1280px) {
  .site-header .container {
    padding: 15px 20px;
  }

  .site-header .container .site-branding {
    max-width: 150px;
  }

  .site-header .container .main-navigation .main-menu li {
    margin: 0 15px;
  }

  .site-header .container .main-navigation .main-menu li a,
  .site-header .container .main-navigation .head_contact a {
    font-size: 18px;
  }

  .site-header .container .main-navigation .head_contact a {
    margin-left: 30px;
    padding: 10px;
  }

  .site-header .container .main-navigation .head_contact a span:first-child {
    margin-right: 0;
  }

  .site-header .container .main-navigation .head_contact a span:last-child {
    display: none;
  }

  .site-info {
    padding: 20px;
  }

  .top_container .main .main_txt {
    font-size: 50px;
  }

  .top_container {
    margin-top: 80px;
  }

  .top_contact ul li {
    padding: 40px 20px;
    font-size: 14px;
  }

  .top_contact ul li .top_contact_botn a:first-child span {
    font-size: 20px;
  }

  .top_contact ul .top_contact_botn_a {
    width: 240px;
  }
}

@media screen and (max-width: 960px) {
  .top_content {
    padding: 80px 0;
  }

  .top_contact ul,
  .top_news_con {
    flex-direction: column;
  }

  .top_news_con .top_news_con_title {
    flex-direction: row;
    justify-content: space-between;
    margin-right: 0;
  }
}

@media screen and (max-width: 880px) {
  .hamburger-menu {
    display: block;
  }

  .site-header .container .main-navigation .main-menu li a::before {
    display: none;
  }

  .site-header .container .main-navigation {
    overflow: hidden;
  }

  .site-header .container .main-navigation .main-menu {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 240px;
    height: calc(100vh + 40px);
    background: #fff;
    margin-top: -40px;
    transition: 0.2s;
    transform: translateX(100%);
    position: fixed;
    top: 0;
    right: 0;
  }

  .site-header .container .main-navigation .main-menu ul {
    flex-direction: column;
  }

  .site-header .container .main-navigation .main-menu li {
    width: 100%;
    text-align: center;
    margin: 0;
  }

  .site-header .container .main-navigation .main-menu li#menu-item-86>a {
    position: relative;
  }

  .site-header .container .main-navigation .main-menu li#menu-item-86>a:after {
    position: absolute;
    top: 50%;
    right: 20px;
    display: block;
    content: "";
    width: 0;
    height: 0;
    border-width: 5px 5px 0;
    border-style: solid;
    border-color: #70ade3 transparent transparent transparent;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-transition: 0.3s;
    transition: 0.3s;
  }

  .site-header .container .main-navigation .main-menu li>ul {
    position: static;
    width: 240px;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  .site-header .container .main-navigation .main-menu li a {
    line-height: 2;
  }

  .site-header .container .main-navigation .main-menu_open {
    transform: translateX(0);
  }

  .head_contact {
    margin-right: 60px;
  }

  .top_container .main .main_txt {
    font-size: 38px;
    left: -40px;
  }

  .top_container .main .main_scroll {
    display: none;
  }

  .top_about .top_about_con li:first-child {
    padding-right: 40px;
  }

  .top_about .top_about_con h3 {
    font-size: 24px;
  }
}

@media screen and (max-width: 767px) {

  .more a,
  h2 span,
  .top_works .top_works_cat ul li {
    font-size: 16px;
  }

  .top_content {
    padding: 38px 0;
  }

  .top_contact {
    padding: 0;
  }

  .top_content .content .top_business_con,
  .top_works .top_works_con,
  .top_contact ul li .top_contact_botn {
    flex-direction: column;
  }

  .top_about .top_about_con {
    flex-direction: column-reverse;
  }

  .top_content .content .top_business_con li,
  .top_works .top_works_con li,
  .top_about .top_about_con li {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }

  .top_container .main {
    max-height: calc(100vh - 80px);
    /* aspect-ratio: 768 / 1376; */
    /* aspect-ratio: 768 / 1202; */
    aspect-ratio: 9 / 16;
  }

  .top_container .main .swiper {
    max-height: calc(100vh - 80px);
  }

  .top_container .main .main_txt {
    bottom: 60px;
    font-size: 32px;
  }

  .top_container .main .swiper .main-slider_img img {
    object-position: 50% 0%;
  }

  h2 {
    font-size: 26px;
    padding-bottom: 28px;
    margin-bottom: 30px;
  }

  .top_content .content .top_business_con li .top_business_con_txt h3 {
    font-size: 20px;
  }

  .top_works .top_works_cat ul li {
    padding: 7px 30px;
  }

  .top_about .top_about_con li:first-child {
    padding-right: 0;
    display: block;
    margin-bottom: 0;
  }

  .top_about .top_about_con p {
    margin: 15px 0 25px;
  }

  .top_contact ul li .top_contact_botn a:first-child {
    margin-bottom: 20px;
  }

  .top_news_con .top_news_con_list li a {
    flex-wrap: wrap;
  }

  .top_news_con_list_title {
    margin-top: 10px;
    width: 100%;
  }

  .top_about .top_about_con li:first-child a,
  .top_news_con .top_news_con_title a,
  .more a {
    width: 220px;
    justify-content: space-between;
  }

  .footer-navigation ul {
    flex-wrap: wrap;
  }

  .footer-navigation ul li {
    margin: 5px 15px;
  }
}



.top_content {
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.3s, transform 0.3s;
}

.top_content.animate {
  animation: floatUp 1.5s ease-out forwards;
}

@keyframes floatUp {
  0% {
    transform: translateY(100px);
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.load {
  display: none;
}

.home .load {
  /*background: rgb(112, 173, 227);*/
  background: url(../images/loadbg.jpg) no-repeat;
  background-size: cover;
  background-position: 50% 50%;
  opacity: 0.7;
  position: fixed;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  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;
  z-index: 98;
  color: #fff;
  -webkit-transition: opacity .6s 5s;
  transition: opacity .6s 5s;
}

.load svg {
  width: 80%;
  max-width: 400px;
  margin: auto;
  max-height: 100%;
  -webkit-transition: opacity .6s 4.5s;
  transition: opacity .6s 4.5s
}

.load #logo_load path {
  fill: none;
  stroke: #fff;
  stroke-width: 5;
  stroke-miterlimit: 10;
  stroke-linecap: round;
  stroke-dasharray: 2100;
  stroke-dashoffset: 2100;
  -webkit-transition: 1s cubic-bezier(0.99, 0.15, 0.94, 0.94) stroke-dashoffset;
  transition: 1s cubic-bezier(0.99, 0.15, 0.94, 0.94) stroke-dashoffset
}

.load #logo_loading path {
  opacity: 0;
  -webkit-transition: .8s 1.2s opacity;
  transition: .8s 1.2s opacity
}

.load #moji path {
  -webkit-clip-path: inset(0% 0% 0% 100%);
  clip-path: inset(0% 0% 0% 100%);
  -webkit-transform: translateY(20px);
  -ms-transform: translateY(20px);
  transform: translateY(20px);
  opacity: 0;
  -webkit-transition: opacity 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), -webkit-clip-path 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1);
  transition: opacity 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), -webkit-clip-path 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1);
  transition: opacity 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), clip-path 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), transform 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1);
  transition: opacity 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), clip-path 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), transform 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), -webkit-clip-path 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 1s 3.2s cubic-bezier(0.19, 1, 0.22, 1)
}

.load #moji #moji1 {
  -webkit-transition-delay: 2.2s;
  transition-delay: 2.2s
}

.load #moji #moji2 {
  -webkit-transition-delay: 2.3s;
  transition-delay: 2.3s
}

.load #moji #moji3 {
  -webkit-transition-delay: 2.4s;
  transition-delay: 2.4s
}

.load #moji #moji4 {
  -webkit-transition-delay: 2.5s;
  transition-delay: 2.5s
}

.load #moji #moji5 {
  -webkit-transition-delay: 2.6s;
  transition-delay: 2.6s
}

.load #moji #moji6 {
  -webkit-transition-delay: 2.7s;
  transition-delay: 2.7s
}

.load #moji #moji7 {
  -webkit-transition-delay: 2.8s;
  transition-delay: 2.8s
}

.load #moji #moji8 {
  -webkit-transition-delay: 2.9s;
  transition-delay: 2.9s
}

.load.loaded {
  opacity: 0;
}

.load.loaded svg {
  opacity: 0
}

.load.loaded #logo_load path {
  stroke-dashoffset: 0
}

.load.loaded #logo_loading path {
  opacity: 1
}

.load.loaded #moji path {
  opacity: 1;
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0)
}

.loaded .load.loaded {
  display: none;
}

/* 同一セッション2回目以降はローディング画面を出さない */
body.skiploading .load {
  display: none !important;
}

/* スキップ時はファーストビューの遅延フェードイン（5.5s / 7.5s）も解除して即表示 */
body.skiploading .top_container {
  animation: none;
  opacity: 1;
  transform: none;
}

body.skiploading .top_container .main .main_txt {
  animation: none;
}

/* ヘッダー（7s スライドダウン）／ハンバーガー（7.5s フェードイン）も即表示 */
body.skiploading .site-header {
  animation: none;
  transform: translateY(0);
}

body.skiploading .hamburger-menu {
  animation: none;
  opacity: 1;
}

.foot_bot {
  display: none;
}

.foot_bot img {
  max-width: 15px;
}

@media screen and (max-width: 767px) {
  .site-footer {
    padding-bottom: 70px;
  }

  .foot_bot {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
  }

  .foot_bot a {
    width: 100%;
    display: block;
    text-align: center;
    background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
    color: #fff;
    position: relative;
    padding: 15px 0;
  }

  .foot_bot a img {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 30px;
  }
}

@media screen and (max-width: 767px) {

  .top_business.top_content,
  .top_business.top_content.animate {
    animation: none;
    transform: translateY(0);
    opacity: 1;
  }
}

/*page-banner*/
.page-banner {
  margin-top: 96px;
}

.page-banner figure {
  height: auto;
  max-height: 458px;
  width: 100%;
  aspect-ratio: 1908 / 554;
}

.page-banner img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

@media screen and (max-width: 767px) {
  .page-banner {
    margin-top: 80px;
  }
}

.hasbg {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

.hasbg:after {
  display: block;
  content: "";
  padding-top: 100%;
}

.hasbg>img {
  display: none;
}

/*tablelist*/
.tablelist dl {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  padding: 20px 0;
  font-size: 16px;
}

.tablelist dl:first-child {
  padding-top: 0;
}

.tablelist dl:last-child {
  padding-bottom: 0;
}

.tablelist dl:not(:last-child) {
  border-bottom: 1px solid #333;
}

.tablelist dl dt {
  position: relative;
  width: 134px;
  border-right: 1px solid #333;
  padding-right: 20px;
}

.tablelist dl dd {
  width: calc(100% - 134px);
  padding-left: 20px;
}

.tablelist dl.five dd>div {
  display: flex;
  align-items: center;
  position: relative;
}

.tablelist dl.five dd>div:not(:last-child) {
  padding-bottom: 20px;
}

.tablelist dl.five dd>div:not(:last-child)::before {
  content: '';
  background: #333;
  position: absolute;
  left: 45px;
  bottom: 0;
  height: 20px;
  width: 1px;
}

@media screen and (max-width: 767px) {
  .tablelist dl dt {
    width: 92px;
    padding-right: 10px;
  }

  .tablelist dl dd {
    width: calc(100% - 92px);
    padding-left: 10px;
  }
}

/*.form*/
.form>dl {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.form>dl>dt {
  width: 200px;
  display: flex;
  justify-content: space-between;
}

.form>dl>dt p {
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.form>dl>dt span {
  display: inline-block;
  padding: 3px 10px;
  background: #FF0000;
  color: #FFF;
  font-size: 16px;
  line-height: 1;
}

.form>dl>dd {
  width: calc(100% - 210px);
}

.confirmform>dl>dd p {
  background: #FFF;
  padding: 5px;
  margin-bottom: 5px;
  min-height: 36px;
}

.form input[type="text"],
.form input[type="email"],
.form input[type="tel"],
.form input[type="file"],
.form select,
.form textarea {
  width: 100%;
  padding: 10px;
  background: #FFF;
  border: 1px solid #FFF;
}

.form input[type="text"]:focus,
.form input[type="email"]:focus,
.form input[type="tel"]:focus,
.form input[type="file"]:focus,
.form select:focus,
.form textarea:focus {
  border: 1px solid rgb(49, 70, 185);
}

.form .formbtngroup {
  display: flex;
  justify-content: center;
  margin: 50px auto;
}

.form .wpcf7-spinner {
  display: none;
}

.confirmform.form .formbtngroup p {
  background: none;
  display: flex;
  justify-content: center;
}

.form .formbtn {
  background: #00BDDE;
  color: #FFF;
  border: 1px solid #00BDDE;
  text-align: center;
  display: flex;
  justify-content: center;
  width: 280px;
  margin: 0 10px;
  padding: 10px 20px;
  font-size: 16px;
  transition: .3s;
}

.form .formbtn:hover {
  background: #3146b9;
  border: 1px solid #3146b9;
}

.formpolicy {
  text-align: center;
  font-size: 24px;
  margin: 0 auto 30px;
}

.formcontent {
  padding: 10px;
  background: #FFF;
  overflow-y: scroll;
  width: 100%;
  height: 220px;
  font-size: 16px;
  line-height: 1.8;
}

.formcontent p {
  margin-bottom: 20px;
}

.formcontent h3 {
  font-size: 20px;
  padding-bottom: 5px;
  margin-bottom: 10px;
  border-bottom: 1px solid #000;
}

@media screen and (max-width: 1280px) {
  .form>dl>dt {
    width: 180px;
  }

  .form>dl>dd {
    width: calc(100% - 190px);
  }

  .form .formbtngroup {
    margin: 30px auto;
  }

  .form .formbtn {
    width: 200px;
  }

  .formpolicy {
    font-size: 20px;
    margin: 0 auto 20px;
  }

  .formcontent h3 {
    font-size: 18px;
    padding-bottom: 3px;
    margin-bottom: 5px;
  }
}

@media screen and (max-width: 767px) {
  .form>dl {
    margin-bottom: 15px;
  }

  .form>dl>dt {
    width: 100%;
    margin-bottom: 5px;
    justify-content: flex-start;
  }

  .form>dl>dt p {
    justify-content: flex-start;
  }

  .form>dl>dt span {
    margin-left: 5px;
  }

  .form>dl>dd {
    width: 100%;
  }

  .form .formbtngroup {
    margin: 15px auto;
  }

  .form .formbtn {
    width: 200%;
    max-width: 120px;
  }

}


/* page company */
.company_content {
  margin: 0 auto;
  padding: 100px 0;
}

.company-info {
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.company-info-text {
  width: calc(100% - 450px);
}

.company-info-text h3 {
  font-size: 36px;
  margin-bottom: 15px;
}

.company-info-text p {
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 30px;
}

.company-info-pic {
  width: 380px;
}

.company-info-pic img {
  width: 100%;
}

@media screen and (max-width: 1280px) {
  .company-info-text {
    width: calc(100% - 340px);
  }

  .company-info-text h3 {
    font-size: 28px;
    margin-bottom: 10px;
  }

  .company-info-text p {
    margin-bottom: 15px;
    font-size: 16px;
  }

  .company-info-pic {
    width: 300px;
  }
}

@media screen and (max-width: 960px) {
  .company_content {
    padding: 80px 0;
  }

  .company-info-text h3 {
    font-size: 24px;
  }
}

@media screen and (max-width: 767px) {
  .company_content {
    padding: 38px 0;
  }

  .company-info-text {
    width: 100%;
    max-width: 420px;
    margin: 0 auto 15px;
  }

  .company-info-text h3 {
    font-size: 18px;
    margin-bottom: 5px;
  }

  .company-info-text p {
    margin-bottom: 10px;
  }

  .company-info-pic {
    width: 100%;
    max-width: 380px;
    margin: 0 auto;
  }
}

.company_profile {
  background: #F2F2F2;
}

.company_profile .content {
  max-width: 1000px;
  margin: 0 auto;
}

.company_profile .tablelist dl.four {
  align-items: flex-start;
}

.company_profile .tablelist dl.four dt {
  border-right: 0;
}

.company_profile .tablelist dl.four dt:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  border-right: 1px solid #333;
  height: 30px;
}

.company_profile .tablelist dl.five {
  align-items: flex-start;
}

.company_profile .tablelist dl.five dt {
  border-right: 0;
}

.company_profile .tablelist dl.five dt:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  border-right: 1px solid #333;
  height: 30px;
}

.company_access {
  margin-bottom: 30px;
  text-align: center;
  font-size: 16px;
}

.company_access p {
  font-weight: bolder;
  margin-bottom: 10px;
}

.company_access div {
  font-size: 16px;
  letter-spacing: 2px;
}

.company_access div a {
  font-size: 28px;
  font-weight: bolder;
  color: #000;
  text-decoration: none;
}

.company_access div a:hover {
  text-decoration: none;
  color: rgb(49, 70, 185);
}

.company_access div em {
  font-weight: bolder;
  font-size: 20px;
  font-style: normal;
}

@media screen and (max-width: 1280px) {
  .company_access div {
    letter-spacing: 1px;
  }

  .company_access div a {
    font-size: 26px;
  }

  .company_access div em {
    font-size: 18px;
  }
}

@media screen and (max-width: 767px) {

  .company_access {
    margin-bottom: 20px;
  }

  .company_access p {
    font-size: 15px;
  }

  .company_access div {
    font-size: 15px;
    letter-spacing: 0px;
  }

  .company_access div a {
    font-size: 20px;
  }
}

.company_content.top_contact {
  padding: 50px 0;
}

@media screen and (max-width: 767px) {
  .company_content.top_contact {
    padding: 38px 0;
  }
}

/*googlemap*/
.googlemap {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #ccc url(img/lgm.png) no-repeat center center;
  background-size: 40% auto;
}

.googlemap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.company_content .content>dl {
  display: flex;
  justify-content: space-between;
  margin-bottom: 40px;
}

.company_content .content>dl>dd {
  width: calc(50% - 20px);
}

.company_content .content>dl>dd>.googlemap {
  height: 460px;
}

.company_content .content>dl>dt {
  width: calc(50% - 20px);
}

.company_content .content>dl>dt:after {
  padding-top: 0;
  height: 460px;
}

@media (max-width:1380px) {
  .company_content .content>dl {
    margin-bottom: 35px;
  }

  .company_content .content>dl>dd {
    width: calc(50% - 15px);
  }

  .company_content .content>dl>dd>.googlemap {
    height: 410px;
  }

  .company_content .content>dl>dt {
    width: calc(50% - 15px);
  }

  .company_content .content>dl>dt:after {
    height: 410px;
  }
}

@media (max-width:1180px) {
  .company_content .content>dl {
    margin-bottom: 30px;
  }

  .company_content .content>dl>dd {
    width: calc(50% - 10px);
  }

  .company_content .content>dl>dd>.googlemap {
    height: 360px;
  }

  .company_content .content>dl>dt {
    width: calc(50% - 10px);
  }

  .company_content .content>dl>dt:after {
    height: 360px;
  }
}

@media (max-width:980px) {
  .company_content .content>dl {
    display: block;
  }

  .company_content .content>dl>dd {
    width: 100%;
  }

  .company_content .content>dl>dt {
    margin-top: 30px;
    width: 100%;
  }
}

/*page recruitment*/
.recruitment_content {
  background: #F2F2F2;
  padding: 100px 0;
}

.recruitment_content.top_contact {
  margin-bottom: 50px;
  padding-bottom: 0;
}

.recruitment_content .tablelist dl {
  align-items: stretch;
}

/* .recruitment_content .content{
  max-width: 1000px;
} */

@media screen and (max-width: 960px) {
  .recruitment_content {
    padding: 80px 0;
  }
}

@media screen and (max-width: 767px) {
  .recruitment_content {
    padding: 38px 0;
  }
}


/*page recruit*/
.page-recruit {
  padding: 100px 0;
  background: #F5F5F5;
}

.page-recruit_notice {
  text-align: center;
  margin-bottom: 80px;
}

.page-recruit_notice h3 {
  font-size: 24px;
  margin-bottom: 20px;
}

.page-recruit_notice p {
  font-size: 16px;
  line-height: 1.8;
}

@media screen and (max-width: 960px) {
  .page-recruit {
    padding: 80px 0;
  }
}

@media screen and (max-width: 767px) {
  .page-recruit {
    padding: 38px 0;
  }

  .page-recruit_notice h3 {
    font-size: 18px;
  }
}


/*page contact*/
.page-contact {
  padding: 100px 0;
  background: #F5F5F5;
}

.page-contact_notice {
  text-align: center;
  margin-bottom: 80px;
}

.page-contact_notice h3 {
  font-size: 24px;
  margin-bottom: 20px;
}

.page-contact_notice p {
  font-size: 16px;
  line-height: 1.8;
}

@media screen and (max-width: 960px) {
  .page-contact {
    padding: 80px 0;
  }
}

@media screen and (max-width: 767px) {
  .page-contact {
    padding: 38px 0;
  }

  .page-contact_notice h3 {
    font-size: 18px;
  }
}

/*page service*/
.page-service {
  padding: 80px 0;
  background: url(../images/cad.jpg) left top / 500px no-repeat, url(../images/cad1.jpg) right bottom / 500px no-repeat;
}

.page-service.last {
  padding-bottom: 160px;
}

.page-service.other-service {
  position: relative;
  padding: 120px 0 80px;
  background: rgb(245, 245, 245);
}

.page-service-title {
  margin-bottom: 40px;
}

.page-service-title em {
  /*background: linear-gradient(0deg, #d8e4e9 23.72%, #dfeff8 63.46%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;*/
  color: #dfeff8;
  opacity: 0.7;
  font-size: 95px;
  font-weight: normal;
  font-style: italic;
  letter-spacing: 0;
  margin-right: 30px;
}

.page-service-title h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  line-height: 1.2;
  font-weight: bolder;
}

.page-service-title .title-text {
  position: relative;
  display: block;
  color: #000;
  text-align: center;
  padding-inline: 60px;
}

.page-service-title .title-text::before,
.page-service-title .title-text::after {
  content: '';
  position: absolute;
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  top: 50%;
  transform: translateY(-50%);
  height: 2px;
  width: 40px;
}

.page-service-title .title-text::before {
  left: 0;
}

.page-service-title .title-text::after {
  right: 0;
}

.page-service-title .title-text small {
  display: block;
  font-size: 24px;
  margin-bottom: 5px;
}

.servicetitle {
  position: absolute;
  left: 50%;
  top: -60px;
  transform: translateX(-50%);
  font-size: 100px;
  line-height: 1;
  /* opacity: 0.7;
  color: #D9D9D9; */
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.servicelist {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 30px;
}

.servicelist li {
  width: calc(50% - 15px);
}

.servicecard {
  display: flex;
  position: relative;
  text-decoration: none;
  color: #FFF;
}

.servicecardpic {
  position: relative;
  width: 100%;
  aspect-ratio: 585 / 392;
}

.servicecardpic:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background: rgba(0, 0, 0, 0.5);
}

.servicecardpic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.servicecardtext {
  color: #FFF;
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.servicecardtext .en {
  font-size: 18px;
  margin-bottom: 10px;
}

.servicecardtext .ja {
  font-size: 32px;
}

@media screen and (max-width: 1280px) {
  .page-service-title em {
    font-size: 70px;
    margin-right: 20px;
  }

  .page-service-title div {
    font-size: 24px;
  }

  .servicetitle {
    font-size: 60px;
    top: -50px;
  }

  .servicecardtext {
    width: 100%;
  }

  .servicecardtext .en {
    font-size: 16px;
  }

  .servicecardtext .ja {
    font-size: 26px;
  }
}

@media screen and (max-width: 767px) {
  .page-service {
    padding: 38px 0;
  }

  .page-service.last {
    padding-bottom: 74px;
  }

  .page-service.other-service {
    padding: 62px 0 38px;
  }

  .page-service-title em {
    font-size: 50px;
    margin-right: 10px;
  }

  .page-service-title h3 {
    font-size: 28px;
  }

  .page-service-title .title-text {
    padding-inline: 40px;
  }

  .page-service-title .title-text small {
    font-size: 18px;
  }

  .page-service-title .title-text::before,
  .page-service-title .title-text::after {
    width: 30px;
  }

  .servicelist {
    gap: 10px;
  }

  .servicelist li {
    width: calc(50% - 5px);
  }

  .servicecardtext .en {
    font-size: 14px;
    margin-bottom: 5px;
  }

  .servicecardtext .ja {
    font-size: 22px;
  }
}

@media screen and (max-width: 567px) {
  .page-service-title em {
    font-size: 32px;
    margin-right: 5px;
  }

  .servicetitle {
    font-size: 38px;
    top: -24px;
  }

  .servicelist li {
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
  }

  .servicecardtext .en {
    font-size: 12px;
  }

  .servicecardtext .ja {
    font-size: 18px;
  }
}

.serviceitem {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 50px;
}

.serviceitemreverse {
  flex-direction: row-reverse;
}

.servicetext {
  width: calc(50% - 30px);
}

.servicetext h3 {
  font-size: 22px;
  margin-bottom: 30px;
}

.servicetext p {
  font-size: 18px;
  line-height: 1.8;
}

/* サービス 特徴リスト（dl / 横並び・下線） */
.servicedl > div {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 16px 4px;
  border-bottom: 1px solid #e5e8ef;
}

.servicedl dt {
  flex: 0 0 auto;
  width: 180px;
  font-size: 17px;
  font-weight: bold;
  color: #222;
}

.servicedl dd {
  flex: 1;
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: #555;
}

@media screen and (max-width: 767px) {
  .servicedl > div {
    flex-direction: column;
    gap: 4px;
    padding: 14px 4px;
  }

  .servicedl dt {
    width: 100%;
    font-size: 16px;
  }

  .servicedl dd {
    font-size: 16px;
  }
}

.servicepic {
  width: calc(50% - 30px);

}

.servicepic figure:after {
  padding-top: 70%;
}

.servicegrall {
  /*display: flex;*/
  width: 100%;
  overflow: hidden;
}

.servicegrall ul {
  /*display: flex;
  justify-content: space-between;*/
  /*margin-right: -10px;*/
  /*margin-left: -10px;*/
}

.servicegrall .swiper-button-prev:after {
  font-size: 24px;
}

.servicegrall .swiper-button-next:after {
  font-size: 24px;
}

.servicegrall ul li {
  /*width: 25%;*/
  padding: 0 5px;
  /*flex-grow:1;*/
}

.servicegrall ul li figure {
  width: 100%;
  /*min-width: 280px;*/
}

.servicegrall.topgrall ul li figure {
  /*min-width: 260px;*/
}

.servicegrall ul li figure:after {
  padding-top: 70%;
}

@media screen and (max-width: 1280px) {
  .serviceitem {
    margin-bottom: 30px;
  }

  .servicetext {
    width: calc(50% - 15px);
  }

  .servicetext h3 {
    font-size: 20px;
    margin-bottom: 30px;
  }

  .servicepic {
    width: calc(50% - 15px);

  }

  .servicegrall .swiper-button-prev {
    left: 0;
  }

  .servicegrall .swiper-button-prev:after {
    font-size: 20px;
  }

  .servicegrall .swiper-button-next {
    right: 0;
  }

  .servicegrall .swiper-button-next:after {
    font-size: 20px;
  }

  .servicegrall ul {
    /*margin-right: -5px;
    margin-left: -5px;*/

  }

  .servicegrall ul li {
    /*padding: 0 5px;*/
  }

  .servicegrall ul li figure {
    width: 100%;
    /*min-width: 200px;*/
  }

  .servicegrall.topgrall ul li figure {
    /*min-width: 200px;*/
  }



}

@media screen and (max-width: 980px) {
  .servicegrall ul {
    width: 100%;
    /*flex-wrap: wrap;*/
  }

  .servicegrall ul:after {
    content: '';
    flex: auto;
  }

  .servicegrall ul li {
    /*width: 33.333333%;*/
    /*flex-grow:0;*/
    /*margin-bottom:10px;*/
  }

  .servicegrall ul li figure,
  .servicegrall.topgrall ul li figure {
    /*width: 100%;*/
  }
}

@media screen and (max-width: 767px) {
  .serviceitem {
    margin: 0 auto 30px;
    max-width: 500px;
  }

  .servicetext {
    width: 100%;
    margin-bottom: 20px;
  }

  .servicetext h3 {
    font-size: 18px;
    margin-bottom: 20px;
  }

  .servicepic {
    width: 100%;
  }



  .servicegrall .swiper-button-prev:after {
    font-size: 16px;
  }

  .servicegrall .swiper-button-next:after {
    font-size: 16px;
  }

  .servicegrall ul {
    /*margin-right: 0;*/
    /*margin-left: 0;*/
  }

  .servicegrall ul:after {
    display: none;
  }

  .servicegrall ul li {
    /*width: calc(50% - 5px);*/
    /*padding: 0;*/
  }

  .servicegrall ul li figure {
    width: 100%;
    min-width: auto;
  }

  .servicegrall.topgrall ul li figure {
    min-width: auto;
  }

}


.servicetextwide {
  width: 100%;
  margin: 30px auto 0;
}

.servicetextwide h3 {
  font-size: 24px;
  margin-bottom: 38px;
}

.servicetextwide p {
  font-size: 18px;
  line-height: 1.8;
}

@media screen and (max-width: 1280px) {
  .servicetextwide h3 {
    font-size: 20px;
    margin-bottom: 30px;
  }
}


/* .breadcrumb */
.breadcrumb {
  padding: 30px 0;
}

.breadcrumb .content {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.breadcrumb .content a {
  font-size: 14px;
  margin-right: 5px;
  text-decoration: none;
}

.breadcrumb .content a:hover {
  color: rgb(49, 70, 185);
}

.breadcrumb .content span {
  font-size: 14px;
  margin-left: 5px;
}

@media screen and (max-width: 1280px) {
  .breadcrumb {
    padding: 15px 0;
  }
}

@media screen and (max-width: 767px) {
  .breadcrumb {
    padding: 5px 0;
  }
}

.case-content {
  background: url(../images/cad.jpg) left top / 500px no-repeat, url(../images/cad1.jpg) right bottom / 500px no-repeat;
  width: 100%;
  padding: 60px 0;
}

.case_works {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-right: -35px;
  margin-bottom: -35px;
}

.case_work_item {
  width: 33.333333%;
  margin-bottom: 35px;
  padding-right: 35px;
}

.case_work_item a {
  display: block;
  text-decoration: none;
  transition: .3s;
}

.case_work_item a:hover {
  transform: translatey(-3px);
  opacity: 0.7;
}

.case_work_item_img {
  width: 100%;
}

.case_work_item_img:after {
  padding-top: 100%;
}

.case_work_item_meta {
  width: 100%;
}

.case_work_item_meta span {
  background: #303030;
  color: #FFF;
  display: inline-flex;
  justify-content: center;
  text-align: center;
  min-width: 120px;
  margin: 15px auto 0px;
  padding: 5px 10px;
}

.case_work_item_meta span.new_building {
  background: #9A9B9B;
}

.case_work_item_txt {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  margin-top: 15px;
}

.case_work_item_txt h3 {
  font-size: 20px;
  /* line-height:2; */
}

button.case_work_item_btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 10px;
  border-radius: 3px;
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  color: #FFF;
  border: 0px;
  flex-shrink: 0;
}

button.case_work_item_btn img {
  width: 20px;
  height: 20px;
  margin-left: 15px;
}

@media screen and (max-width: 1280px) {
  .case-content {
    padding: 38px 0;
  }

  .case_works {
    margin-right: -20px;
    margin-bottom: -20px;
  }

  .case_work_item {
    margin-bottom: 20px;
    padding-right: 20px;
  }

  .case_work_item_meta span {
    margin-top: 10px;
  }

  .case_work_item_txt {
    margin-top: 10px;
  }

  .case_work_item_txt h3 {
    font-size: 16px;
  }

  button.case_work_item_btn img {
    width: 16px;
    height: 16px;
    margin-left: 10px;
  }
}

@media screen and (max-width: 767px) {
  .case-content {
    padding: 30px 0;
  }

  .case_works {}

  .case_work_item {
    width: 50%;
  }

}

@media screen and (max-width: 567px) {
  .case_work_item {
    width: 100%;
  }

  .case_work_item a {
    max-width: 350px;
    margin: 0 auto;
  }
}

.case-imges {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  overflow-x: hidden;
  width: 100%;
  height: 100%;
  margin: 20px auto 60px;
}

.case-imgeslist {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 100%;
}

.case-imgeslist figure {
  width: calc(58% - 30px);
}

.case-imgeslist figure:first-child,
.case-imgeslist figure:last-child {
  width: calc(21% - 30px);
}


.case-imges figure:after {
  padding-top: 50%;
}

.case-detail-taglist {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 15px auto;
}

.case-detail-tag {
  background: #303030;
  color: #FFF;
  display: inline-flex;
  justify-content: center;
  text-align: center;
  min-width: 120px;
  margin-right: 10px;
  padding: 5px 10px;
}

.case-detail-tag.new_building {
  background: #9A9B9B;
}

.case-detail-title {
  font-size: 24px;
  margin: 15px auto 20px;
}

.case-detail-text p {
  font-size: 16px;
  line-height: 2;
  margin-bottom: 20px;
}

@media screen and (max-width: 1280px) {
  .case-imges {
    margin: 15px auto 50px;
  }

  .case-imgeslist figure {
    width: calc(58% - 20px);
  }

  .case-imgeslist figure:first-child,
  .case-imgeslist figure:last-child {
    width: calc(21% - 20px);
  }

  .case-detail-taglist {
    margin: 10px auto;
  }

  .case-detail-title {
    font-size: 20px;
    margin: 10px auto 15px;
  }
}

@media screen and (max-width: 767px) {
  .case-imges {
    margin: 10px auto 30px;
  }

  .case-imgeslist figure {
    width: calc(70% - 10px);
  }

  .case-imgeslist figure:first-child,
  .case-imgeslist figure:last-child {
    width: calc(15% - 10px);
  }

  .case-detail-title {
    font-size: 18px;
  }

}

.post-link {
  display: flex;
  justify-content: center;
  margin: 50px auto;
}

.post-link a {
  font-size: 18px;
  font-weight: bolder;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 20px;
  margin: 0 10px;
  border: 1px solid #000;
  border-radius: 3px;
  background: #FFF;
  color: #000;
  text-decoration: none;
  transition: .3s;
}

.post-link a:hover {
  color: #3146b9;
}

/* .post-link a:first-child{
	margin-right:20px;
} */
/*.post-link a:first-child:before{
	content:"←";
	margin-right:5px;
}
.post-link a:last-child{
	transform:translatex(20px);
} 
.post-link a:last-child:after{
	content:"→";
	margin-left:5px;
}*/
@media screen and (max-width: 1280px) {
  .post-link {
    margin: 30px auto;
  }

  .post-link a {
    font-size: 16px;
    margin: 0 15px;
  }

  .post-link a:last-child {
    transform: translatex(15px);
  }

  /* 	.post-link a:first-child{
		margin-right:15px;
	}
	.post-link a:last-child{
		margin-left:15px;	
	} */
}

@media screen and (max-width: 767px) {
  .post-link {
    margin: 20px auto;
  }

  .post-link a {
    font-size: 14px;
    margin: 0 10px;
  }

  .post-link a:last-child {
    transform: translatex(10px);
  }

  /* 	.post-link a:first-child{
		margin-right:10px;
	}
	.post-link a:last-child{
		margin-left:10px;	
	} */
}

.case-link {
  display: flex;
  justify-content: center;
  margin: 50px auto;
}

.case-link a {
  font-size: 18px;
  font-weight: bolder;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  margin: 0 10px;
  border: 1px solid #000;
  border-radius: 3px;
  background: #FFF;
  color: #000;
  text-decoration: none;
  transition: .3s;
}

.case-link a:hover {
  opacity: 0.7;
  background: #ccc;
}

.case-link a img {
  width: 20px;
  height: 16px;
  margin-right: 10px;
}

.case-link a:after {
  content: "→";
  margin-left: 15px;
}

@media screen and (max-width: 1280px) {
  .case-link {
    margin: 30px auto;
  }

  .case-link a {
    font-size: 16px;
    padding: 7px 10px;
  }

  .case-link a img {
    width: 16px;
    height: 12px;
    margin-right: 5px;
  }

  .case-link a:after {
    margin-left: 10px;
  }
}

@media screen and (max-width: 767px) {
  .case-link {
    margin: 20px auto;
  }

  .case-link a {
    font-size: 14px;
    padding: 5px 7px;
  }

  .case-link a img {
    width: 12px;
    height: 10px;
  }

  .case-link a:after {
    margin-left: 5px;
  }

}

.case-detail-text {}

.case-detail-img {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

.case-detail-img li {
  width: calc(33.333% - ((30px * 2) / 3));
}

.case-detail-img li a {
  display: block;

}

.case-detail-img li a figure {}

.case-detail-img li a figure:after {
  padding-top: 100%;
}

@media screen and (max-width: 767px) {
  .case-detail-img {
    gap: 20px;
  }

  .case-detail-img li {
    width: 50%;
    width: calc(50% - 10px);
  }
}


.recruittwocolumn {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px 40px;
  margin: 0 auto 40px;
}

.recruittwocolumn:nth-of-type(even) {
  flex-direction: row-reverse;
}

.recruittwocolumn .pic {
  /* width: 45%; */
  width: calc(50% - 20px);
}

.recruittwocolumn .pic figure:after {
  /* padding-top: 70%; */
  padding-top: 80%;
}

.recruittwocolumn .text {
  /* width: 52%; */
  width: calc(50% - 20px);
}

.recruittwocolumn .text h3 {
  font-size: 20px;
  margin-bottom: 20px;
}

.recruittwocolumn .text p {
  font-size: 16px;
  line-height: 1.8;
}

@media screen and (max-width: 767px) {
  .recruittwocolumn {
    margin: 0 auto 40px;
    width: 100%;
    max-width: 500px;
  }

  .recruittwocolumn .pic {
    width: 100%;
    /* width: 100%;
    max-width: 500px;
    margin:10px auto; */
  }

  .recruittwocolumn .text {
    width: 100%;
    /* width: 100%;
    max-width: 500px;
    margin:10px auto; */
  }

  .recruittwocolumn .text h3 {
    margin-bottom: 10px;
  }
}

.recruitment_content .contactBtn {
  display: flex;
  justify-content: center;
}

.recruitment_content .contactBtn>a {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 25px;
  width: 370px;
  font-size: 18px;
  color: #fff;
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
}

.recruitment_content .contactBtn>a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.recruitment_content .contactBtn>a span:first-child {
  display: inline-block;
  margin-right: 15px;
  width: 20px;
}

.recruitment_content .contactBtn>a span:first-child img {
  width: 100%;
}

@media (max-width:1380px) {
  .recruitment_content .contactBtn>a {
    width: 320px;
  }
}

@media (max-width:1180px) {
  .recruitment_content .contactBtn>a {
    width: 270px;
  }
}

#pagenav {
  display: flex;
  justify-content: center;
  margin-top: 40px;
  line-height: 1;
}

#pagenav>* {
  margin: 0 5px;
  padding: 8px 10px;
  border: 1px solid #222;
  color: #222;
}

#pagenav>a:hover {
  background: #222;
  color: #fff;
  text-decoration: none !important;
}

#pagenav>span {
  background: #222;
  color: #fff;
}

.decorative-lead {
  font-size: 1.2em;
  /* h3より少し小さめなど、デザインに合わせて調整 */
  font-weight: bold;
  margin-bottom: 0.5em;
  background: linear-gradient(90deg, #0066cc, #00aaff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.decorative-lead {
  /* h3と同じフォントサイズ */
  font-size: 32px;
  font-weight: bold;

  /* 中央寄せ */
  text-align: center;

  /* 画像の線と同じ青のグラデーション */
  font-size: 32px;
  background: linear-gradient(to right, rgb(49, 70, 185), rgb(112, 173, 227));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;

  /* 余白調整 */
  margin-bottom: 0.5em;
}

/* ローディング中はフッター固定バナーを非表示 */
body.loading .foot_bot,
body.home.loading .foot_bot {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

/* ローディング完了後に表示 */
body.loaded .foot_bot,
body.home.loaded .foot_bot {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* 記事ナビゲーションの矢印を非表示 */
.post-link a:first-child:before,
.post-link a:last-child:after {
  content: none;
  display: none;
}

/* アーカイブページとシングルページでは初期状態から表示 */
body:not(.home) .top_content,
body:not(.home) .case-content {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* アーカイブページ用 お知らせリストのスタイル調整 */
.case-content .top_news_con_list {
  list-style: none;
  padding: 0;
  margin: 40px 0 0 0;
}

.case-content .top_news_con_list li {
  font-size: 16px;
}

.case-content .top_news_con_list li:last-child {
  border-bottom: 1px solid #ccc;
}

.case-content .top_news_con_list li a {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  padding: 20px 0;
  border-top: 1px solid #ccc;
  transition: 0.2s;
  text-decoration: none;
}

.case-content .top_news_con_list li a:hover {
  background: #eee;
}

.case-content .top_news_con_list_time {
  min-width: 125px;
}

.case-content .top_news_con_list_cate {
  margin: 0 20px;
  min-width: 80px;
  color: rgb(112, 173, 227);
}

.case-content .top_news_con_list_title {
  flex: 1;
}

.case-content .newmark {
  color: rgb(254, 0, 0);
  margin-left: 10px;
  font-weight: bold;
}

/* ページネーション */
.case-content #pagenav {
  margin-top: 60px;
}

@media screen and (max-width: 767px) {
  .case-content .top_news_con_list li a {
    flex-wrap: wrap;
    padding: 15px 0;
  }

  .case-content .top_news_con_list_time {
    min-width: 100px;
  }

  .case-content .top_news_con_list_cate {
    margin: 0 10px;
    min-width: 70px;
  }

  .case-content .top_news_con_list_title {
    flex: auto;
    margin-top: 10px;
    width: 100%;
  }
}


#case-content {
  scroll-margin-top: 100px;
}

@media screen and (max-width: 1280px) {
  #case-content {
    scroll-margin-top: 85px;
  }
}