@charset "UTF-8";
/*----------------------------------------

	Common CSS (Last Update 2020.08.05)

	+ header
		- multilevelnav
		- langPc
		- snsPC
		- menuIcon, menuCheckbox
		+ nav_drawer
			- snsIcon, snsCheckbox
			- langSp
			- snsSP
	- breadcrumb
	+ content
		+ article
			- decoration
			- contentsmenu
			- relatedpage
		- aside
	+ footer
		- pagetop
		- fmenu
		- flink
	- vertical_writing
	- glossary_modal
	- ytbox
	- swiper-container

-----------------------------------------*/

/*----------------------------------------
	header
-----------------------------------------*/
header {
	z-index: 1000;
	position: fixed;
	top: 0;
	left: 0;
	width: 200px;
	height: 100vh;
	border-right: 1px solid #f0ede8;
	background-color: #fff;
}

header>h1 {
	display: flex;
	z-index: 1000;
	justify-content: center;
	align-items: center;
	width: 200px;
	height: 298px;
	background: #fff;
}

header>h1>a {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

header>h1>a img[class^="pc"] {
	display: block;
}

header>h1>a img[class^="sp"] {
	display: none;
}

header>h1>a img.pc1 {
	width: 46px;
	height: auto;
	margin: -4px 0 0 -6px;
}

header>h1>a img.pc2 {
	width: 9px;
	height: auto;
	margin: 30px 10px 0 0;
}

@media screen and (max-width: 1023px) {
	header {
		z-index: 1000;
		position: fixed;
		width: 100%;
		height: 58px;
		top: 0;
		left: 0;
		background: #fff;
		border-bottom: 1px solid #f0ede8;
	}

	header>h1 {
		width: 175px;
		height: 58px;
	}

	header>h1>a {
		flex-direction: row;
	}

	header>h1>a img[class^="pc"] {
		display: none;
	}

	header>h1>a img[class^="sp"] {
		display: block;
	}

	header>h1>a img.sp1 {
		width: 54px;
		height: auto;
		margin: 0 0 0 2px;
	}

	header>h1>a img.sp2 {
		width: 54px;
		height: auto;
		margin: 2px 0 0 20px;
	}
}

/*----------------------------------------
	multilevelnav
-----------------------------------------*/
.menu {
	position: static;
}

.menu>li a {
	display: flex;
	align-items: center;
	width: 200px;
	min-height: 40px;
	padding: 10px 6px 10px 24px;
	box-sizing: border-box;
	color: #373d44;
}

.menu>li li a {
	color: #fff;
}

.pc .menu>li a:hover {
	background-color: #696b76 !important;
	color: #fff;
}

.pc .menu>li:hover a {
	color: #fff;
}

ul.menu>li>a,
ul.menu>li.multi_menu>a {
	padding: 10px 6px 10px 49px;
	letter-spacing: 0.09em;
}

.pc li.multi_menu:hover {
	background-color: #525461;
}

li.multi_menu div ul {
	position: absolute;
}

/* レベル２ */
li.multi_menu .menu_level2 {
	/*overflow: hidden;*/
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 200px;
	width: 0;
	height: 100vh;
	background-color: #525461;
	opacity: 0;
	transition: all .2s ease .2s;
}

.pc li.multi_menu:hover .menu_level2 {
	visibility: visible;
	width: 200px;
	opacity: 1;
}

li.multi_menu .menu_level2>ul {
	visibility: hidden;
	left: 0;
	width: 200px;
	height: 100vh;
	opacity: 0;
	transition: all .2s ease-out .3s;
}

.pc li.multi_menu:hover .menu_level2>ul {
	visibility: visible;
	opacity: 1;
}

li.multi_menu .menu_level2>ul>li {
	position: relative;
}

.pc li.multi_menu .menu_level2>ul>li:hover {
	background-color: #373d44;
}

/* レベル３ */
li.multi_menu .menu_level2>ul>li .menu_level3 {
	overflow: hidden;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 400px;
	width: 0;
	height: 100vh;
	background-color: #373d44;
	opacity: 0;
	transition: all .2s ease-out .2s;
	/*  */
	transform: translate3d(0,0,0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.pc li.multi_menu .menu_level2>ul>li:hover .menu_level3 {
	visibility: visible;
	width: 200px;
	opacity: 1;
}

li.multi_menu .menu_level2>ul>li .menu_level3>ul {
	visibility: hidden;
	left: 0;
	width: 200px;
	height: 100vh;
	opacity: 0;
	transition: all .2s ease 0s;
}

.pc li.multi_menu .menu_level2>ul>li:hover .menu_level3>ul {
	visibility: visible;
	opacity: 1;
}

li.multi_menu .menu_level2>ul>li .menu_level3>ul>li {
	position: relative;
}

.pc li.multi_menu .menu_level2>ul>li .menu_level3>ul>li:hover {
	background-color: #525461;
}

/* UL上アキ設定 */
li.multi_menu:nth-of-type(1)>div>ul {
	margin-top: 110px;
}

li.multi_menu:nth-of-type(1)>div>ul li:nth-of-type(2) ul {
	margin-top: 70px;
}

li.multi_menu:nth-of-type(1)>div>ul li:nth-of-type(3) ul {
	margin-top: 130px;
}

li.multi_menu:nth-of-type(1)>div>ul li:nth-of-type(6) ul {
	margin-top: 280px;
}

li.multi_menu:nth-of-type(2)>div>ul {
	margin-top: 220px;
}

li.multi_menu:nth-of-type(2)>div>ul li:nth-of-type(2) ul {
	margin-top: 220px;
}

li.multi_menu:nth-of-type(2)>div>ul li:nth-of-type(3) ul {
	margin-top: 250px;
}

li.multi_menu:nth-of-type(2)>div>ul li:nth-of-type(4) ul {
	margin-top: 320px;
}

li.multi_menu:nth-of-type(2)>div>ul li:nth-of-type(6) ul {
	margin-top: 360px;
}

li.multi_menu:nth-of-type(3)>div>ul {
	margin-top: 340px;
}

li.multi_menu:nth-of-type(3)>div>ul li:nth-of-type(3) ul {
	margin-top: 270px;
}

li.multi_menu:nth-of-type(4)>div>ul {
	margin-top: 340px;
}

li.multi_menu:nth-of-type(5)>div>ul {
	margin-top: 440px;
}

li.multi_menu:nth-of-type(6)>div>ul {
	margin-top: 440px;
}


/*----------------------------------------
	langPc
-----------------------------------------*/
#langPc {
	width: 200px;
	height: 95px;
	transition: all .2s ease 0s;
}

/* #langPc>dl { */
.pc #langPc>dl:hover {
	background-color: #525461;
}

#langPc>dl dt {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	padding: 14px 0 10px;
	text-align: center;
	cursor: pointer;
}

#langPc>dl dt::before {
	content: '';
	display: inline-block;
	width: 18px;
	height: 18px;
	margin: 0 8px 0 -30px;
	background: url(../img/c_lang_icon01.png) no-repeat left top;
	background-size: contain;
}

#langPc>dl dd {
	display: none;
	visibility: hidden;
	opacity: 0;
}

/* #langPc>dl dd { */
.pc #langPc>dl:hover dd {
	display: block;
	padding-bottom: 11px;
	visibility: visible;
	opacity: 1;
}

/* #langPc>dl dd ul { */
.pc #langPc>dl:hover dd ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	padding-left: 32px;
}

#langPc>dl ul li {
	width: 74px;
}

#langPc>dl ul li:nth-of-type(n+3) {
	margin-top: 2px;
}

#langPc>dl ul li a {
	display: block;
	padding: 5px 0;
	color: #a7a7a4;
	transition: color .1s ease-in-out .0s;
}

.pc #langPc>dl ul li a:hover {
	color: #fff;
}

/*----------------------------------------
	snsPC
-----------------------------------------*/
#snsPC {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	width: 193px;
	padding-top: 24px;
}

#snsPC li a {
	display: flex;
	justify-content: center;
	padding: 8px;
	box-sizing: border-box;
	transition: opacity .1s ease-in-out .0s;
}

.pc #snsPC li a:hover {
	opacity: .5;
}

#snsPC li.yt a img {
	width: 24px;
	height: 20px;
}

#snsPC li.fb a img {
	width: 18px;
	height: 18px;
}

#snsPC li.ig a img {
	width: 19px;
	height: 19px;
}

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

	#multilevelnav,
	#langPc,
	#snsPC {
		display: none;
	}
}

/*----------------------------------------
	menuIcon, menuCheckbox
-----------------------------------------*/
#menuIcon,
#menuCheckbox {
	display: none;
}

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

	/* menuIcon */
	#menuIcon {
		display: block;
		z-index: 2000;
		position: fixed;
		top: 0;
		right: 0;
		width: 58px;
		height: 58px;
		background: #fff;
		transition-duration: .2s;
		transition-timing-function: ease-out;
		cursor: pointer;
		user-select: none;
	}

	#menuIcon span {
		transition-duration: .2s;
		transition-timing-function: ease-out;
	}

	#menuIcon .top,
	#menuIcon .bottom {
		position: absolute;
		display: block;
		top: 25px;
		right: 0;
		left: 0;
		width: 28px;
		height: 1px;
		margin: auto;
		background: #a7a7a4;
		transform: rotate(0deg);
	}

	#menuIcon .bottom {
		transform: translateY(6px);
	}

	#menuCheckbox:checked~#menuIcon {
		background: #373d44;
	}

	#menuCheckbox:checked~#menuIcon .top {
		top: 28px;
		transform: rotate(-45deg) translateY(0px);

	}

	#menuCheckbox:checked~#menuIcon .bottom {
		top: 28px;
		transform: rotate(45deg) translateY(0px);
	}

	/* menuCheckbox */
	#menuCheckbox {
		display: none;
	}

	#menuCheckbox:checked~#nav_drawer {
		transform: translate(-100%);
	}
}

/*----------------------------------------
	nav_drawer
-----------------------------------------*/
#nav_drawer {
	display: none;
}

@media screen and (max-width: 1023px) {
	#nav_drawer {
		position: fixed;
		display: block;
		top: 58px;
		right: -100%;
		width: 100%;
		height: calc(100vh - 58px);
		box-sizing: border-box;
		background: #999;
		transition-property: transform;
		transition-duration: .3s;
		transition-timing-function: ease-out;
		overflow-y: scroll;
		-ms-overflow-style: none;
		/* ie, edge */
		scrollbar-width: none;
		/* firefox */
		z-index: 3000;
	}

	#nav_drawer::-webkit-scrollbar {
		display: none;
		/* chrome, safari */
	}

	/* drwmenu */
	#drwmenu {
		border-bottom: 1px solid #373d44;
	}

	#drwmenu li.dmlevel1 {
		background-color: #fff;
	}

	#drwmenu li.dmlevel2 {
		background-color: #373d44;
	}

	#drwmenu li.dmlevel3 {
		background-color: #525461;
	}

	#drwmenu li.dmlevel3:first-child {
		padding-top: 10px;
	}

	#drwmenu li.dmlevel3:last-child {
		padding-bottom: 11px;
	}

	/* メニュー装飾 + - */
	#drwmenu li label {
		position: relative;
		display: block;
		padding: 15px 20px;
		text-align: center;
		cursor: pointer;
		-moz-user-select: none;
		-webkit-user-select: none;
		-ms-user-select: none;
		user-select: none;
	}

	#drwmenu li label::before {
		content: "";
		position: absolute;
		top: 0;
		right: 22px;
		bottom: 0;
		width: 15px;
		height: 1px;
		margin: auto;
		background-color: #a7a7a4;
	}

	#drwmenu li label::after {
		content: "";
		position: absolute;
		top: 0;
		right: 29px;
		bottom: 0;
		width: 1px;
		height: 15px;
		margin: auto;
		background-color: #a7a7a4;
	}

	#drwmenu li.dmlevel1>label {
		padding: 22px 20px;
	}

	#drwmenu li.dmlevel1>label::before,
	#drwmenu li.dmlevel1>label::after {
		background-color: #373d44;
	}

	/* 非表示チェックボックス */
	#drwmenu li input[type="checkbox"] {
		display: none;
		visibility: hidden;
		margin: 0;
		padding: 0;
		border: none;
		background: none;
		appearance: none;
		outline: none;
	}

	/* メニュー closed */
	#drwmenu li input[type="checkbox"]~div {
		display: none;
		overflow: hidden;
	}

	#drwmenu li.dmlevel3 ul {
		border-bottom: 1px solid #a7a7a4;
	}

	#drwmenu li a {
		display: block;
		padding: 15px 20px;
		color: #fff;
		text-align: center;
		-moz-user-select: none;
		-webkit-user-select: none;
		-ms-user-select: none;
		user-select: none;
	}

	#drwmenu li.dmlevel1>label {
		border-top: 1px solid #373d44;
		letter-spacing: 0.1em;
	}

	#drwmenu li.dmlevel1>a {
		border-top: 1px solid #373d44;
		padding: 23px 20px 22px;
		color: #373d44;
		letter-spacing: 0.1em;
	}

	#drwmenu li.dmlevel2>label,
	#drwmenu li.dmlevel2>a {
		border-top: 1px solid #a7a7a4;
	}

	#drwmenu li.dmlevel2:first-child>a {
		border-top: none;
	}

	#drwmenu li.dmlevel3>a {
		padding: 11px 20px 12px;
	}

	/* + <--> - */
	#drwmenu li input[id^="drwmenu"]~label::after {
		transition-property: transform;
		transition-duration: .2s;
		transition-timing-function: ease-out;
		transition-delay: .1s;
	}
	#drwmenu li input[id^="drwmenu"]:checked~label::after {
		transform: rotate(-90deg);
	}
}

/*----------------------------------------
	snsIcon, snsCheckbox
-----------------------------------------*/
#snsIcon,
#snsCheckbox {
	display: none;
}

@media screen and (max-width: 1023px) {
	/* snsIcon */
	#snsIcon {
		display: block;
		z-index: 2000;
		position: fixed;
		top: 0;
		right: 58px;
		width: 58px;
		height: 58px;
		background: #fff url(/img/c_lang_icon01.png) no-repeat center center;
		background-size: 15px 15px;
		transition-duration: .2s;
		transition-timing-function: ease-out;
		cursor: pointer;
		user-select: none;
	}

	#snsIcon span {
		transition-duration: .2s;
		transition-timing-function: ease-out;
	}

	#snsIcon .top,
	#snsIcon .bottom {
		position: absolute;
		display: block;
		top: 28px;
		right: 0;
		left: 0;
		width: 28px;
		height: 1px;
		margin: auto;
		background-color: #a7a7a4;
		opacity: 0;
		transform: rotate(0deg);
	}

	#snsIcon .top {
		transform: rotate(-45deg) translateY(0px);
	}

	#snsIcon .bottom {
		transform: rotate(45deg) translateY(0px);
	}

	#snsCheckbox:checked~#snsIcon {
		background: #525461 none no-repeat center center;
	}

	#snsCheckbox:checked~#snsIcon .top {
		opacity: 1;
		transform: rotate(45deg) translateY(0px);
	}

	#snsCheckbox:checked~#snsIcon .bottom {
		opacity: 1;
		transform: rotate(-45deg) translateY(0px);
	}

	/* snsCheckbox */
	#snsCheckbox {
		display: none;
	}

	#snsCheckbox:checked~#langSp {
		height: 80px;
	}
}

/*----------------------------------------
	langSp
-----------------------------------------*/
#langSp {
	display: none;
}

@media screen and (max-width: 1023px) {
	/* langSp */
	#langSp {
		display: flex;
		overflow: hidden;
		height: 0;
		background: #525461;
		transition: all .2s ease-out 0s;
	}

	#langSp ul {
		display: flex;
		justify-content: center;
		width: 100%;
		padding: 10px 0 15px;
	}

	#langSp ul li {
		position: relative;
		width: auto;
		text-align: center;
		letter-spacing: 0.09em;
		-ms-user-select: none;
		user-select: none;
	}

	#langSp ul li+li {
		margin-left: 19px;
	}

	#langSp ul li a {
		display: block;
		padding: 23px 10px;
		color: #a7a7a4;
	}
}

/*----------------------------------------
snsSP
-----------------------------------------*/
#snsSP {
	display: none;
}

@media screen and (max-width: 1023px) {
	#snsSP {
		display: flex;
		justify-content: center;
		align-items: flex-start;
		width: 100%;
		padding: 19px 0 100px;
		background-color: #fff;
	}

	#snsSP li.fb {
		margin: 0 19px;
	}

	#snsSP li a {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 50px;
		padding: 10px;
		box-sizing: border-box;
	}

	#snsSP li.yt a img {
		width: 30px;
		height: 24px;
	}

	#snsSP li.fb a img {
		width: 23px;
		height: 23px;
	}

	#snsSP li.ig a img {
		width: 25px;
		height: 24px;
	}
}

/*----------------------------------------
	breadcrumb
-----------------------------------------*/
ol#breadcrumb {
	display: flex;
	flex-wrap: wrap;
	max-width: 1240px;
	width: calc(100% - 80px);
	margin: 56px auto 0;
	padding-right: 100px;
	box-sizing: border-box;
}

ol#breadcrumb li:nth-child(n+2)::before {
	content: '';
	display: inline-block;
	width: 1px;
	height: 14px;
	margin: 0 14px -4px;
	background-color: #a7a7a4;
}

ol#breadcrumb li a {
	color: #a7a7a4;
	transition: opacity .1s ease-in-out .0s;
}

.pc ol#breadcrumb li a:hover {
	opacity: .5;
}

@media screen and (max-width: 1023px) {
	ol#breadcrumb {
		width: calc(100% - 40px);
		margin: 28px auto 0;
		padding-right: 50px;
		box-sizing: border-box;
	}

	ol#breadcrumb li:nth-child(n+2)::before {
		height: 12px;
		margin: 0 11px -2px;
	}
}

/*----------------------------------------
	content
-----------------------------------------*/
#content {
	width: calc(100% - 200px);
	margin: auto 0 auto auto;
}

@media screen and (max-width: 1023px) {
	#content {
		width: 100%;
		margin: 0;
		padding-top: 58px;
	}
}

/*----------------------------------------
	decoration（右肩・花菱）
-----------------------------------------*/
p.decoration {
	position: absolute;
	top: 82px;
	right: 53px;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}

p.decoration::before {
	content: '';
	display: block;
	position: absolute;
	top: -52px;
	right: -13px;
	width: 47px;
	height: 36px;
	background: url(/img/c_icon_hanabishi01.png) no-repeat right top;
	background-size: 47px 36px;
}

p.decoration span {
	display: inline-block;
	margin-top: 4px;
}

@media screen and (max-width: 1023px) {
	p.decoration {
		top: 100px;
		right: 23px;
	}

	p.decoration::before {
		top: -26px;
		right: -3px;
		width: 24px;
		height: 18px;
		background: url(/img/c_icon_hanabishi01.png) no-repeat right top;
		background-size: 24px 18px;
	}

	p.decoration span {
		margin-top: 3px;
	}
}

/*----------------------------------------
	contentsmenu
-----------------------------------------*/
#contentsmenu {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	max-width: 1240px;
	margin: 145px auto 0;
	padding: 0 40px;
	/*box-sizing: border-box;*/
}

#contentsmenu h1 {
	position: relative;
	width: 100%;
	margin: auto;
	text-align: center;
	letter-spacing: 0.18em;
}

#contentsmenu h1::after {
	content: '';
	display: block;
	position: absolute;
	right: 0;
	left: 0;
	width: 47px;
	height: 36px;
	margin: 18px auto auto;
}

/* about */
#contentsmenu.orange h1::after {
	background: url(/img/c_icon_hanabishi01.png) no-repeat left top;
	background-size: contain;
}

/* access */
#contentsmenu.blue h1::after {
	background: url(/img/c_icon_hanabishi02.png) no-repeat left top;
	background-size: contain;
}

/* visit */
#contentsmenu.bluegreen h1::after {
	background: url(/img/c_icon_hanabishi03.png) no-repeat left top;
	background-size: contain;
}

/* nature */
#contentsmenu.green h1::after {
	background: url(/img/c_icon_hanabishi04.png) no-repeat left top;
	background-size: contain;
}

/* ritual */
#contentsmenu.brown h1::after {
	background: url(/img/c_icon_hanabishi05.png) no-repeat left top;
	background-size: contain;
}

/* sengu */
#contentsmenu.purple h1::after {
	background: url(/img/c_icon_hanabishi06.png) no-repeat left top;
	background-size: contain;
}

/* c_icon_hanabishi07.png はpress用なので #contentsmenu 内での設定は上記まで */

#contentsmenu h1 a {
	display: inline-block;
	transition: all .1s ease-in-out .0s;
}

#contentsmenu h1 a:hover {
	opacity: .5;
}

#contentsmenu h1 a span {
	display: block;
}

#contentsmenu h1 a span+span {
	margin-top: 15px;
}

/* カラーバリエーション */
#contentsmenu.orange h1 a span+span {
	color: #ec4414;
}

#contentsmenu.blue h1 a span+span {
	color: #4380ff;
}

#contentsmenu.bluegreen h1 a span+span {
	color: #15b5b9;
}

#contentsmenu.green h1 a span+span {
	color: #62a100;
}

#contentsmenu.brown h1 a span+span {
	color: #cc9e00;
}

#contentsmenu.purple h1 a span+span {
	color: #be627c;
}

#contentsmenu ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	width: calc((100% - 40px)/2);
	margin-top: 113px;
}

#contentsmenu ul li {
	width: calc((100% - 40px)/2);
	box-sizing: border-box;
	letter-spacing: 0.1em;
}

#contentsmenu ul li.colored {
	width: 100%;
	margin-bottom: 30px;
	background-color: #f6f4f1;
}

/* bluegreen,brown,purpleカスタム */
#contentsmenu.bluegreen ul li.colored,
#contentsmenu.brown ul li.colored,
#contentsmenu.purple ul li.colored {
	margin-bottom: 0;
}

#contentsmenu ul li:not(.colored) {
	border-bottom: 1px solid #373d44;
}

#contentsmenu ul li:not(.colored):nth-of-type(2),
#contentsmenu ul li:not(.colored):nth-of-type(3) {
	border-top: 1px solid #373d44;
}

#contentsmenu ul li.colored a {
	padding: 0 50px 0 0;
}

#contentsmenu ul li:not(.colored) a {
	height: 58px;
	padding: 0 40px 0 20px;
}

#contentsmenu ul li.colored figure {
	width: 180px;
}

#contentsmenu ul li.colored figure+span {
	display: block;
	width: calc(100% - 180px);
	padding-left: 40px;
	box-sizing: border-box;

}

#contentsmenu ul.coloredall {
	justify-content: flex-start;
	width: 100%;
	margin-top: 60px;
}

/* PC3列 */
#contentsmenu ul.coloredall li {
	width: calc((100% - 80px)/3);
	margin-left: 40px;
	border: none !important;
	background-color: #f6f4f1;
}

.isIE11 #contentsmenu ul.coloredall li {
	width: calc((100% - 81px)/3);
}

#contentsmenu ul.coloredall li:nth-of-type(3n+1) {
	margin-left: 0;
}

#contentsmenu ul.coloredall li:nth-of-type(n+4) {
	margin-top: 20px;
}

/* PC2列 */
#contentsmenu ul.coloredall.column2 {
	margin-top: 20px;
}

#contentsmenu ul.coloredall.column2 li {
	width: calc((100% - 40px)/2);
	margin-left: 40px;
	border: none !important;
	background-color: #f6f4f1;
}

#contentsmenu ul.coloredall.column2 li:nth-of-type(2n+1) {
	margin-left: 0;
}

#contentsmenu ul.coloredall.column2 li:nth-of-type(n+3) {
	margin-top: 20px;
}

#contentsmenu ul.coloredall li a {
	height: 60px;
	padding: 0 40px 0 0;
}

#contentsmenu ul.coloredall li figure {
	width: 90px;
}

#contentsmenu ul.coloredall li figure+span {
	display: block;
	width: calc(100% - 90px);
	padding-left: 27px;
	box-sizing: border-box;
}

#contentsmenu ul li a {
	display: flex;
	align-items: center;
	position: relative;
	transition: all .1s ease-in-out .0s;
}

#contentsmenu ul li a::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 22px;
	bottom: 0;
	height: 10px;
	width: 10px;
	margin: auto;
	border-top: 1px solid transparent;
	border-right: 1px solid transparent;
	transform: rotate(45deg);
}

/* #contentsmenu バナー */
#contentsmenu ul.c_menu_br {
	width: 100%;
	margin-top: 20px;
}

#contentsmenu ul.c_menu_br li {
	border: none !important;
}

#contentsmenu ul.c_menu_br.column3 li {
	width: calc((100% - 80px)/3);
}

#contentsmenu ul.c_menu_br li a {
	height: auto;
	padding: 0;
}

#contentsmenu ul.c_menu_br li a::after {
	content: none;
}

#contentsmenu ul.c_menu_br li a figure {
	position: relative;
	width: 100%;
}

#contentsmenu ul.c_menu_br li a figure span {
	display: block;
	position: absolute;
	top: calc(50% - 10px);
	right: 0;
	left: 0;
	margin: auto;
	text-align: center;
}

/* バナー内のテキストが2行のとき */
#contentsmenu ul.c_menu_br li a figure span.word {
	top: calc(50% - 20px);
}

#contentsmenu ul.c_menu_br li a figure span+span {
	margin-top: 15px;
}

/* カラーバリエーション */
#contentsmenu.orange ul li a::after {
	border-top-color: #ec4414;
	border-right-color: #ec4414;
}

#contentsmenu.blue ul li a::after {
	border-top-color: #4380ff;
	border-right-color: #4380ff;
}

#contentsmenu.bluegreen ul li a::after {
	border-top-color: #15b5b9;
	border-right-color: #15b5b9;
}

#contentsmenu.green ul li a::after {
	border-top-color: #62a100;
	border-right-color: #62a100;
}

#contentsmenu.brown ul li a::after {
	border-top-color: #cc9e00;
	border-right-color: #cc9e00;
}

#contentsmenu.purple ul li a::after {
	border-top-color: #be627c;
	border-right-color: #be627c;
}

.pc #contentsmenu ul li a:hover {
	background-color: #696b76;
	color: #fff !important;
	/* opacity: .5; */
}

#contentsmenu ul li a:hover::after {
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	/* animation: simple_crossfade .5s forwards alternate; */
}

#contentsmenu ul li a figure {
	background-color: #fff;
}

#contentsmenu ul li a figure img {
	transition: all .1s ease-in-out .0s;
}

.pc #contentsmenu ul li a:hover figure img {
	opacity: .5;
}

@keyframes slide_rotateXanime {
	0% {
		opacity: 0;
		transform: translateX(-100px) rotateX(0deg) rotateZ(45deg);
	}

	15% {
		opacity: 0;
		transform: translateX(-100px) rotateX(0deg) rotateZ(45deg);
	}

	45% {
		opacity: 1;
	}

	100% {
		transform: translateX(0) rotateX(180deg) rotateZ(45deg);
	}
}

@keyframes bounce_rotateXanime {
	0% {
		transform: translateX(0) rotateX(0deg) rotateZ(45deg);
	}

	15% {
		transform: translateX(5px) rotateX(0deg) rotateZ(45deg);
	}

	100% {
		transform: translateX(0) rotateX(180deg) rotateZ(45deg);
	}
}

@keyframes simple_rotateXanime {
	0% {
		transform: translateX(0) rotateX(0deg) rotateZ(45deg);
	}

	100% {
		transform: translateX(0) rotateX(180deg) rotateZ(45deg);
	}
}

@media screen and (max-width: 1023px) {
	#contentsmenu {
		display: block;
		width: 100%;
		margin: 100px auto 0;
		padding: 0 20px;
		box-sizing: border-box;
	}

	#contentsmenu h1::after {
		width: 23px;
		height: 18px;
		margin: 13px auto auto;
	}

	#contentsmenu h1 a span+span {
		margin-top: 8px;
	}

	#contentsmenu ul {
		width: 100%;
		margin-top: 61px;
	}

	#contentsmenu ul+ul {
		margin-top: 29px;
	}

	/* bluegreen,brown,purple */
	#contentsmenu.bluegreen ul+ul,
	#contentsmenu.brown ul+ul,
	#contentsmenu.purple ul+ul {
		margin-top: 10px;
	}

	#contentsmenu ul li {
		width: calc((100% - 15px)/2);
	}

	#contentsmenu ul li.colored {
		width: 100%;
		margin-bottom: 20px;
	}

	#contentsmenu ul li.colored a {
		padding: 0 18px 0 0;
	}

	#contentsmenu ul li:not(.colored) a {
		height: 49px;
		padding: 0 18px 0 9px;
	}

	#contentsmenu ul li.colored figure {
		width: 120px;
	}

	#contentsmenu ul li.colored figure+span {
		display: block;
		width: calc(100% - 120px);
		padding-left: 20px;
	}

	#contentsmenu ul.coloredall {
		display: block;
		margin-top: 30px;
	}

	#contentsmenu ul.coloredall li {
		width: 100%;
		margin-left: 0;
	}

	#contentsmenu ul.coloredall li:nth-of-type(n+4) {
		margin-top: 0;
	}

	#contentsmenu ul.coloredall li+li {
		width: 100%;
		margin-top: 10px !important;
	}

	/* PC2列 */
	#contentsmenu ul.coloredall.column2 {
		margin-top: 10px;
	}

	#contentsmenu ul.coloredall.column2 li {
		width: 100%;
		margin-left: 0;
	}

	#contentsmenu ul.coloredall li a {
		height: auto;
		padding: 0 18px 0 0;
	}

	#contentsmenu ul.coloredall li figure {
		width: 75px;
	}

	#contentsmenu ul.coloredall li figure+span {
		padding-left: 20px;
	}

	#contentsmenu ul li a::after {
		right: 11px;
		height: 5px;
		width: 5px;
		border-top-width: 1px;
		border-right-width: 1px;
		transform: rotate(45deg);
	}

	/* #contentsmenu バナー */
	#contentsmenu ul.c_menu_br {
		margin-top: 20px;
	}

	#contentsmenu ul.c_menu_br li,
	#contentsmenu ul.c_menu_br.column3 li {
		width: 100%;
		margin-left: 0;
	}

	#contentsmenu ul.c_menu_br li:not(.colored) a {
		height: auto;
		padding: 0;
	}

	#contentsmenu ul.c_menu_br li+li {
		margin-top: 10px !important;
	}

	/* バナー内のテキストが2行のとき */
	#contentsmenu ul.c_menu_br li a figure span.word {
		top: calc(50% - 15px);
	}

}

/*----------------------------------------
	relatedpage
-----------------------------------------*/
#relatedpage {
	margin-top: 100px;
}

#relatedpage h1 {
	position: relative;
	left: 50%;
	width: 30px;
	height: 200px;
	transform: translateX(-50%);
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}

#relatedpage>p {
	width: 420px;
	margin: 30px auto 0;
	padding-top: 36px;
	border-top: 1px solid #373d44;
	text-align: center;
}

#relatedpage ul {
	display: flex;
	justify-content: space-between;
	margin-top: 57px;
}

#relatedpage ul li {
	width: calc((100% - 10px)/3);
}

#relatedpage ul li a {
	display: block;
	transition: opacity .1s ease-in-out .0s;
}

.pc #relatedpage ul li a:hover {
	opacity: .5;
}

#relatedpage ul li a figure {
	position: relative;
}

#relatedpage ul li a figure span {
	display: block;
	position: absolute;
	top: 16px;
	right: 0;
	left: 0;
	margin: auto;
	text-align: center;
}

#relatedpage ul li a figure span span {
	top: 27px;
}

#relatedpage ul li a p {
	padding: 22px 28px 13px;
}

@media screen and (max-width: 1023px) {
	#relatedpage {
		margin-top: 50px;
		padding: 0;
	}

	#relatedpage h1 {
		width: 23px;
		height: 170px;
	}

	#relatedpage>p {
		width: calc(100% - 60px);
		margin: 16px auto 0;
		padding-top: 25px;
		line-height: 1.8;
	}

	#relatedpage ul {
		display: block;
		margin-top: 26px;
	}

	#relatedpage ul li {
		width: 100%;
	}

	#relatedpage ul li+li {
		margin-top: 45px;
	}

	#relatedpage ul li a figure span {
		top: 11px;
	}

	#relatedpage ul li a figure span span {
		top: 20px;
	}

	#relatedpage ul li a p {
		padding: 13px 20px 0;
		line-height: 1.75;
	}
}


/*----------------------------------------
	aside
-----------------------------------------*/
aside {
	margin-top: 100px;
	padding: 0 40px;
	background-color: #fff;
}

aside>ul {
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
	flex-wrap: wrap;
	max-width: 1240px;
	width: 100%;
	margin: auto;
	box-sizing: border-box;
}

aside>ul>li {
	width: calc((100% - 40px) / 2);
	margin: 0 !important;
	border-top: 1px solid #434444;
	border-bottom: 1px solid #373d44;
}

aside>ul>li:nth-of-type(1) {
	margin-right: 40px !important;
}

aside>ul>li:last-child {
	border-bottom: none;
}

aside>ul>li:last-child {
	border-bottom: none;
}

aside>ul>li>a {
	display: flex;
	align-items: center;
	height: 118px;
	padding: 0 18px;
	color: #373d44 !important;
	letter-spacing: 0.1em;
	transition: all .1s ease-in-out .0s;
}

.pc aside>ul>li>a:hover {
	background-color: #696b76;
	color: #fff !important;
}

aside.sitetop li.topics {
	display: none;
}

aside.sitetop>ul>li.sns {
	border-top: 1px solid #434444;
}

aside>ul>li.sns {
	border-top: none;
}

aside li.sns {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 118px;
	margin: auto;
	margin-right: 0;
}

aside li.sns>span {
	display: inline-block;
	padding-left: 18px;
	letter-spacing: 0.1em;
}

aside li.sns>span span {
	display: inline-block;
}

aside li.sns ul {
	display: flex;
	align-items: flex-start;
	margin-right: 10px;
}

aside .sns ul li.fb {
	margin: 0 2px 0 3px;
}

aside li.sns ul li a {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 50px;
	padding: 10px;
	box-sizing: border-box;
	transition: opacity .1s ease-in-out .0s;
}

.pc aside li.sns ul li a:hover {
	opacity: .5;
}

aside .sns ul li.yt a {
	padding-top: 9px;
}

aside .sns ul li.fb a {
	padding-top: 8px;
}

aside .sns ul li.ig a {
	padding-top: 9px;
}

aside li.sns ul li.yt a img {
	width: 37px;
}

aside .sns ul li.fb a img {
	width: 28px;
}

aside .sns ul li.ig a img {
	width: 29px;
}

@media screen and (max-width: 1023px) {
	aside {
		margin-top: 60px;
		padding: 0 20px;
	}

	aside>ul>li {
		width: 100%;
		border-bottom: none;
	}

	aside>ul>li:nth-of-type(1) {
		margin-right: 0 !important;
	}

	aside>ul>li.sns {
		border-top: 1px solid #434444;
	}

	aside>ul>li>a {
		height: 59px;
		padding: 0 3px 0 9px;
	}

	aside li.sns {
		height: 59px;
	}

	aside li.sns>span {
		padding-left: 9px;
	}

	aside li.sns ul {
		margin-right: 0;
	}

	aside .sns ul li.fb {
		margin: 0 -1px 0 -1px;
	}

	aside li.sns ul li.yt a img {
		width: 30px;
	}

	aside .sns ul li.fb a img {
		width: 23px;
	}

	aside .sns ul li.ig a img {
		width: 24px;
	}
}


/*----------------------------------------
footer
-----------------------------------------*/
footer {
	width: calc(100% - 200px);
	margin: 100px 0 auto auto;
	padding: 0 100px;
	box-sizing: border-box;
	background-color: #f6f4f1;
}

footer a {
	color: #373d44 !important;
	transition: opacity .1s ease-in-out .0s;
}

.pc footer a:hover {
	opacity: .3;
}


@media screen and (max-width: 1599px) {
	footer {
		padding: 0 40px;
	}
}

@media screen and (max-width: 1023px) {
	footer {
		width: 100%;
		margin-top: 33px;
		padding: 0 20px;
	}
}


/*----------------------------------------
pagetop
-----------------------------------------*/
footer>#pagetop {
	z-index: 1000;
	display: none;
	position: fixed;
	right: 30px;
	bottom: 80px;
	width: 90px;
	height: 90px;
	border-radius: 50%;
	background: #d9d5cf;
	cursor: pointer;
	transition: background-color .1s ease-in-out 0s;
}

footer>#pagetop::before {
	content: "";
	position: absolute;
	top: 6px;
	right: 0;
	bottom: 0;
	left: 0;
	width: 4px;
	height: 48px;
	margin: auto;
	background-color: #fff;
}

footer>#pagetop::after {
	content: "";
	position: absolute;
	top: 24px;
	left: calc(50% - 12px);
	width: 20px;
	height: 20px;
	border-top: 4px solid #fff;
	border-right: 4px solid #fff;
	transform: rotate(-45deg);
}

.pc footer>#pagetop:hover {
	background: #373d44;
}

@media screen and (max-width: 1023px) {
	footer>#pagetop {
		right: 20px;
		bottom: 30px;
		width: 46px;
		height: 46px;
	}

	footer>#pagetop::before {
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: 2px;
		height: 25px;
	}

	footer>#pagetop::after {
		top: 13px;
		left: calc(50% - 6px);
		width: 10px;
		height: 10px;
		border-top: 2px solid #fff;
		border-right: 2px solid #fff;
		transform: rotate(-45deg);
	}
}

/*----------------------------------------
	fmenu
-----------------------------------------*/
#fmenu {
	display: flex;
	max-width: 1240px;
	margin: auto;
	padding: 96px 0 60px;
	box-sizing: border-box;
}

#fmenu>div {
	width: 25%;
	padding-right: 40px;
	box-sizing: border-box;
}

#fmenu>div:nth-of-type(1) {
	max-width: 261px;
	/* width: 21%; */
}

#fmenu>div:nth-of-type(2) {
	max-width: 267px;
	/* width: 21.5%; */
}

#fmenu>div:nth-of-type(3) {
	max-width: 232px;
	/* width: 18.8%; */
}

#fmenu>div:nth-of-type(4) {
	padding-right: 0;
}

#fmenu>div dl dd {
	margin-top: 19px;
}

#fmenu>div dl dd:nth-of-type(1) {
	margin-top: 33px;
}

#fmenu>div ul li:not(:nth-of-type(1)) {
	margin-top: 30px;
}

#fmenu>div ul li span {
	display: inline-block;
}

#fmenu>div dl+dl,
#fmenu>div ul+p {
	margin-top: 71px;
}

#fmenu>div ul+p~p {
	margin-top: 30px;
}

@media screen and (max-width: 1023px) {
	#fmenu {
		display: none;
	}

	#fmenu>div {
		width: 28%;
	}

	#fmenu>div:nth-of-type(4) {
		width: 19%;
	}
}

/*----------------------------------------
	flink
-----------------------------------------*/
#flink {
	display: flex;
	max-width: 1240px;
	margin: auto;
	padding: 32px 0 32px;
	box-sizing: border-box;
}

#flink li {
	margin-right: 70px;
	letter-spacing: 0.09em;
}

#flink li:last-child {
	margin-right: 0;
}

@media screen and (max-width: 1023px) {
	#flink {
		flex-wrap: wrap;
		padding: 47px 0 32px;
	}

	#flink li {
		width: 100%;
	}

	#flink li+li {
		margin-top: 26px;
	}
}

/*----------------------------------------
	ftext
-----------------------------------------*/
#ftext {
	display: flex;
	align-items: flex-end;
	max-width: 1240px;
	margin: auto;
	padding: 19px 0 98px;
	box-sizing: border-box;
}

#ftext dl dt {
	letter-spacing: 0.09em;
}

#ftext dl dd {
	margin-top: 11px;
}

#ftext dl+p {
	margin: 0 0 5px 35px;
}

@media screen and (max-width: 1023px) {
	#ftext {
		display: block;
		padding: 25px 0 49px;
	}

	#ftext dl {
		width: 100%;
	}

	#ftext dl dd {
		margin-top: 7px;
	}

	#ftext dl+p {
		margin: 13px 0 0;
		letter-spacing: -0.035em;
	}
}


/*----------------------------------------
	vertical_writing
-----------------------------------------*/
.vertical_writing {
	display: flex;
}

.vertical_writing p {
	margin: auto;
	letter-spacing: 0.06em;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}

@media screen and (max-width: 1023px) {
	.vertical_writing {
		margin-top: 10px;
	}
}


/*----------------------------------------
	glossary_modal
-----------------------------------------*/
.glossary_modal {
	display: none;
	z-index: 10000;
}

.glossary_modal .modalbody {
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10001;
	position: fixed;
	right: 0;
	bottom: 0;
	/* width: 100vw;
	height: 100vh; */
	width: calc(100% - 200px);
	/* background: rgba(0, 0, 0, 0.2); */
}

.glossary_modal .modalwindow {
	position: relative;
	z-index: 10002;
	width: 100%;
}

/* 閉じるボタン */
.glossary_modal .modal_close {
	display: block;
	position: absolute;
	width: 42px;
	height: 42px;
	top: 28px;
	right: 50%;
	margin-right: -48%;
	cursor: pointer;
	/* transition: all .1s ease-in-out .0s; */
}

.glossary_modal .modal_close::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 59px;
	height: 2px;
	margin: auto;
	margin-left: -9px;
	background-color: #ec4414;
	transform: rotate(45deg);
	transition: all .1s ease-in-out .0s;
}

.glossary_modal .modal_close::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 59px;
	height: 2px;
	margin: auto;
	margin-left: -9px;
	background-color: #ec4414;
	transform: rotate(-45deg);
	transition: all .1s ease-in-out .0s;
}

.pc .glossary_modal .modal_close:hover::before {
	background-color: #696b76;
}

.pc .glossary_modal .modal_close:hover::after {
	background-color: #696b76;
}

.glossary_modal .modalinner {
	width: 100%;
	border-top: 2px solid #ec4414;
	background-color: #f2f2f1;
}

.glossary_modal .modalcontent {
	max-width: 1000px;
	width: calc(100% - 80px);
	margin: auto;
	padding: 50px 0 50px;
}

/* コンテンツテキスト位置合わせ */
.modalcontent .font16_12 {
	margin-top: 20px;
}

/* 色変え用 */
.glossary_modal.navy .modal_close::before {
	background-color: #35439e;
}

.glossary_modal.navy .modal_close::after {
	background-color: #35439e;
}

.glossary_modal.navy .modalinner {
	width: 100%;
	border-top-color: #35439e;
}

@media screen and (max-width: 1023px) {
	.glossary_modal .modalbody {
		width: 100%;
	}

	.glossary_modal .modalcontent {
		width: calc(100% - 60px);
		padding: 25px 0 25px;
	}

	/* 閉じるボタン */
	.glossary_modal .modal_close {
		width: 42px;
		height: 42px;
		top: 5px;
		right: 3px;
		margin-right: 0;
	}

	.glossary_modal .modal_close::before {
		width: 29px;
		height: 1px;
		margin-left: 5px;
	}

	.glossary_modal .modal_close::after {
		width: 29px;
		height: 1px;
		margin-left: 5px;
	}

	.glossary_modal .modalinner {
		border-top-width: 1px;
	}

	/* コンテンツテキスト位置合わせ */
	.modalcontent .font16_12 {
		margin-top: 10px;
		line-height: 2;
	}
}

/*----------------------------------------
	swiper-container
-----------------------------------------*/
.swiper-container {
	padding-bottom: 41px !important;
}

.swiper-container .swiper-slide {
	width: 100%;
	height: auto;
}

.swiper-container .swiper-pagination {
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
	right: 0 !important;
	bottom: 0 !important;
	left: auto !important;
}

.swiper-container .swiper-pagination .swiper-pagination-bullet {
	position: relative;
	width: 40px;
	height: 40px;
	border-radius: initial;
	background-color: transparent;
	opacity: 1;
	outline: none;
}

.swiper-container .swiper-pagination .swiper-pagination-bullet::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 40px;
	height: 1px;
	margin: auto;
	border-bottom: 1px solid #fff;
	border-radius: initial;
	background-color: #a7a7a5;
	opacity: 1;
}

.swiper-container .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active::before {
	height: 2px;
	background-color: #363d45;
}

@media screen and (max-width: 1023px) {
	.swiper-container .swiper-slide {
		width: 100%;
		height: auto;
	}

	.swiper-container .swiper-pagination {
		justify-content: center;
	}
}

/*----------------------------------------
	c_banners
-----------------------------------------*/
.c_banners {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin-top: 40px;
}

.c_banners a {
	display: block;
	height: 100%;
}

.c_banners a figure img {
	transition: all .1s ease-in-out .0s;
}

/* 画像2枚 */
.c_banners a figure.twophotos img {
	width: 50%;
}

.pc .c_banners a:hover figure img {
	opacity: .5;
}

.c_banners li {
	width: calc((100% - 40px)/2);
	/* box-shadow: 0 30px 30px 10px #ebebeb; */
}

.c_banners li .font20_18 {
	display: flex;
	position: relative;
	margin: 25px 0 0 -2px;
	transition: color .1s ease-in-out .0s;
}

.pc .c_banners li a:hover .font20_18 {
	color: #9b9ea1;
}


.c_banners li .font20_18 .blank::before {
	bottom: 10px;
}

.c_banners li .font20_18 .blank::after {
	bottom: 13px;
}

.c_banners li .font14_12 {
	padding: 16px 0 20px;
}

@media screen and (max-width: 1023px) {
	.c_banners {
		margin-top: 50px;
	}

	.c_banners li {
		width: 100%;
	}

	.c_banners li+li {
		margin-top: 36px;
	}

	.c_banners li .font20_18 {
		margin: 14px 0 0 -1px;
		padding-right: 27px;
	}

	.c_banners li .font20_18 .blank {
		padding-right: 27px;
	}

	.c_banners li .font20_18 .blank::before {
		bottom: 7px;
	}

	.c_banners li .font20_18 .blank::after {
		bottom: 10px;
	}

	.c_banners li .font14_12 {
		padding: 10px 0 10px;
		line-height: 1.8;
	}
}

/*----------------------------------------
	ytbox
-----------------------------------------*/
.ytbox>div {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

.ytbox>div iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

@media screen and (max-width: 1023px) {
	.ytbox {
		width: 100%;
	}
}