@charset "utf-8";
/* CSS Document */

/*-----------------------------------------------
sky   #C8DCFF 200,220,255
blue  #2873FA  40,115,250
-----------------------------------------------*/

/*-----------------------------------------------
  font
-----------------------------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap");
/* font-family: "Noto Sans JP", sans-serif; */
@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500&display=swap");
/* font-family: "Shippori Mincho", serif; */

/*-----------------------------------------------
  text
-----------------------------------------------*/
body {
font-size: 16px;
font-family: "Shippori Mincho", serif;
font-weight: 500;
line-height: 1.75;
color: #000;
}
input,
textarea {
font-size: 16px;
font-family: "Noto Sans JP", sans-serif;
font-weight: 500;
line-height: 1.75;
}
th,
strong {
font-weight: inherit;
}
a {
color: inherit;
text-decoration: none;
transition: 0.2s;
}
a img {
transition: 0.2s;
}
a:hover {
text-decoration: none;
}
img {
display: block;
max-width: 100%;
}

/*-----------------------------------------------
  header
-----------------------------------------------*/
header {
position: relative;
z-index: 100;
background: #FFF;
}
header .inner {
max-width: 1250px;
margin: auto;
padding: 60px 4% 15px 4%;
box-sizing: content-box;
}
header .grid {
display: flex;
justify-content: space-between;
align-items: center;
}
header .logo {
max-width: 540px;
margin: auto;
}
header .menu_area {
display: none;
}
@media screen and (max-width: 1024px) {
	header {
	position: sticky;
	top: 0;
	width: 100%;
	z-index: 100;
	}
	header .inner {
	padding: 0 2% 10px 2%;
	}
	header .logo {
	width: 75%;
	max-width: 340px;
	margin: 10px 0 0 0;
	}
	header .menu {
	position: relative;
	z-index: 2000;
	display: block;
	width: 60px;
	height: 60px;
	padding: 15px;
	background: #C8C8C8;
	border-radius: 0 0 8px 8px;
	}
	header .menu:hover {
	cursor: pointer;
	}
	header .menu_burger {
	position: relative;
	width: 100%;
	height: 100%;
	}
	header .menu_burger:before,
	header .menu_burger:after,
	header .menu_burger span {
	display: block;
	width: 100%;
	position: absolute;
	left: 0;
	right: 0;
	transition: 0.2s;
	}
	header .menu_burger:before {
	content: "";
	top: 10%;
	border-bottom: 2px solid #FFF;
	}
	header .menu_burger:after {
	content: "";
	bottom: 10%;
	border-bottom: 2px solid #FFF;
	}
	header .menu_burger span {
	border-bottom: 2px solid #FFF;
	top: calc(50% - 1px);
	}
	header .menu.on span {
	display: none;
	}
	header .menu.on .menu_burger:before {
	top: calc(50% - 1px);
	transform: rotate(-45deg);
	border-color: #FFF;
	}
	header .menu.on .menu_burger:after {
	bottom: calc(50% - 1px);
	transform: rotate(45deg);
	border-color: #FFF;
	}
}
@media screen and (max-width: 800px) {
	header .menu {
	width: 50px;
	height: 50px;
	padding: 12px;
	}
}

/*-----------------------------------------------
  gnavi
-----------------------------------------------*/
header .gnavi {
margin-top: 40px;
font-size: 1.2em;
box-sizing: content-box;
}
header .gnavi_list {
display: flex;
align-content: center;
}
header .gnavi_list li {
position: relative;
width: 20%;
text-align: center;
border-left: 1px solid #000;
}
header .gnavi_list li:last-child {
border-right: 1px solid #000;
}
header .gnavi_list a {
display: block;
padding: 0.25em;
}
header .gnavi_list .home {
display: none;
}
header .gnavi_list a:hover,
header .gnavi_list a.active {
color: #FFF;
background: #2873FA;
}
/* lev2 */
header .gnavi_list ul {
display: none;
position: absolute;
top: 2.25em;
left: 0;
width: 100%;
min-width: 12em;
}
header .gnavi_list li li {
width: 100%;
border: 0;
}
header .gnavi_list li li:last-child {
border: 0;
}
header .gnavi_list li li a {
padding: 0.5em 1em;
color: #FFF;
background: #2873FA;
border-top: 1px solid rgba(255,255,255,0.5);
}
header .gnavi_list li li a:hover {
opacity: 0.9;
}
@media screen and (max-width: 1024px) {
	header .gnavi {
	position: fixed;
	z-index: 1100;
	top: 0;
	width: 100%;
	margin: 0;
	padding: 0;
	font-size: 1.1em;
	border: 0;
	background: #FFF;
	}
	header .gnavi_list {
	position: fixed;
	display: block;
	z-index: 1000;
	top: 0;
	right: -320px;
	width: 320px;
	height: 100%;
	padding: 60px 1em 1em 1em;
	background: rgba(40,115,250,0.95);
	border: 0;
	transition: 0.4s;
	}
	header .gnavi.on .gnavi_list {
	right: 0;
	}
	header .gnavi_list li {
	width: 100%;
	border: 0;
	border-bottom: 1px solid rgba(255,255,255,0.5);
	}
	header .gnavi_list li:last-child {
	border-right: 0;
	}
	header .gnavi_list .home {
	display: block;
	}
	header .gnavi_list a {
	display: block;
	padding: 0.75em;
	color: #FFF;
	}
	header .gnavi_list .home a {
	padding: 1em 0;
	}
	header .gnavi_list .home a:hover {
	background: none;
	}
	/* lev2 */
	header .gnavi_list ul {
	position: static;
	width: auto;
	}
	header .gnavi_list li li a {
	padding: 0.75em 1em;
	background: rgba(255,255,255,0.1);
	}
}
@media screen and (max-width: 800px) {
}

/*-----------------------------------------------
  header min
-----------------------------------------------*/
header.min {
position: fixed;
top: 0;
z-index: 100;
width: 100%;
background: #FFF;
animation: headerAnime 0.5s forwards;
}
header.min .inner {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 4%;
box-sizing: content-box;
}
header.min .logo {
width: 300px;
}
header.min .gnavi {
width: calc(100% - 300px);
margin: 0;
padding: 0;
font-size: 1em;
}
header.min .gnavi_list {
justify-content: flex-end;
}
header.min .gnavi_list li {
width: auto;
}
header.min .gnavi_list a {
padding: 0.25em 1em;
}
@media screen and (max-width: 1024px) {
	header.min {
	animation: none;
	}
	header.min .inner {
	display: block;
	padding: 0 2% 10px 2%;
	}
	header.min .logo {
	width: 75%;
	max-width: 340px;
	margin: 10px 0 0 0;
	}
	header.min .gnavi {
	width: inherit;
	margin: 0;
	padding: 0;
	font-size: 1.1em;
	}
	header.min .gnavi_list li {
	width: auto;
	}
	header.min .gnavi_list a {
	padding: 0.75em;
	}
	header.min .gnavi_list .home a {
	padding: 1em 0;
	}
}
@keyframes headerAnime {
	from {
	opacity: 0;
	transform: translateY(-200px);
	}
	to {
	opacity: 1;
	transform: translateY(0);
	}
}


/*-----------------------------------------------
  footer
-----------------------------------------------*/
footer {
padding-top: 60px;
font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 800px) {
	footer {
	padding-top: 8%;
	}
}

/* contact */
footer .contact {
max-width: 1000px;
margin: auto;
padding: 40px 4%;
text-align: center;
box-sizing: content-box;
}
footer .contact_head {
width: 100%;
margin: auto;
font-family: "Shippori Mincho", serif;
font-size: 2.5em;
font-weight: 400;
line-height: 1.25;
overflow: hidden;
}
footer .contact_head span {
position: relative;
display: inline-block;
padding: 0.25em 0.5em;
}
footer .contact_head span:before,
footer .contact_head span:after {
position: absolute;
top: 50%;
content: "";
width: 100vw;
height: 1px;
background: #BABABA;
}
footer .contact_head span:before {
right: 100%;
}
footer .contact_head span:after {
left: 100%;
}
footer .contact_link {
display: block;
max-width: 40em;
margin: auto;
margin-top: 1em;
}
footer .contact_link a {
display: block;
padding: 0.75em;
color: #2873FA;
background: #C8DCFF;
border-radius: 0.5em;
}
footer .contact_link a:hover {
color: #FFF;
background: #2873FA;
}
@media screen and (max-width: 800px) {
	footer .contact {
	padding: 4%;
	}
	footer .contact_head {
	font-size: 1.5em;
	}
}

/* data */
footer .data {
max-width: 1000px;
margin: auto;
padding: 40px 4%;
text-align: center;
box-sizing: content-box;
}
footer .data dl {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
footer .data_head {
max-width: 540px;
margin-right: 1em;
}
@media screen and (max-width: 800px) {
	footer .data {
	padding: 4%;
	}
	footer .data_head {
	max-width: 320px;
	margin: 0;
	}
}

/* office */
footer .office {
padding: 20px 4%;
color: #FFF;
background: #2873FA;
}
footer .office_grid {
display: flex;
justify-content: center;
align-items: center;
max-width: 1300px;
margin: auto;
}
footer .office_head {
width: 10em;
margin-right: 2em;
padding: 2em 0;
text-align: center;
border-right: 1px solid #FFF;
border-left: 1px solid #FFF;
}
footer .office_list {
display: flex;
flex-wrap: wrap;
width: calc(100% - 10em);
}
footer .office_list li {
margin-right: 2em;
padding: 0.25em;
}
footer .office_list li::before {
content: "▶︎";
margin-right: 0.25em;
}
footer .office_list a {
padding: 0.1em 0;
}
footer .office_list a:hover {
border-bottom: 1px solid #FFF;
}
@media screen and (max-width: 800px) {
	footer .office {
	margin-top: 4%;
	padding: 8%;
	}
	footer .office_grid {
	display: block;
	}
	footer .office_head {
	width: 100%;
	margin: 0;
	padding: 0.5em 0;
	text-align: center;
	border: 0;
	border-top: 1px solid #FFF;
	border-bottom: 1px solid #FFF;
	}
	footer .office_list {
	display: block;
	width: 100%;
	margin-top: 4%;
	}
	footer .office_list li {
	margin: 0;
	padding: 0.25em 0;
	}
}

/* copyright */
footer .copyright {
padding: 20px 4%;
font-size: 0.85em;
text-align: center;
}
@media screen and (max-width: 800px) {
	footer .copyright {
	padding: 4%;
	}
}
