body, div, p, a, img, h, h1, h2, h3, h4, h5, h6, hr, header, footer, section, article {
	margin: 0px;
	padding: 0px;
	border: 0px;
}
body {
	margin: 0px;
	padding: 0px;
	font-family: 'M PLUS 1p', sans-serif;
	font-size: 12px;
	font-weight: 400;
	color: #3E3A39;
}
img {
	margin: 0px;
	padding: 0px;
	border: 0px;
}
.cb {
	clear: both;
}
.cb hr {
	display: none;
}
.anc01 {
	display: block;
	width: 0px;
	height: 0px;
	line-height: 0px;
}
#bodybox {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	margin: 0px 0px 0px 0px;
	min-width: 1040px;
	overflow-x: hidden;
}
.inner {
	display: block;
	position: relative;
	width: 1024px;
	margin: 0 auto;
}
@media (max-width: 640px) {
	body {
		-webkit-text-size-adjust: 100%;
		width: 480px;
	}
	#bodybox {
		width: 480px;
		min-width: 480px;
	}
	.inner {
		width: 100%;
	}
}

.pcbr {
	display: block;
}
.mbbr {
	display: none;
}
@media (max-width: 640px) {
	.pcbr {
		display: none;
	}
	.mbbr {
		display: block;
	}
}
/* pc mb */
@media only screen and (min-width: 641px) {
	.pc {
		display: block;
	}
	.mb {
		display: none !important;
	}
}
@media only screen and (max-width: 640px) {
	.pc {
		display: none !important;
	}
	.mb {
		display: block;
	}
}
.found404 {
	padding: 200px 50px;
	text-align: center;
	font-family: 'Noto Sans JP', sans-serif;
	color: #3E3A39;
	font-size: 15px;
	font-weight: 400;
}

/* #region General --------------------------- */
.rtt01 {
	display: block;
	position: relative;
	width: 70px;
	height: 1em;
	margin: 88px auto 70px auto;
	padding-top: 39px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 10px;
	font-weight: 700;
	line-height: 1em;
	text-align: center;
	color: rgba(230, 0, 45, 1.0);
	letter-spacing: 0.1em;
	cursor: pointer;
	transition-duration: 150ms;
}
.rtt01:hover {
	opacity: 0.7;
}
.rtt01::before {
	content: '';
	display: block;
	position: absolute;
	left: 0px;
	right: 0px;
	top: 0px;
	margin: auto;
	width: 0px;
	height: 0px;
	background-color: rgba(230, 0, 45, 1.0);
	border: solid 16px rgba(230, 0, 45, 1.0);
	border-radius: 50%;
	transition-duration: 150ms;
}
.rtt01::after {
	content: '';
	display: block;
	position: absolute;
	left: 0px;
	right: 0px;
	top: 9px;
	margin: auto;
	width: 0px;
	height: 0px;
	border-left: solid 6px transparent;
	border-right: solid 6px transparent;
	border-bottom: solid 10px rgba(255, 255, 255, 1.0);
}
.rtt01 p {
	display: block;
	position: relative;
}
.rtt01 p::before {
	content: '';
	display: block;
	position: absolute;
	left: 0px;
	right: 0px;
	top: -22px;
	margin: auto;
	width: 0px;
	height: 15px;
	border-left: solid 1px rgba(255, 255, 255, 1.0);
	border-right: solid 1px rgba(255, 255, 255, 1.0);
}
/* #endregion -------------------------------- */


/* #region Header ---------------------------- */
#headerbase {
	width: 100%;
	height: 147px;
	margin: 0;
}
#header {
	width: 1024px;
	height: calc(100% - 2px);
	margin: 0 auto;
	padding-top: 1px;
	padding-bottom: 1px;
}

#obione {
	display: block;
	position: relative;
	width: 100%;
	height: 147px;
	margin: -1px auto 0px auto;
	z-index: 1;
}
#obione::before {
	content: '';
	display: block;
	position: absolute;
	left: -2048px;
	right: -2048px;
	top: 0px;
	margin: auto;
	width: 3072px;
	height: 100%;
	background-color: rgba(255, 255, 255, 1.0);
	box-shadow: 0px 5px 12px rgba(0, 0, 0, 0.5);
	z-index: 1;
}
#headlogo01 {
	display: block;
	position: absolute;
	left: 32px;
	top: 31px;
	width: 270px;
	height: 84px;
	text-decoration: none;
	color: #000000;
	transition-duration: 150ms;
	z-index: 2;
}
#headlogo01:hover {
	opacity: 0.7;
}
#headlogo01 .logo01 {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
}
#headlogo01 .logo01 img, #headlogo01 .logo01 svg {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	border: 0px;
}
#hmbtn {
	display: none;
	position: absolute;
	right: 40px;
	bottom: 33px;
	width: 42px;
	height: 29px;
	cursor: pointer;
	transition-duration: 500ms;
}
#hmbtn div {
	display: block;
	position: absolute;
	left: 0px;
	top: 0px;
	right: 0px;
	bottom: 0px;
	margin: auto;
	width: 100%;
	height: 0px;
	background-color: #000000;
}
#hmbtn::before, #hmbtn::after {
	content: '';
	display: block;
	position: absolute;
	left: 0px;
	right: 0px;
	width: 100%;
	height: 0px;
	margin: auto;
	-webkit-transform-origin: 50% 50%;
	transform-origin: 50% 50%;
	background-color: #000000;
}
#hmbtn div, #hmbtn::before, #hmbtn::after {
	border: solid 2px #000000;
	border-radius: 2px;
	transition-duration: 500ms;
}
#hmbtn::before {
	top: 0px;
	bottom: 29px;
}
#hmbtn::after {
	top: 29px;
	bottom: 0px;
}
#hmbtn.hmbtn_opened {
	-webkit-transform: rotate(-1080deg);
	transform: rotate(-1080deg);
}
#hmbtn.hmbtn_opened div {
	opacity: 0.0;
	-webkit-transform: rotate(-360deg);
	transform: rotate(-360deg);
}
#hmbtn.hmbtn_opened::before {
	top: -100px;
	bottom: -100px;
	-webkit-transform: rotate(-405deg);
	transform: rotate(-405deg);
}
#hmbtn.hmbtn_opened::after {
	top: -100px;
	bottom: -100px;
	-webkit-transform: rotate(-315deg);
	transform: rotate(-315deg);
}
@media (max-width: 640px) {
	#headerbase {
		width: 480px;
		margin: -40px 0px 0px 0px;
	}
	#header {
		width: 480px;
	}
	#obione {
		z-index: 5;
	}
	#obione::before {
		z-index: 4;
	}
	#headlogo01 {
		top: auto;
		left: 24px;
		bottom: 24px;
		width: 214px;
		height: 65px;
		z-index: 5;
	}
	#hmbtn {
		display: block;
		z-index: 5;
	}
}


#hmbase {
	display: block;
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
}
#hnavibox {
	display: block;
	position: absolute;
	right: 69px;
	top: 26px;
	width: 340px;
	height: auto;
	text-align: right;
	z-index: 1;
}
#hnavicont {
	display: block;
	position: relative;
	list-style: none;
	width: 100%;
	height: auto;
	margin: 0px;
	padding: 0px;
	font-size: 0px;
	line-height: 0px;
	text-align: right;
	font-feature-settings: 'palt';
}
#hnavicont li {
	display: inline-block;
	position: relative;
	margin: 0px 12px 0px 12px;
	vertical-align: top;
}
#hnavicont li:first-of-type {
	margin-left: 0px;
}
#hnavicont li:last-of-type {
	margin-right: 0px;
}
#hnavicont li a {
	display: block;
	position: relative;
	height: auto;
	text-decoration: none;
	color: #000000;
	transition-duration: 150ms;
}
#hnavicont li a:hover {
	opacity: 0.7;
}
#hnavicont li a .text {
	display: block;
	position: relative;
	height: 1em;
	margin: 0px auto 0px auto;
	padding-left: 12px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1em;
	text-align: center;
}
#hnavicont li a .text::before {
	content: '';
	display: block;
	position: absolute;
	left: 0px;
	top: 0px;
	bottom: 0px;
	margin: auto;
	width: 0px;
	height: 0px;
	border-top: solid 5px transparent;
	border-bottom: solid 5px transparent;
	border-left: solid 9px #E6002D;
}
.main-menu-box {
	display: block;
	position: absolute;
	right: 50px;
	bottom: 17px;
	width: 640px;
	height: 73px;
	text-align: right;
}
.main-menu-list {
	display: flex;
	justify-content: flex-end;
	width: 640px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-feature-settings: 'palt';
}
.main-menu-list>li {
	display: inline-block;
	margin: 0;
	padding: 0 20px;
}
.main-menu-list>li>a {
	display: block;
	position: relative;
	height: 53px;
	padding-top: 20px;
	text-decoration: none;
	color: #000000;
	transition-duration: 150ms;
	z-index: 1;
}
.main-menu-list>li>a::after {
	content: '';
	display: block;
	position: absolute;
	left: -100px;
	right: -100px;
	bottom: 0;
	margin: auto;
	width: 0;
	height: 0;
	border-bottom: solid 8px #E6002D;
	opacity: 0;
	transition-duration: 150ms;
}
.main-menu-list>li:hover>a::after {
	width: 100%;
	opacity: 1.0;
}
.main-menu-list>li>a .text {
	position: relative;
	height: 1em;
	margin: 0 auto;
	font-size: 16px;
	font-weight: 500;
	line-height: 1em;
	text-align: center;
}
.main-menu-list>li>ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: center;
	justify-content: flex-start;
	position: absolute;
	list-style: none;
	right: -62px;
	bottom: -17px;
	width: 1024px;
	height: 111px;
	margin: 0px;
	padding: 1px 10;
	text-align: left;
	transition-duration: 150ms;
}
.main-menu-list>li>ul::before {
	content: '';
	position: absolute;
	left: -2048px;
	right: -2048px;
	top: 0px;
	margin: auto;
	width: 3072px;
	height: 100%;
	background-color: rgba(230, 0, 45, 1.0);
}
.main-menu-list>li>ul::after {
	content: '';
	display: block;
	position: absolute;
	left: -2048px;
	right: -2048px;
	bottom: 0px;
	margin: auto;
	width: 3072px;
	height: 50px;
	transition-duration: 150ms;
}
.main-menu-list>li:hover>ul {
	bottom: -130px;
}
.main-menu-list>li:hover>ul::after {
	bottom: 113px;
	z-index: 2;
}
.main-menu-list>li>ul>li {
	display: inline-block;
	position: relative;
	margin: 10px 18px;
	padding: 0px;
}
.main-menu-list>li>ul>li>a {
	display: block;
	position: relative;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	text-align: left;
	color: #FFFFFF;
	transition-duration: 150ms;
}
.main-menu-list>li>ul>li>a:hover {
	text-shadow: 0px 0px 10px rgba(255, 255, 255, 1.0);
}
@media (max-width: 640px) {
	#hmbase {
		top: -1024px;
		height: auto;
		padding-bottom: 92px;
		background-color: rgba(230, 0, 45, 1.0);
		text-align: center;
		transition-duration: 400ms;
		z-index: 3;
	}
	#hmbase.hmb_opened {
		top: 147px;
	}
	#hnavibox {
		left: 0px;
		right: 0px;
		top: auto;
		bottom: 34px;
		margin: auto;
		width: auto;
		text-align: center;
	}
	#hnavicont {
		text-align: center;
	}
	#hnavicont li a {
		color: #FFFFFF;
	}
	#hnavicont li a .text {
		padding-left: 15px;
		font-size: 16px;
	}
	#hnavicont li a .text::before {
		border-top-width: 6px;
		border-bottom-width: 6px;
		border-left: solid 11px #FFFFFF;
	}
	.main-menu-box {
		display: inline-block;
		position: relative;
		right: auto;
		bottom: auto;
		width: auto;
		height: auto;
		margin-top: 10px;
		text-align: left;
	}
	.main-menu-list {
		display: inline-block;
		margin: 0 auto;
		width: auto;
		text-align: left;
	}
	.main-menu-list>li {
		display: block;
		margin: 36px 0px 36px 0px;
		text-align: left;
	}
	.main-menu-list>li>a {
		width: auto;
		height: auto;
		margin: 28px 0px 28px 0px;
		padding-top: 0px;
		text-align: left;
		color: #FFFFFF;
	}
	.main-menu-list>li>a::after {
		display: none;
	}
	.main-menu-list>li>a .text {
		font-size: 24px;
		text-align: left;
	}
	.main-menu-list>li>ul {
		display: block;
		position: relative;
		right: auto;
		bottom: auto;
		width: auto;
		height: auto;
		padding: 0px;
	}
	.main-menu-list>li>ul::before, .main-menu-list>li>ul::after {
		display: none;
	}
	.main-menu-list>li:hover>ul {
		bottom: auto;
	}
	.main-menu-list>li>ul>li, .main-menu-list>li>ul>li:first-of-type {
		display: block;
		margin: 22px 0px 22px 0px;
	}
}
/* #endregion -------------------------------- */

/* #region ----------------------------------- */

.midbase {
	display: block;
	position: relative;
	width: 100%;
	margin: 0px 0px 0px 0px;
}
.midbox {
	display: block;
	position: relative;
	width: 1024px;
	margin: 0px auto 0px auto;
	padding-top: 1px;
	padding-bottom: 1px;
}
.stcont {
	display: block;
	position: relative;
	width: 960px;
	margin: 120px auto 0px auto;
	text-align: left;
	-webkit-font-feature-settings: 'palt';
	font-feature-settings: 'palt';
}
.stbox {
	display: block;
	position: relative;
	width: 600px;
	height: 64px;
	margin: 0px auto 0px auto;
	-webkit-font-feature-settings: 'palt';
	font-feature-settings: 'palt';
}
.stbox .stj {
	display: block;
	position: relative;
	height: 1em;
	margin: 0px auto 0px auto;
	font-size: 32px;
	font-weight: 900;
	line-height: 1em;
	text-align: center;
	color: #448822;
	letter-spacing: 0.025em;
}
.stbox .ste {
	display: block;
	position: relative;
	height: 1em;
	margin: 8px auto 0px auto;
	font-family: 'Lato', sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1em;
	text-align: center;
	color: #664422;
	letter-spacing: 0.2em;
}
.stcom01 {
	display: block;
	position: relative;
	width: 540px;
	margin: 24px auto 0px auto;
	font-size: 15px;
	font-weight: 400;
	line-height: 28px;
	text-align: justify;
	text-justify: inter-ideograph;
	color: #333333;
	letter-spacing: 0.025em;
}

@media (max-width: 640px) {
	.midbase {
		width: 480px;
	}
	.midbox {
		width: 480px;
	}
	.stcont {
		width: 400px;
	}
	.stbox {
		width: 100%;
		height: 80px;
	}
	.stbox .stj {
		font-size: 40px;
	}
	.stbox .ste {
		margin-top: 14px;
		font-size: 22px;
	}
	.stcom01 {
		font-size: 17px;
		line-height: 34px;
		letter-spacing: 0.05em;
	}

}
/* #endregion -------------------------------- */

/* #region midfootbase ------------------------ */
#midfootbase {
	background-color: #F8F8F8;
	padding-bottom: 40px;
}
#midfootbox {
	height: calc(100% - 2px);
}
#mfbbox {
	display: block;
	position: relative;
	margin: 99px auto 0px auto;
}
#mfbcont {
	display: block;
	position: relative;
	font-size: 0px;
	line-height: 0px;
	text-align: center;
}
#mfbcont .long-banner {
	display: block;
	position: relative;
	max-width: 960px;
	width: 100%;
	margin: 0 auto 55px;
	transition: opacity 0.3s;
}
#mfbcont .long-banner:hover {
	opacity: 0.7;
}
#mfbcont .long-banner img, #mfbcont .long-banner source {
	width: 100%;
}
.mfbanner {
	display: inline-block;
	position: relative;
	width: 307px;
	height: 225px;
	margin: 0px 10px 20px 10px;
	font-size: 16px;
	line-height: 24px;
	text-decoration: none;
	vertical-align: top;
	color: #000000;
	background-color: #FFFFFF;
}
.mfbanner img {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	border: 0px;
	transition-duration: 150ms;
}
.mfbanner:hover img {
	opacity: 0.7;
}
#mflbox {
	display: block;
	position: relative;
	margin: 45px auto 0px auto;
}
#mflcont {
	display: block;
	position: relative;
	font-size: 0px;
	line-height: 0px;
	text-align: center;
}
.mflink {
	display: inline-block;
	position: relative;
	width: 179px;
	height: 51px;
	margin: 0px 8px 0px 8px;
	font-size: 16px;
	line-height: 24px;
	text-decoration: none;
	text-align: center;
	vertical-align: top;
	color: #000000;
	background-color: #FFFFFF;
}
.mflink img {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	border: 0px;
	transition-duration: 150ms;
}
.mflink:hover img {
	opacity: 0.7;
}

@media (max-width: 640px) {
	#mfbbox {
		margin-top: 92px;
	}
	#mfbcont .long-banner {
		max-width: 412px;
	}
	.mfbanner {
		display: block;
		margin: 22px auto 22px auto;
	}
	#mflbox {
		width: 390px;
		margin-top: 70px;
	}
	#mflcont {
		text-align: left;
	}
	.mflink {
		margin: 8px 8px 8px 8px;
	}	.snsbox {
		width: 400px;
		height: 46px;
		margin-top: 46px;
	}
}
/* #endregion -------------------------------- */

/* #region Footer ---------------------------- */
#footer {
	position: relative;
	width: 100%;
	margin: 0;
	background: #fff;
}

.footer-main {
	width: 1024px;
	margin: 0 auto;
	padding-bottom: 220px;
}
.footer-main-block {
	display: flex;
	justify-content: center;
	margin-top: 86px;
}

.footer-info-box {
	width: 287px;
	margin-right: 20px;
	font-size: 12px;
	font-weight: 500;
	line-height: 21px;
	text-align: center;
}
.footer-logo-link {
	display: block;
	position: relative;
	width: 287px;
	height: 87px;
	margin: 0 auto;
	text-decoration: none;
	color: #0000;
	transition-duration: 150ms;
}
.footer-logo-link:hover {
	opacity: 0.7;
}
.footer-logo-link .logo01 {
	width: 100%;
	height: 100%;
}
.footer-logo-link .logo01 img, .footer-logo-link .logo01 svg {
	display: block;
	width: 100%;
	height: 100%;
	border: 0px;
}
.footer-info-text {
	margin: 10px auto 0;
	padding-top: 8px;
	padding-left: 2px;
	border-top: solid 1px rgba(62, 58, 57, 0.25);
	color: #000000;
	font-size: 12px;
	font-weight: 500;
	line-height: 21px;
	text-align: left;
	font-feature-settings: 'palt';
	letter-spacing: 0.025em;
}
.footer-info-text span {
	color: #B5B5B6;
}

.footer-menu-box {
	display: flex;
	justify-content: flex-start;
	padding-top: 32px;
	text-align: left;
}
.footer-menu-list {
	padding-left: 50px;
	list-style: none;
	line-height: 1;
	font-feature-settings: 'palt';
}
.footer-menu-list a {
	transition-duration: 150ms;
}
.footer-menu-list a:hover {
	opacity: 0.7;
}
.footer-menu-list>li {
	display: block;
	margin-bottom: 25px;
}
.footer-menu-list>li>a {
	display: block;
	text-decoration: none;
	color: #000;
	white-space: nowrap;
}
.footer-menu-list>li>a .text {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.025em;
}
.footer-menu-list>li>ul {
	list-style: none;
	margin-top: 20px;
	padding: 0;
	font-size: 13px;
	font-weight: 400;
	color: #595757;
}
.footer-menu-list>li>ul>li {
	margin: 14px 0;
}
.footer-menu-list>li>ul>li>a {
	display: block;
	text-decoration: none;
	color: #595757;
	white-space: nowrap;
}
@media (max-width: 640px) {
	.footer-main {
		width: 100%;
		padding-bottom: 80px;
	}
	.footer-main-block {
		display: block;
	}
	.footer-info-box {
		display: block;
		width: 344px;
		margin: 0 auto;
	}
	.footer-logo-link {
		width: 344px;
		height: 104px;
	}
	.footer-info-text {
		margin-top: 12px;
		padding-top: 10px;
		font-size: 14px;
		line-height: 25px;
	}

	.footer-menu-box {
		display: block;
		padding-top: 40px;
	}
	.footer-menu-list {
		display: block;
		width: 200px;
		margin: 0 auto;
		padding-left: 0;
		text-align: left;
	}
	.footer-menu-list>li {
		margin-bottom: 20px;
	}
	.footer-menu-list>li>a .text {
		font-size: 20px;
	}
	.footer-menu-list>li>a .text::before {
		content: '》';
		display: inline-block;
	}
	.footer-menu-list>li>ul {
		display: none;
	}
}

.footer-foot {
	padding: 23px 0 70px;
	background-color: rgba(230, 0, 45, 1.0);
	color: #fff;
}
.footer-foot .inner {
	display: flex;
	justify-content: space-between;
}
.footer-foot-nav-list {
	flex-grow: 0;
	order: 2;
	margin: 0;
	margin-right: 60px;
	padding: 0;
	list-style: none;
}
.footer-foot-nav-list li {
	display: inline-block;
	margin: 0 12px;
}
.footer-foot-nav-list li a {
	display: block;
	text-decoration: none;
	color: #fff;
	transition-duration: 150ms;
}
.footer-foot-nav-list li a:hover {
	opacity: 0.7;
}
.footer-foot-nav-list li .text {
	font-size: 12px;
	font-weight: 500;
	line-height: 1em;
	font-feature-settings: 'palt';
}
.footer-foot-nav-list li .text::before {
	content: '';
	display: inline-block;
	margin-right: 3px;
	border-top: solid 5px transparent;
	border-bottom: solid 5px transparent;
	border-left: solid 9px #FFFFFF;
}
.copyright {
	margin-left: 30px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.3em;
}
@media (max-width: 640px) {
	.footer-foot {
		padding: 20px 0 20px;
	}
	.footer-foot .inner {
		display: block;
		text-align: center;
	}
	.footer-foot-nav-list {
		margin: 0;
		margin-bottom: 70px;
		text-align: center;
	}
	.footer-foot-nav-list li .text {
		font-size: 14px;
	}
	.footer-foot-nav-list li .text::before {
		border-top-width: 6px;
		border-bottom-width: 6px;
		border-left-width: 11px;
	}
	.copyright {
		margin: 0;
		letter-spacing: 0.1em;
	}
}
/* #endregion -------------------------------- */
