@charset "UTF-8";
/*
	BASE
*******************************/

/*
font-family: 'Lato', sans-serif;
font-family: 'Noto Sans JP', sans-serif;
font-family: 'Oswald', sans-serif;
*/
* {
	font-family:  'Noto Sans JP',"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo,'Hiragino Kaku Gothic Pro',Osaka, "ＭＳ Ｐゴシック", "MS PGothic",sans-serif;
	margin: 0;
	padding: 0;
	box-sizing:border-box;
}
.en {
	font-family: 'Lato', sans-serif;
}
.jp {
	font-family: 'Noto Sans JP', sans-serif;
}

html {
	font-size:62.5%;
	line-height:1em;
}
body {
	font-size:1.6rem;
	background-color:#ffffff;
}

img {
	-webkit-backface-visibility: hidden;
	vertical-align:bottom;
	line-height:0;
}


p,th,td,dt,dd,li,h1,h2,h3,h4,h5,h6 { color:#000000;}

a,
a:link,
a:visited {
	color:#333333;
	text-decoration:none;
	outline:none;
	border:none;
}
a:hover {
	color:#666666;
	text-decoration:none;
}

a img {
	outline:none;
	border:none;
	-webkit-backface-visibility: hidden;
}
area {
	border:none;
	outline:none;
}

.clear { clear:both;}

* img {
	max-width: 100%;
	height: auto;
}

/*//////////////////////////////////////////////////////////////////////////*/



/*
	BASE LAYOUT
******************/

body {
	min-width:1024px;
}

#main {
	width:100%;
	margin:0;
	padding:0;
}
#main p {
	font-size:1.6rem;
	line-height: 2em;
	margin: 0 0 1em;
	padding:0;
	text-align:justify;
}


/*//////////////////////////////////////////////////////////////////////////*/


/*基本：左右配置　上下センター　折り返しなし*/
.fbox {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    -ms-flex-line-pack: stretch;
    align-content: stretch;
}

/*折り返しなし*/
.fbox.nowrap {
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
}

/*左寄せ*/
.fbox.bxstart {
  -webkit-box-pack: start;
     -ms-flex-pack: start;
   justify-content: flex-start;
}

/*右寄せ*/
.fbox.bxend {
  -webkit-box-pack: end;
     -ms-flex-pack: end;
   justify-content: flex-end;
}

/*中央寄せ*/
.fbox.bxcenter {
  -webkit-box-pack: center;
     -ms-flex-pack: center;
   justify-content: center;
}

/*上寄せ*/
.fbox.alstart {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
	align-content: flex-start;
}

/*下寄せ*/
.fbox.alend {
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
	align-content: flex-end;
}

/*上下中央*/
.fbox.alcenter {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
	align-content: center;
}

/*上下端*/
.fbox.albt {
  -ms-flex-line-pack: justify;
       align-content: space-between;
}

/*上下均等*/
.fbox.linedist {
  -ms-flex-line-pack: distribute;
       align-content: space-around;
}



/*子要素に設定　順番を1番目に*/
.pos0 {
  -webkit-box-ordinal-group: 1;
             -ms-flex-order: -1;
                      order: -1;
}

/*//////////////////////////////////////////////////////////////////////////*/

/*
	Header LAYOUT
******************/
#header {
	position:sticky;
	z-index:99
}
#header h1 {
	font-size:1.3rem;
	font-weight:500;
	background-color:#EFEFEF;
	padding:.25em 1em;
}
.header {
	width:100%;
}
.header_inner {
	width:100%;
}
.header .logo {
	width:240px;
	margin-left:30px;
}

.header .gmenu {
	font-size:1.5rem;
	margin:0 auto;
}
.header .gmenu > li:not(:last-child) {
	margin-right:3em;
}
.header .gmenu a {
	font-weight:500;
}
.header .gmenu li.active > a {
	font-weight:600;
	color:#277AB7;
}
.header .gmenu .home a {
	font-family: 'Lato', sans-serif;
	font-weight:600;
}
.header .gmenu .smenu {
	position:relative;
}
.header .gmenu .smenu > a::after {
	content:'';
	display:inline-block;
	width:.3em;
	height:.3em;
	border-right:2px solid #277AB7;
	border-bottom:2px solid #277AB7;
	transform:translateY(-.2em) rotate(45deg);
	margin-left:.4em;
}
.header .gmenu .smenu ul {
	display:none;
	position:absolute;
	width:12em;
	background-color:rgba(255,255,255,.8);
	padding-top:20px;
}
.header .gmenu .smenu:hover ul {
	display:block;
}
.header .gmenu .smenu ul a {
	display:block;
	font-size:1.4rem;
	padding:.5em;
}
.header .gmenu .smenu ul a:hover {
	background-color:#FFFFFF;
}
.header .gmenu .smenu ul li {
	border-top:1px solid rgba(39,122,183,.3);
}

.header .tel {
	font-family: 'Oswald', sans-serif;
	font-size:3.2rem;
	line-height:1;
	color:#277AB7;
	margin-right:30px;
}
.header .tel span:not(.spOnly) {
	font-family: 'Oswald', sans-serif;
}
.header .tel::before {
	content:'';
	display:inline-block;
	width:1em;
	height:1em;
	background:url(../img/common/tel.png) no-repeat center center/contain;
	transform:translateY(.05em);
}

.header .contact {
	display:block;
	text-align:center;
	width:80px;
	height:80px;
	background-color:#277AB7;
	padding-top:15px;
	margin:0
}
.header .contact::before {
	content:'';
	display:block;
	width:40px;
	height:30px;
	background:url(../img/common/mail.png) no-repeat center center/contain;
	margin:0 auto 5px;
}
.header .contact span {
	font-size:1.2rem;
	color:#FFFFFF;
	display:block;
	line-height:1;
}


/*
	Contents LAYOUT
******************/
.wrap {
	width:100%;
	padding:60px 0;
	text-align:center;
}

.contents {
	width:calc(100% - 60px);
	max-width:1100px;
	margin:0 auto;
	box-sizing:border-box;
	text-align:left;
}
#contents.p404 h1 {
	font-size:1.4em;
	margin-bottom:1em;
	text-align:center;
}
#main #contents.p404 p {
	text-align:center;
}


/*
	Footer LAYOUT
******************/
.footer {
	text-align:center;
}
.footer_box {
	width:calc(100% - 60px);
	max-width:1100px;
	margin:0 auto;
	box-sizing:border-box;
	text-align:left;
	padding:60px 0;
}
.footer_box .adress dt {
	width:200px;
	margin-bottom:10px;
}
.footer_box .adress dd {
	font-size:1.3rem;
	line-height:1.3;
}

.fmenu ul {
	font-size:1.4rem;
	margin-left:3em;
	line-height:1;
}
.fmenu ul li:not(:last-child) {
	margin-bottom:1em;
}
.fmenu ul li.submenu a {
	padding-left:.5em;
}
.fmenu ul li.submenu a::before {
	content:'';
	display:inline-block;
	width:.3em;
	height:.3em;
	border-right:2px solid #277AB7;
	border-bottom:2px solid #277AB7;
	transform:translateY(-.2em) rotate(-45deg);
	margin-right:.5em;
}

.footer .copyright {
	border-top:3px solid #277AB7;
}
.footer .copyright p {
	font-family: 'Lato', sans-serif;
	font-size:1.3rem;
	line-height:1;
	padding:1em 0;
}

/*
	Contact LAYOUT
******************/

#contact .wrap {
	text-align:center;
    position:relative;
    background:url(../img/common/contact.jpg) no-repeat center center/cover;
	padding:90px 0;
}
#contact .wrap::before {
    content:'';
    background-color:rgba(39,122,183,.5);
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    z-index:0;
}
#contact .contents {
	text-align:center;
    position:relative;
    z-index:1;
}
#contact .contents h2,
#contact .contents h3 {
	font-size:2.8rem;
	color:#FFFFFF;
	margin-bottom:1.5em;
}
#contact .contents .contact {
	width:100%;
	margin-bottom:45px;
}
#contact .contents .contact li {
	width:150px;
	margin:0 30px;
	text-align:center;
}
#contact .contents .contact li a {
	display:block;
	width:150px;
	height:150px;
	border:5px solid #FFFFFF;
	border-radius:50%;
	position:relative;
	margin-bottom:15px;
}
#contact .contents .contact li a img {
	width:50%;
	display:block;
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%) scale(1);
	transition:.3s;
}
#contact .contents .contact li a:hover img {
	transform:translate(-50%,-50%) scale(1.1);
}
#contact .contents .contact li:first-child a img {
	width:40%;
}
#main #contact .contents .contact li p {
	color:#FFFFFF;
	text-align:center;
	line-height:1;
	margin:0;
}
#contact .contents .tel {
	font-family: 'Oswald', sans-serif;
	font-size:4.0rem;
	line-height:1;
	color:#ffffff;
}
#contact .contents .tel::before {
	content:'';
	display:inline-block;
	width:1em;
	height:1em;
	background:url(../img/common/tel-w.png) no-repeat center center/contain;
	transform:translateY(.05em);
	margin-right:.1em;
}



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

.header .gmenu > li:not(:last-child) {
	margin-right:2em;
}

}

@media screen and (max-width:640px){
	
body {
	min-width:100%;
}

#main p {
	font-size:1.4rem;
	line-height: 1.5em;
}

.wrap {
	padding:30px 0 15px;
}

.contents {
	width:calc(100% - 40px);
}

/*
	Header LAYOUT
******************/
#header {
	position:sticky;
	z-index:99
}
#header h1 {
	font-size:1.2rem;
	overflow:
	hidden;
	height: 20px;
}
#header h1 span {
	white-space: nowrap;
	display:block;
	animation: scrollAnime 8s linear infinite;
}
@keyframes scrollAnime {
	0% { transform: translateX(100%);}
	100% { transform: translateX(-120%);}
}
.header .logo {
	width:170px;
	margin-left:5px;
	margin-right:auto;
}

.header .gmenu {
	position:fixed;
	background-color:#FFFFFF;
	top:70px;
	left:-100vw;
	width:100%;
	height:calc(100vh - 70px);
	display:block;
	font-size:1.6rem;
	padding:50px;
	transition:.5s;
}
body.menuopen .header .gmenu {
	left:0;
}
.header .gmenu > li:not(:last-child) {
	margin-right:0;
	margin-bottom:1em;
}
.header .gmenu .smenu > a::after {
	content:none;
}
.header .gmenu .smenu ul {
	display:block;
	position:relative;
	width:auto;
	background-color:inherit;
	padding-top:0;
}
.header .gmenu .smenu ul a {
	padding:0 0 0 .5em;
	font-size:1.5rem;
}
.header .gmenu .smenu ul a:hover {
	background-color:inherit;
}
.header .gmenu .smenu ul li {
	border-top:none;
	position:relative;
	margin-top:.75em;
}
.header .gmenu .smenu ul li a::before {
	content:'';
	display:inline-block;
	width:.3em;
	height:.3em;
	border-right:2px solid #277AB7;
	border-bottom:2px solid #277AB7;
	transform:translateY(-.2em) rotate(-45deg);
	margin-right:.3em;
}

.header .tel {
	display:block;
	width:50px;
	height:50px;
	font-family: 'Lato', sans-serif;
	background-color: rgba(39,122,183,.2);
	padding-top:5px;
	margin:0;
}
.header .tel::before {
	content:'';
	display:block;
	width:25px;
	height:25px;
	transform:translateY(0);
	margin:0 auto 3px;
}
.header .tel span {
	display:block;
	text-align:center;
	font-size:1.3rem;
	font-family: 'Lato', sans-serif;
	line-height:1;
	margin:0;
}

.header .contact {
	width:50px;
	height:50px;
	padding-top:8px;
	margin:0;
}
.header .contact::before {
	width:25px;
	height:20px;
}
.header .contact span {
	font-size:1.0rem;
}

.header .spmenu {
	width:50px;
	height:50px;
	margin:0;
	position:relative;
	cursor:pointer;
}
.header .spmenu span {
	display:block;
	width:50%;
	height:3px;
	background-color:#277AB7;
	position:absolute;
	top:calc(50% - 1.5px);
	left:25%;
	transition:.3s;
}
.header .spmenu span::before {
	content:'';
	display:block;
	width:100%;
	height:3px;
	background-color:#277AB7;
	position:absolute;
	top:-8px;
	left:0;
	transition:.3s;
}
.header .spmenu span::after {
	content:'';
	display:block;
	width:100%;
	height:3px;
	background-color:#277AB7;
	position:absolute;
	top:8px;
	left:0;
	transition:.3s;
}
body.menuopen .header .spmenu span {
	background-color:#FFFFFF;
}
body.menuopen .header .spmenu span::before {
	transform:translateY(8px) rotate(45deg);
}
body.menuopen .header .spmenu span::after {
	transform:translateY(-8px) rotate(-45deg);
}

/*
	Contents LAYOUT
******************/


/*
	Footer LAYOUT
******************/
.footer_box {
	width:calc(100% - 30px);
	padding:20px 0;
}
.footer_box .adress {
	width:100%;
	text-align:center;
}
.footer_box .adress dt {
	width:180px;
	margin:0 auto 10px;
}
.fmenu {
	display:none;
}	
.footer .copyright p {
	font-size:1.2rem;
	padding:.75em 0;
}

/*
	Contact LAYOUT
******************/

#contact .wrap {
	padding:45px 0;
}
#contact .contents h2,
#contact .contents h3 {
	font-size:2.2rem;
	color:#FFFFFF;
	margin-bottom:1.0em;
}
#contact .contents .contact {
	width:100%;
	margin-bottom:20px;
}
#contact .contents .contact li {
	width:90px;
	margin:0 5px;
}
#contact .contents .contact li a {
	width:90px;
	height:90px;
	border:3px solid #FFFFFF;
	margin-bottom:10px;
}
#contact .contents .contact li a img {
	transform:translate(-50%,-50%) scale(1);
	transition:0;
}
#contact .contents .contact li a:hover img {
	transform:translate(-50%,-50%) scale(1);
}
#contact .contents .contact li:first-child a img {
	width:40%;
}
#main #contact .contents .contact li p {
	font-size:1.3rem;
	line-height:1.3;
}
#contact .contents .tel {
	font-size:3.2rem;
}

	
}


@media screen and (max-width:640px) {
    .pcOnly {
    	display:none !important;
    }
}
@media screen and (min-width:641px) {
    .spOnly {
    	display:none !important;
    }
}