@charset "UTF-8";

/* 註：このファイルには基本的に要素型セレクターしか記述しないこと */

body {
	box-sizing: border-box;
	min-height: 100vh;
	margin: 0;
	padding: 0;
	background-color: var(--color-background-normal);
	color: var(--color-text-normal);
	font-family: var(--font-sans-serif-ja);
	line-height: 1.875;  /* <rt>を考慮した指定 */

	*, *::before, *::after {
		box-sizing: inherit;
	}
	*::before, *::after {
		line-height: inherit;
	}
}

a {
	color: var(--color-hyperlink);
	-webkit-text-decoration: inherit;
	text-decoration: inherit;
}

h1 {
	margin-block: 1rem;
	font-size: 2em;
}

h2, h3, h4, h5, h6 {
	margin-block: 1em;
	font-size: 1.4em;
	font-weight: bold;
}

p {
	margin-block: 0.8em;
}

ul {
	margin-block: 0.8em;
	margin-inline: 0;
	padding-inline-start: 1em;
	list-style-type: square;
}

dl {
	margin-block: 0.8em;
	margin-inline: 0;
	list-style-type: square;
}

dt {
	/* display: list-item; */
	display: block;
	font-weight: bold;
}

dd {
	display: block;
	margin-inline-start: 1em;
}

small {
	font-size: 0.8em;
	opacity: 70%;
}


button {
	appearance: none;
	writing-mode: horizontal-tb;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font: inherit;
	cursor: pointer;
}

code {
	padding-block: 0.15em;
	padding-inline: 0.3em;
	font-family: var(--font-code);
	font-size: 0.95em;
}

figure {
	margin: 0;
}

rt {
	font-size: max(0.7em, 0.7rem);
}

table {
	border-collapse: collapse;

	th, td {
		padding: 4px;
		border: 1px solid;
		text-align: start;
	}
}


/* ================================================================
 * フォーム要素
 * ================================================================ */

button, input, textarea, select {
	-webkit-appearance: none;
	-moz-appearance: none;
	-o-appearance: none;
	appearance: none;
	outline: none;
	margin: 4px;
	padding-block: 0.2em;
	padding-inline: 0.4em;
	background: transparent;
	border: 1px solid;
	border-radius: 0px;
	font: inherit;
	color: inherit;
}
:disabled {
	cursor: not-allowed;
}

button, input:is([type="radio"], [type="checkbox"], [type="reset"], [type="submit"]), select {
	cursor: pointer;
}

:is(button, input:is([type="reset"], [type="select"])):hover {
	text-decoration-line: underline;
}
