html {
	-webkit-font-smoothing: antialiased;
	font-family: 'Hiragion Kaku Gothic Pro', 'Meiryo', sans-serif;
}
		html.SP {
			-webkit-text-size-adjust: 100%;
		}
body {
	margin: 0;
	overflow-x: hidden;
}
img {
	width: 100%;
	height: auto;
}

/*++++++++++++++++++++++++++++++++++++++++*/
header,
footer {
	line-height: 1.4;
}
header img,
footer img {
	border: none;
}

	html.PC header,
	html.PC footer {
		font-size: 14px;
	}

		html.SP header,
		html.SP footer {
			font-size: 13px;
		}

header .typesquare_tags,
footer .typesquare_tags {
	font-feature-settings: 'palt';
}
	html.WIN header .typesquare_tags,
	html.WIN footer .typesquare_tags {
		transform: rotate(0.1deg);
	}
	html.WIN header a.typesquare_tags,
	html.WIN footer a.typesquare_tags {
		display: inline-block;
	}
	html.WIN header span.typesquare_tags,
	html.WIN footer span.typesquare_tags {
		display: inline-block;
	}

/*//////////////////////////////////////// header ////////////////////////////////////////*/
header {
	z-index: 999;
}
body.chinese header,
body.tax header {
	position: relative;
	background-color: #e2ebf8;
}
body.self_tax header {
	position: relative;
	background-color: #e2ebf8;
}

header .logo img {
	vertical-align: bottom;
}
/* サトちゃん */
header #illust_box {
  width: 150px;
  position: absolute;
  top: 14px;
  right: -40px;
  z-index: 2;
  cursor: pointer;
}
header #illust_box img {
  width: 100%;
  display: block;
}
header #illust_box:hover .text_box {
  pointer-events: auto;
  opacity: 1;
}
header #illust_box .text_box {
  padding-right: 150px;
  position: absolute;
  top: 0;
  right: 0;
  pointer-events: none;
  opacity: 0;
  transition: all .3s;
}
header #illust_box .text_box > div {
  width: 230px;
}
header #illust_box .text_box > div a {
  border-radius: 15px;
  color: #0a3c8c;
  text-decoration: none;
  display: block;
}
header #illust_box .text_box > div a img {
  width: 100%;
  display: block;
}
header #illust_box .text_box > div a:hover {
  text-decoration: underline;
}
html.SP header #illust_box {
  display: none;
}

	html.PC header {
		position: relative;
		box-sizing: border-box;
		width: 1000px;
		margin: 0 auto;
	}
/*
header:before {
	content: '';
	display: block;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 2;
	background: url(../images/common/satochan.png) no-repeat right center;
	background-size: contain;
}

	html.PC header {
		position: relative;
		box-sizing: border-box;
		width: 1000px;
		margin: 0 auto;
	}
	html.PC header:before {
		right: -40px;
		top: 10px;
		width: 150px;
		height: 100px;
	}
	*/
	html.PC header .logo {
		position: absolute;
		left: 0;
		top: 0;
		height: 90px;
	}
	html.PC header .logo img {
		position: absolute;
		left: 0;
		top: 50%;
		transform: translate(0, -50%);
		width: 130px;
		height: 40px;
	}

		html.SP header {
			padding-top: 3.5em;
		}
		html.SP header:before {
			content: none;
		}
		html.SP header .logo {
			position: fixed;
			z-index: 1;
			left: 0;
			top: 0;
			width: 100%;
			height: 3.5em;
			border-bottom: 1px solid #B5C4DC;
			background: white;
		}
		html.SP header .logo img {
			position: absolute;
			left: 0.5em;
			top: 50%;
			width: auto;
			height: 2.25em;
			-webkit-transform: translate(0, -50%);
			transform: translate(0, -50%);
		}

/*---------- 中国語・税制 ----------*/
body.chinese header,
body.tax header,
body.self_tax header {
	background-repeat: no-repeat;
	background-position: left center;
	background-size: auto 100%;
	text-align: center;
}
body.chinese header {
	background-image: url(/images/chinese/head_pic.png);
}
body.tax header {
	background-image: url(/images/tax/head_pic.png);
}
body.self_tax header {
	background-image: url(/images/tax/head_pic.png);
}
body.chinese header:before,
body.tax header:before,
body.self_tax header:before {
	content: none;
}

	html.PC body.chinese header,
	html.PC body.tax header,
	html.PC body.self_tax header {
		position: relative;
		height: 120px;
	}
		html.SP body.chinese header,
		html.SP body.tax header,
		html.SP body.self_tax header {
			height: 100px;
			padding: 0;
		}
		html.SP body.chinese header {
			margin-bottom: 15%;
			background-position: -25% center;
		}

body.chinese header h1,
body.tax header h1,
body.self_tax header h1 {
	position: relative;
	top: 50%;
	margin: 0;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	color: #0a3c8c;
	font-feature-settings: 'palt';
}
body.chinese header h1 {
	font-family: 'Noto Sans TC';
	line-height: 1;
}
body.tax header h1,
body.self_tax header h1 {
	font-family: 'Noto Sans Japanese';
}
body.tax header h1 small,
body.self_tax header h1 small {
	display: block;
	font-weight: normal;
	margin-top: 0.5em;
}
body.tax header h1 sup,
body.self_tax header h1 sup {
	font-weight: normal;
	font-size: 50%;
}

	html.PC body.chinese header h1 {
		font-size: 260%;
		letter-spacing: 0.05em;
	}
	html.PC body.tax header h1 {
		font-size: 200%;
	}
	html.PC body.self_tax header h1 {
		font-size: 200%;
	}
	html.PC body.tax header h1 br {
		display: none;
	}
	html.PC body.tax header h1 small,
	html.PC body.self_tax header h1 small {
		font-size: 40%;
	}

		html.SP body.chinese header h1 {
			font-size: 160%;
		}
		html.SP body.tax header h1,
		html.SP body.self_tax header h1 {
			display: inline-block;
			padding: 4% 0 4%;
			font-size: 150%;
			line-height: 1.2;
			text-align: center;
		}
		html.SP body.tax header h1 small,
		html.SP body.self_tax header h1 small {
			font-size: 60%;
			text-align: right;
		}

/* OTC */
body.chinese header p.otc {
	position: absolute;
	margin: 0;
}
	html.PC body.chinese header p.otc {
		right: 10px;
		bottom: 10px;
		width: 64px;
	}
		html.SP body.chinese header p.otc {
			right: 5px;
			bottom: 5px;
			width: 45px;
		}

/*==================== グローバルメニュー ====================*/
#globalmenu ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
#globalmenu li {
	line-height: 1;
	white-space: nowrap;
}
#globalmenu a {
	display: block;
	color: inherit;
	font-family: 'UD Shin Go Medium';
	text-decoration: none;
}
#globalmenu button {
	font-size: inherit;
}

	html.PC #globalmenu {
		height: 90px;
	}
	html.PC #globalmenu nav {
		height: 100%;
		padding-left: 175px;
	}
	html.PC #globalmenu ul {
		display: table;
		height: 100%;
	}
	html.PC #globalmenu li {
		display: table-cell;
		vertical-align: middle;
		color: #0A3C8C;
		font-size: 105%;
		transition: all 0.2s ease;
	}
	html.PC #globalmenu li:nth-of-type(1) {
		display: none;
	}
	html.PC #globalmenu li:hover {
		background-color: #E2EBF8;
	}
	html.PC #globalmenu li a {
		display: block;
		padding: 0 15px;
		line-height: 90px;
	}
	html.PC body.products #globalmenu li:nth-of-type(2),
	html.PC body.cm #globalmenu li:nth-of-type(3),
	html.PC body.campaign #globalmenu li:nth-of-type(4),
	html.PC body.healthcare #globalmenu li:nth-of-type(5),
	html.PC body.company:not(.en) #globalmenu li:nth-of-type(6),
	html.PC body.inquiry #globalmenu li:nth-of-type(7),
	html.PC body.company.en #globalmenu li:nth-of-type(8) {
		background-color: #0a3c8c;
		color: white;
	}

		html.SP #globalmenu {
			position: fixed;
			z-index: 2;
		}
		html.SP #globalmenu button.btn {
			position: fixed;
			right: 0;
			top: 0;
			border: none;
			padding: 0;
			margin: 0;
			background: none;
		}
		html.SP #globalmenu button.btn img {
			display: block;
			box-sizing: border-box;
			width: auto;
			height: 3.5em;
			padding: 0.25em;
		}
		html.SP #globalmenu.open .btn img:nth-of-type(1),
		html.SP #globalmenu:not(.open) .btn img:nth-of-type(2) {
			display: none;
		}

		html.SP #globalmenu nav {
			position: fixed;
			overflow: hidden;
			right: 0;
			top: 0;
			height: 100%;
			-webkit-transform: translate(100%, 0);
			transform: translate(100%, 0);
			-webkit-transition: all 0.4s ease;
			transition: all 0.4s ease;
		}
		html.SP #globalmenu.open nav {
			-webkit-transform: translate(0, 0);
			transform: translate(0, 0);
		}
		html.SP #globalmenu ul {
			height: 100%;
			padding: 2em 0.5em;
			background: #0a3c8c;
		}
		html.SP #globalmenu li {
			color: white;
			border: solid white;
			border-width: 0 0 1px;
		}
		html.SP #globalmenu li a {
			padding: 1.25em;
			padding-left: 2.5em;
			padding-right: 3em;
			background: url(/images/common/arrow2.svg) no-repeat 1em center;
			background-size: auto 1.2em;
		}
		html.SP #globalmenu li:nth-of-type(1) a {
			background-image: url(/images/common/home1.svg);
		}

/*==================== パンくずリスト ====================*/
#bread {
	background-color: #f7f7f7;
	color: #0a3c8c;
	font-size: 90%;
}
body.index #bread {
	display: none;
}
#bread ul {
	margin: 0;
	padding: 1em 0;
	list-style-type: none;
}
#bread ul li {
	display: inline-block;
}
#bread ul li:nth-of-type(n+2) {
	margin-left: 0.5em;
}
#bread a {
	display: block;
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
}
#bread a:hover {
	text-decoration: underline;
}
#bread ul li:nth-of-type(1) a {
	padding-left: 1.5em;
	background: url(../images/common/home2.svg) no-repeat left center;
	background-size: auto 0.9em;
}
#bread li:not(:nth-of-type(1)) a:before {
	content: '> ';
}

	html.PC #bread {
		position: relative;
		margin-top: 1px;
	}
	html.PC #bread:before {
		content: ' ';
		display: block;
		min-width: 100%;
		position: absolute;
		z-index: -1;
		left: 50%;
		top: -1px;
		width: 100vw;
		height: 100%;
		transform: translate(-50%, 0);
		background: inherit;
		border-top: 1px solid #B5C4DC;
		
	}
	html.PC #bread ul {
		width: 1000px;
		margin: 0 auto;
	}
		html.SP #bread {
			padding: 0 3%;
		}

/*//////////////////////////////////////// footer ////////////////////////////////////////*/
footer {
	background-color: #0a3c8c;
	color: white;
}
footer ul {
	display: table;
	border-spacing: 0.75em 0;
	margin: 0;
	padding: 0;
	list-style-type: none;
	background-image: ;
	background-repeat: no-repeat;
}
footer li {
	display: table-cell;
	vertical-align: middle;
	font-size: 90%;
	line-height: 1;
	white-space: nowrap;
}
	html.PC footer li.logo_w img{
		width: 105px;
		height: 35px;
	}
	html.SP footer li.logo_w{
		position: absolute;
		display: block;
		margin: -12% auto 0;
		padding-left: 4.5em;
	}
footer li a {
	background: url(/images/common/arrow1.svg) no-repeat left center;
	color: inherit;
	padding-left: 1em;
	background-size: auto 1.1em;
	font-family: 'UD Shin Go Medium';
	text-decoration: none;
}
footer li a.home {
	background: none;
	padding-left: 0;
}
footer address {
	font-family: -apple-system, Helvetica, Arial, sans-serif;
	font-size: 80%;
	font-style: normal;
}
	html.PC footer p{
		float: right;
		font-size: 90%;
		margin: -25px 0 0 0;
	}
	html.PC footer p a{
		color:#ffffff;
		text-decoration:none;
	}
	html.PC footer p span{font-weight: normal;}
		html.SP footer p{
			font-size: 90%;
			margin: 8% auto 0;
			text-align: center;
		}
		html.SP footer p a{
			color:#ffffff;
			text-decoration:none;
		}
		html.SP footer p span{font-weight: bold;}

	html.PC footer {
		box-sizing: border-box;
		margin: 4em auto 0;
		padding: 1em calc((100vw - (1000px)) / 2);
	}
	@media screen and (max-width: 1000px) {
		html.PC footer {
			width: 1000px;
			padding: 1em;
		}
	}
	html.PC footer ul {
		padding: 0.75em 0;
		padding-left: 0em;
		background-position: left center;
		background-size: auto 100%;
	}
	html.PC footer address {
		margin-top: 1em;
		width: 46%;
	}
	html.WIN footer li a {
		display: block;
	}

		html.SP footer {
			margin: 3em 0 0;
			padding: 2em 3%;
		}
		html.SP footer ul {
			text-align: center;
			margin: 0 auto;
			background-position: center top;
			padding-top: 3.25em;
			background-size: auto 2.75em;
		}
		html.SP footer address {
			margin-top: 2em;
		}

/*==================== 先頭に戻る ====================*/
#topagetop {
	position: fixed;
	right: 0;
	bottom: 0;
	opacity: 0;
	-webkit-transition: all 0.4s ease;
	transition: all 0.4s ease;
	-webkit-transform: translate(0, 300%);
	transform: translate(0, 300%);
}
#topagetop.show {
	opacity: 1;
	-webkit-transform: translate(0, 0);
	transform: translate(0, 0);
}
#topagetop button {
	border: none;
	margin: 0;
	padding: 0;
	background: none;
	cursor: pointer;
	outline: none;
}

	html.PC #topagetop {
		bottom: 120px;
		right: 30px;
		z-index: 100;
	}
	html.PC #topagetop button img {
		display: blcok;
		width: 140px;
		height: calc(140px * (55/60));
		background: none;
	}

		html.SP #topagetop {
			bottom: 3em;
			right: 1em;
			z-index: 100;
		}
		html.SP #topagetop button img {
			width: 80px;
		}
