@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Aclonica:wght@400;700&display=swap');
/***********************************
 * Reset
 **********************************/
* {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
}
/***********************************
 * Margin
 **********************************/
* + p,
* + hr,
* + blockquote,
* + ol,
* + ul,
* + dl {
	margin-top: 1.0em;
}
/***********************************
 * Structure
 **********************************/
html {
	height: 100%;
}
body {
	background: #b7c8d2;
	background: repeating-linear-gradient(-45deg, #a9bdc9, #a9bdc9 16px, #b7c8d2 16px, #b7c8d2 32px) fixed;
	font-family: "hiragino kaku gothic pro", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "Arial", "helvetica", sans-serif;
	line-height: 1.5em;
}
#container {
	display: flex;
	flex-direction: column;
	max-width: 980px;
	min-height: 100dvh;
	height: 100%;
	margin: 0 auto;
	padding: 0 48px;
	background: #ffffff;
}
main {
	flex: 1;
	padding-bottom: 20px;
}
header {
	position: relative;
	margin-bottom: 0.5em;
	padding-top: 20px;
	border-bottom: 1px solid #cccccc;
	text-align: center;
}
footer {
	margin: 0.5em -48px 0;
	padding: 0.7em 0 0;
	color: #ffffff;
	background: #595e3c;
	font-size: 0.8em;
	text-align: center;
}
/***********************************
 * Generic
 **********************************/
*.void {
	display: none;
}
*.null {
	visibility: hidden;
}
/***********************************
 * <section>
 **********************************/
section {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	padding: 0.5em 0;
	gap: 20px;
}
section.random {
	margin-top: 1.0em;
}
/***********************************
 * <nav>
 **********************************/
nav.home {
	width: 100%;
	min-width: 250px;
	margin-bottom: 1.0em;
	padding: 0.5em 0.75em 2.0em;
	background: #3f262d;
	border: 2px solid #e7e8e2;
	border-radius: 10px;
	background: #e7e8e2;
}
nav.directory {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
}
/***********************************
 * <h1>-<h6>
 **********************************/
h1 {
	margin: 0.7em 0 0.3em;
  font-family: "Aclonica", sans-serif;
	font-size: 3.0em;
	line-height: 1.2em;
	text-shadow: 3px 3px 3px #cccccc;
}
h1 a:link,
h1 a:visited,
h1 a:hover {
	color: #164082;
	text-decoration: none;
}
h2 {
	margin: 0.3em 0 1.0em;
	padding: 0.5em 0.3em;
	border-radius: 10px;
	color: #ffffff;
	font-size: 1.3em;
}
h2.home {
	border-inline: 20px solid #3f262d;
	background: #595e3c;
	background: linear-gradient(180deg, #616745 0%, #616745 50%, #595e3c 50%, #595e3c 100%);
	font-weight: normal;
	text-align: center;
}
h2.chapter {
	border-left: 16px solid #5b563d;
	background: #3f262d;
	background: linear-gradient(180deg, #482e35 0%, #482e35 50%, #3f262d 50%, #3f262d 100%);
	font-weight: normal;
}
h2.item {
	margin-bottom: 0;
	padding: 1.5em 1.5em 1.0em;
	color: #000000;
	background: #ffda80;
	font-size: 1.7em;
	line-height: 1.8em;
}
h3:not([class]) {
	position: relative;
	margin: 2.0em 0 1.0em;
	padding: 0.3em;
	padding-left: 25px;
	color: #141823;
	font-size: 1.4em;
}
h3:not([class])::before {
	z-index: 2;
	position: absolute;
	top: 0.55em;
	left: 6px;
	width: 3px;
	height: 7px;
	border-right: 2px solid #ffffff;
	border-bottom: 2px solid #ffffff;
	content: "";
	-webkit-transform: rotate(50deg);
	-ms-transform: rotate(50deg);
	transform: rotate(50deg);
}
h3:not([class])::after {
	z-index: 1;
	position: absolute;
	top: 0.4em;
	left: 0;
	width: 15px;
	height: 15px;
	border: 1px solid #ffa834;
	border-radius: 4px;
	content: "";
	background: #ffa834;
}
h3.home {
	margin: -0.5em -0.75em 2.0em;
	padding: 0.4em;
	border-radius: 10px 10px 0 0;
	color: #ffffff;
	background: #3f262d;
	font-size: 1.2em;
	font-weight: normal;
	text-align: center;
}
h3.clerical {
	margin: 1.5em 0;
	padding: 0.4em;
	border-left: 10px solid #ffb74c;
	border-radius: 10px;
	color: #ffffff;
	background: #7f93a0;
}
/***********************************
 * <p>
 **********************************/
p {
	line-height: 1.5em;
}
p + p {
	margin-top: 1.5em;
}
p.description {
	padding: 0 1.5em;
}
p.copyright {
	padding: 0.3em;
	background: #3f262d;
}
p.defect {
	width: 500px;
	margin: 0 auto 1.0em;
	padding: 0.5em;
	border-radius: 10px;
	color: #ff0000;
	background: #fff0f0;
	text-align: left;
}
/***********************************
 * <ol>
 **********************************/
ol {
	padding-left: 2.0em;
}
/***********************************
 * <ul>
 **********************************/
ul {
	padding-left: 2.0em;
}
/****** <ul> エラー ******/
ul.error {
	color: #ff0000;
}
/****** <ul> 例文 ******/
ul.texts {
	padding: 16px;
	padding-left: 2.5em;
	border-radius: 10px;
	background: #eae6df;
}
ul.texts {
	list-style: disc;
}
ul.texts li::marker {
	color: #5b563d;
}
/****** <ul> リンク ******/
ul.links li {
	position: relative;
	margin-left: -1.0em;
	padding-left: 18px;
	list-style: none;
}
ul.links li::before {
	position: absolute;
	top: 0.15em;
	left: -3px;
	width: 15px;
	height: 15px;
	border-top: 1px solid #ffffff;
	border-right: 1px solid #ffffff;
	border-radius: 50%;
	content: "";
	background: #777777;
}
ul.links li::after {
	position: absolute;
	top: 0.55em;
	left: 1px;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
	width: 4px;
	height: 4px;
	content: "";
	border-top: 1px solid #ffffff;
	border-right: 1px solid #ffffff;
}
ul.links.contents li::before {
	top: 0.75em;
}
ul.links.contents li::after {
	top: 1.15em;
}
ul.links.contents li a {
	font-size: 1.2em;
	font-weight: bold;
	line-height: 1.6em;
	text-decoration: none;
}
/****** <ul> タグ ******/
ul.tags {
	margin: 0.1em 0;
	padding: 0;
	font-size: 0.8em;
}
ul.tags li {
	display: inline-block;
}
ul.tags li + li {
	margin-left: 0.1em;
}
ul.tags li a {
	padding: 0.3em 0.5em;
	border: 1px solid #56638f;
	border-left-width: 1.9em;
	border-radius: 10px;
	color: #56638f;
	background: #e5ecf4;
	text-decoration: none;
}
ul.tags li a:hover {
	color: #ff0000;
}
ul.tags li a::before {
	margin-left: -1.9em;
	padding-right: 0.7em;
	color: #ffffff;
	content: "\025b6\00A0";
}
/****** <ul> 頭文字 ******/
ul.initial {
	margin-bottom: 1.5em;
	padding: 0;
	font-weight: bold;
	text-align: center;
}
ul.initial li {
	display: inline;
}
ul.initial li a {
	padding: 0.5em 0.8em;
	border: 1px solid #3f262d;
	border-radius: 18px;
	color: #3f262d;
	background: #e7e8e2;
	text-decoration: none;
}
ul.initial li a:not([href]) {
	border: 1px solid #bbbbbb;
	color: #bbbbbb;
}
ul.initial li a[href]:visited {
	border-color: #50743e;
	color: #50743e;
}
ul.initial li a[href]:hover {
	color: #ffffff;
	background: #3f262d;
}
/****** <ul> ランダムワード ******/
ul.extra {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-top: -1.5em;
	margin-bottom: -1.2em;
	justify-content: center;
}
ul.extra li {
	white-space: nowrap;
	padding: 4px 4px;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1s ease-out, transform 1s ease-out;
}
ul.extra li.visible {
	opacity: 1;
	transform: translateY(0);
}
ul.extra li a {
	padding: 0.3em 0.5em;
	font-size: 0.8em;
	font-weight: normal;
}
/****** <ul> フッター ******/
ul.categories {
	margin-top: 0.5em;
	padding: 0;
}
ul.categories li {
	display: inline;
	white-space: nowrap;
}
ul.categories li a {
	padding: 0.2em 0.8em;
	border-radius: 6px;
	color: #ffffff;
	background: #6b7a51;
	text-decoration: none;
}
ul.categories li a:hover {
	color: #000000;
	background: #efaa42;
}
/****** <ul> メールフォーム ******/
ul.mail {
	margin-top: 0.5em;
}
ul.mail li {
	display: inline;
}
/****** <ul> 検索ボックス ******/
ul.search {
	width: 50%;
	margin: 1.0em auto;
	padding: 0.5em 0.75em;
	border: 2px solid #d7d8d2;
	border-radius: 10px;
	background: #d7d8d2;
	text-align: center;
}
ul.search li {
	display: inline;
}
/****** <ul> about ******/
ul.about {
	margin: 0.5em 0;
}
ul.about li {
	white-space: nowrap;
	line-height: 3.0em;
}
ul.about li a {
	border: none;
	color: #ffffff;
	background: #341f25;
	font-weight: normal;
}
ul.about li a[href]:visited {
	color: #ffffff;
}
ul.about li a[href]:hover {
	color: #000000 !important;
	background: #efaa42 !important;
}
/****** <ul> ads ******/
ul.ads {
	padding-left: 0;
}
ul.ads li {
	display: inline;
}
main ul.ads {
	margin-top: 2.0em;
}
section + ul.ads {
	margin-top: 0;
}
/***********************************
 * <dl>
 **********************************/
dt {
	font-weight: bold;
}
dd + dt {
	margin-top: 1.0em;
}
dd {
	margin-left: 1.0em;
}
/****** <dl> 意味 ******/
dl.meaning {
	border: 2px solid #74a9d6;
}
dl.meaning dt {
	margin-bottom: 0.25em;
	padding: 0.25em 0.5em;
	font-size: 1.2em;
	font-weight: bold;
	background: #74a9d6;
	color: #ffffff;
}
dl.meaning dd {
	margin-left: 0;
	padding: 0.5em;
}
/****** <dl> プロフィール ******/
dl.profile {
	width: 60%;
	border: 1px solid #333333;
	border-top: none;
	line-height: 1.3em;
	background: #8195a2;
}
dl.profile dt {
	clear: left;
	float: left;
	width: 7.0em;
	margin-top: 0;
	padding: 0.5em;
	border-top: 1px solid #333333;
	color: #ffffff;
	font-weight: bold;
	text-align: center;
}
dl.profile dd {
	margin-left: 7.6em;
	padding: 0.5em;
	border-top: 1px solid #333333;
	border-left: 1px solid #333333;
	background: #ffffff;
}
dl.profile + * {
	clear: both;
}
/****** <dl> メールフォーム ******/
dl.mail {
	width: 640px;
	padding-top: 0.5em;
	border-radius: 10px;
	background: #e7e8e2;
	line-height: 1.3em;
}
dl.mail dt {
	clear: left;
	float: left;
	width: 7.5em;
	margin-top: 0;
	padding: 0.5em;
	padding-top: 0.8em;
	font-weight: normal;
	text-align: right;
}
dl.mail dd {
	margin-left: 7.6em;
	padding: 0.5em;
}
dl.mail + * {
	clear: both;
}
/****** <dl> ふりがな ON/OFF ******/
dl.furigana {
	margin: auto 0;
	margin-left: 1.0em;
}
dl.furigana dt {
	display: inline;
}
dl.furigana dd {
	display: inline;
	margin-left: 0;
	font-size: 0.85em;
}
/***********************************
 * <blockquote>
 **********************************/
blockquote {
	padding: 0.5em;
	border-left: 10px solid #728c79;
	border-radius: 10px;
	background: #eae6df;
	quotes: none;
}
/***********************************
 * <a>
 **********************************/
a:link {
	color: #504dcb;
}
a:visited {
	color: #711a53;
}
a:hover {
	color: #ff0000;
}
/***********************************
 * <i>
 **********************************/
i {
	color: #be0000;
	font-style: normal;
	font-weight: bold;
}
em.error {
	color: #ff0000;
}
/***********************************
 * <small>
 **********************************/
small {
	margin-left: 0.35em;
	padding: 0 0.5em;
	font-size: 0.6em;
	font-weight: normal;
	vertical-align: 0.25em;
	border-radius: 10px;
	color: #666666;
	background: #e4e4e4;
}
/***********************************
 * <output>
 **********************************/
output {
	display: block;
	padding: 5px;
	border-radius: 10px;
	background: #ffdf85;
}
/***********************************
 * <ruby>
 **********************************/
rt {
	font-size: 0.5em;
}
.hide-furigana ul.links li {
	padding-top: 0.43em;
}
.hide-furigana rt {
    display: none;
}
/***********************************
 * <form>
 **********************************/
/****** メールフォーム ******/
#contact input {
	width: 25.0em;
	padding: 7px;
	border-radius: 10px;
}
#contact textarea {
	width: 25.0em;
	height: 12.0em;
	padding: 7px;
	border-radius: 10px;
}
#contact button {
	padding: 7px 12px;
	border-radius: 10px;
	color: #ffffff;
	background: #6b402d;
	cursor: pointer;
}
#contact button:hover {
	color: #000000;
	background: #efaa42;
}
/****** 検索ボックス ******/
#search input {
	width: 60%;
	padding: 7px;
	border-radius: 10px;
}
#search button {
	position: absolute;
	margin-left: -25px;
	margin-top: 6px;
	border: none;
	color: #999999;
	background: none;
	cursor: pointer;
	font-size: 18px;
}
/****** ふりがなスイッチ ******/
#furigana label {
	cursor: pointer;
}
#furigana label.switch {
	position: relative;
	display: inline-block;
	width: 36px;
	height: 18px;
	margin-bottom: 10px;
	vertical-align: middle;
	transform: translateY(4px);
}
#furigana input.switch {
	width: 0;
	height: 0;
	opacity: 0;
}
#furigana span.slider {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border-radius: 28px;
	background: #cccccc;
	transition: 0.4s;
}
#furigana span.slider::before {
	position: absolute;
	content: "";
	height: 12px;
	width: 12px;
	left: 3px;
	top: 3px;
	background: #ffffff;
	border-radius: 50%;
	transition: 0.4s;
}
#furigana input.switch:checked + span.slider {
	background: #4387e9;
}
#furigana input.switch:checked + span.slider::before {
	transform: translateX(18px);
}
