/*全体のフォントサイズ*/
html {
	font-size: 18px; 
	font-family: sans-serif;
	height: 100%;
}

* {
	box-sizing: border-box;
	}

.title {
	margin-top: 50px;
	margin-bottom: 0;
	text-align: center;
	}

.subtitle{
	margin:40px 0 20px;
	padding-bottom: 20px;
	text-align: center;
	border-bottom: 3px solid;
	}

.Undertitle{
	margin-top: 50px;
	margin-bottom: 0;
	text-align: center;
	border-bottom: 3px solid;
	}

main {
	margin:10rem auto 10rem auto;
	}

ul {
	list-style: none;
	}

summary {
	display: block;
	}
body {
	margin: 0;
	}

dd {
	padding: 10px 0 0 0;
	}

/* カラー
================================================== */
.C_tag_I {
	background-color: Yellow;
	color: black;
	}

.C_tag_II {
	background-color: #C3B091;
	color: white;
	}

.C_tag_III {
	background-color: #163158;
	color: white;
	}
.main_nav a:hover {
	background-color: #FFFFFF;
	color: #000000;
	border-top: solid 2px #000000;
	border-bottom: solid 2px #000000;
	}

/* ヘッダー(フルスクリーンアコーディオン)
================================================== */
.corporate_icon {
	font-size: 1.5em;
	font-weight: bold;
	z-index: 100; /* 他の要素より前面に表示 */

 	 /* 中央に寄せるために追加 */
	text-align: center;
	flex: 1;
	margin-left: -40px;  /* メニューの幅を考慮して調整 */
	}

.corporate_icon a{
	color: white;
	text-decoration: none;
	}	

	.header_sidemenu {
	display: flex;
	justify-content: space-between; /* 左右配置 */
	align-items: center;
	padding: 10px 20px;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 998; /* 他の要素より前面に表示 */
	box-sizing: border-box;
	}

.menu_container {
	display: flex;
	align-items: center;
	}

.menu_container details {
	display: flex;
	align-items: center;
	}

.menu_icon {
	font-size: 200%;
	cursor: pointer;
	margin-right: 20px;
	z-index: 1000; /* 他の要素より前面に表示 */
	}

/* メニューのスタイル
-------------------------------------------------- */
.header_sidemenu details {
	position: relative;
	}

.header_sidemenu details summary {
	list-style: none;
	}

.header_sidemenu details summary::-webkit-details-marker {
	display: none;
	}

.main_nav {
		position: fixed;
		top: 0;
		right: 0;
		width: 100%;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 50px;
		padding: 80px 0 0 0;
		box-shadow: none;
		white-space: normal;
		transform: none;
		z-index: 99;

	}
	
.main_nav li {
		display: block;
		width: 100%;
		text-align: center;
	}
	
.main_nav a {
		text-decoration: none;
		display: block;
		font-size: 1.5em;
		padding: 10px;
		width: 100%;
		color: white;
		border-top: solid 2px #163158;
		border-bottom: solid 2px #163158;
	}	



/* アンカーリンク先のオフセット設定 */
:target {
	scroll-margin-top: 120px;  /* ヘッダーの高さ + 余白 */
}

/* 募集要項
================================================== */
.recruit_description {
	width: 100%;
	max-width: 2000px; /* 最大幅を設定 */
	table-layout: fixed; /* テーブルレイアウトを固定 */
	border-collapse: collapse; /* ボーダーを統一 */
	}

.recruit_description tr {
	max-width: 100%;
	}

.recruit_description td, .recruit_description th {
	border: 1px solid ;
	padding: 20px;
	word-wrap: break-word; /* 長いテキストの改行を許可 */
	}

.recruit_description td {
	width: calc(100% - 180px); /* td幅を計算で統一 */
	text-align: left;
	vertical-align: top;
	}

.recruit_description th {
	width: 180px; /* th幅を統一（140pxから180pxに変更） */
	text-align: left;
	vertical-align: top;
	background-color: #f5f5f5; /* 見出しに背景色を追加 */
	}
/* フッター
================================================== */
.corporate_address dl {
	margin: 0;
	}
.corporate_address dt {
	font-size: 150%;
	border-bottom: 2px solid black;
	}

.copyright {
	text-align: center;
	margin: 0px;
	}

/* announce_box
================================================== */
.announce_box{
	margin: 0px auto;
	border: 1px solid;
	max-width: 90%;
	}


/* 最下部の項目の線を非表示
-------------------------------------------------- */
.announce_box ul{
	margin: 0;
	padding: 0 40px;
	}

.announce_box li {
	padding-left: 20px;
	border-bottom: 1px solid;
	line-height: 2;
	font-size: 120%;
	}

.announce_title {
	margin: 0px;
	padding: 10px;
	}

.backlog {
	text-align: right;
	margin-right: 10px;
	}


/* インデックス
================================================== */
.hero {
	text-align: center ;
	background-repeat: no-repeat;
	background-position: center;
	padding: 200px 0;
	background-size: cover;  /* 画像全体を表示 */
	max-width: 1100px;  /* .Containerと同じ幅 */
	max-height: 100px;  /* .Containerと同じ幅 */
	margin: 0 auto;  /* 中央揃え */
	}

.index_banner {
	background-image: url(..//images/new_title.jpg);
	background-position: top;
	}

.appearance_banner {
	background-image: url(..//images/AP_welding_03.jpg);
	margin-top: 100px;
	}

.announce_banner {
	background-image: url(..//images/announce_banner.jpg);
	}

.production {
	background-image: url(..//images/hero_production.jpg);
	}

.recruit_banner {
	background-image: url(..//images/hero_production.jpg);
	}

.Index_link {
	margin: 10px;
	}

.Link_icon dl {
	margin-left: 0;
	padding-left: 0;
	}

.Link_icon dt {
	margin-left: 0;
	padding-left: 0;
	font-size: 150%;
	border-bottom: 2px solid #163158;
	}

.Link_icon dd {
	margin-left: 0;
	padding-left: 0;
	}

.Link_icon img {
	max-width: 100%;
	width: 480px;
	height: 270px;
	object-fit: cover; /* 縦横比を保持しながらコンテナを埋める */
	object-position: center; /* 上下中央の部分を表示 */
	}
/* profile
================================================== */
.President{
	max-width: 100%;
	margin: 0 10px 0 10px;
	text-align: center;
	}

.President img{
	max-width: 100%;
	}

.profile_description {
	line-height: 2.3;
	width: 100%;
	margin-bottom: 35px;
	}

.profile_table{
	width: 100%;	
	}

.col-wide :first-child{
	width: 200px;
	}

.td_wide {
	width: 120px;
	}
.profile_table td{
	border-bottom: 1px solid #000000;
	vertical-align: top;
	}

.description_right {
	display: flex;
	margin: 3em 0;
	justify-content: flex-end;
	}

.history_box {
	margin:15px;
	gap: 10px;
	margin: 0px;
	display: flex;
	}

.history_box img {
	max-width: 20%;
	max-height: 20%;
	}
/* アクセス
================================================== */
.access_Container {
	display: flex;
	gap: 30px;
	align-items: flex-start;
}

.access_description {
	flex: 1;
	min-width: 300px;
	height: 450px;
	padding: 20px;
	background-color: #f9f9f9;
}

.access_description h3 {
	margin-top: 0;
	color: #333;
	border-bottom: 2px solid #ddd;
	padding-bottom: 10px;
}

.access_description p {
	line-height: 1.6;
	margin-bottom: 15px;
}
/* モバイル
================================================== */
@media (max-width: 900px) {
	.Container {
		margin: 20px 50px;
		max-width: 700px;
		text-align: left;
		}	
	.menu_icon {
		margin-right: 0;
	}
	


/* モバイル・アクセス
================================================== */
	.access_Container {
		flex-direction: column;
		gap: 20px;
		}

	.access_googlemap {
		max-width: 100%;
		width: 100%;
		height: 300px;
		}
		
	.access_description {
		min-width: auto;
		width: 100%;
		padding: 15px;
		margin: 0;
		}
		
	.access_description h3 {
		font-size: 1.2em;
		}
		
	.access_description p {
		font-size: 0.9em;
		line-height: 1.5;
		}

	.appearance_grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 30px;
	}
	.appearance_grid img {
		width: 100%;
	}
	.history_box img {
		display: none;
	}
}
/*
互い違いボックス
================================================== */
.staggered-grid {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	grid-template-rows: repeat(1);
	gap: 40px;
	margin: 0;
	}

.staggered-grid_nine {
	display: grid;
	grid-template-columns: repeat(9, 1fr);
	grid-template-rows: repeat(1);
	gap: 40px;
	margin: 0;
	}

.sg-item {
	border-radius: 5px;
	overflow: hidden;
	position: relative;
	border: black 2px solid;
	vertical-align: middle;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-weight: 500;
	font-size: 24px;
	}

.sg-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.sg-item.align-top img {
	object-position: top center;
}

.sg-item.tiny-img img {
	width: 50%;
	height: 150%;
	scale: 200%;
	border: black 1px solid;
}

/*
ボックスタイトル
================================================== */
.rect-title {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	grid-row: span 1;
	grid-column: span 4;
	height: 20px;
	margin: 0;
	}

	.rect-index {
	grid-column: span 4;
	grid-row: span 1;
	height: 400px;
	}

/*
4x1 ボックス
================================================== */
.rect-L {
	grid-column: span 8;
	grid-row: span 1;
	height: 400px;
	}

/*
2x1 横長ボックス
================================================== */
.rect-h {
	grid-column: span 4;
	grid-row: span 1;
	height: 400px;
	}
/*
2.5x1 横長ボックス
================================================== */
.rect-w {
	grid-column: span 6;
	grid-row: span 1;
	height: 400px;
	}

/*
1x2 縦長ボックス
================================================== */
.rect-v {
	grid-column: span 8;
	grid-row: span 4;
	height: 820px;
	}

/*
1x1 小型ボックス
================================================== */
.rect-s {
	grid-column: span 3;
	grid-row: span 1;
	height: 400px;
	}
/*
1x1 さらに小型ボックス
================================================== */
.rect-t {
	grid-column: span 2;
	grid-row: span 1;
	height: 400px;
	}

@media (max-width: 1000px) {
	.staggered-grid {
	gap: 20px;
	}

	.rect-index {
	grid-column: span 4;
	grid-row: span 1;
	height: 200px;
	}
	.rect-title {
	grid-row: span 1;
	grid-column: span 4;
	}
	.rect-index {
	grid-row: span 1;
	grid-column: span 4;
	}

	.rect-s,.rect-h{
	grid-column: span 8;
	grid-row: span 1;
	height: 400px;
	}
	.rect-t,.rect-v{
		display: none;
	}

}

/*
カラー指定
================================================== */
.bg-alpha {
	background: linear-gradient(135deg, #163158, #2c3e50);
	color: white;
	}

.bg-beta {
	background: linear-gradient(135deg, #95a5a6, #7f8c8d);
	}

.bg-gamma {
	background: linear-gradient(135deg, #ecf0f1, #bdc3c7);
	}

.sg-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: black 2px solid;
	}

/* announce一覧
================================================== */
.link-grid {
	display: grid;
	grid-template-columns: 1fr;
	justify-content: center;
	margin: 0 auto;
	padding: 0 20px;
	gap: 15px;
	max-width: 1100px;
	}

.link-item {
	display: block;
	color: black;
	text-decoration: none;
	border-radius: 5px;
	border: 2px solid;
	font-weight: 500;
	position: relative;
	overflow: hidden;
	width: 100%;
	height: auto;
	padding: 20px;
	min-height: 120px;
	}

.link-item img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	}

.lg-all {
	grid-template-columns: 1fr;
	}

.lg-half {
	grid-template-columns: 1fr 1fr;
	}	
/* ページネーション
-------------------------------------------------- */
.pagination {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 30px;
	margin-bottom: 30px;
	flex-wrap: wrap;
	}

.page-tab {
	display: inline-block;
	padding: 10px 22px;
	background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
	color: #666;
	text-decoration: none;
	border-radius: 5px;
	transition: all 0.3s ease;
	border: 2px solid;
	}

.page-tab:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0,0,0,0.15);
	}

.page-tab.active,
.page-tab:target {
	background: linear-gradient(135deg, #163158 0%, #000000 100%);
	color: white;
}


/* すべてのページを非表示
-------------------------------------------------- */
.link-item {
	display: none;
	animation: fadeIn 0.5s ease-in-out;
	}

/* デフォルトは最初のページ（1-8番目）を表示
-------------------------------------------------- */
.link-item:nth-child(-n+8) {
	display: block;
}
/* P1がターゲットされた時：1-8番目を表示
-------------------------------------------------- */
#p1:target ~ .link-grid .link-item {
	display: none;
}

#p1:target ~ .link-grid .link-item:nth-child(-n+8) {
	display: block;
}

/* P2がターゲットされた時：9-16番目を表示
-------------------------------------------------- */
#p2:target ~ .link-grid .link-item {
	display: none;
}

#p2:target ~ .link-grid .link-item:nth-child(n+9):nth-child(-n+16) {
	display: block;
}
/* P3
-------------------------------------------------- */
#p3:target ~ .link-grid .link-item {
	display: none;
}

#p3:target ~ .link-grid .link-item:nth-child(n+17):nth-child(-n+24) {
	display: block;
}
/* P4
-------------------------------------------------- */
#p4:target ~ .link-grid .link-item {
	display: none;
}

#p4:target ~ .link-grid .link-item:nth-child(n+25):nth-child(-n+32) {
	display: block;
}
/* アクティブタブの表示
p1が最初はアクティブ
-------------------------------------------------- */
.page-tab {
	opacity: 0.7;
}

.page-tab:first-child {
	opacity: 1;
	background: linear-gradient(135deg, #163158 0%, #000000 100%);
	color: white;
}
/* p1_active
-------------------------------------------------- */
/* 各ページがターゲットされた時のアクティブタブ */
#p1:target ~ .pagination .page-tab:nth-child(1),
#p2:target ~ .pagination .page-tab:nth-child(2),
#p3:target ~ .pagination .page-tab:nth-child(3),
#p4:target ~ .pagination .page-tab:nth-child(4) {
	opacity: 1;
	background: linear-gradient(135deg, #163158 0%, #000000 100%);
	color: white;
}

/* ターゲットされた時は全タブを一旦非アクティブに */
#p1:target ~ .pagination .page-tab,
#p2:target ~ .pagination .page-tab,
#p3:target ~ .pagination .page-tab,
#p4:target ~ .pagination .page-tab {
	opacity: 0.7;
	background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
	color: #666;
}
/*
indexに戻るボタン
================================================== */
.to_index{
	display: flex;
	text-align: center;
	justify-content: center;
	}

.btn-simple{
	margin: 30px;
	padding: 12px 30px;
	border: #FFFFFF 2px solid;
	border-radius: 25px;
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
	}

.btn-simple:hover{
	background-color: #FFFFFF;
	color: #163158;
	border:#163158 2px solid;
	}

/*
form
================================================== */
	.form_group {
		margin-bottom: 20px;
	}

	label {
		display: block;
		margin-bottom: 8px;
		color: #555;
		font-weight: 500;
	}
	input[type="radio"] + label{
		display: inline;
		margin-right:20px;
	}

	input[type="text"],
	input[type="email"],
	textarea {
		width: 100%;
		padding: 12px;
		border: #163158 2px solid;
		font-size: 14px;
		font-family: inherit;
	}

	textarea {
		resize: vertical;
		min-height: 150px;
	}

	.submit_btn {
		padding: 14px 30px;
		border: #163158 2px solid;
		border-radius: 4px;
		cursor: pointer;
		font-size: 16px;
	}

	.submit_btn:hover {
		background-color: #FFFFFF;
		border: #163158 2px solid;
		color: black;
		border-radius: 4px;
	}


/*
モバイル
================================================== */
@media (max-width: 767px) {
	html {
		font-size: 16px;
	}
	
	.title {
		margin-top: 30px;
	}
	
	main {
		margin: 5rem auto 5rem auto;
	}
	
	.link-item h2 {
		font-size: 1rem;
	}
	
	.page-tab {
		padding: 8px 16px;
		font-size: 0.9rem;
	}
}
/*
デスクトップ
================================================== */
@media (min-width: 768px) {
	.Container {
		margin: 20px auto;
		padding: 0 20px;
		max-width: 1200px;
		text-align: left;
		}	

	.Link_icon {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 30px;
		}
		
	.access_googlemap {
		width: 100%;
		max-width: 600px;
		height: 450px;
		border: 0;
		flex: 1;
		}
	
	.appearance_grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 30px;
	}
	.appearance_grid img {
		width: 100%;
	}
	.link-grid {
		gap: 20px;
	}
	
	.link-item {
		padding: 25px;
	}


}


/* 印刷用
================================================== */
@media print {
	}
