@charset "utf-8";

* {
	margin: 0;
	padding: 0;
}

header,
main,
article,
section,
nav,
aside,
figure,
figcaption,
footer {
	display: block;
}

a {
	background-color: transparent;
	outline: none;
}

img {
	border: none;
	vertical-align: bottom;
}

table {
	border-collapse: collapse;
	border: none;
	border-spacing: 0;
}

td,
th {
	padding: 0;
}

button,
input,
textarea {
	color: inherit;
	font: inherit;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	-moz-appearance: button;
	appearance: button;
	cursor: pointer;
}

input[type="checkbox"] {
	-webkit-appearance: checkbox;
	-moz-appearance: checkbox;
	appearance: checkbox;
}

input[type="radio"] {
	-webkit-appearance: radio;
	-moz-appearance: radio;
	appearance: radio;
}

button {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

button[disabled],
html input[disabled] {
	cursor: default;
}

input {
	line-height: normal;
}

textarea {
	overflow: auto;
}

b,strong {
	font-weight: bold;
}

address {
	font-style: normal;
}

caption {
	text-align: left;
}

/* ---------- common ---------------------------------------- */
body {
	color: #262626;
	font-size: 100%;
	font-family: "Noto Sans Japanese", sans-serif;
	font-weight: 300;
	line-height: 100%;
	letter-spacing: 0.08em;
	-webkit-text-size-adjust: 100%;
}

h1,h2,h3,h4,h5,h6 {
	color: #262626;
	font-size: 100%;
	font-weight: 500;
	line-height: 140%;
	letter-spacing: 0.08em;
}

p {
	font-size: 15px;
	font-weight: 300;
	letter-spacing: 0.08em;
	line-height: 180%;
}

address {
	font-size: 15px;
	font-weight: 300;
	letter-spacing: 0.08em;
	line-height: 180%;
}

th,
td {
	font-size: 14px;
	font-weight: 300;
	line-height: 170%;
	letter-spacing: 0.08em;
	text-align: left;
	vertical-align: middle;
}
th {
	font-size: 15px;
	font-weight: 400;
	text-align: center;
}

dt,
dd {
	font-size: 15px;
	font-weight: 300;
	line-height: 170%;
	letter-spacing: 0.08em;
}

li {
	font-size: 15px;
	font-weight: 300;
	line-height: 170%;
	letter-spacing: 0.08em;
	list-style-type: none;
}
div {
	font-size: 15px;
	font-weight: 300;
	line-height: 100%;
	letter-spacing: 0.08em;
	list-style-type: none;
}
figcaption {
	font-size: 15px;
	font-weight: 300;
	line-height: 170%;
	letter-spacing: 0.08em;
	list-style-type: none;
}

input,textarea,select {
	font-size: 14px;
	letter-spacing: 0.08em;
	line-height: 100%;
}

a {
	letter-spacing: 0.08em;
}
a:link,
a:visited,
a:hover,
a:active {
	color: #262626;
	text-decoration: none;
}

/* clearfix */
.clearfix:after {
	content: "";
	display: block;
	clear: both;
}

.en, .num {
	/*font-family: 'Lora', sans-serif;*/
	font-family: "Poppins", sans-serif;
	font-weight: 300;
  letter-spacing: 0.08em;
}
.num {
	font-family: "Lato", sans-serif;
	font-weight: 600;
  letter-spacing: 0.1em;
}

/* ---------- container ---------------------------------------- */
#container {
	position: relative;
	min-width: 1060px;
	overflow-x: hidden;
}
.box { width: 960px; }

/* ---------- header ---------------------------------------- */
#header {
	height: 130px;
	position: relative;
	padding-top: 15px;
	box-sizing: border-box;
}
#header .inner {
}
#header .logo {
	margin: 0px auto 15px 28px;
}

/* navs */
.navs {}

/* gnav */
.gnav { position: relative;}
.gnav ul {
	top: 0;
	left: 50%;
	position: relative;
	float: left;
	
}
.gnav ul li {
	position: relative;
	left: -50%;
	display: block;
	float: left;
	margin: 0 15px;
}
.gnav ul li a {
	display: block;
	padding: 6px 10px 6px 10px;
	font-size: 15px;
	font-weight: 400;
	line-height: 140%;
	letter-spacing: 0.08em;
	box-sizing: border-box;
}
.gnav ul li a::after {
  display: block;
  content: '';
  width: 0;
  height: 3px;
  margin-top: 4px;
  background: linear-gradient(to right, #ffb376, #ff8ba6); 
  transition: all 0.2s ease;
}

.gnav ul li a:hover:after {
	width: 100%;
}

.home .gnav ul li.home a:after,
.guid .gnav ul li.guid a:after,
.exam .gnav ul li.exam a:after,
.heal .gnav ul li.heal a:after,
.coun .gnav ul li.coun a:after,
.prev .gnav ul li.prev a:after,
.abro .gnav ul li.abro a:after,
.gnav ul li a:hover:after {
	width: 100%;
}
.home .gnav ul li.home a,
.guid .gnav ul li.guid a,
.exam .gnav ul li.exam a,
.heal .gnav ul li.heal a,
.coun .gnav ul li.coun a,
.prev .gnav ul li.prev a,
.abro .gnav ul li.abro a {
	color: #7F7F7F;
}


/* subnav */
.subnav {
	position: absolute;
	right: 210px;
	top: 25px;
}
.subnav ul {
	position: relative;
	float: left;
}
.subnav ul li {
	float: left;
	margin: 0 15px;
}
.subnav ul li a {
	display: block;
	padding: 2px 0px 2px 20px;
	font-size: 13px;
	font-weight: 400;
	line-height: 140%;
	letter-spacing: 0.08em;
}
.subnav ul li.publ a {background: url(../images/ic_publ.png) no-repeat left 2px;}
.subnav ul li.aed  a {background: url(../images/ic_aed.png)  no-repeat left 2px;}
.subnav ul li.link a {background: url(../images/ic_link.png) no-repeat left 2px;}
.subnav ul li.rese a {background: url(../images/ic_rese.png) no-repeat left 2px;}

.subnav ul li a:hover {
	content: "";
	display: block;
  border-bottom: 1px solid #ccc;
}
.subnav ul li a:active { border: none;}
.phonenav { display: none;}

.langnav {
	position: absolute;
	float: left;
	top: 18px;
	right: 40px;
}
.langnav .button {
	float: left;
}
.langnav .button a {
	display: block;
	width: 144px;
	text-align: center;
	font-family: "Poppins";
	font-size: 14px;
	color: #FFF;
	font-weight: 300;
	line-height: 140%;
	letter-spacing: 0.08em;
	background:linear-gradient(to right, #ffb376, #ff8ba6, #ffb376);
  background-size: 200% 100%;
	background-position: left center;
	border-radius:20px;
	transition: all 0.6s ease;
	
}
.langnav .button a span {
	display: inline-block;
	padding: 8px 18px 8px 0px;
	background: url(../images/ic_yaji-w.png) no-repeat right center;
}
.langnav .button a:hover {
	/* background:linear-gradient(to right, #ff8ba6, #ffb376); */
	background-position: right center;
}

/* btn-spnav */
.btn-spnav {
	display: none;
}


/* ---------- main ---------------------------------------- */
#main {
	/* overflow: hidden; */
}

/* ---------- footer ---------------------------------------- */
#footer {
	background: url("../images/bk_footer.jpg") no-repeat center center;
	padding: 80px 0px 0px;
	overflow: hidden;
}
.home #footer {
	padding-top: 155px;
}
#footer .inner {
	position: relative;
	margin-left: 6%;
	padding: 45px 6% 45px 0;
  /*
	background-color: #FFF;
	border-radius: 30px 0px 0px 30px / 30px 0px 0px 30px;
	z-index: 0;
  */
}
#footer .inner .bg {
	position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
	background-color: #FFF;
	border-radius: 30px 0px 0px 30px / 30px 0px 0px 30px;
	z-index: 1;
}
#footer .inner::before {
  display: block;
  content: '';
  width: 208px;
  height: 174px;
  background: url("../images/ccl2.png") no-repeat left top;
  position: absolute;
  top: -100px;
  left: -110px;
}
#footer .inner::after {
  display: block;
  content: '';
  width: 285px;
  height: 280px;
  background: url("../images/ccl3.png") no-repeat left top;
  position: absolute;
  bottom: -180px;
  right: -40px;
}
#footer .box {
  position: relative;
  z-index: 2;
}
#footer .logo {
	padding: 0 0 10px;
}
#footer #branch {
	border-top: solid 1px #CCC;
	padding: 20px 0 0;
	overflow: hidden;
}
#footer #branch .info {
	float: left;
	width: 33%;
	padding-right: 30px;
	box-sizing: border-box;
}
#footer #branch .info h2 {
	font-size: 13px;
	margin-bottom: 10px;
}
#footer #branch .info p {
	font-size: 13px;
}
#footer .copyright {
	padding: 34px 0;
}
#footer .copyright small {
	font-size: 11px;
	line-height: 120%;
	letter-spacing: 0.08em;
}

#pagetop {
  background:linear-gradient(to right, #ffb376, #ff8ba6, #ffb376);
  background-size: 200% 100%;
	background-position: left center;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	z-index: 10000;
	position: fixed;
	right: 20px;
	bottom: 20px;
  transition: all 0.6s ease;
}
#pagetop:hover {
  background-position: right center;
}

#pagetop a {
	display: block;
	background: url("../images/ic_pagetop.png") no-repeat center center;
	width: 70px;
	height: 70px;
	text-indent: -9999px;
}


/* ---------- is-pc (PC or スマホを判定するための要素) ---------------------- */
#is-pc {
	display: block;
}
@media only screen and (max-width: 768px) {
	#is-pc {
		display: none;
	}
}


@media only screen and (max-width: 768px) {


	/* ---------- common ---------------------------------------- */
	body {}

	p,address,th,td,li,dt,dd,input,textarea,select {
		font-size: 12px;
	}
	img { max-width: 100%; height: auto; }


	/* ---------- container ---------------------------------------- */
	#container {
		position: relative;
		min-width: 320px;
		overflow-x: hidden;
	}
	.box { width: auto; }

	/* ---------- header ---------------------------------------- */
	#header {
		height: 50px;
		padding-top: 12px;
	}

	#header .inner {
		max-width: inherit;
	}
	#header .logo {
		margin-left: 10px;
		width: 190px;
	}
	#header .logo img {
	}

	/* navs */
	.navs {
		box-sizing: border-box;
		display: none;
		position: absolute;
		top: 50px;
		left: 0;
		right: 0;
		padding: 0 25px 20px;
		background-color: #FFFFFF;
		border-top: solid 1px #e5e5e5;
		border-bottom: solid 1px #e5e5e5;
		z-index: 5000;
	}

	/* gnav */
	.gnav {
		position: relative;
		top: 0;
		right: inherit;
	}
	.gnav ul {
		float: none;
	}
	.gnav ul:before {
		display: none;
	}
	.gnav ul li {
		width: auto;
		border-bottom: solid 1px #e5e5e5;
		float: none;
		margin: 0;
	}

	.gnav ul li a {
		padding: 12px 0 12px;
		background: url(../images/ic_menu.png) no-repeat right center;
		background-size: 10px auto;
		color: #4b4b4b;
		font-size: 12px;
	}
	.gnav ul li a::after {
		display: none;
	}
	.gnav ul li.nolink a {
		opacity: 0.6;
		pointer-events: none;
	}
	
	
	/* subnav */
	.subnav {
		position: static;
		margin-bottom: 20px;
	}
	.subnav ul {
		position: static;
		float: none;
		overflow: hidden;
	}
	.subnav ul li {
		float: left;
		width: 50%;
		margin: 0;
		border-bottom: solid 1px #e5e5e5;
		box-sizing: border-box;
	}
	.subnav ul li.aed,
	.subnav ul li.rese {
		padding-left: 20px;
		position: relative;
	}
	.subnav ul li.aed::before,
	.subnav ul li.rese::before {
		content: '';
		width: 1px;
		height: 27px;
		border-left: solid 1px #e5e5e5;
		position: absolute;
		top: 8px;
		left: 0;
	}
	.subnav ul li a {
		display: block;
		padding: 12px 0 12px 20px;
		font-size: 11px;
	}
	.subnav ul li.publ a {background: url(../images/ic_publ.png) no-repeat left center;}
	.subnav ul li.aed  a {background: url(../images/ic_aed.png)  no-repeat left center;}
	.subnav ul li.link a {background: url(../images/ic_link.png) no-repeat left center;}
	.subnav ul li.rese a {background: url(../images/ic_rese.png) no-repeat left center;}

	.subnav ul li a:hover {
		content: "";
		display: block;
		border: none;
	}
	
	.phonenav {
		display: block;
		overflow: hidden;
		background:linear-gradient(to right, #fffdef, #fff0f1);
		padding: 15px;
		border-radius: 10px / 10px;
		margin: 0 -10px;
	}
	.phonenav .phone-title {}
	.phonenav .info {
		/*
		float: left;
		width: 50%;
		*/
		margin-bottom: 10px;
	}
	.phonenav .info .lev5-title { margin-bottom: 5px;}
	.phonenav .info p.phone {}

	.langnav {
		position: absolute;
		float: none;
		top: 0px;
		right: 50px;
	}
	.langnav .button {
		float: left;
	}
	.langnav .button a {
		display: table-cell;
		width: 50px;
		height: 50px;
		vertical-align: middle;
		text-align: left;
		font-family: "Poppins";
		font-size: 9px;
		color: #FFF;
		font-weight: 400;
		line-height: 140%;
		letter-spacing: 0.08em;
		background: linear-gradient(to right, #ffb376, #ff8ba6, #ffb376);
		background-size: 200% 100%;
		background-position: left center;
		border-radius: 0;
		transition: all 0.6s ease;

	}
	.langnav .button a span {
		display: inline-block;
		padding: 0;
		margin: 5px;
		background: url(../images/ic_yaji-w.png) no-repeat right bottom;
	}
	.langnav .button a:hover {
		/* background:linear-gradient(to right, #ff8ba6, #ffb376); */
		background-position: right center;
	}
	
	/* btn-spnav */
	.btn-spnav {
		display: block;
		position: absolute;
		right: 0;
		top: 0;
		width: 50px;
		height: 50px;
		font-size: 0;
		background-color: #FFFFFF;
		cursor: pointer;
		-webkit-transition: background 0.3s;
		transition: background 0.3s;
		z-index: 6000;
	}
	.btn-spnav:focus {
		outline: none;
	}
	.btn-spnav .label {
		display: block;
		position: absolute;
		bottom: 7px;
		left: 0;
		width: 100%;
		color: #ff9e8f;
		font-size: 9px;
		font-weight: 500;
		line-height: 100%;
		text-align: center;
		letter-spacing: 0.04em;
	}
	.btn-spnav .bar {
		display: block;
		position: absolute;
		width: 28px;
		top: 20px;
		right: 13px;
		height: 2px;
		background: linear-gradient(to right, #ffb376, #ff8ba6);
		-webkit-transition: background 0 0.3s;
		transition: background 0 0.3s;
	}
	.btn-spnav .bar:before,
	.btn-spnav .bar:after {
		position: absolute;
		display: block;
		left: 0;
		width: 28px;
		height: 2px;
		background: linear-gradient(to right, #ffb376, #ff8ba6);
		content: "";
		-webkit-transition-duration: 0.3s, 0.3s;
		transition-duration: 0.3s, 0.3s;
		-webkit-transition-delay: 0.3s, 0;
		transition-delay: 0.3s, 0;
	}
	.btn-spnav .bar:before {
		top: -9px;
		-webkit-transition-property: top, -webkit-transform;
		transition-property: top, transform;
	}
	.btn-spnav .bar:after {
		bottom: -9px;
		-webkit-transition-property: bottom, -webkit-transform;
		transition-property: bottom, transform;
	}
	.open .btn-spnav .bar {
		background: none;
	}
	.open .btn-spnav .bar:before,
	.open .btn-spnav .bar:after {
		/* background: #fff; */
		-webkit-transition-delay: 0, 0.3s;
		transition-delay: 0, 0.3s;
	}
	.open .btn-spnav .bar:before {
		top: 0;
		-webkit-transform: rotate(45deg);
		-ms-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	.open .btn-spnav .bar:after {
		bottom: 0;
		-webkit-transform: rotate(-45deg);
		-ms-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}


	/* ---------- main ---------------------------------------- */
	#main {
		/* overflow: hidden; */
	}

	/* ---------- footer ---------------------------------------- */
	#footer {
		background: url("../images/bk_footer.jpg") no-repeat center center;
		padding: 75px 0 0;
		overflow: hidden;
	}
	.home #footer {
		padding-top: 70px;
	}
	#footer .inner {
		position: relative;
		margin-left: 6%;
		padding: 20px;
		/*
		background-color: #FFF;
		border-radius: 30px 0px 0px 30px / 30px 0px 0px 30px;
		z-index: 0;
		*/
	}
	#footer .inner .bg {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: #FFF;
		border-radius: 30px 0px 0px 30px / 30px 0px 0px 30px;
		z-index: 1;
	}
	#footer .inner::before {
		display: block;
		content: '';
		width: 208px;
		height: 174px;
		background: url("../images/ccl2.png") no-repeat left top;
		position: absolute;
		background-size: 50% 50%;
		top: -40px;
		left: -60px;
	}
	#footer .inner::after {
		display: block;
		content: '';
		width: 285px;
		height: 280px;
		background: url("../images/ccl3.png") no-repeat left top;
		position: absolute;
		background-size: 50% 50%;
		bottom: -50px;
		right: -50px;
	}
	#footer .box {
		position: relative;
		z-index: 2;
		margin-left: 0;
		margin-right: 0;
	}
	#footer .logo {
		width: 230px;
		padding: 0 0 10px;
	}
	#footer #branch {
		border-top: solid 1px #CCC;
		padding: 20px 0 0;
		overflow: hidden;
	}
	#footer #branch .info {
		float: none;
		width: 100%;
		padding-right: 0;
		box-sizing: border-box;
		margin-bottom: 20px;
	}
	#footer #branch .info h2 {
		font-size: 12px;
		margin-bottom: 10px;
	}
	#footer #branch .info p {
		font-size: 12px;
	}
	#footer .copyright {
		padding: 20px 6%;
	}
	#footer .copyright small {
		font-size: 9px;
	}

	#pagetop {
		background:linear-gradient(to right, #ffb376, #ff8ba6, #ffb376);
		background-size: 200% 100%;
		background-position: left center;
		width: 42px;
		height: 42px;
		border-radius: 50%;
		z-index: 10000;
		position: fixed;
		right: 10px;
		bottom: 10px;
		transition: all 0.6s ease;
	}
	#pagetop:hover {
		background-position: right center;
	}

	#pagetop a {
		display: block;
		background: url("../images/ic_pagetop.png") no-repeat center center;
		width: 42px;
		height: 42px;
		text-indent: -9999px;
	}

}