/* ベース */
/* 横幅の計算にボーダーや余白も含める */
*, *:before, *:after {
	box-sizing: border-box;
	margin:0;
	padding:0;
}
/* 各種ブロックのスタイル */
div {
	font-family: 'Open Sans', sans-serif;
	font-weight:bold;
}
/* リンク設定 */
a,
a:visited,
a:hover,
a:active {
	color: inherit;
	text-decoration: none;
}
/* 全ページのヘッダー */
.HeaderBarPC {
	position: fixed;
	background-color:#fff;
	z-index:99;
	width:100%;
	height:10%;
}
/*上から下へロゴ半円のフェードイン*/
.fadeInDownCircle {
	-webkit-animation-fill-mode:both;
	-ms-animation-fill-mode:both;
	animation-fill-mode:both;
	-webkit-animation-duration:1s;
	-ms-animation-duration:1s;
	animation-duration:1s;
	-webkit-animation-name: fadeInDownCircle;
	animation-name: fadeInDownCircle;
	visibility: visible !important;
}
@-webkit-keyframes fadeInDownCircle {
	0% { opacity: 0; -webkit-transform: translateY(-50px) rotate(-42deg); -ms-transform: translateY(-50px) rotate(-42deg); transform: translateY(-50px) rotate(-42deg); }
	100% { opacity: 1; -webkit-transform: translateY(0) rotate(-42deg); -ms-transform: translateY(0) rotate(-42deg); transform: translateY(0) rotate(-42deg); }
}
@keyframes fadeInDownCircle {
	0% { opacity: 0; -webkit-transform: translateY(-50px) rotate(-42deg); -ms-transform: translateY(-50px) rotate(-42deg); transform: translateY(-50px) rotate(-42deg); }
	100% { opacity: 1; -webkit-transform: translateY(0) rotate(-42deg); -ms-transform: translateY(0) rotate(-42deg); transform: translateY(0) rotate(-42deg); }
}
/*下から上へロゴ三角形のフェードイン*/
.fadeInUpTriangle {
	-webkit-animation-fill-mode:both;
	-ms-animation-fill-mode:both;
	animation-fill-mode:both;
	-webkit-animation-duration:1s;
	-ms-animation-duration:1s;
	animation-duration:1s;
	-webkit-animation-name: fadeInUpTriangle;
	animation-name: fadeInUpTriangle;
	visibility: visible !important;
}
@-webkit-keyframes fadeInUpTriangle {
	0% { opacity: 0; -webkit-transform: translateY(20px); -ms-transform: translateY(20px); transform: translateY(20px); }
	100% { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
}
@keyframes fadeInUpTriangle {
	0% { opacity: 0; -webkit-transform: translateY(20px); -ms-transform: translateY(20px); transform: translateY(20px); }
	100% { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
}
/*右から左へロゴひし形のフェードイン*/
.fadeInRightDiamond {
	-webkit-animation-fill-mode:both;
	-ms-animation-fill-mode:both;
	animation-fill-mode:both;
	-webkit-animation-duration:1s;
	-ms-animation-duration:1s;
	animation-duration:1s;
	-webkit-animation-name: fadeInRightDiamond;
	animation-name: fadeInRightDiamond;
	visibility: visible !important;
}
@-webkit-keyframes fadeInRightDiamond {
	0% { opacity: 0; -webkit-transform: translateX(20px) rotate(47deg); -ms-transform: translateX(20px) rotate(47deg); transform: translateX(20px) rotate(47deg); }
	100% { opacity: 1; -webkit-transform: translateX(0) rotate(47deg); -ms-transform: translateX(0) rotate(47deg); transform: translateX(0) rotate(47deg); }
}
@keyframes fadeInRightDiamond {
	0% { opacity: 0; -webkit-transform: translateX(20px) rotate(47deg); -ms-transform: translateX(20px) rotate(47deg); transform: translateX(20px) rotate(46deg); }
	100% { opacity: 1; -webkit-transform: translateX(0) rotate(47deg); -ms-transform: translateX(0) rotate(47deg); transform: translateX(0) rotate(46deg); }
}





/* 共通処理 */
/*上から下へフェードイン*/
.fadeInDown {
	-webkit-animation-fill-mode:both;
	-ms-animation-fill-mode:both;
	animation-fill-mode:both;
	-webkit-animation-duration:1s;
	-ms-animation-duration:1s;
	animation-duration:1s;
	-webkit-animation-name: fadeInDown;
	animation-name: fadeInDown;
	visibility: visible !important;
}
@-webkit-keyframes fadeInDown {
	0% { opacity: 0; -webkit-transform: translateY(-50px); -ms-transform: translateY(-50px); transform: translateY(-50px); }
	100% { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
}
@keyframes fadeInDown {
	0% { opacity: 0; -webkit-transform: translateY(-50px); -ms-transform: translateY(-50px); transform: translateY(-50px); }
	100% { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
}





/* PC固定メニュー */
.HeaderMenuPC {
	position: relative;
	top:10px;
	display: flex;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.HeaderMenuPC ul {
	display: flex;
	flex-direction: row;
}
.HeaderMenuPC li {
	position: relative;
	list-style-type: none;
	margin-right: 2vw;
	cursor: pointer;
	color: black;
}
.HeaderMenuPC li:last-child {
	margin-right: 0px;
}
.HeaderMenuPC li:after {
	content: "";
	position: absolute;
	z-index: -1;
	left: 50%;
	transform: translateX(-50%) rotate(0deg);
}

.HeaderMenuPC li:nth-child(1):after {
	background: #ED4337;
}

.HeaderMenuPC li:nth-child(2):after {
	background: #A1D3A2;
}

.HeaderMenuPC li:nth-child(3):after {
	background: #50B8E7;
}

.HeaderMenuPC li:nth-child(4):after {
	background: #efe200;
}

.HeaderMenuPC li:nth-child(1):after {
	clip-path: polygon(6% 10%, 100% 0, 64% 65%, 28% 65%);
	bottom: -37px;
	animation: stretch 2s ease infinite;
}
@keyframes stretch {
	25% {
		transform: translateX(-50%) rotate(2deg) scaleY(0.93);
	}
	50% {
		transform: translateX(-50%) rotate(-2deg) scaleX(0.93);
		clip-path: polygon(6% 20%, 100% 0, 64% 65%, 28% 65%);
	}
	75% {
		transform: translateX(-50%) rotate(3deg) scale(1.05);
	}
}
.HeaderMenuPC li:nth-child(2):after {
	clip-path: polygon(61% 0%, 100% 19%, 71% 100%, 0% 100%);
	bottom: -8px;
	animation: stretch2 1.5s ease infinite;
}
@keyframes stretch2 {
	25% {
		transform: translateX(-50%) rotate(-2deg) scaleY(1.05);
	}
	50% {
		transform: translateX(-50%) rotate(2deg) scaleY(0.93) scaleX(1.06);
		clip-path: polygon(61% 0%, 100% 19%, 71% 100%, 12% 100%);
	}
	75% {
		transform: translateX(-50%) rotate(3deg) scale(1.05);
		clip-path: polygon(61% 0%, 80% 19%, 71% 100%, 12% 100%);
	}
}
.HeaderMenuPC li:nth-child(3):after {
	clip-path: polygon(0% 0%, 100% 0%, 100% 99%, 0% 57%);
	bottom: -8px;
	animation: stretch3 2s ease infinite;
}
@keyframes stretch3 {
	25% {
		transform: translateX(-50%) rotate(-2deg) scaleY(1.05);
	}
	50% {
		transform: translateX(-50%) rotate(2deg) scaleY(0.93) scaleX(1.06);
		clip-path: polygon(10% 5%, 100% 0%, 100% 99%, 0% 57%);
	}
	75% {
		transform: translateX(-50%) rotate(3deg) scale(1.05);
		clip-path: polygon(0% 0%, 100% 0%, 100% 99%, 10% 37%);
	}
}
.HeaderMenuPC li:nth-child(4):after {
	clip-path: polygon(0% 40%, 100% 0%, 100% 99%, 19% 100%);
	bottom: -8px;
	animation: stretch4 2s ease infinite;
}
@keyframes stretch4 {
	25% {
		transform: translateX(-50%) rotate(-2deg) scaleY(1.05);
	}
	50% {
		transform: translateX(-50%) rotate(2deg) scaleY(0.93) scaleX(1.06);
		clip-path: polygon(0% 40%, 100% 0%, 100% 99%, 19% 100%);
	}
	75% {
		transform: translateX(-50%) rotate(3deg) scaleY(1.05);
		clip-path: polygon(0% 40%, 100% 0%, 100% 99%, 19% 100%);
	}
}
.HeaderMenuPC li:hover:after {
	animation: boink 1s ease forwards 1;
}
@keyframes boink {
	80% {
		transform: scaleX(1.9) scaleY(0.6) translateX(-30%);
	}
}
.HeaderMenuPC a {
	position: relative;
	top:10px;
}
.HeaderMenuPC_p1,
.HeaderMenuPC_p2,
.HeaderMenuPC_p3,
.HeaderMenuPC_p4,
.HeaderMenuPC_p5,
.HeaderMenuPC_p6,
.HeaderMenuPC_p7,
.HeaderMenuPC_p8 {
	margin: 0px auto;
}
.HeaderMenuPC_p1,
.HeaderMenuPC_p3,
.HeaderMenuPC_p6,
.HeaderMenuPC_p7 {
	width: 100%;
}
.HeaderMenuPC_p2 {
	width: 50%;
}
.HeaderMenuPC_p4 {
	width: 94%;
}
.HeaderMenuPC_p5 {
	width: 82%;
}
.HeaderMenuPC_p8 {
	width: 70%;
}
/* ENTRYボタン */
.HeaderEntryPC {
	position: fixed;
	top: 10px;
	left: 80%;
	width: 18%;
	height: 8%;
	z-index: 1;
}
.HeaderEntryPC .HeaderCheckBoxToggle {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	cursor: pointer;
	width: 100%;
	height: 100%;
	opacity: 0;
}
.HeaderEntryPC .HeaderCheckBoxToggle:checked + .HeaderHamburgerPC > div {
	transform: rotate(360deg);
}
.HeaderEntryPC .HeaderCheckBoxToggle:checked + .HeaderHamburgerPC > div:before,
.HeaderEntryPC .HeaderCheckBoxToggle:checked + .HeaderHamburgerPC > div:after {
	top: 0;
	transform: rotate(360deg);
}
.HeaderEntryPC .HeaderCheckBoxToggle:checked + .HeaderHamburgerPC > div:after {
	opacity: 0;
}
.HeaderEntryPC .HeaderCheckBoxToggle:checked ~ .HeaderEntryMenuPC {
	pointer-events: auto;
	visibility: visible;
}
.HeaderEntryPC .HeaderCheckBoxToggle:checked ~ .HeaderEntryMenuPC > div {
	transform: scale(1);
	transition-duration: .75s;
}
.HeaderEntryPC .HeaderCheckBoxToggle:checked ~ .HeaderEntryMenuPC > div > div {
	opacity: 1;
	transition: opacity .4s ease .4s;
}
.HeaderEntryPC .HeaderCheckBoxToggle:hover + .HeaderHamburgerPC {
	box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
}
.HeaderEntryPC .HeaderHamburgerPC {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	padding: .5em 1em;
	border-radius: 0 .12em .12em 0;
	cursor: pointer;
	transition: box-shadow .4s ease;
	backface-visibility: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: url(../img/re_entry.jpg);
	background-repeat: no-repeat;
	background-size: cover;
}
.HeaderEntryPC .HeaderHamburgerPC > div {
	position: relative;
	flex: none;
	width: 100%;
	height: 2px;
	transition: all .4s ease;
	display: flex;
	align-items: center;
	justify-content: center;
}
.HeaderEntryPC .HeaderEntryMenuPC {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	visibility: hidden;
	overflow: hidden;
	backface-visibility: hidden;
	outline: 1px solid transparent;
	display: flex;
	align-items: center;
	justify-content: center;
}
.HeaderEntryPC .HeaderEntryMenuPC > div {
	width: 200vw;
	height: 200vw;
	color: #FEFEFE;
	background: rgba(0,63,113,0.97);
	border-radius: 50%;
	transition: all .4s ease;
	flex: none;
	transform: scale(0);
	backface-visibility: hidden;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.HeaderEntryPC .HeaderEntryMenuPC > div > div {
	text-align: left;
	max-width: 90vw;
	max-height: 100vh;
	opacity: 0;
	transition: opacity .4s ease;
	overflow-y: auto;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
}
.HeaderEntryPC .HeaderEntryMenuPC > div > div > ul {
	list-style: none;
	padding: 0 1em;
	margin: 0;
	display: block;
	max-height: 100vh;
}
.HeaderEntryPC .HeaderEntryMenuPC > div > div > ul > li {
	padding: 0;
	margin: 1em;
	font-size: 34px;
	display: block;
}
.HeaderEntryPC .HeaderEntryMenuPC > div > div > ul > li > a {
	position: relative;
	display: inline;
	cursor: pointer;
	transition: color .4s ease;
}
.HeaderEntryPC .HeaderEntryMenuPC > div > div > ul > li > a:hover {
	color: #e5e5e5;
}
.HeaderEntryPC .HeaderEntryMenuPC > div > div > ul > li > a:hover:after {
	width: 100%;
}
.HeaderEntryPC .HeaderEntryMenuPC > div > div > ul > li > a:after {
	content: '';
	position: absolute;
	z-index: 1;
	bottom: -0.15em;
	left: 0;
	width: 0;
	height: 2px;
	background: #e5e5e5;
	transition: width .4s ease;
}
.HeaderEntryTitlePC {
	color: #FFFFFF;
}





/* スマホ固定メニュー */
.HeaderBarSmart {
	position: relative;
	height:60px;
	width:100%;
	float: left;
}
.HeaderBarSmart a {
	color: #fff;
	font-size:25px;
	font-family: serif;
}
/* スマホメニュー内容 */
.HeaderMenuTitleSmart {
	position:absolute;
	top:40px;
	right:2px;
	width:100%;
	font-size:14px;
	color:#003F71;
	text-align:right;
}
.HeaderMenuButtonSmart {
	display:inline;
	position:absolute;
	top:8px;
	text-align:right;
	z-index:999;
	width:100%;
	height:auto;
	overflow:hidden;
	background:none;
}
.HeaderMenuButtonSmart a {
	text-decoration:none;
	margin-right: 7px;
}
.HeaderMenuButtonSmartOpen:after {
	color:#333;
	content:url(../img/re_sm_icon_menu_start.png);
	font-family:"FontAwesome";
	transition-property:all .2s linear 0s;
	-moz-transition:all .2s linear 0s;
	-webkit-transition:all .2s linear 0s;
	-o-transition:all .2s linear 0s;
}
.HeaderMenuButtonSmartOpen:hover:after {
	color:#34B484;
}
.HeaderMenuButtonSmartClose:after {
	top:-50px;
	hegith:100%;
	color:#fff;
	content:url(../img/re_sm_icon_menu_end.png);
	font-family:"FontAwesome";
	transition-property:all .2s linear 0s;
	-moz-transition:all .2s linear 0s;
	-webkit-transition:all .2s linear 0s;
	-o-transition:all .2s linear 0s;
}
.HeaderMenuButtonSmartClose:hover:after {
	color: #34B484;
}
.HeaderMenuSmart {
	display:none;
	position:fixed;
	top:0;
	left:0px;
	height:100%;
	width:100%;
	background:#003F71;
	overflow:auto;
	z-index:99;
}
.HeaderMenuWrapSmart {
	color:#e9e9e9;
	text-align:left;
	width:100%;
	margin:0 auto;
}
.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart li {
	font-size:30px;
	display:inline-block;
	vertical-align:top;
	width:35%;
	position:relative;
	color:#34B484;
}
.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart li a {
	color:#fff;
	display:block;
	padding:8px 0;
	text-decoration:none;
	transition-property:all .2s linear 0s;
	-moz-transition:all .2s linear 0s;
	-webkit-transition:all .2s linear 0s;
	-o-transition:all .2s linear 0s;
}
.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart li a:hover {
	color:#f0f0f0;
}
.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart ul {
	padding:20px 0;
}
.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart ul li {
	display:block;
	font-size:15px;
	width:100%;
	color:#e9e9e9;
}
.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart ul li a {
	color:#f0f0f0;
}
.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart ul li a:hover {
	color:#FF7F50;
}
@media screen and (max-width:991px) {
	.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart {
		border-bottom:1px solid #575757;
		text-transform:capitalize;
		padding:150px 0px 100px;
	}
	.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart>li {
		width:100%;
		padding:20px 0;
		border-bottom:1px solid #575757;
	}
	.HeaderMenuWrapSmart ul.HeaderMenuWrapNavSmart {
		padding:30px 0px 0px;
	}
	nav ul {
		opacity:0;
		visibility:hidden;
	}
}
/* デスクトップ以上 */
@media screen and (min-width: 1200px) {
	.HeaderBarSmart {
		display:none;
	}
	/* ロゴマーク */
	.HeaderCirclePC {
		position: absolute;
		top:15px;
		left:1px;
		width:61px;
		height:32px;
		border-radius:50% / 100% 100% 0 0;
		background:#003F71;
	}
	.HeaderDiamondPC {
		position: absolute;
		top:29px;
		left:55px;
		width: 26px;
		height: 26px;
		background: #003F71;
	}
	.HeaderTrianglePC {
		position: absolute;
		top:43px;
		left:24.5px;
		height: 43px;
		width: 43px;
		clip-path: polygon(0% 50%, 50% 2%, 98% 50%);
		-webkit-clip-path: polygon(0% 50%, 50% 2%, 98% 50%);
		color: #fff;
		background-color: #003F71;
	}
	.HeaderLogoTitlePC {
		position: absolute;
		top:20px;
		left:90px;
		width:170px;
		height:45px;
	}
	.HeaderLogoTitlePC img {
		width:100%;
		height:100%;
	}
	/* メニュー */
	.HeaderMenuPC ul {
		font-size: 25px;
	}
	.HeaderMenuPC li:nth-child(1):after {
		height: 95px;
		width: 85px;
	}
	.HeaderMenuPC li:nth-child(2):after {
		height: 65px;
		width: 85px;
	}
	.HeaderMenuPC li:nth-child(3):after {
		height: 65px;
		width: 55px;
	}
	.HeaderMenuPC li:nth-child(4):after {
		height: 65px;
		width: 55px;
	}
	.HeaderMenuPC_p2,
	.HeaderMenuPC_p4,
	.HeaderMenuPC_p6,
	.HeaderMenuPC_p8
	 {
	   font-size:15px;
	}
	/* ENTRY */
	.HeaderEntryTitlePC {
		font-size:2.3rem;
	}
}
/* タブレット横 */
@media (min-width: 992px) and (max-width: 1199px) {
	.HeaderBarSmart {
		display:none;
	}
	/* ロゴマーク */
	.HeaderCirclePC {
		position: absolute;
		top:15px;
		left:1px;
		width:58px;
		height:29px;
		border-radius:50% / 100% 100% 0 0;
		background:#003F71;
	}
	.HeaderDiamondPC {
		position: absolute;
		top:27px;
		left:52px;
		width: 23.5px;
		height: 23.5px;
		background: #003F71;
	}
	.HeaderTrianglePC {
		position: absolute;
		top:40px;
		left:23.5px;
		height: 40px;
		width: 40px;
		clip-path: polygon(0% 50%, 50% 2%, 98% 50%);
		-webkit-clip-path: polygon(0% 50%, 50% 2%, 98% 50%);
		color: #fff;
		background-color: #003F71;
	}
	.HeaderLogoTitlePC {
		position: absolute;
		top:20px;
		left:90px;
		width:150px;
		height:40px;
	}
	.HeaderLogoTitlePC img {
		width:100%;
		height:100%;
	}
	/* メニュー */
	.HeaderMenuPC ul {
		font-size: 20px;
	}
	.HeaderMenuPC li:nth-child(1):after {
		height: 90px;
		width: 80px;
	}
	.HeaderMenuPC li:nth-child(2):after {
		height: 60px;
		width: 80px;
	}
	.HeaderMenuPC li:nth-child(3):after {
		height: 60px;
		width: 50px;
	}
	.HeaderMenuPC li:nth-child(4):after {
		height: 60px;
		width: 50px;
	}
	.HeaderMenuPC_p2,
	.HeaderMenuPC_p4,
	.HeaderMenuPC_p6,
	.HeaderMenuPC_p8
	 {
	   font-size:12px;
	}
	/* ENTRY */
	.HeaderEntryTitlePC {
		font-size:2.1rem;
	}
}
/* タブレット横まで */
@media screen and (max-width: 991px) {
	.HeaderBarPC {
		display:none;
	}
	.HeaderCircleSmart {
	    position: absolute;
	    top:15px;
	    left:0px;
		width:28px;
		height:15px;
		border-radius:500px 500px 0 0;
		background:#003F71;
	}
	.HeaderDiamondSmart {
	    position: absolute;
	    top:22px;
	    left:25px;
		width: 13px;
		height: 13px;
		background: #003F71;
	}
	.HeaderTriangleSmart {
	    position: absolute;
	    top:29.5px;
	    left:11px;
		clip-path: polygon(0% 50%, 50% 2%, 98% 50%);
		-webkit-clip-path: polygon(0% 50%, 50% 2%, 98% 50%);
		color: #fff;
		background-color: #003F71;
		height: 18px;
		width: 18px;
	}
	.HeaderLogoTitleSmart {
		position: absolute;
		top:13px;
		left:45px;
		width:100px;
		height:30px;
	}
	.HeaderLogoTitleSmart img {
		width:100%;
		height:100%;
	}
}
