/* ---- お知らせ一覧ページ (news-archive.css) ---- */
.head-container {
	width: 100%;
	height: 100%;
	padding-bottom: 50px;
}
.head-container > * {
	max-width: 1728px;
	max-height: 300px;
	margin: 0 auto;
}
.news-title-header {
	display: flex;
	align-items: center;
	color: #fff;
	font-family: 'Plus Jakarta Sans';
	font-size: 14px;
	font-style: normal;
	font-weight: 700;
	line-height: normal;
	padding: 114px 12px 20px;
}
.page-header {
	height: 350px;
	margin: 10px auto;
	padding: 10px 23px;
	font-family: 'Noto Sans JP';
	position: relative;
	overflow: hidden;
}

.page-header::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, #5cb531, #219651);
	z-index: 1;
}

.page-header::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(180deg, #c8dcd0 13.32%, #fff 64.82%);
	mix-blend-mode: multiply;
	z-index: 2;
}

.page-header .head-container {
	position: relative;
	z-index: 3;
}
.page-header .head-container h1 {
	color: #fff;
	font-family: 'Noto Sans JP';
	font-size: 38px;
	font-style: normal;
	font-weight: 700;
	line-height: normal;
}
.page-header .head-container p {
	color: #fff;
	font-family: 'Noto Sans JP';
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 26px;
}

/* フィルタボタン */
.news-filter {
	display: flex;
	justify-content: center;
	margin-bottom: 20px;
	margin-top: 80px;
}
.news-filter-mobile {
	display: none;
}
.filter-btn {
	background: #e9f5e3;
	color: #5cb531;
	border-top: 1px solid #5cb531;
	border-left: none;
	border-right: 1px solid #5cb531;
	border-bottom: 1px solid #5cb531;
	padding: 10px 20px;
	margin: 0;
	cursor: pointer;
	/* 4カラム */
	width: 420px;
	height: 60px;
	/* テキストを中央揃えにするための追加スタイル */
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none; /* リンクの下線を削除 */
	text-align: center;
	font-family: 'Noto Sans JP';
	font-size: 14px;
}

/* 一番左のボタン（新着）にだけ左ボーダーを適用 */
.filter-btn:first-child {
	border-left: 1px solid #5cb531;
}

/* アクティブ時のスタイル */
.filter-btn.active {
	color: white;
	font-weight: bold;
	/* 背景はグラデーション 0% #5CB531 100% #219651 */
	background: #5cb531;
	background: -moz-linear-gradient(top, #5cb531 0%, #219651 100%);
	background: -webkit-linear-gradient(top, #5cb531 0%, #219651 100%);
	background: linear-gradient(to bottom, #5cb531 0%, #219651 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5cb531', endColorstr='#219651',GradientType=0 );
}

/* ニュース一覧 */
.news-list {
	display: block;
}
.news-list-mobile {
	display: none;
}
.news-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding-bottom: 50px !important;
	padding: 0 118px;
}
.news-list .news-container {
	width: 1708px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

/* 通常のニュース項目 */
.news-item {
	width: 100%;
	position: relative;
	/* padding: 10px 0 !important; */
	border-top: 1px solid #e0e0e0;
}

/* 最終行だけ border-bottom を追加（PHPの修正を適用） */
.news-list .last-news-item {
	border-bottom: 1px solid #ddd;
}

.news-item a {
	display: flex;
	flex-direction: row;
	align-items: center;
	position: relative;
	padding: 0 20px;
	text-decoration: none;
	/* color: inherit; */
	font-family: 'Noto Sans JP';
	font-size: 12px;
	color: gray;
}

.news-date {
	font-size: 14px;
	color: gray;
	padding: 33px 20px;
}

.news-title {
	font-family: 'Noto Sans JP';
	font-size: 14px;
	padding-right: 80px; /* 矢印分の余白を追加 */
	flex: 1; /* フレックスアイテムとして拡張 */
}

/* 矢印アイコンは右端から50pxの位置に配置 */
.news-arrow {
	position: absolute;
	right: 50px;
	display: flex;
	align-items: center;
}
.news-date,
.news-category {
	display: inline-block;
	width: 160px;
	text-align: left;
}
.news-category {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
	width: auto;
	text-align: left;
	border: none;
	padding: 0;
}

.category-tag {
	border-radius: 20px;
	border: 1px solid #828282;
	padding: 2px 10px;
	text-align: center;
	color: #828282;
	display: inline-block;
	font-size: 12px;
}

/* カテゴリタグごとの色分け（オプション） */
.category-tag:nth-child(1) {
	border-color: #5cb531;
	color: #5cb531;
}

.category-tag:nth-child(2) {
	border-color: #219651;
	color: #219651;
}

/* ページネーション */
.pagination {
	display: flex;
	justify-content: center;
	margin: 30px 0;
}

.pagination ul {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0;
}

.pagination li {
	margin: 0 5px;
}

.pagination a,
.pagination span {
	display: inline-block;
	padding: 5px 10px;
	border-radius: 50px;
	text-decoration: none;
	font-weight: bold;
	color: #828282;
}

.pagination a:hover {
	background-color: #828282;
	color: white;
}

.pagination .current {
	background-color: #5cb531; /* グリーンの背景色を追加 */
	color: white; /* テキストを白に */
	font-weight: bold;
	border-radius: 50px; /* 円形を維持 */
}
.news-list {
	display: block;
}
.news-list-mobile {
	display: none;
}
/* レスポンシブ対応 */
@media (max-width: 1200px) {
	.news-filter {
		flex-wrap: wrap;
		margin-top: 40px;
	}

	.filter-btn {
		width: 100%;
	}

	.news-list {
		flex-direction: column;
		align-items: center;
	}

	.news-item {
		width: 100%;
		max-width: 800px;
	}
}

@media (max-width: 768px) {
	.page-header {
		height: 200px;
	}
	.page-header .head-container h1 {
		font-size: 24px;
	}
	.page-header .head-container p {
		font-size: 14px;
	}
	.news-title-header {
		margin: 30px 0 10px;
		padding: 0;
	}
	.news-section {
		padding: 10px 20px;
	}
	.news-header {
		flex-direction: column; /* 縦並びに */
		align-items: flex-start; /* 左寄せ */
	}
	.news-list {
		flex-direction: column; /* 縦並びに */
		align-items: center; /* 中央揃え */
		/* 幅固定 */
		width: 100%;
		max-width: 100%;
		/* 高さ固定 */
		height: 100%;
		white-space: normal; /* 必要に応じて折り返し */
		font-family: 'Noto Sans JP';
		font-size: small;
		padding: 0 15px;
		box-sizing: border-box;
	}
	.news-more {
		margin-top: 20px; /* 上の余白を追加 */
	}
	.news-item a {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		padding: 10px 10px;
		position: static;
		text-decoration: none;
		color: inherit;
	}
	/* 日付とカテゴリを同じ行に */
	.news-date,
	.news-category {
		display: inline-flex;
		flex-wrap: wrap;
		gap: 5px;
		padding: 0;
		border: none;
		width: auto;
	}

	/* スマホ表示時のカテゴリタグのスタイル */
	.category-tag {
		font-size: 11px;
		padding: 1px 8px;
		margin-left: 10px;
	}

	/* メタ情報（日付とカテゴリ）の配置調整 */
	.news-meta {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		margin-bottom: 5px;
		width: 100%;
	}
	.news-title {
		margin-top: 5px;
		width: 100%;
		white-space: normal; /* allow text to wrap normally */
		word-break: break-word; /* break long words if necessary */
		overflow-wrap: break-word; /* older name for the same property */
	}
	/* 矢印は非表示 */
	.news-arrow {
		display: none;
	}
	.news-filter {
		padding: 0 10px;
	}
	.filter-btn {
		border-left: 1px solid #5cb531;
	}
	.news-filter {
		display: none;
	}
	.news-filter-mobile {
		display: flex;
		justify-content: center;
		margin: 20px 10px;
	}
	select {
		width: 100%;
		height: 40px;
		border: 1px solid #5cb531;
		border-radius: 5px;
		padding: 0 10px;
	}

	/* .mobile-break を表示し改行スペースを追加 */
	.mobile-break {
		display: block;
		margin-bottom: 5px;
	}
	/* スマホ用ニュースリストの全体調整 */
	.news-list-mobile {
		display: block; /* スマホ用リストをSP表示では表示 */
		flex-direction: column;
		align-items: center;
		width: 100%;
		max-width: 100%;
		height: 100%;
		white-space: normal;
		font-family: 'Noto Sans JP';
		font-size: small;
		padding: 0 15px;
		box-sizing: border-box;
	}
	
	/* PC・モバイル共通のニュースリスト調整 */
	.news-list {
		flex-direction: column;
		align-items: center;
		width: 100%;
		max-width: 100%;
		height: 100%;
		white-space: normal;
		font-family: 'Noto Sans JP';
		font-size: small;
		padding: 0 15px;
		box-sizing: border-box;
	}
	.news-list .news-container {
		width: 100%;
	}
	
	/* ニュース項目の共通スタイル */
	.news-list .news-item,
	.news-list-mobile .news-item {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		overflow: hidden;
	}
	
	.news-list .news-item a,
	.news-list-mobile .news-item a {
		display: block;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding: 15px 10px;
		word-break: break-word;
		overflow-wrap: break-word;
	}
	
	/* メタ情報の共通スタイル */
	.news-list .news-meta,
	.news-list-mobile .news-meta {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		margin-bottom: 8px;
		width: 100%;
		gap: 8px;
	}
	
	/* タイトルの共通スタイル */
	.news-list .news-title,
	.news-list-mobile .news-title {
		margin-top: 8px;
		width: 100%;
		white-space: normal;
		word-break: break-word;
		overflow-wrap: break-word;
		display: block;
		font-size: 14px;
		line-height: 1.4;
		padding-right: 0; /* スマホでは padding-right を無効化 */
	}
	
	/* PC用リストの非表示とモバイル用リストの表示 */
	.news-list {
		display: none; /* PC用リストをSP表示では非表示 */
	}
	
	/* 矢印は非表示 */
	.news-arrow {
		display: none;
	}
}

/* ズーム150%対応 */
@media (min-width: 769px) {
	html.zoomed-150 .news-title {
		padding-right: 100px !important; /* 150%ズーム時により多くの余白を確保 */
		font-size: 13px !important; /* フォントサイズを少し小さく */
	}
}
@media (max-width: 768px) {
	html.zoomed-150 .news-title {
		padding-right: 0 !important; /* スマホではズーム時もpadding-rightを無効化 */
		font-size: 13px !important;
	}
}

html.zoomed-150 .news-arrow {
	right: 40px !important; /* 矢印をより左に移動 */
}

html.zoomed-150 .news-date {
	padding: 30px 15px !important; /* パディングを調整 */
	font-size: 13px !important; /* フォントサイズを調整 */
}

html.zoomed-150 .category-tag {
	font-size: 11px !important; /* カテゴリタグのサイズを調整 */
	padding: 1px 8px !important; /* パディングを調整 */
}

/* 高ズーム対応 */
@media (min-width: 769px) {
	html.zoomed-high .news-title {
		padding-right: 120px !important; /* 高ズーム時にさらに多くの余白を確保 */
		font-size: 12px !important; /* フォントサイズをより小さく */
	}
}
@media (max-width: 768px) {
	html.zoomed-high .news-title {
		padding-right: 0 !important; /* スマホでは高ズーム時もpadding-rightを無効化 */
		font-size: 12px !important;
	}
}

html.zoomed-high .news-arrow {
	right: 30px !important; /* 矢印をさらに左に移動 */
}

html.zoomed-high .news-date {
	padding: 25px 12px !important; /* パディングをさらに調整 */
	font-size: 12px !important; /* フォントサイズをさらに調整 */
}

html.zoomed-high .category-tag {
	font-size: 10px !important; /* カテゴリタグのサイズをさらに調整 */
	padding: 1px 6px !important; /* パディングをさらに調整 */
}

/* iPhone 13 対応（390px幅） */
@media (max-width: 390px) {
	/* ページ全体の横幅制御 */
	body {
		overflow-x: hidden;
	}
	
	.page-header {
		padding: 10px 10px;
		margin: 0;
		width: 100%;
		box-sizing: border-box;
	}
	
	.head-container {
		padding: 0 10px;
		box-sizing: border-box;
	}
	
	.page-header .head-container h1 {
		font-size: 28px;
		line-height: 1.2;
	}
	
	.page-header .head-container p {
		font-size: 14px;
		line-height: 1.4;
	}
	
	/* ニュースコンテナの幅制御 */
	.news-container {
		width: 100%;
		max-width: 390px;
		padding: 0 5px;
		box-sizing: border-box;
		margin: 0 auto;
	}
	
	.news-list,
	.news-list-mobile {
		padding: 0 5px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}
	
	/* ニュース項目の幅制御強化 */
	.news-item {
		width: 100%;
		max-width: 100%;
		margin-bottom: 15px;
		box-sizing: border-box;
		overflow: hidden;
	}
	
	.news-item a {
		padding: 10px 8px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		display: block;
		overflow: hidden;
		word-break: break-word;
		overflow-wrap: break-word;
	}
	
	/* タイトルの改行とはみ出し防止 */
	.news-title {
		font-size: 13px;
		line-height: 1.4;
		word-break: break-word;
		overflow-wrap: break-word;
		hyphens: auto;
		width: 100%;
		max-width: 100%;
		display: block;
		margin-top: 8px;
		white-space: normal;
	}
	
	/* 日付の調整 */
	.news-date {
		font-size: 12px;
		white-space: nowrap;
		display: inline-block;
		margin-right: 10px;
		flex-shrink: 0;
	}
	
	/* カテゴリタグの調整 */
	.news-category {
		display: inline-flex;
		flex-wrap: wrap;
		gap: 4px;
		align-items: center;
	}
	
	.category-tag {
		font-size: 10px;
		padding: 2px 6px;
		margin: 0 2px 0 0;
		white-space: nowrap;
		flex-shrink: 0;
	}
	
	/* メタ情報の配置調整 */
	.news-meta {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px;
		margin-bottom: 8px;
	}
	
	/* 改行要素の表示 */
	.mobile-break {
		display: block;
		height: 8px;
		width: 100%;
	}
	
	/* フィルターボタンの調整 */
	.news-filter-mobile {
		padding: 0 5px;
		margin: 15px 0;
		width: 100%;
		box-sizing: border-box;
	}
	
	.news-filter-mobile select {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding: 8px;
	}
	
	/* ページネーションの調整 */
	.pagination {
		padding: 0 5px;
		margin: 20px 0;
		width: 100%;
		box-sizing: border-box;
	}
	
	.pagination ul {
		justify-content: center;
		flex-wrap: wrap;
		margin: 0;
		padding: 0;
	}
	
	.pagination li {
		margin: 2px;
	}
	
	.pagination a,
	.pagination span {
		padding: 6px 10px;
		font-size: 14px;
		min-width: 32px;
		text-align: center;
		box-sizing: border-box;
	}
}
