@charset "utf-8";/* CSS Document *//* トップページ専用のスタイル----------------------------------------------------------- *//*■■■■■■■■■■ visual ■■■■■■■■■■ */.visual {	position: relative;	overflow: hidden;	display: flex;	align-items: center;	justify-content: center;	background-color: rgba(0, 0, 0, 1);}.visual::after {    content: '';    display: block;    position: absolute;    top: 0;    right: 0;    width: 100%;    height: 100vh;    background-image: radial-gradient(#111 20%, transparent 21%), radial-gradient(#111 20%, transparent 21%);    background-size: 4px 4px;    background-position: 0 0, 2px 2px;	background-color: rgba(0, 0, 0, 0.2);}.visual .video {	position: absolute;}.visual::before {	content: "";	position: absolute;	top: 0;	bottom: 0;	right: 0;	left: 0;	display: block;	width: 100%;	height: 100%;	z-index: 1;}/* title */.visual .title h2.heading {	line-height: 1.5;	color: #ffffff;	font-weight: 700;	letter-spacing: 0.05em;	text-shadow: 2px 3px 10px rgba(0, 0, 0, 0.3);}.visual .title h2.main {	font-size: 65px;}.visual .title h2.sub{	font-size: 48px;	font-weight: 500;}.title {    position: absolute;    z-index: 2;    top: 50%;    left: 50%;    transform: translate(-50%, -50%);    width: 100%;    text-align: center;}.title .heading {    position: absolute;    top: 50%;    left: 50%;    width: 100%;    margin: 0;    opacity: 0;    transform: translate(-50%, -50%) translateY(-30px);}/* 表示：上から中央へ */.title .heading.show {    opacity: 1;    transform: translate(-50%, -50%);    transition:        opacity 1.5s ease,        transform 1.5s ease;}/* 消える：その場でフェードアウト */.title .heading.hide {    opacity: 0;    transform: translate(-50%, -50%);    transition: opacity 1.5s ease;}.visual .title p.lead {	font-size: 30px;	line-height: 1.4;	color: #ffffff;	font-weight: 700;	letter-spacing: 0.05em;	margin-top: 20px;}/* newslist */.visual .newslist {	max-width: 1000px;	width: 80%;	background-color: #e10012;	padding: 20px;	position: absolute;	bottom: 0;	left: 50%;	transform: translateY(0) translateX(-50%);	z-index: 2;}.visual .newslist th.heading {	font-size: 20px;	line-height: 1.4;	color: #ffffff;	font-weight: 700;	width: 120px;	border-right: 1px solid #ffffff;	text-align: center;	font-family: 'barlow_semi_condensedsemibold';	letter-spacing: 0.05em;}.visual .newslist td.date {	font-size: 14px;	line-height: 1.4;	color: #ffffff;	width: 120px;	text-align: center;	vertical-align: middle;	font-family: 'barlow_semi_condensedsemibold';	position: relative;	letter-spacing: 0.05em;}.visual .newslist td.text .morebtn {	position: absolute;	top: 50%;	right: 0;	transform: translateY(-50%) translateX(-50%);}.visual .newslist td.text .morebtn img {	max-width: 45px;}.visual .newslist td.text {	font-size: 14px;	line-height: 1.4;	color: #ffffff;	vertical-align: middle;	letter-spacing: 0.1em;}@media (max-width: 991px) {/* newslist */.visual .newslist {	width: 100%;}}/*■■■■■■■■■■ about ■■■■■■■■■■ */.about {	background-image: url("../images/about_backphoto.png");	background-size: 3000px auto;	background-position: center top;	padding: 120px 0;}.about .content-item {	margin-bottom: 100px;}.about .row-outer {	margin: 0 -40px;}.about .col-inner {	padding: 0 35px;}/* heading */.about h2.heading {	font-size: 64px;	line-height: 1.4;	color: #e10012;	font-weight: 700;	font-family: 'barlow_semi_condensedsemibold';	letter-spacing: 0.05em;}.about h3.heading {	font-size: 26px;	line-height: 1.4;	color: #000000;	font-weight: 700;	margin: 100px 0 30px 0;	letter-spacing: 0.05em;}/* textbox */.about .textbox p {	font-size: 14px;	line-height: 1.8;	color: #000000;	text-align: justify;	letter-spacing: 0.1em;}/* morebtn */.about .morebtn {	max-width: 300px;	margin: 0 auto;}.about .morebtn a:hover {	opacity: 0.6;}/*■■■■■■■■■■ products ■■■■■■■■■■ */.products {	padding: 150px 0 100px 0;}.products .content-item {	margin-bottom: 40px;}/* heading */.products h2.heading {	font-size: 64px;	line-height: 1.4;	color: #e10012;	font-weight: 700;	font-family: 'barlow_semi_condensedsemibold';	text-align: center;	margin-bottom: 60px;	letter-spacing: 0.05em;}.products h3.heading {	position: absolute;	top: 50%;	left: 50%;	transform: translateY(-50%) translateX(-50%);	font-size: 38px;	line-height: 1.4;	color: #ffffff;	font-weight: 700;	font-family: 'barlow_semi_condensedsemibold';	letter-spacing: 0.05em;}.products h3.heading .ja {	font-size: 16px;	line-height: 1.4;	color: #ffffff;	display: block;	text-align: center;	letter-spacing: 0.05em;}/* banner */.products .banner {	position: relative;}.products a.banner {	display: block;}.products a.banner::before {	content: "";	display: block;	background-color: rgba(0, 0, 0, 0.4);	position: absolute;	top: 0;	bottom: 0;	left: 0;	right: 0;}.products a.banner:hover {	opacity: 0.6;}/* morebtn */.products .morebtn {	max-width: 300px;	margin: 0 auto;}.products .morebtn a:hover {	opacity: 0.6;}/*■■■■■■■■■■ recruit ■■■■■■■■■■ */.recruit {	padding: 100px 0 150px 0;}/* figure */.recruit .figure {	position: relative;}.recruit .figure .inner {	max-width: 300px;	position: absolute;	top: 50%;	left: 50%;	transform: translateY(-50%) translateX(-50%);}/* heading */.recruit h2.heading {	margin-bottom: 30px;	font-size: 64px;	line-height: 1.4;	color: #ffffff;	font-weight: 700;	font-family: 'barlow_semi_condensedsemibold';	letter-spacing: 0.05em;}/* lead */.recruit p.lead {	font-size: 26px;	line-height: 1.4;	color: #ffffff;	font-weight: 700;	margin-bottom: 20px;	letter-spacing: 0.05em;}/* textbox */.recruit .textbox p {	font-size: 14px;	line-height: 1.8;	color: #ffffff;	text-align: justify;	margin-bottom: 30px;	letter-spacing: 0.1em;}/* thumb */.recruit .thumb {	position: absolute;	top: 5%;	left: -30%;	max-width: 520px;	width: 100%;}/* morebtn */.recruit .morebtn:hover {	opacity: 0.6;}/* sp----------------------------------------------------------- */@media (max-width: 1200px) {		/* thumb */		.recruit .thumb {		position: absolute;		max-width: 420px;	}}@media (max-width: 991px) {	/*■■■■■■■■■■ visual ■■■■■■■■■■ */	/* lead */		.visual .title p.lead {		font-size: 20px;		text-align: center;	}				/*■■■■■■■■■■ about ■■■■■■■■■■ */		.about {		padding: 40px 0;		background-image: none;		background-color: #f3f2ec;	}		.about .content-item {		margin-bottom: 20px;	}		.about .row-outer {		margin: 0;	}		.about .col-inner {		padding: 0;	}		/* heading */		.about h2.heading {		font-size: 35px;	}		.about h3.heading {		font-size: 20px;		margin: 20px 0 15px 0;	}		/* textbox */		.about .textbox {		margin-bottom: 20px;	}		.about .textbox p {		font-size: 13px;	}		/* morebtn */		.about .morebtn {		max-width: 250px;	}				/*■■■■■■■■■■ products ■■■■■■■■■■ */		.products {		padding: 40px 0;	}			.products .content-item {		margin-bottom: 15px;	}		/* heading */		.products h2.heading {		font-size: 35px;		margin-bottom: 15px;	}		.products h3.heading {		font-size: 25px;		text-align: center;		line-height: 1.2;	}		.products h3.heading .ja {		font-size: 12px;	}		/* morebtn */		.products .morebtn {		margin-top: 20px;		max-width: 250px;	}		/*■■■■■■■■■■ recruit ■■■■■■■■■■ */		.recruit {		padding: 0 0 40px 0;	}		/* figure */		.recruit .figure .inner {		max-width: 300px;		position: absolute;		top: 50%;		left: 50%;		transform: translateY(-50%) translateX(-50%);	}		.recruit .figure img {		max-width: 80%;		margin: 0 auto;		display: block;	}		/* heading */		.recruit h2.heading {		font-size: 30px;		margin-bottom: 15px;	}		/* lead */		.recruit p.lead {		font-size: 16px;		margin-bottom: 15px;	}		/* textbox */		.recruit .textbox p {		font-size: 13px;		margin-bottom: 15px;	}		/* thumb */		.recruit .thumb {		position: static;		margin-bottom: 20px;		width: 100%;		max-width: 100%;	}}@media (max-width: 767px) {		/* figure */		.recruit .figure img {		max-width: 100%;	}		/* heading */		.recruit h2.heading {		font-size: 180%;		margin-bottom: 2%;	}		/* lead */		.recruit p.lead {		font-size: 80%;		margin-bottom: 2%;	}		/* textbox */		.recruit .textbox p {		font-size: 70%;		margin-bottom: 5%;	}} @media (max-width: 991px) {.visual .title h2.main {	font-size: 60px;}.visual .title h2.sub{	font-size: 40px;	font-weight: 500;}.title {    position: absolute;    top: 47%;}}@media (max-width: 767px) {}	@media (max-width: 600px) {.visual .title h2.main {	font-size: 48px;}.visual .title h2.sub{	font-size: 36px;}}	@media (max-width: 600px) {	/* newslist */		.visual .newslist {		padding: 15px;	}		.visual .newslist th.heading {		font-size: 20px;		width: 100%;		display: block;		border-right: none;		text-align: left;		padding-bottom: 5px;	}		.visual .newslist td.date {		font-size: 13px;		width: 100%;		display: block;		text-align: left;	}		.visual .newslist td.text .morebtn {		top: 25%;	}		.visual .newslist td.text {		font-size: 13px;		width: 100%;		display: block;		text-align: left;	}	}