@charset "utf-8";

/* c1 */
.content_area.case {
	padding: 2px 20px 60px;
}
.case_search {
	padding-bottom: 60px;
	margin-bottom: 55px;
	border-bottom: 1px solid #E2E2E2;
}
.search_title{
	position: relative;
	padding-left: 14px;
	margin-bottom: 15px;
	font-size: 2rem;
	font-weight: 500;
	line-height: 2.6rem;
}
.search_title::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 4px;
	height: 75%;
	background: #109079;
}
.search_list{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	padding-left: 0;
	margin-bottom: 22px;
}
.search_item{
	position:relative;
	margin-bottom: 0;
	list-style: none;
	border-right: 1px solid #E2E2E2;
	border-bottom: 1px solid #E2E2E2;
	z-index: 1;
	transition: border-color 0.3s;
}
.search_item:nth-child(4n+1){
	border-left: 1px solid #E2E2E2;
}
.search_item:nth-child(-n+4) {
	border-top: 1px solid #E2E2E2;
}
.search_item label{
	display:flex;
	align-items:center;
	gap:8px;
	cursor:pointer;
	position: relative;
	padding: 11px 14px;
	font-size: 1.3rem;
	line-height: 1.9rem;
	transition: color 0.3s;
}
.search_item label:hover{
	color:#BE000F;
}
.search_item::after{
	content:'';
	position:absolute;
	inset:-1px;
	border:1px solid transparent;
	pointer-events:none;
	z-index: 2;
	transition:border-color 0.3s;
}
.search_item:has(label:hover)::after{
	border-color:#BE000F;
}
.search_item label input{
	position:absolute;
	opacity:0;
}
.check_box{
	width:12px;
	height:12px;
	border:1px solid #E2E2E2;
	transition: border 0.3s, background 0.3s;
}
.search_item label input:checked + .check_box{
	background:#BE000F;
	border: 1px solid #BE000F;
}
.search_item label input:checked + .check_box::after{
	content:'';
	display:block;
	width:4px;
	height:5px;
	border-right:1px solid #fff;
	border-bottom:1px solid #fff;
	transform:rotate(45deg);
	margin:1px auto;
}
.search_item:hover .check_box{
	border: 1px solid #BE000F;
}
.search_item:hover label,.search_item:hover input{
	color: #BE000F;
}
.search_block.keyword {
	margin-bottom: 20px;
}
.search_block.keyword .search_title {
	margin-bottom: 16px;
}
.keyword_input{
	display: block;
	padding: 7px 20px;
	width: 100%;
	background: #F5F5F5 !important;
	border: 1px solid #E2E2E2 !important;
}
.search_btns{
	position: relative;
}
.action_btn {
	display: block;
	padding: 9px 64px;
	margin: auto;
	font-size: 1.5rem;
	color: #fff;
	background: #000000 !important;
	border: 1px solid #000000 !important;
	border-radius: 2px !important;
	transition: color 0.3s, background-color 0.3s;
}
.action_btn:hover {
	color: #000000;
	background: #fff !important;
}
.reset_btn {
	position: absolute;
	top: 6px;
	right: 0;
	padding: 0 0 0 20px;
	font-size: 1.5rem;
	line-height: 3.3rem;
	color: #000;
	cursor: pointer;
}
.reset_btn:hover {
	text-decoration: none !important;
}
.reset_btn::before, .reset_btn::after {
	content: '';
	position: absolute;
	top: 1px;
	bottom: 0;
	left: -2px;
	width: 16px;
	height: 1px;
	margin: auto;
	background: #000;
}
.reset_btn::before {
	transform: rotate(45deg);
}
.reset_btn::after {
	transform: rotate(-45deg);
}
.search_btns_area {
    margin: 20px 0 55px;
	position: relative;
	text-align: center;
}
.search_btns_area .action_btn {
	width: 195px;
	padding: 9px 0;
	text-align: center;
	text-decoration: none;
	font-size: 1.5rem;
	color: #fff;
	transition: color 0.3s, background-color 0.3s;
}
.search_btns_area .action_btn:hover {
	color: #000000;
	background: #fff !important;
}
.result_count {
	margin-bottom: 17px;
}
.result_count span{
	margin: 0 7px;
	font-size: 2.6rem;
	font-weight: 500;
	font-family:var(--font_Barlow);
}
.case_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	padding-left: 0;
	margin-bottom: 35px;
}
.case_item {
	list-style: none;
	border-top: 1px solid #E2E2E2;
	border-right: 1px solid #E2E2E2;
	border-bottom: 1px solid #E2E2E2;
	margin-bottom: 0;
}
.case_item:nth-child(n+4) {
	border-top: none;
}
.case_item:nth-child(3n+1) {
	border-left: 1px solid #E2E2E2;
}
.case_link {
	display: block;
	position: relative;
	padding: 25px 25px 12px 25px;
	height: 100%;
	color: inherit;
	text-decoration: none;
}
.case_link::before {
	content: "";
	position: absolute;
	inset:-1px;
	border:2px solid transparent;
	pointer-events: none;
	transition: border-color .3s;
	z-index: 2;
}
.case_link:hover::before {
	border-color: #BE000F;
}
.case_image {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 262px;
	margin-bottom: 15px;
	padding: 34px;
}
.case_image img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
.case_cate {
	display: inline-block;
	padding: 2px 10px;
	margin-bottom: 12px;
	font-size: 1.2rem;
	border: 1px solid #000;
}
.case_title {
	position: relative;
	margin: 0 0 18px;
	line-height: 2.4rem;
	color: #000;
	font-size: 1.6rem;
}
.case_info {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: #333;
	margin-bottom: 1px;
}
.case_use_title {
	padding: 2px;
	background: #ECECE9;
	font-size: 1.1rem;
	white-space: nowrap;
	min-width: 70px;
	text-align: center;
}
.case_use_cate {
	padding: 1px 0;
    font-size: 1.3rem;
	line-height: 1.8rem;
}
.wp-pagenavi{
	margin-bottom: 62px;
}
.cta_box.cta_shelter:last-of-type,
.cta_box.cta_special:last-of-type {
	margin-bottom: 43px;
}

/* c2 */
.single_case .content_area {
	max-width: 940px;
	padding: 67px 20px 96px;
	color: #000;
}
.case_size {
	display: inline-block;
	padding: 2px 20px;
	margin-bottom: 12px;
	font-size: 1.2rem;
	letter-spacing: 1.8px;
	border: 1px solid #333;
}
.page_ttl{
	margin-bottom: 45px;
	font-size: 2.6rem;
	font-weight: 500;
	line-height: 3.7rem;
}
table.case_info_table {
	margin: 20px 0 40px;
}
.case_main_image {
	position: relative;
	border: 1px solid #E2E2E2;
	padding: 50px;
}
.case_main_image::before {
	content: "";
	display: block;
	aspect-ratio: 800 / 475;
}
.case_main_image img {
	position: absolute;
	inset: 50px;
	width: calc(100% - 100px);
	height: calc(100% - 100px);
	object-fit: contain;
	margin: auto;
	max-height: 475px;
}
.section_title{
	font-size: 2.2rem;
	font-weight: bold;
	line-height: 3.2rem;
	padding-top: 0;
	padding-left: 19px;
	margin: 61px 0 20px;
}
.section_title::before{
	top: 20%;
	width: 4px;
	height: 70%;
	background: #109079;
}
.section_title::after{
	display: none;
}
th{
	width: 25%;
}
.section_title.solution {
	margin: 61px 0 15px;
}
.solution_txt p{
	line-height: 3.3rem;
}
.gallery_list {
	padding-left: 0;
	margin-bottom: 0;
}
.gallery_item {
	position: relative;
	list-style: none;
	width: 100%;
	max-width: 450px;
	margin: 0 auto 40px;
}
.gallery_item p {
	font-size: 1.4rem;
	text-align: center;
	margin-top: 10px;
}
.gallery_thumb{
	border: 1px solid #E2E2E2;
	padding: 20px;
	margin: auto;
}
/* 特装車 */
.content_area.specially {
	padding: 70px 20px 85px;
}
.option_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 30px 20px;
	padding: 0;
	margin: 0;
}
.option_item {
    list-style: none;
	margin: 0;
}
.option_image {
	margin-bottom: 10px;
	aspect-ratio: 286 / 183;
	width: 100%;
	overflow: hidden;
}
.option_image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.option_item p{
	text-align: center;
	margin: 0;
	font-size: 1.4rem;
}
.similar_list {
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 20px;
}
.similar_item {
	list-style: none;
	margin: 0;
}

.similar_link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 286 / 218;
	padding: 12px;
	background: #fff;
	overflow: hidden;
}
.similar_link img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
.similar_link::before {
	content: "";
	position: absolute;
	inset: 0;
	box-shadow: inset 0 0 0 1px #E2E2E2;
	pointer-events: none;
	transition: box-shadow .3s;
}
.similar_link:hover::before {
	box-shadow: inset 0 0 0 2px #BE000F;
}

.mfp-bg{
	background:#000;
	opacity:0;
	transition:opacity 0.3s;
}
.mfp-bg.mfp-ready{opacity:0.8;}
.mfp-bg.mfp-removing{opacity:0;}
.mfp-wrap{
	opacity:0;
	transition:opacity 0.3s;
}
.mfp-wrap.mfp-ready{opacity:1;}
.mfp-wrap.mfp-removing{opacity:0;}
.mfp-container{
	right:0;
	bottom:0;
	max-width:900px;
	height:auto !important;
	padding:60px 60px 40px;
	margin:auto;
	overflow: auto;
	-webkit-overflow-scrolling:touch;
}
.gallery_box{
	position:relative;
	max-width:700px;
	margin:auto;
}
.gallery_img{
	max-height:100%;
	margin:auto;
}
.gallery_txt{
	margin:10px 0 0;
	color:#fff;
	font-size:1.4rem;
	letter-spacing:0.7px;
	line-height: 2rem;
}
.mfp-figure {
	position: relative;
}
.mfp-bottom-bar {
	margin-top: 15px;
	background: none;
	padding:0;
	width: 100%;
	box-sizing: border-box;
}
.mfp-title {
	font-size: 1.6rem;
	line-height: 1.5;
	letter-spacing:0;
	color: #fff;
	text-align: left;
}
.mfp-counter {
	display: none;
}
.mfp-title {
	font-size: 1.6rem;
	line-height: 1.5;
	color: #fff;
	text-align: left;
}
.mfp-counter {
	display: none;
}
.mfp-arrow{
	top:0;
	bottom:0;
	width:40px;
	height:40px;
	margin:auto !important;
	opacity:1;
	transform:none !important;
}
.mfp-arrow::before{display:none;}
.mfp-arrow::after{
	top: 20px;
	right:0;
	bottom:0;
	width:25px;
	height:25px;
	margin:auto;
	border:none;
	border-top:2px solid #fff;
}
.mfp-arrow-left::after{
	left:50px;
	border-left:2px solid #fff;
	transform:rotate(-45deg);
}
.mfp-arrow-right::after{
	left: -84px;
	border-right:2px solid #fff;
	transform:rotate(45deg);
}
.mfp-figure:after {
	background: #fff;
}
.mfp-figure figure {
	margin: 0;
	background: #fff;
	max-width: 700px;
}
img.mfp-img {
	padding: 40px;
	aspect-ratio: 210 / 134;
	object-fit: contain;
}

/* popup */
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
	cursor: pointer !important;
}
.mfp-bg.mfp-zoom-out-cur {
	cursor: pointer !important;
}
.mfp-figure .mfp-close{
	top:-8px !important;
	right: 0;
	color: #fff;
	background: none;
	opacity: 1;
	font-size:0;
	white-space: nowrap;
	padding:0 !important;
}
.mfp-image-holder .mfp-close{
	position:relative;
	display:block;
	margin-bottom:10px;
	opacity:1;
	right:0;
	color:#fff !important;
}
.mfp-image-holder .mfp-close::before{
	content:'';
	width:19px;
	height:19px;
	display:block;
	position:absolute;
	right:59px;
	top:11px;
	background:url(/img/common/icon_close.svg) center no-repeat;
}
.mfp-image-holder .mfp-close::after{
	content:'閉じる';
	font-size:1.6rem;
	letter-spacing:0;
}
.catalog_list {
	padding: 0;
	margin: 0;
}
.catalog_list li {
	list-style: none;
	margin-bottom: 10px;
}

/* 特種車両 */
.gallery_info {
	margin-top: 10px;
	font-size: 1.6rem;
}
.special_movie_list {
	padding: 0;
}
.special_movie_list li {
	list-style: none;
}
.movie_embed {
	max-width: 700px;
	margin: auto;
}
.movie_title {
	padding: 10px 0 0;
	margin: 50px 0 20px;
	font-size: 1.8rem;
	line-height: 2.6rem;
	border-top: 1px solid #E2E2E2;
	background: none;
}
.movie_title::before {
	display: none;
}
.special_movie_list p {
	text-align: center;
	margin-top: 10px;
	font-size: 1.6rem;
}
.special_topics_list {
	padding: 0;
	margin: 0;
}
.special_topics_item{
	display: grid;
	grid-template-columns: 583fr 286fr;
	column-gap: calc(30 / 900 * 100%);
	list-style: none;
	margin-bottom: 32px;
}
.special_topics_item p {
	font-size: 1.6rem;
	line-height: 3.3rem;
}
.topics_link {
	display: block;
	margin-top: 15px;
	padding: 9px 20px;
	width: 225px;
	font-size: 1.6rem;
	text-align: center;
	text-decoration: none;
	border-radius: 2px;
	color: #fff !important;
	background: #109079;
	border: 1px solid #109079;
	transition: background 0.3s, color 0.3s;
}
.topics_link:hover {
	background: #fff;
	color: #109079;
}
.topics_thumb{
	margin-bottom: 10px;
	aspect-ratio: 286 / 218;
	width: 286px;
	height: auto;
	overflow: hidden;
}
.topics_img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* 関連事例 */
.related_area{
	max-width: 1240px;
	padding: 0 20px;
	margin: 0 auto 40px;
}
.related_head{
	position: relative;
	padding-top: 0;
	margin: 0 0 21px;
	font-size: 2.1rem;
	font-weight: 500;
	line-height: 3.2rem;
	text-align: center;
}
.related_head::before,.related_head::after{
	display: none;
}
.case_btn{
	text-align: center;
	margin: 0 auto 59px;
}
@media screen and (max-width: 1024px) {
.search_list {
	grid-template-columns: repeat(3, 1fr);
}
.search_item:nth-child(-n+4) {
    border-top: none;
}
.search_item:nth-child(4n+1) {
    border-left: none;
}
.search_item:nth-child(-n+3) {
	border-top: 1px solid #E2E2E2;
}
.search_item:nth-child(3n+1) {
    border-left: 1px solid #E2E2E2;
}
.case_link {
	padding: 20px 20px 12px;
}
.case_image {
    height: 220px;
}
.search_btns {
	text-align: center;
}
.reset_btn {
	display: inline-block;
	position: relative;
	top: auto;
	right: auto;
	margin-top: 20px;
	font-size: 1.4rem;
	letter-spacing: 1.4px;
	line-height: 2rem;
}
.option_item p,.gallery_item p {
	font-size: 1.3rem;
}
.mfp-arrow::after{
	top: 50px;
}
.mfp-arrow-left::after{
	left:30px;
}
.mfp-arrow-right::after{
	left: -40px;
}
}
@media screen and (max-width: 767px) {
.search_item:nth-child(-n+3) {
	border-top: none;
}
.search_item:nth-child(3n+1) {
    border-left: none;
}
.search_list {
	grid-template-columns: 1fr;
	border-top: 1px solid #e2e2e2;
}

.search_item {
	border-right: 1px solid #E2E2E2;
	border-bottom: 1px solid #E2E2E2;
	border-left: 1px solid #E2E2E2 !important;
}
.option_list {
	grid-template-columns: 1fr;
}
.option_image{
	width: auto;
}
.gallery_item {
	margin: 0 auto 20px;
}
.case_list {
	grid-template-columns: 1fr;
	margin-bottom: 27px;
}
.case_item {
	border-top: 1px solid #E2E2E2 !important;
	border-right: 1px solid #E2E2E2 !important;
	border-bottom: none !important;
	border-left: 1px solid #E2E2E2 !important;
}
.case_item:last-child {
	border-bottom: 1px solid #E2E2E2 !important;
}
.info_table th, .option_table th{
	width: 33%;
}
.option_item p,.gallery_item p {
	font-size: 1.2rem;
}
.result_table th{
	width: 32%;
}

}