/* コア */
.sm{box-sizing:border-box;position:relative;z-index:9998;-webkit-tap-highlight-color:rgba(0,0,0,0);}
.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;}
.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right;}
.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0;}
.sm ul{display:none;}
.sm li,.sm a{position:relative;}
.sm a{display:block;}
.sm a.disabled{cursor:default;}
.sm::after{content:"";display:block;height:0;font:0px/0 serif;clear:both;overflow:hidden;}
.sm *,.sm *::before,.sm *::after{box-sizing:inherit;}

/* 本体 */
/*.sm-custom { background: #fff; }*/
/*.sm-custom a, .sm-custom a:hover, .sm-custom a:focus, .sm-custom a:active { color: #333; padding: 1rem 0.5rem; }*/
.sm-custom a { color: #333; padding: 0.5rem; word-break:break-all; }
/*.sm-custom a.current { font-weight: bold; }*/
.sm-custom a.disabled { color: #ccc; }
@media (max-width: 960px) {
	.sm-custom a { padding-right: 50px; }
	.sm-custom a .sub-arrow {
		margin: auto 0;
		position: absolute;
		top: 0;
		right: 5px;
		bottom: 0;
		width: 34px;
		height: 34px;
		overflow: hidden;
		font: bolder 14px/34px monospace !important;
		text-align: center;
		text-shadow: none;
		background-color: rgba(255,255,255,0.25);
		border-radius: 4px;
	}
	.sm-custom a .sub-arrow::before {
		font-family: FontAwesome;
		content: "\f107";
		/*color: #fff;*/
		font-size: 1rem;
		margin: auto;
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
	}
	.sm-custom a.highlighted .sub-arrow::before { content: "\f106"; }
	.sm-custom a span:not([class]) { display: none!important; }
	ul.sm-custom { margin-top: 20px; }
	.sm-custom > li { border-bottom: 1px solid rgba(0,0,0,0.1); background-color: #fff; }
	.sm-custom > li:first-child { border-top: none; }
}
/*.sm-custom li { border-top: 1px solid rgba(0,0,0,0.2); background-color: #fff; }
.sm-custom > li:first-child { border-top: none; }*/

.sm-custom ul { background-color: rgba(255,255,255,1); /*font-size: 0.85rem!important; */left: 0; right: 0; margin: 0 auto; }
.sm-custom ul a, .sm-custom ul a:hover, .sm-custom ul a:focus, .sm-custom ul a:active { border-left: 0.5rem solid transparent; }
.sm-custom ul ul a, .sm-custom ul ul a:hover, .sm-custom ul ul a:focus, .sm-custom ul ul a:active { border-left: 1rem solid transparent; }
.sm-custom ul ul ul a, .sm-custom ul ul ul a:hover, .sm-custom ul ul ul a:focus, .sm-custom ul ul ul a:active { border-left: 1.5rem solid transparent; }
.sm-custom ul ul ul ul a, .sm-custom ul ul ul ul a:hover, .sm-custom ul ul ul ul a:focus, .sm-custom ul ul ul ul a:active { border-left: 2rem solid transparent; }
.sm-custom ul ul ul ul ul a, .sm-custom ul ul ul ul ul a:hover, .sm-custom ul ul ul ul ul a:focus, .sm-custom ul ul ul ul ul a:active { border-left: 2.5rem solid transparent; }

/* PC 版だけに適用 */
@media (min-width: 960px) {
	/* サブメニューの幅を親から独立させる */
	.sm-custom ul {
		left: auto !important;     /* 親の中央揃えを解除 */
		right: auto !important;
		width: auto !important;    /* 幅を自動に */
		min-width: 260px !important; /* 必要なら最低幅 */
		white-space: normal !important; /* 折り返し可能に */
	}
	.sm-custom > li > a { color: #fff; border-radius: 100px; margin: 0.5rem 0.25rem; }
	.sm-custom > li:nth-of-type(1) > a { background-color: #E94B3C; }
	.sm-custom > li:nth-of-type(2) > a { background-color: #F28F1C; }
	.sm-custom > li:nth-of-type(3) > a { background-color: #F7D842; }
	.sm-custom > li:nth-of-type(4) > a { background-color: #7BCB4A; }
	.sm-custom > li:nth-of-type(5) > a { background-color: #0095B6; }
	.sm-custom > li:nth-of-type(6) > a { background-color: #2A5BD7; }
	.sm-custom > li:nth-of-type(7) > a { background-color: #8A3EBF; }
	.sm-custom > li:nth-of-type(1) > a:hover { background-color: #FF7A6E; }
	.sm-custom > li:nth-of-type(2) > a:hover { background-color: #FFB85A; }
	.sm-custom > li:nth-of-type(3) > a:hover { background-color: #FFF28A; }
	.sm-custom > li:nth-of-type(4) > a:hover { background-color: #A4E57A; }
	.sm-custom > li:nth-of-type(5) > a:hover { background-color: #4FC7E3; }
	.sm-custom > li:nth-of-type(6) > a:hover { background-color: #6A8CFF; }
	.sm-custom > li:nth-of-type(7) > a:hover { background-color: #B97AE6; }
}

/* サブメニュー内のリンクも折り返し可能にする */
.sm-custom ul a { white-space: normal !important; }

@media (min-width: 960px) {
	.main-menu-btn { position: absolute; top: -99999px; }
	#main-menu-state:not(:checked) ~ #main-menu { display: block; }
	/*#main-menu { float: right; clear: none; }*/
	ul.sm-custom {
		width: 100%;
		/*margin-top: 2.5rem;*/
		/*font-size: 0.95rem!important;
		font-size: 0.95rem!important;*/
		display:flex!important;
		flex-flow:row wrap;
		justify-content: center;
		/*align-items: center;*/
		align-items: stretch;
		align-content: center;
	}
	ul.sm-custom .sm-rtl {
		flex-direction: column-reverse;
		flex-wrap: wrap-reverse;
	}
	.sm-custom > li {
		text-align: center;
		flex:auto;
		/*width: calc(100% / 6);*/
		padding: 0;
		/*border-right: 1px dotted rgba(0,0,0,0.1);*/
	}
	/*.sm-custom > li:first-child { border-left:1px dotted rgba(0,0,0,0.1); }*/
	.sm-custom ul { position: absolute; }
	.sm-custom ul li, .sm-custom.sm-rtl ul li, .sm-custom.sm-vertical li { float: none; }
	.sm-custom ul a, .sm-custom.sm-vertical a { white-space: normal; }
	/*.sm-custom .sm-nowrap > li > a, .sm-custom .sm-nowrap > li > :not(ul) a { white-space: nowrap; }*/

	/* ...end */
	/*.sm-custom { border-top: 0; background: transparent; }*/
	/*.sm-custom a, .sm-custom a:hover, .sm-custom a:focus, .sm-custom a:active, .sm-custom a.highlighted { padding: 11px 20px; color: #333; border-radius: 4px 4px 0 0; }*/
	.sm-custom a { position: relative; padding: 0.5rem; font-size: 0.9rem; font-weight: bolder; color: #fff; /*white-space: nowrap;*/transition: 0.25s; }
	.sm-custom a span { font-size: 0.5rem; display: block; margin-top: 1px; font-weight: normal; line-height: 1em!important; color: #837056; }
	.sm-custom a:hover { background-color: rgba(255,255,255,0.75); }
	/*.sm-custom li a span.bg { display: block; height: 90px; position: relative; padding: 55px 0 0 0; }
	.sm-custom li a span.bg::before {
		content: "";
		width: 60px;
		height: 40px;
		background-position: center center;
		background-size: cover;
		background-repeat: no-repeat;
		margin: 0 auto;
		position: absolute;
		top: 10px;
		left: 0;
		right: 0;
	}*/
	/*.sm-custom a:hover, .sm-custom a:focus { background-color: #333; color: #fff; }*/
	/*.sm-custom a.highlighted { background: #F6FFED; color: #333; box-shadow: 0 4px 3px rgba(0,0,0,0.25); }*/
	/*.sm-custom a.disabled { background: transparent; color: #ccc; box-shadow: none; }*/
	.sm-custom a.has-submenu {
		position: relative;
		border-bottom: none !important;
		line-height: 1.75em !important;
	}
	.sm-custom a.has-submenu::before {
		font-family: FontAwesome;
		content: "\f0d7";
		/*color: #fff;*/
		color: #fff;
		font-size: rem;
		margin: 0 auto;
		position: absolute;
		left: 50%;
		transform: translateX(-50%) translateY(60%);
	}
	.sm-custom li li a.has-submenu::before, .sm-custom li li li a.has-submenu::before, .sm-custom li li li li a.has-submenu::before, .sm-custom li li li li li a.has-submenu::before {
		content: "\f0da";
		color: #669933;
		margin: auto 0;
		top: auto;
		left: auto;
		right: 0.3rem;
		bottom: auto;
	}
	/*.sm-custom a.has-submenu { padding-right: 34px; }
	.sm-custom a .sub-arrow {
		top: 50%;
		margin-top: -3px;
		right: 20px;
		width: 0;
		height: 0;
		border-width: 6px 4.02px 0 4.02px;
		border-style: solid dashed dashed dashed;
		border-color: #0B416B transparent transparent transparent;
		background: transparent;
		border-radius: 0;
	}
	.sm-custom a:hover .sub-arrow, .sm-custom a:focus .sub-arrow, .sm-custom a:active .sub-arrow { border-color: #fff transparent transparent transparent; }
	.sm-custom a.highlighted .sub-arrow { border-color: #0B416B transparent transparent transparent; }
	.sm-custom a.disabled .sub-arrow { border-color: #0B416B transparent transparent transparent; }
	.sm-custom a .sub-arrow::before { display: none; }*/
	.sm-custom ul {
		border: 0;
		padding: 8px 0;
		background-color: #fff;
		border-radius: 4px;
		box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25);
	}
	.sm-custom ul ul { border-radius: 4px; }
	.sm-custom ul a, .sm-custom ul a:hover, .sm-custom ul a:focus, .sm-custom ul a:active, .sm-custom ul a.highlighted {
		border: 0 !important;
		padding: 10px 20px;
		color: #333;
		border-radius: 0;
	}
	/*.sm-custom ul a:hover, .sm-custom ul a:focus, .sm-custom ul a:active, .sm-custom ul a.highlighted { background: #0B416B; color: #fff; box-shadow: none; }
	.sm-custom ul a.disabled { background: transparent; color: #b3b3b3; }
	.sm-custom ul a.has-submenu { padding-right: 20px; }
	.sm-custom ul a .sub-arrow {
		right: 10px;
		margin-top: -4.02px;
		border-width: 4.02px 0 4.02px 6px;
		border-style: dashed dashed dashed solid;
		border-color: transparent transparent transparent #0B416B;
	}
	.sm-custom ul a:hover .sub-arrow, .sm-custom ul a:focus .sub-arrow, .sm-custom ul a:active .sub-arrow, .sm-custom ul a.highlighted .sub-arrow { border-color: transparent transparent transparent #fff; }
	.sm-custom ul a.disabled .sub-arrow { border-color: transparent transparent transparent #0B416B; }*/
	.sm-custom .scroll-up, .sm-custom .scroll-down {
		position: absolute;
		display: none;
		visibility: hidden;
		overflow: hidden;
		background: #F6FFED;
		height: 20px;
	}
	.sm-custom .scroll-up-arrow, .sm-custom .scroll-down-arrow {
		position: absolute;
		top: 6px;
		left: 50%;
		margin-left: -8px;
		width: 0;
		height: 0;
		overflow: hidden;
		border-width: 0 6px 8px 6px;
		border-style: dashed dashed solid dashed;
		border-color: transparent transparent #0B416B transparent;
	}
	.sm-custom .scroll-down-arrow {
		border-width: 8px 6px 0 6px;
		border-style: solid dashed dashed dashed;
		border-color: #0B416B transparent transparent transparent;
	}
	.sm-custom.sm-rtl a.has-submenu { padding-right: 20px; padding-left: 34px; }
	.sm-custom.sm-rtl a .sub-arrow { right: auto; left: 20px; }
	.sm-custom.sm-rtl.sm-vertical { border-right: 0; border-left: 2px solid #0B416B; }
	.sm-custom.sm-rtl.sm-vertical a { border-radius: 0 4px 4px 0; }
	.sm-custom.sm-rtl.sm-vertical a.has-submenu { padding: 10px 20px; }
	.sm-custom.sm-rtl.sm-vertical a .sub-arrow {
		right: auto;
		left: 10px;
		border-width: 4.02px 6px 4.02px 0;
		border-style: dashed solid dashed dashed;
		border-color: transparent #0B416B transparent transparent;
	}
	.sm-custom.sm-rtl.sm-vertical a:hover .sub-arrow, .sm-custom.sm-rtl.sm-vertical a:focus .sub-arrow, .sm-custom.sm-rtl.sm-vertical a:active .sub-arrow, .sm-custom.sm-rtl.sm-vertical a.highlighted .sub-arrow { border-color: transparent #fff transparent transparent; }
	.sm-custom.sm-rtl.sm-vertical a.disabled .sub-arrow { border-color: transparent #0B416B transparent transparent; }
	.sm-custom.sm-rtl ul { border-radius: 4px 0 4px 4px; }
	.sm-custom.sm-rtl ul a { border-radius: 0 !important; }
	.sm-custom.sm-rtl ul a.has-submenu { padding: 10px 20px !important; }
	.sm-custom.sm-rtl ul a .sub-arrow {
		right: auto;
		left: 10px;
		border-width: 4.02px 6px 4.02px 0;
		border-style: dashed solid dashed dashed;
		border-color: transparent #0B416B transparent transparent;
	}
	.sm-custom.sm-rtl ul a:hover .sub-arrow, .sm-custom.sm-rtl ul a:focus .sub-arrow, .sm-custom.sm-rtl ul a:active .sub-arrow, .sm-custom.sm-rtl ul a.highlighted .sub-arrow { border-color: transparent #fff transparent transparent; }
	.sm-custom.sm-rtl ul a.disabled .sub-arrow { border-color: transparent #0B416B transparent transparent; }
	.sm-custom.sm-vertical { border-bottom: 0; border-right: 2px solid #0B416B; }
	.sm-custom.sm-vertical a { padding: 10px 20px; border-radius: 4px 0 0 4px; }
	.sm-custom.sm-vertical a:hover, .sm-custom.sm-vertical a:focus, .sm-custom.sm-vertical a:active, .sm-custom.sm-vertical a.highlighted { background: #0B416B; color: #fff; box-shadow: none; }
	.sm-custom.sm-vertical a.disabled { background: transparent; color: #ccc; }
	.sm-custom.sm-vertical a .sub-arrow {
		right: 10px;
		margin-top: -4.02px;
		border-width: 4.02px 0 4.02px 6px;
		border-style: dashed dashed dashed solid;
		border-color: transparent transparent transparent #0B416B;
	}
	.sm-custom.sm-vertical a:hover .sub-arrow, .sm-custom.sm-vertical a:focus .sub-arrow, .sm-custom.sm-vertical a:active .sub-arrow, .sm-custom.sm-vertical a.highlighted .sub-arrow { border-color: transparent transparent transparent #fff; }
	.sm-custom.sm-vertical a.disabled .sub-arrow { border-color: transparent transparent transparent #0B416B; }
	.sm-custom.sm-vertical ul { border-radius: 4px !important; }
	.sm-custom.sm-vertical ul a { padding: 10px 20px; }
}

/* メニュー関連 */
.main-nav { /*background: #fff;*/ position: relative; }
.nav-brand { float: left; margin: 0; }
.nav-brand a { display: block; padding: 11px 11px 11px 20px; color: #333; }
/*#main-menu { clear: both; border-bottom: 0; }*/

@media (max-width: 960px) {
	/* モバイルメニュートグルボタン */
	.main-menu-btn {
		float: right;
		position: relative;
		/*display: inline-block;*/
		text-align: center;
		width: 50px;
		height: 50px;
		text-indent: 50px;
		margin-top: -50px;
		/*white-space: nowrap;*/
		overflow: hidden;
		cursor: pointer;
		-webkit-tap-highlight-color: rgba(0,0,0,0);
		background-color: #fff;
	}
	/*.main-nav { border-bottom: 2px solid #0B416B; }*/
}
@media (max-width: 400px) {
	.main-menu-btn {
		width: 20px;
		height: 20px;
		text-indent: 20px;
		margin-top: -35px;
	}
}

/* ハンバーガーアイコン */
.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	height: 2px;
	width: 24px;
	background: #333;
	-webkit-transition: all 0.25s;
	transition: all 0.25s;
}
.main-menu-btn-icon:before { content: ''; top: -18px; left: 0; }
.main-menu-btn-icon:after { content: ''; top: 10px; left: 0; }

/* Xアイコン*/
#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon { height: 0; background: transparent; }
#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before { top: 0; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); }
#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after { top: 0; -webkit-transform: rotate(45deg); transform: rotate(45deg); }

/* メニュー状態のチェックボックスを非表示（スクリーンリーダーに表示されたまま） */
#main-menu-state {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	border: 0;
	padding: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}

/* モバイルビューでメニューを非表示にする */
#main-menu-state:not(:checked) ~ #main-menu { display: none; }
#main-menu-state:checked ~ #main-menu { display: block; }
