/* 汎用的なカラム幅指定クラス（px指定） */
.c-table__col-100px {	width: 100px;	}
.c-table__col-160px {	width: 160px;	}
.c-table__col-200px {	width: 200px;	}
.c-table__col-300px {	width: 300px;	}
.c-table__col-400px {	width: 400px;	}
.c-table__col-500px {	width: 500px;	}
@media screen and (max-width: 1200px) {
	.c-table__col-100px {	max-width: 100px;	}
	.c-table__col-160px {	max-width: 160px;	}
	.c-table__col-200px {	max-width: 200px;	}
	.c-table__col-300px {	max-width: 300px;	}
	.c-table__col-400px {	max-width: 400px;	}
	.c-table__col-500px {	max-width: 500px;	}
}
/* 汎用的なカラム幅指定クラス（割合指定） */
.c-table__col-20 {	width: 20%;	}
.c-table__col-25 {	width: 25%;	}
.c-table__col-30 {	width: 30%;	}
.c-table__col-50 {	width: 50%;	}
.c-table__col-60 {	width: 60%;	}
.c-table__col-75 {	width: 75%;	}
@media screen and (max-width: 1200px) {
.c-table__col-50 {	max-width: 40%;	}
.c-table__col-60 {	max-width: 50%;	}
.c-table__col-75 {	max-width: 55%;	}
}

/* 中央寄せ */
.c-table--valign-middle th,
.c-table--valign-middle td {
    vertical-align: middle;
}
/* 上寄せ */
.c-table--valign-top th,
.c-table--valign-top td {
    vertical-align: top;
}
/* x列目を上寄せ */
.c-table--valign-top-col1 td:first-child {	vertical-align: top;	}
.c-table--valign-top-col2 td:nth-child(2) {	vertical-align: top;	}
.c-table--valign-top-col3 td:nth-child(3) {	vertical-align: top;	}

.c-table--nospace {
	margin: 0 auto;
	padding: 0;
}

@media screen and (max-width: 1024px) {
	.c-tableScroll {
		overflow-x: auto;
	}
}
@media screen and (max-width: 640px) {
	.c-tableScroll {
    	max-height: 500px;
	    overflow-y: auto;
	}
}

.l-section .c-table--nospace td{
	margin: 0;
	padding: 0.2em 1em;
}

/*-------------------------------------------
  th青背景テーブル
-------------------------------------------*/
.c-table--th-blue {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1em;
}
.c-table--th-blue th {
    border: 1px solid #fff;
    background-color: rgb(0,101,180);
    color: #fff;
    vertical-align: middle;
    line-height: 1.5em;
    padding: 0.5em 1.2em;
}
.c-table--th-blue td {
    border: 1px solid rgb(71,69,69);
    padding: 0.5em 1.2em;
}
.c-table--th-blue td:first-child {
    border-left: none;
}

.c-table--th-blue td:last-child {
    border-right: none;
}
@media screen and (max-width: 1200px) {
	.c-table--th-blue {
	    table-layout: auto; 
	}
	.c-table--th-blue th, .c-table--th-blue td {
		padding: 0.4em 0.6em;
	}
}
@media screen and (max-width: 768px) {
	.c-table--th-blue th,
	.c-table--th-blue td {
		line-height: 1.4rem;
	}
}

.c-table--th-gray {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1em;
}
.c-table--th-gray th {
    border: 1px solid #ccc;
    background-color:  #f2f2f2;
    vertical-align: middle;
    line-height: 1.5em;
    padding: 0.5em 1.2em;
}
.c-table--th-gray td {
    border: 1px solid rgb(71,69,69);
    padding: 0.5em 1.2em;
}
.c-table--th-gray th:first-child {
    border-left: none;
}

.c-table--th-gray td:last-child {
    border-right: none;
}
@media screen and (max-width: 1200px) {
	.c-table--th-gray {
	    table-layout: auto; 
	}
	.c-table--th-gray th, .c-table--th-gray td {
		padding: 0.4em 0.6em;
	}
}
@media screen and (max-width: 768px) {
	.c-table--th-gray th,
	.c-table--th-gray td {
		line-height: 1.4rem;
	}
}

/* ヘッダー外観：チャコール＋高さ3割減 */
.c-table--th-charcoal-slim {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1em;
}
.c-table--th-charcoal-slim thead th {
	padding: 0.35em 1em;
	color: #fff;
	text-align: center;
	line-height: 1.05;
	background-color: rgb(71,69,69);
	border: 1px solid rgb(71,69,69);
}
.c-table--th-charcoal-slim td{
	border: 1px solid rgb(71,69,69);
    padding: 0.5em 1.2em;
}
.c-table--th-charcoal-slim td:first-child {
    border-left: none;
}

.c-table--th-charcoal-slim td:last-child {
    border-right: none;
}
@media screen and (max-width: 1200px) {

	.c-table--th-charcoal-slim td {
		padding: 0.4em 0.6em;
	}
}
/* 新しいテーブル用クラス：.c-table--th-blue--4col */
.c-table--th-blue--4col {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1em;
}
.c-table--th-blue--4col th {
  border: 1px solid #fff;
  background-color: rgb(0,101,180);
  color: #fff;
  vertical-align: middle;
  padding: 0.5em 1.2em;
}
.c-table--th-blue--4col td {
  border: 1px solid rgb(71,69,69);
  padding: 0.5em 1.2em;
}
.c-table--th-blue--4col td:first-child {
  border-left: none;
}
.c-table--th-blue--4col td:last-child {
  border-right: none;
}
@media screen and (max-width: 1200px) {
	/* ヘッダーを非表示にしてモバイル用カードレイアウトに */
	.c-table--th-blue--4col thead {
		display: none;
	}

	.c-table--th-blue--4col tbody tr {
		display: block;
		margin-bottom: 1em;
		border: 1px solid #ccc;
		border-right: none;
		width: 100%;
		box-sizing: border-box;
		overflow: hidden; /* 水平スクロールを抑制 */
	}

	.c-table--th-blue--4col tbody tr td {
		display: block;
		position: relative;
		width: 100%;
		box-sizing: border-box;
		/* 左側ラベルエリア + 左側の余白1em */
		padding: 0.5em 1.2em;
		padding-left: calc(50% + 1em);

		border: none;
		border-bottom: 1px solid #ccc;

		/* 改行を許容し、単語を折り返し */
		white-space: normal;
		word-break: break-all;
		overflow-wrap: break-word;
	}

	/* 最終セルの下線だけは消す */
	.c-table--th-blue--4col tbody tr td:last-child {
		border-bottom: none;
	}

	/* data-label を疑似要素で左半分に表示し、背景を青に */
	.c-table--th-blue--4col tbody tr td::before {
		content: attr(data-label);
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		width: 50%;
		background-color: rgb(0,101,180);
		color: #fff;
		font-weight: bold;
		box-sizing: border-box;
		padding: 0.5em;

		white-space: normal;
		word-break: break-all;
		overflow-wrap: break-word;

		display: flex;
		align-items: center;
	}
}





/*-------------------------------------------
   テーブル中の水平枠線を非表示
-------------------------------------------*/
.c-table--minimal-border {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1em;
}
/* 上下のボーダーのみ表示（1行目と最終行） */
.c-table--minimal-border tr:first-child th,
.c-table--minimal-border tr:first-child td {
	padding-top: 10px;
    border-top: 1px solid rgb(71,69,69);
}
.c-table--minimal-border td:first-child {
    border-left: none;
}
.c-table--minimal-border tr:last-child td  {
	padding-bottom: 10px;
    border-bottom: 1px solid rgb(71,69,69);
}
/* 最上段と最下段を除く行のボーダーを消す */
.c-table--minimal-border tr:not(:first-child):not(:last-child) td {
    border-top: none;
    border-bottom: none;
}
/* 一番右以外の垂直方向の枠線を表示 */
.c-table--minimal-border td,
.c-table--minimal-border th {
    border-left: 1px solid rgb(71,69,69);
    border-right: 1px solid rgb(71,69,69);
	padding: 0.5em 1.2em;
}
/* 一番右の枠線を非表示 */
.c-table--minimal-border td:last-child,
.c-table--minimal-border th:last-child {
    border-right: none;
}
/* rowspan の影響で最終行の `td[rowspan]` に border-bottom が適用されない場合 */
.c-table--minimal-border td[rowspan] {
    border-bottom: 1px solid rgb(71,69,69);
}
@media screen and (max-width: 1200px) {
	.c-table--minimal-border {
	    table-layout: fixed;
	}
	.c-table--minimal-border th, c-table--minimal-border td {
		padding: 0.4em 0.6em;
	}
}

/*-------------------------------------------
  2列テーブル（th透過背景、td白背景色、透明枠線）
-------------------------------------------*/
.c-table--white-lineless {
	border-collapse: separate;
	border-spacing: 8px;
	width: 100%;
	background-color: transparent;
}
.c-table--white-lineless thead th {
	font-weight: normal;
	border-bottom: 1px solid rgb(71,69,69);
}
.c-table--white-lineless tbody::before {
    content: "";
    display: table-row;
}
.c-table--white-lineless th,
.c-table--white-lineless td {
	padding: 0.5em 0.8em;
	vertical-align: top;
}
.c-table--white-lineless tbody td {
	border: none;
	background-color: #fff;
}



/*-------------------------------------------
  3列テーブル（各列異なる背景色版）
  c-table--3colColors
-------------------------------------------*/
/* テーブルを包むラッパ要素 */
.c-table--3colColorsWrap {
	margin-top: 2rem;
	/* テーブルがはみ出す場合、スクロール対応したいなら:
	overflow-x: auto;
	*/
}

.c-table--3colColors {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid #ccc;
	table-layout: fixed; /* 列幅を固定計算する場合 */
}

/* セル共通 */
.c-table--3colColors th,
.c-table--3colColors td {
	border: 1px solid #ccc;
	padding: 0.5rem;
	vertical-align: top;
}

/* 1列目（左） */
.c-table--3colColors-left {
	vertical-align: middle;
	background-color: #0065b4; /* 青 */
	color: #fff;
	font-weight: bold;
	width: 100px;
}

/* 2列目（中央） */
.c-table--3colColors-middle {
	background-color: #f2f2f2;
	width: 330px;
}
.c-table--3colColors td.c-table--3colColors-middle,
.c-table--3colColors th.c-table--3colColors-left {
	vertical-align: middle;
}
/* 3列目（右） */
.c-table--3colColors-right {
	width: auto;
}

@media screen and (max-width: 1200px) {
	.c-table--3colColors {
		table-layout: auto;
	}
	.c-table--3colColors th,
	.c-table--3colColors td {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}
}



/*-------------------------------------------
  テーブルレイアウト
-------------------------------------------*/
.c-table--valign-middle th,
.c-table--valign-middle td{
	overflow-wrap: break-word;
	vertical-align: middle;
}

/* col 幅指定 */
.c-table--layout-2cols-a col:nth-child(1) {	width: 10%;	min-width: 80px;	}
.c-table--layout-2cols-a col:nth-child(2) {	width: 90%;	}

.c-table--layout-3cols-a col:nth-child(1) { width: 25%; }
.c-table--layout-3cols-a col:nth-child(2) { width: 58%; }
.c-table--layout-3cols-a col:nth-child(3) { width: 17%; }
@media screen and (max-width: 1200px) {
	.c-table--layout-3cols-a col:nth-child(1) { width: 30%; }
	.c-table--layout-3cols-a col:nth-child(2) { width: 50%; }
	.c-table--layout-3cols-a col:nth-child(3) { width: 20%; }
}
@media screen and (max-width: 480px) {
	.c-table--layout-3cols-a {
		table-layout: fixed;
		width: 100%;
		border-collapse: collapse;
	}
	.c-table--layout-3cols-a col:nth-child(1) { width: 30%; }
	.c-table--layout-3cols-a col:nth-child(2) { width: 40%; }
	.c-table--layout-3cols-a col:nth-child(3) { width: 30%; }
}
.c-table--layout-3cols-b col:nth-child(1) { width: 25%; }
.c-table--layout-3cols-b col:nth-child(2) { width: 50%; }
.c-table--layout-3cols-b col:nth-child(3) { width: 25%; }
@media screen and (max-width: 1200px) {
	.c-table--layout-3cols-b col:nth-child(1) { width: 30%; }
	.c-table--layout-3cols-b col:nth-child(2) { width: 40%; }
	.c-table--layout-3cols-b col:nth-child(3) { width: 30%; }
}
@media screen and (max-width: 480px) {
	.c-table--layout-3cols-b {
		table-layout: fixed;
		width: 100%;
		border-collapse: collapse;
	}
}
.c-table--layout-3cols-c col:nth-child(1) {
	min-width: 100px;
	width: 12%;
}
.c-table--layout-3cols-c col:nth-child(2),
.c-table--layout-3cols-c col:nth-child(3) {
	width: 44%;
}
@media screen and (max-width: 480px) {
	.c-table--layout-3cols-c {
		table-layout: fixed;
		width: 100%;
		border-collapse: collapse;
	}
}

.c-table--layout-4cols-a col:nth-child(1) { width: 15%; }
.c-table--layout-4cols-a col:nth-child(2) { width: 40%; }
.c-table--layout-4cols-a col:nth-child(3) { width: 20%; }
.c-table--layout-4cols-a col:nth-child(4) { width: 20%; }

.c-table--layout-4cols-even {
	table-layout: fixed;
	width: 100%;
}
.c-table--layout-4cols-even th:not([colspan]),
.c-table--layout-4cols-even td {
	width: 25%;
	overflow-wrap: anywhere;
}

.c-table--layout-5cols-a col:nth-child(1) { width: 20%; }
.c-table--layout-5cols-a col:nth-child(2),
.c-table--layout-5cols-a col:nth-child(3),
.c-table--layout-5cols-a col:nth-child(4) {
	width: 110px;
}
.c-table--layout-5cols-a td:nth-child(2),
.c-table--layout-5cols-a td:nth-child(3),
.c-table--layout-5cols-a td:nth-child(4) {
	text-align: center;
}

.c-table--layout-5cols-b{
	min-width: 984px;
}
.c-table--layout-5cols-b th:nth-child(1){
	padding: 0;
}
.c-table--layout-5cols-b td:nth-child(1) {
	text-align: center;
}
.c-table--layout-5cols-b col:nth-child(1) {
	width: 5%;
}
.c-table--layout-5cols-b col:nth-child(5) {
	width: 12%;
}
.c-table--layout-5cols-b td:nth-child(5) {
	padding: 0 10px;
}
/*-------------------------------------------
  テーブル内要素のマージン設定
-------------------------------------------*/
table ul {
	margin: 0 auto;
    padding-left: 0.5rem;
}
table ul li {
    margin-left: 0.5rem;
}


/*-------------------------------------------
   各セル個別の設定
-------------------------------------------*/
.u-cell-subtitle {
    background-color: rgb(242, 242, 242);
    font-weight: bold;
    text-align: center;
}

/* セル内の短い横棒（装飾） */
td.is-bar {
	text-align: center;
}
td.is-bar::before {
	content: "";
	display: inline-block;
	inline-size: 15px;
	block-size: 2px;
	background: #47455B;
	vertical-align: middle;
}
