/* ------------------------------------------------------ */
/* ▼ Astrolabe Custom-UI.js CSS */
/* ------------------------------------------------------ */
body[class^="theme-"] {
	transition: background-color 0.3s, color 0.3s;
}

/* -------------------------------------------- */
/* ▼ カスタム: フォント */
/* -------------------------------------------- */
/* フォント: ゴシック体 (ヒラギノゴシック, Noto Sans JP) */
.text.font-gothic {
	font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
	font-weight: 400;
}

/* フォント: 明朝体 (ヒラギノ明朝, Noto Serif JP) */
.text.font-mincho {
	font-family: "Hiragino Serif", "Noto Serif JP", serif;
	font-weight: 500;
}

/* フォント: 丸ゴシック体 (ヒラギノ丸ゴシック, 小杉丸) */
.text.font-marugothic {
	font-family: "Hiragino Maru Gothic Pro", "Kosugi Maru", serif;
	font-weight: 400;
}

/* フォント: オールド明朝体 (しっぽり明朝B1) */
.text.font-oldmincho {
	font-family: "Shippori Mincho B1", serif;
	font-weight: 600;
}

/* -------------------------------------------- */
/* ▼ カスタム: カラーテーマ */
/* -------------------------------------------- */
/* 白 */
.theme-white {
	background-color: #FEFEFE;
	color: #333231;
}
.theme-white #customicon {
	color: #333231;
}
.theme-white #customicon:hover {
	background-color: #33323122;
	color: #333231;
}
.theme-white #custombox .theme-value {
	background-color: #FEFEFE;
	color: #333231;
}

/* 黒 */
.theme-black {
	background-color: #242424;
	color: #F9FAFB;
}
.theme-black #customicon {
	color: #F9FAFB;
}
.theme-black #customicon:hover {
	background-color: #F9FAFB22;
	color: #F9FAFB;
}
.theme-black #custombox .theme-value {
	background-color: #242424;
	color: #F9FAFB;
}

/* グレー */
.theme-gray {
	background-color: #E5E4E7;
	color: #333031;
}
.theme-gray #customicon {
	color: #333031;
}
.theme-gray #customicon:hover {
	background-color: #33303122;
	color: #333031;
}
.theme-gray #custombox .theme-value {
	background-color: #E5E4E7;
	color: #333031;
}

/* アイボリー */
.theme-ivory {
	background-color: #FBF4E3;
	color: #533628;
}
.theme-ivory #customicon {
	color: #533628;
}
.theme-ivory #customicon:hover {
	background-color: #53362822;
	color: #533628;
}
.theme-ivory #custombox .theme-value {
	background-color: #FBF4E3;
	color: #533628;
}

/* 空色 */
.theme-skyblue {
	background-color: #E6FBFA;
	color: #06062A;
}
.theme-skyblue #customicon {
	color: #06062A;
}
.theme-skyblue #customicon:hover {
	background-color: #06062A22;
	color: #06062A;
}
.theme-skyblue #custombox .theme-value {
	background-color: #E6FBFA;
	color: #06062A;
}

/* 紺色 */
.theme-navy {
	background-color: #202648;
	color: #F9FAFF;
}
.theme-navy #customicon {
	color: #F9FAFF;
}
.theme-navy #customicon:hover {
	background-color: #F9FAFF22;
	color: #F9FAFF;
}
.theme-navy #custombox .theme-value {
	background-color: #202648;
	color: #F9FAFF;
}

/* -------------------------------------------- */
/* ▼ カスタム開閉アイコン */
/* -------------------------------------------- */
#customicon {
	position: fixed;
	display: block;
	top: 10px;
	right: 10px;
	padding: 4px 4px 3px 4px;
	background-color: transparent;
	width: 30px;
	color: #333231;
	font-size: 24px;
	line-height: 24px;
	text-align: center;
	border-radius: 5px;
	z-index: 1000;
	cursor: pointer;
	transition: opacity 0.3s ease, border 0.3s ease;
}

/* ホバー状態 */
#customicon:hover {
	background-color: #33323122;
	color: #333231;
	cursor: pointer;
	transition: 0.3s ease-in-out;
	opacity: 1;
}

/* スクロール時 */
#customicon.scrolled {
	opacity: .4;
	transition-delay: 1s;
}

/* スクロール時のホバー状態 */
#customicon.scrolled:hover {
	opacity: 1;
	transition-delay: .1s;
}

/* 非表示からのアクティブ状態に切り替え */
#customicon.active {
	opacity: 1 !important;
}

/* 設定ボックスの位置調整 */
#customicon-wrapper {
	position: fixed;
	top: 40px;
	right: 10px;
	z-index: 999;
	background: transparent;
}

/* -------------------------------------------- */
/* ▼ カスタムメニュー */
/* -------------------------------------------- */
/* メニュー下地 */
#custombox {
	position: absolute;
	top: 100%;
	right: 0;
	background: #FFFFFF;
	display: block;
	margin-top: 5px;
	padding: 0px 20px 24px 20px;
	color: #222222;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 13px;
	text-align: left;
	border-radius: 10px;
	border: 1px solid rgba(0, 0, 0, .1);
	box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, .1);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	pointer-events: none;
	z-index: 999;
}

/* 非表示用クラス */
#custombox.visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* ボタン */
#custombox button {
	padding: 4px 10px;
	background: transparent;
	color: #888;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: normal;
	font-size: 18px;
	line-height: 18px;
	border-radius: 4px;
	border: 1px solid #AAA;
	transition: 0.3s ease-in-out;
	cursor: pointer;
}

#custombox button#font-decrease,
#custombox button#font-increase {
	margin-right: 10px;
	padding: 4px 8px;
}

#custombox button:hover {
	background: #EEE;
	color: #222;
	transition: 0.3s ease-in-out;
}

/* ラベル */
#custombox label {
	display: block;
	padding-top: 20px;
	padding-bottom: 5px;
	font-weight: 500;
}

#custombox label i {
	margin-right: 4px;
	color: #222;
	font-size: 18px;
	font-weight: 400;
	vertical-align: -2px;
}

/* セレクター */
#custombox select {
	padding: 5px 10px;
	background: #FFF;
	width: 200px;
	max-width: 100%;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 13px;
	color: #222;
	border-radius: 3px;
	border: 1px solid #AAA;
	appearance: base-select;
	-webkit-appearance: base-select;
	-moz-appearance: base-select;
	transition: 0.3s ease-in-out;
	cursor: pointer;
}

#custombox select:hover {
	background: #EEE;
}

/* レンジスライダー */
#custombox input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	outline: none;
	width: 100%;
	background: transparent;
	cursor: pointer;
}

/* レンジスライダー : 棒線 Chrome, Safari, Opera, Edge 系統 */
input[type="range"]::-webkit-slider-runnable-track {
	background: #E0E0E0;
	height: 6px;
	border-radius: 6px;
}

/* レンジスライダー : つまみ Chrome, Safari, Opera, Edge 系統 */
#custombox input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	margin-top: -6px; /* つまみの位置調整 */
	width: 18px;
	height: 18px;
	border: 1px solid #808080;
	border-radius: 50%;
	background: #FFF;
}

/* レンジスライダー : 棒線 firefox もじら系統 */
input[type="range"]::-moz-range-track {
	background: #E0E0E0;
	height: 6px;
	border-radius: 6px;
}

/* レンジスライダー : つまみ firefox もじら系統 */
#custombox input[type="range"]::-moz-range-thumb {
	background: #FFF;
	width: 18px;
	height: 18px;
	border: 1px solid #888;
	border-radius: 50%;
}

/* スライダー下のコンテナ */
#custombox .slider-control-row {
	display: flex;
	justify-content: space-between;
	margin-top: 5px;
	align-items: center;
}

/* 現在の値 */
#custombox .setting-value {
	padding: 2px 6px 3px 6px;
	background: #FAFAFA;
	font-size: 11px;
	line-height: 13px;
	font-weight: 500;
	border: 1px solid #C0C0C0;
	border-radius: 3px;
}

#fontsize-value {
	margin-right: 10px;
}

/* レンジスライダー: 目盛り */
div.range-scale {
	display: flex;
	width: 100%;
	padding: 0 9px;
	margin: 2px auto 8px auto;
	justify-content: space-between;
	height: 6px;
	box-sizing: border-box;
}

div.range-scale span {
	width: 1px;
	height: 6px;
	background: #AAA;
}

/* カラーテーマのフレックスコンテナ */
#custombox .custom-theme-flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 200px;
}

#custombox .theme-value {
	display: inline;
	margin-right: 10px;
	width: 24px;
	height: 21px;
	background: #FAFAFA;
	font-size: 12px;
	line-height: 19px;
	font-weight: 500;
	text-align: center;
	vertical-align: center;
	border: 3px solid #FFF;
	border-radius: 3px;
	box-shadow: 0px 0px 0px 1px rgba(170, 170, 170, 1);
}

/* -------------------------------------------- */
/* ▼ 小説本文 */
/* -------------------------------------------- */
/* 基礎 */
.text {
	margin: 0 auto;
	max-width: 90%;
	width: 44em;
}

/* 横幅768以下 スマホ */
@media screen and (max-width: 768px){
	article {
		font-family: "Noto Sans JP", sans-serif;
		font-size: 1.4rem;
		line-height: 2em;
	}
	.text {
		width: 90% !important;
	}
	#custom-width {
		display: none;
	}
}

/* 横幅769以上 PC */
@media screen and (min-width: 769px){
	article {
		font-family: "Noto Sans JP", sans-serif;
		font-size: 1.6rem;
		line-height: 2em;
	}
}

