@charset "UTF-8";
#mainimage{
position: relative;
}
#mainimage .container{
margin: 0 0 0 0;
width: 100%;
z-index: 0;
max-width: 100%;
display:block;
}

#mainimage .img{
filter: brightness(95%);
flex: none;
height: 100%;
left: 0;
margin: 0 0 0 0;
position: absolute;
top: 0;
width: 100%;
z-index: 0;
max-width: 100%;
}
#mainimage .img:before {
content: "";
height:100%;
width:100%;
background-image: url("../img/index/main.jpg") ;
background-position:50%;
background-size:cover;
border-radius:inherit;
pointer-events:none;
position:absolute;
top:0;
left:0;
z-index:-2;
}
#mainimage .img:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(11, 92, 145, 0.5);
  z-index: -1; /* 画像（-2）より手前に配置 */
}

#mainimage .cont{
padding: 150px 0 50px;
max-width: 1280px;
width: 90%;
z-index: 0;
display:block;
margin: 0 auto;
text-align: center;
position: relative;
}

#mainimage .cont h1 {
color: #FFFFFF;
flex: none;
font-size: 50px;
font-weight: 700;
height: auto;
line-height: 1.6;
margin: 0 0 32px 0px;
text-align: center;
justify-content: center;
display:block;
text-shadow: 0 0 10px #06537a;
position: relative;
}


@media screen and (max-width: 840px){
#mainimage .img:before {
content: "";
height:100%;
width:100%;
background-image: url("../img/index/main_sp.jpg") ;
background-position:50%;
background-size:cover;
border-radius:inherit;
pointer-events:none;
position:absolute;
top:0;
left:0;
z-index:-2;
}
#mainimage .cont h1 {
font-size: 36px;
}
#mainimage .cont .copy{
font-size: 16px;
}
}
@media screen and (max-width: 540px){
#mainimage .cont h1 {
font-size: 26px;
}
#mainimage .cont{
padding: 120px 0 30px;
}
}
@media screen and (max-width: 320px){
#mainimage .cont h1  {
font-size: 20px;
}
}


/*------------------------------

--------------------------------*/
.page-title{
clear: both;
width: 90%;
max-width: 1280px;
padding-top: 60px;
margin: 0 auto 60px;
font-size: 125%;
font-weight: normal;
}
.page-title .en{
display: block;
font-size:80%; 
}


@media screen and (max-width: 840px) {
.page-title{
padding-top: 40px;
margin: 0 auto 2em;
}
}


/*------------------------------

--------------------------------*/
#text01{
clear: both;
overflow: hidden;
width: 90%;
max-width: 1280px;
padding: 0 0 150px;
margin: 0 auto;
box-sizing: border-box;
}
#text01 h2{
margin: 0 0 0.5em;
font-size: 33px;
font-family: "Noto Serif JP", serif;
font-weight: 700;
line-height: 1.6;
}

@media screen and (max-width: 840px) {
#text01{
padding: 0 0 100px;
}
#text01 h2{
margin: 0 0 0.5em;
font-size: 25px;
}
}

@media screen and (max-width: 540px) {
#text01{
padding: 0 0 80px;
}
}

/*------------------------------

--------------------------------*/
#text02{
clear: both;
overflow: hidden;
width: 90%;
max-width: 1060px;
padding: 0 0 150px;
margin: 0 auto;
box-sizing: border-box;
}
#text02.text02-w{
max-width: 1280px;
}
#text02 h2{
margin: 0 0;
font-size: 28px;
font-weight: 700;
line-height: 1.2;
text-align: center;
}
#text02 .text{
margin-top: 1em;
text-align: center;
}
#text02 ul.list{
overflow: hidden;
padding:40px 0 0;
}
#text02 ul.list li{
float: left;
padding: 0 2.5em 0 1.5em;
position: relative;
}
#text02 ul.list li:before{
content: "";
display: block;
width: 1.1em;
height: 1.1em;
background: #99d9ea;
border-radius: 50%;
position: absolute;
left: 0;
top: 0.4em;
}


@media screen and (max-width: 840px){
#text02{
padding: 0 0 100px;
}
#text02 ul.list{
padding:20px 0 0;
}
}

@media screen and (max-width: 540px) {
#text02{
padding: 0 0 80px;
}
#text02 h2{
font-size:22px;
}
#text02 ul.list li{
float: none;
padding-right: 0;
}
}



/*------------------------------

--------------------------------*/
#text03{
clear: both;
overflow: hidden;
padding: 0;
margin: 0 auto;
box-sizing: border-box;
background: #e9e9e9;
}
#text03 .container{
clear: both;
overflow: hidden;
width: 90%;
max-width: 1280px;
padding: 150px 0;
margin: 0 auto;
box-sizing: border-box;
position: relative;
}

#text03 .container .img{
width: 30%;
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0;
z-index: 0;
}
#text03 h2{
margin: 0 0 0.5em 40%;
font-size: 28px;
font-weight: 700;
line-height: 1.2;
}
#text03 .text{
margin: 0 0 0 40%;
}


@media screen and (max-width: 840px){
#text03 .container{
padding: 60px 0;
}
#text03 .container .img{
width: 50%;
max-width: 800px;
margin: 0 auto 1.5em;
position: relative;
top: auto;
transform: none;
left: auto;
text-align: center;
}

#text03 h2{
text-align: center;
margin: 0 auto 0.5em;
}
#text03 .text{
margin: 0 auto;
}

}

@media screen and (max-width: 540px){
#text03 h2{
margin-bottom: 1em;
font-size:22px;
}
}
/*------------------------------

--------------------------------*/
.text04-area{
clear: both;
overflow: hidden;
width: 90%;
max-width: 1280px;
padding: 40px 0 40px 22%;
margin: 0 auto 100px;
box-sizing: border-box;
border:1px solid #177ead;
}
.text04-area h2{
margin: 0 0 0.5em;
color: #177ead;
font-size: 28px;
font-weight: 700;
line-height: 1.2;
}

#text04-1{
background:url("img/business1_text04.jpg") no-repeat left center;
background-size: 23% auto;
}
#text04-2{
background:url("img/business2_text04.jpg") no-repeat left center;
background-size: 23% auto;
}
#text04-3{
background:url("img/business3_text04.jpg") no-repeat left center;
background-size: 23% auto;
}
#text04-4{
background:url("img/business4_text04.jpg") no-repeat left center;
background-size: 23% auto;
}


@media screen and (max-width: 840px){
.text04-area{
padding: 60% 1em 60px;
}
#text04-1{
background:url("img/business1_text04_sp.jpg") no-repeat center top;
background-size: 100% auto;
}
#text04-2{
background:url("img/business2_text04_sp.jpg") no-repeat center top;
background-size: 100% auto;
}
#text04-3{
background:url("img/business3_text04_sp.jpg") no-repeat center top;
background-size: 100% auto;
}
#text04-4{
background:url("img/business4_text04_sp.jpg") no-repeat center top;
background-size: 100% auto;
}
}
@media screen and (max-width: 540px){
.text04-area h2{
font-size:22px;
}
.text04-area{
padding: 60% 1em 40px;
}
}


/*------------------------------

--------------------------------*/
#flow{
clear: both;
overflow: hidden;
width: 96%;
max-width: 1280px;
padding: 100px 0 120px;
margin: 0 auto;
box-sizing: border-box;
position: relative;
}
#flow h2{
margin: 0 0 2em;
font-size: 28px;
font-weight: 700;
line-height: 1.2;
text-align: center;
}
#flow img.pc{
display: inline;
}
#flow img.sp{
display: none;
}

@media screen and (max-width: 840px){
#flow{
padding: 60px 0 40px;
}
#flow h2{
margin-bottom: 1.5em;
font-size:22px;
}
#flow img.pc{
display: none;
}
#flow img.sp{
display: inline;
}
}

@media screen and (max-width: 540px){
#flow{
width: 98%;
padding: 60px 0 10px;
}
}

/*------------------------------

--------------------------------*/

#cases{
clear: both;
overflow: hidden;
padding: 60px 5% 80px;
}
#cases h2{
margin: 0 0 40px;
font-size: 28px;
font-weight: 700;
line-height: 1.2;
text-align: center;
}
#cases .t-text{
margin: 0 0 30px;
text-align: center;
}
@media screen and (max-width: 840px){
#cases{
padding: 40px 5% 30px;
}
}
@media screen and (max-width: 540px){
#cases{
padding: 70px 5% 20px;
}
#cases h2{
margin-bottom: 20px;
font-size:22px;
}
#cases .t-text{
margin-bottom: 10px;
text-align: left;
}
}


#cases .container{
max-width: 1280px;
margin: 0 auto;
overflow-x:auto;
}

#cases ul.cases-list{
clear: both;
margin: 40px 0 0;
overflow: hidden;
display: flex;
}
/*#cases ul.cases-list li{
width: 31.4%;
margin-right: 2.9%;
padding: 1em;
border: 1px solid #177ead;
border-radius: 1em;
overflow: hidden;
box-sizing: border-box;
}*/
#cases ul.cases-list li{
width: 47%;
margin-right: 6%;
padding: 1em 1.5em;
border: 1px solid #177ead;
border-radius: 1em;
overflow: hidden;
box-sizing: border-box;
}
#cases ul.cases-list li:last-child{
margin-right: 0;
}
#cases ul.cases-list li .cat{
display: flex;
border-bottom: 1px solid #177ead;
}
#cases ul.cases-list li .cat h3{
flex: none;
display: flex;
align-items: center;
width: 70%;
justify-content: center;
}
#cases ul.cases-list li .cat .icon{
width: 30%;
flex: none;
display: flex;
}
#cases ul.cases-list li .text{
padding-top: 10px;
}
@media screen and (max-width: 1100px){
#cases ul.cases-list li{
width: 48%;
margin-right: 4%;
padding: 1em;
}
}
@media screen and (max-width: 840px){
#cases ul.cases-list{
margin-top: 20px;
display: block;
}
#cases ul.cases-list li{
display: block;
width: 100%;
margin-right: 0;
margin-bottom: 2em;
}
#cases ul.cases-list li .text{
padding-top: 5px;
}
}


/*------------------------------

--------------------------------*/

#faq{
clear: both;
padding: 100px 5% 100px;
}
#faq h2{
margin: 0 0 40px;
font-size: 28px;
font-weight: 700;
line-height: 1.2;
text-align: center;
}
#faq .t-text{
margin: 0 0 40px;
text-align: center;
}
@media screen and (max-width: 960px){
#faq .t-text br.pc{
display: none;
}
}
@media screen and (max-width: 840px){
#faq{
padding: 60px 5% 20px;
}
}
@media screen and (max-width: 540px){
#faq{
padding: 40px 5% 0;
}
#faq h2{
font-size:22px;
}
#faq .t-text{
margin-bottom: 30px;
text-align: left;
}
}

#faq .container{
max-width: 1280px;
margin: 0 auto;
}

#faq .cat{
clear: both;
overflow: hidden;
margin: 0 0 30px;
}
/*#faq .cat h3{
margin: 0 0 40px;
padding: 0 0 0.5em;
color: #177ead;
font-size: 20px;
font-weight: 700;
line-height: 1.2;
border-bottom: 3px solid #177ead;
}*/
@media screen and (max-width: 840px){
#faq .cat{
margin: 0 0 15px;
}
/*#faq .cat h3{
margin: 0 0 20px;
}*/
}
#faq .cat .faq{
clear: both;
overflow: hidden;
margin: 0 0 70px;
}
#faq .cat .faq h3{
position: relative;
margin: 0 0 20px;
padding-left: 50px;
font-size: 111%;
font-weight: 700;
}
#faq .cat .faq h3:before{
position: absolute;
left: 0;
display: block;
width: 1.8em;
height: 1.8em;
content: "Q";
color: #fff;
font-size: 20px;
font-weight:700;
line-height: 1.6;
text-align: center;
background: #177ead;
border-radius: 0.2em;
}

#faq .cat .faq .answer{
position: relative;
padding-left: 50px;
min-height: 36px;
}

#faq .cat .faq .answer:before{
position: absolute;
left: 0;
display: block;
width: 1.8em;
height: 1.8em;
content: "A";
color: #fff;
font-size: 20px;
font-weight:700;
line-height: 1.6;
text-align: center;
background: #000;
border-radius: 0.2em;
}

@media screen and (max-width: 540px){
#faq .cat{
margin: 0 0 15px;
}
#faq .cat .faq{
margin: 0 0 50px;
}
#faq .cat .faq h3{
margin: 0 0 15px;
}
#faq .cat .faq h3,
#faq .cat .faq .answer{
padding-left: 40px;
}
#faq .cat .faq h3:before,
#faq .cat .faq .answer:before{
font-size: 18px;
}
}






/*------------------------------

--------------------------------*/
#business{
clear: both;
overflow: hidden;
border-top: 1px solid #ddd;
}
#business .container{
clear: both;
overflow: hidden;
width: 90%;
max-width: 1280px;
padding: 60px 0 100px;
margin: 0 auto;
box-sizing: border-box;
}
#business h2{
margin: 0 0 1.5em;
font-size: 33px;
font-family: "Noto Serif JP", serif;
font-weight: 700;
line-height: 1.6;
text-align: center;
}
#business h2 .en{
display: block;
font-size: 58%;
color: #177ead;
}
#business ul{
display: flex;
justify-content: space-between;
}
#business ul li{
width: 32%;
}
#business ul li .phtbox{
position: relative;
z-index: 0;
}
#business ul li .txtbox{
position: relative;
z-index: 1;
display: block;
width: 82%;
margin: -3em auto 0;
padding: 1em;
font-family: "Noto Serif JP", serif;
font-weight: 700;
text-align: left;
box-sizing: border-box;
background: #fff;
box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
#business ul li .txtbox .mincho{
display: block;
font-size: 25px;
}
#business ul li .txtbox .en{
display: block;
font-size: 11px;
font-weight: 400;
}
#business ul li .txtbox:before{
content: '';
position: absolute;
top: 1.2em;
right: 1em;
width: 3.2em;
height: 3.2em;
background-color: #e8f2fe;
background-image: linear-gradient(90deg, #e8f2fe, #fefeff 50%, #e8f2fe);
border-radius: 50%;
/*box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);*/
transition: background-color 0.3s ease;
}
#business ul li .txtbox:after {
content: '\f061';
font-family: 'Font Awesome 5 Free'; 
font-weight: 900;
position: absolute;
top: 50%;
right: 1.3em;
transform: translate(-50%, -50%) rotate(0); 
color: #177ead;
font-size: 1.2em;
transition: transform 0.3s ease;
}


@media screen and (max-width: 840px){
#business h2 {
font-size: 25px;
}
#business ul{
display: block;
}
#business ul li{
width: 100%;
margin: 0 0 2em;
}
#business ul li .txtbox .mincho{
font-size: 19px;
}
}

/*------------------------------

--------------------------------*/
#footerCta{
clear: both;
margin: 0 0 80px;
background: #eef4f7;
background-size:cover;
}
#footerCta .container{
clear: both;
overflow: hidden;
width: 90%;
max-width: 1280px;
padding: 60px 0 100px;
margin: 0 auto;
box-sizing: border-box;
}
#footerCta h2{
margin: 0 0 1.5em;
font-size: 33px;
font-family: "Noto Serif JP", serif;
font-weight: 700;
line-height: 1.6;
text-align: center;
}
#footerCta h2 .en{
display: block;
font-size: 58%;
color: #177ead;
}
#footerCta .ctalist{
display: flex;
background:linear-gradient(to right, #054c83 0%, #0875ca 50%, #054c83 100%);
position: relative;
align-items: stretch;
}
#footerCta .ctalist:before{
content: "";
display: block;
background: #fff;
width: 1px;
height: 80%;
position: absolute;
left: 50%;
top: 10%;
}
#footerCta .ctalist li{width:50%;}
#footerCta .ctalist li a{display:block;text-align:center;text-decoration:none}
#footerCta .ctalist li a:hover{background:rgba(225,225,225,0.2)}
#footerCta .ctalist .telbtn a{padding:1px;color: #fff;}
#footerCta .ctalist .telbtn a .innerbox{padding:30px 20px 26px;}
#footerCta .ctalist .telbtn a .tel{
position:relative;
font-size: 36px;
font-family: "Noto Serif JP", serif;
font-weight: 700;
letter-spacing:.08em;
line-height:1;
}
#footerCta .ctalist .telbtn a .tel i{}
#footerCta .ctalist .telbtn a .tel:before{background:none}
#footerCta .ctalist .telbtn a .time{margin-top:2px;display:block}
#footerCta .ctalist .mailbtn a{display:block;color: #fff;}
#footerCta .ctalist .mailbtn a .innerbox{padding:40px 20px 26px;}
#footerCta .ctalist .mailbtn a .txt{
position:relative;
font-size: 35px;
font-family: "Noto Serif JP", serif;
font-weight: 700;
letter-spacing:.08em;
line-height:1;
}
#footerCta .ctalist .mailbtn a .txt i{font-size: 1.1em;}


@media screen and (max-width: 840px){
#footerCta{
margin: 0 0 50px;
}
#footerCta h2{
margin: 0 0 1.5em;
font-size: 25px;
font-family: "Noto Serif JP", serif;
font-weight: 700;
line-height: 1.6;
text-align: center;
}
#footerCta h2 .en{
display: block;
font-size: 58%;
color: #177ead;
}
#footerCta .ctalist{
display: block;
}
#footerCta .ctalist:before{
content: "";
display: block;
background: #fff;
width: 80%;
height: 1px;
position: absolute;
left: 10%;
top: 50%;
}
#footerCta .ctalist li{width:100%}
#footerCta .ctalist .telbtn a .tel{
font-size: 25px;
}
#footerCta .ctalist .mailbtn a .txt{
font-size: 22px;
}
#footerCta .ctalist .telbtn a .innerbox{padding:20px 15px 25px;}
#footerCta .ctalist .mailbtn a .innerbox{padding:20px 15px 25px;}

}
/*------------------------------

--------------------------------*/

