/*reset*/
* {
 margin: 0;
 padding: 0;
 box-sizing: border-box;
}
a {
 text-decoration: none
}
ul, ol {
 list-style: none
}
img {
 vertical-align: middle;
 max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
 font-weight: normal;
 font-size: 1em;
}
.grecaptcha-badge {
 visibility: hidden;
}
/*common class*/
.bold {
 font-weight: 600;
}
.red{
 color:#b80d11;
}
.fs12 {
 font-size: 12px !important;
}
.fs14 {
 font-size: 14px !important;
}
.fs16 {
 font-size: 16px !important;
}
.fs18 {
 font-size: 18px !important;
}
.fs21 {
 font-size: 21px !important;
}
.fs24 {
 font-size: 24px !important;
}
.fs30 {
 font-size: 30px !important;
}
.fs36 {
 font-size: 36px !important;
}
.fs48 {
 font-size: 48px !important;
}
.tac {
 text-align: center !important;
}
.tar {
 text-align: right !important;
}
.tal {
 text-align: left !important;
}
.fl {
 float: left;
}
.fr {
 float: right;
}
.mb12 {
 margin-bottom: 12px !important;
}
.mb25 {
 margin-bottom: 25px !important;
}
.mb50 {
 margin-bottom: 50px !important;
}
.mb100 {
 margin-bottom: 100px !important;
}
.mb200 {
 margin-bottom: 200px !important;
}
.serif {
 font-family: "Noto Serif JP", "游明朝", YuMincho, serif;
}
.pc_show {
 display: block;
}
.sp_show {
 display: none;
}
.cf:after {
 content: " ";
 display: block;
 clear: both;
}
.aligncenter {
 display: block;
 margin: 0 auto 25px auto;
}
.alignleft {
 float: left;
 margin: 0 25px 25px 0;
}
.alignright {
 float: right;
 margin: 0 0px 25px 25px;
}
.flex {
 display: flex;
 justify-content: space-between;
}
.flex_rev {
 display: flex;
 flex-direction: row-reverse;
 justify-content: space-between;
}
.col2 {
 width: 48%;
}
.col3 {
 width: 30%;
}

.arrow {
 background: url("images/icon_arrow.png") left center no-repeat;
 padding-left: 15px;
}
.bulletlist li{
list-style:disc;
margin-left:2em;
margin-bottom:25px;
}
.numberlist li{
list-style:decimal;
margin-left:2em;
margin-bottom:25px;
}

.bordertable{
border:1px solid #ddd;
border-collapse:collapse;
width:100%;
}
.bordertable th{
border:1px solid #ddd;
padding:10px;
vertical-align:top;
}
.bordertable td{
border:1px solid #ddd;
padding:10px;
}

.bordertable{
border:1px solid #ddd;
border-collapse:collapse;
width:100%;
}
.bordertable th{
border:1px solid #ddd;
padding:10px;
vertical-align:top;
text-align:left;
}
.bordertable td{
border:1px solid #ddd;
padding:10px;
}

.nobordertable{
border:none;
width:100%;
}
.nobordertable th{
border:none;
padding:10px;
vertical-align:top;
text-align:left;
}
.nobordertable td{
border:none;
padding:10px;
}

.formtable{
border:none;
}
.formtable th{
border:none;
padding:5px;
vertical-align:top;
text-align:right;
width:200px;
}
.formtable td{
border:none;
padding:5px;
}
.formtable .text{
width:100%;
font-size:1.2rem;
padding:5px;
}
.formtable .textarea{
width:100%;
font-size:1.2rem;
padding:5px;
height:200px;
}
.submit{
font-size:1.2rem;
padding:5px 10px;
}
.wpcf7 form.invalid .wpcf7-response-output{
border:none;
background:#fdfbee;
padding:10px;
text-align:center;
}
.wpcf7 form.sent .wpcf7-response-output{
border:none;
background:#eefcfd;
padding:10px;
text-align:center;
}

/*commons*/
html {
 font-family: "Noto Sans JP", "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
 font-size: 16px;
 line-height: 1.8;
 letter-spacing: 0.1em;
 color: #333;
 height: 100%;
}
body {
 height: 100%;
 /*background:#f1fdff;*/
}
a {
 color: #040a7d;
}
a:hover {
 color: #f80;
}
p{
margin-bottom:1em;
}
article {
 max-width: 1000px;
 padding: 0px 25px;
 margin: 0 auto 100px auto;
}
.wrapper {
 max-width: 1000px;
 padding: 0px 25px;
 margin: 0 auto;
}

/*header, nav, footer*/
header {
 width: 100%;
 background: #30a9f6 url("images/header_bg.jpg") left top no-repeat;
 height: 100px;
 position: fixed;
 display: flex;
 justify-content: space-between;
 padding: 10px 25px;
 z-index: 10;
}
header h1 {
 width: 360px;
}
nav {
 background: #fff;
 border-radius: 5px;
 padding: 10px 20px;
 position: absolute;
 right: 25px;
 top: 28px;
}
nav ul {
 display: flex;
 gap: 25px;
}
nav a {
 background: url("images/nav_arrow.png") left center no-repeat;
 font-size: 1.2rem;
 padding-left: 30px;
 height: 24px;
 line-height: 1;
 font-weight: 600;
 display: flex;
 align-items: center;
}
.burger, .nav_sp {
 display: none;
}
footer {
 background: #eefcfd url("images/footer_bg.png") center bottom no-repeat;
 padding: 25px;
 margin-top:50px;
 
}
footer a {
 background: url("images/icon_arrow.png") left center no-repeat;
 padding-left: 15px;
 color: #333;
 font-size: 0.9rem;
}
footer .left {
float:left;
max-width: 600px;
}
footer .left ul {
 display: flex;
 justify-content: space-between;
}
footer .right {
float:right;
 max-width: 600px;
 background: rgba(255, 255, 255, 0.8);
 padding: 10px;

}
footer .right ul {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 5px;
}
/*page*/
/*pagtitle*/
h2{
 height:400px;
 background-repeat:no-repeat !important;
 background-position: center center !important;
 background-size: cover !important;
 display:flex;
 justify-content: center;
 align-items: center;
 margin-bottom:100px;
 background:#eefcfd;
}
h2 strong{
 font-size:3rem;
 display:inline-block;
 padding:10px 20px;
 background: rgba(255,255,255,0.8);
 letter-spacing:0.2em;
}

h3{
font-size:24px;
font-weight:600;
margin-bottom:50px;
background: #0d6fb8;
padding:10px 20px;
border-radius:5px;
color:#fff;
}

h4 {
 font-size: 2rem;
 color: #0d6fb8;
 background: url("images/h3_bg.png") repeat-x left center;
/* max-width: 300px;*/
 margin: 0 auto;
 text-align: center;
 font-family: "Noto Serif JP", "游明朝", YuMincho, serif;
 font-weight: 600;
 margin-bottom: 50px;
}
h4 span {
 background: #fff;
 padding: 0px 20px;
}


#service01 h2{background-image: url("images/h2_service01.jpg")}
#service02 h2{background-image: url("images/h2_service02.jpg")}
#service03 h2{background-image: url("images/h2_service03.jpg")}
#service04 h2{background-image: url("images/h2_service04.jpg")}
#service05 h2{background-image: url("images/h2_service05.jpg")}
#service06 h2{background-image: url("images/h2_service06.jpg")}
#service07 h2{background-image: url("images/h2_service07.jpg")}
#service08 h2{background-image: url("images/h2_service08.jpg")}
#service09 h2{background-image: url("images/h2_service09.jpg")}
#service10 h2{background-image: url("images/h2_service10.jpg")}
#company h2{background-image: url("images/h2_company.jpg")}
#service h2{background-image: url("images/h2_service.jpg")}
#contact h2{background-image: url("images/h2_contact.jpg")}
#recruit h2{background-image: url("images/h2_recruit.jpg")}

/*home*/
#home header {
 display: none;
}

.mv {
 background: url("images/home_mv_bg.jpg") no-repeat center top;
 background-size: cover;
 position: relative;
 margin-bottom: 100px;
}
.mv .logoname_sp {
 display: none;
}
.mv .logoname {
 padding-top: 30px;
 margin: 0 auto;
 writing-mode: vertical-rl;
 display: flex;
 justify-content: center;
 align-items: center;
 position: relative;
 z-index: 2;
}
.mv .logo {
 text-align: center;
 display: flex;
 justify-content: center;
 align-items: center;
}
.mv .name {
 text-align: center;
 display: flex;
 justify-content: center;
 align-items: center;
}
.mv ul {
 background: #fff;
 padding: 10px 20px 0px 20px;
 position: absolute;
 top: 25px;
 right: 25px;
 border-radius: 5px;
 z-index: 3;
 max-width: calc(50% - 100px);
}
.mv li {
 margin-right: 25px;
 display: inline-block;
 margin-bottom: 10px;
}
.mv li:last-child {
 margin-right: 0px;
}
.mv li a {
 background: url("images/nav_arrow.png") left center no-repeat;
 font-size: 1.2rem;
 padding-left: 30px;
 height: 24px;
 line-height: 1;
 font-weight: 600;
 display: flex;
 align-items: center;
}
.service_list {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 50px;
 padding:0 25px;
 margin-bottom:50px;
}
.service_list li {
 display: flex;
}
.service_list li:nth-child(odd) {
 flex-direction: row-reverse;
}
.service_list .photo {
 width: 50%;
}
.service_list .text {
 width: 50%;
}
.service_list .title {
 font-size: 1.5rem;
 border-bottom: 2px solid #9ed8f6;
 padding-bottom: 5px;
 margin-bottom: 10px;
 font-weight: 600;
}
.service_list li:nth-child(odd) .title {
 padding-right: 25px;
 text-align: right;
}
.service_list li:nth-child(odd) .desc {
 padding-right: 25px;
}
.service_list li:nth-child(even) .title {
 padding-left: 25px;
}
.service_list li:nth-child(even) .desc {
 padding-left: 25px;
}
.service_list2{
 grid-template-columns: 1fr !important;
}

@media screen and (max-width : 1000px) {
 /*common*/
 .fs12 {
  font-size: 10px !important;
 }
 .fs14 {
  font-size: 12px !important;
 }
 .fs16 {
  font-size: 14px !important;
 }
 .fs18 {
  font-size: 16px !important;
 }
 .fs21 {
  font-size: 18px !important;
 }
 .fs24 {
  font-size: 21px !important;
 }
 .fs30 {
  font-size: 27px !important;
 }
 .fs36 {
  font-size: 32px !important;
 }
 .fs48 {
  font-size: 42px !important;
 }
 .pc_show {
  display: none;
 }
 .sp_show {
  display: block;
 }
 .flex, .flex_rev {
  display: block;
 }
 .col2, .col3 {
  width: 100%;
  margin-bottom: 50px;
 }
 .col2:last-child, .col3:last-child {
  margin-bottom: 0px;
 }
 .formtable th{
display:block;
text-align:left;
width:100%;
padding:0px;
}
.formtable td{
display:block;
padding:0px;
margin-bottom:10px;
}

 /*commons*/
 html {
  font-size: 14px;
 }
 /*header, nav, footer*/
 #home article {
  margin: 0 auto 50px auto;
 }
 footer .left {
 float:none;
  width:auto;
  max-width: 400px;
  margin:0px auto 25px auto;
  text-align: center;
 }
 footer .right {
  width: 100%;
  margin:0px auto 25px auto;
 }
 .mv ul, nav {
  display: none;
 }
 .burger {
  display: block;
  position: absolute;
  top: 25px;
  right: 25px;
 }
 .nav_sp {
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100%;
  background: rgba(49, 169, 246, 0.8);
  height: 100%;
  z-index: 20;
  padding: 25px;
 }
 .nav_sp > ul {
  background: #fff;
  padding: 25px 25px 25px 25px;
  border-radius: 10px;
  position:relative;
 }
 .nav_sp > ul > li > a {
  background: url("images/nav_arrow.png") left center no-repeat;
  font-size: 1.2rem;
  padding-left: 30px;
  height: 24px;
  line-height: 1;
  font-weight: 600;
  display: flex;
  align-items: center;
 }
 .nav_sp > ul > li > ul {
  margin-left: 25px;
  margin-bottom: 25px;
  margin-top:10px;
 }
 .nav_sp > ul > li > ul > li > a {
  background: url("images/icon_arrow.png") left center no-repeat;
  padding-left: 15px;
 }
 .nav_sp .close {
  font-weight: 800;
  position:absolute;
  top:5px;
  right:10px;
  font-size:1.5rem;
 }
 /*page*/
 h2{
 height:250px;
  background-position: center center;
 margin-bottom:50px;
}
h2 strong{
 font-size:1.8rem;
}
 h3{
 font-size:1.5rem;
 }
 h4{
 font-size:1.5rem;
  margin-bottom: 25px;
 }
 /*home*/
 .mv {
  background: url("images/home_mv_bg_sp.jpg") no-repeat center center;
  background-size: cover;
  height: 500px;
  margin-bottom: 50px;
 }
 .mv .logoname {
  display: none;
 }
 .mv .logoname_sp {
  display: block;
  padding-top: 20px;
  padding-left: 25px;
 }
 .service_list {
  grid-template-columns: 1fr;
 }
}
@media screen and (max-width : 480px) {
 /*header, nav, footer*/
 header {
  height: 65px;
 }
 header h1, .mv .logoname_sp {
  width: 200px;
 }
 .burger {
  top: 15px;
  width: 40px;
 }
 /*home*/
 .service_list li {
  display: block;
 }
 .service_list .photo {
  width: 100%;
  margin-bottom: 8px;
 }
 .service_list .text {
  width: 100%;
 }
 .service_list .title {
  text-align: center !important;
 }
 .service_list .title, .service_list .desc {
  padding-left: 0px !important;
  padding-right: 0px !important;
 }
}