/* ksb #mainv */
#mainv.ksb_slide {
	position: relative;
	container-type: inline-size;
	container-name: ksbMainv;
}
#mainv.ksb_slide .ksb_slide_inner {
	position: relative;
	width: 100%;
	overflow: hidden;
}
#mainv.ksb_slide .slide_img {
	display: block;
	width: 100%;
	min-width: 1500px;
	height: auto;
	margin: 0;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}
#mainv.ksb_slide .slide_img.is_2 {
	position: absolute;
	top: 0;
	left: 50%;
}
#mainv.ksb_slide .slide_img.is_1 {
	animation: ksbFadeOut 8s infinite;
}
#mainv.ksb_slide .slide_img.is_2 {
	animation: ksbFadeIn 8s infinite;
}
@keyframes ksbFadeOut {
	0%, 45%  { opacity: 1; }
	50%, 95% { opacity: 0; }
	100%     { opacity: 1; }
}
@keyframes ksbFadeIn {
	0%, 45%  { opacity: 0; }
	50%, 95% { opacity: 1; }
	100%     { opacity: 0; }
}

/* ksb #mainv バッジ・三角形コピー */
.ksb_slide_triangle {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 3;
	width: 55%;
	height: 75%;
	background: rgba(4, 30, 66, 0.6);
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	box-sizing: border-box;
	padding: 20px 30px;
}
.ksb_slide_copy {
	margin: 0;
	color: #fff;
	font-size: 1.8vw;
	font-weight: bold;
	line-height: 1.6;
	text-align: right;
}

@media screen and (max-width: 767px) {
	#mainv.ksb_slide .slide_img {
		min-width: 0;
	}
	.ksb_slide_triangle {
		padding: 7px 7px;
		width: 75%;
    height: 70%;
	}
	.ksb_slide_copy {
		font-size: 3.2vw;
	}
}

/* ksb ギャラリー */
.gallery_block {
	margin: 0 10px 50px;
}
.gallery_main {
	position: relative;
	aspect-ratio: 553 / 253;
	overflow: hidden;
	margin-bottom: 15px;
}
.gallery_main img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity 0.2s;
}
.gallery_main img.is_fading {
	opacity: 0;
}
.gallery_thumb_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.gallery_thumb_item a {
	display: block;
	position: relative;
	aspect-ratio: 308 / 182;
	overflow: hidden;
	cursor: pointer;
	border: 2px solid transparent;
	transition: border-color 0.2s;
}
.gallery_thumb_item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #f0f5f7;
}
.gallery_thumb_item a:hover {
	border-color: #ccc;
}
.gallery_thumb_item.is_active a {
	border-color: #333;
}

@media screen and (max-width: 767px) {
	.gallery_thumb_list {
		grid-template-columns: repeat(2, 1fr);
	}

	#contents h3.ttl-02,
	#contents h3.ttl-no01,
	#contents h3.ttl-no02,
	#contents h3.ttl-no03,
	#contents h3.ttl-no04 {
		clear: both;
	}
}

/* ksb_table */

.ksb_table{
	width:100%;
	max-width:500px;
	margin-left:auto;
	margin-right:auto;
	border-collapse:collapse;
	border:1px solid #a8a8a8!important;
}

.ksb_table th{
	z-index: -1;
	padding: 20px;
	background:#01379F;
	border-left:1px dotted #a8a8a8!important;
	border-right:1px dotted #a8a8a8!important;
	color:#FFF;
}

.ksb_table th.th01{
	width:100px;
	border-bottom:1px solid #a8a8a8!important;
	background:#F4F4F4;
	color:#000;
}

.ksb_table td{
	padding: 20px;
	border-top:1px solid #a8a8a8!important;
	border-bottom:1px solid #a8a8a8!important;
	border-left:1px dotted #a8a8a8!important;
	border-right:1px dotted #a8a8a8!important;
	vertical-align: top;
	word-break: break-all;
}

#contents h3.ttl-no01,
#contents h3.ttl-no02,
#contents h3.ttl-no03,
#contents h3.ttl-no04 {
	margin-top: 10px;
	margin-bottom: 10px;
	display: inline-block;
}

#contents h3.ttl-no01 + p,
#contents h3.ttl-no02 + p,
#contents h3.ttl-no03 + p,
#contents h3.ttl-no04 + p {
	margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
	#contents h3.ttl-no01 {
		margin-top: 5px;
	}
	#contents h3.ttl-no02,
	#contents h3.ttl-no03,
	#contents h3.ttl-no04 {
		margin-top: 15px;
	}
}

.acms-grid h2 {
	margin-top: 120px !important;
}
.acms-grid > h2:first-of-type {
	margin-top: 30px !important;
}
.acms-entry-unit-full > h2:first-of-type {
	margin-top: 90px !important;
}
.acms-grid p + h3.ttl-02 {
	margin-top: 40px !important;
}

@media screen and (max-width: 767px) {
	.acms-grid h2 {
		margin-top: 65px !important;
	}
	.acms-entry-unit-full > h2:first-of-type {
		margin-top: 45px !important;
	}
	.acms-grid p + h3.ttl-02 {
		margin-inline: 10px !important;
	}
}