@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 #57B567;
	padding: 0;
	margin: 0;
	background: #FFF;
	z-index: 2;
	position: relative;
}

ul.newsList li {
	display: block;
	margin: 10px 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: #57B567;
	font-size: 1.4rem;
	font-weight: 500;
}

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

dl.topicsList {
	-moz-box-shadow: 1px 1px 2px 2px #E3E3E3;
	-webkit-box-shadow: 1px 1px 2px 2px #E3E3E3;
	box-shadow: 0px 0px 2px 2px #E3E3E3;
	padding: 20px;
	border-radius: 10px;
	margin-bottom: 1em;
	line-height: 2em;
}
dl.topicsList dt {
	padding: 0 0 10px 12px;
	margin-bottom: 15px;
	border-bottom: 1px solid #CCC;
	font-weight: 700;
	font-size: 2rem;
	font-family: "M PLUS Rounded 1c", sans-serif;
	transform: rotate(0.05deg);
	position: relative;
}
dl.topicsList dt::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;              /* 上から少し下げる */
  bottom: 9px;           /* 下から少し上げる → 高さを短くする */
  width: 4px;
  background-color: #FF9966;
}

.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;
}

@media (max-width: 1198.98px) {
	.card_container {
		grid-template-columns: repeat(2, 1fr);
	}
}

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

@media (max-width: 767.98px) {
	.card_container {
		grid-template-columns: repeat(1, 1fr);
	}
}

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