/* common */
.corporate-philosophy { margin-bottom: 120px; }
.page-hero strong { margin-bottom: 15px; letter-spacing: .16em; line-height: 1; }
.corporate-philosophy h3 { font-weight: bold; border-left: 5px solid #d63533; }
.sub-title { font-size: 40px; letter-spacing: .14em; font-weight: bold; position: relative; margin-bottom: 45px; }
.sub-title::after { content: ''; position:absolute; bottom: -15px; left: 0; width: 266px; height: 5px; background: #000000; }
.sub-title.color-line::after { content: ''; position: absolute; bottom: -15px; left: 0; width: 266px; height: 5px; background-image: url(../images/strength/color-line.svg); background-size: cover;; background-repeat: no-repeat; }
.s-title { font-weight: bold; letter-spacing: .1em; margin-bottom: 10px; }
.catch { text-align: center; color: #fff; text-shadow: 0 0 20px #000; line-height: 1.3; }
.catch .main-catch { font-size: 60px; letter-spacing: .15em; font-weight: bold; }
.catch .sub-catch { font-size: 21px; letter-spacing: .1em; line-height: 1.8; }
.sub-title.line { display: inline-block; }
.sub-title.line::after { left: 0; right: 0; margin: 0 auto; bottom: -15px; width: 100%; }
.sub-title.line.red::after { background: #d63533; }
.google-privacy { font-size: 12px; }

/* color */
.color-orange { color: #e58000; }
.color-green { color: #42a44a; }
.color-blue { color: #29a7de; }
.color-red { color: #d63533; }
.color-gray { color: #808080; }

/* page */
.message .message-box .message-text { padding: 0 50px 0 0; width: auto; }
.message .message-box .message-photo { width: auto; position: static; }
.message .message-box .message-photo img { max-width: none; width: calc(50vw + 115px); }
.access { margin-bottom: 100px; }
.strengths-title { position: relative; }
.strengths-title::after { position: absolute; content: ''; width: 100%; height: 10px; background: #e58000; left: 0; top: 0; bottom: 0; margin: auto 0; z-index: -1; }
.strengths-title.color-green::after {background: #42a44a; }
.strengths-title.color-blue::after {background: #29a7de; }
.strengths-title h2 { font-size: 60px; letter-spacing: 0; display: flex; align-items: center; justify-content: center; font-weight: bold;  }
.strengths-title h2 p { display: inline-block; background: #fff; }
.strengths-title h2 .sm { font-size: 16px; padding-left: 15px; letter-spacing: .1em; }
.strengths-sec .strengths-detail .m-title { letter-spacing: .03em; padding-bottom: 10px; }
.our-strengths .our-strengths-box { margin-bottom: 125px; }
.equipment .equipment-title .p-text { margin-bottom: 0; padding-bottom: 110px; }
.equipment .equipment-box { margin-bottom: 0; }
.equipment .equipment-box .title-type .p-title { background: #d63533; }
.challenge-sec .catch { position: absolute; display: flex; align-items: center; justify-content: center; flex-direction: column; top: 0; bottom: 0; left: 0; right: 0; margin: auto; }
.withwork-sec .photos-box .box { width: 50%; }
.withwork-sec .photos-box .box-02 figure { width: 50%; }
.access .dl-table { font-size: 16px; }
.access .dl-table dt { font-weight: normal; }
.access .access-box .add-text { font-size: 16px; font-weight: normal; }
.table-res-form th .requied { color: #d63533; }
#contact_wrapper button { background: #d63533; }

@media (max-width: 1300px){
	.message .message-box .message-photo img { width: calc(100% + 15px); }
}

@media (max-width: 575px) {
	/* common */
	.page-hero strong { font-size: 40px; }
	.sub-title { font-size: 25px; text-align: center; margin-bottom: 30px; }
	.sub-title.color-line::after { right: 0; margin: 0 auto; width: 170px; }
	.s-title { margin-bottom: 5px; }
	.challenge-sec .catch { width: 90%; }
	.catch .main-catch { font-size: 30px; }
	.catch .sub-catch { font-size: 16px; line-height: 1.5; }
	.cube-block .wrapper { align-items: center; }
	.cube-block .num { font-size: 10px; top: 8px; }
	.cube-block .msg { font-size: 10px; padding-top: 0; }
	.google-privacy { font-size: 14px; }


	/* page */
	.message .message-box .message-text { padding: 0; padding-bottom: 30px; }
	.corporate-philosophy { margin-bottom: 60px; }
	.strengths-sec { margin-bottom: 50px; }
	.strengths-sec .strengths-title { margin-bottom: 30px; }
	.strengths-title h2 { font-size:22px; flex-direction: column; }
	.strengths-title h2 .sm { padding-left: 20px; margin-top: -5px; font-size: 14px; }
	.strengths-sec .strengths-detail .m-title { padding-top: 0; }
	.equipment .equipment-title .p-text { text-align: center; }
	.access { margin-bottom: 50px; }
	.withwork-sec .photos-box { flex-direction: column; }
	.table-res-form th { padding-bottom: 10px; }
	.table-res-form td .requied { padding-left: 0; }
	.wpcf7 input[type="email"], .wpcf7 input[type="tel"] { width: 100%; }
	.withwork-sec .photos-box .box { width: 100%; }
	.withwork-sec .photos-box .box-02 figure { width: 100%; }
}
