@charset "utf-8";

/* CSSリセット
  ############################################################################################# */

* {
	-webkit-tap-highlight-color: transparent;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
dl,
dt,
dd,
table,
tr,
th,
td,
form {
	font-size: inherit;
	margin: 0;
	padding: 0;
}

table {
	border-collapse: collapse;
	empty-cells: show;
}

th,
td {
	text-align: left;
	vertical-align: top;
}

li {
	list-style: none;
}

img {
	vertical-align: top;
}

input,
textarea,
select {
	-webkit-appearance: none;
	appearance: none;
}

/* 共通設定
  ############################################################################################# */

html,
:root {
	font-size: 100px;
}

body {
	width: 100%;
	height: 100vw;
	font-size: .12rem;
	line-height: 1.5;
	overflow: hidden;
}

body.ready {
	height: auto;
	overflow: auto;
}

body {
	/*font-family: "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "メイリオ", "ＭＳ Ｐゴシック", sans-serif;*/
	font-family: 'Noto Sans JP', sans-serif;
}

.serif {
	font-family: "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HiraMinProN-W3", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

@media all and (-ms-high-contrast:none) {
	/*body {
		font-family: "メイリオ", "ＭＳ Ｐゴシック", sans-serif;
	}
	.serif {
		font-family: "ＭＳ Ｐ明朝", "MS PMincho", serif;
	}*/
}

.robot {
	font-family: 'Roboto', sans-serif;
}

a {
	color: inherit;
	text-decoration: none;
}

a[href^="tel:"] {
	pointer-events: none;
}

input,
textarea,
select {
	font-family: inherit;
}

img,
video {
	max-width: 100%;
}

img[src$="_sp.jpg"],
img[src$="_sp.png"],
img[src$="_sp.svg"] {
	display: none;
}

[disabled] {
	cursor: not-allowed;
}

#wrap {
	overflow: hidden;
}

.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

.hov {
	transition: opacity .3s;
}

.hov:hover {
	opacity: .8;
}

@supports (filter: brightness(100%)) {
	.hov {
		transition-property: filter;
	}

	.hov:hover {
		filter: brightness(110%);
		opacity: 1;
	}
}

.indent {
	padding-left: 1em;
	text-align: left;
	text-indent: -1em;
}

.sp {
	display: none;
}

.text-shadow {
	text-shadow: 0 0 1px #fff, 0 0 2px #fff, 0 0 3px #fff, 0 0 4px #fff, 0 0 5px #fff;
}

.white {
	color: #fff;
}

.white.text-shadow {
	text-shadow: 0 0 1px #000, 0 0 2px #000, 0 0 3px #000, 0 0 4px #000, 0 0 5px #000;
}

.wrap {
	width: 12rem;
	margin: 0 auto;
}

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

	html,
	:root {
		font-size: 8.19672vw;
	}
}

@media only screen and (max-width:750px) {
	body {
		font-size: calc(100vw * 24 / 640);
	}

	a[href^="tel:"] {
		pointer-events: auto;
	}

	img[src$="_sp.jpg"],
	img[src$="_sp.png"],
	img[src$="_sp.svg"] {
		display: inline-block;
	}

	img[src$="_sp.jpg"]+img,
	img[src$="_sp.png"]+img,
	img[src$="_sp.svg"]+img {
		display: none;
	}

	.pc {
		display: none;
	}

	br.sp {
		display: inline;
	}

	.wrap {
		width: auto;
		margin-right: auto;
		margin-left: auto;
		padding-left: calc(100vw * 30 / 375);
		padding-right: calc(100vw * 30 / 375);
	}
}

.loading {
	display: flex;
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	background: #fff;
	align-items: center;
	justify-content: center;
}

.loading::before {
	content: '';
	display: block;
	width: 1.29rem;
	height: 1.29rem;
	background: url("../imgs/logo02.png") 0 0 / contain no-repeat;
	animation: loading 1s infinite linear;
}

@keyframes loading {
	0% {
		transform: rotate(0)
	}

	100% {
		transform: rotate(360deg)
	}
}

/* header
  ############################################################################################# */

#header {
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9000;
	background: #fff;
	transition: background .3s;
}

#header.transparent {
	background: transparent;
}

#header .wrap {
	height: .8rem;
	position: relative;
}

#header .siteTitle {
	width: 2.88rem;
	padding: .34rem 0 0;
}

#header .siteTitle a {
	display: block;
	position: relative;
}

#header .siteTitle img {
	transition: opacity .3s;
}

#header .siteTitle .white {
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}

.hNav{
	position: absolute;
	top: .2rem;
	/*right: .70rem;*/
	display: flex;
}
.hNav .lang{
	margin-right: 1em;
}
.hNav .lang li{
	float: left;
	font-size: .16rem;
}
.hNav .lang li + li::before{
	content: "|";
}
.hNav .lang a{
	display: inline-block;
	padding: .5em;
	font-weight: bold;
}
.hNav .lang a.on{
	cursor: default;
	font-weight: normal;
	opacity: 0.8;
	pointer-events: none;
}
.hNav .btn{
	position: relative;
	display: block;
	min-width: 1.54rem;
	color: #fff;
	font-size: .16rem;
	text-align: center;
	vertical-align: middle;
}
.hNav .btn + .btn{
	margin-left: .5em;
}

.hNav .btn span{
	position: relative;
	display: inline-block;
	padding: .07rem .15rem .075rem .4rem;
}
.hNav .btn span::before{
	content: "";
	position: absolute;
	top: .09rem;
	left: .12rem;
	display: block;
	width: .22rem;
	height: .22rem;
}
.hNav .btn.contact{
	background: linear-gradient(to right,  rgba(44,116,186,1) 0%,rgba(0,47,123,1) 100%);
}
.hNav .btn.contact span::before{
	background: url("../imgs/icon_email.png") 0 center no-repeat;
	background-size: contain;
}
.hNav .btn.recruit{
	background: linear-gradient(to right, #ff843d 0%,#f25e09 100%);
}
.hNav .btn.recruit span::before{
	background: url("../imgs/icon_i.png") 0 0 no-repeat;
	background-size: contain;
}

#header.transparent .siteTitle .white {
	opacity: 1;
}

#header.transparent .siteTitle .white+img {
	opacity: 0;
}

#header.transparent .lang,
#header.transparent .lang a{
	color: #fff;
}

@media only screen and (max-width:700px) {
	.chainImg {
		display: none;
	}
}
@media only screen and (max-width:750px) {
	main {
		margin-top: 110px;
	}
	#header .wrap {
		height: calc(100vw * 53 / 150);
		padding-left: calc(100vw * 15 / 375);
	}

	#header .siteTitle {
		width: calc(100vw * 143 / 375);
		padding: calc(100vw * 12.5 / 375) 0 0;
	}

	.hNav{
		top: calc(100vw * 10 / 50);
    	right: calc(100vw * 45 / 250);
	}
	/*.hNav .btn{
		display: none;
	}*/
	.hNav .lang li{
		font-size: inherit;
	}
	.navItem {
		top: calc(100vw * 10 / 40);
	}
	.footer-title:after {
		top: 30px;
	}
}
@media only screen and (min-width:750px) {
	main {
		margin-top: 85px;
	}
	.navItem {
		top: .2rem;
	}
	.hNav {
		right: 3.8rem;
	}
	.footer-title:after {
		top: 50px;
	}
}

/* bt-gNav
   ========================================================================== */

#flMenu {
	visibility: hidden;
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: none;
}

.btMenu,
.btClose {
	display: block;
	width: .28rem;
	height: .22rem;
	position: absolute;
	top: .55rem;
	right: 0;
	cursor: pointer;
}

.btMenu {
	box-sizing: border-box;
	border-top: .02rem solid #000;
	border-bottom: .02rem solid #000;
	transition: border-color .3s;
}

#header.transparent .btMenu {
	border-top-color: #fff;
	border-bottom-color: #fff;
}

.btMenu::before,
.btClose::before,
.btClose::after {
	content: '';
	display: block;
	width: 100%;
	height: .02rem;
	position: absolute;
	top: 50%;
	left: 50%;
}

.btMenu::before {
	bottom: 0;
	left: 0;
	background: #000;
	transition: background .3s;
}

#header.transparent .btMenu::before {
	background: #fff;
}

.btClose::before,
.btClose::after {
	top: 50%;
	left: 50%;
	background: #fff;
}

.btClose::before {
	transform: translate(-50%, -50%) rotate(135deg);
}

.btClose::after {
	transform: translate(-50%, -50%) rotate(45deg);
}

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

	.btMenu,
	.btClose {
		width: calc(100vw * 14 / 375);
		height: calc(100vw * 11 / 375);
		top: calc(100vw * 21 / 375);
		right: calc(100vw * 30 / 375);
	}

	.btMenu {
		border-top-width: 1px;
		border-bottom-width: 1px;
	}

	.btMenu::before,
	.btClose::before,
	.btClose::after {
		height: 1px;
	}
}

/* gNav
   ========================================================================== */

#gNav {
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9001;
	background: rgba(0, 47, 123, .8);
	color: #fff;
	font-size: .16rem;
	line-height: 2.625;
	/* 42 */
	opacity: 0;
	transform: translateX(100%);
	transition: .3s;
	transition-property: opacity, transform;
}

#flMenu:checked~#gNav {
	opacity: 1;
	transform: translateX(0);
}

#gNav .wrap {
	position: relative;
}

#gNav .logo {
	width: 2.88rem;
	padding: .34rem 0 0;
}

#gNav nav {
	display: flex;
	padding: .64rem 0 0 1rem;
}

#gNav ul:first-child {
	width: 5.9rem;
}

#gNav .space {
	margin: 2.625em 0 0;
}

#gNav .off {
	opacity: .5;
	pointer-events: none;
}

@media only screen and (max-width:750px) {
	#gNav {
		font-size: calc(100vw * 16 / 375);
		line-height: calc(23 / 16);
	}

	#gNav .logo {
		width: calc(100vw * 143 / 375);
		padding: calc(100vw * 12.5 / 375) 0 0;
	}

	#gNav nav {
		display: block;
		box-sizing: border-box;
		height: calc(100vh - 100vw * 98 / 375);
		margin: calc(100vw * 25 / 375) 0 0;
		padding: calc(100vw * 20 / 375) 0;
		overflow-y: scroll;
		-webkit-overflow-scrolling: touch;
	}

	#gNav ul:first-child {
		width: auto;
	}

	#gNav li {
		margin: calc(100vw * 20 / 375) 0 0;
	}

	#gNav .space,
	#gNav ul:last-child {
		margin: calc(100vw * 50 / 375) 0 0;
	}
}

@keyframes updown {
	0% {
		transform: translate(-50%, 0);
	}

	100% {
		transform: translate(-50%, -.05rem);
	}
}

/* main
  ############################################################################################# */

#main,
#footer {
	background-color: #F4F8FB;
}

.pageTitle .wrap,
.breadCrumb .wrap,
.lowerLead .wrap {
	box-sizing: border-box;
	padding-right: 1rem;
	padding-left: 1rem;
}

.pageTitle {
	box-sizing: border-box;
	height: 2.88rem;
	margin: 1.32rem 0 0;
	padding: 1rem 0 0;
	position: relative;
	background: url("../imgs/bg-title.jpg") 50% 100% / 100% auto no-repeat;
	color: #fff;
	line-height: 1;
}

.pageTitle .title {
	font-size: .58rem;
	font-weight: 900;
}
.pageTitle p {
	margin: .05rem 0 0;
	font-size: .28rem;
	line-height: 1.28571 /* 36 */;
}
.pageTitle .btContact {
	display: flex;
	box-sizing: border-box;
	width: 1.3rem;
	height: 1.3rem;
	border: .05rem none #51C1ED;
	position: absolute;
	left: 50%;
	bottom: -.65rem;
	background: #fff;
	border-radius: 50%;
	color: #000;
	font-size: .14rem;
	font-weight: bold;
	line-height: 1.57143 /* 22 */;
	text-align: center;
	align-items: center;
	justify-content: center;
	box-shadow: 0 0 .1rem rgba(0,0,0,.1);
	transform: translateX(5.2rem) scale(0.5);
	transition: .3s;
	transition-property: transform;
}
.pageTitle .btContact::before {
	content: '';
	display: block;
	width: .57468rem;
	height: .57468rem;
	position: absolute;
	top: 50%;
	left: 50%;
	background: url("../imgs/ico-contact.svg") 50% 50% / contain no-repeat;
	transform: translate(-50%,-50%);
	transition: opacity .3s;
}
.pageTitle .btContact span {
	opacity: 0;
	position: relative;
	transition: opacity .3s;
}
.pageTitle .btContact:hover {
	border-style: solid;
	transform: translateX(5.2rem) scale(1);
}
.pageTitle .btContact:hover::before {
	opacity: 0;
}
.pageTitle .btContact:hover span {
	opacity: 1;
}

.breadCrumb {
	padding: .165rem 0;
	font-size: .14rem;
	line-height: 1.5;
}

.breadCrumb ul {
	display: flex;
}

.breadCrumb li::after {
	content: ' > ';
}

.breadCrumb li:last-child::after {
	content: none;
}

.lowerLead {
	margin: .35rem 0 0;
	font-size: .18rem;
	line-height: 1.77778 /* 32 */;
}
.lowerLead .point {
	display: flex;
	box-sizing: border-box;
	width: 11rem;
	margin: .35rem -.5rem 0;
	padding: .2rem .5rem;
	background: #D2E2EF;
	justify-content: space-between;
}
.lowerLead .point li {
	box-sizing: border-box;
	padding: .3rem .3rem .25rem;
	font-size: .14rem;
	line-height: 1.85714 /* 26 */;
	background: #fff;
}
.lowerLead .point .label {
	margin: 0 0 .15rem;
	color: #002F7B;
	font-size: .2rem;
	font-weight: 900;
	line-height: 1;
}
.lowerLead .point3 li {
	width: 3.2rem;
}
.lowerLead .point4 li {
	width: 2.35rem;
}

.lowerSection {
	padding: .5rem 0 .6rem;
}
.lowerSection .inner {
	padding: .25rem 1rem 0;
	position: relative;
}
.lowerSection .sectionTitle .en {
	display: block;
	padding: 0 .6rem 0 0;
	position: absolute;
	top: 0;
	left: 0;
	font-size: .24rem;
	font-weight: 900;
	line-height: 1;
	transform: translateX(1em) rotate(90deg);
	transform-origin: left top;
}
.lowerSection .sectionTitle .en::after {
	content: '';
	display: block;
	width: .4rem;
	height: 1px;
	position: absolute;
	top: 50%;
	right: 0;
	background: #000;
}
.lowerSection .sectionTitle .ja {
	display: block;
	font-size: .28rem;
	font-weight: bold;
	line-height: 1;
}
.lowerSection .sectionTitle .ja .small {
	display: inline-block;
	font-size: .5em;
	vertical-align: middle;
}
.lowerSection .lead {
	margin: .07rem 0 0;
	color: #2C74BA;
	font-weight: bold;
	font-size: .15rem;
	line-height: 1.46667 /* 22 */;
}

.lowerSection.section01 {
	margin: .6rem 0 0;
}
.lowerSection.section01,
.lowerSection.section03 {
	background: #fff;
}

.prosEye {
	padding: .8rem 0 0;
}
.prosEye .box {
	box-sizing: border-box;
	width: 10rem;
	min-height: 3.6rem;
	margin: 0 auto;
	border: 1px solid #2C74BA;
	padding: .45rem .6rem .2rem 4.3rem;
	background: #fff 0 0 / contain no-repeat;
}
.prosEye .title {
	color: #002F7B;
	font-size: .14rem;
	font-weight: bold;
}
.prosEye .title span {
	color: #51C1ED;
}
.prosEye .catch {
	margin: .15rem 0 0;
	font-size: .24rem;
	font-weight: bold;
	line-height: 1.33333 /* 32 */;
}
.prosEye p {
	margin: .15rem 0 0;
	font-size: .15rem;
	line-height: 1.6 /* 24 */;
}
.prosEye .signature {
	margin: .05rem 0 0;
	font-size: .14rem;
	line-height: 1.71429 /* 24 */;
	text-align: right;
}
.prosEye .signature .job {
	margin: 0 1em 0 0;
	font-size: .12rem;
}

.bt01 {
	display: block;
	width: 3.2rem;
	margin: 0 auto;
	position: relative;
	background: #002F7B;
	color: #fff;
	font-size: .16rem;
	line-height: .6rem;
	text-align: center;
}
.bt01::after {
	content: '';
	display: block;
	width: .25rem;
	height: 1px;
	position: absolute;
	top: 50%;
	right: 0;
	background: #fff;
}

@media only screen and (max-width:1600px) {
	.pageTitle {
		background-size: 1600px auto;
	}
}

@media only screen and (max-width:1220px) {
	.pageTitle {
		background-size: calc(100vw * 1600 / 1220) auto;
	}
}
@media only screen and (max-width:750px) {
	.pageTitle .wrap,
	.breadCrumb .wrap,
	.lowerLead .wrap {
		padding-left: calc(100vw * 30 / 375);
		padding-right:  calc(100vw * 30 / 375);
	}

	.pageTitle {
		display: flex;
		height: calc(100vw * 120 / 350);
		margin: calc(100vw * 53 / 350) 0 0;
		padding: 0;
		background-size: auto 100%;
		flex-direction: column;
		justify-content: center;
	}

	.pageTitle .title {
		font-size: calc(100vw * 30 / 350);
	}
	.pageTitle p {
		margin: calc(100vw * 5 / 350) 0 0;
		font-size: calc(100vw * 14 / 350);
	}
	.pageTitle .btContact {
		display: none;
	}
	.breadCrumb {
		padding: calc(100vw * 14.5 / 350) 0;
		font-size: calc(100vw * 14 / 350);
		line-height: 1.5;
	}
	.lowerLead {
		margin: calc(100vw * 5 / 375) 0 0;
		font-size: calc(100vw * 12 / 375);
		line-height: calc(20 / 12);
	}
	.lowerLead .point {
		display: block;
		width: calc(100vw * 345 / 375);
		margin: calc(100vw * 15 / 375) calc(100vw * -15 / 375) 0;
		padding: calc(100vw * 5 / 375) calc(100vw * 15 / 375) calc(100vw * 15 / 375);
	}
	.lowerLead .point li {
		width: auto !important;
		margin: calc(100vw * 10 / 375) 0 0 ;
		padding: calc(100vw * 20 / 375) calc(100vw * 15 / 375) calc(100vw * 15 / 375);
		font-size: calc(100vw * 14 / 375);
		line-height: calc(22 / 14);
	}
	.lowerLead .point .label {
		margin: 0 0 calc(100vw * 8 / 375);
		font-size: calc(100vw * 20 / 375);
	}

	.lowerSection {
		padding: calc(100vw * 30 / 375) 0 calc(100vw * 30 / 375);
	}
	.lowerSection .inner {
		padding: calc(100vw * 5 / 375) 0 0;
	}
	.lowerSection .sectionTitle .en {
		padding: 0 calc(100vw * 36 / 375) 0 0;
		left: calc(100vw * -21 / 375);
		font-size: calc(100vw * 12 / 375);
	}
	.lowerSection .sectionTitle .en::after {
		width: calc(100vw * 30 / 375);
	}
	.lowerSection .sectionTitle .ja {
		font-size: calc(100vw * 22 / 375);
		line-height: calc(28 / 22);
	}
	.lowerSection .sectionTitle .ja .small {
		font-size: .8em;
	}
	.lowerSection .lead {
		margin: calc(100vw * 7 / 375) 0 0;
		font-size: calc(100vw * 14 / 375);
		line-height: calc(22 / 14);
	}

	.lowerSection.section01 {
		margin: calc(100vw * 30 / 375) 0 0;
	}

	.tableWrapper,
	.imageWrapper {
		width: 100%;
		margin: calc(100vw * 20 / 375) 0 0;
		padding: 0 0 calc(100vw * 15 / 375);
		overflow: auto;
	}
	.tableWrapper::-webkit-scrollbar,
	.imageWrapper::-webkit-scrollbar {
		height: calc(100vw * 12 / 375);
	}
	.tableWrapper::-webkit-scrollbar-track,
	.imageWrapper::-webkit-scrollbar-track {
		border-radius: calc(100vw * 6 / 375);
		background: rgba(0,0,0,.2);
	}
	.tableWrapper::-webkit-scrollbar-thumb,
	.imageWrapper::-webkit-scrollbar-thumb {
		border-radius: calc(100vw * 6 / 375);
		background: rgba(0,0,0,.5);
	}
	
	.prosEye {
		padding: calc(100vw * 20 / 375) 0 0;
	}
	.prosEye .box {
		width: auto;
		min-height: 0;
		border: none;
		padding: 0;
		background: transparent;
		background-image: none !important;
	}
	.prosEye .image {
		display: block;
	}
	.prosEye .title {
		margin: calc(100vw * 20 / 375) 0 0;
		font-size: calc(100vw * 14 / 375);
	}
	.prosEye .catch {
		margin: calc(100vw * 15 / 375) 0 0;
		font-size: calc(100vw * 18 / 375);
		line-height: calc(28 / 18);
	}
	.prosEye .catch br {
		display: none;
	}
	.prosEye p {
		margin: calc(100vw * 10 / 375) 0 0;
		font-size: calc(100vw * 14 / 375);
		line-height: calc(22 / 14);
	}
	.prosEye .signature {
		margin: calc(100vw * 10 / 375) 0 0;
		font-size: calc(100vw * 14 / 375);
		line-height: calc(22 / 14);
	}
	.prosEye .signature .job {
		display: block;
		margin: 0;
		font-size: calc(100vw * 12 / 375);
	}
	
	.bt01 {
		width: calc(100vw * 345 / 375);
		margin: 0 calc(100vw * -15 / 375);
		font-size: calc(100vw * 16 / 375);
		line-height: calc(100vw * 60 / 375);
	}
	.bt01::after {
		width: calc(100vw * 25 / 375);
	}
}

/*
   ========================================================================== */

.slick-arrow {
	display: block;
	box-sizing: border-box;
	width: .6rem;
	height: .6rem;
	border: 1px solid #000;
	position: absolute;
	top: 50%;
	background: transparent;
	color: transparent;
	outline: none;
	transform: translateY(-50%) rotate(45deg);
	cursor: pointer;
}

.slick-prev {
	border-top: none;
	border-right: none;
	left: -2rem;
}

.slick-next {
	border-bottom: none;
	border-left: none;
	right: -2rem;
}

.slick-dots {
	display: flex;
	margin: .8rem 0 0;
	justify-content: center;
}

.slick-dots li {
	margin: 0 .08rem;
}

.slick-dots button {
	display: block;
	width: .14rem;
	height: .14rem;
	border: none;
	padding: 0;
	background: #DAE7F2;
	border-radius: 50%;
	color: transparent;
	font-size: 10px;
	line-height: 1;
	outline: none;
	cursor: pointer;
}

.slick-dots .slick-active button {
	background: #002F7B;
}

@media only screen and (max-width:750px) {
	.slick-arrow {
		width: calc(100vw * 20 / 375);
		height: calc(100vw * 20 / 375);
		top: calc(100vw * 130 / 375);
	}

	.slick-prev {
		left: calc(100vw * -20 / 375);
	}

	.slick-next {
		right: calc(100vw * -20 / 375);
	}

	.slick-dots {
		margin: calc(100vw * 35 / 375) 0 0;
	}

	.slick-dots li {
		margin: 0 6px;
	}

	.slick-dots button {
		width: 10px;
		height: 10px;
	}
}

#special {
	text-align: center;
}

#special .title {
	font-size: .32rem;
	font-weight: bold;
	letter-spacing: .1em;
	line-height: 1;
}

#special .title .en {
	display: block;
	margin: 0 0 .1rem;
	font-size: .14rem;
	letter-spacing: 0;
}

#special p {
	margin: .3rem 0 0;
	font-size: .18rem;
	line-height: 1.77778; /* 32 */
}

#special ul {
	display: flex;
	width: 10rem;
	margin: .45rem auto 0;
	justify-content: space-between;
}

#special li {
	display: flex;
	width: 2.46rem;
	height: 2.32rem;
	background: #7C8699;
	color: #fff;
	align-items: center;
	justify-content: space-between;
}

#special a {
	display: flex;
	width: 100%;
	height: 100%;
	position: relative;
	background: #000;
	align-items: center;
	justify-content: space-between;
}

#special .image {
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	opacity: .5;
	transition: opacity .5s;
}

#special a:hover .image {
	opacity: 1;
}

#special .name,
#special .num {
	position: relative;
}

#special .name {
	padding: .04rem 0 0 .15rem;
	font-size: .14rem;
	line-height: 1.42857; /* 20 */
	text-align: left;
}

#special li>.name {
	padding-top: .24rem;
}

#special .num {
	padding: 0 .15rem 0 0;
	font-size: .54rem;
	line-height: 1;
}

#special .num span {
	font-size: .5em;
}

@media only screen and (max-width:750px) {
	#special .title {
		font-size: calc(100vw * 32 / 375);
	}

	#special .title .en {
		margin: 0 0 calc(100vw * 10 / 375);
		font-size: calc(100vw * 14 / 375);
	}

	#special p {
		margin: calc(100vw * 15 / 375)0 0;
		font-size: calc(100vw * 14 / 375);
		line-height: calc(26 / 14);
	}

	#special ul {
		display: block;
		width: auto;
		margin: calc(100vw * 15 / 375) 0 0;
	}

	#special li {
		width: auto;
		height: calc(100vw * 152 / 375);
		margin: calc(100vw * 10 / 375) 0 0;
	}

	#special .image {
		height: 100%;
	}

	#special .image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	#special a:hover .image {
		opacity: .5;
	}

	#special .name {
		padding: calc(100vw * 4 / 375) 0 0 calc(100vw * 20 / 375);
		font-size: calc(100vw * 14 / 375);
	}

	#special li>.name {
		padding-top: calc(100vw * 24 / 375);
	}

	#special .num {
		padding: 0 calc(100vw * 20 / 375) 0 0;
		font-size: calc(100vw * 54 / 375);
	}
}

.formbox {
	box-sizing: border-box;
	width: 10rem;
	margin: .25rem auto 0;
	padding: .6rem .4rem .6rem .8rem;
	background: #fff;
}

.formbox .title01 {
	font-size: .2rem;
	font-weight: normal;
	line-height: 1;
}

.formbox .title01::after {
	content: '';
	display: block;
	width: .6rem;
	height: 1px;
	margin: .25rem 0 0;
	background: #000;
}

.formbox dl {
	display: flex;
	margin: .2rem 0 0;
	flex-wrap: wrap;
}

.formbox dt {
	box-sizing: border-box;
	width: 2.5rem;
	padding: 0 0 0 .2rem;
	position: relative;
	color: #002F7B;
	font-size: .14rem;
	line-height: 1.52941
		/* 26 */
	;
}

.formbox dt::before {
	content: '\0000BB';
	position: absolute;
	top: .1em;
	left: 0;
}

.formbox .must {
	color: #FF0050;
}

.formbox dd {
	width: calc(100% - 2.5rem);
}

.formbox dt:nth-of-type(n+2),
.formbox dd:nth-of-type(n+2) {
	margin-top: .15rem;
}

.formbox .checkboxList label,
.formbox .radiolist label {
	display: block;
	position: relative;
}

.formbox .checkboxList label+label {
	margin: .1rem 0 0;
}

.formbox .checkboxList label input,
.formbox .radiolist label input {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}

.formbox .checkboxList label .line {
	display: block;
	padding: 0 0 0 .4rem;
	background: #F4F8FB;
	border-radius: 3px;
	font-size: .16rem;
	line-height: 3;
	transition: .3s;
	transition-property: background-color, color;
}

.formbox .checkboxList label .line::before,
.formbox .checkboxList label .line::after,
.formbox .radiolist label .line::before,
.formbox .radiolist label .line::after {
	content: '';
	display: block;
	position: absolute;
}

.formbox .checkboxList label .line::before {
	width: .16rem;
	height: .16rem;
	top: .16rem;
	left: .15rem;
	background: #fff;
}

.formbox .checkboxList label .line::after {
	width: .08rem;
	height: .08rem;
	top: .20rem;
	left: .19rem;
	background: #fff;
	transition: background-color .3s;
}

.formbox .checkboxList label input:checked+.line {
	background: #002F7B;
	color: #fff;
}

.formbox .checkboxList label input:checked+.line::after {
	background: #51C1ED;
}

.formbox .note {
	margin: .05rem;
	font-size: .14rem;
	line-height: 1.5;
}

.formbox .checkboxList .note {
	margin: .15rem 0 0;
}

.formbox input[type=text],
.formbox input[type=tel],
.formbox input[type=email],
.formbox select,
.formbox textarea {
	display: block;
	box-sizing: border-box;
	width: 100%;
	border: 1px solid #C8C8C8;
	padding: 6px 5px;
	border-radius: 0;
	font-size: 16px;
	line-height: 1.5;
}

.formbox .titleWithLink {
	display: flex;
	margin: .55rem 0 0;
}

.formbox a {
	text-decoration: underline;
}

.formbox .titleWithLink a {
	margin: 0 0 0 1em;
	font-size: .14rem;
	line-height: .2rem;
}

.formbox .questionnaire p {
	margin: .5rem 0 .3rem;
	font-size: .14rem;
	line-height: 1.5;
}

.formbox .radiolist {
	display: flex;
	flex-wrap: wrap;
}

.formbox .radiolist .line {
	display: block;
	margin: 0 .4rem 0 0;
	padding: 0 0 0 .25rem;
	position: relative;
	font-size: .16rem;
	line-height: 2.4;
}

.formbox .radiolist label .line::before {
	box-sizing: border-box;
	width: .16rem;
	height: .16rem;
	border: 1px solid #C8C8C8;
	top: .7em;
	left: 0;
	background: #fff;
	border-radius: 50%;
}

.formbox .radiolist label .line::after {
	width: .08rem;
	height: .08rem;
	top: calc(.7em + .04rem);
	left: .04rem;
	background: #fff;
	border-radius: 50%;
	transition: background-color .3s;
}

.formbox .radiolist label input:checked+.line::after {
	background: #51C1ED;
}

.formbox .caution {
	margin: .55rem 0 0;
	padding: .35rem 0;
	background: #F4F8FB;
	font-size: .14rem;
	line-height: 1.5;
	text-align: center;
}

.formbox .btn {
	width: 3.2rem;
	margin: .3rem auto 0;
	position: relative;
}

.formbox .btn::after {
	content: '';
	display: block;
	width: .25rem;
	height: 1px;
	position: absolute;
	top: 50%;
	right: 0;
	background: #fff;
}

.formbox .btn input {
	display: block;
	width: 100%;
	border: none;
	padding: 0;
	background: #002F7B;
	border-radius: 0;
	color: #fff;
	font-size: .16rem;
	line-height: .6rem;
	text-align: center;
}

@media only screen and (max-width:750px) {
	.formbox {
		width: calc(100vw * 345 / 375);
		margin: 0 calc(100vw * -15 / 375);
		padding: calc(100vw * 20 / 375) calc(100vw * 15 / 375) 0;
	}

	.formbox .title01 {
		font-size: calc(100vw * 18 / 375);
	}

	.formbox .title01::after {
		width: calc(100vw * 30 / 375);
		margin: calc(100vw * 18 / 375) 0 0;
	}

	.formbox dl {
		display: block;
		margin: calc(100vw * 10 / 375) 0 0;
	}

	.formbox dt {
		width: auto;
		padding: 0 0 0 calc(100vw * 20 / 375);
		font-size: calc(100vw * 14 / 375);
		line-height: calc(20 / 14);
	}

	.formbox dt:nth-of-type(n+2) {
		margin: calc(100vw * 20 / 375) 0 0;
	}

	.formbox dd,
	.formbox dd:nth-of-type(n+2) {
		width: auto;
		margin: calc(100vw * 10 / 375) 0 0;
	}

	.formbox .checkboxList label+label {
		margin: calc(100vw * 10 / 375) 0 0;
	}

	.formbox .checkboxList label .line {
		padding: calc(100vw * 13 / 375) 0 calc(100vw * 13 / 375) calc(100vw * 40 / 375);
		font-size: calc(100vw * 16 / 375);
		line-height: calc(22 / 16);
	}

	.formbox .checkboxList label .line::before {
		width: calc(100vw * 16 / 375);
		height: calc(100vw * 16 / 375);
		top: calc(100vw * 16 / 375);
		left: calc(100vw * 15 / 375);
	}

	.formbox .checkboxList label .line::after {
		width: calc(100vw * 8 / 375);
		height: calc(100vw * 8 / 375);
		top: calc(100vw * 20 / 375);
		left: calc(100vw * 19 / 375);
	}

	.formbox .note {
		margin: calc(100vw * 5 / 375);
		font-size: calc(100vw * 14 / 375);
		line-height: calc(22 / 14);
	}

	.formbox .checkboxList .note {
		margin: calc(100vw * 5 / 375);
	}

	.formbox .titleWithLink {
		display: block;
		margin: calc(100vw * 40 / 375) 0 0;
	}

	.formbox .titleWithLink .title01::after {
		content: none;
	}

	.formbox .titleWithLink a {
		margin: calc(100vw * 10 / 375) 0 0;
		display: inline-block;
		font-size: calc(100vw * 14 / 375);
		line-height: 1;
	}

	.formbox .titleWithLink::after {
		content: '';
		display: block;
		width: calc(100vw * 30 / 375);
		height: 1px;
		margin: calc(100vw * 18 / 375) 0 0;
		background: #000;
	}

	.formbox .questionnaire p {
		margin: calc(100vw * 40 / 375) 0;
		font-size: calc(100vw * 14 / 375);
	}

	.formbox .radiolist {
		display: block;
	}

	.formbox .radiolist .line {
		margin: 0;
		padding: 0 0 0 calc(100vw * 25 / 375);
		font-size: calc(100vw * 16 / 375);
	}

	.formbox .radiolist label .line::before {
		width: calc(100vw * 16 / 375);
		height: calc(100vw * 16 / 375);
	}

	.formbox .radiolist label .line::after {
		width: calc(100vw * 8 / 375);
		height: calc(100vw * 8 / 375);
		top: calc(.7em + 100vw * 4 / 375);
		left: calc(100vw * 4 / 375);
	}

	.formbox .caution {
		margin: calc(100vw * 20 / 375) 0 0;
		padding: calc(100vw * 15 / 375) calc(100vw * 18 / 375);
		font-size: calc(100vw * 16 / 375);
		line-height: calc(22 / 14);
		text-align: left;
	}

	.formbox .btn {
		width: calc(100vw * 345 / 375);
		margin: calc(100vw * 20 / 375) calc(100vw * -15 / 375) 0;
		position: relative;
	}

	.formbox .btn::after {
		width: calc(100vw * 25 / 375);
	}

	.formbox .btn input {
		font-size: calc(100vw * 16 / 375);
		line-height: calc(100vw * 60 / 375);
	}
}

/* ========================================================================== */

.hdrNav {
	width: 50%;
	max-width: 6rem;
	position: fixed;
	top: 0;
	left: 50%;
	z-index: 9100;
}
.hdrNav > ul {
	display: flex;
	color: #fff;
	font-size: .15rem;
	line-height: .4rem;
	transition: color .3s;
	justify-content: flex-end;
}
.hdrNav > ul > li {
	width: 2rem;
	position: relative;
	background: #002F7B;
	text-align: center;
	transition: background-color .3s;
}
.hdrNav .parent {
	position: relative;
}
.hdrNav .parent::after {
	content: '';
	display: block;
	box-sizing: border-box;
	width: .12rem;
	height: .07rem;
	position: absolute;
	top: 50%;
	right: .15rem;
	background: url("../imgs/arrow03_w.svg") 0 0 / contain no-repeat;
	transform: translateY(-50%);
	transition: transform .5s;
}
.hdrNav .parent.active::after {
	transform: translateY(-50%) rotate(180deg);
}
.hdrNav a {
	display: block;
}
.hdrNav > ul > li + li {
	border-left: 1px solid #fff;
	transition: border-left-color .3s;
}
.hdrNav li ul {
	display: none;
	width: auto;
	position: absolute;
	top: 100%;
	left: 0;
	background: #002F7B;
	text-align: left;
	white-space: nowrap;
	transition: background-color .3s;
}
.hdrNav li ul a {
	padding: 0 .1rem;
}

#header.transparent ~ .hdrNav > ul {
	color: #002F7B;
}
#header.transparent ~ .hdrNav > ul > li {
	background: #fff;
}
#header.transparent ~ .hdrNav .parent::after {
	background-image: url("../imgs/arrow03.svg");
}
#header.transparent ~ .hdrNav > ul > li + li {
	border-left-color: #002F7B;
}
#header.transparent ~ .hdrNav li ul {
	background: #fff;
}

@media only screen and (max-width:750px) {
	.hdrNav {
		width: auto;
		max-width: none;
		right: calc(100vw * 64 / 375);
		left: auto;
	}
	.hdrNav > ul {
		display: flex;
		color: #002F7B;
		font-size: .15rem;
		line-height: .4rem;
		justify-content: flex-end;
	}
	.hdrNav > ul > li {
		width: calc(100vw * 50 / 375);
		background: #fff;
	}
	.hdrNav .parent,
	.hdrNav > ul > li > a {
		background: #002F7B;
		color: #fff;
		font-size: 10px;
		line-height: calc(100vw * 50 / 375);
	}
	.hdrNav .parent::after,
	#header.transparent ~ .hdrNav .parent::after {
		width: calc(100vw * 8 / 375);
		height: calc(100vw * 6 / 375);
		top: calc(100vw * 37 / 375);
		right: 50%;
		background-image: url("../imgs/arrow05.svg");
		transform: translateX(50%);
	}
	.hdrNav .parent.active::after {
		transform: translateY(-50%) rotate(180deg);
	}
	.hdrNav a {
		display: block;
	}
	.hdrNav > ul > li + li {
		border-left: none;
		margin: 0 0 0 calc(100vw * 2 / 375);
	}
	.hdrNav li ul {
		width: calc(100vw * 166 / 375);
		padding: 0 0 calc(100vw * 5 / 375);
		font-size: calc(100vw * 14 / 375);
		line-height: 1.2;
		white-space: normal;
	}
	.hdrNav li ul li {
		margin: calc(100vw * 5 / 375) 0 0;
	}
	.hdrNav li ul a {
		padding: 0 calc(100vw * 10 / 375);
	}
}

/* footer
  ############################################################################################# */

#footer {
	box-sizing: border-box;
	height: 7.91rem;
	padding: 4rem 0 0;
	background-image: url("../imgs/bg-footer.png");
	background-position:  50% 100%;
	background-size: 100% auto;
	background-repeat: no-repeat;
	color: #fff;
	line-height: 1;
}

#footer .btPagetop {
	display: block;
	width: .5rem;
	margin: 0 auto;
	padding: .5rem 0 .1rem;
	background: url("../imgs/pagetop.png") 50% .2rem / .24rem auto no-repeat;
	font-size: .08rem;
	text-align: center;
	transition: background-position .5s;
}

#footer .btPagetop:hover {
	background-position: 50% .1rem;
}

#footer .catch {
	margin: .55rem 0 0;
	color: #002F7B;
	font-size: .24rem;
	font-weight: 900;
	text-align: center;
}

#footer .fNav {
	margin: 1.2rem 0 0;
	font-size: .14rem;
	text-align: right;
}

#footer .copyright {
	margin: .4rem 0 0;
	font-size: .12rem;
	text-align: right;
}

@media only screen and (max-width:1600px) {
	#footer {
		background-size: 1600px auto;
	}
}

@media only screen and (max-width:1220px) {
	#footer {
		background-size: calc(100vw * 1600 / 1220) auto;
	}
}

@media only screen and (max-width:750px) {
	#footer {
		height: calc(100vw * 272 / 375);
		padding: calc(100vw * 114 / 375) 0 0;
		position: relative;
		background-image: url("../imgs/bg-footer_sp.png");
		background-size: 100% auto;
	}

	#footer .btPagetop {
		width: 20%;
		padding: calc(100vw * 30 / 375) 0 calc(100vw * 10 / 375);
		background-size: calc(100vw * 24 / 375) auto;
		background-position: 50% calc(100vw * 10 / 375);
		font-size: 10px;
		transition: background-position .5s;
	}

	#footer .btPagetop:hover {
		background-position: 50% calc(100vw * 10 / 375);
	}

	#footer .catch {
		margin: calc(100vw * 20 / 375) 0 0;
		font-size: calc(100vw * 18 / 375);
	}

	#footer .fNav {
		display: none;
	}

	#footer .copyright {
		width: 100%;
		position: absolute;
		bottom: 10px;
		left: 0;
		font-size: 10px;
		text-align: center;
	}
}

/* fix banner
  ############################################################################################# */

.fix_bnr{
	display: none;
}

@media only screen and (max-width:750px) {
	.fix_bnr{
		position: fixed;
		bottom: .5em;
		left: .5em;
		right: .5em;
		z-index: 9999;
		display: block;
	}
	.fix_bnr a{
		display: block;
	}
/*	.fix_bnr a{
		display: flex;
		align-items: center;
		padding: .8em 1.8em .8em 1em;
		background: linear-gradient(to right, #f2a548 0%,#f28909 100%);
		color: #fff;
	}
	.fix_bnr a::after{
		content: "";
		position: absolute;
		right: 1.2em;
		display: block;
		width: .8em;
		height: .8em;
		border-right: 2px solid #fff;
		border-bottom: 2px solid #fff;
		transform: rotate(-45deg);
	}
	.fix_bnr .ttl{
		width: 5.8em;
		font-size: 1.54em;
		font-weight: bold;
		line-height: 1;
		letter-spacing: .04em;
	}
	.fix_bnr p{
		width: calc(100% - 4em);
		font-size: .75em;
		line-height: 1.2;
	}
*/}

.footer {
	background-color: #535353;
	padding-top: 10px;
	padding-bottom: 20px;
}
.footer-title {
	font-size: 16px;
	color: #fff;
	line-height: 16px;
	margin-bottom: 36px;
	margin-top: 20px;
}
.footer-title:after {
	content: "";
	position: absolute;
	left: 15px;
	width: 23px;
	height: 1px;
	background: #878787;
}
.footer-text {
	color: #c2c2c2;
	line-height: 16px;
	margin: 8px auto;
}
.footer-text-relation {
	background-color: #00003A;
	color: white;
}
.footer-text-relation span {
	margin-right: 15px;
}


