@charset "utf-8";
/* CSS Document */
:root {
  --anchor-color1: #52A49A;
  --anchor-color2:#659FD1;
  --active-color:#70AF8F;
	--header-bg: #273597;
  --footer-bg: #999999;
	--heading-color1:#2A9A60;
	--heading-color2:#337ab7;
}
/* ========================================================
 * カテゴリートップ
 * ======================================================== */

main.categorytop{
	padding: 20px 0 50px;
}
main.categorytop .container{
	width:95%;
	max-width: 980px;
	margin: 0 auto;
}
main.categorytop .title {
	border-bottom: 2px solid var(--heading-color1);
	margin-bottom: 40px;
}
main.categorytop .title h1{
	font-size: 1.6rem;
	font-weight: normal;
	color: var(--heading-color1);
	margin-bottom: 20px;
}

/* ========================================================
 * index ページ
 * ======================================================== */

main.toppage{
	padding: 20px 0 50px;
}
main.toppage .container{
	width:95%;
	max-width: 980px;
	margin: 0 auto;
}
.category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
	align-items: start;
}
.category-card {
	background: #fff;
	border: 1px solid #e6e6e6;
	border-top: 3px solid var(--heading-color1);
	border-radius: 6px;
	padding: 18px 22px 20px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.05);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
/*.category-card:hover {
	box-shadow: 0 6px 16px rgba(0,0,0,0.09);
	transform: translateY(-2px);
}*/
.category-card--wide {
	grid-column: 1 / -1;
}
.category-card > a {
	display: inline-block;
	text-decoration: none;
}
.category-card h3 {
	font-size: 1.15rem;
	font-weight: normal;
	color: var(--heading-color1);
	margin-bottom: 14px;
	padding-bottom: 4px;
	border-bottom: 2px solid transparent;
	transition: border-color 0.3s ease, opacity 0.3s ease;
}
.category-card h3::after {
	content: "\00a0＞";
	font-size: 0.8em;
	color: var(--anchor-color1);
}
.category-card > a:hover h3 {
	border-color: var(--heading-color1);
	opacity: 0.75;
}
.category-card ul {
	margin-left: 0.25em;
	columns: 1;
}
.category-card--wide ul {
	columns: 2;
	column-gap: 30px;
}
.category-card ul li {
	font-size: 0.85rem;
	line-height: 1.6;
	margin-bottom: 6px;
	display: flex;
	gap: 5px;
}
.category-card ul li::before {
	content: "∟";
	color: #CCCCCC;
	flex-shrink: 0;
}
.category-card ul li a {
	color: #333;
	text-decoration: none;
}
.category-card ul li a:hover {
	color: var(--anchor-color2);
	text-decoration: underline;
	text-underline-offset: 3px;
	opacity: 0.85;
}
/* スマホ用 */
@media (max-width: 767px) {
	.category-grid {
		grid-template-columns: 1fr;
	}
	.category-card--wide ul {
		columns: 1;
	}
}
/* ========================================================
 * サイドバーの目次タイル（aside内は幅が狭いので1カラム固定）
 * ======================================================== */
aside .category-grid {
	grid-template-columns: 1fr;
	gap: 14px;
	margin-top: 16px;
}
aside .category-card {
	padding: 14px 16px 16px;
}
aside .category-card h3 {
	font-size: 0.95rem;
	margin-bottom: 10px;
}
aside .category-card--wide ul {
	columns: 1;
}
aside .category-card ul li {
	font-size: 0.8rem;
}
/* ========================================================
 * article ページ
 * ======================================================== */

main.article_sideber{
	width:95%;
	max-width: 980px;
	margin: 0 auto;
	padding: 20px 0 50px;
	display: flex;
}
main.article_sideber article{
	width:70%;
}
main.article_sideber aside{
	width:30%;
	padding-left:20px;
}
/* スマホ用 */
@media (max-width: 767px) {
	main.article_sideber{
		width:95%;
		max-width: 980px;
		margin: 0 auto;
		padding: 20px 0 50px;
		display: block;
	}
	main.article_sideber article{
	width:100%;
	}
	main.article_sideber aside{
		width:100%;
		padding:0 20px;
	}

}

/* ========================================================
 * ヘッダの青色帯タイトル
 * ======================================================== */
header {
	width:100%;
	background-color:var(--header-bg);
	color:#fff;
	padding:14px 0;
	margin-bottom: 20px;
}
header .container{
	width: 95%;
	max-width: 980px;
	margin: 0 auto;
}
header h1 {
    font-size:38px;
    margin-bottom:10px;
    font-weight:normal;
    box-sizing:border-box;
}
header h2 {
    font-size:14px;
    margin:0;
    line-height:1.8;
    font-weight:normal;
    box-sizing:border-box;	
}
header a,
header a:hover{
	color:inherit!important;
	text-decoration:none!important;
}

/* スマホ用 */
@media (max-width: 767px) {
	header {
	}
}
/* ========================================================
 * フッターのグレイ色帯タイトル
 * ======================================================== */
footer {
	width:100%;
	background-color:var(--footer-bg);
	color:#fff;
	padding:20px 0 30px;
}
footer .container{
	width: 95%;
	max-width: 980px;
	margin: 0 auto;
}
footer p {
  font-size:0.8rem;
	text-align: center;
}
/* スマホ用 */
@media (max-width: 767px) {
}
/* ========================================================
 * ヘッダのカテゴリー一覧
 * ======================================================== */
.nav_wrapper {
	margin-bottom: 20px;
}
.nav_wrapper .container{
	width: 95%;
	max-width: 980px;
	margin: 0 auto;
}

.nav_wrapper ul.nav_main {
	margin-bottom: 20px;
}
.nav_wrapper ul.nav_main li {
	display: inline-block;
	font-size: 0.9rem;
	border-right: 1px solid #CCC;
	margin-right: 10px;
	padding-right: 10px;
	line-height: 2;
}
.nav_wrappers ul.nav_main li:last-child {
	background-image:none;
}
.nav_wrapper a {
	color:inherit;
	text-decoration:none;
}
.nav_wrapper a:hover {
	color:inherit;
	text-decoration:underline;
	text-underline-offset:5px;
	opacity: 0.8;
}
.nav_wrapper ul.nav_sub {
	display: block;
}
.nav_wrapper ul.nav_sub li{
	display: inline;
	font-size: 0.8rem;
	margin-right: 0.5em;;
}
.nav_wrapper ul.nav_sub li:last-child{
	color: var(--heading-color2);
}
.nav_wrapper ul.nav_sub li::after{
	content:">";
	margin-left: 0.5em;
}
.nav_wrapper ul.nav_sub li:last-child::after {
	content:"";
}

/* ========================================================
 * ヘッダのカテゴリー一覧 アクティブ
 * ======================================================== */
#cat_raw-materials #nav_raw-materials,
#cat_intermediates #nav_intermediates,
#cat_material #nav_material,
#cat_marchandise #nav_marchandise,
#cat_user #nav_user,
#cat_labor-costs #nav_labor-costs,
#cat_rules #nav_rules,
#cat_raw-materials #sub_raw-materials,
#cat_intermediates #sub_intermediates,
#cat_material #sub_material,
#cat_marchandise #sub_marchandise,
#cat_user #sub_user,
#cat_labor-costs #sub_labor-costs,
#cat_rules #sub_rules{
	color: var(--active-color);
}



/* ========================================================
 * カテゴリートップのカード一覧（画像＋タイトル＋説明文）
 * ======================================================== */
.summary {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 30px;
}
.summary-wrapper {
	background: #fff;
	border: 1px solid #e6e6e6;
	border-top: 3px solid var(--heading-color1);
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 2px 6px rgba(0,0,0,0.05);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
/*.summary-wrapper:hover {
	box-shadow: 0 6px 16px rgba(0,0,0,0.09);
	transform: translateY(-2px);
}*/
.summary--content a {
	display: block;
	text-decoration: none;
}
.summary--content img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	display: block;
}
.summary--content h3 {
	font-size: 1.1rem;
	color: var(--heading-color2);
	margin: 14px 20px 8px;
	line-height: 1.5;
	font-weight: normal;
}
.summary--content p{
  font-size: 0.9rem;
	line-height: 1.6;
	color: #555;
	margin: 0 20px 16px;
}
.summary--content span.read-more {
	color: var(--anchor-color2);
}
.summary--content a:hover span.read-more {
	text-decoration:underline;
	text-underline-offset:3px;
}
/**********************************************************/
article .title {
	border-bottom: 2px solid var(--heading-color2);
	margin-bottom: 20px;
}
article .title h1{
	font-size: 1.6rem;
	font-weight: normal;
	color: var(--heading-color2);
	margin-bottom: 20px;
}
/**********************************************************/
article section{
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid #CCCCCC;
}

article section h4{
	font-size: 1rem;
	margin-bottom: 20px;
	line-height: 1.6;
}
article section p{
	font-size: 0.9rem;
	margin-bottom: 10px;
	line-height: 1.6;
}
article section h5{
	font-size: 0.9rem;
	margin-bottom: 10px;
	line-height: 1.6;
}
article section p a {
	color: var(--anchor-color2);
}
article section p a:hover{
	text-decoration:underline;
	text-underline-offset:3px;
}

/*------------ポップアップ-------------------*/
/* サムネイル画像の見た目（お好みで調整） */
.thumb-link img {
  width: 80%;
	max-width: 100%;
  cursor: pointer;
}

/* ポップアップの初期状態（隠す） */
.popup-box {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.7);
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

/* :target でURLのハッシュが一致した時に表示する */
.popup-box:target {
  display: flex;
}

/* 背景をクリックして閉じるエリア */
.close-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ポップアップの中身 */
.popup-content {
  position: relative;
  max-width: 80%;
  max-height: 80%;
  text-align: center;
}

.popup-content img {
  max-width: 100%;
  max-height: 80vh;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  border-radius: 4px;
	display: block;
}

/* 閉じるボタン */
.close-btn {
  display: inline-block;
  margin-top: 10px;
  padding: 6px 12px;
  background: #fff;
  color: #333;
  text-decoration: none;
  border-radius: 4px;
	font-size: 12px;
}

