a{cursor: pointer;}
/*----------
	modal
----------*/
.modal {
	width: 100vw;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.2s;
}
.modal__layer {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-color: rgba(83, 89, 97, 0.8);
	cursor: pointer;
}
.modal__layer::after {
	font-family: "iconfont" !important;
	content: "\e90c";
	display: block;
	width: 32px;
	height: 32px;
	position: absolute;
	top: 20px;
	right: 20px;
	font-size: 32px;
	color: #ccc;
	pointer-events: none;
}
.modal__inner {
	width: 100%;
	max-width: 1200px;
	max-height: 80%;
	padding: 20px;
	position: absolute;
	top: 50%;
	left: 50%;
	overflow-y: auto;
	background-color: #fff;
	transform: translate(-50%, -50%);
	pointer-events: auto;
}
.modal.active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 150;
}
/* 背景スクロールロック */
html.locked {
	position: fixed;
	width: 100%;
	overflow: hidden;
}

.c-caption{text-align:left!important;}
.btn,
a.btn,
button.btn {
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	position: relative;
	display: inline-block;
	padding: 1rem 4rem;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	letter-spacing: 0.1em;
	color: #212529;
	border-radius: 0.5rem;
	background-color:transparent;
}
button.btn:hover{opacity:0.8;}
button.btn.checkbuttom{color:#fff;background-color: var(--color-seco);}
button.btn.allshow{color:#fff;background-color: var(--color-prim);}
button.btn.nocheck{background-color: var(--color-border);}
/* チェックボックスのアイコン */
.checkboxItem {
	display:flex;
	margin:3px auto 0;
	align-items: center;
	column-gap: 4px;
	width: fit-content;
	line-height: 1;
	cursor: pointer;
}
.hikakubox {
	appearance: none;
	position: relative;
	width: 20px;
	height: 20px;
	background-color: #ffffff;
	border: 2px solid #586276;
	border-radius: 2px;
	cursor: pointer;
}

.hikakubox:checked::after {
	content: "";
	position: absolute;
	top: 5px;
	left: 3px;
	width: 12px;
	height: 6px;
	border-bottom: 2px solid var(--color-prim);
	border-left: 2px solid var(--color-prim);
	transform: rotate(-45deg);
}
.hikaku th{background-color: #F2F5FF;}

/* 横スクロールラッパー */
.hikaku-wrapper {
	overflow-x: auto;
	overflow-y: auto;
	width: 100%;
	max-height: 600px; 
	display: block;
	-webkit-overflow-scrolling: touch;
}
/* テーブル */
.hikaku {
	border-collapse: collapse;
	table-layout: fixed;
	min-width: 800px;/* スクロールが効くように最小幅を設定 */
	width: max-content;/* コンテンツ幅に合わせる */
}

/* セル共通 */
.hikaku th, .hikaku td {
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	padding: 6px 4px;
	font-size:0.9em;
	text-align: center;
	letter-spacing:0;
}
.hikaku td {background-color: #fff;border-left: 1px solid #ccc;}
.hikaku th,.hikaku td span {text-align: left;}
.hikaku th.sticky-col1{padding-left:4px;padding-right:0;}
.hikaku th.sticky-col2{padding-left:0;padding-right:4px;}

@media screen and (min-width: 768px){
	.hikaku th{width:150px;}
	.hikaku th.sticky-col2{width:110px;}
}
/* 固定ヘッダー */
/* ==== 1〜3行目を固定 ==== */
.hikaku thead tr:nth-child(1) th,
.hikaku thead tr:nth-child(1) td {
	position: sticky;
	top: 0;
	height: 40px;
	background: #F2F5FF;
	z-index: 3;
}
.hikaku thead tr:nth-child(2) th {
	position: sticky;
	top: 40px; /* 1行目の高さ分調整 */
	height: 40px;
	background: #F2F5FF;
	z-index: 3;
}
.hikaku thead tr:nth-child(2) td {
	position: sticky;
	top: 40px; /* 1行目の高さ分調整 */
	height: 40px;
	background: #fff;
	z-index: 3;
}
.hikaku thead tr:nth-child(3) th {
	position: sticky;
	top: 79px; /* 2行目の高さ分調整 */
	height: 40px;
	background: #F2F5FF;
	z-index: 3;
	box-shadow: 0 3px 3px rgba(0,0,0,0.2);
}
.hikaku thead tr:nth-child(3) td {
	position: sticky;
	top: 79px; /* 2行目の高さ分調整 */
	height: 40px;
	background: #fff;
	z-index: 3;
	box-shadow: 0 3px 3px rgba(0,0,0,0.2);
}
/* 擬似要素で border-bottom を描く */
.hikaku thead tr:nth-child(2) th::after,
.hikaku thead tr:nth-child(2) td::after,
.hikaku thead tr:nth-child(3) th::after,
.hikaku thead tr:nth-child(3) td::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: #ccc;
	z-index: 2; /* 上に描画 */
}
/* ==== 左＋上の交差部分を最前面に ==== */
.hikaku thead tr:nth-child(1) th.sticky-col1,
.hikaku thead tr:nth-child(1) th.sticky-col2,
.hikaku thead tr:nth-child(2) th.sticky-col1,
.hikaku thead tr:nth-child(2) th.sticky-col2,
.hikaku thead tr:nth-child(3) th.sticky-col1,
.hikaku thead tr:nth-child(3) th.sticky-col2 {
	z-index: 10;
}
/* ==== 左2列を固定 ==== */
.sticky-col1 {
	position: sticky;
	border-left: 1px solid #ccc;
	border-right: none;
	left:0;
	width:150px;
	z-index:4;
	background:#F2F5FF;
}
.sticky-col2 {
	position: sticky;
	left:150px;
	min-width:90px;
	z-index:4;
	background:#F2F5FF;
}
/* 角セル（カテゴリ）だけさらに固定 */
.hikaku thead th.sticky-col1 {
	left: 0;
	z-index: 10;
}
.hikaku thead th.sticky-col2 {
	left: 150px;
	z-index: 10;
}
/* 3列目以降の幅を固定 */
	td[data-col]:not([data-col="1"]):not([data-col="2"]), 
	th[data-col]:not([data-col="1"]):not([data-col="2"]) {
		width:150px;max-width:150px;
	}

/* 非表示列 */
.hide-col { display: none; }

/* スマホ対応 */
@media (max-width:767px){
	.hikaku th,.hikaku td{font-size:0.8em;letter-spacing:0;}
	.hikaku th{width:136px;}
	.hikaku th.sticky-col2{width:64px;left: 136px;font-size:0.8em;letter-spacing:0!important;}
	.hikaku thead th.sticky-col1 {text-align:center;}
	.sticky-col2 {left: 136px;width:64px;min-width:50px; }
	.hikaku thead th.sticky-col2 {left: 136px;width:64px;min-width:50px; }
	td[data-col]:not([data-col="1"]):not([data-col="2"]), 
	th[data-col]:not([data-col="1"]):not([data-col="2"]) {
		width: 80px;
	}
}
.hikaku thead tr th:last-child,.hikaku td:last-child{border-right:solid 1px #ccc;}