@charset "UTF-8";


/* ---------------------------------------
  共通
-----------------------------------------*/
.secttl2 .ttl.en {
	display: inline-block;
	position: relative;
	font-size: 4.2rem;
	letter-spacing: 0.1em;
	line-height: .8;
	padding: 22px 51px;
}

.secttl2 .ttl.ja {
	display: inline-block;
	font-weight: bold;
	font-size: 2.8rem;
	letter-spacing: 0.1em;
	line-height: 1;
}

.secttl2 .ttl.en::before,
.secttl2 .ttl.en::after {
	content: "";
	width: 16px;
	height: 16px;
	background: url(../img/common/kakko.png) no-repeat center / 100% auto;
	position: absolute;
}

.secttl2 .ttl.en::before {
	left: 0;
	top: 0;
}

.secttl2 .ttl.en::after {
	transform: scale(-1, -1);
	bottom: 0;
	right: 0;
}

.secttl2 .txt {
	font-weight: bold;
	font-size: 2.4rem;
	letter-spacing: 0.15em;
	font-feature-settings: "palt";
	margin-left: 2em;
}

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

	.secttl2 .ttl.en {
		font-size: 6.93vw;
		padding: 4vw 9.6vw;
	}

	.secttl2 .ttl.ja {
		font-size: 5.6vw;
	}

	.secttl2 .ttl.en::before,
	.secttl2 .ttl.en::after {
		width: 2.66vw;
		height: 2.66vw;
	}


	.secttl2 .txt {
		display: block;
		font-size: 4.4vw;
		line-height: 1.9;
		margin-left: 0;
		margin-top: .75em;
	}
}

/* ---------------------------------------
  sec_about
-----------------------------------------*/
#sec_about {
	padding: 70px 0 130px;
}

#sec_about .inner {
	display: flex;
	justify-content: space-between;
	position: relative;
}

#sec_about .secttl {
	padding-top: 62px;
}

#sec_about .secttl.is-show .border {
	max-height: 300px;
}

#sec_about .cntblock {
	width: 920px;
	display: flex;
	justify-content: space-between;
}

#sec_about .cntblock .txtwrap {
	width: 352px;
	padding-top: 54px;
}

#sec_about .cntblock .txtwrap .txt {
	font-weight: bold;
	font-size: 1.8rem;
	line-height: 2;
	transition-timing-function: linear;
}

#sec_about .cntblock .txtwrap .txt + .txt {
	margin-top: .7em;
}

#sec_about .cntblock .txtwrap .txt:last-child {
	margin-top: 3em;
}

#sec_about .cntblock .imgwrap {
	width: 502px;
	height: 572px;
	position: relative;
}


#sec_about .cntblock .imgwrap .img01,
#sec_about .cntblock .imgwrap .img02,
#sec_about .cntblock .imgwrap .img03 {
	position: absolute;
	opacity: 0;
/*	transition: opacity .4s ease;*/
	transition-delay: .6s;
	left: 50%;
	bottom: 0;
	transform: translatex(-50%);
}


#sec_about .cntblock .imgwrap .img01 img,
#sec_about .cntblock .imgwrap .img02 img,
#sec_about .cntblock .imgwrap .img03 img {
	width: 100%;
}


#sec_about.is-show .cntblock .imgwrap .img01,
#sec_about.is-show .cntblock .imgwrap .img02,
#sec_about.is-show .cntblock .imgwrap .img03 {
	opacity: 1;
	transition: opacity 1s linear;
}


#sec_about.is-show .cntblock .imgwrap .img01 {
	width: 502px;
	transition: opacity 1s linear;
	transition-delay: 1.0s;
}

#sec_about.is-show .cntblock .imgwrap .img01 img{
	animation: drawing 1s linear 4s 1 normal forwards;
}

#sec_about.is-show .cntblock .imgwrap .img02 {
	width: 482px;
	bottom: 12px;
	transition: opacity 1s linear;
	transition-delay: 2.0s;
}

#sec_about.is-show .cntblock .imgwrap .img02 img{
	animation: drawing 1s linear 6s 1 normal forwards;
}

#sec_about.is-show .cntblock .imgwrap .img03 {
	width: 483px;
	bottom: 12px;
	transition: opacity .4s linear;
	transition-delay: 5s;
}


@keyframes drawing {
	0% {
		opacity: 1;
	}

	100% {
		opacity: 0;
	}
}

@-webkit-keyframes drawing {
	0% {
		opacity: 1;
	}

	100% {
		opacity: 0;
	}
}

@media screen and (max-width: 768px) {
	#sec_about {
		padding: 20vw 0 13.33vw;
	}

	#sec_about .inner {
		display: block;
	}

	#sec_about .cntblock {
		width: 100%;
		display: block;
	}

	#sec_about .cntblock .txtwrap {
		width: 100%;
		padding-top: 0;
		margin-bottom: 9.33vw;
	}

	#sec_about .cntblock .txtwrap .txt {
		font-size: 3.6vw;
	}

	#sec_about .cntblock .imgwrap {
		width: 80.8vw;
		height: 91.271vw;
		margin: 0 auto;
	}

	#sec_about.is-show .cntblock .imgwrap .img01 {
		width: 100%;
	}

	#sec_about.is-show .cntblock .imgwrap .img02 {
		width: 96%;
		bottom: 2vw;
	}

	#sec_about.is-show .cntblock .imgwrap .img03 {
		width: 96.2%;
		bottom: 2vw;
	}
}


/* ---------------------------------------
  sec_concept
-----------------------------------------*/
#sec_concept {
	background-color: #dcc8a4;
	padding: 64px 0 90px;
}

#sec_concept .secttl2 {
	margin-bottom: 52px;
}

#sec_concept .concept_list {
	display: flex;
	justify-content: space-between;
	margin-bottom: 70px;
}

#sec_concept .concept_list .item {
	width: 254px;
}

#sec_concept .concept_list .item .img {
	width: 100%;
	height: 254px;
	background-color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

#sec_concept .concept_list .item .txt {
	font-weight: bold;
	font-size: 2rem;
	text-align: center;
	line-height: 1.3;
	letter-spacing: 0.1em;
	font-feature-settings: "palt";
}

#sec_concept .concept_list .item .txt span {
	font-size: 4.5rem;
	font-weight: normal;
	display: inline-block;
	line-height: 1;
	margin-left: -.3em;
	margin-right: .1em;
}

#sec_concept .txtwrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

#sec_concept .txtwrap .ttl {
	width: 345px;
	font-weight: bold;
	font-size: 2.4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	padding: 1.125em 0;
}

#sec_concept .txtwrap .ttl span {
	position: absolute;
	width: 100%;
	height: 1px;
	background-color: #000;
	left: 0;
}

#sec_concept .txtwrap .ttl span:first-child {
	top: 0;
}

#sec_concept .txtwrap .ttl span:last-child {
	bottom: 0;
}

#sec_concept .txtwrap .ttl span::before,
#sec_concept .txtwrap .ttl span::after {
	content: "";
	width: 5px;
	height: 5px;
	background-color: #000;
	border-radius: 50%;
	position: absolute;
}

#sec_concept .txtwrap .ttl span::before {
	left: 0;
}

#sec_concept .txtwrap .ttl span::after {
	right: 0;
}

#sec_concept .txtwrap .ttl span:first-child::before,
#sec_concept .txtwrap .ttl span:first-child::after {
	top: -2px;
}

#sec_concept .txtwrap .ttl span:last-child::before,
#sec_concept .txtwrap .ttl span:last-child::after {
	bottom: -2px;
}


#sec_concept .txtwrap .txt {
	width: 811px;
	line-height: 2.125;
}

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

@media screen and (max-width: 768px) {
	#sec_concept {
		padding: 13.33vw 0;
	}

	#sec_concept .secttl2 {
		margin-bottom: 9.33vw;
	}

	#sec_concept .secttl2 .txt {
		margin-top: 7.5vw;
	}

	#sec_concept .concept_list {
		flex-wrap: wrap;
		margin-bottom: 0;
	}

	#sec_concept .concept_list .item {
		width: 37.46vw;
		margin-bottom: 9.33vw;
	}

	#sec_concept .concept_list .item .img {
		height: 37.46vw;
	}

	#sec_concept .concept_list .item:nth-child(1) .img img {
		width: 14.66vw;
	}

	#sec_concept .concept_list .item:nth-child(2) .img img {
		width: 12.8vw;
	}

	#sec_concept .concept_list .item:nth-child(3) .img img {
		width: 15.2vw;
	}

	#sec_concept .concept_list .item:nth-child(4) .img img {
		width: 19.33vw;
	}

	#sec_concept .concept_list .item .txt {
		font-size: 2.9vw;
		white-space: nowrap;
	}

	#sec_concept .concept_list .item .txt span {
		font-size: 6.66vw;
	}

	#sec_concept .txtwrap {
		display: block;
	}

	#sec_concept .txtwrap .ttl {
		width: 100%;
		font-size: 4.8vw;
		padding: .9em 0;
	}

	#sec_concept .txtwrap .ttl span::before,
	#sec_concept .txtwrap .ttl span::after {
		width: 1.4vw;
		height: 1.4vw;
		border-radius: .7vw;
	}

	#sec_concept .txtwrap .ttl span:first-child::before,
	#sec_concept .txtwrap .ttl span:first-child::after {
		top: calc(((1.4vw - 1px) / 2) * -1);
	}

	#sec_concept .txtwrap .ttl span:last-child::before,
	#sec_concept .txtwrap .ttl span:last-child::after {
		bottom: calc(((1.4vw - 1px) / 2) * -1);
	}

	#sec_concept .txtwrap .txt {
		width: 100%;
		margin-top: 2em;
	}
}


/* ---------------------------------------
  sec_cando
-----------------------------------------*/
#sec_cando {
	padding: 100px 0;
	background-color: #f2f2f2;
}

#sec_cando .bg_img {
	width: calc(50% + 520px);
	height: 317px;
	position: absolute;
	left: -100%;
	top: 0;
	background: url(../img/about/cando_bg.jpg) no-repeat center top / cover;
	transition: 1s ease;
}

#sec_cando .bg_img.is-show {
	left: 0;
}

#sec_cando .secttl2 {
	margin-bottom: 90px;
}

#sec_cando .secttl2 .ttl {
	color: #fff;
}

#sec_cando .cando_list {
	display: flex;
	justify-content: space-between;
	position: relative;
}

#sec_cando .cando_list .item {
	width: 368px;
}

#sec_cando .cando_list .item .img {
	width: 100%;
}

#sec_cando .cando_list .item .ttlwrap {
	position: relative;
	display: flex;
	align-items: flex-start;
	margin: 35px 0 20px;
}

#sec_cando .cando_list .item .ttlwrap .num {
	font-size: 2.8rem;
	line-height: 1;
	margin-right: 2.2em;
	margin-left: .1em;
	position: relative;
}

#sec_cando .cando_list .item .ttlwrap .num::before {
	content: "";
	width: 1px;
	height: 84px;
	background-color: #000;
	position: absolute;
	transform: rotate(45deg);
	left: 28px;
	top: -12px;
}

#sec_cando .cando_list .item .ttlwrap .ttl {
	font-weight: bold;
	line-height: 1;
	letter-spacing: 0.1em;
}

#sec_cando .cando_list .item .ttlwrap .ttl .en {
	display: block;
	line-height: .8;
	font-weight: normal;
	font-size: 3rem;
	margin-bottom: .65em;
}

#sec_cando .cando_list .item .txt {
	font-size: 1.5rem;
	line-height: 1.733;
}

#sec_cando .cando_list .item .btn a {
	margin-left: auto;
	margin-top: 2em;
}

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

@media screen and (max-width: 768px) {
	#sec_cando {
		padding: 19.6vw 0;
	}

	#sec_cando .bg_img {
		width: 100%;
		height: 63.46vw;
		background: url(../img/about/cando_bg_sp.jpg) no-repeat center top / cover;
	}

	#sec_cando .secttl2 {
		text-align: left;
		margin-bottom: 17.86vw;
	}

	#sec_cando .cando_list {
		display: block;
	}

	#sec_cando .cando_list .item {
		width: 100%;
	}

	#sec_cando .cando_list .item + .item {
		margin-top: 13.33vw;
	}

	#sec_cando .cando_list .item .ttlwrap {
		margin: 6.66vw 0 4.2vw;
	}

	#sec_cando .cando_list .item .ttlwrap .num {
		font-size: 5.6vw;
		margin-right: 2.2em;
		margin-left: .1em;
	}

	#sec_cando .cando_list .item .ttlwrap .num::before {
		height: 16.8vw;
		left: 6vw;
		top: -3vw;
	}

	#sec_cando .cando_list .item .ttlwrap .ttl .en {
		font-size: 6vw;
	}

	#sec_cando .cando_list .item .txt {
		font-size: 3.06vw;
	}
}


/* ---------------------------------------
  sec_message
-----------------------------------------*/
#sec_message {
	padding: 70px 0 230px;
}

#sec_message::before {
	content: "";
	width: calc(50% + 57px);
	height: calc(100% - 230px);
	background: url(../img/common/bg_stripe.png);
	position: absolute;
	right: 0;
	top: 0;
}

#sec_message .inner {
	display: flex;
	justify-content: space-between;
	position: relative;
	margin-top: 70px;
	padding-bottom: 50px;
}

#sec_message .txtwrap {
	width: 497px;
}

#sec_message .txtwrap .img {
	width: 100%;
	margin-bottom: 70px;
}

#sec_message .txtwrap .ttl {
	font-weight: bold;
	font-size: 2rem;
	letter-spacing: 0.1em;
	line-height: 1;
	padding-left: 1.5em;
	position: relative;
	margin-bottom: 1.5em;
}

#sec_message .txtwrap .ttl::before {
	content: "";
	width: 1em;
	height: 3px;
	background-color: #cdb07c;
	position: absolute;
	left: 0;
	top: .4em;
}

#sec_message .txtwrap .txt {
	line-height: 2.125;
	margin-bottom: 1em;
}

#sec_message .txtwrap .name span {
	font-size: 2rem;
	margin-left: 1em;
}

#sec_message .profile {
	width: 608px;
}

#sec_message .profile dl + dl {
	margin-top: 25px;
}

#sec_message .profile dl dt {
	font-size: 1.8rem;
	letter-spacing: 0.1em;
	position: relative;
	line-height: 1;
	margin-bottom: .5em;
}

#sec_message .profile dl dt::after {
	content: "";
	width: calc(100% - 3em);
	height: 1px;
	background-color: #000;
	position: absolute;
	right: 0;
	top: .45em;
}

#sec_message .profile dl dd {
	font-size: 1.5rem;
	letter-spacing: 0.03em;
}

#sec_message .profile dl.history dd {
	display: flex;
}

#sec_message .profile dl.history dd span {
	flex-flow: 1;
	min-width: 3em;
	margin-right: 1em;
	letter-spacing: 0.1em;
}

#sec_message .videowrap {
	width: 692px;
	position: relative;
	margin: 0 auto -230px;
}

#sec_message .videowrap video {
	width: 100%;
}

/*IE*/
.ie #sec_message .profile dl dt::after {
	top: .25em;
}

@media screen and (max-width: 768px) {
	#sec_message {
		padding: 13.33vw 0;
	}

	#sec_message::before {
		content: none;
	}

	#sec_message .inner {
		display: block;
		margin-top: 9vw;
		padding-bottom: 0;
	}

	#sec_message .txtwrap {
		width: 100%;
		padding-bottom: 9.33vw;
	}

	#sec_message .txtwrap .img {
		width: 100%;
		margin-bottom: 9.33vw;
	}

	#sec_message .txtwrap .ttl {
		font-size: 4vw;
	}

	#sec_message .txtwrap .ttl::before {
		height: .53vw;
	}


	#sec_message .txtwrap .name span {
		font-size: 4vw;
	}

	#sec_message .profile {
		width: 100vw;
		margin: 0 -8vw;
		padding: 9.33vw 8vw 35.4vw;
		background-image: url(../img/common/bg_stripe.png);
		background-size: 2.133vw auto;
	}

	#sec_message .profile dl + dl {
		margin-top: 6vw;
	}

	#sec_message .profile dl dt {
		font-size: 3.6vw;
	}

	#sec_message .profile dl dd {
		font-size: 3.06vw;
	}

	#sec_message .videowrap {
		width: 100%;
		margin: -23.73vw auto 0;
	}

}



/* ---------------------------------------
  sec_company
-----------------------------------------*/
#sec_company {
	padding: 66px 0 100px;
	margin-top: 100px;
	margin-bottom: 6px;
	background: #f2f2f2;
}

#sec_company .bgimg {
	width: calc(50% - 103px);
	height: 100%;
	position: absolute;
	overflow: hidden;
	left: -100%;
	top: 0;
	transition: 1s ease;
}

#sec_company .bgimg.is-show {
	left: 0;
}

#sec_company .bgimg img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: auto;
	height: auto;
	min-width: 100%;
	min-height: 100%;
	max-width: inherit;
}

#sec_company .txtwrap {
	width: 613px;
	margin-left: auto;
}

#sec_company .secttl2 .ttl {
	letter-spacing: 0.05em;
}

#sec_company .secttl2 .txt {
	margin-left: 1.5em;
}


#sec_company dl {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	margin-top: 40px;
}

#sec_company dl dt,
#sec_company dl dd {
	font-size: 1.5rem;
	letter-spacing: 0.04em;
	line-height: 1.6;
	text-align: left;
	vertical-align: top;
	padding: .25em 0
}

#sec_company dl .mb {
	margin-bottom: .8em;
}

#sec_company dl dt {
	color: #7f7f7f;
	width: 87px;
}

#sec_company dl dd {
	width: calc(100% - 87px);
	padding-left: 1.6em;
	position: relative;
}

#sec_company dl dd p {
	font-size: 1.5rem;
	letter-spacing: 0.04em;
	line-height: 1.6;
}

#sec_company dl dd p + p {
	margin-top: .2em;
}

#sec_company dl dd::before {
	content: "";
	width: 1px;
	height: calc(100% - 1em);
	min-height: 1.1em;
	background-color: #000;
	position: absolute;
	left: 0;
	top: .5em;
}

/*IE*/
.ie #sec_message .txtwrap .ttl::before {
	top: .2em;
}

.ie #sec_company dl dd::before {
	top: .3em;
}

@media screen and (max-width: 768px) {
	#sec_company {
		padding: 0 0 13.33vw;
		margin-top: 0;
		margin-bottom: 0;
	}

	#sec_company .bgimg {
		width: 100%;
		height: 98vw;
		position: relative;
	}

	#sec_company .bgimg img {
		position: static;
		width: 100%;
		height: auto;
		transform: none;
	}

	#sec_company .txtwrap {
		width: 100%;
		margin: 13.33vw auto 0;
	}

	#sec_company .secttl2 .txt {
		margin-left: 0;
	}


	#sec_company dl {
		width: 100%;
		margin-top: 9.33vw;
	}

	#sec_company dl dt,
	#sec_company dl dd {
		font-size: 3.06vw;
		line-height: 1.43;
		padding: .25em 0
	}

	#sec_company dl .mb {
		margin-bottom: .8em;
	}

	#sec_company dl dt {
		width: 5.5em;
	}

	#sec_company dl dd {
		width: calc(100% - 5.5em);
		padding-left: 1.2em;
	}

	#sec_company dl dd p {
		font-size: 3.06vw;
		line-height: 1.43;
	}

	#sec_company dl dd p + p {
		margin-top: .6em;
	}

	#sec_company dl dd span:not(.tel_num) {
		display: inline-block;
		margin-bottom: .3em;
	}

	#sec_company dl dd::before {
		height: calc(100% - .8em);
		top: .4em;
	}
}
