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

/*
font-family: 'Cormorant Garamond', serif;
font-family: 'Noto Serif JP', serif;
*/
* {
	/* font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo,'Hiragino Kaku Gothic Pro',Osaka, "ＭＳ Ｐゴシック", "MS PGothic",sans-serif; */

	font-family: 'Noto Serif JP','游明朝','Yu Mincho','游明朝体', YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
	margin: 0;
	padding: 0;
	box-sizing:border-box;
	font-feature-settings: "palt";
	line-height:1;
}

html {
	font-size:62.5%;
	line-height:1;
}
body {
	font-size:1.6rem;
	background: #EFFDFF;
/* 	background: linear-gradient(90deg, rgba(241,252,255,1) 0%, rgba(200,225,255,1) 100%); */
	background: linear-gradient(90deg, #F1FCFF,#DCEEFF,#366cb4);
	animation: bggradient 20s ease infinite;
	background-size:200% 200%;
}
@keyframes bggradient {
	0% {
	background-position: 0% 50%;
	}
	50% {
	background-position: 100% 50%;
	}
	100% {
	background-position: 0% 50%;
	}
}

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


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

a,
a:link,
a:visited {
	color:#000000;
	text-decoration:none;
	outline:none;
	border:none;
}
a:hover {
	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:1080px;*/
}

#main {
	width:100%;
	margin:0;
	padding:0;
	position:relative;
}


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


/*基本：左右配置　上下センター　折り返しなし*/
.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;
	width:100%;
	left:0;
	top:0;
	z-index:98;
}
#header .header {
	width:100%;
	padding:20px 40px;
	transition:.6s;
}
#header.scroll .header {
	background-color: rgba(255,255,255,.66);
}
#header .header_inner {
	display:grid;
	grid-template-columns:136px auto;
	justify-content:space-between;
	align-items:center;
}
#header .header_inner .logo {
}
#header .header_inner .gmenu {
	font-size:1.4rem;
	display:grid;
	grid-template-columns:repeat(5,auto);
	grid-column-gap:3em;
}
#header .header_inner .gmenu li {
	letter-spacing:.05em;
}
#header .header_inner .gmenu li a {
	transition:.3s;
}
#header .header_inner .gmenu li a:hover {
	color:#557EC0;
}


/*
	Footer LAYOUT
******************/
#footer .footer {
	padding:90px 0 120px;
}
#footer .footer_inner {
	width:calc(100% - 60px);
	max-width:1100px;
	margin:0 auto;
	display:grid;
	grid-gap:90px 0;
	grid-template-columns:auto auto;
	justify-content:space-between;
	align-items:start;
}
#footer .footer_inner .logo {
	width:140px;
}
#footer .footer_inner .fmenu {
	font-size:1.4rem;
	display:grid;
	grid-template-columns: repeat(5,auto);
	grid-column-gap:3em;
}
#footer .footer_inner .fmenu li {
	letter-spacing:.05em;
}
#footer .footer_inner .fmenu li a {
	transition:.3s;
}
#footer .footer_inner .fmenu li a:hover {
	color:#557EC0;
}
#footer .footer_inner .flink {
	font-size:1.4rem;
	display:grid;
	grid-template-columns:repeat(2,auto);
	grid-column-gap:2.4em;
}
#footer .footer_inner .flink a {
	position:relative;
	line-height:1;
}
#footer .footer_inner .flink a:first-child::after {
	/* content:'';
	display:block;
	width:1px;
	height:.9em;
	background-color:rgba(0,0,0,.5);
	position:absolute;
	right:-1.3em;
	top:-.05em; */
}

#footer .copyright {
	color:#86AFDD;
	font-size:1.2rem;
	justify-self:end;
	letter-spacing:.05em;
}

.pagetop {
	background: rgb(204,219,240);
	background: linear-gradient(90deg, rgba(204,219,240,1) 0%, rgba(178,215,241,1) 50%, rgba(149,210,239,1) 100%);
	text-align:center;
	padding:20px;
}
.pagetop a {
	display:block;
	width: 7em;
	margin:0 auto;
	font-size:2.0rem;
	letter-spacing:.05em;
	color:rgb(103,139,199);
	background: rgb(103,139,199);
	background: linear-gradient(90deg, rgba(103,139,199,1) 0%, rgba(99,164,196,1) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	transition:.3s;
}
.pagetop a::before {
	content:'';
	display:block;
	margin:0 auto .25em;
	width:1em;
	height:1em;
	background:url(../img/gotop.png) no-repeat center center/contain;
	transition:.3s;
}
.pagetop a:hover {
	opacity:.75;
}
.pagetop a:hover::before {
	transform:translateY(-.25em);
}


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

.contents {
	width:calc(100% - 60px);
	max-width:1100px;
	margin:0 auto;
	box-sizing:border-box;
	text-align:left;
	position:relative;
}

.contents_inner {
	width:100%;
}


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


}

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


/*
	Header LAYOUT
******************/

#header .header {
	width:100%;
	padding:20px 20px;
}
#header.fitmenu .header {
	padding-top:0px;
}
#header .header_inner {
	grid-template-columns:100px auto;
}
#header .header_inner .logo {
}
#header .header_inner .gmenu {
	font-size:min(3.1vw,1.4rem);
	grid-column-gap: 1.5em;
}
#header .header_inner .gmenu li a {
	transition:0s;
}
#header .header_inner .gmenu li a:hover {
	color:#000000;
}

	
.header .spbtn {
	width:26px;
	height:22px;
	position:relative;
	margin-right:15px;
}
.header .spbtn::before {
	content:'';
	display:block;
	width:100%;
	height:2px;
	background-color:#000000;
	position:absolute;
	top:2px;
	left:0;
	transition:.5s;
	transition-timing-function:ease-in-out;
	transform-origin:center center;
}
.header .spbtn::after {
	content:'';
	display:block;
	width:100%;
	height:2px;
	background-color:#000000;
	position:absolute;
	bottom:2px;
	left:0;
	transition:.5s;
	transition-timing-function:ease-in-out;
	transform-origin:center center;
}
.header .spbtn span {
	display:block;
	width:100%;
	height:2px;
	background-color:#000000;
	position:absolute;
	top:calc(50% - 1px);
	left:0;
	transition:.5s;
	transition-timing-function:ease-in-out;
}
body.menuopen {
	overflow: hidden;
}
body.menuopen .header .spbtn::before {
	transform:rotate(45deg);
	top:10px;
}
body.menuopen .header .spbtn::after {
	transform:rotate(-45deg);
	bottom:10px;
}
body.menuopen .header .spbtn span {
	opacity:0;
	transform:scaleX(0);
}
	
#spmenu {
	position:fixed;
	top:-105vw;
	opacity:0;
	width:100%;
	background-color:rgba(255,255,255,.95);
	height:100vh;
	z-index:97;
	text-align:center;
	transition:.5s;
}
body.menuopen #spmenu {
	opacity:1;
	top:0;
}
.spmenu_inner {
	padding:90px 50px 50px;
	height:100vh;
	overflow-y: auto;
	width:100%;
	max-width:400px;
	margin:0 auto;
}
#spmenu .smenu {
	margin-bottom:40px;
	border-top:1px solid #d5d5d5;
}
#spmenu .smenu li {
	font-size:1.5rem;
	line-height:1;
	border-bottom:1px solid #d5d5d5;
}
#spmenu .smenu li a {
	display:block;
	line-height:3;
}
#spmenu .contact {
	width:100%;
	height:3em;
	background-color:#eb5e02;
	border-radius:1.5em;
	margin-bottom:1em;
	font-size:1.6rem;
}

#spmenu .contact::before {
	content:'';
	width:1.4em;
	height:1.4em;
	background:url(../img/icon_mail.png) no-repeat center center/contain;
	margin-right:.5em
}
#spmenu .contact span {
	color:#FFFFFF;
}
#spmenu .tel {
	text-align:center;
	font-size: 2.6rem;
	width: 100%;
}
#spmenu .tel a {
	text-align:center;
	margin:0 auto;
}
#spmenu .tel a::before {
	content:'';
	width:.8em;
	height:.8em;
	background:url(../img/icon_tel.png) no-repeat center center/contain;
	margin-right:.15em;
}
#spmenu .tel a span {
	color: #194265;
	font-size:inherit;
	font-weight:500;
}
#spmenu .tel > span {
	width:100%;
	padding-top:.75em;
	font-size:1.1rem;
	
}

.spmenu .menu-gmenu-container li a {
	color:#19222a;
}
.spmenu .btn {
	font-size:1.6rem;
	width:210px;
	margin-bottom:40px;
}
.spmenu .sns {
	width:210px;
	border-top:1px solid #cccccc;
	border-bottom:1px solid #cccccc;
	padding:18px 0;
	margin-bottom:40px;
}
.spmenu .sns a {
	width:30px;
	margin:0 12px;
}
.spmenu .logo {
	width:210px;
	margin:0 auto;
}
.spmenu .spclose {
	display:block;
	cursor:pointer;
	width:20px;
	position:absolute;
	top:20px;
	right:20px;
}


/*
	Footer LAYOUT
******************/
#footer .footer {
	padding:40px 0 30px;
}
#footer .footer_inner {
	width:calc(100% - 40px);
	display:block;
}
#footer .footer_inner .logo {
	width:100px;
	margin:0 auto 20px;
}
#footer .footer_inner .fmenu {
	font-size:min(3.6vw,1.4rem);
	grid-column-gap:2em;
	justify-content:center;
	margin-bottom:20px;
}
#footer .footer_inner .fmenu li a {
	transition:0s;
}
#footer .footer_inner .fmenu li a:hover {
	color:#000000;
}
#footer .footer_inner .flink {
	font-size:min(3.4vw,1.3rem);
	grid-column-gap:2.0em;
	justify-content:center;
	margin-bottom:30px;
}
#footer .footer_inner .flink a:first-child::after {
	right:-1.1em;
}
#footer .copyright {
	display:block;
	text-align:center;
}

.pagetop {
	padding:10px;
}
.pagetop a {
	font-size:1.6rem;
	transition:0s;
}
.pagetop a:hover {
	opacity:1;
}
.pagetop a:hover::before {
	transform:translateY(0);
}

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

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


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

#header .header_inner .gmenu {
	font-size:min(3.2vw,1.4rem);
	grid-column-gap: 1.5em;
	grid-row-gap:.75em;
	grid-template-columns:repeat(3,auto);
}
#header .header_inner .gmenu li:nth-child(4) {
	margin-right:-3em;
}
#header .header_inner .gmenu li:nth-child(5) {
	transform:translateX(4em);
}

}


@media screen and (max-width:500px){
	
#footer .footer_inner .fmenu {
	grid-template-columns: repeat(3,auto);
	grid-row-gap:.5em;
}
#footer .footer_inner .fmenu li:nth-child(4) {
	margin-right:-5em;
	padding-left:1em;
}
#footer .footer_inner .fmenu li:nth-child(5) {
	transform:translateX(5em);
}

}

@media screen and (max-width:768px) {
    .pcOnly {
    	display:none !important;
    }
}
@media screen and (min-width:769px) {
    .spOnly {
    	display:none !important;
    }
}
@media screen and (min-width:1025px) {
    .sptbOnly {
    	display:none !important;
    }
}