/* 初期化
-------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Bayon&family=Noto+Sans+JP:wght@500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bayon&family=Josefin+Sans:ital,wght@1,200&family=Noto+Sans+JP:wght@500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Didact+Gothic&family=Hind:wght@400;600&display=swap');
html { font-size: 15px; }
body {
	font-family: 'Noto Sans JP', sans-serif;
	color: #2D2D2D;
	background: #FFFFFF;
	margin: 0;
}
.bayon {
	font-family: 'Bayon', sans-serif;
}
.josefin {
	font-family: 'Josefin Sans', sans-serif;
}
.noto_serif {
	font-family: 'Noto Serif JP', serif;
}
h2 { font-size: 56px; line-height: 64px; }
h3 { font-size: 24px; line-height: 36px; }
.h2 { font-size: 56px; line-height: 64px; }
.h3 { font-size: 24px; line-height: 36px; }
p {
	font-size: 15px;
	line-height: 24px;
	letter-spacing: .1rem;
	margin-block-start: 0;
	margin-block-end: 0;
}
span {
	font-size: 12px;
	line-height: 21px;
	letter-spacing: .1rem;
}
img { max-width: 100%; }
@media screen and (max-width: 767px) {
	h2 { font-size: 32px; line-height: 64px; }
	h3 { font-size: 16px; line-height: 24px; }
	.h2 { font-size: 32px; line-height: 64px; }
	.h3 { font-size: 16px; line-height: 24px; }
	p {
		font-size: 14px;
		line-height: 21px;
	}
	span {
		font-size: 12px;
		line-height: 18px;
	}
}
ul {
	margin-bottom: 0;
	padding-inline-start: 0;
	margin-block-start: 0;
}
ul li { list-style: none; }
ol { margin-bottom: 0; }
dl { margin-bottom: 0; }
dt, th { font-weight: normal; }
/* dd { text-indent: 1em; } */
caption {
	caption-side: top;
	text-align: center;
}
th, td {
	/* padding: 15px; */
	text-align: left;
}
tfoot td {
	text-align: left;
	font-size: 0.8rem;
}
hr {
	width: 100%;
	background-color: rgb(87, 87, 87);
}
label { margin-bottom: 0; }
input[type="checkbox"] { margin-right: 10px; }
input[type="radio"] { margin: 3px 5px 0px 20px; }
input[type="radio"]:first-child { margin-left: 0px; }
button:focus { outline: none; }
button:disabled { opacity: 0.6; }
footer { width: 100%; }


/* リンク
-------------------------------------- */
a {
	position: relative;
	display: inline-block;
	transition: .3s;
	color: #2D2D2D;
	word-break: break-all;
	text-decoration: none;
}
a::after {
	position: absolute;
	bottom: 0px;
	left: 50%;
	content: '';
	width: 0;
	height: 2px;
	transition: .3s;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}
a.a_header::after { bottom: 10px; }
/* 色と線の適用 */
a.a_red::after { background-color: #CA0009; }
a.a_gray::after { background-color: rgb(107, 107, 107); }
a.a_white::after { background-color: rgb(255, 255, 255); }
a:hover {
	text-decoration: none;
	color: #000;
}
a:hover::after { width: 80%; }
a:hover img,
a:hover div {
	opacity: 0.7;
	filter: alpha(opacity=70);
	transition: .5s;
}
.a_div {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}


/* FLEX BOX
-------------------------------------- */
.flex {
	display: flex;
	justify-content: center;
}
.flex_fix {
	display: flex;
	justify-content: center;
}
.jc_s { justify-content: start; }
.jc_sb { justify-content: space-between; }
.jc_sa { justify-content: space-around; }
.ai_c { align-items: center; }

@media screen and (max-width: 767px) {
	.flex { display: block; }
}


/* GENERAL
-------------------------------------- */
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box
}
.inner {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	box-sizing: border-box;
	padding: 30px;
}
@media screen and (max-width: 767px) {
	.inner {
		width: 90%;
		padding: 0px;
	}
}
.hidden { display: none; }
.sp_hidden { display: block; }
.pc_hidden { display: none; }
@media screen and (max-width: 767px) {
  .sp_hidden { display: none; }
	.pc_hidden { display: block; }
}
.spbr { display: none; }
@media screen and (max-width: 767px) {
	.spbr { display: block; }
}
.pcbr { display: block; }
@media screen and (max-width: 767px) {
	.pcbr { display: none; }
}

.w100 { width: 100%; }
.w50 { width: 50%; }
.h100 { height: 100%; }
.h50 { height: 50%; }

.fwb { font-weight: 700; }

/* font-color */
.fc_green { color: #3EBE73; }
.fc_red { color: #FF5656; }
.fc_blue { color: #187FC4; }
.fc_yellow { color: #FFE077; }
.fc_orange { color: #EF7E12; }
.fc_black { color: #000; }
.fc_white { color: #fff; }
.fc_gold { color: #999071; }
.fc_pink { color: #C46EA5; }

span.text_danger { color: red; }

.bg_light_blue { background: #F5F8FC; }

/* background-color */
.bg_gray { background: rgb(240, 240, 240); }

.yellow_marker {
	background: linear-gradient(transparent 50%, #FFE077 0%);
}
.yellow_marker.inline {
	display: inline-block;
}