@charset "utf-8";

/*===============================================
●画面の横幅が769px以上
===============================================*/
@media screen and (min-width : 769px ){
#pc------------------------------------------- {
}
#loading {
  height: 100vh;
  background-color: #fff;
  position: fixed;
  inset: 0;
  z-index: 9999999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

#loading p {
  width: 24.158vw;   /* 330px */
  height: 10.542vw;  /* 144px */
  opacity: 0;
  transform: scale(1);
  transition: opacity 1s ease, transform 0.9s ease;
}

#loading p.show {
  opacity: 1;
}

#loading p.zoomout {
  transform: scale(1.6);
  opacity: 0;
}

#loading.hide {
  opacity: 0;
  visibility: hidden;
}


/* ---------------- helo ---------------- */

#helo {
  background-image: url("../images/pc/index/h_bg.png");
  background-size: cover;
  background-position: center center;
  height: 100vh;
  position: relative;
}
#helo h2 {
  width: 40.7027818448vw;
  height: 21.3030746706vw;
  margin: auto;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}


/* ---------------- about ---------------- */

#about {
  background-color: #005DA5;
  padding-top: 8.785vw; /* 120px */
  position: relative;
}
#about .flex {
  display: flex;
  justify-content: center;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  position: relative;
  z-index: 11;
}
#about .flex .box {
  width: 25%;
  margin-left: 13.177vw; /* 180px */
  margin-right: 5.124vw; /* 70px */
  position: relative;
}
#about .flex .box h3 {
  font-size: 3.29428989751vw;
  font-weight: 500;
  color: #fff;
  line-height: 1.4em;
}
#about .flex .box p {
  color: #fff;
  line-height: 2em;
  margin-top: 2.196vw; /* 30px */
}
#about .flex .box2 {
  width: 45%;
}
#about .flex .box2 nav {
  margin-top: 8.785vw; /* 120px */
}
#about .flex .box2 nav ul {
  border-bottom: 1px solid #86ABD3; /* 1px */
}
#about .flex .box2 nav li a {
  display: block;
  border-top: 1px solid #86ABD3; /* 1px */
  background-color: #fff;
  font-size: 1.318vw; /* 18px */
  color: #000;
  text-decoration: none;
  padding: 1.098vw 0.732vw; /* 15px 10px */
  font-weight: 500;
  position: relative;
  overflow: hidden;
}

#about .flex .box2 nav li a::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-image: url("../images/pc/viewmore_blue.png");
  background-size: 10.761vw 3.66vw; /* 147px 50px */
  background-position: center right;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.3s;
}

#about .flex .box2 nav li a:hover::after {
  opacity: 1;
}
#about .flex .box2 nav li a span {
  font-size: 0.878vw; /* 12px */
  font-family: "Josefin Sans", sans-serif;
  color: #0D57A7;
  display: block;
  margin-bottom: -0.146vw; /* -2px */
}
#about .inner {
  position: relative;
  background-color: #fff;
  clip-path: polygon(0 18.302vw, 100% 0, 100% 100%, 0 100%); /* 250px */
  margin-top: -36vw;
  z-index: 1;
  height: 36vw;
}
#about .fig01 {
  margin-top: 5.857vw; /* 80px */
}
#about .fig02 {
  width: 18.5695461201vw;
  margin-left: -22.5vw;
  margin-top: -3.66vw; /* -50px */
  z-index: 99;
}


/* ---------------- products ---------------- */

#products {
  margin-top: -1px;       /* -1px */
  border-top: 1px solid #fff; /* 1px */
  position: relative;
  padding-top: 14.641vw;      /* 200px */
}
#products .about-banner {
  position: absolute;
  right: 8vw;
  top: 14.641vw; /* 200px */
}
#products .jp {
  color: #000;
  position: relative;
}
#products .en {
  color: #0D57A7;
}
#products .flex {
  display: flex;
  justify-content: center;
  align-items: center;
}
#products .flex:nth-of-type(1) {
  flex-direction: row-reverse;
  margin-bottom: 5.857vw; /* 80px */
}
#products .flex figure {
  background-image: url("../images/pc/index/products_p01.png");
  height: 29.8682284041vw;
  width: 55%;
  background-size: cover;
  background-position: center center;
}
#products .flex:nth-of-type(2) figure {
  background-image: url("../images/pc/index/products_p02.png");
}
#products .flex .box {
  width: 45%;
}
#products .flex .box div {
  width: 19.0336749634vw;
  text-align: left;
  margin-left: 7.32064421669vw;
}
#products .flex:nth-of-type(2) .box div {
  width: 19.0336749634vw;
  text-align: left;
  margin-left: auto;
  margin-right: 7.32064421669vw;
}
#products .flex .box div h3 {
  font-size: 1.757vw; /* 24px */
}
#products .flex .box div h3 span {
  display: block;
  color: #0D57A7;
  font-family: "Josefin Sans", sans-serif;
  font-size: 1.025vw; /* 14px */
}
#products .flex .box div p {
  line-height: 2em;
  margin-top: 1.464vw; /* 20px */
}


/* ---------------- equipment ---------------- */

#equipment {
  background-image: url("../images/pc/index/equipment_bg.png");
  background-size: cover;
  background-position: top center;
  height: 48.682284041vw;
  min-height: 43.924vw; /* 600px */
  margin-top: -3vw;
}
#equipment h2 {
  font-size: 1.318vw; /* 18px */
  color: #fff;
  font-weight: 500;
  padding-top: 24vw; /* 24.5px→24.5/1366*100 */
  margin-bottom: 2.928vw; /* 40px */
}
#equipment h2 span {
  font-size: 5.857vw; /* 80px */
  font-weight: 600;
  font-family: "Josefin Sans", sans-serif;
  display: block;
  margin-bottom: 1.83vw; /* 25px */
}
#equipment h2+p {
  color: #fff;
  line-height: 2em;
  margin-bottom: 2.196vw; /* 30px */
}
#equipment p a img {
  width: 3.66vw; /* 50px */
}


/* ---------------- company ---------------- */

#company {
  background-color: #000;
  padding-top: 9.517vw;   /* 130px */
  padding-bottom: 27.818vw; /* 380px */
}
#company h2 {
  color: #fff;
  font-size: 1.318vw; /* 18px */
  text-align: left;
}
#company h2 span {
  color: #0D57A7;
  font-size: 5.857vw; /* 80px */
  font-weight: 600;
  display: block;
  margin-bottom: 1.83vw; /* 25px */
  font-family: "Josefin Sans", sans-serif;
}
#company .inner {
  width: 82.4304538799vw;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
#company .inner h2+p {
  text-align: left;
  color: #fff;
  width: 25.0366032211vw;
  margin-top: 2.562vw;  /* 35px */
  line-height: 2em;
  margin-bottom: 8.053vw; /* 110px */
}
#company .inner .flex {
  display: flex;
  justify-content: space-between;
}
#company .inner .flex div {
  width: 26.5007320644vw;
  height: 26.5007320644vw;
  position: relative;
  overflow: hidden;
}
#company .inner .flex div::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/pc/index/company_p01.png");
  background-size: cover;
  background-position: center center;
  transition: transform 0.6s ease;
  transform: scale(1);
  z-index: 0;
}
#company .inner .flex div:nth-of-type(2) {
  top: -2.928vw; /* -40px */
}
#company .inner .flex div:nth-of-type(3) {
  top: -5.857vw; /* -80px */
}
#company .inner .flex div:nth-of-type(2)::before {
  background-image: url("../images/pc/index/company_p02.png");
}
#company .inner .flex div:nth-of-type(3)::before {
  background-image: url("../images/pc/index/company_p03.png");
}
#company .inner .flex+.flex div:nth-of-type(1)::before {
  background-image: url("../images/pc/index/company_p04.png");
}
#company .inner .flex+.flex div:nth-of-type(2)::before {
  background-image: url("../images/pc/index/company_p05.png");
}
#company .inner .flex+.flex div {
  height: 16.8374816984vw;
}

/* クリック領域 */
#company .inner .flex div > a {
  position: absolute;
  inset: 0;
  z-index: 2;
}

/* hover で背景拡大 */
#company .inner .flex div > a:hover ~ ::before,
#company .inner .flex div:has(> a:hover)::before {
  transform: scale(1.1);
}
#company .inner .flex div p {
  position: absolute;
  left: 2.196vw;   /* 30px */
  bottom: 2.196vw; /* 30px */
  font-size: 1.757vw; /* 24px */
  color: #fff;
}
#company .inner .flex div p span {
  font-size: 1.025vw; /* 14px */
  font-family: "Josefin Sans", sans-serif;
  display: block;
  margin-bottom: 0.586vw; /* 8px */
}

/* 丸ボタン */
.viewmore3 {
  display: inline-block;
  width: 3.66vw;   /* 48px */
  height: 3.66vw;  /* 48px */
  border-radius: 50%;
  border: 1px solid #fff; /* 1px */
  position: absolute;
  right: 2.196vw;  /* 30px */
  bottom: 2.196vw; /* 30px */
  overflow: hidden;
  transition: background-color .45s cubic-bezier(.22,1,.36,1),
              border-color .45s cubic-bezier(.22,1,.36,1);
}
.viewmore3::before {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 1.171vw;  /* 16px */
  height: 0.512vw; /* 7px */
  background: url("../images/pc/arrow_white.png") no-repeat center/contain;
  transform: translate(-50%, -50%);
  opacity: 1;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              opacity .45s cubic-bezier(.22,1,.36,1);
}
.viewmore3::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 1.171vw;  /* 16px */
  height: 0.512vw; /* 7px */
  background: url("../images/pc/arrow_white.png") no-repeat center/contain;
  transform: translate(-50%, -50%) translateX(-1.318vw); /* -18px */
  opacity: 0;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              opacity .45s cubic-bezier(.22,1,.36,1);
}
div:has(> a:hover) .viewmore3 {
  background-color: #0D57A7;
  border-color: #0D57A7;
}
div:has(> a:hover) .viewmore3::before {
  transform: translate(-50%, -50%) translateX(1.318vw); /* 18px */
  opacity: 0;
}
div:has(> a:hover) .viewmore3::after {
  transform: translate(-50%, -50%) translateX(0);
  opacity: 1;
}
div > a {
  position: absolute;
  inset: 0;
  z-index: 2;
}
#company .inner .flex div a {
  position: absolute;
  left: 0; top: 0;
  width: 100%;
  height: 100%;
}
#company .inner .flex+.flex {
  width: 54.5263543192vw;
  margin-left: auto;
  margin-right: auto;
  margin-top: 8.785vw; /* 120px */
}


/* ---------------- recruit ---------------- */

#recruit {
  background-image: url("../images/pc/index/recruit_bg.png");
  background-size: cover;
  background-position: top 0 center; /* 0px -> 0 */
  background-repeat: no-repeat;
  height: 55.682284041vw;
  margin-top: -32vw;
  position: relative;
  z-index: 99;
}
#recruit h2 {
  font-size: 1.318vw; /* 18px */
  color: #fff;
  font-weight: 500;
  padding-top: 27vw; /* 24.5px */
  margin-bottom: 2.928vw; /* 40px */
}
#recruit h2 span {
  font-size: 5.857vw; /* 80px */
  font-weight: 600;
  font-family: "Josefin Sans", sans-serif;
  display: block;
  margin-bottom: 1.83vw; /* 25px */
}
#recruit h2+p {
  color: #fff;
  line-height: 2em;
  margin-bottom: 2.196vw; /* 30px */
}
#recruit p a img {
  width: 3.66vw; /* 50px */
}
#recruit .viewmore2 a::after {
  background: url("../images/pc/arrow_white.png") no-repeat center/contain;
}

/* hover時：円を青に変え、矢印を切り替え */
#recruit .viewmore2 a:hover {
  background-color: #0D57A7;
  border-color: #0D57A7;
}


/* ---------------- contact ---------------- */

#contact {
  background-color: #005DA5;
  padding-top: 9.517vw;  /* 130px */
  padding-bottom: 6.589vw; /* 90px */
}
#contact .flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  width: 82.4304538799vw;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
#contact .flex div h2 {
  font-size: 1.318vw; /* 18px */
  color: #fff;
  margin-bottom: 2.196vw; /* 30px */
}
#contact .flex div h2 span {
  font-size: 5.857vw; /* 80px */
  font-weight: 600;
  font-family: "Josefin Sans", sans-serif;
  display: block;
  margin-bottom: 2.196vw; /* 30px */
}
#contact .flex div h2+p {
  color: #fff;
  line-height: 2em;
}
#contact .flex div+div {
  width: 24.89vw; /* 340px */
}
#contact .flex div .tel {
  font-family: "Josefin Sans", sans-serif;
  font-size: 3.807vw; /* 52px */
}
#contact .flex div .tel a {
  color: #fff;
  text-decoration: none;
}
#contact .flex div .tel a img {
  width: 2.05vw;   /* 28px */
  position: relative;
  top: -0.878vw;   /* -12px */
  margin-right: 0.366vw; /* 5px */
}
#contact .flex div .tel +p {
  color: #fff;
  text-align: center;
}
#contact .flex div .btn a {
  display: block;
  color: #fff;
  text-decoration: none;
  text-align: center;
  height: 4.246vw;      /* 58px */
  line-height: 4.246vw; /* 58px */
  border: 1px solid #fff; /* 1px */
  border-radius: 100px;
  margin-top: 1.464vw;  /* 20px */
  position: relative;
  overflow: hidden;
  transition: background-color .45s cubic-bezier(.22,1,.36,1),
              border-color .45s cubic-bezier(.22,1,.36,1);
}
#contact .flex div .btn a:hover {
  background-color: #fff;
  color: #005DA5;
}

/* 初期の矢印（右側に白） */
#contact .flex div .btn a::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.464vw; /* 20px */
  width: 1.098vw; /* 15px */
  height: 1.098vw; /* 15px */
  background: url("../images/pc/arrow_white.png") no-repeat center/contain;
  transform: translateY(-50%) translateX(0);
  opacity: 1;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              opacity .45s cubic-bezier(.22,1,.36,1);
}

/* hover用の矢印（青） */
#contact .flex div .btn a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.464vw; /* 20px */
  width: 1.098vw; /* 15px */
  height: 1.098vw; /* 15px */
  background: url("../images/pc/arrow_blue.png") no-repeat center/contain;
  transform: translateY(-50%) translateX(-1.318vw); /* -18px */
  opacity: 0;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              opacity .45s cubic-bezier(.22,1,.36,1);
}

/* hover時のアニメ */
#contact .flex div .btn a:hover::before {
  transform: translateY(-50%) translateX(1.318vw); /* 18px */
  opacity: 0;
}
#contact .flex div .btn a:hover::after {
  transform: translateY(-50%) translateX(0);
  opacity: 1;
}

}



/*===============================================
●画面の横幅が768pxまで
===============================================*/
@media screen and (max-width:768px){
	
/*===============================================
●sp-tablet
===============================================*/
#sptablet------------------------------------------- {
}
#loading {
  height: 100vh;
  background-color: #fff;
  position: fixed; /* fixedにして全画面覆う */
  inset: 0;
  z-index: 9999999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

#loading p {
  width: 70vw;
  height: 38.4vw;
  opacity: 0;
  transform: scale(1);
  transition: opacity 1s ease, transform 0.9s ease;
}

#loading p.show {
  opacity: 1;
}

#loading p.zoomout {
  transform: scale(1.6);
  opacity: 0;
}

#loading.hide {
  opacity: 0;
  visibility: hidden;
}






#helo {
	background-image: url("../images/sp/index/h_bg.png");
	background-size: cover;
	background-position: center center;
	height: 100vh;
	position: relative;
}
#helo h2 {
	width: 73.3333333333vw;
	height: 39.4666666667vw;
	margin: auto;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
}



#about {
	background-color: #005DA5;
	padding-top: 15vw;
	position: relative;
}
#about .flex {
	text-align: left;
	position: relative;
	z-index: 11;
}
#about .flex h2 {
	color: #fff;
	margin-left: 7vw;
}
#about .flex h2 .en {
	font-size: 13.3333333333vw;
	font-family: "Josefin Sans", sans-serif;
}
#about .flex h2 .jp {
	font-size: 4.8vw;
	display: block;
	margin-top: 2vw;
}
#about .flex .box {
	margin-left: 5vw;
	margin-right: 5vw;
	position: relative;
	z-index: 11;
}
#about .flex .box h3 {
	font-size: 12vw;
	font-weight: 500;
	color: #fff;
	line-height: 1.4em;
	margin-top: 8vw;
}
#about .flex .box p {
	color: #fff;
	line-height: 2em;
	margin-top: 6vw;
}
#about .flex .box figure {
	margin-top: 10vw;
	margin-bottom: 8vw;
}
#about .flex .box2 {
	background-color: #fff;
	clip-path: polygon(0 18vw, 100% 0, 100% 100%, 0 100%);
	padding-top: 40vw;
	margin-top: -40vw;
}
#about .flex .box2 nav {
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	padding-top: 2vw;
}
#about .flex .box2 nav ul {
	border-bottom: 1px solid #86ABD3;
}
#about .flex .box2 nav li a {
  display: block;
  border-top: 1px solid #86ABD3;
  background-color: #fff;
  font-size: 4.8vw;
  color: #000;
  text-decoration: none;
  padding-left: 2vw;
  padding-top: 3vw;
  padding-bottom: 3vw;
  font-weight: 500;
  position: relative; /* 疑似要素を配置するために必要 */
  overflow: hidden;
}

#about .flex .box2 nav li a::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-image: url("../images/pc/viewmore_blue.png");
  background-size: 39.2vw;
  background-position: center right;
  background-repeat: no-repeat;
  opacity: 0;                 /* 最初は透明 */
  transition: opacity 0.3s;   /* フェード用 */
}

#about .flex .box2 nav li a:hover::after {
  opacity: 1; /* ホバー時にふわっと表示 */
}
#about .flex .box2 nav li a span {
	font-size: 3.2vw;
	font-family: "Josefin Sans", sans-serif;
	color: #0D57A7;
	display: block;
	margin-bottom: -2px;
}
#about .box2 .fig01 {
	text-align: right;
	margin-right: 5vw;
	margin-top: 8vw;
}
#about .box2 .fig01 img {
	width: 50.4vw;
}
#about .box2 .fig02 {
	margin-top: -16vw;
}
#about .box2 .fig02 img {
	width: 36.2666666667vw;
}





#products {
	margin-top: -1px;
	border-top: 1px solid #fff;
	position: relative;
	padding-top: 25vw;
	position: relative;
}
#products  h2 {
	color: #fff;
	margin-left: 7vw;
	text-align: left;
}
#products  h2 .en {
	font-size: 13.3333333333vw;
	font-family: "Josefin Sans", sans-serif;
}
#products  h2 .jp {
	font-size: 4.8vw;
	display: block;
	margin-top: 2vw;
}
#products .jp {
	color: #000;
	position: relative;
}
#products .en {
	color: #0D57A7;
}
#products .flex {
	display: flex;
	flex-direction: column-reverse;
}
#products .flex:nth-of-type(1) {
	margin-top: 10vw;
}
#products .flex figure {
	background-image: url("../images/pc/index/products_p01.png");
	width: 100%;
	height: 57.0666666667vw;
	background-size: cover;
	background-position: center center;
}
#products .flex:nth-of-type(2) figure {
	background-image: url("../images/pc/index/products_p02.png");
}
#products .flex .box {
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 7vw;
}
#products .flex .box div {
	text-align: left;
}
#products .flex:nth-of-type(2) .box div {
	text-align: left;
	margin-left: auto;
}
#products .flex .box div h3 {
	font-size: 6.4vw;
	margin-top: 6vw;
}
#products .flex .box div h3 span {
	display: block;
	color: #0D57A7;
	font-family: "Josefin Sans", sans-serif;
	font-size: 3.73333333333vw;
}
#products .flex .box div h3+p {
	line-height: 2em;
	margin-top: 5vw;
}



#equipment {
	background-image: url("../images/pc/index/equipment_bg.png");
	background-size: cover;
	background-position: top center;
	height: 135vw;
	margin-top: -28vw;
}
#equipment h2 {
	font-size: 4.8vw;
	color: #fff;
	font-weight: 500;
	padding-top: 60vw;
	margin-bottom: 8vw;
}
#equipment h2 span {
	font-size: 13.3333333333vw;
	font-weight: 600;
	font-family: "Josefin Sans", sans-serif;
	display: block;
	margin-bottom: 4vw;
}
#equipment h2+p {
	color: #fff;
	line-height: 2em;
	margin-bottom: 30px;
}
#equipment p a img {
	width: 50px;
}



#company {
	background-color: #000;
	padding-top: 15vw;
	padding-bottom: 25vw;
}
#company h2 {
	color: #fff;
	font-size: 4.8vw;
	text-align: left;
}
#company h2 span {
	color: #0D57A7;
	font-size: 13.3333333333vw;
	font-weight: 600;
	display: block;
	margin-bottom: 4vw;
	font-family: "Josefin Sans", sans-serif;
}
#company .inner {
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	width: 90%;
}
#company .inner h2+p {
	text-align: left;
	color: #fff;
	margin-top: 8vw;
	line-height: 2em;
	margin-bottom: 12vw;
}
#company .inner .flex {
}
#company .inner .flex div {
  height: 65.3333333333vw;
  position: relative;
  margin-bottom: 5vw;
  overflow: hidden; /* 背景がはみ出さないように */
}

/* 背景用の擬似要素 */
#company .inner .flex div::before {
  content: "";
  position: absolute;
  inset: 0; /* top:0; right:0; bottom:0; left:0; と同じ */
  background-image: url("../images/pc/index/company_p01.png");
  background-size: cover;
  background-position: center center;
  transition: transform 0.6s ease; /* アニメーション */
  transform: scale(1); /* 初期状態 */
  z-index: 0;
}
#company .inner .flex div:nth-of-type(2)::before {
  background-image: url("../images/pc/index/company_p02.png");
}
#company .inner .flex div:nth-of-type(3)::before {
  background-image: url("../images/pc/index/company_p03.png");
}
#company .inner .flex+.flex div:nth-of-type(1)::before {
  background-image: url("../images/pc/index/company_p04.png");
}
#company .inner .flex+.flex div:nth-of-type(2)::before {
  background-image: url("../images/pc/index/company_p05.png");
}
#company .inner .flex+.flex div {
	height: 16.8374816984vw;
}


/* aはクリック領域。全体をカバーしてhover検知 */
#company .inner .flex div > a {
  position: absolute;
  inset: 0;
  z-index: 2;
}

/* aにhoverしたら背景拡大 */
#company .inner .flex div > a:hover ~ ::before,
#company .inner .flex div:has(> a:hover)::before {
  transform: scale(1.1);
}
#company .inner .flex div p {
	position: absolute;
	left: 7vw;
	bottom: 7vw;
	font-size: 6.4vw;
	color: #fff;
}
#company .inner .flex div p span {
	font-size: 3.73333333333vw;
	font-family: "Josefin Sans", sans-serif;
	display: block;
	margin-bottom: 2vw;
}
/* 丸ボタン（矢印はここに描画） */
.viewmore3 {
  display: inline-block;
  width: 13.3333333333vw;
  height: 13.3333333333vw;
  border-radius: 50%;
  border: 1px solid #fff;   /* 初期は青い枠 */
  position: absolute;
  right: 7vw;
  bottom: 7vw;
  overflow: hidden;
  transition: background-color .45s cubic-bezier(.22,1,.36,1),
              border-color .45s cubic-bezier(.22,1,.36,1);
}

/* 初期の青い矢印（中央） */
.viewmore3::before {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 4vw; height: 1.6vw;
  background: url("../images/pc/arrow_white.png") no-repeat center/contain;
  transform: translate(-50%, -50%);
  opacity: 1;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              opacity .45s cubic-bezier(.22,1,.36,1);
}

/* 白い矢印（初期は左から待機・非表示） */
.viewmore3::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 4vw; height: 1.6vw;
  background: url("../images/pc/arrow_white.png") no-repeat center/contain;
  transform: translate(-50%, -50%) translateX(-18px);
  opacity: 0;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              opacity .45s cubic-bezier(.22,1,.36,1);
}

/* ==========================
   a に hover したときの動き
   ========================== */
div:has(> a:hover) .viewmore3 {
  background-color: #0D57A7;  /* 円を青に */
  border-color: #0D57A7;
}

div:has(> a:hover) .viewmore3::before {
  transform: translate(-50%, -50%) translateX(18px); /* 右へ抜ける */
  opacity: 0;
}

div:has(> a:hover) .viewmore3::after {
  transform: translate(-50%, -50%) translateX(0);     /* 中央で止まる */
  opacity: 1;
}

/* a は透明カバー（全体クリック可能に） */
div > a {
  position: absolute;
  inset: 0;         /* top/left/right/bottom全部0 */
  z-index: 2;
}
#company .inner .flex div a {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
}
#company .inner .flex+.flex {
	margin-left: auto;
	margin-right: auto;
}
#company .inner .flex+.flex div {
	height: 48vw
}





#recruit {
	background-image: url("../images/sp/index/recruit_bg.png");
	background-size: cover;
	background-position: top 0px center;
	background-repeat: no-repeat;
	height: 128vw;
	margin-top: -23.5vw;
	position: relative;
	z-index: 99;
	background-color: #000;
}
#recruit h2 {
	font-size: 4.8vw;
	color: #fff;
	font-weight: 500;
	padding-top: 44.5vw;
	margin-bottom: 7vw;
}
#recruit h2 span {
	font-size: 13.3333333333vw;
	font-weight: 600;
	font-family: "Josefin Sans", sans-serif;
	display: block;
	margin-bottom: 4vw;
}
#recruit h2+p {
	color: #fff;
	line-height: 2em;
	margin-bottom: 30px;
}
#recruit p a img {
	width: 50px;
}




#contact {
	background-color: #005DA5;
	padding-top: 20vw;
	padding-bottom: 15vw;
}
#contact .flex {
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
}
#contact .flex div h2 {
	font-size: 4.8vw;
	color: #fff;
	margin-bottom: 30px;
}
#contact .flex div h2 span {
	font-size: 13.3333333333vw;
	font-weight: 600;
	font-family: "Josefin Sans", sans-serif;
	display: block;
	margin-bottom: 4vw;
}
#contact .flex div h2+p {
	color: #fff;
	line-height: 2em;
}

#contact .flex div .tel {
	font-family: "Josefin Sans", sans-serif;
	font-size: 13.3333333333vw;
	margin-top: 10vw;
}
#contact .flex div .tel a {
	color: #fff;
	text-decoration: none;
}
#contact .flex div .tel a img {
	width: 6.93333333333vw;
	position: relative;
	top: -12px;
	margin-right: 5px;
}
#contact .flex div .tel +p {
	color: #fff;
	text-align: center;
}
#contact .flex div .btn a {
  display: block;
  color: #fff;
  text-decoration: none;
  text-align: center;
  height: 15.4666666667vw;
  line-height: 15.4666666667vw;
  border: 1px solid #fff;
  border-radius: 100px;
  margin-top: 20px;
  position: relative;
  overflow: hidden;
  transition: background-color .45s cubic-bezier(.22,1,.36,1),
              border-color .45s cubic-bezier(.22,1,.36,1);
}
#contact .flex div .btn a:hover {
	background-color: #fff;
	color: #005DA5;
}

/* 初期の矢印（右側に白い矢印） */
#contact .flex div .btn a::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 4vw;
  height: 1.6vw;
  background: url("../images/pc/arrow_white.png") no-repeat center/contain;
  transform: translateY(-50%) translateX(0);
  opacity: 1;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              opacity .45s cubic-bezier(.22,1,.36,1);
}

/* hover用の矢印（右側・少し左から入ってくる） */
#contact .flex div .btn a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 4vw;
  height: 1.6vw;
  background: url("../images/pc/arrow_blue.png") no-repeat center/contain;
  transform: translateY(-50%) translateX(-18px);
  opacity: 0;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              opacity .45s cubic-bezier(.22,1,.36,1);
}

/* hover時：矢印アニメーション */
#contact .flex div .btn a:hover::before {
  transform: translateY(-50%) translateX(18px); /* 右に抜けて消える */
  opacity: 0;
}
#contact .flex div .btn a:hover::after {
  transform: translateY(-50%) translateX(0); /* 中央に収まる */
  opacity: 1;
}
}



/*===============================================
●画面の横幅が400pxまで
===============================================*/
@media screen and (max-width:400px){
/*===============================================
●sp400
===============================================*/
#sp400------------------------------------------- {
}
}



/*===============================================
●画面の横幅が320pxまで
===============================================*/
@media screen and (max-width:320px){
/*===============================================
●sp320
===============================================*/
#sp320------------------------------------------- {
}
}



/*===============================================
●画面の横幅が481pxから768pxまで
===============================================*/
@media screen and (min-width:481px) and (max-width:768px) {
/*===============================================
●tablet
===============================================*/
#tab------------------------------------------- {
}
}