*{
box-sizing:border-box;
}

html {
font-size: 100%;
overflow-y: scroll;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
overflow-x: hidden;
}

body {
color: #575757;
margin: 0;
font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
font-size: 14px;
}


/*コンテンツフェードイン
---------------------------------------------------------------------------*/
.fade{
opacity:0;
}

/*SPメニュー用上部マージン
---------------------------------------------------------------------------*/
@media(max-width:768px){
.content{
padding-top:50px;
}
}

/*テキスト
---------------------------------------------------------------------------*/
a {
text-decoration: none;
color:#575757;
}

/*ヘッダーPCメニュー
---------------------------------------------------------------------------*/
header{
width: 100%;
}

@media(max-width:768px){
header{
display:none;
}
}

.header_inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 10px;
}

.header_logo_box{
display: table;
table-layout: fixed;
width: 100%;
list-style: none;
}

.header_logo{
display: table-cell;
vertical-align: middle;
text-align: left;
}

.header_phone{
display: table-cell;
vertical-align: middle;
text-align: right;
}


#hd2{
background-color:#0796E5;
}

#menu{
display: flex;
justify-content: space-around;
width: 80%;
margin: 0 auto;
padding: 10px;
text-align: center;
list-style: none;
text-align:center;
}

#menu li{
display: table-cell;
vertical-align: middle;
text-align: center;
font-size: 13px;
}

#menu li a{
padding: 5px 15px 5px 15px;
display: block !important;
color:#fff;
font-weight:bold;
}

#menu li a:hover{
background-color:#2DB4FD;
}


.hd_bg_subpage{
background-color: rgba(242, 242, 242, 0.9);
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
-ms-transition: all 0.2s linear;
transition: all 0.2s linear;
}

.hd_bg_subpage a{
color:#575757;
text-decoration: none;
padding: 15px 0 15px 0;
display:block!important;
font-size:13px;
}

.hd_bg_subpage a:hover{
text-decoration: none;
background-color:#73d4a6;
color:#fff;
}


ul.child{
display: none;
position: absolute;
width:200px;
z-index:9999;
list-style:none;
padding:10px 0 0 0;
}

ul.child li a{
border-bottom: 1px solid #D3D3D3;
padding: 20px 0px 20px 0px;
display: block;
width:180px;
background-color: rgb(53, 53, 53);
border-left:none;
border-bottom:1px solid #4C4C4C;
}
ul.child li a:hover{
background-color:#444;
}


/*スマホ用ヘッダーメニュー
---------------------------------------------------------------------------*/
.side-open .site,
.side-open .overlay {
-webkit-transform: translate3d(0%, 0, 0);
transform: translate3d(0%, 0, 0);
}

@media(max-width:768px){
.side-open .site,
.side-open .overlay {
-webkit-transform: translate3d(-50%, 0, 0);
transform: translate3d(-50%, 0, 0);
}
}

@media(max-width:480px){
.side-open .site,
.side-open .overlay {
-webkit-transform: translate3d(-70%, 0, 0);
transform: translate3d(-70%, 0, 0);
}
}

/* --------------------------------------------------- btn */
.btn__box {
position: relative;
text-align: center;
z-index: 1;
}

.btn__box a {
display: block;
width: 198px;
height: 38px;
margin: 0 auto;
line-height: 40px;
font-size: 13px;
color: #1a1e24;
-webkit-transition: all .3s ease;
transition: all .3s ease;
border: 1px solid #1a1e24;
}

.btn__box a:hover {
color: #fff !important;
background: #1a1e24;
}

.btn__box--svg {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 214px;
height: 54px;
margin: auto;
z-index: -1;
}

.btn__box--svg rect {
fill: transparent;
stroke: #1a1e24;
stroke-width: 1px;
stroke-dasharray: 242px;
stroke-dashoffset: 256px;
-webkit-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}

.btn__box a:hover + .btn__box--svg rect {
stroke-width: 2px;
stroke-dasharray: 600px;
stroke-dashoffset: 0;
}

/* --------------------------------------------------- side menu */
.sp_header_wrap{
display:none;
}

@media(max-width:768px){
.sp_header_wrap{
display:block;
width: 100%;
position: fixed;
padding: 0;
height: 50px;
z-index: 999999;
background-color: #fff;
box-shadow: 0px 1px 10px rgba(0,0,0,0.3);
}
}

.header_logo_sp{
position: absolute;
z-index: 99999;
top:0;
}

.header_logo_sp img {
width: 100px;
margin-top: 7px;
margin-left: 10px;
}


.side-menu {
display:none;
}

@media(max-width:768px){
.side-menu {
display:block;
position: fixed;
top: 0;
right: -50%;
box-sizing: border-box;
width: 50%;
height: 100%;
padding-top: 50px;
padding-bottom: 50px;
text-align: left;
font-size: 15px;
background: #fff;
z-index: -999;
-webkit-transition: all .5s ease;
transition: all .5s ease;
opacity:0;
overflow-x: hidden;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
border-left: 5px solid #0796E5;
}
}


@media(max-width:480px){
.side-menu {
right: -70%;
width: 70%;
}
}

.side-menu_on {
z-index: 999;
-webkit-transition: all .5s ease;
transition: all .5s ease;
opacity:1;
overflow-y: auto;
right: 0;
}

.site_on {
position:fixed;
overflow-y:hidden;
}

.side-menu__ul {
width: 100%;
height: 100%;
display: block;
overflow: auto;
}

.side-menu__ul span {
padding-left:10px;
}

.side-menu__ul--child {
display: none;
}

.active .side-menu__ul--child {
display: block;
}

.side-menu__ul li a {
border-bottom: 1px solid #dadada;
}

.side-menu__ul--child li a {
display: block;
padding: 8px 0 8px 32px;
color: #ccc;
border-bottom: 1px solid #dadada;
}

.side-menu__ul > li > a,
.side-menu__ul > li h5 {
display: block;
padding: 15px 0 15px 20px;
color: #575757;
}

.side-menu__ul h5 {
font-weight:normal;
cursor: pointer;
-webkit-transition: all .5s;
transition: all .5s;
}

.side-menu__ul > li > h5:after {
content: ' +';
color: #ffd800;
font-size: 20px;
}

.side-menu__ul > li.active h5:after {
content: ' -';
}

.side-menu__ul > li > h5:hover,
.side-menu__ul > li a:hover {
background: #0796E5;
color: #fff;
}

/* --------------------------------------------------- ellipsis btn */
.side-menu-btn {
position: absolute;
top: 6px;
right: 20px;
width: 40px;
height: 40px;
padding: 5px;
cursor: pointer;
z-index: 4;
}

.ellipsis-v {
position: relative;
display: block;
cursor: pointer;
width: 30px;
height: 30px;
}

.ellipsis-v .point {
position: absolute;
left: 0;
right: 0;
display: block;
width: 35px;
height: 4px;
margin: auto;
background: #575757;
-webkit-transition: all .3s;
transition: all .3s;
}

.ellipsis-v .point.top {
top: 0;
}

.ellipsis-v .point.mid {
top: 0;
bottom: 0;
}

.ellipsis-v .point.bot {
bottom: 0;
}

.side-menu-btn:hover .top {
-webkit-transform: translateY(-2px);
-ms-transform: translateY(-2px);
transform: translateY(-2px);
}

.side-menu-btn:hover .bot {
-webkit-transform: translateY(2px);
-ms-transform: translateY(2px);
transform: translateY(2px);
}

.side-open .side-menu-btn:hover .top,
.side-open .top {
width: 41px;
height: 2px;
background: #575757;
-webkit-transform-origin: left top;
-ms-transform-origin: left top;
transform-origin: left top;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}

.side-open .mid {
opacity: 0;
}

.side-open .side-menu-btn:hover .bot,
.side-open .bot {
width: 41px;
height: 2px;
background: #575757;
-webkit-transform-origin: left bottom;
-ms-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
transform: rotate(-45deg);
}

.side-open .side-menu-btn:hover .bot,
.side-open .side-menu-btn:hover .top {
background: #575757;
}


/*リンクアイコン
---------------------------------------------------------------------------*/
.bg-mainicon{
background-color:#0796E5;
}

.main-icon-wrap{
width:100%;
margin:0 auto;
padding:20px 0;
overflow:hidden;
text-align: center;
}

.main-icon-box{
  width: 70%;
  list-style: none;
  margin: 0 auto;
  text-align: center;
}

.main-icon-box ul{
  display: flex;
  justify-content: space-between;
  width:800px;
  text-align: center;
  margin:0 auto;
}

.main-icon-box p{
margin-bottom:15px;
white-space: nowrap;
}

.main-icon-box li{
width:16.6%;
height:100px;
text-align: center;
font-size: 13px;
}

.main-icon-box li a{
padding: 15px;
display: block !important;
color:#fff;
font-weight:bold;
}

.main-icon-box li a:hover{
background-color:#2DB4FD;
}

@media(max-width:1000px){
.main-icon-wrap{
  display: flex;
  flex-direction: row;
  width:100%;
  margin:0 auto;
  overflow:hidden;
  text-align: center;
  }
  
  .main-icon-box{
    display: flex;
    justify-content: space-between;
    width: 100%;
    list-style: none;
    margin: 0 auto;
  }
  
  .main-icon-box ul{
    display: flex;
    width:100%;
    text-align: center;
    margin:0 auto;
  }
  .main-icon-box li{
    width:30%;
    font-size: 12px;
    }
}




/*エリア
---------------------------------------------------------------------------*/
.eria-wrap{
max-width:1100px;
margin:0 auto;
padding:50px 20px 50px 20px;
overflow:hidden;
line-height: 1.5em;
}

.eria-wrap img{
width:100%;
}

.eria-wrap h1{
text-align: center;
font-size: 16px;
padding-bottom: 20px;
}

.eria-wrap span{
font-size: 12px;
}

.eria-left{
width: 50%;
float: left;
padding: 1%;
box-sizing: border-box;
overflow: hidden;
}

.eria-right{
width: 50%;
float: left;
padding: 1%;
box-sizing: border-box;
overflow: hidden;
}

.eria-box{
width: 50%;
float: left;
padding: 1%;
box-sizing: border-box;
font-size: 13px;
}


@media(max-width:768px){
.eria-left{
width: 100%;
float: none;
clear:both;
margin-bottom:30px;
}
.eria-right{
width: 100%;
float: none;
clear:both;
}
}


/*お知らせ　フッター
---------------------------------------------------------------------------*/
.bg-news{
background-color:#2DB4FD;
}

.news-wrap{
max-width:800px;
margin:0 auto;
padding:30px 20px 30px 20px;
overflow:hidden;
line-height: 1.5em;
display: table;
table-layout: fixed;
width: 100%;
list-style: none;
color:#fff;
box-sizing: border-box;
}

.news-left{
width:15%;
display:table-cell;
vertical-align:middle;
font-weight:bold;
padding-right:10px;
}

.news-right{
width:85%;
display:table-cell;
}

.news-wrap dl,.news-wrap-top dl{
margin: 0;
line-height: 1.7em;
}

.news-wrap dt,.news-wrap-top dt{
float: left;
font-size: 14px;
display: inline-block;
padding-right: 20px;
}

.news-wrap dt{
font-weight: bold;
}

.news-wrap dd,.news-wrap-top dd{
font-size: 14px;
}

.news-right a{
color:#fff;
}

.news-wrap dl:hover,.news-wrap-top dl:hover{
background-color:#0796E5;
}


@media(max-width:768px){
.news-left{
width:100%;
display:block;
margin-bottom:15px;
}
.news-right{
width:100%;
display:block;
}
.news-wrap dt,.news-wrap-top dt{
float: none;
display: block;
}
.news-wrap dd{
margin-bottom:10px;
}
}


/*フッター
--------------------------- */
.bg-footer{
background-color:#0796E5;
}

.footer-wrap{
max-width:1100px;
margin:0 auto;
padding:30px 20px 50px 20px;
overflow:hidden;
line-height: 1.5em;
color:#fff;
}

.bg-footer-image{
background-image: url("../img/footer-image.png");
background-repeat: no-repeat;
background-position: right bottom;
}

.footer-box{
width: 25%;
float: left;
padding: 3%;
box-sizing: border-box;
font-size: 13px;
}

.footer-box h2{
font-size: 17px;
padding-bottom:20px;
}

.footer-box img{
margin-top:20px;
width:100%;
max-width: 245px;
}

.footer-box a{
color:#fff;
}

.footer-box a:hover{
color:#f3f3f3;
}

.copyright{
max-width: 1100px;
margin: 0 auto;
text-align: center;
padding: 20px;
}


@media(max-width:768px){
.footer-wrap{
padding:30px 20px 100px 20px;
}
.footer-box{
width: 100%;
float: none;
margin-bottom:20px;
}
}



/*背景
---------------------------------------------------------------------------*/
.fullscreen{
width: 100%;
}

.bg1{
background-image: url("../img/header-bg.png");
background-repeat: no-repeat;
background-position: center top;
}

.bg-white{
background-color:#fff;
}

.full{
height: auto;
border-top: 7px solid #000;
}


.fixed{
background-position: center top;
background-attachment: fixed;
}



/*コンテンツアニメーション
---------------------------------------------------------------------------*/
.fadeinonly {
 -webkit-animation-fill-mode:both;
 -ms-animation-fill-mode:both;
 animation-fill-mode:both;
 -webkit-animation-duration:1.0s;
 -ms-animation-duration:1.0s;
 animation-duration:1.0s;
 -webkit-animation-name: fadeinonly;
 animation-name: fadeinonly;
 visibility: visible !important;
}
@-webkit-keyframes fadeinonly {
 0% { opacity: 0; }
 100% { opacity: 1;}
}
@keyframes fadeinonly {
 0% { opacity: 0;}
 100% { opacity: 1;}
}

.fadeinup{
 -webkit-animation-fill-mode:both;
 -ms-animation-fill-mode:both;
 animation-fill-mode:both;
 -webkit-animation-duration:1.0s;
 -ms-animation-duration:1.0s;
 animation-duration:1.0s;
 -webkit-animation-name: fadeinup;
 animation-name: fadeinup;
 visibility: visible !important;
}
@-webkit-keyframes fadeinup {
 0% { opacity: 0; -webkit-transform: translateY(40px); }
 100% { opacity: 1; -webkit-transform: translateY(0); }
}
@keyframes fadeinup {
 0% { opacity: 0; -webkit-transform: translateY(40px); -ms-transform: translateY(40px); transform: translateY(40px); }
 100% { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
}


.fadeindown{
 -webkit-animation-fill-mode:both;
 -ms-animation-fill-mode:both;
 animation-fill-mode:both;
 -webkit-animation-duration:1.0s;
 -ms-animation-duration:1.0s;
 animation-duration:1.0s;
 -webkit-animation-name: fadeindown;
 animation-name: fadeindown;
 visibility: visible !important;
}
@-webkit-keyframes fadeindown {
 0% { opacity: 0; -webkit-transform: translateY(-40px); }
 100% { opacity: 1; -webkit-transform: translateY(0); }
}
@keyframes fadeindown {
 0% { opacity: 0; -webkit-transform: translateY(-40px); -ms-transform: translateY(-40px); transform: translateY(-40px); }
 100% { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
}


.fadeinleft {
 -webkit-animation-fill-mode:both;
 -ms-animation-fill-mode:both;
 animation-fill-mode:both;
 -webkit-animation-duration:1.0s;
 -ms-animation-duration:1.0s;
 animation-duration:1.0s;
 -webkit-animation-name: fadeinleft;
 animation-name: fadeinleft;
 visibility: visible !important;
}
@-webkit-keyframes fadeinleft {
 0% { opacity: 0; -webkit-transform: translateX(-40px); }
 100% { opacity: 1; -webkit-transform: translateX(0); }
}
@keyframes fadeinleft {
 0% { opacity: 0; -webkit-transform: translateX(-40px); -ms-transform: translateX(-40px); transform: translateX(-40px); }
 100% { opacity: 1; -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); }
}

.fadeinright {
 -webkit-animation-fill-mode:both;
 -ms-animation-fill-mode:both;
 animation-fill-mode:both;
 -webkit-animation-duration:1.0s;
 -ms-animation-duration:1.0s;
 animation-duration:1.0s;
 -webkit-animation-name: fadeinright;
 animation-name: fadeinright;
 visibility: visible !important;
}
@-webkit-keyframes fadeinright {
 0% { opacity: 0; -webkit-transform: translateX(40px); }
 100% { opacity: 1; -webkit-transform: translateX(0); }
}
@keyframes fadeinright {
 0% { opacity: 0; -webkit-transform: translateX(40px); -ms-transform: translateX(40px); transform: translateX(40px); }
 100% { opacity: 1; -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); }
}


.fadeinzoom {
 -webkit-animation-fill-mode:both;
 -ms-animation-fill-mode:both;
 animation-fill-mode:both;
 -webkit-animation-duration:1.0s;
 -ms-animation-duration:1.0s;
 animation-duration:1.0s;
 -webkit-animation-name: fadeinzoom;
 animation-name: fadeinzoom;
 visibility: visible !important;
}
@-webkit-keyframes fadeinzoom {
 0% { opacity: 0; -webkit-transform: scale(0.7);}
 100% { opacity: 1; -webkit-transform: scale(1);}
}
@keyframes fadeinzoom {
 0% { opacity: 0; -webkit-transform: scale(0.7); -ms-transform: scale(0.7); transform: scale(0.7); }
 100% { opacity: 1; -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); }
}



/*ボタン
--------------------------- */

button{
background-color: transparent;
border: none;
cursor: pointer;
outline: none;
padding: 0;
appearance: none;
}

.normal-botan{
background-color: #0796E5;
color: #fff;
padding: 10px 30px 10px 30px;
font-size: 16px;
border-radius: 10px;
font-family: "'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
}

.normal-botan:hover{
background-color: #2DB4FD;
}

/*トップへボタン
--------------------------- */
#page-top {
width:0px;
height:0px;
position: fixed;
right: 80px;
z-index:9999;
opacity: 0.7;
filter: alpha(opacity=70);
-ms-filter: "alpha(opacity=70)";
}

.arrow{
position: relative;
display: inline-block;
padding: 0 0 0 16px;
color: #E0E0E0;
vertical-align: middle;
text-decoration: none;
font-size: 15px;
}
.arrow::before,
.arrow::after{
position: absolute;
top: 0;
bottom: 0;
left: 0;
margin: auto;
content: "";
vertical-align: middle;
}

.posi::before{
top:-60px;
width: 50px;
height: 50px;
background: #868686;
border-radius: 10px;
}
.posi::after{
top:-45px;
left:11px;
width: 25px;
height: 25px;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
}

#page-top:hover {
opacity: 1;
filter: alpha(opacity=100);
-ms-filter: "alpha(opacity=100)";
}

@media(max-width:768px){
#page-top:hover {
opacity: 0.7;
filter: alpha(opacity=70);
-ms-filter: "alpha(opacity=70)";
}
}

/*メディアクエリ
--------------------------- */

.sp_on_768{
display:none;
}

@media(max-width:768px){
.sp_on_768{
display:block;
}
}

.sp_off_768{
display:block;
}

@media(max-width:768px){
.sp_off_768{
display:none;
}
}

/*マージン系
--------------------------- */
.mdb-15{
margin-bottom:15px;
}

.mdb-30{
margin-bottom:30px;
}

.mdb-40{
margin-bottom:40px;
}

.pdb-50{
padding-bottom:50px;
}

.t-center{
text-align:center;
}

/*その他
--------------------------- */
.clear{
clear:both;
}

hr{
height: 0;
margin: 0;
padding: 0;
border: 0;
border-top: 1px solid #d2d2d2;
}

@media(max-width:768px){
.flex-container {
  display: -webkit-flex; /* Safari */
  display: flex;
  -webkit-flex-direction: column-reverse; /* Safari */
  flex-direction: column-reverse;
}
}
