@charset "UTF-8";
@import url(https://fonts.googleapis.com/icon?family=Material+Icons);
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=PT+Sans+Narrow:wght@700&display=swap');

/* CSS Document */

abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:0}body{line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:0}ins{text-decoration:none}ins,mark{background-color:#ff9;color:#000}mark{font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}*,:after,:before{box-sizing:border-box}ul{list-style:none}.cf:after,.cf:before{content:"";display:table}.cf:after{clear:both}.cf{zoom:1}:focus{outline:0}img{vertical-align:top}input[type=button],input[type=submit]{border-radius:0;-webkit-appearance:none}

/* common */

html {
  font-size: 62.5%;
  overflow-x: hidden;
  width: 100%;
}

body {
  font-size: 1.5rem;
  color: #333;
  line-height: 1.6;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  overflow-x: hidden;
  width: 100%;
  position: relative;
}

.move,
.move-b,
.move-l,
.move-r {
  opacity: 0;
  animation-duration: 1.3s; 
  animation-timing-function: cubic-bezier(0.25, 1, 0.5, 1);
  animation-fill-mode: both;
}

/* delayクラス */
.move-delay1 { animation-delay: 0.2s; }
.move-delay2 { animation-delay: 0.4s; }
.move-delay3 { animation-delay: 0.6s; }
.move-delay4 { animation-delay: 0.8s; }
.move-delay5 { animation-delay: 1s; }
.move-delay6 { animation-delay: 1.2s; }

/* カスタムアニメーション */
@keyframes fadeInUpSoft {
  from { opacity:0; transform: translate3d(0,20px,0); }
  to   { opacity:1; transform: none; }
}
.animate__fadeInUpSoft { animation-name: fadeInUpSoft; }

@keyframes fadeInLeftSoft {
  from { opacity:0; transform: translate3d(-20px,0,0); }
  to   { opacity:1; transform: none; }
}
.animate__fadeInLeftSoft { animation-name: fadeInLeftSoft; }

@keyframes fadeInRightSoft {
  from { opacity:0; transform: translate3d(20px,0,0); }
  to   { opacity:1; transform: none; }
}
.animate__fadeInRightSoft { animation-name: fadeInRightSoft; }

a img {
	opacity: 1;
	transition-property: opacity;
	transition-duration: 0.5s;
}

a img:hover {
	opacity: .8;
	transition-duration: .2s
}

a {
	color: #002984;
	text-decoration: underline;
}

br.pc {
	display: none;
}

br.sp {
	display: block;
}

br.mb {
	display: none;
}

button {
	border: none;
}

.btn a {
	position: relative;
	display: block;
	width: 240px;
	padding: 15px 0;
	font-size: 14px;
	font-weight: 700;
	color: #fff;
	line-height: 1.6;
	text-decoration: none;
	text-align: center;
	transition: .2s;
	box-sizing: border-box;
}

.btn a::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	right: 25px;
	width: 9px;
	height: 9px;
	margin: auto;
	transform: rotate(45deg);
	transition: .2s;
	box-sizing: border-box;
}

.btn-icon-move a:hover::after {
	right: 20px;
}

.btn-w {
	background: #fff;
	border-radius: 30px;
}

.btn-w a {
	color: #002984;
}

.btn-w a:after {
	border-top: 2px solid #002984;
	border-right: 2px solid #002984;
}

.btn-b {
	background: linear-gradient(110deg, rgba(3, 75, 160, 1) 0%, rgba(9, 22, 67, 1) 100%);
}

.btn-b a {
	color: #fff;
}

.btn-b a:after {
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
}

h2.commonh2 {
	color: #002984;
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: 4rem;
	text-align: center;
}

h2.commonh2 span {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	font-size: 1.6rem;
	display: block;
	color: #000000;
	margin-top: -10px;
}

h3.sub_h3 {
	text-align: center;
	color: #002984;
	font-size: 2.2rem;
	padding-bottom: 20px;
}

.common_inner {
	width: 100%;
	padding: 60px 10px;
}

.common_inner_2 {
	width: 100%;
	padding: 60px 0;
}

p.index_btn_wrap {
	text-align: right;
	margin-right: 0;
	padding-top: 40px;
}

div.child_btn_wrap {
	text-align: center;
	margin-right: 0;
	padding-top: 60px;
}

div.breadcrumb {
	background: #fff;
}

div.breadcrumb ol {
	display: flex;
	font-size: 1.2rem;
	list-style-type: none;
	padding: 10px 0;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

ol.breadcrumbs li:not(:first-child)::before {
	content: '>';
	padding-right: 5px;
}

ol.breadcrumbs li {
	padding-left: 5px;
}

.breadcrumbs span[property="name"] {
    display: inline-block;
    padding: 0;
    margin-top: -3px;
    vertical-align: middle;
    max-width: 120px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

div.page_nav {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
	padding-top: 40px;
}

nav.pagination ul {
	display: flex;
	justify-content: center;
}

nav.pagination ul li {
	padding: 0 5px;
	color: #002984;
}

nav.pagination ul li a {
	text-decoration: none;
	color: #020202;
}

p.underco{
	text-align:center;
padding-top:60px;
}

@media screen and (max-width: 460px) {
	br.mb {
		display: block;
	}
}

@media screen and (min-width: 960px) {


	body {
		font-size: 1.6rem;
	}

	br.pc {
		display: block;
	}

	br.sp {
		display: none;
	}

	h2.commonh2 {
		font-size: 7rem;
	}

	h2.commonh2 span {

		font-size: 2rem;
		margin-top: -20px;
	}

	h3.sub_h3 {
		font-size: 2.4rem;
		padding-bottom: 40px;
	}

	.common_inner {
		max-width: 1200px;
		margin: 0 auto;
		padding: 120px 20px;
	}

	.common_inner_2 {
		max-width: 1200px;
		margin: 0 auto;
		padding: 120px 0;
	}

	div.child_btn_wrap {
		padding-top: 100px;
	}
	
	.breadcrumbs span[property="name"] {
    max-width: 300px;
}
}

/* header */

header#site_head {
	background: #091643;
	background: linear-gradient(320deg, rgba(9, 22, 67, 0.93) 41%, rgba(5, 66, 143, 0.93) 100%);
	position: fixed;
	height: 80px;
	width: 100%;
	z-index: 999;
}

header#site_head h1 {
	color: #fff;
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: 3rem;
	text-align: center;
	padding-top: 3px;
}

header#site_head h1 a{
	color:#fff;
	text-decoration: none;
}

header#site_head h1 span {
	display: block;
	font-size: 1.4rem;
	margin-top: -5px;
}

.hamburger-overlay {
	position: fixed;
	top: 20px;
	right: 20px;
	z-index: 1000;
	width: 48px;
	height: 48px;
	border: none;
	background: transparent;
	cursor: pointer;
}

.hamburger-overlay__line {
	position: absolute;
	left: 11px;
	width: 26px;
	height: 2px;
	background-color: #fff;
	transition: all .6s;
}

.hamburger-overlay__line:nth-of-type(1) {
	top: 14px;
}

.hamburger-overlay__line:nth-of-type(2) {
	top: 23px;
}

.hamburger-overlay__line:nth-of-type(3) {
	top: 32px;
}

.hamburger-overlay.active .hamburger-overlay__line {
	background-color: #fff;
}

.hamburger-overlay.active .hamburger-overlay__line:nth-of-type(1) {
	transform: translateY(9px) rotate(-45deg);
}

.hamburger-overlay.active .hamburger-overlay__line:nth-of-type(2) {
	opacity: 0;
}

.hamburger-overlay.active .hamburger-overlay__line:nth-of-type(3) {
	transform: translateY(-9px) rotate(45deg);
}

.nav-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: rgba(7, 25, 70, 0.98);
	visibility: hidden;
	opacity: 0;
	transition: all .6s;
	z-index: 900;
}

.nav-overlay.active {
	visibility: visible;
	opacity: 1;
}

.nav-overlay__content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	text-align: center;
}

.nav-overlay__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav-overlay__item {
	opacity: 0;
	transform: translateY(20px);
	transition: all .6s;
}

.nav-overlay.active .nav-overlay__item {
	opacity: 1;
	transform: translateY(0);
}

.nav-overlay.active .nav-overlay__item:nth-child(1) {
	transition-delay: 0.1s;
}

.nav-overlay.active .nav-overlay__item:nth-child(2) {
	transition-delay: 0.2s;
}

.nav-overlay.active .nav-overlay__item:nth-child(3) {
	transition-delay: 0.3s;
}

.nav-overlay.active .nav-overlay__item:nth-child(4) {
	transition-delay: 0.4s;
}

.nav-overlay.active .nav-overlay__item:nth-child(5) {
	transition-delay: 0.5s;
}

.nav-overlay.active .nav-overlay__item:nth-child(6) {
	transition-delay: 0.6s;
}

.nav-overlay__link {
	display: inline-block;
	padding: 20px;
	color: #fff;
	text-decoration: none;
	transition: color .3s;
	font-size: 1.8rem;
}

.nav-overlay__link:hover {
	color: rgba(218, 236, 246, 1.00);
}

.is-resize .nav-overlay {
	transition: none;
}

@media screen and (min-width: 960px) {

	header#site_head {
		height: 160px;
	}

	header#site_head h1 {
		padding-top: 15px;
	}

	button.hamburger-overlay {
		visibility: hidden;
		opacity: 0;
	}

	.nav-overlay__content {
		position: relative;
		top: 0;
		left: 0;
		transform: none;
	}


	.nav-overlay {
		width: 100%;
		height: auto;
		position: relative;
		background-color: transparent;
		transition: none !important;
		/* ← PC時はトランジションを無効化 */
		opacity: 1 !important;
		visibility: visible !important;
	}

	.nav-overlay,
	.nav-overlay__item {
		visibility: visible;
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	ul.nav-overlay__list {
		display: flex;
		justify-content: center;
		padding-top: 3px;
		font-size: 1.5rem;
	}

}


/* footer */

footer#site_foot {
	padding: 60px 10px 40px;
	margin: 100px auto 0;
	color: #fff;
	background: #091643;
	background: linear-gradient(0deg, rgba(9, 22, 67, 1) 0%, rgba(3, 75, 160, 1) 100%);
	position: relative;
}

div.site_foot_inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	position: relative;
}

.footer_img_container {
	position: absolute;
	top: -140px;
	right: 0;
	width: auto;
	height: auto;
}

.footer_img {
	width: 300px;
	height: auto;
	transform: translateX(clamp(0px, (100vw - 1250px), 50px));
}

p#site_copy {
	text-align: center;
}

div.foot_btm {
	padding: 0 0 40px;
	text-align: right;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

div.foot_btm_l {
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-style: normal;
	text-align: left;
	font-size: clamp(1rem, -0.818rem + 9.09vw, 6rem);
	width: 100%;
	max-width: 600px;
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	letter-spacing: 1px;
}

div.foot_btm_l div:last-child {
	align-self: flex-end;
}

div.foot_btm_r p {
	padding-bottom: 10px;
}

p.foot_com_logo {
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: 3rem;
}

p.foot_com_name {
	font-size: 2rem;
}

p.foot_com_tel {
	margin-bottom: 30px;
}

p.foot_com_tel a {
  text-decoration: none;
  color: #fff !important;/
  -webkit-text-fill-color: #fff;
  -webkit-touch-callout: none;
}

div.foot_btm_l div img {
	max-width: 150px;
}

nav#site_foot_nav {
	display: flex;
	flex-direction: column;
	padding: 40px 0;
}

nav#site_foot_nav ul li {
	margin-bottom: 10px;
}

nav#site_foot_nav ul li a {
	color: #fff;
	text-decoration: none;
}


@media screen and (min-width: 960px) {
	footer#site_foot {
		margin: 200px auto 0;
		padding: 120px 20px 40px;
	}

	div.foot_btm {
		flex-direction: row;
		justify-content: space-between;
	}

	.footer_img_container {
		top: -260px;
		right: 0;

	}

	.footer_img {
		width: 530px;
	}

	nav#site_foot_nav {
		flex-direction: row;
	}

	nav#site_foot_nav ul {
		padding-right: 20px;
	}


	div.foot_btm_l div img {
		max-width: 260px;
	}

}

/* index */

div#index_hero {
	background-size: cover;
	width: 100vw;
	height: 100vh;
}

div.hero_wrap {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	position: relative;
	height: 80vh;
}

div.hero_message {
	position: absolute;
	right: 0;
	bottom: 0;
}

div.hero_message p {
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: clamp(2.6rem, 4vw, 8rem);
	color: #fff;
	letter-spacing: 4px;
	text-align: right;
	padding-right: 20px;
	padding-bottom: 60px;
	background: url("assets/bg_wave.png") no-repeat left bottom 40px;
	background-size: 200px 9px;
}

div.fiest_container {
	padding: 60px 10px 0;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.first {
	display: block;
	max-width: 1200px;
	margin: 0 auto 40px;

}

.first_image_l,
.first_image_r {
	min-height: 200px;
}

.first_image_l {
	background: url("assets/first_image_l.jpg") no-repeat left bottom;
	background-size: cover;
}

.first_image_r {
	background: url("assets/first_image_r.jpg") no-repeat left bottom;
	background-size: cover;
}


.first_content {
	max-width: 100%;
	padding: 20px 10px;
	box-sizing: border-box;
}

.first_l h3 {
	text-align: right;
	padding-bottom: 20px;
	font-size: 2rem;
	color: #002984;
}

.first_l h3 img {
	display: block;
	width: 100%;
	max-width: 120px;
	margin-left: auto;
	margin-right: 0;
	padding-bottom: 10px;
}

div.fiest_container h2 {
	text-align: left;
	background: url("assets/bg_wave_b.png") no-repeat center bottom;
	background-size: 200px 9px;
	padding-bottom: 25px;
	margin-bottom: 40px;
}

.first_r .first_content p img {
	width: 100%;
}

.first_r .first_content p:not(:last-of-type) img {
	max-width: 200px;
	display: block;
	padding-bottom: 20px;
}

.first_r .first_content p:last-of-type img {
	max-width: 300px;
}

.first_r .first_content p:nth-of-type(2) img {
	margin-right: 0;
	margin-left: auto;
}

div.index_business_wrap {
	padding: 20px 10px 0;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

section#index_business h2 {
	text-align: right;
	background: url("assets/bg_wave_b.png") no-repeat center bottom;
	background-size: 200px 9px;
	padding-bottom: 25px;
	margin-bottom: 40px;
}

.swiper-slide img {
	height: auto;
	width: 100%;
}

.swiper-wrapper {
	align-items: stretch;
}

.swiper-slide {
	border: 2px solid #002984;
	display: flex;
	flex-direction: column;
	height: auto !important;
}

.index_business_body {
	flex: 1;
	position: relative;
}

.swiper_wrap {
	position: relative;
	padding: 20px 20px;
}

.swiper-button-prev,
.swiper-button-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 40px;
	height: 40px;
	background-color: rgba(0, 0, 0, 0.5);
	color: #fff;
	border-radius: 50%;
	cursor: pointer;
}

.swiper-button-prev,
.swiper-button-next {
	background: none !important;
	width: 20px !important;
	height: 20px !important;
	display: flex;
	justify-content: center;
	align-items: center;
	top: var(--swiper-navigation-top-offset, 60%) !important;

}

.swiper-button-prev svg path,
.swiper-button-next svg path {
	fill: #002984;
}


.swiper-button-prev {
	left: -8px !important;
}

.swiper-button-next {
	right: -8px !important;
}

.swiper-pagination {
	position: absolute;
	bottom: -30px !important;
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
}

.index_business_body a {
	text-decoration: none;
}

.index_business_body .index_business_img {
	position: relative;
}

.index_business_body .index_business_img img {
	display: block;
	width: 100%;
	opacity: 1;
	transition: opacity 0.5s;
}

.index_business_body .index_business_img:hover img {
	opacity: 0.8;
	transition-duration: 0.2s;
}

.index_business_body .index_business_img h3 {
	position: absolute;
	bottom: -21px;
	right: 0px;
	margin: 0;
	z-index: 2;
}

.index_business_body .index_business_img h3 span.business_h3_title {
	display: inline-block;
	background: #002984;
	color: #fff;
	padding: 5px 20px;
	font-size: 2rem;
	margin: 0;
}

.index_business_body span.index_business_num {
	position: absolute;
	top: 10px;
	right: 10px;
	color: #fff;
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: 6rem;
	text-shadow: 0px 1px 4px rgba(0, 0, 0, 0.66);
	z-index: 3;
}

.index_business_body a p.index_business_txt {
	all: unset;
	display: block;
	color: #000;
	text-decoration: none !important;
	padding: 40px 10px 20px;
}

@media screen and (min-width: 960px) {
	div.hero_message p {
		background-size: 300px 14px;
	}

	div.fiest_container {
		padding: 120px 0 0;
	}

	.first {
		display: flex;
		align-items: stretch;
		margin-bottom: 80px;
	}

	.first_content {
		flex: 1;
		max-width: 600px;
		padding: 40px;
	}

	.first_image_l,
	.first_image_r {
		flex: 1;
		min-height: 300px;
	}

	.first_l .first_image_l {
		margin-left: calc(-50vw + 50%);
		width: 50vw;
	}

	.first_r .first_image_r {
		margin-right: calc(-50vw + 50%);
		width: 50vw;
	}

	div.fiest_container h2 {
		background-size: 300px 14px;
		padding-left: 20px;
	}

	.first_l h3 img {
		max-width: 150px;

	}

	.first_r .first_content p:not(:last-of-type) img {
		max-width: 300px;
		display: block;
		padding-bottom: 40px;
	}

	.first_r .first_content p:last-of-type img {
		max-width: 450px;
		display: block;
		margin-bottom: -120px;
	}


	.first_r .first_content p:nth-of-type(2) img {
		margin: 40px auto 20px;

	}

	section#index_business h2 {
		background-size: 300px 14px;
		padding-right: 20px;
	}

	.swiper_wrap {
		position: relative;
		padding: 60px 20px 20px;
	}

	.index_business_body span.index_business_num {
		top: -20px;
		font-size: 8rem;
	}

}

@media screen and (min-width: 1201px) {
	.first_r .first_content p:first-of-type img {
		position: relative;
		left: calc(-1 * min(150px, (100vw - 1200px) / 2));
	}
}

/* child_page_head */

div.h_news {
	background: url("assets/header_news.jpg");
}

div.h_business {
	background: url("assets/header_business.jpg");
}

div.h_works {
	background: url("assets/header_works.jpg");
}

div.h_company {
	background: url("assets/header_company.jpg");
}

div.h_recruit {
	background: url("assets/header_recruit.jpg");
}

div.h_contact {
	background: url("assets/header_contact.jpg");
}

div.h_policy {
	background: url("assets/header_policy.jpg");
}

div.title_head {
	padding: 120px 0 75px;
	background-size: cover;
	background-position: center;
}

h2.headh2 {
	color: #fff;
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: 4rem;
	text-align: center;
	background: url("assets/bg_wave.png") no-repeat center bottom;
	background-size: 200px 14px;
	padding-bottom: 25px;

}

h2.headh2 span {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	font-size: 1.6rem;
	display: block;
	color: #fff;
	margin-top: -10px;
}

@media screen and (min-width: 960px) {

	div.title_head {
		padding: 220px 0 100px;
		background-size: cover;
		background-position: center;
	}

	h2.headh2 {
		font-size: 7rem;
		background-size: 300px 14px;
		padding-bottom: 25px;
	}

	h2.headh2 span {

		font-size: 2rem;
		margin-top: -20px;
	}
}

/* news */

div.news_list_wrap {
	padding-top: 40px;
}

ul.news_list li {
	padding-bottom: 10px;
	margin-bottom: 20px;
}

ul.news_list li a {
	text-decoration: none;
}

div.news_list_inner {
	width: 100%;
	position: relative;
	border-bottom: 2px solid #000000;
}

div.news_list_inner::before,
div.news_list_inner::after {
	position: absolute;
	bottom: 6px;
	right: 10px;
	height: 2px;
	background: #000;
	content: '';
	transition: .2s;
}

div.news_list_inner:hover::before,
div.news_list_inner:hover::after {
	right: 0px;

}

div.news_list_inner::before {
	width: 50px;
}

div.news_list_inner::after {
	width: 16px;
	transform: rotate(30deg);
	transform-origin: right center;
}

div.news_list_inner {
	display: flex;
	flex-direction: column;
}

p.news_list_img {
	width: 100%;
	max-width: 120px;
}

p.news_list_img,
p.news_list_title {
	padding-bottom: 10px;
}

p.news_list_img img {
	width: 140px;
	height: 102px;
	object-fit: cover; /* 枠いっぱいに画像を切り抜き表示 */
	display: block;
}

p.news_list_head {
	padding-bottom: 5px;
}

span.news_date {
	color: #000;
	font-weight: bold;
	padding-right: 20px;
	font-size: 1.7rem;
}

span.news_cat {
	display: inline-block;
	background: #002984;
	width: 100%;
	max-width: 160px;
	color: #fff;
	text-align: center;
	font-size: 1.3rem;
	padding: 5px 0;
}

p.news_list_title {
	color: #000;
}

@media screen and (min-width: 960px) {
	section#index_news {
		display: flex;
		align-items: center;
	}

	section#index_news h2.commonh2 {
		width: 220px;
		padding-right: 20px;
		margin-top: -60px;
	}

	div.news_list_wrap {
		padding-top: 40px;
		flex: 1;
	}

	div.news_list_inner {
		flex-direction: row;
	}

	p.news_list_img {
		margin: 0 10px;
		max-width: 140px;
	}

	div.news_list_ov {
		flex: 1;
	}
}

/* business */

.business_head {
	background: url("assets/business_head.jpg") no-repeat center;
	background-size: cover;
	padding: 40px 10px;
	margin-bottom: 60px;
}

.business_head img {
	width: 100%;
	max-width: 130px;
	display: block;
	margin: 0 auto 20px;
}

.business_head p {
	color: #fff;
	text-align: center;
}

.business_con {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 30px;
}

.business_img {
	position: relative;
	width: 100%;
}

.business_img img {
	width: 100%;
	height: auto;
	display: block;
}

.business_img span {
	position: absolute;
	top: -20px;
	color: #fff;
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: 6rem;
}


.business_con:nth-child(odd) .business_img span {
	left: 10px;
	right: auto;
}

.business_con:nth-child(even) .business_img span {
	right: 10px;
	left: auto;
}

.business_txt {
	padding: 10px;
}

.business_txt h3 {
	font-size: 2rem;
	color: #002984;
	margin-bottom: 10px;
}

.business_txt p {
	line-height: 1.6;
}



@media screen and (max-width: 460px) {
	.business_head p {
		text-align: left;
	}
}


@media screen and (min-width: 960px) {

	.business_head {
		padding: 60px 20px;
		margin-bottom: 80px;
	}

	.business_head img {
		max-width: 140px;
	}

	.business_head p {
		font-size: 2rem;
	}

	.business_con {
		flex-direction: row;
		align-items: flex-start;
		gap: 20px;
		margin-top: 100px;
	}

	.business_img,
	.business_txt {
		flex: 1 1 50%;
	}

	.business_con:nth-child(odd) {
		flex-direction: row;
	}

	.business_con:nth-child(even) {
		flex-direction: row-reverse;
	}

	.business_img span {
		font-size: 8rem;
	}

	.business_txt {
		padding: 20px;
	}


	.business_txt h3 {
		font-size: 2.4rem;
	}

	.business_txt p {
		padding: 10px;
	}


}

/* company */

.company_head {
	background: url("assets/company_head.jpg") no-repeat center;
	background-size: cover;
	padding: 40px 10px;
	margin-bottom: 20px;
}

.company_head h2 {
	color: #fff;
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: 4rem;
	text-align: right;
}

.company_head h2 span {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	font-size: 1.6rem;
	display: block;
	margin-top: -10px;
}

div#company_philosophy {
	padding: 0 10px;
}

div#company_philosophy h3 {
	font-size: 2.4rem;
	color: #002984;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 30px 0 10px;
}

div#company_philosophy h3::before {
	content: '';
	display: block;
	width: 40px;
	height: 2px;
	background: #002984;
}

div#company_philosophy h3::before {
	margin-right: 1em;
}

div#company_philosophy h4,
div#company_philosophy p {
	padding: 010px;
}

div#company_philosophy h4 {
	color: #002984;
	font-size: 1.8rem;
}

div#company_message {
	padding: 60px 10px;
}

div#company_message h2,
div#recruit_message h2 {
	color: #002984;
	font-family: "PT Sans Narrow", sans-serif;
	font-weight: 700;
	font-size: 4rem;
	text-align: left;
	background: url("assets/bg_wave_b.png") no-repeat right bottom;
	background-size: 200px 9px;
}

div#company_message span {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	font-size: 1.6rem;
	display: block;
	color: #000000;
	margin-top: -10px;
}

div.message_wrap {
	display: flex;
	flex-direction: column;
	padding: 40px 0;
}

p.message_img {
	width: 100%;
	max-width: 400px;
	padding-bottom: 40px;
}

p.message_img img {
	width: 100%;
}

p.message_name {
	text-align: right;
	padding-top: 20px;
}

.overview {
	padding-top: 40px;
}

.overview dl {
	margin: 0 0 8px 0;
	padding: 0;
}

.overview dt,
.overview dd {
	margin: 0;
	padding: 12px 16px;
}

.overview dt {
	background: #002984;
	color: #fff;
}

.overview dd {
	background: #efefef;
	color: #000;
}

p.access_img,
p.recruit_img {
	width: 100%;
	max-width: 80px;
	margin: 0 auto;
}

div#company_access {
	margin-top: 80px;
}

p.access_img img,
p.recruit_img img {
	width: 100%;
	margin-bottom: 10px;
}

div.access {
	padding: 40px 10px 0;
}

div.access h3 {
	color: #002984;
	font-size: 2.2rem;
	padding-bottom: 10px;
}

p.access_add {
	font-size: 1.8rem;
	padding-bottom: 10px;
}

p.access_add span.map_ad {
	padding-right: 20px;
	display: inline-block;
}

p.access_add span.map_link {
	display: inline-block;
}

p.access_add span.map_link img {
	width: 20px;
	vertical-align: middle;
	display: inline-block;
	padding-right: 5px;
}

@media screen and (min-width: 960px) {

	.company_head {
		padding: 60px 20px;
		margin-bottom: 80px;
	}

	.company_head h2,
	div#company_message h2,
	div#recruit_message h2 {
		font-size: 7rem;
	}

	.company_head h2 span,
	div#company_message h2 span {

		font-size: 2rem;
		margin-top: -20px;
	}

	div#company_philosophy {
		padding: 0 20px;
	}

	div#company_philosophy h4 {
		color: #002984;
		font-size: 2rem;
	}

	div#company_message {
		padding: 100px 20px 60px;
	}

	div#company_message h2 {
		background-size: 300px 14px;
	}

	div.message_wrap {
		flex-direction: row;
		padding: 80px 0 100px;
	}

	p.message_img {
		width: 100%;
		max-width: 400px;
		padding-right: 30px;
		padding-bottom: 0;
	}

	p.message_name {
		text-align: right;
		padding-top: 40px;
	}

	.overview {
		padding-top: 80px;
	}

	.overview dl {
		display: flex;
	}

	.overview dt {
		flex: 0 0 250px;
		box-sizing: border-box;
		text-align: center;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.overview dd {
		flex: 1;
		box-sizing: border-box;
		padding: 20px;
	}

	div#company_access {
		margin-top: 100px;
	}

	p.access_img {
		max-width: 95px;
		margin: 0 auto;
	}

}



/* recruit */
div#recruit_message {
	padding: 20px 10px 60px;
}

div#recruit_message h2 {
	text-align: right;
	background-position: left;
}

div#recruit_message span {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	font-size: 1.6rem;
	display: block;
	color: #000000;
	margin-top: -10px;
}

#recruit div.massage_txt h3 {
	color: #002984;
	font-size: 1.9rem;
	padding-bottom: 30px;
}

#recruit div.massage_txt p {
	font-weight: bold;
	text-align: justify;
	text-justify: inter-ideograph;
}

#recruit p.message_img {
	width: 100%;
	max-width: 550px;
	padding-top: 40px;
}

p.recruit_img {
	max-width: 150px;
}


@media screen and (min-width: 960px) {

	#recruit div.massage_txt h3 {
		font-size: 2.4rem;
	}

	#recruit div.massage_txt {
		padding-top: 1%;
	}

	#recruit p.message_img {
		padding-left: 50px;
		padding-top: 10px;
		padding-right: 0;
	}

	p.recruit_img {
		max-width: 170px;
	}

	div#recruit_message {
		padding: 20px 20px 40px;
	}
}


/* contact */
.br_sp {
	display: block;
}

@media only screen and (min-width: 960px) {
	.br_sp {
		display: none;
	}
}

/*PC時、改行しない */
.br_pc {
	display: none;
}

@media only screen and (min-width: 960px) {

	/*PC時、改行する */
	.br_pc {
		display: block;
	}
}

.contact_wrap {
	text-align: center;
}

.contact_txt {
	text-align: left;
	text-align: justify;
	text-justify: inter-ideograph;
	padding-bottom: 40px;
}

span.mail_img img {
    width: 110px;
}

#contact h2,
#contact h3 {
	text-align: center;
	color: #002984;
	font-size: 1.9rem;
}

.contact_tel {
	padding: 20px 0 0;
}

.contact_tel a {
	color: #002984;
	font-size: 3.3rem;
	font-weight: bold;
	text-decoration: none;
}

.contact_tel a img {
	max-width: 35px;
	vertical-align: middle;
	padding-right: 10px;
}

#contact_form {
	text-align: left;
	padding: 80px 0 0px;
}

#contact h3 {
	padding-bottom: 30px;
}

.contact_form_wrap {
	padding: 20px;
	background: #EFEFEF;
	max-width: 950px;
	margin: 20px auto 0;
}

#contact table {
	width: 100%;
}

#contact table th,
#contact table td {
	display: block;
	width: 100%;
}

#contact table td {
	margin-bottom: 25px;
}

#contact table td.max_w300 {
	max-width: 300px;
}

#contact table td.max_w500 {
	max-width: 500px;
}

#contact th {
	color: #002984;
	font-weight: bold;
	font-size: 1.6rem;
	margin-bottom: 10px;
}

#contact th span.contact_required {
	display: inline-block;
	background: #002984;
	color: #FFFFFF;
	font-size: 1.3rem;
	font-weight: normal;
	margin-left: 10px;
	padding: 0 10px;
	border-radius: 10px;
}

#contact .font_c {
	color: #333;
	font-size: 75%;
}

#wpcf7cpcnf table td,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	background: #fff;
	border: 1px solid #999;
	padding: 13px 10px;
	border-radius: 10px;
	font-size: 1.6rem;
	width: 100%;
}

input,
select {
	vertical-align: middle;
}

wpcf7-list-item {
	display: inline-block;
	margin: 0 !important;
}

.wpcf7-select {
	padding: 10px !important;
	box-sizing: border-box;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: 1px solid #999;
	background-color: #fff !important;
	width: 100%;
	max-width: 450px;
}

.wpcf7 .wpcf7-submit:disabled {
	background: #AAA;
	transition-duration: .2s;
}

.wpcf7 .wpcf7-submit:disabled {
	cursor: not-allowed;
}

p.submit_wrap {
	text-align: center;
}

div.wpcf7cp-btns button,
.wpcf7 input[type="submit"] {
	position: relative;
	display: block;
	width: 240px;
	background: linear-gradient(110deg, rgba(3, 75, 160, 1) 0%, rgba(9, 22, 67, 1) 100%);
	padding: 15px 0;
	font-size: 14px;
	font-weight: 700;
	color: #fff;
	line-height: 1.6;
	text-decoration: none;
	text-align: center;
	transition: .2s;
	box-sizing: border-box;
	margin: auto;
	border: 0;
}

div.wpcf7cp-btns button {
	display: inline;
	margin: 10px;
}

div.wpcf7cp-btns {
	text-align: center;
}


p.recaptcha_read {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
	font-size: 1.2rem;
	padding: 20px 0;
	text-align: center;
}

#contact div.child_btn_wrap {
	padding: 30px 0 40px;
	text-align: left;
}

input[type=checkbox] {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 32px;
	height: 32px;
	border: 1px solid #999;
	background-color: #fff;
	position: relative;
	cursor: pointer;
	transition: all 0.3s ease;
}

/* チェックマークの作成 */
input[type="checkbox"]::after {
	content: "";
	position: absolute;
	top: 4px;
	left: 10px;
	width: 10px;
	height: 18px;
	border: solid #002984;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
	opacity: 0;
	transition: opacity 0.3s ease;
}

/* チェック時のスタイル */
input[type="checkbox"]:checked::after {
	opacity: 1;
}

.wpcf7-list-item {
	margin: 10px 0 0 0;
}

.wpcf7 .wpcf7-response-output,
.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	text-align: center;
	border: none;
}

@media screen and (min-width: 960px) {
	.contact_txt {
		text-align: center;
		max-width: 850px;
		margin: 0 auto;
	}

	.contact_form_wrap {
		padding: 40px;
	}

	#contact div.child_btn_wrap {
		text-align: center;
		padding: 50px 0 50px;
	}
}


/* policy */
.policy_wrap {
	padding: 0 10px;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
}

section#policy a {
	color: #002984;
}

section#policy a:hover,
dd a:hover {
	text-decoration: none;
}

#policy h3 {
	font-size: 2rem;
	font-weight: bold;
	color: #002984;
	padding-bottom: 15px;
}

#policy .policy_wrap div {
	padding: 25px 0;
}

/* news_detail */

div.news_detail_wrap {
	width: 100%;
	max-width: 920px;
	margin: 0 auto;
}

div.news_detail_head h2 {
	font-size: 1.9rem;
	font-weight: bold;
	color: #002984;
	padding-bottom: 8px;
	border-bottom: 2px solid #000000;
	margin-bottom: 8px;
}

div.news_detail_head p {
	text-align: right;
	padding-bottom: 40px;
}

span.news_detail_date {
	color: #000;
	font-weight: bold;
	padding-right: 20px;
	font-size: 1.7rem;
}

span.news_detail_cat {
	display: inline-block;
	background: #002984;
	width: 100%;
	max-width: 160px;
	color: #fff;
	text-align: center;
	font-size: 1.3rem;
	padding: 5px 0;
}

div.news_detail_body {
	border-bottom: 2px solid #000000;
	padding: 0 0 20px;
	min-height: 200px;
}

div.news_detail_body p {
	padding-bottom: 20px;
}

div.news_detail_body img {
	width: 100%;
	max-width: 920px;
}

div.news_nav {
	display: flex;
	justify-content: space-between;
	padding-top: 10px;
}

div.news_nav span a {
	background: #fff;
	width: 100%;
	display: inline-block;
	padding: 5px;
	font-size: 1.3rem;
	text-decoration: none;
	color: #000;
}

div.news_nav span.sub_next a::before {
	content: '< ';
	padding-right: 10px;
}

div.news_nav span.sub_prev a::after {
	content: ' >';
	padding-left: 10px;
}

@media screen and (min-width: 960px) {

	div.news_detail_head h2 {
		font-size: 2.2rem;
	}

	div.news_detail_head p {
		padding-bottom: 40px;
	}

	div.news_detail_body {
		border-bottom: 2px solid #000000;
		padding: 0 20px 20px;
		min-height: 300px;
	}

}

/* works */

div.works_head {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

div.works_head div {
	padding-bottom: 20px;
}

div#shiprepair,
div#metalproducts {
	padding: 60px 0 0;
	background: #fff;
}

ul.works-list {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	padding: 0 10px;
	list-style: none;
	align-items: stretch;
	margin-top: 60px;
}

ul.works-list li {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	width: calc((100% - 20px) / 2);
	box-shadow: 0px 6px 15px -8px #777777;
	margin-bottom: 20px;

}

/* 画像 */
ul.works-list li img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* タイトル・素材・日付 */
ul.works-list li p.title {
	font-weight: bold;
	padding: 10px 10px 5px;
	;
}

ul.works-list li p.material {
	margin: 0 0 4px;
	padding: 0 10px 1px;
	font-size: 1.4rem;
	font-weight: bold;
}

ul.works-list li p.date {
	margin-top: auto;
	color: #666;
	padding: 0 10px 20px;
	font-size: 1.3rem;
	font-weight: bold;
}

.repair {
	margin-top: 60px;
	display: flex;
	flex-direction: column;
	width: 100%;
	font-family: sans-serif;
}

.repair-header {
	display: none;
}

.repair-row {
	display: flex;
	flex-direction: column;
	padding: 10px;
	box-sizing: border-box;
}

div.repair_period {
	padding-top: 10px;
}

div.repair_detail {
	padding-bottom: 10px;
}

.repair-row div::before {
	content: attr(data-label);
	font-weight: bold;
	display: inline-block;
	width: 80px;
	margin-right: 8px;
	color: #002984;
}

.repair-row:nth-of-type(odd) {
	background-color: #fff;
}

.repair-row:nth-of-type(even) {
	background-color: #EFEFEF;
}


.repair-row:last-of-type {
	border-bottom: 1px solid #EFEFEF;
}



@media screen and (max-width: 460px) {
	ul.works-list li {
		width: 100%;
	}
}

@media screen and (min-width: 960px) {
	div.works_head {
		flex-direction: row;
	}

	div.works_head div {
		padding: 20px;
	}

	div#shiprepair,
	div#metalproducts {
		padding: 120px 0 0;
	}

	ul.works-list {
		margin-top: 80px;
	}

	ul.works-list li {
		width: calc((100% - 40px) / 3);
	}

	.repair {
		margin-top: 100px;
	}

	.repair-header {
		display: flex;
		font-weight: bold;
		margin-bottom: 0;
		background-color: #002984;
		color: #fff;
		padding: 10px;
		text-align: center;
	}

	.repair-header div {
		flex: 1;
		padding: 10px;
	}

	.repair-row {
		flex-direction: row;
		margin-bottom: 0;
		padding: 10px;
		text-align: center;
	}

	.repair-row div {
		flex: 1;
		padding: 10px;
		border: none;
		font-size: 1.8rem;
	}

	.repair-row div::before {
		content: none;
	}

	.repair-row:nth-of-type(odd) {
		background-color: #fff;
	}

	.repair-row:nth-of-type(even) {
		background-color: #EFEFEF;
	}

	.repair-row:last-of-type {
		border-bottom: 1px solid #EFEFEF;
	}
}