@charset "UTF-8";

/* index kv ---------------------------------------*/
.indexkv-wrapper {
	overflow: hidden;
	width: 100%;
	position: relative;
	margin-bottom: 50px;
}

.indexkv-wrapper::after {
	display: block;
	content: '';
	border-bottom: 40px solid #fff;
	border-right: 0px solid transparent;
	border-left: 100vw solid transparent;
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 10;
}

.indexkv {
	position: relative;
	margin: 0 auto;
	z-index: 10;
}

.indexkv img {width: 100%;}

.indexkv-inner {
	position: absolute;
	left: 100px;
	bottom: 100px;
	width: calc(100% - 230px);
	z-index: 20;
	color: #fff;
}

.indexkv-title {
	font-size: 20px;
	line-height: 1.6;
	margin-bottom: 20px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.indexkv-lead {
	width: 865px;
	margin-bottom: 40px;
}

.indexkv-lead img {width: 100%;}

.indexkv-entry {
	position: absolute;
	right: 1px;
	top: 30px;
	z-index: 10;
}

.indexkv-entry a {
	display: block;
	width: 190px;
	font-size: 20px;
	text-align: center;
	padding: 15px 0;
	font-weight: bold;
	background: #fff;
	color: #26A79C;
	transition: all .25s ease;
    font-family: 'Roboto', sans-serif;
        letter-spacing: 0.06em;
}

.indexkv-entry a:hover {
	opacity: 0.7;
}

.indexkv-entry a::after {
	display: block;
	content: '';
	background: url('../img/index/entry_arrow.svg') no-repeat left top;
	background-size: 100%;
	width: 13px;
	height: 16px;
	position: absolute;
	right: 40px;
	top: 50%;
	transform: translate(0, -50%);
}

/* animation */

.indexkv-title,
.indexkv-lead{
	transition: all 1.25s ease;
	opacity: 0;
	transform: translate(0,15px);
}

.is-active .indexkv-lead{transition-delay: 0.5s}
.is-active .indexkv-title{transition-delay: 1s}

.is-active .indexkv-title,
.is-active .indexkv-lead{
	opacity: 1;
	transform: translate(0,0);
}



/* amnimation common ---------------------------------------*/

.indexgreeting .animation,
.ourbusiness-head.animation,
.ourbusiness-body .animation,
.indexvoice .animation,
.indexculture .animation,
.indexphilosophy .animation,
.indexbrands .animation,
.indexjob .animation,
.indexgallery .animation{
	transition: all 0.75s ease;
	opacity: 0;
	transform: translate(0,20px);
}

.indexgreeting .animation.on,
.ourbusiness-head.animation.on,
.ourbusiness-body .animation.on,
.indexvoice .animation.on,
.indexculture .animation.on,
.indexphilosophy .animation.on,
.indexbrands .animation.on,
.indexjob .animation.on,
.indexgallery .animation.on{
	opacity: 1;
	transform: translate(0,0px);
}

/* index greeting ---------------------------------------*/

.indexgreeting {
	padding: 102.5px 50px 60px 0;
	color: #fff;
	position: relative;
}

.indexgreeting-scroll {
	position: absolute;
	right: 15px;
    top: 45px;
	width: 23px;
	height: 180px;
	z-index: 5;
	overflow: hidden;
}

.indexgreeting-scroll p {
	position: absolute;
	left: 20px;
	top: 0;
	transform-origin: left top;
	transform: rotate(90deg);
	color: #fff;
    font-family: 'Roboto', sans-serif;
	font-size: 12px;
}

.indexgreeting-scroll-line {
	display: block;
	content: '';
	width: 3px;
	height: 60px;
	position: absolute;
	left: 10px;
	top: 60px;
	overflow: hidden;
}

.indexgreeting-scroll-line::after{
	display: block;
	content: '';
	animation:scroll_action 1.7s linear 0s infinite normal;
	background: #fff;
	width: 1px;
	height: 60px;
}

@keyframes scroll_action {
  0% {
    transform: translateY(-100%)
  }

  60% {
    transform: translateY(100%)
  }

  100% {
    transform: translateY(110%)
  }
}

.indexgreeting-scroll img {
	position: absolute;
	left: 0;
	bottom: 0;
}

.indexgreeting::after {
	display: block;
	content: '';
	background: linear-gradient(90deg, rgba(19,174,103,1) 0%, rgba(36,169,157,1) 100%, rgba(0,0,0,1) 100%);
	background-size: 100%;
	width: calc(100% - 100px);
	height: 100%;
	position: absolute;
	right: 0px;
	top: 0;
}

.indexgreeting-inner {
	max-width: 1300px;
	position: relative;
	z-index: 5;
}

.indexgreeting-title {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
	font-size: 21px;
	font-weight: bold;
	line-height: 1;
	margin-bottom: 40px;
	padding-top: 32.5px;
}

.indexgreeting-title img {
	width: 263px;
	margin-right: 20px;
}

.indexgreeting-body {position: relative;}

.indexgreeting-image {
	width: 62.5%;
	position: absolute;
	left: 0;
	top: 0;
}

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

.indexgreeting-detail {
	margin-left: 62%;
	width: 38%;
	padding-left: 60px;
}

.indexgreeting-detail-title {
	font-size: 25px;
	line-height: 1.6;
	font-weight: bold;
	margin-bottom: 20px;
}

.indexgreeting-detail-text {
	font-size: 16px;
	line-height: 1.8;
	margin-bottom: 50px;
}

.indexgreeting-detail-sign {
	margin-top: 30px;
	font-size: 16px;
	line-height: 1;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
}

.indexgreeting-detail-sign p {font-size: 18px;
    top: 2px;
    position: relative;}

.indexgreeting-detail-sign h4 {
	font-size: 20px;
	margin-left: 20px;
}

/* ourbusiness ---------------------------------------*/
.ourbusiness {padding: 90px 0 15px;}

.ourbusiness-head {padding: 0 30px 15px;}

.ourbusiness-title {
	font-size: 20px;
	font-weight: bold;
	line-height: 1.8;
	letter-spacing: 0.03em;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
	max-width: 1140px;
	margin: 0 auto;
}

.ourbusiness-title img {
	display: block;
	margin-bottom: 10px;
	width: 487px;
	margin-right: 30px;
}

.ourbusiness-block {
	position: relative;
	margin-bottom: 75px;
	overflow: hidden;
}

.ourbusiness-block:nth-child(2n + 1) {padding-left: 200px;}

.ourbusiness-block:nth-child(2n) {padding-right: 200px;}

.ourbusiness-block-inner {
	position: relative;
	z-index: 2;
	padding-top: 40px;
}

.ourbusiness-block:nth-child(3) .ourbusiness-block-inner{padding-top: 57.5px;}

.ourbusiness-image {
	width: 60%;
	position: absolute;
	top: 0;
	z-index: 5;
}

.ourbusiness-block:nth-child(2n + 1) .ourbusiness-image {right: 0;}

.ourbusiness-block:nth-child(2n) .ourbusiness-image {left: 0;}

.ourbusiness-body {
	width: clamp(469px,36vw,600px);
	padding: 62.5px 65px 95px 57.5px;
	position: relative;
}

.ourbusiness-block:nth-child(3) .ourbusiness-body {
	padding: 62.5px 65px 70px 57.5px;
}

.ourbusiness-body::before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
}

.ourbusiness-block:nth-child(2n + 1) .ourbusiness-body::before {
	left: -50px;
	border-top: 650px solid #efeeed;
	border-right: 50px solid transparent;
	border-left: 50px solid transparent;
}

.ourbusiness-block:nth-child(2n) .ourbusiness-body::before {
	right: -50px;
	border-top: 650px solid #ededed;
	border-right: 50px solid transparent;
	border-left: 50px solid transparent;
}

.ourbusiness-body::after {
	display: block;
	content: '';
	background: #efeeed;
	background-size: 100%;
	width: calc(100% + 300px);
	height: 100%;
	position: absolute;
	top: 0;
}

.ourbusiness-block:nth-child(2n + 1) .ourbusiness-body::after {left: 0;}

.ourbusiness-block:nth-child(2n) .ourbusiness-body::after {
	right: 0;
	background: #ededed;
}

.ourbusiness-body-inner {
	position: relative;
	z-index: 2;
}

.ourbusiness-block:nth-child(2n) .ourbusiness-body {margin-left: 60%;}

.ourbusiness-body-shouldar {
	position: relative;
	text-align: right;
	padding-right: 12.5px;
	margin-bottom: 20px;
}

.ourbusiness-body-shouldar::before {
	display: block;
	content: '';
	background: #000;
	background-size: 100%;
	width: calc(100% - 225px);
	height: 1px;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translate(0, -50%);
}

.ourbusiness-body-shouldar dl {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	flex-wrap: wrap;
}

.ourbusiness-body-shouldar dt {
	font-size: 18px;
	font-weight: 400;
	margin-right: 15px;
	color: #3EB370;
	letter-spacing: -.5px;
    font-family: 'Roboto', sans-serif;
    letter-spacing: 0.04em;
}

.ourbusiness-body-shouldar dd {font-size: 18px;font-family: 'Roboto', sans-serif;font-weight: 300;}


.ourbusiness-body-title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}

.ourbusiness-body-title b {
	font-size: 80px;
	font-weight: 300;
	width: 100px;
	color: #3EB370;
    font-family: 'Roboto', sans-serif;
    
}

.ourbusiness-body-title h3 {
	width: calc(100% - 105px);
    font-weight: 700;
    font-size:clamp(17px,1.37vw,21px);
    line-height: 1.4;
    letter-spacing: 0.03em;
}

.ourbusiness-body-text {}

.ourbusiness-body-text p {
	font-size: 16px;
	line-height: 1.8;
    margin-top: 10px;
}


/* 個別animation */

.ourbusiness-image{
	transition: all 0.75s ease;
	opacity: 0;
}
.ourbusiness-block:nth-child(2n + 1) .ourbusiness-image{transform: translate(-20px, 0);}
.ourbusiness-block:nth-child(2n) .ourbusiness-image{transform: translate(20px, 0);}
.ourbusiness-block:nth-child(2n + 1) .ourbusiness-image.animation.on,
.ourbusiness-block:nth-child(2n) .ourbusiness-image.animation.on{
	transform: translate(0, 0);
	opacity: 1;
}

/* index voice ---------------------------------------*/

.indexvoice {
	background: linear-gradient(90deg, rgba(19,174,103,1) 0%, rgba(36,169,157,1) 100%, rgba(0,0,0,1) 100%);
	position: relative;
	padding: 135px 30px 155px;
}

.indexvoice-bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
}

.indexvoice-inner {
	position: relative;
	max-width: 1040px;
	margin: 0 auto;
}

.indexvoice-head {
	color: #fff;
	margin-bottom: 35px;
}

.indexvoice-shouldar {
	font-weight: 400;
	font-size: 16px;
	line-height: 1;
	letter-spacing: 1px;
	position: relative;
	margin-bottom: 50px;
    font-family: 'Roboto', sans-serif;
}

.indexvoice-shouldar::after {
	display: block;
	content: '';
	background: #fff;
	background-size: 100%;
	width: 120px;
    height: 1px;
    position: absolute;
    left: -135px;
	top: 50%;
	transform: translate(0, -50%);
}

.indexvoice-title {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
}

.indexvoice-title-image {
	width: 236px;
	margin-right: 25px;
}

.indexvoice-title-body h2 {
	font-size: 23px;
	font-weight: bold;
	line-height: 1.5;
	margin-bottom: 0px;
	letter-spacing: 0.02em;
}

.indexvoice-title-body p {
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: 2px;
}

.indexvoice-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(327px, 1fr));
    column-gap: 26px;
}

.indexvoice-list>li {
	border-radius: 15px;
	overflow: hidden;
	background: #fff;
/*	width: calc(33% - 17.5px);*/
}

.indexvoice-list>li img {width: 100%;}

.indexvoice-item-body {padding: 15px}

.indexvoice-item-body p b {
	font-size: 17px;
	font-weight: bold;
	color: #3EB370;
	margin-right: 10px;
    letter-spacing: 0.04em;
}
.indexvoice-item-body span,
.indexvoice-item-body p span {
	font-size: 14px;
	font-weight: bold;
    color: #7d7d7d;
    letter-spacing: 0.15em;
}

.indexvoice-item-body a {
	display: inline-block;
	text-decoration: underline;
	font-size: 12px;
	color: #3EB370;
}

.indexvoice-item-body a:hover {
	text-decoration: none;
}

.voicebox{
    overflow: auto;
    padding: 40px 30px;
    
}
.voicebox h4{
        margin-bottom: 0.5rem;
    margin-top: 2rem;
    line-height: 1.4;
    font-size: 20px;
    color: #3EB370;
    position: relative;
    font-weight: 700;
}
.voicebox h4:before {
    content: '';
    display: inline-block;
    background: #3EB370;
    width: 50px;
    height: 1px;
    position: relative;
    top: -8px;
    margin-right: 8px;
}
.voicebox p{
    line-height: 1.9;
    letter-spacing: 0.02em;
}
.mark {
    background: linear-gradient(transparent 60%,#f6ff5f 60%);
}
/* index culture ---------------------------------------*/

.indexculture {
	background: url('../img/index/bg_indexculture.jpg') no-repeat center center;
	background-size: cover;
	position: relative;
	padding: 117.5px 30px 80px;
}

.indexculture-bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
}

.indexculture-inner {
	position: relative;
	max-width: 1040px;
	margin: 0 auto;
}

.indexculture-head {margin-bottom: 50px;}

.indexculture-shouldar {
	font-weight: bold;
	font-size: 16px;
	line-height: 1;
	position: relative;
	margin-bottom: 62px;
}

.indexculture-shouldar::after {
	display: block;
	content: '';
	background: #000;
	background-size: 100%;
	width: 115px;
    height: 1px;
    position: absolute;
    left: -137px;
    top: 50%;
	transform: translate(0, -50%);
}

.indexculture-title {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 40px;
}

.indexculture-title-image {
	width: 294px;
	margin-right: 25px;
}

.indexculture-title-body h2 {
	font-size: 20px;
	font-weight: bold;
	line-height: 1.5;
}

.indexculture-list-wrapper {}

.indexculture-list {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}

.indexculture-list>li {
	border-radius: 15px;
	overflow: hidden;
}

.indexculture-list-image {margin-bottom: 40px;}

.indexculture-list-image img {width: 100%;}

.indexculture-detail {}

.indexculture-detail-title {
	font-size: 32px;
    line-height: 1.6;
    font-weight: bold;
    margin-bottom: 12.5px;
    color: #3EB370;
    letter-spacing: .5px;
}

.indexculture-detail-text {
	font-size: 20px;
	line-height: 1.7;
}

/* index philosophy ---------------------------------------*/
.indexphilosophy {
	background: url('../img/index/philosophy_bg.jpg') no-repeat center center;
	background-size: cover;
	position: relative;
	padding: 320px 30px 130px;
	color: #fff;
}

.indexphilosophy-inner {
	position: relative;
	max-width: 1040px;
	margin: 0 auto;
}

.indexphilosophy-head {margin-bottom: 30px;}

.indexphilosophy-shouldar {
	font-weight: bold;
	font-size: 18px;
	line-height: 1;
	position: relative;
	margin-bottom: 57.5px;
}

.indexphilosophy-shouldar::after {
	display: block;
	content: '';
	background: #fff;
	background-size: 100%;
	width: 120px;
	height: 1px;
	position: absolute;
	left: -140px;
	top: 50%;
	transform: translate(0, -50%);
}

.indexphilosophy-title {
	font-size: 27px;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 1.5px;
    font-feature-settings: "palt";
}

.indexphilosophy-detail img {max-width: 573px;}

/* index brands ---------------------------------------*/
.indexbrands {
	background: url('../img/index/bg_paper.jpg') repeat center center;
	background-size: cover;
	padding: 95px 50px;
}

.indexbrands-inner {
	max-width: 1000px;
	margin: 0 auto;
}

.indexbrands-title {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
	font-size: 20px;
	font-weight: bold;
	line-height: 1;
	margin-bottom: 27.5px;
}

.indexbrands-title img {
	max-width: 653px;
	margin-right: 20px;
}

.indexbrands-list {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.indexbrands-list>li {width: calc(33.33% - 10px);}

.indexbrands-list>li a {
	display: block;
	transition: all .25s ease;
}

.indexbrands-list>li a:hover {opacity:0.7;}

.indexbrands-item-image {position: relative;}

.indexbrands-item-body {padding-top: 5px;}

.indexbrands-item-title {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
    font-family: 'Roboto', sans-serif;
    
    letter-spacing: 0.03em;

}

/* index gallery ---------------------------------------*/
.indexgallery {
    margin-top: 2px;
}

/* index job ---------------------------------------*/
.indexjob {
	padding: 85px 50px 0px;
}

.indexjob-inner {
	max-width: 1020px;
	margin: 0 auto;
}

.indexjob-head {
	text-align: center;
	margin-bottom: 30px;
}

.indexjob-title {
	font-size: 20px;
	font-weight: bold;
	line-height: 1.1;
	margin-bottom: 55px;
	letter-spacing: 0;
}

.indexjob-title img {
	display: block;
	margin: 0 auto 10px;
	width: 357px;
}

.indexjob-subtitle {
	color: #3EB370;
	font-weight: bold;
	font-size: 25px;
	text-align: center;
	line-height: 1.5;
}

.indexjob-body {}
.tdflex{
    display: flex;
    align-items: center;
}
.indexjob-table th,
.indexjob-table td {
	border-bottom: 1px solid #aaa;
	padding: 17.5px 10px;
}
.indexjob-table td

.indexjob-table td a {display: block;}
.btn_map{
display: block;
    border: 1px solid #888;
    padding: 2px 5px;
    text-align: center;
    line-height: 1;
    font-size: 13px;
    margin-left: 10px;
}
.btn_map:hover{
    background: #3EB370;
    color: #fff;
    border: 1px solid #3EB370;
}
/* .indexjob-table tr:last-child th,.indexjob-table tr:last-child td {border-bottom: none;} */

/* .indexjob-table tr:nth-child(5) td,
.indexjob-table tr:nth-child(5) th {
	border-bottom: none;
	padding-bottom: 0px;
} */

.indexjob-table th {
	font-weight: bold;
	font-size: 15px;
	width: 135px;
	color: #3EB370;
	vertical-align: top;
	padding-left: 15px;
}

.indexjob-table td {
	font-size: 14px;
	line-height: 1.7;
}

.indexjob-btn {padding-top: 30px;}

.indexjob-btn a {
	display: inline-block;
	background: #fff;
	width: 170px;
	background: #3EB370;
	color: #fff;
	line-height: 1;
	padding: 15px 10px;
	text-align: center;
	font-weight: bold;
	font-size: 14px;
	position: relative;
	transition: all .25s ease;
}

.indexjob-btn a::after {
	display: block;
	content: '';
	background: #fff;
	background-size: 100%;
	width: 20px;
	height: 1px;
	position: absolute;
	right: 0px;
	top: 50%;
	transform: translate(0, -50%);
}

/* index form ---------------------------------------*/
.indexform {padding: 110px 50px 180px;}

.indexform-inner {
	max-width: 1000px;
	margin: 0 auto;
}

.indexform-head {
	margin-bottom: 30px;
	text-align: center;
}

.indexform-title {
	font-size: 20px;
	font-weight: bold;
	line-height: 1.6;
	letter-spacing: 0.1em;
}

.indexform-title img {
	display: block;
	margin-bottom: 10px;
	width: 244px;
	margin-right: 30px;
	margin: 0 auto;
}

.indexform-table {}

.indexform-table th,
.indexform-table td {
   border-top: 1px solid rgb(170 170 170 / 36%);
   padding: 20px 0;
}

.indexform-table tr:first-child th,
.indexform-table tr:first-child td,
.indexform-table tr:last-child th,
.indexform-table tr:last-child td {border-top: none;}

.indexform-table th {
	width: 220px;
	font-weight: bold;
	font-size: 16px;
	line-height: 1.4;
	vertical-align: top;
}

.indexform-table th small {
	display: block;
	font-size: 12px;
	color: #808080;
}

.indexform-table td {padding-right: 17.5%;}

.must {
	color: #3EB370;
	margin-left: 5px;
}

/* form area ---------------------------------------*/
.form-area .submit {text-align: center;}

.form-nameflex {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.form-nameflex-title {
	width: 17.5%;
	color: #4d4d4d;
	font-size: 14px;
	line-height: 1.4;
	font-weight: 600;
}

.form-nameflex-title.is-right {padding:0px 17px;}

.form-nameflex-content {width: 30%;}

.form-select {
	padding: 2.5px 5px;
    width: 87%;
}

select::-ms-expand {display: none;}

.form-text {
	padding: 10px 15px;
	border: 1px solid #aaa;
	width: 100%;
	box-sizing: border-box;
	-webkit-appearance: none;
	outline: none;
	border-radius: 0;
}

.form-text.w95{
	width: 95%;
}

.form-textarea {
	padding: 10px 15px;
	border: 1px solid #999;
	width: 100%;
	box-sizing: border-box;
	height: 180px;
	-webkit-appearance: none;
	outline: none;
	border-radius: 0;
}

::placeholder {color: #eee;}

.form-content-notice {
    font-size: 12px;
    letter-spacing: 1.5px;
    line-height: 1.5;
    font-weight: 500;
    padding-top: 4px;
}

.indexform-table tr.indexform-table-submit td{padding-top: 40px;}

.submit-lead {
	font-size: 16px;
	font-weight: bold;
	line-height: 1.6;
	font-weight: bold;
	margin-bottom: 10px;
	letter-spacing: 2px;
}
.submit{
    	display: inline-block;
	min-width: 212.5px;
	padding: 12px 24px;
	border: 1px solid #3EB370;
	background-color: #3EB370;
	line-height: 1.1;
	letter-spacing: normal;
	text-align: center;
	color: #ffffff;
	font-weight: 600;
	cursor: pointer;
	position: relative;
	transition: all .25s ease;
}
/*
.submit {
	display: inline-block;
	min-width: 212.5px;
	padding: 12px 24px;
	border: 1px solid #3EB370;
	background: linear-gradient(90deg, rgba(19,174,103,1) 0%, rgba(36,169,157,1) 100%, rgba(0,0,0,1) 100%);
	line-height: 1.1;
	letter-spacing: normal;
	text-align: center;
	color: #ffffff;
	font-weight: 600;
	cursor: pointer;
	position: relative;
	transition: all .25s ease;
}
*/

.submit:hover {
    background: #fff;
    color: #3EB370;
}

.submit::after {
	content: '';
	position: absolute;
	right: 15px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: translate(0, -50%) rotate(45deg);
}

.indexform-table-submit td {padding-top: 15px;}

/* error ---------------------------------------*/

select.error,input.error {border: 1px solid #c80000;}

p.error,.error {
	color: #c80000;
	padding-top: 8px;
	line-height: 1.1;
    display: block;
}
label.error{
    
    font-size: clamp(11px,1.4vw,14px);
}
/* small pc */
@media screen and (min-width: 981px) and (max-width: 1300px) {
	.indexgreeting-image {width: 50%;}

	.indexgreeting-detail {
		margin-left: 50%;
		width: 50%;
		max-width: 429px;
		padding-left: 50px
	}

	.ourbusiness-block:nth-child(2n + 1) {padding-left: 100px}
	.ourbusiness-block:nth-child(2n) {padding-right: 100px}
	.ourbusiness-image {width: 55%;}

	.ourbusiness-body {
		width: 45%;
		padding: 30px;
	}
}

@media screen and (max-width: 980px) {
    
    #id-indexgreeting,
    #id-business,
   #id-voice,
    #id-culture,
    #id-philosophy,
    #id-joblist,
    #id-entry{
        margin-top: -64px!important;
        padding-top: 64px!important;
    }
	/* index kv ---------------------------------------*/
	.indexkv-wrapper {
		margin-bottom: 17.5px;
		padding-top: 65px;
	}

	.indexkv-wrapper::after {border-bottom: 15px solid #fff;}

	.indexkv {}

	.indexkv img {}

	.indexkv-inner {
		position: absolute;
		left: 20px;
		bottom: 30px;
		width: calc(100% - 40px);
	}

	.indexkv-title {
		font-size: 17px;
		margin-bottom: 0px;
            line-height: 1.4;
	}

	.indexkv-lead {width: 280px;}

	.indexkv-entry {
		right: 0px;
		top: 87.5px;
	}

	.indexkv-entry a {
		width: 110px;
		font-size: 14px;
		padding: 8px 8px 8px 0;
	}

	.indexkv-entry a::after {
		width: 10px;
		height: 15px;
		right: 10px;
	}

	/* index greeting ---------------------------------------*/

	.indexgreeting {
		padding: 0px 0px 40px 0;
		position:relative;
	}
    .indexgreeting-head{
        padding-top: 10px;
    }
	.indexgreeting::before {
		display: block;
		content: '';
		border-bottom: 20px solid #fff;
		border-left: 0px solid transparent;
		border-right: 100vw solid transparent;
		position: absolute;
		left: 0;
		bottom: 0;
		z-index: 10;
	}

	.indexgreeting-scroll {
		right: 15px;
		top: 20px;
		width: 18px;
		height: 135px;
	}

	.indexgreeting-scroll p {
		left: 18px;
		font-size: 10px;
		transform: scale(.8)rotate(90deg);
	}

	.indexgreeting-scroll-line {
		height: 50px;
		left: 10px;
		top: 40px;
	}
	.indexgreeting-scroll-line::after{height:50px;}

	.indexgreeting-scroll img {}

	.indexgreeting::after {
		width: 100%;
		background: linear-gradient(180deg, rgba(19,174,103,1) 0%, rgba(36,169,157,1) 100%, rgba(0,0,0,1) 100%);
	}

	.indexgreeting-inner {}

	.indexgreeting-title {
		font-size: 14px;
		margin-bottom: 10px;
		margin-left: 35px;
		padding-top: 0px;
	}

	.indexgreeting-title img {
		width: 130px;
		margin-right: 10px;
	}

	.indexgreeting-body {position: relative;}

	.indexgreeting-image {
		width: 78%;
		position: relative;
		margin-bottom: 10px
	}

	.indexgreeting-detail {
		margin-left: 0;
		width: auto;
		padding: 0 30px;
	}

	.indexgreeting-detail-title {
		font-size: 18px;
    line-height: 1.3;
		margin-bottom: 5px;
	}

	.indexgreeting-detail-text {
		font-size: 11.5px;
		line-height: 1.8;
		margin-bottom: 15px;
	}

	.indexgreeting-detail-sign {
		margin-top: 15px;
		font-size: 14px;
	}

	.indexgreeting-detail-sign p {font-size: 14px;}

	.indexgreeting-detail-sign h4 {
		width: 107.5px;
    	margin-left: 14px;
	}


	/* ourbusiness ---------------------------------------*/

	.ourbusiness {
		padding: 15px 0;
		position: relative;
		overflow: hidden;

	}

	.ourbusiness::before {
		display: block;
		content: '';
		border-left: 100vw solid #fff;
		border-top: 20px solid transparent;
		border-right: 0px solid transparent;
		position: absolute;
		left: 0px;
		top: -20px;
	}

	.ourbusiness-head {
		padding: 0 20px 10px 40px;
	}

	.ourbusiness-title {font-size:clamp(14.5px,1.6vw,16px);}

	.ourbusiness-title img {
		margin-bottom: 0px;
		width: 260px;
        margin-right: clamp(10px,1vw,20px);
	}

	.ourbusiness-block {margin-bottom: 20px;}

	.ourbusiness-block:nth-child(2n + 1) {padding-left: 50px;}

	.ourbusiness-block:nth-child(2n) {padding-right: 50px;}

	.ourbusiness-block-inner {padding-top: 0px;}

	.ourbusiness-image {
		width: auto;
		position: relative;
		margin-bottom: 5px
	}

	.ourbusiness-body {
		width: auto;
		border: 1px solid #ededec;
	}

	.ourbusiness-block:nth-child(3) .ourbusiness-block-inner {padding-top: 0px;}

	.ourbusiness-block:nth-child(2n + 1) .ourbusiness-body {padding: 27px 0px 30px 20px;}

	.ourbusiness-block:nth-child(2n) .ourbusiness-body {padding: 27px 20px 20px 0px;}

	.ourbusiness-body::before {
		display: block;
		content: '';
		position: absolute;
		top: -1px;
	}

	.ourbusiness-block:nth-child(2n + 1) .ourbusiness-body::before {
		left: -30px;
		border-top: 650px solid #ededec;
		border-right: 30px solid transparent;
		border-left: 30px solid transparent;
	}

	.ourbusiness-block:nth-child(2n) .ourbusiness-body::before {
		right: -30px;
		border-top: 630px solid #efefed;
		border-right: 30px solid transparent;
		border-left: 30px solid transparent;
	}

	.ourbusiness-body::after {
		width: 100%;
		height: 100%;
	}

	.ourbusiness-body-inner {}

	.ourbusiness-block:nth-child(2n) .ourbusiness-body {margin-left: 0;}

	.ourbusiness-body-shouldar {
		position: relative;
		text-align: right;
		margin-bottom: 7.5px;
	}

	.ourbusiness-block:nth-child(2n + 1) .ourbusiness-body-shouldar {padding-right: 45px}

	.ourbusiness-block:nth-child(2n) .ourbusiness-body-shouldar {
		margin-left: 30px;
		padding-right: 0px;
	}

	.ourbusiness-block:nth-child(2n) .ourbusiness-body-shouldar::before {
		width: calc(100% - 160px);
	}

	.ourbusiness-body-shouldar::before {
		width: calc(100% - 200px);
    	left: 10px;
	}

	.ourbusiness-body-shouldar dl {
		display: flex;
		justify-content: flex-end;
		align-items: center;
		flex-wrap: wrap;
	}

	.ourbusiness-body-shouldar dt {
        font-size: 12px;
        font-weight: 400;
        margin-right: 10px;
        letter-spacing: 0.04em;
	}

	.ourbusiness-body-shouldar dd {font-size: 12px;}

	.ourbusiness-body-title {
        margin-bottom: 5px;
    }

	.ourbusiness-block:nth-child(2n) .ourbusiness-body-title {margin-left: 30px}

	.ourbusiness-body-title b {
		font-size: 48px;
		width: 65px;
	}

	.ourbusiness-body-title h3 {
		width: calc(100% - 65px);
		font-size: 16px;
		line-height: 1.3;
	}

	.ourbusiness-body-text {
		padding-right: 30px;
	}

	.ourbusiness-block:nth-child(2n) .ourbusiness-body-text {
		margin-left: 30px;
		padding-right: 0px;
	}

	.ourbusiness-body-text p {
        font-size: 11.5px;
        line-height: 1.7;
        margin-top: 10px;
	}

	.ourbusiness-block:nth-child(2n + 1) .ourbusiness-image{transform: translate(0, 0);}
	.ourbusiness-block:nth-child(2n) .ourbusiness-image{transform: translate(0, 0);}


	/* index voice ---------------------------------------*/

	.indexvoice {
		padding: 30px 15px 1px;
		position:relative;
		z-index: 3;
	}

	.indexvoice-bg {
		top: 32px;
		overflow: hidden;
	}

	.indexvoice-bg img{
		width: 110%;
		display: block;
		margin: 0 auto;
   		max-width: 110%;
	}

	.indexvoice-inner {position: relative;}

	.indexvoice-head {margin-bottom: 15px;}

	.indexvoice-shouldar {
		font-size: 11px;
		margin-bottom: 20px;
	}

	.indexvoice-shouldar::after {
		width: 30px;
		left: -35px;
	}

	.indexvoice-title {flex-wrap: nowrap;}

	.indexvoice-title-image {
		width: 125px;
		margin-right: 10px;
	}

	.indexvoice-title-body h2 {
		font-size: 16px;
		margin-bottom: 0px;
		white-space: nowrap;
	}

	.indexvoice-title-body p {font-size: 13px;}

	.indexvoice-title-lead {
		padding-top: 10px;
		font-size: 12.5px;
    line-height: 1.3;
	}

/*	.indexvoice-list {display: block}*/

	.indexvoice-list>li {
		border-radius: 15px;
		width: auto;
		margin-bottom: 20px
	}

	.indexvoice-list>li img {width: 100%;}

	.indexvoice-item-body {padding: 15px 10px 15px 20px;}

	.indexvoice-item-body p b {
		font-size: 15px;
		margin-right: 10px;
	}
.indexvoice-item-body span,
	.indexvoice-item-body p span {font-size: 12px;}

	.indexvoice-item-body a {font-size: 12px;}

	/* index culture ---------------------------------------*/

	.indexculture {
		background: url('../img/index/bg_indexculture_sp.jpg') no-repeat center center;
		background-size: 110%;
		position: relative;
		padding: 10vw 35px 20px;
		overflow: hidden;
	}

	.indexculture::after{
		display:block;
		content:'';
		background: linear-gradient(94deg, rgba(19,174,103,1) 0%, rgba(36,169,157,1) 100%, rgba(0,0,0,1) 100%);
		background-size:100%;
		width:150%;
		height:9vw;
		position:absolute;
		left:-20px;
		top:-5px;
		transform-origin: left top;
		transform: rotate(-4deg);
	}

	.indexculture-inner {}

	.indexculture-head {margin-bottom: 20px;}

	.indexculture-shouldar {display: none}

	.indexculture-title {
		display: block;
		text-align: center;
		margin-bottom: 20px;
	}

	.indexculture-title-image {
		width: 180px;
		margin: 0 auto 7.5px;
	}

	.indexculture-title-body h2 {
		font-size: 16px;
		margin-bottom: 0px;
	}

	.indexculture-list-image {margin-bottom: 12.5px;}

	.indexculture-detail {}

	.indexculture-detail-title {
		    font-size: 16px;
    margin-bottom: 5px;
    line-height: 1.4;
	}

	.indexculture-detail-text {
		    font-size: 11.5px;
    line-height: 1.8;
    margin-top: 10px;
	}

	/* index philosophy ---------------------------------------*/
	.indexphilosophy {
		background: url('../img/index/philosophy_bg_sp.jpg') no-repeat center center;
		background-size: cover;
		padding: 62px 27.5px 40px;
	}

	.indexphilosophy-inner {}

	.indexphilosophy-head {margin-bottom: 15px;}

	.indexphilosophy-shouldar {
		font-size: 10px;
		margin-bottom: 50px;
	}

	.indexphilosophy-shouldar::after {
		width: 30px;
		left: -35px;
	}

	.indexphilosophy-title {
        font-size: clamp(19px,2vw,22.5px);
    font-feature-settings: "palt";
    letter-spacing: 0.1em;
    }

	.indexphilosophy-detail img {
		max-width: 100%;
		width: 300px;
	}

	/* index brands ---------------------------------------*/
	.indexbrands {padding: 35px 35px 32.5px;}

	.indexbrands-inner {}

	.indexbrands-title {
		display: block;
		font-size: 16px;
		text-align: center;
		margin-bottom: 20px;
	}

	.indexbrands-title img {
		display: block;
		max-width: 100%;
		margin: 0 auto;
	}

	.indexbrands-list {display: block;}

	.indexbrands-list>li {
		width: auto;
		margin-bottom: 17.5px
	}

	.indexbrands-list>li a {}

	.indexbrands-item-image {}

	.indexbrands-item-body {}

	.indexbrands-item-title {font-size: 14px;}

	/* index gallery ---------------------------------------*/
	.indexgallery {}

	/* index job ---------------------------------------*/
	.indexjob {padding: 35px 35px 0;}

	.indexjob-inner {display: block;}

	.indexjob-head {
		width: auto;
		margin-bottom: 0;
	}

	.indexjob-title {
		font-size: 16px;
		text-align: center;
		margin-bottom: 15px;
	}

	.indexjob-title img {
		display: block;
		margin: 0 auto 0px;
		width: 200px;
	}

	.indexjob-subtitle {
		font-size: clamp(14px,1.5vw,15px);
		text-align: left;
		margin-bottom: 5px
	}

	.indexjob-body {width: auto;}

	.indexjob-table,
	.indexjob-table tbody,
	.indexjob-table tr,
	.indexjob-table th,
	.indexjob-table td {display: block;}

	.indexjob-table tr:not(:last-child) {margin-bottom: 20px}

	.indexjob-table th,
	.indexjob-table td {
		padding: 0px;
		border: none;
	}

	.indexjob-table th {
		font-size: 14px;
		width: auto;
		margin-bottom: 5px;
		overflow: hidden;
	}

	.indexjob-table th span {
		position: relative;
		display: inline-block
	}

	.indexjob-table th span::after {
		display: block;
		content: '';
		background: #3EB370;
		width: 100vw;
		height: 1px;
		position: absolute;
		left: calc(100% + 10px);
		top: 50%;
		transform: translate(0, -50%);
	}

	.indexjob-table td {
        font-size: 11.5px;
    text-align: justify;
    }

	.indexjob-btn {
		padding-top: 30px;
		text-align: center;
	}

	.indexjob-btn a {
		width: 160px;
		padding: 15px;
		font-size: 14px;
	}

	.indexjob-btn a::after {width: 15px;}

	/* index form ---------------------------------------*/
	.indexform {
		padding: 25px 27.5px 27.5px;
	}

	.indexform-head {margin-bottom: 10px;}

	.indexform-title {font-size: 16px;}

	.indexform-title img {
		width: 140px;
		margin: 0 auto;
	}

	.indexform-table,
	.indexform-table tbody,
	.indexform-table tr,
	.indexform-table th,
	.indexform-table td {display: block;}

	.indexform-table th,
	.indexform-table td {
		border-top: none;
		padding: 5px 10px;
		font-size: 12px;
	}

	.indexform-table tr:first-child th,
	.indexform-table tr:first-child td{border-top: 1px solid #aaa;}

	.indexform-table tr:last-child th,
	.indexform-table tr:last-child td {border-top: none;
    padding-top: 20px;}

	.indexform-table th {
		width: auto;
		font-size: 12px;
		background: #ECE5DD;
		border-top: 1px solid #aaa;
		border-right: 1px solid #aaa;
		border-left: 1px solid #aaa;
	}

	.indexform-table td {
		padding: 10px;
		border-top: 1px solid #aaa;
		border-right: 1px solid #aaa;
		border-left: 1px solid #aaa;
	}

	.indexform-table .indexform-table-submit {
		border-top: 1px solid #aaa;
		text-align: center;
	}

	.indexform-table .indexform-table-submit th {display: none}

	.indexform-table .indexform-table-submit td {border: none;}

	/* form area ---------------------------------------*/
	.form-select {width: 100%;}

	.form-text {
		padding: 5px 15px;
		font-size: 16px;
		border: none;
		background-color: #F2F2F3;
	}

	.form-text.w95 {
    width: 100%;
}

	.form-textarea {
		padding: 5px 15px;
		height: 80px;
	}

	.form-content-notice {
		font-size: 8px;
		padding-top: 5px;
	}
    .form-nameflex small{
        display: none;
    }
    .form-nameflex-content{
        width: 100%;
    }
    .form-nameflex-title.is-right {
        padding: 10px 0 0;
    }
    
	.submit-lead {
		font-size: 11px;
		text-align: center;
		margin-bottom: 15px;
        letter-spacing: 0.03em;
	}
    .form-nameflex-title {
        font-size: 12px;
    }
	.submit {
		min-width: 160px;
		padding: 12.5px 20px 10px;
		font-size: 12px;
	}

	.submit::after {
    right: 10px;
    width: 6px;
    height: 6px;
	}

	/* error ---------------------------------------*/
	select.error,
	input.error {border: 1px solid #c80000;}

	p.error {
		color: #c80000;
		padding-top: 8px;
		line-height: 1.1;
	}
}
