@charset "UTF-8";
#gnav ul li.nav-company a:after {
	bottom: 0;
	opacity: 1;
}
/*==================================================================
	Keyv setting
===================================================================*/
#keyv {
	overflow: hidden;
	position: relative;
}
#keyv .copy {
	margin-left: auto;
	width: 64.5%;
	position: absolute;
	top: calc(50% + 60px);
	left: 0;
	right: 0;
	transform: translateY(-50%);
}
#keyv .txt01 {
	color: #fff;
	font-size: 4rem;
	letter-spacing: 0.3em;
	line-height: 1.8;
	margin-bottom: 20px;
}
#keyv .txt02 {
	color: #fff;
	font-size: 2rem;
	font-weight: 300;
	letter-spacing: 0.1em;
	line-height: 1.8;
}

@media screen and (max-width: 1023px){
	#keyv .copy {
		top: calc(50% + 20px);
	}
	#keyv .txt01 {
		font-size: 4.0rem;
		letter-spacing: 0.15em;
	}
	#keyv .txt02 {
		font-size: 2.0rem;
	}
}
@media screen and (max-width: 767px){
	#keyv {
		height: auto;
	}
	#keyv .copy {
		width: 95%;
	}
	#keyv .txt01 {
		font-size: 2.4rem;
	}
	#keyv .txt02 {
		font-size: 1.2rem;
	}
}

/*==================================================================
	section
===================================================================*/
section {
	background : #defffe;
	padding: 0 0 100px;
}

figure {
	position : relative;
}

figcaption {
	position : absolute;
	bottom : 0;
	right : 0;
	color : #fff;
	background : rgba(0,0,0,.5);
	padding : 3px 5px;
	font-size : 1.0rem;
}

@media screen and (max-width: 767px){
	section {
		padding : 0 0 10px;
	}
}

.sec-copy {
	background: #33CCCC;
	padding: 20px 30px;
}

.sec-copy p {
	text-align : center;
	color: #a9e4e5;
	font-family: 'Roboto', sans-serif;
	font-size : 3.0rem;
	line-height: 2;
	letter-spacing: 0.1em;
}

@media screen and (max-width: 1023px){
	.sec-copy p {
		font-size : 1.8rem;
		line-height : 1.8;
	}
}

.head-photo,
.head-info {
	width : calc(100% / 2);
}

.head-photo {
	overflow : hidden;
}

.head-photo figure {
	height : 100%;
}

.head-photo figure img {
	object-fit : cover;
	height : 100%;
}

@media screen and (max-width: 767px){
	.head-photo,
	.head-info {
		width : 100%;
	}
	.head-photo figure,
	.head-photo figure img {
		width : 100%;
		height : auto;
		object-fit : auto;
	}
}

.head-info {
	background: #fff;
	padding: 75px 100px 30px 50px;
}

.head-ttl {
	font-size: 3.0rem;
	line-height: 1.7;
	letter-spacing: 0.1em;
	margin-bottom: 10px;
	font-weight: normal;
}
.head-txt {
	font-size: 1.4rem;
	line-height: 2.2;
	margin-bottom: 40px;
}

.head-txt:nth-of-type(2) {
	font-weight : normal;
}

@media screen and (max-width: 1200px){
	.head-info {
		padding : 50px;
	}
}

@media screen and (max-width: 767px){
	.head-info {
		padding : 30px 15px 50px;
	}
	.head-txt {
		margin : 0 0 0;
	}
	.head-txt:nth-of-type(1) {
		margin-bottom : 20px;
	}
}

.sec-main {
	background : #fff;
	width : 970px;
	max-width : calc(100% - 30px);
	margin: 0 auto 0px;
	padding : 100px 65px;
}

.main-box {
	margin-bottom : 120px;
}

.main-box:nth-last-child(1) {
	margin-bottom : 0;
}

.main-ttl {
	border-left : solid 6px #33cccc;
	padding : 2px 10px 5px 25px;
	font-size : 3.3rem;
	margin-bottom : 20px;
}

.main-ttl.subin {
	position : relative;
	padding-bottom : 40px;
}

.main-ttl.subin span {
	font-size : 2.0rem;
	position : absolute;
	left :  25px;
	bottom : 10px;
	font-family: 'Roboto', sans-serif;
}

.main-txt {
	font-size: 1.5rem;
	line-height: 2.2;
	margin-bottom: 40px;
}

@media screen and (max-width: 767px){
	.sec-main {
		margin : 35px auto;
		padding : 30px;
	}
	.main-ttl {
		font-size : 1.9rem;
		padding-left : 15px;
	}
	.main-ttl.subin {
		padding-bottom : 25px;
	}
	.main-ttl.subin span {
		font-size : 1.0rem;
	}
	.main-txt {
		font-size : 1.3rem;
	}
	.main-box {
		margin-bottom : 75px;
	}
}

.main-table {
	border-collapse: collapse;
	width : 100%;
}

.main-table th,
.main-table td {
	padding : 20px 0;
	vertical-align : top;
	line-height : 2.2;
	
}

.main-table th {
	border-right:1px solid #333;
	width : 110px;
	font-weight : 300;
}

.main-table td {
	width : calc(100% - 110px);
	padding-left : calc(20 / 640 * 100%);
}

@media screen and (max-width: 767px){
	.main-table th,
	.main-table td {
		font-size : 1.2rem;
	}
	.main-table th {
		width : 80px;
	}
	.main-table td {
		width : calc(100% - 80px);
		padding-left : calc(20 / 560 * 100%);
	}
}

.main-sub-ttl {
	font-size : 2.8rem;
	margin-bottom : 30px;
}
.main-sub-ttl:before {
	content : "■";
	padding-right : 5px;
	color : #33cccc;
}
@media screen and (max-width: 767px){
	.main-sub-ttl {
		font-size : 1.7rem;
		margin-bottom : 20px;
	}
}

.main-sub-list {
	margin-bottom : 40px;
	margin-left : 20px;
	list-style-type : disc;
}

.main-sub-list li {
	margin-left : 16px;
	margin-bottom : 5px;
}

/*==================================================================
	philosophy
===================================================================*/

.philosophy {
	padding-bottom : 0;
}

/*==================================================================
	company
===================================================================*/

.company-table th {
	-moz-text-align-last: justify;
	text-align-last: justify;
	padding-right : calc(20 / 640 * 100%);
}

@media screen and (max-width: 767px){
	.company-table th {
		padding-right : calc(20 / 560 * 100%);
	}
}

/*==================================================================
	plan
===================================================================*/
	
.plan .main-txt {
	font-size : 1.8rem;
}
.plan .main-sub-ttl + .main-txt {
	margin-bottom : 40px;
	font-size : 1.6rem;
	padding-left : 20px;
}

.plan .main-sub-ttl + .main-txt.nul {
	margin-bottom : 10px;
}

@media screen and (max-width: 767px){
	.plan .main-txt {
		font-size : 1.3rem;
	}
	.plan .main-sub-ttl + .main-txt,
	.main-sub-list {
		margin-bottom : 30px;
		font-size : 1.2rem;
	}
}