@charset "utf-8";
/*-------------------------------------------
【下層】ヘッダー画像
-------------------------------------------*/
#sub_top {
background: url(../img/sub_top_bg.jpg) repeat-x center 0 fixed;
background-size: auto;
line-height: 1.2;
position: relative;
width: 100%;
}
#sub_top .overlay {
background: rgb(58 124 177 / 49%);
}
#sub_top h2{
/* font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif; */
font-size: 24px;
color: #ffffff;
text-shadow: #0b3b60 1px 1px 0px;
text-align: center;
font-weight: 600;
letter-spacing: 0.3em;
padding:180px 0 75px;
width: fit-content;
margin: 0 auto;
line-height: 1.2;
}
#sub_top h2 .en {
display: block;
font-size: 60%;
padding-top: 5px;
letter-spacing: 5px;
}

@media screen and (max-width:1280px) {
#sub_top {
background: url(../img/sub_top_bg.jpg) repeat-x center 0 scroll;
background-size: cover;
}
#sub_top h2 {
font-size: 22px;
padding: 115px 0 60px;
}
}

@media screen and (max-width:599px) {
#sub_top h2 {
font-size: 18px;
padding:95px 0 30px;
}
}

/* ----------------------------------------
pankuzu
------------------------------------------- */
.pankuzu {
font-size: 14px;
width: 100%;
padding: 0.5em;
background: #dfdfdf;
}
.pankuzu ul {
width: 96%;
max-width: 1280px;
margin-right: auto;
margin-left: auto;
}
.pankuzu li {
display: inline-block;
}
.pankuzu li a {
text-decoration:underline;
color: #432b18;
}
.pankuzu li::after {
content: ">";
padding-left: 10px;
padding-right: 10px;
}
.pankuzu li a:hover {
color: #432b18;
}
.pankuzu li i {
padding-right: 5px;
}
.pankuzu li:last-child::after {
display: none;
}
@media screen and (max-width:599px) {
.pankuzu {display: none;}
}

/* ----------------------------------------
【HOME】イントロ
-------------------------------------------*/
.btn_top a{
display: block;
color: #e71c1d;
border: #e71c1d 3px solid;
text-align: center;
font-weight: bold;
padding: 0.5em;
margin: 1.2em auto 2.2em;
border-radius: 10px;
}
.btn_top a:before {
content: "\f138";
font-family: FontAwesome;
margin-right: 1em;
font-size: 100%;
}
.btn_top a:hover{
background: #e71c1d;
color: #ffffff;
border: #e71c1d 3px solid;
}
section#intro {
background: #f9f4eb url(../img/intro_bg.png) no-repeat center top scroll;
background-size: cover;
height: auto;
padding: 0;
}
section#intro .harf{
background: rgb(25 91 146 / 90%);
padding: 8em 5em;
}
section#intro .intro_title{
padding-bottom: 2em;
}
section#intro .intro_text{
max-width: 670px;
color: #fff;
}
section#intro .btn_more a {
color: #ffffff;
border: #ffffff 1px solid;
}
section#intro .btn_more a:hover {
color: rgb(25 91 146);
background: #fff;
}
@media screen and (max-width:1024px) {
section#intro {
margin-top: 0 !important;
height: auto;
}
section#intro .bg {
height: auto;
margin-top: 0;
padding: 0;
}
section#intro h2 {
padding-top: 0;
width: 545px;
max-width: 100%;
display: block;
margin: 0 auto;
}
section#intro .intro_text {
text-align: left;
}
.img001{
width: 460px;
max-width: 100%;
}
.btn_top a {
margin: 2em auto 2em;
}

section#intro .harf {
width: 768px;
max-width: 100%;
margin: 0 auto;
padding: 5em 2em;
}

}

@media screen and (max-width:599px) {
section#intro .harf {
padding:3em 1.5em;
}
}

/*-------------------------------------------
【HOME】業務案内
-------------------------------------------*/
.service ul {
width: 100%;
margin: auto;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
align-content: flex-start;
align-items: stretch;
flex-direction: row;
justify-content: center;
}

/*横ならび*/
.service ul li {
width: 100%;
margin: 1.5em auto;
border: #0c2b64 1px solid;
box-sizing: border-box;
/*position: relative;*/
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
align-content: flex-start;
align-items: stretch;
flex-direction: row;
justify-content: space-between;
}
.service ul li a {
width: 50%;
}
.service ul li .set {
width: 50%;
background: #efefef;
padding:2em;
}
.service ul li a {
display: block;
overflow: hidden;
}

.service ul li a img {
width: 100%;
max-width: 100%;
-webkit-transition: 1.0s ease-out;
-moz-transition: 1.0s ease-out;
transition: 1.0s ease-out;
opacity: 1.0;
filter: alpha(opacity=100);
-ms-filter: "alpha( opacity=100 )";
}
.service ul li a:hover img {
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
-o-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
opacity: 0.7;
filter: alpha(opacity=70);
-ms-filter: "alpha( opacity=70 )";
}

.service ul li .title {
font-size: 24px;
color: #ffffff;
background: #0c2b64;
padding: 0.6em 1em 0.6em;
margin-bottom: 1em;
line-height: 1;
letter-spacing: 1px;
display: block;
font-weight: normal;
}
.service ul li .txt{
padding:0;
}
.service ul li .btn_more a {
display: none;
color: #0c2b64;
border: #0c2b64 1px solid;
background-color: transparent;
padding: 0.8em 3em;
width: fit-content;
font-size: 90%;
}

.service ul li .btn_more a:hover {
color: #1b6ebe;
border: #1b6ebe 1px solid;
background-color: #d3e2f4;
}



/*@media screen and (max-width:1024px) {
.service ul li a {
width: 40%;
}
.service ul li .set {
width: 60%;
}
.service ul li .title {
font-size: 120%;
margin-bottom: 0.7em;
}
}*/

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

/*縦ならび*/
.service ul li {
display: block;
width: 100%;
padding: 0;
margin: 1em auto;
}
.service ul li a {
width: 100%;
max-height: 240px;
height: auto;
}
.service ul li .set {
width: 100%;
padding:1.5em;
}
.service ul li .title {
font-size: 120%;
margin-bottom: 0.7em;
}
}

@media screen and (max-width:599px) {
/*.service ul li .title {
font-size: 22px;
}
.service ul li .txt {
padding: 1em 0em 0 0em;
}*/
}

/*------------------------------------------
【HOME】特徴
------------------------------------------*/
/*point*/
.point ul {
width: 100%;
margin: auto;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
align-content: space-around;
align-items: stretch;
flex-direction: row;
justify-content: flex-start;
}
.point ul li {
width: 30%;
margin: 1.5%;
border-radius: 15px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
position: relative;
}
.point ul li .photo img {
width: 100%;
max-width: 100%;
border-radius: 15px 15px 0 0;
}
.point ul li .title {
font-size: 180%;
color: #000000;
line-height: 1.4;
text-align: center;
font-weight: bold;
display: block;
padding: 1em 0;
letter-spacing: 0;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}
.point ul li .txt {
}

/*balloon*/
.point .balloon {
width: fit-content;
position: absolute;
top: -40px;
left: 42px;
margin-left: -50px;
z-index: 100;
}
.point .balloon img {
width: auto;
}
.p-icon {
color: #fff;
background: #e71c1d;
padding: 0.5em 1.5em;
margin-bottom: 0.5em;
font-weight: bold;
font-size: 75%;
border-radius: 5px;
display: block;
width: fit-content;
line-height: 1.0;
}

@media screen and (max-width:1400px) {
.point .balloon {
top: -21px;
left: 32px;
}
.point .balloon img{
width: 70%;
}
.point ul li .title {
padding: 0;
text-align: center;
font-size: 160%;
padding: 20px 15px 5px;
}
}

@media screen and (max-width:1023px) {
.point ul {
width: 100%;
display: block;
margin: 0 auto;
}
.point ul li {
width: 500px;
max-width: 96%;
margin: 3em auto;
}
.point .balloon img{
width: 90%;
}
.point ul li .photo {
height: 250px;
overflow: hidden;
}
.point ul li .photo img {
width: auto;
max-width: 100%;
height: auto;
border-radius: 15px 15px 0 0;
margin: 0 auto;
display: block;
}

}

@media screen and (max-width:599px) {
.point ul li {
/*height: 300px;*/
}
.point ul li .photo {
height: auto;
overflow: hidden;
}
.point .balloon img {
width: 80%;
margin: 10px auto 0;
display: block;
}
.point ul li .title {
font-size: 150%;
}
}

/*-------------------------------
【HOME】対応エリア
-------------------------------*/
section.message {	
background:url(../img/message_bg.jpg) no-repeat top left fixed;	
background-size: cover;
/*background-color: rgb(0 61 106 / 60%);*/
padding: 4em 0;
}
#subPage section.message {
background: #e6f2fd url(../img/bg-2.png) repeat bottom center scroll;
padding: 2em 0 !important;
}
section.message h2{
font-size: 200%;
line-height: 1.8;
/*font-weight: normal;*/
letter-spacing: 0.1em;
color: #ffffff;
text-align: center;
border-bottom: #ffffff dotted 1px;
padding:1em 1em 1em 1em;
margin-bottom: 1.5em;
clear: both;
}
section.message .bg_w{
/*background-color: rgb(255 255 255 / 80%);*/
text-align: center;
padding: 0px;
border-radius: 10px;
}

/*-- INFO SET --*/
.message .info_set_bg{
text-align: left;
max-width: 100%;
line-height: 1.7;
margin: 15px auto 0;
padding: 72px 0px 104px 190px;
background: url(../img/message_info.png) no-repeat top left;
background-size: cover;
}
.message .info_set_txt {
padding: 15px;
width: 380px;
max-width: 100%;
}
.message .info_tel01,
.message .info_tel02{
padding: 2px 0;
margin: 0 auto;
}
.message .info_tel01 a{
font-family: impact;
font-weight: bold;
color: #3b8bc8;
font-size: 40px;
line-height: 1.1;
letter-spacing: 1px;
padding-right: 0.5em;
}
.message .info_tel02 a {
font-family: impact;
font-weight: bold;
color: #666;
font-size: 34px;
line-height: 1.1;
letter-spacing: 1px;
}

/* BTN */
.message .btn_more a {
display: block;
max-width: 100%;
width: 380px;
color: #FFF;
margin: 0 auto;
padding: 17px 0px;
line-height: 1.4;
line-height: 1.0;
font-weight: normal;
font-size: 100%;
text-align: center;
text-decoration: none;
background:#1b6ebe;
border: #1b6ebe 1px solid;
/*background: linear-gradient( #218cdb 0%, #1378cb 100%);*/
/* box-shadow: #84bccd 5px 7px 0px; */
/* border-radius: 70px; */
}

.message .btn_more a:hover {
/*opacity: 0.85;*/
color: #1b6ebe;
border: #1b6ebe 1px solid;
background-color: #d3e2f4;
}
.message .btn_more a:before {
content: "";
font-family: FontAwesome;
margin-right: 1.2em;
color: #fff;
font-size: 100%;
}

@media screen and (max-width:1024px) {
section.message h2 {font-size: 160%;line-height: 1.6;}
section.message .wrap_w {/*width: 590px;*/max-width: 90%;}
.message .info_set_bg {
text-align: left;
max-width: 100%;
line-height: 1.8;
margin: 15px auto 0px;
padding: 50px 0px 50px 160px;
background: url(../img/message_img.png) 20px top no-repeat;
background-size: contain;
background-color: rgb(255 255 255 / 90%);
border: #000 2px solid;
border-radius: 15px;
}
.message .info_set_txt {
text-align: left;
padding: 15px;
width: auto;
max-width: 100%;
}
}
@media screen and (max-width:768px) {
section.message {
background: url(../img/message_bg.jpg) no-repeat top left scroll;
background-size: cover;
padding: 3em 0;
}

.message .info_set_bg {
text-align: center;
max-width: 100%;
line-height: 1.7;
margin: 15px auto 0px;
padding: 2.5em 1.5em 2em;
background-image: none;
background: rgb(255 255 255 / 90%);
border: #000 2px solid;
border-radius: 15px;
}
.message .info_set_bg {
background-size: contain;
}
}
@media screen and (max-width:599px) {
section.message .bg_w {padding: 15px 0;}
section.message h2 {font-size: 125%;line-height: 1.6;}
.message .info_set_bg {
padding: 2em 1.5em;
text-align: left;
}
.message .btn_more a {margin: 0 auto;font-size: 90%;}
}

/*-------------------------------------------
【HOME】3連バナー
-------------------------------------------*/
.point-03 ul {
width: 100%;
margin: auto;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
align-content: flex-start;
align-items: stretch;
flex-direction: row;
justify-content: center;
}
.point-03 ul li {
position: relative;
width: 30%;
margin: 1%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
box-shadow: #ccc 6px 6px 0px;
background: #fff;
border-radius: 20px;
}

/* LINK */
.point-03 ul li a {
display: block;
overflow: hidden;
text-decoration: none;
}
.point-03 ul li a img {
width: 100%;
max-width: 100%;
-webkit-transition: 1.0s ease-out;
-moz-transition: 1.0s ease-out;
transition: 1.0s ease-out;
opacity: 1.00;
filter: alpha(opacity=100);
-ms-filter: "alpha( opacity=100 )";
}
.point-03 ul li a:hover img {
-webkit-transform: scale(1.05);
-moz-transform: scale(1.05);
-o-transform: scale(1.05);
-ms-transform: scale(1.05);
transform: scale(1.05);
opacity: 0.75;
filter: alpha(opacity=75);
-ms-filter: "alpha( opacity=75 )";
}
.point-03 ul li a:hover {
box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 7px 0px;
-webkit-box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 7px 0px;
-moz-box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 7px 0px;
border-radius: 20px;
}

/* CONTENTS */
.point-03 ul li a .photo {
/*height: 275px;*/
display: block;
overflow: hidden;
}
.point-03 ul li a .title {
background: #e71c1d url(../img/point-03-icon.png) no-repeat 18px center scroll;
border: #ffffff 1px solid;
color: #FFF;
font-size: 130%;
font-weight: bold;
text-align: center;
padding: 0.6em 1em;
box-shadow: #ccc 5px 5px 0px;
border-radius: 60px;
display: block;
position: absolute;
left: 5%;
top: 55%;
z-index: 5;
width: 90%;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
letter-spacing: 3px;
line-height: 1.4;
}
.point-03 ul li a .txt {
display: block;
color: #564124;
text-align: left;
padding:4em 2em 3em 2em;
letter-spacing: 3px;
line-height: 1.6;
width: 100%;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}
.point-03 ul li a .btn_check {
display: block;
font-size: 90%;
background: transparent;
color: #78b2bd;
font-weight: bold;
border: 1px solid #78b2bd;
border-radius: 50px;
letter-spacing: 3px;
line-height: 26px;
text-align: center;
width: 50%;
margin: 0em auto 2em;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}
.point-03 ul li a:hover .btn_check {
background: #78b2bd;
color: #fff;
border: none;
border-bottom: 1px solid #FFF;
}
.point-03 a .btn_check i {
padding-right: 10px;
padding-left: 5px;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}
a:hover .btn_check i {
padding-right: 5px;
padding-left: 10px;
}
.point-03 .balloon {
display: inline-block;
position: absolute;
top: -64px;
left: 50%;
margin-left: -50px;
width: 80px;
height: 80px;
line-height: 85px;
vertical-align: middle;
text-align: center;
color: #FFF;
font-size: 16px;
font-weight: bold;
border-radius: 50%;
box-sizing: border-box;
z-index: 100;
background-color: #78b2bd;
}
.point-03 .balloon:before{
content: "";
position: absolute;
bottom: -12px;
left: 50%;
margin-left: -12px;
border-right: 12px solid transparent;
border-top: 20px solid #78b2bd;
border-left: 12px solid transparent;
z-index: 0;
}
@media screen and (max-width:1300px) {
.title_service {
width: 450px;
max-width: 80%;
}
.point-03 ul li {
width: 44%;
margin: 3%;
}
}
@media screen and (max-width:1000px) {
.title_service {
width: 400px;
max-width: 80%;
}
.point-03 ul li {
width: 480px;
max-width: 96%;
margin: 4% auto 6%;
}
.point-03 ul li a .photo {
height: auto;
}
.point-03 ul li a .title {
position: unset;
margin: 1em auto;
}
.point-03 ul li a .txt {
padding: 0em 2em 2em 2em;
}
}
@media screen and (max-width:599px) {
.title_service {
width: 300px;
max-width: 80%;
}
}

/*------------------------------------------
【下層】各サービス共通
-------------------------------------------*/
#subPage .waku{
background: #fff;
border: #ed1c24 2px solid;
box-shadow: #ed1c24 8px 8px 0px;
border-radius: 15px;
padding: 1em 1em;
margin: 2em auto 2em;
width: 96%;
}

/*--------------------
【共通】事例紹介
---------------------*/
/*topのみ*/
#top_work .list_area{
height: 360px;
overflow: hidden;
margin-bottom: 10px;
}
/*以下共通*/
.list_wrap{
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
flex-wrap: wrap;
align-items: start;
margin-left: 2%;
}
.list_wrap > li {
flex-basis: 22%;
margin: 1.5%;
padding: 0;
border: #ccc 1px solid;
border-radius: 5px;
background: #fff;
}

.list_wrap > li .img {
position: relative;
overflow: hidden;
padding-top:64%;
background: #eaeaea;
margin-bottom: 10px;
}

.list_wrap > li a img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
width: 100%;
/*height: 195px;*/
height:fit-content;
object-fit: cover;
}

.list_wrap > li p.text {
line-height: 1.8em;
height: 120px;
padding: 5px 10px 10px 10px;
min-height: calc( 1.5em * 4 );
display: -webkit-box;
-webkit-line-clamp: 5;
-webkit-box-orient: vertical;
overflow: auto;
max-height: calc( 1.5em * 4 );
}

.list_wrap .date{
font-size: 14px;
display: block;
padding: 0;
margin:10px 10px 5px 10px;
line-height: 1.0;
}
.list_wrap .date:before {
content: "\f274";
font-family: FontAwesome;
margin-right: 6px;
font-weight: 900;
color: #999;
}

.list_wrap > li p.category{
font-size:13px;
line-height: 1.0;
margin: 10px;
padding: 5px 10px;
background:#0c2b64;
color: #fff;
display: inline;
display: none;
}


@media screen and (max-width:1024px) {
#top_work .list_area {
height: auto;
}
/* 2列 */
.list_wrap > li {
flex-basis: 46%;
margin: 2%;
}
/* 3列
.list_wrap > li {
flex-basis: 30%;
margin: 0 1.5% 3%;
}
.list_wrap .date{
font-size:12px;
}
.list_wrap > li p.category{
font-size:12px;
}
*/
}

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

.list_wrap > li p.category{
font-size:11px;
}
}
@media screen and (max-width:599px) {
/* 1列 */
.list_wrap > li {
flex-basis: 96%;
margin: 4%;
}
}

/*ページャー*/
#pagination {
width: 100%;
margin:2em auto 1em;
}
#pagination ul {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
justify-content: center;
}
#pagination li {
margin-right: 7px;
margin-left: 7px;
line-height: 1.5;
}
#pagination li a {
display: block;
color: #ed1c24;
border: 1px solid #ed1c24;
/* width: 30px; */
/* height: 30px; */
/* padding-top: 7px; */
padding: 10px 15px;
background: #fff;
text-align: center;
text-decoration: none;
}
#pagination li.active a {
background: #ed1c24;
color: #fff;
}

/*事例詳細ページ*/
.works_detail{
width: 100%;
margin: auto;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
justify-content: space-between;
}
.works_detail .photo{
width: 23%;
margin: 1%;
}
.works_detail .photo img{
width: 100%;
}

@media screen and (max-width:414px) {
.works_detail .photo {
flex-basis: 100%;
margin: 3%;
}
}

/*------------------------------------------
【共通】ギャラリー
------------------------------------------*/
/*homeのみ*/
/*#topPage .works_area {
height: 350px;
overflow: hidden;
}*/
.short .works li {
width: 23%;
margin: 1%;
}
.short .works li a img {
height: 240px;
}

/*共通*/
.works{
width: 100%;
margin: auto;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
align-content: flex-start;
align-items: stretch;
flex-direction: row;
justify-content: flex-start;
}
.works li {
background: #f5f5f5;
display: block;
width: 47%;
margin: 1.5%;
padding: 0px;
border: 1px solid #999999;
box-shadow: #ccc 2px 2px 2px;
}
.works li a {
display: block;
text-decoration: none;
width: 100%;
padding: 15px;
position: relative;
}
.works li a:hover {
background-color: #FFF;
}
.works li a span {
display: none; /*ジャンルタグ非表示*/
/*display: block;*/
color: #FFF;
font-size: 12px;
background-color: #32b16c;
position: absolute;
top: 5px;
left: 5px;
z-index: 10;
padding: 2px 5px;
}
.works li a img {
width: 100%;
height: 350px;
object-fit: cover;
}
.works li a p {
color: #000;
border-left: 8px solid #ed1c24;
margin: 1em auto 0;
padding: 0.2em 1em 0.2em;
line-height: 1.4;
}
@media screen and (max-width:1024px) {
.short .works li,
.works li{
width: 48%;
margin: 1%;
}
.works li a img {
height: 220px;
}
}
@media screen and (max-width:599px) {
.short .works li,
.works li {
width: 96%;
margin: 2%;
}
}
/*-------------------------------------------
【下層】6つの特徴
-------------------------------------------*/
.plan_a_title img{
width:900px;
max-width:90%;
}

.block03{
/*background: #e6f2fd url(../img/bg-2.png) repeat bottom center scroll;
padding: 3% 2%;
border-radius: 20px;*/
}

.block03 ul {
width: 100%;
margin: auto;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
align-content: flex-start;
align-items: stretch;
flex-direction: row;
justify-content: center;
}
.block03 ul li {
position: relative;
letter-spacing: 0;
width: 28%;
margin: 2%;
padding: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: #ffffff;
border-radius: 20px;
box-shadow: 10px 10px 0px #e1e1e1;
border: #ed1c24 1px solid;
}
.block03 ul.tag {
justify-content: flex-start;
}
.block03 ul.tag li {
position: relative;
letter-spacing: 0;
width: 46%;
margin: 0% 2% 3%;
padding: 0 0 0.5em 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
box-shadow: none;
background: transparent;
border-radius: 0;
border-bottom: #a3a3a3 1px dashed;
}

/* LINK */
.block03 ul li a {
display: block;
overflow: hidden;
text-decoration: none;
}
.block03 ul li a img {
border-radius: 20px 20px 0 0;
width: 100%;
max-width: 100%;
-webkit-transition: 1.0s ease-out;
-moz-transition: 1.0s ease-out;
transition: 1.0s ease-out;
opacity: 1.00;
filter: alpha(opacity=100);
-ms-filter: "alpha( opacity=100 )";
}
.block03 ul li a:hover img {
-webkit-transform: scale(1.05);
-moz-transform: scale(1.05);
-o-transform: scale(1.05);
-ms-transform: scale(1.05);
transform: scale(1.05);
opacity: 0.75;
filter: alpha(opacity=75);
-ms-filter: "alpha( opacity=75 )";
}
.block03 ul li a:hover {
box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 7px 0px;
-webkit-box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 7px 0px;
-moz-box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 7px 0px;
border-radius: 20px;
}

/* CONTENTS */
.plan_a_title_bg{background: #fcfaf1 url(../img/plan_a_obi.png) repeat-x top center scroll;}
.plan_b_title_bg{background: #fcfaf1 url(../img/plan_a_obi.png) repeat-x top center scroll;}

.block03 ul li a .photo {
/*height: 275px;*/
display: block;
overflow: hidden;
}
.block03 ul li a .name {
display: block;
font-size: 125%;
background: transparent;
color: #FFF;
line-height: 40px;
text-align: center;
width: 50%;
margin-top: -35px;
margin-left: -25%;
position: absolute;
left: 50%;
top: 50%;
font-weight: bold;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}
.block03 ul li a .title {
color: #ed1c24;
font-size: 152%;
font-weight: bold;
text-align: center;
letter-spacing: 0.5px;
line-height: 1.4;
margin: 0.5em;
padding: 0.3em 0.5em 0.6em;
width: 94%;
border-bottom: #cedff3 8px solid;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}

.block03 ul li a .txt {
display: block;
/* color: #564124; */
text-align: left;
padding: 0em 1.5em 1em 1.5em;
letter-spacing: 3px;
line-height: 1.6;
width: 100%;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}
.block03 ul li a .txt-01 {
color: #666666;
padding: 0 1.5em 1em;
}
.block03 ul li a .btn_check {
display: none;
font-size: 90%;
background: transparent;
color: #78b2bd;
font-weight: bold;
border: 1px solid #78b2bd;
border-radius: 50px;
letter-spacing: 3px;
line-height: 26px;
text-align: center;
width: 50%;
margin: 0em auto 2em;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}
.block03 ul li a:hover .btn_check {
background: #78b2bd;
color: #fff;
border: none;
border-bottom: 1px solid #FFF;
}
.block03 a .btn_check i {
padding-right: 10px;
padding-left: 5px;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
transition: 0.2s linear;
}
a:hover .btn_check i {
padding-right: 5px;
padding-left: 10px;
}
.block03 .balloon {
background-color: #ed1c24;
font-size: 14px;
padding: 12px 0;
display: inline-block;
position: absolute;
top: -10px;
left: 27px;
margin-left: -39px;
width: 65px;
height: 67px;
line-height: 1.1;
vertical-align: middle;
text-align: center;
color: #fff;
/* border: #fff 5px solid; */
box-shadow: #ffffff 5px 5px 0px;
font-weight: bold;
border-radius: 6px;
box-sizing: border-box;
z-index: 100;
}
.block03 .balloon .num {font-size:28px; font-weight:bold;}

/*.block03 .balloon:before{
content: "";
position: absolute;
bottom: -12px;
left: 50%;
margin-left: -12px;
border-right: 12px solid transparent;
border-top: 20px solid #8cc222;
border-left: 12px solid transparent;
z-index: 0;
}*/

@media screen and (max-width:1200px) {
.block03 ul li {
width: 44%;
margin: 3%;
}
}
@media screen and (max-width:767px) {
.block03 ul li {
width: 480px;
max-width: 96%;
margin: 6% auto;
}
.block03 ul li a .photo {
height: 230px;
}
}
@media screen and (max-width:599px) {
.block03 ul li a .photo {
height: 200px;
}
}

/*------------------------------------------
【下層】会社概要
------------------------------------------*/
.table_08 {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
margin: 0em auto;
}
.table_08 th,
.table_08 td{
text-align: center;
line-height: 1.4;
padding: 1em 1.5em;
vertical-align: middle;
/*white-space: nowrap;*/
}
.table_08 th {
/*width: 16%;*/
background:#f7f7f1;
border:#c9c99e 1px solid;
}
.table_08 td {
border:#c9c99e 1px solid;
background: #fff;
text-align: left;
}
.table_08 th.c1 {
background:#e3e3cd;
}
/*.table_08 td:first-child {
background: #f7f7ec;
}*/

.staff_box {
width: 510px;
max-width: 100%;
padding: 2em;
margin: 0 auto;
background: #f7f7f1;
border-radius: 20px;
border: #c9c99e 1px solid;
box-shadow: #b9b9b9 10px 10px 0px;
background: url(../img/bg-2.png) repeat right 0 scroll;
}
/*--------------------
【下層】　FAQ　よくある質問
---------------------*/
.toggle_wrap {
background: #d6ebf9;
width: 100%;
margin: 0 auto 2em;
border-radius: 10px;
padding: 2px;
}
.toggle_wrap p.q {
font-size: 110%;
line-height: 1.8;
padding:5px 40px 5px 20px;
font-weight: bold;
}
.toggle_wrap p.q:before,
.toggle_wrap p.a:before{
content: "Q";
font-family: FontAwesome;
margin-right: 10px;
font-size: 18px;
font-weight: bold;
color: #ffffff;
background: #1b6ebe;
padding: 5px 8px;
border-radius: 5px;
}
.toggle_wrap p.a:before {
content: "A";
background: #8cc63e;
}
.toggle_contents {background: #fff;}

/* アコーディオン */
.toggle_switch {
position: relative;
cursor: pointer;
padding:8px 0;
}
.toggle_contents p {
text-align: left;
padding:5px 20px;
line-height: 1.8;
}
.toggle_switch::after {
content: "";
display: inline-block;
width: 18px;
height: 11px;
background: url(../img/arrow_down.png) no-repeat center center;
background-size: contain;
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 20px;
transition: transform .2s;
}
.toggle_switch.open::after {
transform: rotateZ(180deg);
top: 46%;
}
.toggle_contents {
/*display: none;*/
display: block;
padding: 5px 0 5px;
background: #fff;
width: 100%;
margin: 0;
border-radius: 0 0 10px 10px;
}

@media screen and (max-width: 590px) {
.toggle_wrap p.q,
.toggle_wrap p.a {
font-size: 100%;
padding: 5px 25px 5px 20px;
}
.toggle_switch::after {right: 5px;}
}
/*------------------------------------------
【下層】STEP
-------------------------------------------*/
#step .flexbox {    
border: #ed1c24 1px solid;
padding: 10px;
background: #f1f7ff;
border-radius: 5px;
box-shadow:#d7d7d7 3px 3px 3px;
width: 100%;
margin: auto;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
align-content: flex-start;
flex-direction: row-reverse;
justify-content: space-between;
align-items: stretch;
flex-direction: row;
}
#step .step_img{
width: 23%;
padding: 1%;
}
#step .step_img img{
width: 100%;
}
#step dl{
width: 75%;
padding-left: 2%;
line-height: 1.5;
}
#step dl dt{
font-size: 140%;
font-weight: bold;
color: #ed1c24;
border-bottom: #ed1c24 1px dotted;
padding: 10px 0;
margin: 10px 0 10px;
}
#step dl dd {
padding: 10px 0;
}
#step dl dt span{
background: #ed1c24;
color: #fff;
padding: 5px 12px;
border-radius: 5px;
font-weight: normal;
font-size: 85%;
}

#step .arrow{
text-align: center;
margin: 10px auto 0;
}

/*step btn*/
#step ul.step_info_set{
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-content: flex-start;
justify-content: flex-start;
align-items: flex-start;
}
#step ul.step_info_set li{
width: 200px;
max-width: 80%;
text-align: center;
margin-right: 1em;
}

#step ul.step_info_set li a{
font-size: 15px;
font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
color: #515151;
margin: 0px 0 15px;
padding:14px 5px;
line-height: 1;
letter-spacing: 0.1em;
font-weight: normal;
text-align: center;
text-decoration: none;
clear: both;
display: block;
border-radius: 5px;
border: #b1b1b1 1px solid;
box-shadow: #818181 2px 2px 2px;
background: #e9e9e9;
background: #efefef;
background: -moz-linear-gradient( #fbfbfb 0%, #efefef 100%);
background: -webkit-gradient(linear, left top, left bottom, from(#fbfbfb), to(#efefef));
background: -webkit-linear-gradient( #fbfbfb 0%, #efefef 100%);
background: -o-linear-gradient( #fbfbfb 0%, #efefef 100%);
background: linear-gradient( #fbfbfb 0%, #efefef 100%);
}

#step ul.step_info_set li a:hover{
opacity: 0.85;
}

@media screen and (max-width:1024px) {
#step dl {

}
#step dl dt {
font-size: 110%;
padding: 5px 0 15px;
margin: 10px 0 5px;
/* border-bottom: none;*/
}
}
@media screen and (max-width:768px) {
#step ul.step_info_set li {
width: 174px;
max-width: 100%;
text-align: center;
margin-right: 1em;
padding: 0;
}
}

@media screen and (max-width:599px) {
#step dl {
width: 100%;
padding:0 15px 15px 15px;
}
#step .step_img {
text-align: center;
width: 80%;
margin: 20px auto 0;
}
#step ul.step_info_set li {
width: 100%;
max-width: 100%;
text-align: center;
margin-right: 0;
margin: 0 auto;
padding: 0;
}
#step ul.step_info_set li a {
font-size: 14px;
}
}
