@charset "utf-8";

/* 製品・サービス */
.parent_title_area {
	position: relative;
	height: 133px;
	overflow: hidden;
	max-width: 1240px;
	padding: 0 20px;
	margin: auto;
}
.page_title {
	position: static;
	color: #000;
	padding: 0;
	margin: 48px auto 0;
}
.catch_area{
	position: relative;
	overflow: hidden;
}
.catch_area::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 60%;
	background: transparent linear-gradient(180deg, #00000000 0%, #00000099 100%) 0% 0% no-repeat padding-box;
	z-index: 1;
}
.catch_copy_area{
	position: relative;
	z-index: 2;
	color: #fff;
	display: block;
	max-width: 1240px;
	padding: 0 20px;
	margin: auto;
	height: 382px;
}
.catch_copy_area_in {
	position: absolute;
	left: 20px;
	bottom: 30px;
}
.catch_copy {
	font-size: 3.4rem;
	font-weight: bold;
	margin-bottom: 13px;
}
.catch_copy_sub {
	font-size: 1.6rem;
}
.ttl_bg_slider{
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 0;
}
.ttl_bg_track{
	display: flex;
	height: 100%;
	width: max-content;
	animation: ttl-bg-slide 250s linear infinite;
}
.ttl_bg_slider .c_slide_img{
	flex: 0 0 auto;
	height: 100%;
	width: auto;
	object-fit: cover;
	display: block;
}
@keyframes ttl-bg-slide{
	0%{transform: translateX(0);}
	100%{transform: translateX(-50%);}
}

.page_parent .content_area {
	margin: 80px auto 30px;
}
.c_list {
	display: block;
}
.c_item {
	display: flex;
	gap: 40px;
	margin-bottom: 80px;
}
.c_thumb {
	max-width: 460px;
}
.c_link_area {
	width: 100%;
}
.c_title {
	padding: 0 0 20px 0;
	margin-bottom: 20px;
	font-size: 2.8rem;
	font-weight: 500;
	border-bottom: 2px solid #E2E2E2;
	background: none;
}
.c_title::before {
	content: '';
	display: inline-block;
	width: 11px;
	height: 22px;
	margin-right: 8px;
	background: url(/img/common/arrow_r.svg) no-repeat center left / 10px;
}
.c_link {
	display: inline-block;
	line-height: 2.8rem;
	transition: color 0.3s;
}
.c_desc {
	padding: 0;
	margin: 0 0 40px 0;
	font-size: 1.6rem;
}
.c_child_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 5px;
	padding-left: 0;
}
.c_child_item {
	list-style: none;
}
.c_child_item::before {
	content: '';
	display: inline-block;
	width: 8px;
	height: 12px;
	margin-right: 3px;
	background: url(/img/common/arrow_r.svg) no-repeat center left / 7px;
}
.c_child_link {
	text-decoration: none;
	transition: color 0.3s;
}
.c_link:hover,.c_child_link:hover {
	color: #BE000F;
}

/* 特装車トップ */
.c_specially .content_area ,.c_special .content_area{
	max-width: none;
	padding: 0;
}
.specially_strength{
	display:grid;
	gap:35px;
	grid-template-columns:repeat(3,1fr);
	margin: 45px auto;
}
.specially_strength_item{
	border: 1px solid #109079;
	padding: 25px 25px 22px;
}
.specially_strength_label {
	margin-bottom: 0;
}
.specially_strength_value{font-size:2.2rem;margin:0;}
.specially_strength_number{
	display:inline-block;
	margin:0 3px;
	color:#109079;
	font-size:3.8rem;
}
.specially_strength_highlight{
	display:inline-block;
	margin: 7px 0 0 0;
	color: #109079;
	font-size: 3rem;
}
.top_title_area {
	text-align: center;
	margin: 0 auto 50px;
	max-width: 1240px;
	padding: 0 20px;
	font-weight:500;
}
.top_title.specially{
	margin: 33px auto 15px;
}
.top_title_area p{
	font-size: 1.7rem;
	font-weight: 400;
}
.intro_title.specially {
    margin: 81px 0 14px !important;
}
.txt_center{
	text-align:center;
	margin-bottom: 23px;
	font-size: 1.7rem;
}

/* 局舎トップ */
.c_shelter .content_area {
	max-width: none;
	padding: 0;
}

.c_shelter .top_title_area {
	margin: 0 auto 45px;
}
.top_title {
	font-size: 2.8rem;
	font-weight: 500;
	margin: 32px auto 15px;
}
.top_title span {
	color: #109079;
}
.c_slider_area{
	position: relative;
	overflow: hidden;
	height: 267px;
}
.c_ttl_bg .c_slide_img{
	flex: 0 0 auto;
	height: 100%;
	width: auto;
	object-fit: cover;
	display: block;
	max-height: 267px;
	padding-right: 5px;
}
.intro_area {
	max-width: 1240px;
	padding: 0 20px;
	margin: 0 auto 56px;
}
.intro_title {
	padding: 0;
	margin: 81px 0 31px;
	text-align: center;
}
.intro_title::before, .intro_title::after {
	display: none;
}
.intro_list {
	display: flex;
	grid-gap: 40px;
	justify-content: center;
	padding: 0;
}
.intro_item {
	list-style: none;
}
.intro_item p {
	font-size: 1.6rem;
	color: #126455;
	text-align: center;
	margin-bottom: 14px;
}
.intro_img{
	margin: auto;
	margin-bottom: 18px;
}
.intro_btn {
	margin:30px auto;
}
.intro_btn .link_btn{
	display:block;
	margin:auto;
	max-width:250px;
}

/* 特種 */
.top_title.special{
	margin: 33px auto 16px;
}
.intro_title.special {
	margin: 83px 0 16px;
}
.txt_center.special {
	margin-bottom: 24px;
}
.special_strength_label{
	margin-bottom: 0;
}

   /* オーダーメイド事例 */
.cases_area {
	position: relative;
	margin: 80px auto 0;
}
.cases_area_in {
	max-width: 1240px;
	padding: 62px 20px 83px;
	margin: auto;
}
.cases_area_in::before{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 64.5%;
	background: #ECECE9;
	z-index: -1;
}
.cases_info_box {
	margin-bottom: 30px;
}
.cases_info_box h2 {
	font-size: 3rem;
	margin: 0 0 16px 0;
	padding: 0;
}
.cases_info_box h2::before, .cases_info_box h2::after {
	display: none;
}
.case_list {
	margin-bottom: 16px;
	background: #fff;
}
.c_shelter .case_image{
	padding: 34px;
}
.case_btn {
	margin-bottom:30px;
	font-size: 1.7rem;
}
.more_cases_btn .link_btn {
	display:block;
	margin:auto;
	max-width:250px;
}
.news_area {
	max-width: 1240px;
	padding: 0 20px;
	margin: 0 auto 80px;
}
.news_head {
	font-size: 3rem;
	margin: 0;
	padding: 0;
}
.news_head::before, .news_head::after {
	display: none;
}
.news_head_box {
	display: flex;
	justify-content: space-between;
	align-items: end;
	margin-bottom: 31px;
}
.news_none {
    margin: 20px 0;
}
.news_btn .link_btn {
	display:block;
	margin:auto;
	max-width:250px;
}
.c_link_btn {
	text-decoration: none;
	padding-left: 12px;
	background: url(/img/common/arrow_r.svg) no-repeat top 7px left / 7px;
	transition: color 0.3s;
}
.c_link_btn:hover {
	color: #BE000F;
}
.service_links_area {
	max-width: 1240px;
	padding: 0 20px;
	margin: 0 auto 90px;
	display: flex;
	gap: 40px;
}
.service_link{
	text-decoration: none;
}
.service_link_img {
	margin-bottom: 15px;
	position: relative;
}
.service_link p {
	font-size: 2rem;
	font-weight: 500;
	padding-left: 30px;
	position: relative;
	transition: color 0.3s;
}
.service_link p::before {
	content: "";
	display: inline-block;
	position: absolute;
	left: 0;
	width: 28px;
	height: 30px;
	background: url(/img/common/arrow_r.svg) no-repeat center / 9px;
}
.service_link_img::before {
	content: "";
	position: absolute;
	inset:-1px;
	border:2px solid transparent;
	pointer-events: none;
	transition: border-color .3s;
	z-index: 2;
}
.service_link:hover .service_link_img::before {
	border-color: #BE000F;
}
.service_link:hover p {
	color: #BE000F;
}
.blog_area {
	max-width: 1240px;
	padding: 0 20px;
	margin: 0 auto 80px;
}
.blog_info_box h2 {
	padding-top: 0;
	margin: 0 auto 28px;
	font-size: 2.8rem;
	line-height: 3.6rem;
	text-align: center;
}
.blog_info_box h2::before, .blog_info_box h2::after {
	display: none;
}
.blog_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 40px;
	padding-left: 0;
}
.blog_item{
	list-style: none;
}
.blog_link {
	text-decoration: none;
	display: block;
}
.blog_thumb {
	margin-bottom: 15px;
	position: relative;
}
.blog_thumb::after{
	content:'';
	position:absolute;
	inset:0;
	box-shadow: inset 0 0 0 2px transparent;
	pointer-events:none;
	transition: box-shadow 0.3s;
}
.blog_link:hover .blog_thumb::after{
	box-shadow: inset 0 0 0 2px #BE000F;
}
.more_blog_btn {
    text-align: center;
    margin-top: 35px;
}
.blog_link:hover .blog_title{
	color: #BE000F;
}
@media screen and (max-width:1090px){
.specially_strength {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
	gap: 0;
}
.specially_strength_item {
	flex: 0 0 45%;
	margin: 10px;
}
}
@media screen and (max-width:1024px){
.parent_title_area {
	height: 118px;
}
.page_title {
	font-size: 3.4rem;
	margin: 33px auto 0;
}
.catch_copy_area {
	height: 300px;
}
.catch_copy {
	font-size: 3rem;
	margin-bottom: 24px;
}
.page_parent .content_area {
	margin: 60px auto 8px;
}
.c_item {
	gap: 20px;
	margin-bottom: 30px;
}
.c_thumb {
    max-width: 354px;
}
.c_title {
    font-size: 2.6rem;
    margin-top: 5px;
	margin-bottom: 14px;
    padding: 0 0 19px 0;
}
.c_desc {
    margin: 0 0 21px 0;
    font-size: 1.5rem;
}
.c_child_list {
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 0 12px;
}
.c_child_item {
	margin-bottom: 8px;
}
.c_title{
	background: none;
}
.c_title::before {
	height: 16px;
}

.top_title.specially {
	margin: 30px auto 14px;
	font-size: 2.6rem;
}
.specially_strength {
	margin: 29px auto;
}



.top_title_area p {
    font-size: 1.5rem;
}
.specially_strength_value {
	font-size: 2.2rem !important;
	font-weight: 500 !important;
	margin-top: 22px;
}
.specially_strength_item {
	padding: 15px 10px 24px;
}
.specially_strength_highlight {
	margin: 0;
}
.intro_title.specially {
	margin: 59px 0 14px !important;
}
.c_slider_area {
	height: 197px;
}
.cases_area {
	margin: 60px auto 0;
}
.cases_area_in {
	padding: 58px 20px 64px;
}
.cases_info_box h2 {
	font-size: 2.6rem;
	margin: 0px 0 14px 0;
}
.case_btn {
	margin-bottom: 16px;
	font-size: 1.5rem;
}
.news_area {
	margin: 0 auto 61px;
}
.news_head {
	font-size: 2.8rem;
}
.news_link {
	display: block;
	padding: 15px 0;
}
.news_cate {
	line-height: 1.5rem;
}
.news_title {
	padding-top: 12px;
	width: auto;
}
.service_links_area {
	gap: 24px;
}
.service_link p {
	font-size: 1.6rem;
	padding-left: 27px;
}
.service_link p::before {
	height: 25px;
	background: url(/img/common/arrow_r.svg) no-repeat center / 7px;
}
.service_link_img {
	margin-bottom: 12px;
}
.blog_list {
	gap: 20px;
}

}


@media screen and (max-width:767px){
.page_title {
	font-size: 3.2rem;
	margin: 21px auto 0;
}

.parent_title_area {
	height: 96px;
}
.catch_copy_area {
	height: 210px;
	color: #000;
	padding: 0 !important;
}
.page_parent .content_area {
	margin: 31px auto 8px;
}
.catch_copy_area_in {
    position: relative;
    left: 0;
    bottom: 0;
}
.catch_copy {
	font-size: 2.8rem;
	line-height: 4rem;
	font-weight: 500;
	margin-bottom: 20px;
}
.c_list {
	margin-top: 18px !important;
}
.c_item {
	display: block;
}
.c_thumb {
	margin-bottom: 20px;
	max-width: none;
}

.mv_img {
    min-height: 150px;
	object-fit: cover;
}
.top_title_area {
    text-align: left;
}
.top_title.specially {
	margin: 30px auto 12px;
	font-size: 2.4rem;
}
.top_title_area p {
	font-size: 1.6rem;
}
.specially_strength {
	gap: 20px;
	margin: 29px auto;
}
.specially_strength {
	display: grid;
	grid-template-columns: 1fr;
	text-align: center;
	gap: 11px;
}
.specially_strength_item{
	margin: 0;
	padding: 24px 10px;
}
.specially_strength_value{
	margin-top: 15px;
}
.intro_title.specially {
	margin: 54px 0 11px !important;
}
.txt_center {
	margin-bottom: 27px;
	font-size: 1.4rem;
}
.c_slider_area {
	height: 120px;
}
.cases_area {
	margin: 55px auto 0;
}
.cases_area_in {
	padding: 58px 20px 58px;
}
.cases_area_in::before {
	height: 24.5%;
}
.cases_info_box h2 {
	margin: 0px 0 11px 0;
}
.cases_info_box {
	margin-bottom: 24px;
}
.case_btn {
	margin-bottom: 19px;
	font-size: 1.4rem;
}
.news_head {
	font-size: 2.4rem;
}
.news_list {
	margin: 12px 0 30px;
}
.news_title {
	width: auto;
	padding-top: 10px;
}
.news_link {
	padding: 13px 0;
}

.service_links_area {
	display: block;
	margin: 0 auto 80px;
}
.service_link_img {
	margin-bottom: 17px;
}
.service_link p {
	margin-bottom: 40px;
}
.top_title{
	font-size: 2.4rem;
}
.intro_title {
	margin: 60px 0 31px;
}
.intro_list {
	flex-wrap:wrap;
	grid-gap: 18px 0;
	margin-bottom: 0;
}
.intro_item {
	width: 50%;
}
.intro_item p {
    font-size: 1.4rem;
}
.intro_img {
    margin-bottom: 12px;
}
.blog_list {
	grid-template-columns: 1fr;
}
.blog_info {
    margin-bottom: 5px;
}
.blog_thumb {
	margin-bottom: 7px;
}






















}


