/* アイコン */
@font-face {
	font-family: 'IcoMoon-Free';
	src: url('kaiseki_2017.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
}

.kaiseki-icon {
	/* use !important to prevent issues with browser extensions that change fonts */
	font-family: 'IcoMoon-Free' !important;
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;

	/* Enable Ligatures ================ */
	letter-spacing: 0;
	-webkit-font-feature-settings: "liga";
	-moz-font-feature-settings: "liga=1";
	-moz-font-feature-settings: "liga";
	-ms-font-feature-settings: "liga" 1;
	-o-font-feature-settings: "liga";
	font-feature-settings: "liga";

	/* Better Font Rendering =========== */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.kaiseki-icon.iip::after        { content: "\e995"; }
.kaiseki-icon.yosoku::after     { content: "\e985"; }
.kaiseki-icon.sanzi::after      { content: "\e9da"; }
.kaiseki-icon.utiwake::after    { content: "\e9af"; }
.kaiseki-icon.news::after       { content: "\e91e"; }
.kaiseki-icon.minikeizai::after { content: "\e9aa"; }
.kaiseki-icon.hitokoto::after   { content: "\e952"; }
.kaiseki-icon.kaiseki::after    { content: "\e900"; }
.kaiseki-icon.facebook::after   { content: "\ea91"; }
.kaiseki-icon.twitter::after    { content: "\ea96"; }
.kaiseki-icon.statistics::after { content: "\e99b"; }
.kaiseki-icon.list::after       { content: "\e9bb"; }
.kaiseki-icon.special::after    { content: "\ea08"; }
.kaiseki-icon.calendar::after   { content: "\e953"; }
.kaiseki-icon.out::after        { content: "\ea7d"; }
.kaiseki-icon.pdf::after        { content: "\eadf"; color: #E20; }
.kaiseki-icon.excel::after      { content: "\eae2"; color: #174; }



/* 展開式メニューの共通機能 */
.expandable-menu > li[aria-hidden="true"],
.expandable-menu-switch:not([aria-expanded="true"]) > .expandable-menu-more,
.expandable-menu-more > li[aria-hidden="true"] {
	display: none;
}



/* リストのスタイルリセット */
.kaiseki-navi .categories,
.kaiseki-navi .sub-categories,
.kaiseki-navi .expandable-menu-more {
	list-style-type: none;
	margin: 0;
	padding: 0;
}



/* 問合せ先 */
address.inquiry > dl {
	display: flex;
	flex-wrap: wrap;
}

address.inquiry > dl > dt {
	font-weight: normal;
	width: 5em;
}

address.inquiry > dl > dt::after {
	content: ":";
}

address.inquiry > dl > dd {
	margin: 0;
	padding: 0;
	width: calc(100% - 5em);
}



/* ナビゲーションメニュー全体 */
.kaiseki-navi {
	bottom: 0;
	font-weight: bold;
	line-height: 2;
	position: sticky;
	text-align: center;
	z-index: 1;
}



/* カテゴリメニュー */
.categories {
	background-color: #FFF;
	display: flex;
	overflow: hidden;
}

.categories > li {
	flex-grow: 1;
	position: relative;
	white-space: nowrap;
}

.categories > li:not(:first-child)::after {
	background-color: #999;
	content: "";
	display: block;
	height: 50%;
	position: absolute;
	top: 25%;
	width: 1px;
}

.categories a {
	color: #00597b;
	display: block;
	text-decoration: none;
}

.categories a:hover {
	color: #1a79a4;
}



/* 選択中のカテゴリ */
.categories > li[aria-selected="true"]::after,
.categories > li[aria-selected="true"] + li::after {
	content: none;
}

.categories > li[aria-selected="true"]::before,
.categories > li[aria-selected="true"]::after,
.categories > li[aria-selected="true"] > a::before,
.categories > li[aria-selected="true"] > a::after {
	content: "";
	display: block;
	height: 0.5rem;
	position: absolute;
	width: 0.5rem;
}

.categories > li[aria-selected="true"]::before,
.categories > li[aria-selected="true"]::after {
	background-color: #00597b;
	top: -0.1rem;
}

.categories > li[aria-selected="true"] > a::before,
.categories > li[aria-selected="true"] > a::after {
	background-color: #FFF;
	top: 0;
	z-index: 2;
}

.categories > li[aria-selected="true"]::before {
	left: -0.4rem;
}

.categories > li[aria-selected="true"]::after {
	right: -0.4rem;
}

.categories > li[aria-selected="true"] > a::before {
	border-top-right-radius: 0.5rem;
	left: -0.5rem;
}

.categories > li[aria-selected="true"] > a::after {
	border-top-left-radius: 0.5rem;
	right: -0.5rem;
}

.categories > li[aria-selected="true"] > a {
	border-bottom-left-radius: 0.5rem;
	border-bottom-right-radius: 0.5rem;
	color: #EEE;
	line-height: 1.9;
}



/* サブカテゴリメニュー */
.sub-categories {
	display: flex;
}

.sub-categories > li {
	flex-grow: 1;
}

.sub-categories a {
	display: block;
}

.sub-categories a,
.sub-categories a:hover,
.sub-categories .expandable-menu-text {
	color: #FFF;
	text-decoration: none;
	text-shadow: 0.1em 0.1em 0.1em rgba(0, 0, 0, 0.5);
}



/* サブカテゴリの展開式メニュー */
.sub-categories > .expandable-menu-switch {
	position: relative;
}

.sub-categories .expandable-menu-text {
	cursor: pointer;
}

.sub-categories > .expandable-menu-switch[aria-expanded="true"] > .expandable-menu-text::before {
	content: "▼";
}

.sub-categories > .expandable-menu-switch:not([aria-expanded="true"]) > .expandable-menu-text::before {
	content: "▲";
}

.sub-categories .expandable-menu-more {
	bottom: 100%;
	position: absolute;
	right: 0;
	text-align: left;
}

.sub-categories .expandable-menu-more a {
	padding: 0 0.5em;
	white-space: nowrap;
}



/* カテゴリメニューの色関係 */
.categories > li[aria-selected="true"] > a,
.sub-categories,
.sub-categories .expandable-menu-more {
	background-color: #00597b;
}

.sub-categories > li:hover,
.sub-categories .expandable-menu-more > li:hover {
	background-color: #1a79a4;
}

.sub-categories > li > a,
.sub-categories > li > .expandable-menu-text {
	border-left: 1px solid rgba(255, 255, 255, 0.1);
	border-right: 1px solid rgba(0, 0, 0, 0.1);
}

.sub-categories .expandable-menu-more > li > a {
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}



/* 新着サブカテゴリ */
.sub-categories .new {
	position: relative;
}

.sub-categories .new::after {
	background-color: #F00;
	color: #FFF;
	content: "NEW";
	font-size: 1rem;
	left: 0;
	line-height: 1.5;
	padding: 0 0.25em;
	position: absolute;
	top: -1em;
	transform: rotate(-15deg);
}



/* 「ページ先頭へ」のボタンを左下に移動 */
footer .return {
	left: 0.5rem;
	margin-bottom: calc(1.2rem * 2.5 + 1.6rem * 2 + 1rem);
	right: auto;
}



/* スマホ等での表示 */
@media screen and (max-width: 768px) {
	.categories {
		font-size: 1.2rem;
	}

	.sub-categories {
		font-size: 1.4rem;
	}

	.kaiseki-navi > .categories .kaiseki-icon,
	.kaiseki-navi .long-name {
		display: none;
	}

	footer .return {
		margin-bottom: calc(1.2rem * 2 + 1.4rem * 2 + 1rem);
	}
}



/* PC等での表示 */
@media print, (min-width: 769px) {
	.categories {
		font-size: 1.4rem;
	}

	.sub-categories {
		font-size: 1.6rem;
	}

	.kaiseki-navi .short-name {
		display: none;
	}

	footer .return {
		margin-bottom: calc(1.4rem * 2 + 1.6rem * 2 + 1rem);
	}
}



/* 印刷時の表示 */
@media print {
	.border-btn.sns,
	.kaiseki-navi {
		display: none;
	}
}



/* その他汎用スタイル */
.loading-message {
	font-size: 1.5em;
	padding: 2em 0;
	text-align: center;
}

.border-btn.sns {
	background: none;
	border: none;
}

.idt1 {
	text-indent: 1em;
}

.fs1 { font-size: 0.1em; }
.fs2 { font-size: 0.2em; }
.fs3 { font-size: 0.3em; }
.fs4 { font-size: 0.4em; }
.fs5 { font-size: 0.5em; }
.fs6 { font-size: 0.6em; }
.fs7 { font-size: 0.7em; }
.fs8 { font-size: 0.8em; }
.fs9 { font-size: 0.9em; }
