@charset "UTF-8";

/* kv ---------------------------------------*/
.kv {
}

.kv-image {
	position: relative;
	z-index: 1;
	width: 100%;
	aspect-ratio: 1920 / 956;
}

.kv-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kv-title {
	position: absolute;
	top: 44%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
	padding: 0 20px;
	width: 100%;
	font-size: calc(60 / 1920 * 100vw);
	font-weight: 500;
	line-height: 1.933;
	text-align: center;
	letter-spacing: 0.2em;
	color: #fff;
	text-shadow: 7px 7px 5px rgba(0, 0, 0, 0.5);
}

.kv-block {
	padding: 100px 20px 120px;
}

.kv-text {
	font-size: calc(27px * 0.625);
	font-weight: 300;
	line-height: 2.926;
	text-align: center;
	letter-spacing: 0.2em;
}


/* intro ---------------------------------------*/
.intro {
	background: url(../img/bg_intro_01.png) no-repeat;
	background-position: top center;
	background-size: cover;
}

.intro-bg {
	position: relative;
	z-index: 1;
	width: 100%;
}

.intro-bg img {
	width: 100%;
	max-height: 932px;
	object-fit: cover;
}

.intro-title {
	position: absolute;
	top: 37%;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
	padding: 0 20px;
	width: 100%;
	font-size: min(calc(48 / 1920 * 100vw), 48px);
	font-weight: 500;
	line-height: 2.416;
	text-align: center;
	letter-spacing: 0.2em;
	color: #fff;
}

.intro-wrapper {
	padding: 100px 20px 180px;
}

.intro-list {
	margin-bottom: 70px;
}

.intro-list > li {
	position: relative;
	font-size: calc(27px * 0.625);
	font-weight: 300;
	line-height: 3.259;
	letter-spacing: 0.2em;
	padding-left: 20px;
}

.intro-list > li::before {
	position: absolute;
	top: 0;
	left: 0;
	font-size: calc(27px * 0.625);
	content: '・';
}

.intro-image {
	margin: 0 auto 100px;
	width: 364px;
	border-radius: 50%;
	overflow: hidden;
}

.intro-image img {

}

.intro-text {
	font-size: calc(51px * 0.625);
	font-weight: 500;
	line-height: 2.333;
	text-align: center;
	letter-spacing: 0.2em;
}


/* reason ---------------------------------------*/
.reason {
	background: url(../img/bg_reason.jpg) no-repeat;
	background-position: center;
	background-size: cover;
	padding: 80px 20px 150px;
}

.reason-title {
	font-size: calc(51px * 0.625);
	font-weight: 500;
	line-height: 2.333;
	text-align: center;
	letter-spacing: 0.2em;
	margin-bottom: 60px;
}

.reason-image {
	margin: 0 auto 110px;
	width: 600px;
	border-radius: 50%;
	overflow: hidden;
}

.reason-image img {

}

.reason-text {
	font-size: calc(28px * 0.625);
	font-weight: 300;
	text-align: center;
	letter-spacing: 0.2em;
	margin-bottom: 90px;
}

.reason-list {
	margin-bottom: 120px;
}

.reason-list > li {

}

.reason-list > li + li {
	margin-top: 80px;
}


.reason-list-title {
	font-size: calc(35px * 0.625);
	font-weight: 500;
	line-height: 2.514;
	text-align: center;
	letter-spacing: 0.2em;
}

.reason-list-text {
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 3.143;
	letter-spacing: 0.2em;
}


/* value ---------------------------------------*/
.value {

}

.value-bg {
	position: relative;
	z-index: 1;
	width: 100%;
}

.value-bg img {
	width: 100%;
	max-height: 1133px;
	object-fit: cover;
}

.value-title {
	position: absolute;
	top: 40%;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
	padding: 0 20px;
	width: 100%;
	font-size: min(calc(54 / 1920 * 100vw), 54px);
	font-weight: 700;
	line-height: 2.16;
	text-align: center;
	letter-spacing: 0.2em;
	text-shadow: 2px 2px 2px rgba(255, 255, 255, 1),2px 2px 2px rgba(255, 255, 255, 1),2px 2px 2px rgba(255, 255, 255, 1),2px 2px 2px rgba(255, 255, 255, 1),-2px 2px 2px rgba(255, 255, 255, 1),-2px 2px 2px rgba(255, 255, 255, 1),-2px 2px 2px rgba(255, 255, 255, 1),-2px 2px 2px rgba(255, 255, 255, 1),2px -2px 2px rgba(255, 255, 255, 1),2px -2px 2px rgba(255, 255, 255, 1),2px -2px 2px rgba(255, 255, 255, 1),2px -2px 2px rgba(255, 255, 255, 1),-2px -2px 2px rgba(255, 255, 255, 1), -2px -2px 2px rgba(255, 255, 255, 1), -2px -2px 2px rgba(255, 255, 255, 1),-2px -2px 2px rgba(255, 255, 255, 1), 0px 2px 2px rgba(255, 255, 255, 1),0px 2px 2px rgba(255, 255, 255, 1),0px 2px 2px rgba(255, 255, 255, 1),0px 2px 2px rgba(255, 255, 255, 1),-2px 0px 2px rgba(255, 255, 255, 1),-2px 0px 2px rgba(255, 255, 255, 1),-2px 0px 2px rgba(255, 255, 255, 1),-2px 0px 2px rgba(255, 255, 255, 1),0px -2px 2px rgba(255, 255, 255, 1),0px -2px 2px rgba(255, 255, 255, 1),0px -2px 2px rgba(255, 255, 255, 1),0px -2px 2px rgba(255, 255, 255, 1),2px 0px 2px rgba(255, 255, 255, 1),2px 0px 2px rgba(255, 255, 255, 1),2px 0px 2px rgba(255, 255, 255, 1),2px 0px 2px rgba(255, 255, 255, 1);
}

.value-title span {
	display: block;
	font-size: min(calc(34 / 1920 * 100vw), 34px);
	font-weight: 700;
	line-height: 2.2;
	letter-spacing: 0.2em;
	margin-bottom: 22px;
}

.value-head {
	position: relative;
	z-index: 1;
	padding: 200px 20px;
}

.value-head::before,
.value-head::after {
	position: absolute;
	left: 0;
	z-index: -1;
	width: 100%;
	aspect-ratio: 1920 / 450;
	content: '';
}

.value-head::before {
	top: 0;
	background: url('../img/bg_deco_01.png') no-repeat;
	background-size: contain;
}

.value-head::after {
	bottom: 0;
	background: url('../img/bg_deco_02.png') no-repeat;
	background-size: contain;
}


.value-head-title {
	font-size: calc(50px * 0.625);
	font-weight: 500;
	line-height: 1.76;
	text-align: center;
	letter-spacing: 0.2em;
	margin-bottom: 100px;
}

.value-head-list {

}

.value-head-list > li {
	position: relative;
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 3.143;
	letter-spacing: 0.1em;
	padding-left: 22px;
}

.value-head-list > li::before {
	position: absolute;
	top: 0;
	left: 0;
	font-size: calc(28px * 0.625);
	content: '●';
}

.value-body {
	padding: 140px 20px 130px;
}

.value-body-title {
	font-size: calc(50px * 0.625);
	font-weight: 500;
	line-height: 1.76;
	text-align: center;
	letter-spacing: 0.2em;
	margin-bottom: 70px;
}

.value-body-image {
	margin: 0 auto 60px;
	width: 387px;
}

.value-body-text {
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 3.143;
	letter-spacing: 0.2em;
}


/* message ---------------------------------------*/
.message {

}

.message-image {
	width: 100%;
}

.message-image img {
	width: 100%;
}

.message-wrapper {
	padding: 100px 20px 120px;
}

.message-inner {
	max-width: 780px;
}

.message-title {
	font-size: calc(51px * 0.625);
	font-weight: 500;
	line-height: 2.333;
	letter-spacing: 0.2em;
	margin-bottom: 90px;
}

.message-text {
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 3.143;
	letter-spacing: 0.2em;
}


/* service ---------------------------------------*/
.service {

}

.service-image {
	width: 100%;

}

.service-image img {
	width: 100%;

}

.service-wrapper {
	padding: 100px 20px 100px;
}

.service-title {
	font-size: calc(51px * 0.625);
	font-weight: 500;
	line-height: 2.333;
	text-align: center;
	letter-spacing: 0.2em;
	margin-bottom: 130px;
}

.service-list {

}

.service-list > li + li {
	margin-top: 130px;
}

.service-list-title {
	font-size: calc(51px * 0.625);
	font-weight: 500;
	line-height: 2.688;
	text-align: center;
	letter-spacing: 0.2em;
	margin-bottom: 60px;
}

.service-list-image {
	margin: 0 auto 60px;
	width: 511px;
	border-radius: 50%;
	overflow: hidden;
}

.service-list-image img {

}

.service-list-text {
	width: fit-content;
	margin: 0 auto;
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 3.143;
	letter-spacing: 0.2em;
}


/* case ---------------------------------------*/
.case {
	background: linear-gradient(0deg, rgba(254, 230, 168, 0) 0, rgba(254, 230, 168, 0.3) 13%, rgba(254, 230, 168, 1) 91%, rgba(254, 230, 168, 1) 100%) no-repeat;
	background-size: 100% calc(1270 / 1920 * 100vw);
	padding: 60px 20px 150px;
}

.case-image {
	position: relative;
	width: 100%;
	max-width: 926px;
	aspect-ratio: 926 / 698;
	margin: 0 auto 60px;
}

.case-image-item {
	position: absolute;
	border-radius: 50%;
	overflow: hidden;
}

.case-image-item-01 {
	top: 0;
	left: 20%;
	width: calc(296 / 926 * 100%);
}

.case-image-item-02 {
	top: 43%;
	left: 0;
	width: calc(363 / 926 * 100%);
}

.case-image-item-03 {
	bottom: 0;
	right: 0;
	width: calc(506 / 926 * 100%);
}

.case-image-item img {

}

.case-title {
	max-width: 790px;
	margin: 0 auto 70px;
	font-size: calc(51px * 0.625);
	font-weight: 500;
	text-align: center;
	line-height: 2.333;
	letter-spacing: 0.2em;
}

.case-block {
	max-width: 950px;
	margin: 0 auto;
}

.faq-block-title {
	margin: 0 auto 110px;
	padding: 6px 40px;
	font-size: calc(38px * 0.625);
	font-weight: 400;
	line-height: 2.316;
	text-align: center;
	letter-spacing: 0.2em;
	background: #FEEBBE;
	border-radius: 100px;
}

.case-list {
	max-width: 770px;
	margin: 0 auto;
}

.case-list > li + li {
	margin-top: 60px;
}

.case-list-title {
	font-size: calc(28px * 0.625);
	font-weight: 500;
	line-height: 3.143;
	letter-spacing: 0.2em;
}

.case-list-text {
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 3.143;
	letter-spacing: 0.2em;
}


/* faq ---------------------------------------*/
.faq {
	position: relative;
	z-index: 1;
	padding: 220px 20px 300px;
}

.faq::before,
.faq::after {
	position: absolute;
	left: 0;
	z-index: -1;
	width: 100%;
	aspect-ratio: 1920 / 450;
	content: '';
}

.faq::before {
	top: 0;
	background: url('../img/bg_deco_01.png') no-repeat;
	background-size: contain;
}

.faq::after {
	bottom: 0;
	background: url('../img/bg_deco_02.png') no-repeat;
	background-size: contain;
}

.faq-inner {
	max-width: 770px;
}

.faq-title {
	font-size: calc(51px * 0.625);
	font-weight: 700;
	line-height: 2.333;
	text-align: center;
	letter-spacing: 0.2em;
	margin-bottom: 60px;
}

.faq-list {

}

.faq-list > li + li {
	margin-top: 90px;
}

.faq-list-question {
	display: flex;
	font-size: calc(42px * 0.625);
	font-weight: 500;
	line-height: 1.69;
	letter-spacing: 0.2em;
	margin-bottom: 40px;
}

.faq-list-question span {
	width: fit-content;
	flex-shrink: 0;
}

.faq-list-question b {
	flex: 1;
	font-weight: 500;
}

.faq-list-answer {
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 2.214;
	letter-spacing: 0.2em;
}


/* profile ---------------------------------------*/
.profile {
	padding: 150px 20px 120px;
}

.profile-inner {
	max-width: 830px;
}

.profile-title {
	font-size: calc(51px * 0.625);
	font-weight: 500;
	line-height: 2.333;
	text-align: center;
	letter-spacing: 0.2em;
	margin: 170px auto 80px;
}

.profile-image {
	margin: 0 auto 70px;
	width: 444px;
	border-radius: 50%;
	overflow: hidden;
}

.profile-image img {

}

.profile-text {
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 3.143;
	letter-spacing: 0.2em;
	margin-bottom: 90px;
}

.profile-info {
	width: fit-content;
	margin: 0 0 140px auto;
	font-size: calc(28px * 0.625);
	font-weight: 300;
	line-height: 1.893;
	letter-spacing: 0.2em;
}


/* small pc */
@media screen and (min-width: 768px) and (max-width: 1200px){

}



/* sp only */
@media screen and (max-width: 767px) {
	/* kv ---------------------------------------*/
	.kv {
	}

	.kv-image {
		aspect-ratio: unset;
	}

	.kv-image img {
		height: calc(100dvh - 60px);
	}

	.kv-title {
		top: 48%;
		padding: 0 16px;
		font-size: calc(20 / 375 * 100vw);
		text-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
	}

	.kv-block {
		padding: 70px 20px 90px;
	}

	.kv-text {
		font-size: 14px;
	}


	/* intro ---------------------------------------*/
	.intro-bg img {
		max-height: unset;
		height: 500px;
	}

	.intro-title {
		top: 34%;
		padding: 0 16px;
		font-size: 18px;
	}

	.intro-wrapper {
		padding: 70px 16px 90px;
	}

	.intro-list {
		margin-bottom: 40px;
	}

	.intro-list > li {
		font-size: 14px;
		padding-left: 18px;
	}

	.intro-list > li::before {
		font-size: 14px;
	}

	.intro-image {
		margin: 0 auto 50px;
		width: 200px;
	}

	.intro-text {
		font-size: 18px;
	}


	/* reason ---------------------------------------*/
	.reason {
		padding: 70px 16px 90px;
	}

	.reason-title {
		font-size: 20px;
		margin-bottom: 40px;
	}

	.reason-image {
		margin: 0 auto 40px;
		width: 280px;
	}

	.reason-text {
		font-size: 12px;
		margin-bottom: 50px;
	}

	.reason-list {
		margin-bottom: 60px;
	}

	.reason-list > li + li {
		margin-top: 50px;
	}


	.reason-list-title {
		font-size: 16px;
	}

	.reason-list-text {
		font-size: 14px;
	}


	/* value ---------------------------------------*/
	.value-bg img {
		max-height: unset;
		height: 400px;
	}
	
	.value-title {
		top: 40%;
		padding: 0 16px;
		font-size: 20px;
	}
	
	.value-title span {
		font-size: 14px;
		margin-bottom: 16px;
	}
	
	.value-head {
		padding: 120px 16px;
	}

	.value-head-title {
		font-size: 20px;
		margin-bottom: 50px;
	}

	.value-head-list {

	}

	.value-head-list > li {
		font-size: 14px;
		padding-left: 20px;
	}

	.value-head-list > li::before {
		font-size: 14px;
	}

	.value-body {
		padding: 70px 16px 90px;
	}

	.value-body-title {
		font-size: 20px;
		margin-bottom: 40px;
	}

	.value-body-image {
		margin: 0 auto 40px;
		width: 140px;
	}

	.value-body-text {
		font-size: 14px;
	}


	/* message ---------------------------------------*/
	.message-wrapper {
		padding: 50px 16px 70px;
	}

	.message-inner {
		max-width: 780px;
	}

	.message-title {
		font-size: 20px;
		margin-bottom: 40px;
	}

	.message-text {
		font-size: 14px;
	}


	/* service ---------------------------------------*/
	.service-wrapper {
		padding: 70px 16px 90px;
	}

	.service-title {
		font-size: 20px;
		margin-bottom: 60px;
	}

	.service-list {

	}

	.service-list > li + li {
		margin-top: 50px;
	}

	.service-list-title {
		font-size: 20px;
		margin-bottom: 30px;
	}

	.service-list-image {
		margin: 0 auto 30px;
		width: 230px;
	}

	.service-list-text {
		font-size: 14px;
	}


	/* case ---------------------------------------*/
	.case {
		padding: 40px 16px 80px;
	}

	.case-image {
		max-width: unset;
		margin: 0 auto 50px;
	}

	.case-image-item img {
		width: 100%;
	}

	.case-title {
		max-width: unset;
		margin: 0 auto 40px;
		font-size: 20px;
	}

	.case-block {
		max-width: unset;
	}

	.faq-block-title {
		margin: 0 auto 20px;
		padding: 6px 20px;
		font-size: 16px;
	}

	.case-list {
		max-width: 500px;
		margin: 0 auto;
	}
	.case-list > li + li {
		margin-top: 30px;
	}

	.case-list-title {
		font-size: 14px;
	}

	.case-list-text {
		font-size: 14px;
	}


	/* faq ---------------------------------------*/
	.faq {
		padding: 120px 16px;
	}

	.faq-inner {
		max-width: 500px;
	}

	.faq-title {
		font-size: 20px;
		margin-bottom: 40px;
	}

	.faq-list {

	}

	.faq-list > li + li {
		margin-top: 40px;
	}

	.faq-list-question {
		font-size: 18px;
		margin-bottom: 20px;
	}

	.faq-list-answer {
		font-size: 14px;
	}


	/* profile ---------------------------------------*/
	.profile {
		padding: 70px 16px 90px;
	}

	.profile-inner {
		max-width: 500px;
	}

	.profile-title {
		font-size: 20px;
		margin: 80px auto 30px;
	}

	.profile-image {
		margin: 0 auto 30px;
		width: 220px;
	}

	.profile-text {
		font-size: 14px;
		margin-bottom: 40px;
	}

	.profile-info {
		margin: 0 0 70px auto;
		font-size: 14px;
	}
}


/* iphone5 iphoneSE用 */
@media screen and (max-width: 370px) {

}