@charset "UTF-8";



/* -------------------------------------------

kv

------------------------------------------- */
#main {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 56rem;
}

@media screen and (max-width: 768px) {
	#main {
		height: 32rem;
	}
}

/* -------------------------------------------

read

------------------------------------------- */

.top-kv {
	position: relative;
	z-index: 0;
}

.top-kv .read {
	position: absolute;
	z-index: 1;
	top: 16rem;
	left: 6vw;
}

.top-kv .read .txt01 {
	font-weight: 800;
	font-size: 3rem;
}

.top-kv .read .txt02 {
	font-size: 2.2rem;
	padding-top: 4rem;
}

.top-kv .read span {
	display: inline-block;
	background: #fff;
	padding: 0 1rem;
}

.top-kv .read span.refine {
	margin-left: -1.5rem;
	padding: 0 1rem 0 0;
}


@media screen and (max-width: 768px) {
	.top-kv .read {
		top: 6rem;
		left: 9vw;
	}

	.top-kv .read .txt01 {
		font-size: 2rem;
		line-height: 3.5rem;
	}

	.top-kv .read .txt02 {
		font-size: 1.5rem;
		line-height: 2.7rem;
	}

	.top-kv .read span {
		display: inline;
		padding: 0.5rem 0.8rem 0.8rem 0.8rem;
	}

	.top-kv .read span.refine {
		margin-left: 0;
		padding: 0.5rem 0.8rem 0.8rem 0.8rem;
	}
}

/* -------------------------------------------

slide

------------------------------------------- */
.top-slide {
	background: var(--bg-grey);
}

.swiper-wrapper {
	transition-timing-function: linear;
}



/* -------------------------------------------

about

------------------------------------------- */
.top-about {
	padding: 15rem 0;
}

@media screen and (max-width: 768px) {
	.top-about {
		padding: 6rem 3rem;
	}
}

/* ---- wrap ---- */
.top-about .wrap {
	display: flex;
	justify-content: space-between;
	flex-direction: row-reverse;
	align-items: center;
}

.top-about .wrap>figure {
	width: 55%;
}

.top-about .wrap>div {
	width: 40%;
}

@media screen and (max-width: 768px) {
	.top-about .wrap {
		display: block;
	}

	.top-about .wrap>figure {
		width: 100%;
		margin-bottom: 3rem;
	}

	.top-about .wrap>div {
		width: 100%;
	}
}

/* ---- h2 ---- */
.top-about .ttl-wrap {
	display: flex;
	justify-content: flex-start;
}

@media screen and (max-width: 768px) {
	.top-about .ttl-wrap {
		justify-content: center;
	}
}

/* ---- h3 ---- */
.top-about h3 {
	font-weight: 500;
	font-size: 1.8rem;
	padding-top: 2rem;
}

.top-about h3 strong {
	font-size: 2.2rem;
}

/* ---- p ---- */
.top-about p {
	margin: 3rem 0 2rem 0;
}



/* -------------------------------------------

service

------------------------------------------- */
.top-service {
	position: relative;
	padding: 14rem 0 14rem 0;
	position: relative;
	background: #F6F1E7;
}

.top-service::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 37rem;
	height: 38rem;
	background: url(../img/ill_01.png) no-repeat center / contain;
}

.top-service::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: -2.5vw;
	width: 22rem;
	height: 22rem;
	background: url(../img/ill_02.png) no-repeat center / contain;
}

@media screen and (max-width: 768px) {
	.top-service {
		padding: 6rem 3rem;
	}

	.top-service::before {
		width: 25rem;
		height: 26rem;
	}

	.top-service::after {
		width: 10rem;
		height: 11rem;
	}
}

/* ---- h2 ---- */
.top-service .ttl-wrap {
	display: flex;
	justify-content: flex-start;
	padding-left: calc((100% - 88rem) / 2);
}

@media screen and (max-width: 768px) {
	.top-service .ttl-wrap {
		padding-left: 0;
		justify-content: center;
	}
}

/* ---- ul ---- */
.top-service ul li {
	display: flex;
	align-items: flex-end;
	position: relative;
}

.top-service ul li>* {
	width: 50%;
	position: relative;
	z-index: 99;
}

.top-service ul li:nth-child(1)::before {
	right: 0;
}

.top-service ul li:nth-child(2)::before {
	left: 0;
}

.top-service ul li:nth-child(even) {
	flex-direction: row-reverse;
}

.top-service ul li:not(:last-child) {
	margin-bottom: 8rem;
}

.top-service .txt {
	padding: 0 6rem 8rem 6rem;
}

.top-service dl {
	margin-bottom: 2.5rem;
}

.top-service dt {
	font-size: 2.2rem;
	font-weight: bold;
	padding-bottom: 1.2rem;
	padding-top: 1.2rem;
	margin-bottom: 1.5rem;
	font-family: var(--font);
}

.top-service dt span {
	display: block;
	font-size: 1.5rem;
	padding-top: 0.6rem;
}

.top-service .insta {
	display: flex;
	align-items: center;
	margin-top: 1.5rem;
	font-weight: 900;
	letter-spacing: 0.15em;
}

.top-service .insta i {
	font-size: 2.8rem;
	margin-left: 0.8rem;
}

.top-service li:nth-child(2) .insta {
	justify-content: flex-end;
}

@media screen and (max-width: 768px) {
	.top-service ul li {
		display: block;
	}

	.top-service ul li>* {
		width: 100%;
	}

	.top-service ul li::before {
		width: 100%;
		height: 100%;
	}

	.top-service ul li:not(:last-child) {
		margin-bottom: 3rem;
	}

	.top-service .txt {
		padding: 3rem 0;
	}

	.top-service .insta {
		justify-content: center
	}

	.top-service li:nth-child(2) .insta {
		justify-content: center;
	}
}

/* -------------------------------------------

parallax

------------------------------------------- */
.top-parallax {
	padding: 0;
}

.top-parallax .imgarea {
	width: 100%;
	height: 43rem;
	background: url("../img/photo_parallax.jpg") no-repeat center / cover;
	background-attachment: fixed;
}

@media screen and (max-width: 768px) {
	.top-parallax .imgarea {
		height: 25rem;
	}
}


/* -------------------------------------------

gallery

------------------------------------------- */
.top-gallery {
	padding: 12rem 0 13rem 0;
	background: var(--bg-grey);
}

/* ---- wrap ---- */
.top-gallery .wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 5rem;
}

.top-gallery h2 {
	margin-bottom: 0;
}

@media screen and (max-width: 768px) {
	.top-gallery .wrap {
		justify-content: center;
	}
}

#loopslider {
	margin: 0 auto;
	width: 100%;
	height: 360px;
	text-align: left;
	position: relative;
	overflow: hidden;
}

#loopslider ul {
	height: 360px;
	float: left;
	display: inline;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

#loopslider ul li {
	width: 480px;
	height: 360px;
	float: left;
	display: inline;
	overflow: hidden;
}

#loopslider ul:after {
	content: ".";
	height: 0;
	clear: both;
	display: block;
	visibility: hidden;
}

#loopslider ul {
	display: inline-block;
	overflow: hidden;
}

#loopslider img {
	height: 360px;
	object-fit: cover;
}

@media screen and (max-width: 1024px) {
	.top-gallery {
		padding: 6rem 0;
	}

	#loopslider {
		height: 160px;
	}

	#loopslider ul {
		height: 160px;
	}

	#loopslider ul li {
		width: 200px;
		height: 160px;
	}

	#loopslider img {
		height: 160px;
	}

	.top-gallery .more-wrap {
		margin-top: 3rem;
	}
}



/* -------------------------------------------

access

------------------------------------------- */
.top-access {
	padding: 22rem 0 9rem 0;
	position: relative;
	background: url(../img/bg_company.jpg) no-repeat center / cover;
}

.top-access::before {
	content: "";
	width: 70%;
	height: 100%;
	background: #fff;
	position: absolute;
	right: 0;
	top: 13rem;
}

@media screen and (max-width: 768px) {
	.top-access {
		background: var(--bg-grey);
		margin-top: 0;
		padding: 4rem 3rem 6rem 3rem;
	}

	.top-access::before {
		display: none;
	}
}

.top-access>* {
	position: relative;
	z-index: 99;
}

.top-access dl {
	margin-bottom: 7.5rem;
}

/* ---- h2 ---- */
.top-access .ttl-wrap {
	display: flex;
	justify-content: flex-start;
	padding-left: 48rem;
}

@media screen and (max-width: 768px) {
	.top-access .ttl-wrap {
		justify-content: center;
		padding-left: 0;
	}
}

/* ---- wrap ---- */
.top-access .wrap {
	display: flex;
	justify-content: space-between;
}

.top-access .wrap>* {
	width: 47%;
}

@media screen and (max-width: 768px) {
	.top-access .wrap {
		display: block;
	}

	.top-access .wrap>* {
		width: 100%;
	}

	.top-access .wrap .gmap {
		margin-bottom: 1rem;
	}
}

/* ---- recruit ---- */
.top-access .recruit {
	padding-top: 12rem;
	margin-left: -16rem;
	display: flex;
	justify-content: space-between;
}

.top-access .recruit .ttl-wrap {
	padding-left: 0;
}

.top-access .recruit .heading-1 {
	justify-content: inherit;
}

.top-access .recruit .more-wrap {
	margin-top: 5rem;
}

@media screen and (max-width: 768px) {
	.top-access .recruit {
		margin-left: 0;
		display: block;
	}

	.top-access .recruit .heading-1 {
		padding-left: 0;
		justify-content: center;
	}
}



/* -------------------------------------------

other

------------------------------------------- */
.top-other {
	background: url(../img/bg_other.jpg) no-repeat center / cover;
	padding: 4rem 0;
	color: #fff;
	position: relative;
}

.top-other::before {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
}

.top-other-wrap {
	display: flex;
	justify-content: center;
}

.top-line,
.top-contact {
	width: 40%;
}

.top-line .more {
	background: #fff;
	color: #000;
}

.top-contact .more {
	background: none;
	font-size: 3rem;
	width: auto;
	padding: 0;
}

.top-contact .more i {
	display: none;
}

.top-other>* {
	position: relative;
	z-index: 10;
	padding: 4rem 5rem;
}

.top-other .heading-1 {
	flex-direction: column;
	align-items: center;
	margin-bottom: 0;
}

.top-other .heading-1.is-main {
	flex-direction: inherit;
	align-items: inherit;
}

.top-other .heading-1.is-main .jp {
	margin-left: 1.5rem;
}

.top-other .heading-1::before {
	display: none;
}

.top-other .heading-1 .en {
	color: #fff;
}

.top-other .heading-1 .jp {
	margin-left: 0;
}

.top-line {
	border-right: solid 1px #fff;
}

.top-other p {
	text-align: center;
	margin: 1rem 0 2.5rem 0;
}

.top-other .more {
	margin: 0 auto;
}

@media screen and (max-width: 768px) {
	.top-other {
		padding: 4rem 3rem;
		flex-direction: column;
	}

	.top-other>* {
		position: relative;
		z-index: 10;
		padding: 4rem 0 6rem 0;
	}

	.top-other .heading-1 {
		flex-direction: column;
		align-items: center;
		margin-bottom: 0;
	}

	.top-other .heading-1::before {
		display: none;
	}

	.top-other .heading-1 .jp {
		margin-left: 0;
	}

	.top-other .top-line .heading-1 .en,
	.top-other .top-contact .heading-1 .en{
		font-size: 3rem;
	}

	.top-line {
		border-right: none;
		border-bottom: solid 1px #fff;
	}

	.top-other p {
		text-align: center;
		margin: 1rem 0 2.5rem 0;
	}

	.top-other .more {
		margin: 0 auto;
	}

	.top-other-wrap {
		display: block;
		padding: 0 0 6rem 0;
		margin: -2rem;
	}

	.top-line,
	.top-contact {
		width: auto;
		padding: 4rem 0;
	}

	.top-line{
		border-top: 1px solid #fff;
	}
	.top-contact{
		border-bottom: 1px solid #fff;
	}
}



/* -------------------------------------------

works

------------------------------------------- */
.works-img {
	display: flex;
	flex-wrap: wrap;
}

.works-img li {
	width: calc((100% - 2rem) / 3);
	margin-right: 1rem;
}

.works-img li:nth-child(3n) {
	margin-right: 0;
}

.works-img li:nth-child(n + 4) {
	margin-top: 1rem;
}

@media screen and (max-width: 768px) {
	.works-img {
		justify-content: space-between;
	}

	.works-img li {
		width: 49%;
		margin-right: 0;
	}

	.works-img li:nth-child(n + 4) {
		margin-top: 0;
	}

	.works-img li:nth-child(n + 3) {
		margin-top: 2%;
	}
}



/* -------------------------------------------

form

------------------------------------------- */
.CMS-FORM-GROUP {
	display: flex;
	align-items: center;
}

.CMS-FORM-GROUP:not(:last-of-type) {
	margin-bottom: 4rem;
}

.CMS-FORM-GROUP>label {
	width: 30%;
	font-weight: bold;
}

.CMS-FORM-GROUP input,
.CMS-FORM-GROUP textarea {
	width: 70%;
	padding: 2rem;
	border: #ddd solid 1px;
}

.CMS-FORM-INPUT,
.CMS-FORM-EMAIL {
	-webkit-appearance: none;
	appearance: none;
}

.CMS-FORM-GROUP textarea {
	height: 16rem;
	-webkit-appearance: none;
	appearance: none;
}

.CMS-FORM-GROUP input[type="submit"] {
	background: var(--prime);
	border: none;
	color: #fff;
	display: block;
	font-weight: bold;
	font-size: 1.6rem;
	width: 24rem;
	padding: 2rem 0;
	margin: 0 auto;
	transition: all .3s;
}

.CMS-FORM-GROUP input[type="submit"]:hover {
	cursor: pointer;
	opacity: 0.5;
}

.CMS-FORM-RADIO input[type="radio"] {
	width: 2rem;
	height: 2rem;
	display: block;
	margin-top: 0.9rem;
	border-radius: 50%;
}

.CMS-FORM-RADIO {
	width: 70%;
}

.CMS-FORM-RADIO>div {
	display: flex;
	align-items: center;
}

.CMS-FORM-RADIO label {
	display: block;
	width: calc(100% - 3.5rem);
	margin-top: 0.8rem;
	margin-left: 0.5rem;
	font-weight: normal;
}

_::-webkit-full-page-media,
_:future,
:root .CMS-FORM-RADIO label {
	margin-top: 0;
}

input[type="submit"],
input[type="button"] {
	border-radius: 0;
	-webkit-appearance: button;
	appearance: button;
	border: none;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}

input[type="date"] {
	-webkit-appearance: none;
	appearance: none;
	background: #fff;
}

.his {
	background: rgba(220, 0, 0, 1);
	line-height: 1;
	color: #fff;
	font-size: 1rem;
	padding: 0.2rem 0.7rem 0.4rem 0.7rem;
	margin-left: 1.0rem;
	vertical-align: 0.1rem;
	font-weight: normal;
	border-radius: 10rem;
}

@media screen and (max-width: 768px) {
	.CMS-FORM-GROUP {
		display: block;
	}

	.CMS-FORM-GROUP label {
		width: 100%;
		display: block;
		margin-bottom: 1rem;
	}

	.CMS-FORM-GROUP input,
	.CMS-FORM-GROUP textarea {
		width: 100%;
	}

	.CMS-FORM-RADIO input[type="radio"] {
		transform: scale(0.6);
	}

	_::-webkit-full-page-media,
	_:future,
	:root .CMS-FORM-RADIO label {
		margin-top: 1.4rem;
		margin-left: 0;
	}

	.CMS-FORM-GROUP input[type="submit"] {
		width: 100%;
		padding: 2rem 0;
		font-size: 1.8rem;
	}
}



/* -------------------------------------------

privacy

------------------------------------------- */
.privacy {
	border: 0.2rem solid #ccc;
	padding: 2rem;
	height: 24rem;
	overflow: auto;
	background: #fff;
}

.privacy-note {
	margin: 4rem 0 2rem 0;
}



/* -------------------------------------------

thanx

------------------------------------------- */
.thanx {
	text-align: center;
}

.back {
	text-align: center;
	display: block;
}

.back a {
	color: var(--prime);
}

@media screen and (max-width: 768px) {
	.thanx {
		text-align: left;
	}
}




.kyuushi {
	font-size: 2rem;
	text-align: center;
}

/* -------------------------------------------

low

------------------------------------------- */
.low-recruit h3{
	text-align: center;
	font-size: 3rem;
	margin-bottom: 3rem;
}

.low-recruit .closeTxt{
	text-align: center;
	font-size: 2.2rem;
	font-weight: 700;
/*	color: #D94343;*/
	margin-bottom: 1.5rem;
}