@charset "UTF-8";

/*==================================
//# 共通
===================================*/

body {
	color: #3c3c3c;
	font-family: 'Noto Sans JP', sans-serif !important;
	font-weight: normal;
	letter-spacing: 0.75px;
	line-height: 2.13;
}

img {
	height: auto;
	max-width: 100%;
}

.layout-inner {
	margin-inline: auto;
	height: inherit;
	width: 100%;
}

@media (hover: hover) {
	a:hover {
		text-decoration: none;
	}
}
.u-fadeup {
	-webkit-animation-duration: 1s;
	animation-duration: 1s;
	opacity: 0;
	-webkit-transition: visibility 0.3s ease, opacity 0.3s ease, -webkit-transform 0.3s ease;
	transition: visibility 0.3s ease, opacity 0.3s ease, -webkit-transform 0.3s ease;
	transition: visibility 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
	transition: visibility 0.3s ease, opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
	visibility: hidden;
	will-change: visibility, opacity, transform;
}

.u-fadeup.is-show {
	-webkit-animation-iteration-count: 1;
	animation-iteration-count: 1;
	-webkit-animation-name: fadeup;
	animation-name: fadeup;
	opacity: 1;
	visibility: visible;
}

a.u-fadeup.is-show:hover {
	opacity: 0.8;
}

@-webkit-keyframes fadeup {
	from {
		opacity: 0;
		-webkit-transform: translateY(1rem);
		transform: translateY(1rem);
		visibility: hidden;
	}

	to {
		opacity: 1;
		-webkit-transform: translateY(0);
		transform: translateY(0);
		visibility: visible;
	}
}

/*==================================
//# デスクトップ
===================================*/

@media screen and (min-width: 768px), print {
	body {
		font-size: 15px;
		letter-spacing: 0.75px;
		line-height: 2.13;
		min-width: 1280px;
	}

	#tow-cl {
		margin-top: 163px;
	}

	.layout-inner {
		max-width: 1338px;
		padding-left: 30px;
		padding-right: 30px;
	}

	.sec-gallery {
		padding-block: 90px;
		background: url('../images/common/gallery_bg.png') no-repeat center center/cover;
		text-align: center;
	}

	.sec-gallery__text {
		color: #fff;
		display: block;
		font-size: 24px;
		font-weight: 500;
		letter-spacing: 1.2px;
		margin-top: -21px;
		padding-bottom: 45px;
		text-align: center;
	}

	.sec-gallery img {
		width: 1280px;
	}

	.sec-services {
		padding-block: 142px 179px;
		position: relative;
		z-index: 3;
	}

	.sec-services::before {
		background-color: #fff;
		content: '';
		height: 48.1512605%;
		left: 50%;
		position: absolute;
		top: 0;
		-webkit-transform: translateX(-50%);
		transform: translateX(-50%);
		width: 100%;
		z-index: -1;
	}

	.sec-services .layout-inner {
		max-width: 1268px;
	}

	.sec-services__title {
		font-size: 24px;
		font-weight: 500;
		letter-spacing: 2.4px;
		text-align: center;
	}

	.sec-services__text {
		margin-inline: auto;
		font-size: 15px;
		letter-spacing: 0.75px;
		line-height: 2.13;
		margin-top: 20px;
		width: 1098px;
	}

	.sec-services__cards {
		grid-gap: 0px 36px;
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		margin-top: 112px;
	}

	.sec-services__cards a:hover {
		opacity: 0.9;
	}

	.sec-services__card {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
		height: 488px;
		-webkit-box-pack: end;
		-ms-flex-pack: end;
		justify-content: end;
		padding: 20px 28px;
		position: relative;
		width: 376px;
	}

	.sec-services__card img {
		bottom: 0;
		height: 100%;
		left: 0;
		position: absolute;
		right: 0;
		top: 0;
		width: 100%;
		z-index: -1;
	}

	.sec-services__card-title {
		color: #fff;
		font-size: 17px;
		font-weight: normal;
		letter-spacing: 0.85px;
	}

	.sec-services__card-text {
		display: none;
	}

	.sec-services__banners {
		grid-gap: 0px 40px;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		margin-top: 38px;
	}

	.sec-services__banners a:hover {
		opacity: 0.9;
	}

	.sec-services__banner {
		border-radius: 3px;
		display: block;
		height: 180px;
		position: relative;
		width: 580px;
	}

	.sec-services__banner img {
		bottom: 0;
		height: 100%;
		left: 0;
		position: absolute;
		right: 0;
		top: 0;
		width: 100%;
		z-index: -1;
	}

	.sec-services__banner-title {
		font-size: 17px;
		font-weight: normal;
		letter-spacing: 0.85px;
		padding-left: 209px;
		padding-top: 90px;
	}

	.sec-services__banner-text {
		display: none;
	}

	main {
		padding-top: 15px;
	}
	.h1-title {
		padding-left: 6px;
	}
	.main-title {
		width: 100%;
		min-width: 1100px;
		height: 160px;
		background-color: #efeeea;
		text-align: center;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		padding-top: 7px;
	}
	.main-title .en img {
		display: block;
		width: auto;
		height: 26px;
		margin-inline: auto;
		/* text-transform: uppercase;
		font-family: 'Trajan Pro 3';
		font-size: 32px;
		font-weight: 600;
		line-height: 1.3;
		letter-spacing: normal;
		text-align: center;
		color: #e2ba47; */
	}
	.main-title .jp {
		display: block;
		font-size: 20px;
		font-weight: 500;
		line-height: 1.45;
		letter-spacing: calc(3.6 / 20 * 1em);
		text-align: center;
		color: #3c3c3c;
		margin-top: 9px;
	}
	h2.sub-title {
		padding: 25px 20px 10px;
		margin-bottom: 50px;
		font-size: 28px;
		font-weight: bold;
		letter-spacing: 2px;
		text-align: center;
		border-bottom: solid 2px #000;
	}
	h2.sub-title1 {
		font-size: 24px;
		position: relative;
	}
	h2.sub-title1 .span1 {
		font-size: 14px;
		position: absolute;
		left: 40px;
		top: -15px;
	}
	h2.sub-title1 .span2 {
		font-size: 40px;
		position: absolute;
		left: 100px;
		top: -15px;
	}
	.seo_bread_list {
		max-width: 1242px;
		width: 100%;
		padding: 16px 0;
		margin: 0 auto;
		font-size: 0.8rem;
		line-height: 1.4;
		padding-left: 21px;
		font-size: 16px;
		white-space: nowrap;
		letter-spacing: 0.1em;
	}
	.seo_bread_list li {
		float: left;
	}
	.seo_bread_list li::after {
		content: ' >';
		/*margin-left: -8px;*/
	}
	.seo_bread_list li:last-child::after {
		content: '';
	}
}

/*==================================
//# モバイル
===================================*/
@media screen and (max-width: 767px) {
	body {
		font-size: 3.14vw;
		letter-spacing: 0.157vw;
		line-height: 1.69;
	}

	.sp-header {
        background: none;
    }

	.layout-inner {
		padding-left: 4.106vw;
		padding-right: 4.106vw;
	}

	.sec-gallery {
		padding-block: 9.42vw;
		background: url('../images/common/gallery_bg-sp.png') no-repeat center center/cover;
		text-align: center;
	}

	.sec-gallery__text {
		padding-inline: 3.382vw;
		color: #fff;
		display: block;
		font-size: 4.831vw;
		font-weight: 500;
		letter-spacing: 0.29vw;
		margin-top: -3.382vw;
		padding-bottom: 7.729vw;
		text-align: center;
	}

	.sec-services {
		padding-block: 19.324vw 0px;
		background-color: #efeeea;
		position: relative;
		z-index: 3;
	}

	.sec-services__title {
		display: none;
	}

	.sec-services__text {
		display: none;
	}

	.sec-services__cards {
		padding-bottom: 24.638vw;
	}

	.sec-services__card {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
		height: 57.971vw;
		-webkit-box-pack: end;
		-ms-flex-pack: end;
		justify-content: end;
		padding: 3.623vw 5.797vw;
		position: relative;
		width: 91.787vw;
	}

	.sec-services__card:nth-of-type(n + 2) {
		margin-top: 21.981vw;
	}

	.sec-services__card img {
		bottom: 0;
		height: 100%;
		left: 0;
		position: absolute;
		right: 0;
		top: 0;
		width: 100%;
		z-index: -1;
	}

	.sec-services__card-title {
		color: #fff;
		font-size: 4.106vw;
		letter-spacing: 0.205vw;
	}

	.sec-services__card-text {
		margin-top: 3.382vw;
	}

	.sec-services__banners {
		margin-inline: calc(50% - 50vw);
		padding-block: 19.565vw 22.222vw;
		background-color: #3c3c3c;
		padding-left: 4.106vw;
		padding-right: 4.106vw;
	}

	.sec-services__banner {
		border-radius: 0.725vw;
		display: block;
		height: 33.816vw;
		position: relative;
		width: 91.787vw;
		z-index: 3;
	}

	.sec-services__banner:nth-of-type(n + 2) {
		margin-top: 12.56vw;
	}

	.sec-services__banner img {
		bottom: 0;
		height: 100%;
		left: 0;
		position: absolute;
		right: 0;
		top: 0;
		width: 100%;
		z-index: -1;
	}

	.sec-services__banner-title {
		font-size: 3.623vw;
		font-weight: normal;
		letter-spacing: 0.181vw;
		padding-left: 35.99vw;
		padding-top: 18.357vw;
	}

	.sec-services__banner-text {
		color: #fff;
		margin-top: 3.382vw;
		text-align: center;
	}

	.main-title {
		width: 100%;
		height: 26.57vw;
		color: #fff;
		background-color: #efeeea;
		text-align: center;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		padding-top: 2.415vw;
	}
	.main-title .en img {
		display: block;
		width: auto;
		height: 4.831vw;
		margin-inline: auto;
		/* text-transform: uppercase;
		font-family: 'Trajan Pro 3';
		font-size: 5.556vw;
		font-weight: 600;
		line-height: 1.5;
		letter-spacing: normal;
		text-align: center;
		color: #e2ba47; */
	}
	.main-title .jp {
		display: block;
		font-size: 3.865vw;
		font-weight: bold;
		line-height: 2;
		letter-spacing: 0.18em;
		text-align: center;
		color: #3c3c3c;
	}
	h2.sub-title {
		font-weight: bold;
		padding: 3% 3% 1%;
		margin-bottom: 5%;
		font-size: 5vw;
		letter-spacing: 0.3vw;
		text-align: center;
		border-bottom: solid #000 1px;
	}
	h2.sub-title1 {
		font-size: 5vw;
		position: relative;
		left: 8vw;
	}
	h2.sub-title1 .span1 {
		font-size: 3vw;
		position: absolute;
		left: 10vw;
		top: -3vw;
	}
	h2.sub-title1 .span2 {
		font-size: 6vw;
		position: absolute;
		left: 25vw;
		top: -1vw;
	}
	.seo_bread_list {
		width: 100%;
		padding: 2vw 8.937vw 3.5vw;
		margin: 0 auto;
		font-size: 3.2vw;
		color: #666;
		line-height: 1.6;
	}
}
