@charset "UTF-8";
html { 
	font-size: 62.5%;
}
body {
	font-size: 14px;
	font-size: 1.4rem;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS P Gothic", sans-serif;
	color: #404040;
	margin: 0 auto;
	padding: 0;
	background-color: #FFF;
}
a {
	color: #1d3a5b;
}
a:hover {
	color: #f58020;
}
p {
	line-height: 150%;
	font-size: 14px;
	font-size: 1.4rem;
	padding: 6px 0;
}
img {
  max-width: 100%;
  max-height: 100%;
}
.textSmall {
	font-size: 12px;
	font-size: 1.2rem;
}
.textCopyright {
	line-height: 150%;
	color: #515151;
	font-size: 10px;
	font-size: 1.0rem;
}
.copyrightMark {
	font-family: "Times New Roman", "Times";
}
.imageCopyright {
	padding-bottom: 5px;
}
.center {
	text-align: center;
}
.white {
	color: #FFF;
}
.orange {
	color: #f58020;
}
.wrapper {
  margin: 0 auto;
}
.contentBlock {
  width:100%;
  position:relative;
  top:0;
  left:0;
  right: 0;
  margin: auto;
  overflow: hidden;
  background: url(../images/bg.jpg);
  background-position: center top;
  background-repeat: no-repeat;
  background-size:  cover;
}
@keyframes charHonky {
  0% { transform: translate(0, 0);}
  8% { transform: translate(0,-70px);}
  16% { transform: translate(0, 0);}
  32% { transform: translate(0, 0);}
  40% { transform: translate(0, -150px);}
  48% { transform: translate(0, 0);}
  64% { transform: translate(0, 0);}
  72% { transform: translate(0, -300px);}
  80% { transform: translate(0, 0);}
  100% { transform: translate(0, 0);}
}
@keyframes charTonk {
  0% { transform: translate(0, 0);}
  16% { transform: translate(0, 0);}
  24% { transform: translate(0, -70px);}
  32% { transform: translate(0, 0);}
  48% { transform: translate(0, 0);}
  56% { transform: translate(0, -150px);}
  64% { transform: translate(0, 0);}
  80% { transform: translate(0, 0);}
  88% { transform: translate(0, -300px);}
  96% { transform: translate(0, 0);}
  100% { transform: translate(0, 0);}
}
.contentWrapper {
  width: 1024px;
  margin: auto;
  background-color: rgba(255,255,255,0.88);
  background-image: url("../images/catTitleBg.png");
  background-position: top left;
  background-repeat: no-repeat;
  padding: 3.2em 6.2em 1em;
}
.aboutLine {
  width: 100%;
  margin: auto;
  padding: 2.0em 0;
}
.aboutLine > div {
  margin: 0 auto 3.0em;
}
.aboutLine > div:last-child {
  margin-bottom: 0;
}
h2 {
  font-size: 2.0rem;
  margin-bottom: 1.0em;
}
.toTopLine {
  background-color: #fff;
}
.toTopLine a {
  position: fixed;
  bottom: 2%;
  right: 2%;
  text-align: center;
}
.toTopLine a:hover {
  transition: 0.3s ease-in-out;
  bottom: 3%;
  right: 2%;
}

/* Loading */
#loader-bg {
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  text-align: center;
  vertical-align: middle;
  background-color: #fff;
  z-index:1001;
}
#loader {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  color: #fff;
  z-index:1002;
}
.loader-img{
  position:absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 180px;
  height: 180px;
  animation: load 5.0s linear infinite;
}
@keyframes load {
  0% { transform: rotate(0); }
  50% {transform: rotate(180deg); }
  100% { transform: rotate(0); }
}

/* header */
.headerBlock {
  padding: 1.0em 1.0em 2.0em;
  background-color: #fff;
}
.topLogo {
  margin-bottom: 1.0em;
}
.topLogo h1 {
  width: 20%;
  margin: 0;
}
.gNav ul {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-around;
  justify-content: space-around;
}
.gNav li a {
  font-size: 2.4rem;
  font-weight: bold;
  color: #1d3a5b;
  text-decoration: none;
  position: relative;
}
.gNav li a:after {
  position: absolute;
  content: "";
  width: 0;
  height: 8px;
  bottom: -10px;
  left: -10px;
  background-color: #ef7f01;
  transition: 0.2s;
}
.gNav li a:hover:after {
  width: calc(100% + 20px);
}
.gNav li a.activeNav:after {
  position: absolute;
  content: "";
  width: calc(100% + 20px);
  height: 8px;
  bottom: -10px;
  left: -10px;
  background: linear-gradient(90deg,#ef7f01 0%,#ef7f01 30px,#1d3a5b 30px,#1d3a5b 100%);
}

/* footer */
.banners {
	width: 100%;
	overflow: hidden;
	text-align: center;
	margin: 0 auto;
	padding-bottom: 10px;
}
.banners a img {
	margin: 0 8px;
}
.banners a:hover img {
	margin: 0 8px;
  box-shadow: 2px 2px 2px;
}
.banners ul {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  list-style: none;
  width: 1024px;
  margin: auto;
}
.banners ul li {
  width: 33%;
  margin-bottom: 0.8em;
}
.footer {
  padding: 1.0em;
	clear: both;
  background-color: #fff;
}

/* Home */
#home .contentBlock {
  width: 100%;
  margin: 0 auto;
}
#home .contentBlock img {
  width: 100%;
}
.cnt00 {
  position:relative;
  width: 62.25%;
  max-width: 2560px;
  max-height: 1600px;
  margin: auto;
  z-index:0;
}
.cnt01sp, .cnt02sp, .cnt03sp {
  display: none;
}
.cnt01, .cnt02, .cnt03, .cnt04, .cnt01sp, .cnt02sp, .cnt03sp {
  position: absolute;
  width:100%;
  max-width: 2560px;
  max-height: 1600px;
  top:0;
  left:0;
  right: 0;
  margin: auto;
}
.cnt01, .cnt01sp {
  z-index: 100;
}
.cnt02, .cnt02sp {
  z-index: 99;
}
.cnt03sp {
  z-index: 98;
}
.cnt04 {
  z-index: 97;
  display: flex;
  width: 100%;
  height: 100%;
  background: url("../images/bg01.png") repeat-x;
  background-position: 0 0;
  background-size: 100%;
  top: 12%;
  animation: loop 120s -60s linear infinite;
}
.cnt01 img, .cnt02 img, .cnt03 img, .cnt04 img {
  max-width: 100%;
}
.cnt01 img {
  animation: cnt01 2.4s linear infinite;
}
@keyframes cnt01 {
  0% { transform: translate(0, 0); }
  50% {transform: translate(0, -1.0rem); }
  100% { transform: translate(0, 0); }
}
@keyframes cnt01sp {
  0% { transform: translate(0, 0); }
  50% {transform: translate(0, -1.0vw); }
  100% { transform: translate(0, 0); }
}
@keyframes loop {
  from { background-position: -2918px 0; }
  to { background-position: 0 0; }
}

/* Company */
#company {
  position: relative;
}
#company .aboutLine {
  width: 80%;
  margin: auto;
  padding: 2.0em 0;
}
#company table {
  width: 100%;
  margin: auto;
}
#company table tr {
  line-height: 150%;
  font-size: 1.4rem;
}
#company table td {
  border-bottom: solid 1px #ccc;
  padding: 1.0em 2.0em 1.0em 0;
}
#company table td:first-child {
  width: 120px;
  text-align-last: justify;
  -moz-text-align-last: justify;
}
#company table td:last-child {
  padding-right: 0;
}
#company .caption03 table td:first-child {
  padding-right: 4.2em;
}

/* philosophy */
#philosophy .caption01 img {
  width: 50%;
}
#philosophy .caption01 > div {
  text-align: center;
}
#philosophy .caption01 p {
  text-align: center;
  line-height: 1.8;
  font-size: 1.6rem;
}
#philosophy .caption02 > p:first-of-type {
  margin-bottom: 1.0em;
}
#philosophy .caption02 > p:last-of-type {
  text-align: center;
}
#philosophy .caption02 ul {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  list-style: none;
}
#philosophy .caption02 ul li {
  width: 33%;
  margin-bottom: 0.4em;
  margin-right: 0.5%
}
#philosophy .caption02 ul li:nth-child(3n) {
  margin-right: 0;
}
#philosophy .caption02 ul li p {
  padding: 0;
}

/* access */
#access .caption01 > p:first-of-type {
  margin-bottom: 1.0em;
}
#access .caption01 ul {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 auto 1.2em;
}
#access .caption01 ul li {
  width: 33%;
  margin-bottom: 0.8em;
  margin-right: 0.5%;
}
#access .caption01 ul li:nth-child(3n) {
  margin-right: 0;
}
#access .caption01 ul li p {
  padding: 0;
}
/*#access .caption02 p:nth-child(4), #access .caption03 p:nth-child(4) {
  text-align: center;
}*/

/* recruite */
#recruite .recruiteInfo {
  text-align: center;
}
#recruite .application a {
  position: relative;
  width: 25%;
  margin: auto;
  text-align: center;
  border-radius: 1.0rem;
  display: block;
  padding: 2.0em 0;
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  background-color: #60699b;
}
#recruite .application a:hover {
  transition: 0.3s ease-in-out;
  background-color: #ef8000;
}

/* 2021/01/12 追記 */
/* attention */
#home .attention {
  width: 1024px;
  margin: 1.0em auto;
  border: solid 2px #000;
  padding: 1.0em 2.0em;
}
#home .attention p:first-child {
  text-align: center;
  color: red;
  font-weight: bold;
}
#home .attention p:last-child {
  text-align: right;
}
p.tatCenter {
  text-align: center;
}

/* 2024/05/14 追記 */
/* mitarecruite */
#mitarecruite .contentBlock {
	background-attachment: fixed;
}
#mitarecruite .contentBlock ul.office-info,
#mitarecruite .contentBlock ul.staff-info li {
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: space-around;
	justify-content: space-around;
	align-items: flex-end;
	flex-wrap: wrap;
}
#mitarecruite .entrance-info {
	width: 60%;
}
#mitarecruite .contentBlock ul.office-info li {
	width: 49%;
	margin-bottom: 2.0rem;
}
#mitarecruite .contentBlock li:nth-child(1) {
	display: block;
}

#mitarecruite .contentBlock ul.staff-info {
	margin-top: 6.0rem;
}
#mitarecruite .contentBlock ul.staff-info li {
	align-items: center;
	margin-bottom: 2.0rem;
	padding: 2.0rem;
	border: 2px solid #000;
	border-radius: 4.0rem;
	box-sizing: border-box;
}
#mitarecruite .contentBlock ul.staff-info li:nth-child(2n-1) {
	border: 2px solid #cc6699;
}
#mitarecruite .contentBlock ul.staff-info li:nth-child(2n) {
	border: 2px solid #7abfe0;
}
#mitarecruite .contentBlock .staff-image {
	width: 30%;
	padding-right: 2.0rem;
	box-sizing: border-box;
}
#mitarecruite .contentBlock .staff-comment {
	width: 70%;
}
#mitarecruite .contentBlock .staff-position {
	font-size: 120%;
}
#mitarecruite .contentBlock .staff-name {
	font-size: 150%;
}