@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap");
/* Reset */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border: 0;
	vertical-align: baseline;
	background: transparent;
	font-weight: inherit;
	font-size: inherit;
	font-style: inherit;
	-webkit-tap-highlight-color: transparent;
}

article,
aside,
details,
figcaption,
figure,
picture,
main,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block;
}

ul,
ol {
	list-style: none;
}

blockquote,
q {
	quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
	empty-cells: show;
}

button {
	font-family: inherit;
}

/*----------
	vars
----------*/
:root,
::before, ::after {
	/* color */
	--color-border: #ddd;
	--color-bg: #ffffff;
	--color-text: #222;
	--color-text-caption: #666;
	--color-text-link: #060332;
}

/*----------
	base
----------*/
html {
	width: 100%;
	font-size: 62.5%;
	background-color: #fff;
}

body {
	font-size: 1.4rem;
	line-height: 1.6;
	font-family: "Noto Sans JP", "ヒラギノ角ゴシック", "Hiragino Sans", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "メイリオ", Meiryo, sans-serif;
	letter-spacing: 0;
	color: var(--color-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: 100%;
}
@media (min-width: 1024px) {
	body {
		font-size: 1.6rem;
	}
}

a {
	text-decoration: underline;
	color: var(--color-text-link);
}
@media (hover: hover) {
	a {
		transition: opacity 0.2s linear;
	}
	a:hover {
		opacity: 0.6;
	}
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}

sup {
	font-size: 70%;
	vertical-align: top;
	position: relative;
	top: -0.1em;
}

/*----------
	layout
----------*/
.root {
	width: 100%;
	padding: 0 20px;
	overflow: hidden;
}
@media (min-width: 1024px) {
	.root {
		padding-left: 380px;
		padding-right: 40px;
	}
}

.button-toggle {
	display: block;
	width: 40px;
	height: 40px;
	position: fixed;
	top: 10px;
	left: 10px;
	transition: transform 0.2s ease-out;
	background: url(./icon-menu.svg) no-repeat center/contain;
}
.button-toggle.active {
	transform: translateX(340px);
	background-image: url(./icon-arrow-left.svg);
}
@media (min-width: 1024px) {
	.button-toggle {
		display: none;
	}
}

.index-anchor {
	width: 340px;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	transform: translateX(-100%);
	transition: transform 0.2s ease-out;
	background-color: var(--color-bg);
}
.index-anchor.active {
	transform: translateX(0);
}
@media (min-width: 1024px) {
	.index-anchor {
		transform: translateX(0);
	}
}
.index-anchor header {
	padding: 30px 20px 10px 20px;
	border-bottom: #003410 1px solid;
}
.index-anchor header p {
	font-size: 1.3rem;
	color: var(--color-text-link);
}
.index-anchor > nav {
	height: calc(100% - 100px);
	overflow-y: auto;
}
.index-anchor > nav > ul {
	padding: 30px 0 60px 10px;
	font-size: 1.2rem;
}
.index-anchor > nav > ul > li + li {
	margin-top: 5px;
}
.index-anchor > nav > ul a {
	display: block;
	padding: 5px 0 5px 10px;
	text-decoration: none;
	transition: background-color 0.2s linear;
}
.index-anchor > nav > ul a.active {
	background-color: #e4efff;
}

h1 {
	margin: 64px 0 32px;
	padding-bottom: 16px;
	font-size: 3rem;
	font-weight: bold;
	line-height: 1.2;
	border-bottom: 1px solid var(--color-border);
}

h2 {
	margin: 40px 0 24px;
	font-size: 2.4rem;
	font-weight: bold;
	line-height: 1.4;
}

h3 {
	margin: 24px 0;
	font-size: 2rem;
	font-weight: bold;
	line-height: 1.4;
}

p {
	margin: 16px 0;
}
p > span {
	font-size: 1.2rem;
	color: var(--color-text-caption);
}

table {
	width: auto !important;
	max-width: 100%;
	text-align: left;
	border: none;
	font-size: 1.4rem;
	line-height: 1.4;
}

th, td {
	width: auto !important;
	padding: 8px !important;
	border: 1px solid #000;
	vertical-align: top;
}
th p, td p {
	margin: 0;
	font-size: 1.4rem !important;
	line-height: 1.4 !important;
	font-family: "ヒラギノ角ゴシック", "Hiragino Sans", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "メイリオ", Meiryo, sans-serif !important;
}
th p > span, td p > span {
	color: var(--color-text);
}

tr {
	height: auto !important;
}

th {
	font-weight: bold;
	background-color: var(--color-bg);
}

col {
	width: auto !important;
}

div:has(> table) {
	width: auto;
	max-width: 100%;
	overflow: auto;
}
.main-title > h1 {
	margin: 64px 0 32px;
	padding-bottom: 16px;
	font-size: 3.5rem;
	font-weight: bold;
	line-height: 1.7;
	border-bottom: none;
}
