html{
    font-size: 62.5%;
	scroll-behavior: smooth;

}

body {
	background:#FFF;
	font-size: 1.7rem;
	line-height:1.7;
	color:#000;
	min-width: auto;
    font-feature-settings: "palt";
    letter-spacing: 0.03rem;
}


header
{
	padding: 10px 15px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

header h1
{	width: 40%;

}
.btn-recruit
{
	width: 40%;
}

header h1 img,
.btn-recruit img
{
	height: 100%;
	width: 100%;
	object-fit: contain;
	vertical-align: middle;
}
@media screen and (min-width: 768px)
{
	header
	{
		height: 130px;
		padding: 15px 30px;
	}
	header h1
	{
		height: 40%;
		width: auto;

	}
	.btn-recruit
	{
		height: 100%;
		width: auto;
	}
}


/* ================================
    Key Visual
================================ */
.keyvisual
{
	overflow: hidden;
}
.keyvisual-content
{
	position: relative;
}
.keyvisual-message
{
	position: absolute;
	top: 50%;
	left: 0;
	font-size: 2rem;
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
	font-weight: 600;
	letter-spacing: .2em;
	line-height: 1;
}
.keyvisual-message > div
{
	padding: 15px 20px;
	background-color: rgba(255, 255, 255, .8);
	margin-bottom: 20px;
	display: table;
}
.keyvisual-message > div:first-of-type
{
	margin-bottom: 20px;
}
.keyvisual-message > div:last-of-type
{
	padding-left: calc(20px + 1em);
}
.keyvisual img
{
	object-fit: cover;
	width: 100%;
	height: 80vh;
} 
@media screen and (min-width: 768px)
{
	.keyvisual
	{
		height: auto;
	}
	.keyvisual img
	{
		object-fit: cover;
		width: 100%;
		height: auto;
	}
	.keyvisual-message
	{
		top: 50%;
		left: 0;
		font-size: 4rem;
	}
	.keyvisual-message > div
	{
		padding: 20px 40px;
		margin-bottom: 20px;
	}
	.keyvisual-message > div:last-of-type
	{
		padding-left: calc(40px + 3em);
	}

}


/* ================================
    Vision
================================ */

.sec-vision
{
	background-color: #ffe100;
	padding-top: 70px;
	padding-bottom: 70px;
}

.vision-title
{
    font-size: 6rem;
    line-height: 1.1;
    letter-spacing: .1em;
    font-weight: 700;
    font-family: futura-pt, sans-serif;
}
.vision-text01
{
	font-size: 3rem;
	font-weight: 300;
	margin-bottom: 1.4em;
}
.vision-text02
{
	font-size: 3rem;
	font-weight: 300;
}
.vision-text03
{
    line-height: 2.1;
}
@media screen and (min-width: 768px)
{
	.sec-vision
	{
		padding-top: 100px;
		padding-bottom: 100px;
	}
	.vision-title
	{
		font-size: 8.3rem;
	}
	.vision-text01
	{
		font-size: 3.4rem;
		margin-bottom: 1.4em;
	}
	.vision-text02
	{
		font-size: 3.4rem;
	}
	.vision-text03
	{
		line-height: 2.3;
		padding-left: 10%;
	}
}


/* ================================
    Core Competence
================================ */

.sec-core_competence
{
	padding-top: 70px;
	padding-bottom: 150px;
}
.core_competence-title
{
	font-size: 4.4rem;
    font-weight: 700;
    font-family: futura-pt, sans-serif;
	line-height: 1;
	text-align: center;
	margin-bottom: 40px;
	position: relative;
}
.core_competence-title::before
{
	content: "";
	width: 50px;
	height: 50px;
	display: block;
	background-image: url("../images/our_vision/icon_core_competence.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	margin: 0 auto 10px;
}
.core_competence-title::after
{
	content: "";
	width: 100px;
	height: 100px;
	display: block;
	background-image: url("../images/our_vision/strength.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	position: absolute;
	bottom: 1.2em;
	left: 10px;
}

.core_competence-text01 p
{

	font-size: 2.6rem;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
}
.core_competence-text01 p span
{
    background:linear-gradient(transparent 50%, #ffe100 0%);
    display: inline-block;
	padding: 0 20px;
}
.core_competence-text02 p
{
	font-size: 2.2rem;
	font-weight: 300;
	text-align: center;
	margin-bottom: 40px;
}

.core_competence-strength
{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.core_competence-strength > div
{
	width: 48%;
	margin-bottom: 18px;
}

@media screen and (min-width: 768px)
{
	.sec-core_competence
	{
		padding-bottom: 160px;
	}
	.core_competence-strength > div
	{
		width: 32%;
		margin-bottom: 18px;
	}
	.core_competence-title
	{
		font-size: 5.2rem;
	}
	.core_competence-title::before
	{
		width: 80px;
		height: 80px;
	}
	.core_competence-title::after
	{
		width: 150px;
		height: 150px;
		top: 0;
		left: calc(50% - 150px - 4.5em);
	}
	.core_competence-text01 p
	{
		font-size: 3rem;
		margin-bottom: 50px;
	}
	.core_competence-text02 p
	{
		font-size: 2.5rem;
		margin-bottom: 50px;
	}
}



/* ================================
    Story
================================ */
.sec-story
{
	background-color: #dbdcdc;
	padding-top: 70px;
	padding-bottom: 70px;
	position: relative;
}
.sec-story::before
{
	content: "";
	position: absolute;
	left: calc(50% - 175px);
	top: -70px;
	width: 350px;
	height: 350px;
	border-radius: 50%;
	display: block;
	background-color: #dbdcdc;
}
.story-title
{
	font-size: 4.4rem;
    font-weight: 700;
    font-family: futura-pt, sans-serif;
	line-height: 1;
	text-align: center;
	margin-bottom: 35px;
	
	position: absolute;
    left: calc(50% - 150px);
    top: -120px;
    width: 300px;
}
.story-title::before
{
	content: "";
	width: 50px;
	height: 50px;
	display: block;
	background-image: url("../images/our_vision/icon_story.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	margin: 0 auto;
}
.story-text01 p
{
	font-size: 2.6rem;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
}
.story-text01 p span
{
    background:linear-gradient(transparent 50%, #ffe100 0%);
    display: inline-block;
	padding: 0 20px;
}

.story-text02 p {
	font-size: 2.2rem;
	text-align: center;
	margin-bottom: 50px;
	font-weight: 300;
}

@media screen and (min-width: 768px)
{
	.sec-story
	{
		padding-top: 110px;
	}
	.sec-story::before
	{
		left: calc(50% - 200px);
		top: -80px;
		width: 400px;
		height: 400px;
	}
	.story-title
	{
		font-size: 5.2rem;
		margin-bottom: 40px;
		top: -170px;
	}
	.story-title::before
	{
		width: 80px;
		height: 80px;
	}
	.story-text01 p
	{
		font-size: 3rem;
		margin-bottom: 50px;
	}
	.story-text02 p {
		font-size: 2.5rem;
	}
}

/* ================================
    Interview
================================ */
.sec-interview
{
	background-color: #30647d;
	padding-top: 70px;
	padding-bottom: 70px;
}
.interview-title
{
	color: #fff;
	font-size: 4.4rem;
    font-weight: 700;
    font-family: futura-pt, sans-serif;
	line-height: 1;
	text-align: center;
	margin-bottom: 40px;
}
.interview-title::before
{
	content: "";
	width: 50px;
	height: 50px;
	display: block;
	background-image: url("../images/our_vision/icon_interview.svg");
	background-repeat: no-repeat;
	background-size: contain;
	margin: 0 auto 10px;
}


.interview-content
{
	background-color: #dbdcdc;
	padding: 25px;
	position: relative;
	margin-bottom: 40px;
}
.interview-content::before
{
	background-color: #fff;
	content: "";
	position: absolute;
	top: -10px;
	left: calc(50% - 15%);
	width: 30%;
	height: 20px;
}

.interview-image
{
	margin-bottom: 30px;
}
.interview-text
{
	height: 55px;
	text-align: center;
	margin-bottom: 25px;
	max-width: 100%;
}
.interview-text img
{
	height: 100%;
	width: auto;
}
.interview-profile
{
	margin-bottom: 25px;
}
.interview-profile p
{
	font-size: 1.4rem;
	line-height: 1.3;
	text-align: right;
}
.interview-button
{
	text-align: center;
}
.interview-button a
{
	display: inline-block;
	width: 60%;
}



.modaal-container
{
	background-color: #30647d;
	color: #fff;
}
.modaal-content-container {
    padding: 0px;
}
.modal-interview h2
{
    color: #ffe100;
    font-family: futura-pt, sans-serif;
    font-size: 3rem;
    font-weight: 700;
	padding: 30px 0;
    text-align: center;
}
.img-interview
{
    width: 100%;
    max-height: 600px;
    overflow: hidden;
	position: relative;
}
.img-interview img
{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.modal-interview-profile
{
    background-color: rgba(255, 255, 255, .7);
    color: #000;
    font-size: 1.5rem;
    font-weight: 500;
    position: absolute;
    bottom: 20px;
    right: 0;
    width: 60%;
    padding: 7px;
    text-align: center;
}
.modaal-wrapper dt
{
    color: #ffe100;
    font-size: 2rem;
    font-weight: 600;
}
.modaal-wrapper dd
{
    font-size: 1.8rem;
    margin-bottom: 5rem;
}

@media screen and (min-width: 768px)
{
	.interview-title
	{
		font-size: 5.2rem;
	}
	.interview-title::before
	{
		width: 80px;
		height: 80px;
	}
	.interview-content
	{
		margin-bottom: 0;
		padding: 20px;
	}

	.interview-text
	{
		height: 45px;
	}


	.modal-interview h2
	{
		font-size: 8rem;
		padding: 30px 0;
	}

	.modal-interview-profile
	{
		font-size: 3rem;
		font-weight: 300;
		bottom: 20px;
		padding: 15px;
		width: 40%;
	}
}


/* ================================
    Company
================================ */
.sec-company
{
	padding-top: 70px;
	padding-bottom: 70px;
}
.company-title
{
	color: #000;
	font-size: 4.4rem;
    font-weight: 700;
    font-family: futura-pt, sans-serif;
	line-height: 1;
	text-align: center;
	margin-bottom: 30px;
}
.company-title::before
{
	content: "";
	width: 50px;
	height: 25px;
	display: block;
	background-image: url("../images/our_vision/icon_company.svg");
	background-repeat: no-repeat;
	background-size: contain;
	margin: 0 auto 10px;
}
.company-subtitle
{
	font-size: 2.4rem;
    font-weight: 800;
	line-height: 1;
	text-align: center;
	margin-bottom: 100px;
}
.feature-content
{
	background-color: #dbdcdc;
    height: 100%;
	padding: 80px 20px 30px;
	margin-bottom: 60px;
	position: relative;
}
.feature-content-no
{
	background-color: #ffe100;
	display: block;
	width: 110px;
	height: 110px;
	padding: 15px;
	position:absolute;
	content: "";
	top: -50px;
	left: calc(50% - 55px);
}
.feature-content-no > div {
    line-height: 80px;
    text-align: center;
    font-size: 4rem;
    font-weight: 800;
    font-family: futura-pt, sans-serif;
    border: 1px solid #000;
}
.img-feature
{
    text-align: center;
    margin-bottom: 30px;
}
.img-feature img
{
    width: 25%;
}
.feature-content h3
{
    font-size: 3.5rem;
    font-weight: 700;
    font-family: futura-pt, sans-serif;
    text-align: center;
    line-height: 1.2;
	margin-bottom: 30px;
}
.feature-content h3 span
{
	font-family: BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size: 2.5rem;
    font-weight: 500;
}
.feature-content p
{
    font-size: 1.6rem !important;
    line-height: 1.8;
}

.company-arrow
{
    background-image: url(../images/our_vision/arrow.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    display: block;
    height: 80px;
    margin: 35px 0;
}


.company-text01
{
	font-size: 2.3rem;
	font-weight: 700;
	text-align: center;
	margin-bottom: 50px;
}
.company-text01 span
{
    background:linear-gradient(transparent 50%, #ffe100 0%);
    display: inline-block;
	padding: 0 20px;
}
@media screen and (min-width: 768px)
{
	.feature-content
	{
		padding: 100px 20px 30px;
		margin-bottom: 0;
	}
	.company-title
	{
		font-size: 5.2rem;
	}
	.company-title::before
	{
		width: 80px;
		height: 40px;
	}
	.company-subtitle
	{
		font-size: 2.8rem;
	}
	.img-feature
	{
		margin-bottom: 40px;
	}
	.img-feature img
	{
		width: 60%;
	}
	.company-text01
	{
		font-size: 3rem;
	}
	.feature-content p
	{
		font-size: 1.4rem !important;
		line-height: 1.9;
	}
	.company-arrow
	{
		height: 100px;
		margin: 50px 0;
	}
}




/* ================================
    Career Up
================================ */
.careerup
{
	border: 1px solid #000;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px;
	margin-bottom: 30px;
}
.careerup-title
{
	color: #c20d23;
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1.5;
}
.careerup-no
{
	background-color: #ffe100;
	font-size: 3rem;
	font-weight: 700;
    font-family: futura-pt, sans-serif;
	width: 65px;
	padding: 20px 12px;
	text-align: center;
	line-height: 1;
}
.careerup-no span
{
	border-bottom: 4px solid #000;
	display: inline-block;
}
.careerup-r
{
	width: calc(100% - 80px)
}
@media screen and (min-width: 768px)
{
	.careerup-title
	{
		font-size: 2rem;
		line-height: 1.7;
	}
}

/* ================================
    Message
================================ */
.sec-message
{
	background-color: #dbdcdc;
	border-top: 7px solid #000;
	border-bottom: 7px solid #000;
	padding-top: 60px;
	padding-bottom: 350px;
    background-image: url("../images/our_vision/message_president.png");
    background-repeat: no-repeat;
    background-size: 70%;
    background-position: bottom center;
}

.message-content
{
}
.message-content h2
{
    font-size: 6rem;
    line-height: 1.1;
    letter-spacing: .05em;
    font-weight: 700;
    font-family: futura-pt, sans-serif;
	margin-bottom: 40px;
}
.message-content p
{
	line-height: 2;
	margin-bottom: 1.8em;
}
.message-content p:last-of-type
{
	margin-bottom: 0;
}
@media screen and (min-width: 768px)
{
	.sec-message
	{
		background-size: 40%;
		background-position: bottom right 15%;
		padding-top: 70px;
		padding-bottom: 70px;
	}
	.message-content h2
	{
		font-size: 8.3rem;
	}
	.message-content p
	{
		line-height: 2.2;
		margin-bottom: 2em;
	}
}






/* ================================
    Requirments
================================ */
.sec-requirements
{
	padding: 70px 0;
}
.requirments-title
{
    text-align: center;
	margin-bottom: 30px;
}
.requirments-title h2
{
	border: 5px solid #000;
	display: inline-block;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.4;
	padding: 15px 50px;
	width: 100%;
}
.requirments-title h2 span
{
    font-family: futura-pt, sans-serif;
	font-size: 3rem;
	font-weight: 700;
}


.requirments-kv
{
    width: 100%;
    height: 130px;
}
.requirments-kv img
{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.requirments-text01 p
{
	font-size: 1.6rem;
	text-align: center;
	margin-bottom: 50px;
	font-weight: 300;
}
.requirments-places
{
	margin-bottom: 40px;
}
.requirments-places-place
{
    padding: 0;
    display: flex;
	font-size: 1.4rem;
	justify-content: space-between;
	width: 100%;
}
.requirments-places-place li
{
    background-color: #f7931e;
    padding: 1px;
    width: 18%;
    text-align: center;
}
.requirments-places-place li span
{
    display: none;
}
.requirments-places-place a
{
	border: 1px solid #fff;
    background-color: #f7931e;
	color: #fff;
	display: block;
    padding: 8px 10px;
	line-height: 1;
}

.requirments-contents
{
	margin-bottom: 50px;
}

.requirments-head {
    border-left: 7px solid #000;
    padding-left: 12px;
    margin-bottom: 50px;
}
.requirments-head-top {
    margin-bottom: 20px;
}
.requirments-head-title {
    font-size: 1.9rem;
    font-weight: 600;
    margin-right: 15px;
	margin-bottom: 5px;
}
.requirments-head-occupation {
    display: flex;
    font-size: 1.3rem;
    align-items: center;
}
.requirments-head-occupation li {
    padding: 6px 10px;
    background-color: #ffe100;
    line-height: 1;
    margin: 0 10px 0 0;
}


.requirments-detail
{
	margin-bottom: 40px;
}
.requirments-detail:last-of-type
{
	margin-bottom: 10px;
}
.requirments-detail-title
{
	font-weight: 700;
    margin-bottom: 1em;
}
.requirments-detail-table-row
{
    border: 1px solid #000;
	display: flex;
	flex-wrap: wrap;
}
.requirments-detail-table-row:first-of-type
{
    border-bottom: none;
}
.requirments-detail-table dt
{
	background-color: #b5b5b6;
	border-right: 1px solid #000;
    border-bottom: 1px solid #000;
	font-size: 1.5rem;
	padding: 10px;
	width: 25%;
}
.requirments-detail-table dd
{
	border-bottom: 1px solid #000;
	font-size: 1.4rem;
	padding: 10px;
	width: 75%;
}
.requirments-detail-table dt:last-of-type,
.requirments-detail-table dd:last-of-type
{
	border-bottom: none;
}
.place_top
{
	font-size: 1.4rem;
}

.cta {
    margin: 70px 0;
}
.cta > div:first-of-type
{
	margin-bottom: 10px;
}

.cta a img
{
	transition-duration: .3s;
}
.cta a:hover img
{
	filter: opacity(70%);
}



@media screen and (min-width: 768px)
{
	.requirments-title
	{
		margin-bottom: 50px;
	}
	.requirments-title h2
	{
		width: 40%;
	}

	.requirments-kv {
		width: 100%;
		height: 440px;
	}
	.requirments-text01 p
	{
		font-size: 1.8rem;
	}

	.requirments-places
	{
		display: flex;
		width: 90%;
		margin: 0 auto 80px;
		font-size: 1.8rem;
		align-items: center;
	}

	.requirments-places-title
	{
		width: 10%;
	}
	.requirments-places-place {
		font-size: 1.7rem;
		justify-content: space-around;
	}
	.requirments-places-place li
	{
		padding: 2px;
		width: auto;
	}

	.requirments-places-place li span
	{
		display: initial;
	}
	.requirments-places-place a
	{
		border: 2px solid #fff;
		padding: 8px 15px;
	}

	.requirments-head-top {
		display: flex;
	}
	.requirments-head-title {
		margin-bottom: 0;
	}

	.requirments-head-occupation li {
		margin: 0 7px;
	}
	.requirments-head-data {
		display: flex;
	}
	.requirments-head-data li {
		margin-right: 1.8em;
	}

	.requirments-detail-table {
		display: flex;
		flex-wrap: wrap;
	}
	.requirments-detail-table-row
	{
		width: 50%;
	}
	.requirments-detail-table-row:first-of-type
	{
		border-bottom: 1px solid #000;
		border-right: none;
	}
	
	.cta {
		display: flex;
		justify-content: space-between;
		margin: 100px 0;
	}
	.cta > div {
		width: 49%;
	}
	.cta > div:first-of-type {
		margin-bottom: 0;
	}
}





.gotop{
    display: block;
    width: 60px;
    height: 60px;
    box-sizing: border-box;
    background: #FFF;
    border: 1px solid #999;
    padding-top: 30px;
    text-align: center;
    letter-spacing: -1px;
    font-size: 85%;
    text-decoration: none;
    color: #333;
    opacity: 0.7;
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 10000;
}
.gotop::before{
    content: "";
    display: block;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    width: 25%;
    height: 25%;
    top: 25%;
    left: 0;
    right: 0;
    margin: auto;
    position: absolute;
    transform: rotate(-45deg);
}
.gotop:hover{
    opacity: 1;
}
@media(max-width:767px){
    .gotop{
        bottom: 10px;
        right: 10px;
    }
}


/* ================================
    Utility
================================ */
.sp-br
{
	display: block;
}
.pc-br
{
	display: none;
}
.pl-sp-0
{
	padding-left: 0;
}
.pr-sp-0
{
	padding-right: 0;
}
@media screen and (min-width: 768px)
{
	.sp-br
	{
		display: none;
	}
	.pc-br
	{
		display: block;
	}
	.pl-pc-0
	{
		padding-left: 0 !important;
	}
	.pr-pc-0
	{
		padding-right: 0 !important;
	}

}