@charset "utf-8";

.sp {
	display: none !important;
}

#side {
	box-sizing: border-box;
	position: fixed;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	width: 80px;
	height: 100vh;
	left: 0;
	top: 0;
	z-index: 1000;
	padding: 23px 0 30px;
	background: #fff;
}
#side .logo {
	width: 37px;
	margin: 0 auto;
}
#side .logo img {
	width: 100%;
	height: auto;
}
#side .copyright {
	position: relative;
	writing-mode: vertical-rl;
	left: 0;
	font-size: 14px;
	line-height: 1;
}


@media screen and (max-height:800px) {
	#side .logo {
		width: 32px;
	}
	#side .copyright {
		font-size: 12px;
	}
}
@media screen and (max-height:700px) {
	#side {
		padding: 20px 0;
	}
	#side .logo {
		width: 26px;
	}
	#side .copyright {
		font-size: 11px;
	}
}
@media screen and (max-height:600px) {
	#side {
		padding: 16px 0;
	}
	#side .logo {
		width: 24px;
	}
	#side .copyright {
		padding-top: 15px;
		font-size: 10px;
		line-height: 1.3;
	}
}


#wrap {
}


#menu-button {
	display: none;
}

#wrap > header {
	position: relative;
	display: flex;
	justify-content: flex-end;
	height: 75px;
	padding-left: 80px;
	background: #fff;
}
#wrap > header .contact {
	position: relative;
	width: 214px;
}
#wrap > header .contact a {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	color: #fff;
	background: #dc1414;
}

#wrap > header nav,
#wrap > header ul {
	display: flex;
	align-items: center;
}


#wrap > header .main {
	margin-right: 32px;
}
#wrap > header .main li + li {
	margin-left: 26px;
}
#wrap > header .main a {
	font-size: 16px;
	line-height: 1;
}


#wrap > header .sns {
	margin-right: 29px;
}
#wrap > header .sns li {
	width: 33px;
	height: 33px;
}
#wrap > header .sns li + li {
	margin-left: 25px;
}
#wrap > header .sns a {
	display: block;
	height: 32px;
}
#wrap > header .sns img {
	width: 100%;
	height: auto;
}







.content-inner {
	box-sizing: border-box;
	max-width: calc(1200px + 120px + 40px);
	margin: 0 auto;
	padding: 0 40px 0 120px;
}




.footer-contact {
	padding: 54px 0 60px;
	background: #dc1414;
}
.footer-contact .content-inner {
	display: flex;
	align-items: center;
}
.footer-contact .text {
	box-sizing: border-box;
	width: 60%;
	color: #fff;
}
.footer-contact .image {
	box-sizing: border-box;
	width: 40%;
	padding: 0 90px;
}
.footer-contact .image img {
	width: 100%;
	height: auto;
}
.footer-contact .text h2 {
	font-size: 36px;
}
.footer-contact .text p {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.8;
}
.footer-contact .button {
	margin: 18px 0 0;
}
.footer-contact .button a {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 270px;
	height: 40px;
	font-size: 17px;
	color: #dc1414;
	border: 1px solid #fff;
	background: #fff;
}


footer {
	padding: 50px 0 58px;
	background: #d0d0d1;
}
footer nav {
	display: flex;
	font-size: 15px;
	line-height: 1.934;
}
footer nav > * + * {
	margin-left: 45px;
}

footer .extra {
	display: flex;
	justify-content: space-between;
	margin: 30px 0 0;
}
footer .sns ul {
	display: flex;
}
footer .sns li {
	width: 33px;
}
footer .sns li + li {
	margin-left: 25px;
}
footer .sns a {
	display: block;
	height: 33px;
}
footer .sns img {
	width: 100%;
	height: auto;
}

footer .logo {
	width: 267px;
}
footer .logo img {
	width: 100%;
	height: auto;
}



@media screen and (max-width:1280px) {
	.footer-contact .text h2 {
		font-size: 32px;
	}
}




/* ---------------------------------------------------------------------------------------------------- */
/* KV */

#kv {
	margin: 75px 0 0;
}
#kv h1 {
	font-size: 75px;
	line-height: 1.267;
}
#kv .lead {
	margin: 18px 0 0;
	font-size: 26px;
	line-height: 1;
	white-space: nowrap;
}






#partner-slide {
	position: relative;
	width: 100%;
	min-height: 535px;
	margin: 68px 0 0;
	overflow: hidden;
}
#partner-slide .image-list {
	display: flex;
}
#partner-slide .image-list + .image-list {
	margin-top: 1px;
	margin-left: -135px;
}
#partner-slide ul {
	display: flex;
}
#partner-slide ul + ul {
	margin-left: 30px;
}
#partner-slide li {
	position: relative;
	width: 240px;
	height: 240px;
	background: #ccc;
	border-radius: 120px;
	overflow: hidden;
}
#partner-slide li + li {
	margin-left: 30px;
}
#partner-slide .caption {
	box-sizing: border-box;
	max-width: calc(1200px + 120px + 40px);
	margin: 28px auto 0;
	padding: 0 40px 0 120px;
	text-align: right;
	font-size: 15px;
	line-height: 1;
}






#partner-slide .image-list {
	width: calc((240px * 12 + 30px * 11) * 2 + 30px);
}
#partner-slide ul {
	width: calc(240px * 12 + 30px * 11);
	counter-reset: order;
}
#partner-slide li {
	counter-increment: order;
}
#partner-slide li::before {
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	font-size: 50px;
	color: #fff;
	content: counter(order);
}



#partner-slide .image-list li {
	animation: slide_loop 40s infinite linear;
}
@keyframes slide_loop {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(calc((240px * 12 + 30px * 12) * -1));
	}
}







#top-intro {
	margin: 100px 0 0;
	background: #dc1414;
}
#top-intro .inner {
	display: flex;
	align-items: center;
}
#top-intro .image {
	width: 50%;
}
#top-intro .text {
	width: 50%;
	color: #fff;
}
#top-intro .image img {
	width: 100%;
	height: 480px;
	object-fit: cover;
	object-position: center top;
}

#top-intro .text-inner {
	box-sizing: border-box;
	position: relative;
	max-width: 600px;
	padding: 50px 20px 50px 60px;
}
#top-intro h2 {
	font-size: 40px;
	line-height: 1.5;
}
#top-intro p {
	margin: 14px 0 0;
	font-size: 18px;
	line-height: 1;
}
#top-intro .button {
	margin: 32px 0 0;
}
#top-intro .button a {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 270px;
	height: 40px;
	font-size: 17px;
	color: #dc1414;
	border: 1px solid #fff;
	background: #fff;
}


@media screen and (max-width:1280px) {
	#top-intro h2 {
		font-size: 32px;
	}
}








body.index .structure {
	margin-top: 65px;
}




#top-recruit {
	padding: 50px 0 64px;
	text-align: center;
	color: #fff;
	background: #192850;
}
#top-recruit .logo img {
	width: 54px;
	height: auto;
}
#top-recruit h2 {
	margin: 20px 0 0;
	font-size: 36px;
	line-height: 1.5;
}
#top-recruit .button {
	margin: 20px 0 0;
}
#top-recruit .button a {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 270px;
	height: 40px;
	margin: 0 auto;
	font-size: 17px;
	color: #fff;
	border: 1px solid #fff;
	background: #192850;
}
#top-recruit .caption {
	margin: 26px 0 0;
}
#top-recruit .gallery {
	display: flex;
	margin: 50px 0 0;
}
#top-recruit .gallery img {
	width: 25%;
	height: 328px;
	object-fit: cover;
}


@media screen and (max-width:1280px) {
	#top-recruit h2 {
		font-size: 32px;
	}
}










/* ---------------------------------------------------------------------------------------------------- */
/* モジュール - 消火栓標識の仕組み */

.structure h2 {
	font-size: 30px;
	text-align: center;
}
.structure .inner {
	display: flex;
	flex-direction: row-reverse;
	align-items: stretch;
	margin: 32px 0 0;
	border: 4px solid #dc1414;
}
.structure .inner > * {
	box-sizing: border-box;
	width: 50%;
}
.structure .text {
	padding: 60px 50px 60px 64px;
	color: #fff;
	background: #dc1414;
}
.structure .image {
	display: flex;
	align-items: center;
	padding: 60px 40px;
	text-align: center;
}
.structure .image img {
	max-width: 482px;
	width: 100%;
	height: auto;
}
.structure .text p {
	font-size: 22px;
	line-height: 1.8;
}
.structure .text p + p {
	margin-top: 15px;
}

.structure .button {
	margin: 40px 0 0;
}
.structure .button a {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 270px;
	height: 40px;
	margin: 0 auto;
	font-size: 17px;
	border: 1px solid #000;
	background: #fff;
}


@media screen and (max-width:1280px) {
	.structure .text p {
		font-size: 18px;
	}
}




/* ---------------------------------------------------------------------------------------------------- */
/* モジュール - 会社概要 */

.company .inner {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	padding: 65px 0;
}
.company .image {
	width: 55%;
}
.company .text {
	width: 45%;
}

.company .image img {
	width: 100%;
	height: auto;
}
.company .text h2 {
	font-size: 40px;
	line-height: 1.5;
}
.company .button {
	margin: 16px 0 0;
}
.company .button a {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 270px;
	height: 40px;
	font-size: 17px;
	border: 1px solid #000;
	background: #fff;
}
.company .sns {
	margin: 38px 0 0;
}
.company .sns ul {
	display: flex;
}
.company .sns li {
	width: 40px;
}
.company .sns li + li {
	margin-left: 45px;
}
.company .sns a {
	display: block;
	height: 40px;
}
.company .sns img {
	width: 100%;
	height: auto;
}


@media screen and (max-width:1280px) {
	.company .text h2 {
		font-size: 32px;
	}
}








/* ---------------------------------------------------------------------------------------------------- */
/* 消火栓標識とは */

#syoukasen-intro .gallery {
	display: flex;
}
#syoukasen-intro .gallery img {
	width: calc(100% / 3);
	height: 500px;
	object-fit: cover;
}
#syoukasen-intro h1 {
	margin: 65px 0 0;
	font-size: 70px;
	text-align: center;
	line-height: 1.285;
}
#syoukasen-intro .text {
	margin: 12px 0 0;
	text-align: center;
}
#syoukasen-intro .text p {
	font-size: 16px;
	line-height: 2.0625;
}
#syoukasen-intro .image {
	margin: 92px 0 0;
}
#syoukasen-intro .image img {
	width: 100%;
	height: 480px;
	object-fit: cover;
	object-position: center top;
}




#feature {
	margin: 128px 0 0;
}
#feature .feature {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
#feature .feature + .feature {
	margin-top: 65px;
}
#feature .feature:nth-child(2n) {
	flex-direction: row-reverse;
}
#feature .image {
	width: 50%;
}
#feature .text {
	box-sizing: border-box;
	width: 50%;
}
#feature .image img {
	width: 100%;
	height: auto;
}
#feature h2 {
	font-size: 40px;
	line-height: 1.5;
}
#feature p {
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.8;
}


#feature .feature:nth-child(2n + 1) .text {
	padding-left: 54px;
}
#feature .feature:nth-child(2n) .text {
	padding-right: 54px;
}


@media screen and (max-width:1280px) {
	#feature h2 {
		font-size: 32px;
	}
}








body.syoukasen .structure {
	margin-top: 100px;
}







#partner {
	margin: 100px 0 0;
}
#partner h2 {
	font-size: 45px;
	line-height: 1.445;
	text-align: center;
}
#partner .lead {
	margin: 14px 0 0;
}
#partner .lead p {
	font-size: 16px;
	line-height: 2;
	text-align: center;
}

#partner #partner-slide {
	margin-top: 48px;
}
#partner #partner-slide .caption {
	margin-top: 32px;
	text-align: center;
}





#necessity {
	margin: 120px 0 0;
	padding: 100px 0 115px; 
	color: #fff;
	background: url(/syoukasen/img/necessity_bg.jpg) 50% 0 no-repeat;
	background-size: cover;
}
#necessity h2 {
	font-size: 30px;
	text-align: center;
}
#necessity .list {
	margin: 58px 0 0;
}
#necessity .box {
	display: flex;
	align-items: center;
}
#necessity .box + .box {
	margin-top: 82px;
}
#necessity .box:nth-child(2n + 1) {
	flex-direction: row-reverse;
}
#necessity .image {
	width: 50%;
}
#necessity .text {
	box-sizing: border-box;
	width: 50%;
}
#necessity .image img {
	width: 100%;
	height: auto;
}
#necessity h3 {
	font-size: 40px;
	line-height: 1.5;
}
#necessity p {
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.8;
}


#necessity .box:nth-child(2n + 1) .text {
	padding-left: 54px;
}
#necessity .box:nth-child(2n) .text {
	padding-right: 54px;
}


#necessity .caption {
	margin: 75px 0 0;
	font-size: 36px;
	line-height: 1.556;
	text-align: center;
}


@media screen and (max-width:1280px) {
	#necessity h3 {
		font-size: 32px;
	}
	#necessity .caption {
		font-size: 28px;
	}
}









/* ---------------------------------------------------------------------------------------------------- */
/* 会社概要 */

#about-intro {
	margin: 125px 0 0;
}
#about-intro h1 {
	width: 750px;
	margin: 0 auto;
}
#about-intro h1 img {
	width: 100%;
	height: auto;
}


#about-company {
	margin: 115px 0 0;
}
#about-company h2 {
	font-size: 30px;
	text-align: center;
}
#about-company .access {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	margin: 40px 0 0;
	padding: 0 0 0 120px;
	background: #dc1414;
}
#about-company .text {
	display: flex;
	justify-content: flex-end;
	width: 50%;
	font-size: 20px;
	line-height: 1.9;
	color: #fff;
}
#about-company .map {
	position: relative;
	width: 50%;
	height: 310px;
}
#about-company .text address {
	box-sizing: border-box;
	width: 100%;
	max-width: 600px;
	padding-right: 40px;
}
#about-company .map iframe {
	position: absolute;
	width: 100%;
	height: 100%;
}

#about-company .content-inner {
	margin-top: 82px;
}

@media screen and (max-width:1280px) {
	#about-company .text {
		font-size: 18px;
	}
}
@media screen and (max-width:1120px) {
	#about-company .text {
		font-size: 16px;
	}
	#about-company .text address {
		padding-right: 20px;
	}
}




#about-company .company-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: [Y1] 8.4rem [Y2] 8.4rem [Y3] 8.4rem [Y4] 7rem [Y5];
	grid-auto-flow: column;
	grid-gap: 0;
	padding-bottom: 1.4rem;
}
#about-company .company-list dl {
	box-sizing: border-box;
	padding: 0 10px 0 20px;
	font-size: 14px;
	line-height: 1.6;
	border-left: 1px solid #000;
}
#about-company .company-list dl:nth-child(4n + 1) {
	margin-top: 0;
}
#about-company .company-list dl.long + dl {
	height: 8.4rem;
	padding-top: 1.4rem;
}
#about-company .company-list .button {
	margin-top: 38px;
}
#about-company .company-list .button a {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 270px;
	height: 40px;
	font-size: 17px;
	border: 1px solid #000;
	background: #fff;
}



@media screen and (max-width:1280px) {
	#about-company .company-list dl {
		font-size: 13px;
	}
}
@media screen and (max-width:1080px) {
	#about-company .company-list {
		grid-template-rows: repeat(4, auto);
	}
	#about-company .company-list dl.long + dl {
		height: auto;
		padding-top: 0;
	}
	#about-company .company-list dl + dl {
		padding-top: 1.4rem !important;
	}
}










#message {
	margin: 100px 0 0;
	text-align: center;
}
#message .image {
}
#message .image img {
	width: 100%;
	height: 454px;
	object-fit: cover;
	object-position: center 10px;
}
#message h2 {
	margin: 65px 0 0;
	font-size: 20px;
}
#message .name {
	margin: 16px 0 0;
	font-size: 30px;
}
#message .text {
	margin: 30px 0 0;
}
#message .text p {
	font-size: 16px;
	line-height: 2;
}

#message .box {
	margin: 95px 90px 0;
}
#message .box .subtitle {
	position: relative;
}
#message .box .subtitle::after {
	position: absolute;
	content: "";
	width: 100%;
	height: 1px;
	left: 0;
	top: 50%;
	background: #dc1414;
}
#message .box .subtitle h3 {
	position: relative;
	width: 160px;
	z-index: 10;
	margin: 0 auto;
	background: #fff;
}
#message .box h4 {
	margin: 25px 0 0;
	font-size: 45px;
}
#message .box p {
	margin: 8px 0 0;
	font-size: 18px;
	line-height: 1.85;
}

#message .box.guideline .content {
	margin: 35px 0 0;
}
#message .box.guideline p {
	display: inline-block;
	text-align: left;
}


@media screen and (max-width:1080px) {
	#message .text p {
	}
}






#symbol {
	margin: 125px 0 0;
	padding: 0 0 92px;
	text-align: center;
	color: #fff;
	background: #192850;
}
#symbol .gallery {
	display: flex;
}
#symbol .gallery img {
	width: calc(100% / 3);
	height: 500px;
	object-fit: cover;
}
#symbol .logo {
	width: 750px;
	margin: 105px auto 0;
}
#symbol .logo img {
	width: 100%;
	height: auto;
}
#symbol .text {
	margin: 60px 0 0;
	font-size: 16px;
	line-height: 2;
}








#for-partner {
	margin: 100px 0;
}
#for-partner h2 {
	font-size: 30px;
	text-align: center;
}
#for-partner .text {
	max-width: 900px;
	margin: 25px auto 0;
}
#for-partner .text p {
	font-size: 16px;
	line-height: 2;
}
#for-partner .image {
	max-width: 900px;
	margin: 25px auto 0;
}
#for-partner .image img {
	width: 100%;
	height: auto;
}
#for-partner .caption {
	max-width: 900px;
	margin: 22px auto 0;
	font-size: 20px;
	text-align: center;
}



























































































