@charset "utf-8";
/* CSS Document */

/*==========
変数
==========*/
:root {
	--bg_color1: #f8f8f8;
	--bg_color2: #FFF;
	--font_color1: #292929;
	--main_color: #07c477;
	--sub_color1: #34c288;
	--sub_color2: #85e6be;
	--sub_color3: #139661;
	--sub_color4: #a3e6ca;
	--border_color1: #e5e7e8;
	--footer_color: #34c288;
	--a_color: #29A6FF;
	--a_hover_color: #ff29b8;
}

/*==========
共通
==========*/
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	height: 100%;
}

body {
	font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1;
	color: var(--font_color1);
	font-feature-settings: "palt"1;
	-webkit-text-size-adjust: 100%;
	background-color: var(--bg_color1);
	position: relative;
	margin: 0;
	overflow-wrap: break-word;
	min-height: 100svh;
}

a {
	color: var(--a_color);
	text-decoration: none;
	transition: .3s;
}

a:hover {
	transition: .3s;
	color: var(--a_hover_color);
}

body {
	animation: fade .3s;
}

@keyframes fade {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

img {
	max-width: 100%;
	height: auto;
}

.wrap {
	width: 100%;
	background-color: var(--bg_color2);
	padding-bottom: 10rem;
	border: solid 1px var(--border_color1);
}

.container {
	width: 96%;
	margin-inline: auto;
}

@media (min-width: 768px) {
	body {
		font-size: 1.65rem;
	}

	.wrap {
		width: 780px;
		margin-inline: auto;
	}

	.container {
		width: 92%;
	}

}


/*==========
MV
==========*/
.mv {
	border-bottom: solid 1px var(--border_color1);
	padding-bottom: 3rem;
}

@media (min-width: 768px) {
	.mv {
		margin-bottom: 60px;
	}
}


/*==========
セクション
==========*/
h1 {
	color: var(--main_color);
	font-size: 2.8rem;
	font-weight: 600;
	line-height: 1.4;
	margin-top: 3rem;
}

section h2 {
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 4rem 0 2rem;
	padding: .6rem .9rem;
	border-radius: 3px;
	background-color: var(--sub_color2);
}

section h3 {
	font-size: 2.2rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 4rem 0 2rem;
	padding: .7rem .5rem;
	border-bottom: solid 3px var(--main_color);
}

section h4 {
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 4rem 0 1.5rem;
	padding: .2rem 2rem .2rem .5rem;
	border-bottom: solid 2px var(--main_color);
	inline-size: fit-content;
}

section h5 {
	color: var(--sub_color3);
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 4rem 0 2rem;
}


section p {
	line-height: 1.6;
	margin: 1rem 0;
}

section ul {
	list-style: disc;
	padding-left: 3rem;
	margin-bottom: 2rem;
}

section ul li {
	line-height: 1.6;
	margin: 1rem 0;
}

@media (min-width: 768px) {
	.section_title {
		font-size: 4.2rem;
	}
}

table.detail {
	width: 100%;
	border: solid 1px var(--border_color1);
	margin: 4rem 0 2rem;
}

table.detail th,
table.detail td {
	border: solid 1px var(--border_color1);
	padding: 2rem .5rem;
	vertical-align: middle;
	line-height: 1.5;
}

table.detail th {
	font-weight: 400;
	background-color: var(--sub_color1);
	color: #FFF;
}



.table_scroll_wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin-bottom: 1rem;
}

.table_scroll_wrap table {
	border-collapse: collapse;
	width: 100%;
	min-width: 720px;
}

.table_scroll_wrap th,
.table_scroll_wrap td {
	border: 1px solid var(--border_color1);
	white-space: nowrap;
	line-height: 1.4;
	vertical-align: middle;
}

.table_scroll_wrap th {
	font-size: 1.4rem;
	background-color: var(--sub_color4);
	padding: .6rem;
}

.table_scroll_wrap td {
	font-size: 1.4rem;
	padding: 1.2rem .6rem;
}

.table_scroll_wrap tbody tr:nth-child(even) {
	background-color: #ededed;
}


/*==========
フッター
==========*/
.site_footer {
	background-color: var(--footer_color);
	text-align: center;
	padding: 5rem 0 1rem;
}

.site_footer_link {
	margin: 0 auto 3rem;
}

.site_footer_link li {
	display: inline-block;
	padding: 0 1rem;
}

.site_footer_link li a {
	color: #FFF;
}

.site_footer_copyright {
	font-size: 1.25rem;
	color: #FFF;
}


/*==========
404
==========*/
.not_found {
	height: 100vh;
	padding-top: 60px;
}

.not_found_body {
	width: 90%;
	margin: 0 auto;
}

.not_found_body p {
	line-height: 1.5;
	margin-bottom: 60px;
}

.section_link {
	display: grid;
	place-items: center;
	background-color: var(--a_color);
	height: 60px;
	max-width: 420px;
	margin: 0 auto;
}

.section_link span {
	color: #FFF;
	font-weight: 700;
}
