@charset "UTF-8";

hr.hr01{
  border-top: 1px solid #bbb;
  border-bottom: 1px solid #fff;
}
hr.hr01:after {
  content: '';
  display: block;
  margin-top: 2px;
  border-top: 1px solid #bbb;
  border-bottom: 1px solid #fff;
}

hr.hr02 {
  border-top: 1px dashed #bbb;
}

hr.hr03 {
	border-top: 1px solid #34759B;
	margin: 10px 0;
}

section {
	width: 100%;
	margin: 0;
	padding: 0;
}

.navbar-brand { /* header title */
	font-size: 2.4rem;
	font-weight: 700;
	margin: 0;
}
a.navbar-brand:visited {
	color: var(--bs-navbar-brand-color);
}

/* ニュースリスト */
ul.newsList {
	display: flex;
	flex-flow: row wrap;
	border-bottom: 1px dotted #999;
	padding: 0;
	background: #FFF;
	z-index: 2;
	position: relative;
}

ul.newsList li {
	display: block;
	margin: 5px 10px;
}

ul.newsList li:nth-child(-n + 3) {
	flex-basis: 90px;
}

ul.newsList li:nth-child(2) {
	color: #fff;
	padding: 0 10px 1px;
	text-align: center;
	background: #7BB431;
	font-size: 1.4rem;
	font-family: "Zen Maru Gothic", serif;
	font-weight: 500;
}

ul.newsList li:nth-child(3) {
	flex-basis: auto;
}

.card_container {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	/*grid-template-columns: repeat( auto-fill, minmax(400px,1fr) ) ; */ /* グリッドアイテム幅は200px～1fr、カラム数は要素が入る数だけ */
	grid-template-rows: auto;
	gap: 15px; /* カード間の隙間 */
	margin-bottom: 3em;
}

.card_container .card {
	display: grid;
	grid-template-rows: subgrid; /* ここでSubgridを使用 */
	grid-row: span 4; /* 4行分のスペースを占めるように調整 */
	gap: 20px; /* カード間の隙間も親要素を継承しているので上書き */
  overflow: hidden;
  min-width: 250px;
  background: #fff;
	filter: drop-shadow(-5px -5px 10px #ffffff) drop-shadow(5px 5px 10px #ededed);
  padding: 20px;
}

.card_container .card h2 {
  padding: 0;
  margin: 0;
  line-height: 1.2em;
  color: #48494e;
	font-size: clamp(2rem, calc(2rem + ((1vw - 0.36rem) * 0.5435)), 2.2rem);
  min-height: 0vw;
	font-weight: 500;
}

.card_container .card p {
  padding: 0;
  margin: 0;
  line-height: 1.5em;
  color: #8a8a8f;
}

.card_container .button a {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #1377BA;
	border: 2px solid #1377BA;
  color: #fff;
	font-weight: 500;
	font-family: "Zen Maru Gothic", serif;
  border-radius: 100px;
  margin: 0 20px;
	text-decoration: none;
	padding: 3px 10px 4px;
}
.card_container .button a:hover {
  color: #3D4070;
	background: #FFF;
}

.br-sm {
  display: none;
}

/* TOP ボタンの枠
-------------------------------------------*/
ul.flex01 {
  display: flex;
	flex-wrap: wrap;
  justify-content: center;
  list-style-type: none;
  padding: 0;
	gap: 10px;
}
ul.flex01 > li {
  width: calc(33% - 4px);
}

/* TOP メニューボタン
-------------------------------------------*/
.msr_btn11,
.msr_btn21 {
  background: linear-gradient(#FEFEFE, #F3F5F5);
  background: -o-linear-gradient(#FEFEFE, #F3F5F5);
  background: -ms-linear-gradient(#FEFEFE, #F3F5F5);
  background: -moz-linear-gradient(#FEFEFE, #F3F5F5);
  background: -webkit-linear-gradient(#FEFEFE, #F3F5F5);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(1.00, #F3F5F5), color-stop(0.00, #FEFEFE));
  border-radius: 10px;
	border: 1px solid #CCCCCC;
  box-sizing: border-box;
	display: block;
  padding: 13px 10px;
  position: relative;
  text-decoration: none;
  transition: 0.2s ease-in-out;
  -o-transition: 0.2s ease-in-out;
  -moz-transition: 0.2s ease-in-out;
  -webkit-transition: 0.2s ease-in-out;
  text-align: center;
  width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
}
.msr_btn11:hover,
.msr_btn21:hover {
  opacity: 0.6;
}
.msr_btn11 i,
.msr_btn21 i {
	color: #1E8590;
  text-align: center;
	font-size: 10rem;
}

.msr_btn_col01 i {
	color: #938CC2!important;
}

.msr_btn11 p,
.msr_btn21 p {
	color: #ff6600;
	font-size: 1.6rem;
  font-weight: bold;
	display: block;
	margin: 0.6em 0.2em 0.2em;
}
.msr_btn11 div,
.msr_btn21 span {
	color: #222;
	text-align: left;
	font-size: 1.4rem;
	display: block;
	text-align: center;
}

@media (min-width: 992px) {
	header .navbar-expand-lg.navbar > .container-fluid {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (max-width: 575.98px) {
  .br-sm {
    display: block;
  }
}

/* 表示領域が991.98px以下の場合に適用するスタイル
-----------------------------------------------------*/
@media print, screen and (max-width: 991.98px) {
	.msr_newslist03 ul li a {
		padding-top: 7px;
	}
	.msr_newslist03 ul li div {
		display:block;
		width: 100%;
		padding-bottom: 5px;
		border-bottom: 1px dotted #CCC;
	}
	.msr_newslist03 ul li p {
		display:block;
		padding-left: 0;
		/*margin-top: 7px;*/
	}
	.msr_newslist03 ul li div p {
		display:table-cell;
		/*margin-bottom: 3px;*/
	}
	.msr_newslist03 ul li a {
		padding-bottom: 0;
	}

	/* TOP ボタンの枠
	-------------------------------------------*/
	ul.flex01 > li {
		width: calc(50% - 5px);
	}

/* TOP 認定関連ボタンの枠
-------------------------------------------*/
	ul.flex03_mn > li {
		width: calc(100% / 3 - 2px);
		min-width: 165px;
	}
}

/* 表示領域が767.98px以下の場合に適用するスタイル
-----------------------------------------------------*/
@media print, screen and (max-width: 767.98px) {
/* TOP ボタンの枠
-------------------------------------------*/
	ul.flex01 {
		flex-direction: column;
		gap: 5px 0;
	}
	ul.flex01 > li {
		width: 100%;
		margin: 0 auto;
	}

/* TOP ボタンの枠中のアイコンと文字
-------------------------------------------*/
	.flex02 {
		display: flex;
		padding: 0;
	}
	.flex02 div:first-of-type {
		margin-right: 10px;
		width: 45px;
		text-align: center;
	}
	.flex02 div:last-of-type {
		width: calc(100% - 50px);
	}

	/* TOP メニューボタン
-------------------------------------------*/
	.msr_btn21 i {
		font-size: 4rem;
	}
	.msr_btn21 p,
	.msr_btn21 span {
		text-align: left;
		margin: 0;
	}
}