@charset "utf-8";


/* =============================================================

	Base

* ============================================================= */

html {
	font-size: 93.75%; /* 15px */
}

@media screen and (min-width: 1600px) {
	html { font-size: 100%; /* 16px */ }
}
@media screen and (min-width: 1900px) {
	html { font-size: 113.33%; /* 17px */ }
}

body {
	color: #1a1a1a;
	font-family: Arial, Roboto, "Droid Sans", "游ゴシック体", "Yu Gothic", YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 1px;
	text-align: justify;
	text-justify: inter-ideograph; /* for IE */
	background-color: #fff;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
	-webkit-font-smoothing: subpixel-antialiased;
	min-width: 960px;
}

/* Source Sans Pro 700 */
.c-hero:after,
.c-number,
.c-otherlinks__txt:before,
.c-footer__pagetop,
.top-company:after,
.top-facility:after,
.top-recruit:after,
.top-others .c-otherlinks__item:after {
	font-family: 'Source Sans Pro', sans-serif;
	font-weight: 700;
}

/* Oswald 400 */
.top-hero__tag,
.top-business__item:after,
.contact-phone__number {
	font-family: 'Oswald', sans-serif;
	font-weight: 400;
}


/* Micro clearfix */
.cf:before,
.cf:after {
	content: "";
	display: table;
}
.cf:after {
	clear: both;
}

* {
	box-sizing: border-box;
	background-repeat: none;
}



/* =============================================================

	Layouts

* ============================================================= */

html, body {
	width: 100%;
	height: 100%;
}
body {
	overflow-y: scroll;
}


/* c-wrapper
--------------------------- */

.c-wrapper {
	width: 100%;
	overflow: hidden;
}


/* c-line
--------------------------- */

.c-line {
	padding-top: 1px;
	padding-bottom: 1px;
}
.c-line._gray {
	background-color: #f1f1f2;
}


/* c-container
--------------------------- */

.c-container {
	margin: 8% auto;
	width: 68%;
	max-width: 1440px;
}

.c-container._wide {
	width: 84%;
}


/* grid
--------------------------- */

.c-grids:before,
.c-grids:after {
	content: "";
	display: table;
}
.c-grids:after {
	clear: both;
}
.c-grids {
	*zoom: 1;
}

.c-grids._gap-1-5 {
	margin-left: -1.5%;
	margin-right: -1.5%;
}
.c-grids._gap-2 {
	margin-left: -2%;
	margin-right: -2%
}
.c-grids._gap-3 {
	margin-left: -3%;
	margin-right: -3%
}
.c-grids._gap-4 {
	margin-left: -4%;
	margin-right: -4%;
}
.c-grids._gap-6 {
	margin-left: -6%;
	margin-right: -6%;
}

.c-grids > * {
	float: left;
	min-height: 1px;
}
.c-grids._flip > * {
	float: right;
}

.c-grids._gap-1-5 > * {
	padding-left: 1.5%;
	padding-right: 1.5%;
}
.c-grids._gap-2 > * {
	padding-left: 2%;
	padding-right: 2%;
}
.c-grids._gap-3 > * {
	padding-left: 3%;
	padding-right: 3%;
}
.c-grids._gap-4 > * {
	padding-left: 4%;
	padding-right: 4%;
}
.c-grids._gap-6 > * {
	padding-left: 6%;
	padding-right: 6%;
}

.c-grid-1of1 {
	width: 100%;
}
.c-grid-1of2 {
	width: 50%;
}
.c-grid-1of3 {
	width: 33.333%;
}
.c-grid-2of3 {
	width: 66.666%;
}
.c-grid-1of4 {
	width: 25%;
}
.c-grid-1of5 {
	width: 20%;
}
.c-grid-2of5 {
	width: 40%;
}
.c-grid-3of5 {
	width: 60%;
}
.c-grid-sofg {
	width: 38.2%;
}
.c-grid-lofg {
	width: 61.8%;
}

.c-grids._inline > * {
	float: none;
	display: inline-block;
	vertical-align: top;
}

.c-grids._inline._m > * {
	vertical-align: middle;
}

.c-grids._flip._inline {
	direction: rtl;
}
.c-grids._flip._inline > *  {
	direction: ltr;
}


/* =============================================================

	Typography

* ============================================================= */

/* c-title-A
--------------------------- */

.c-title-A {
	color: #2c7558;
	font-size: 1.867rem;
	font-weight: 600;
	line-height: 1.6;
	text-align: center;
}

.c-title-A:after {
	content: "";
	width: 50px;
	height: 8px;
	background-color: #2c7558;
	display: block;
	margin: 3.5% auto 7%;
}


/* c-title-B
--------------------------- */

.c-title-B {
	font-size: 1.867rem;
	font-weight: 600;
	line-height: 1.6;
	text-align: center;
	position: relative;
	margin-bottom: 5%;
}

.c-title-B:before {
	content: "";
	width: 100%;
	height: 1px;
	background-color: #d0d2d3;
	position: absolute;
	top: 50%;
	left: 0;
}

.c-title-B > span {
	background-color: #fff;
	padding: 0 3em;
	position: relative;
}


/* c-txt-A
--------------------------- */

.c-txt-A {
	font-size: 1.067rem;
	line-height: 2.2;
}



/* =============================================================

	Links

* ============================================================= */

a {
	color: #1a1a1a;
	text-decoration: none;
}

.c-link-txt {
	text-decoration: underline;
}


/* c-button-A
--------------------------- */

.c-button-A {
	color: #fff;
	font-size: 0.867rem;
	font-weight: 600;
	line-height: 60px;
	display: inline-block;
	height: 60px;
	padding: 0 20px 0 50px;
	min-width: 240px;
	position: relative;
	background-color: #8bc53f;
}
.c-button-A:hover {
	background-color: #a1d957;
}

.c-button-A:before {
	content: "";
	width: 8px;
	height: 13px;
	background: url(../images/c-sprite01.png) no-repeat -350px 0;
	position: absolute;
	top: 50%;
	left: 20px;
	margin-top: -7px;
}


/* c-button-B
--------------------------- */

.c-button-B {
	color: #7c7d80;
	display: inline-block;
}

.c-button-B:hover {
	color: #1a1a1a;
	text-decoration: underline;
}

.c-button-B:before {
	content: "";
	width: 40px;
	height: 40px;
	background: url(../images/c-sprite01.png) no-repeat -550px 0;
	display: inline-block;
	vertical-align: middle;
	margin: -.1em 15px 0 0;
}


/* =============================================================

	Images

* ============================================================= */

img {
	vertical-align: middle;
	width: 100%;
	height: auto;
	display: block;
	margin: 0 auto;
}


/* c-img-ratio
<span class="c-img-ratio _r16to10"><span><img class="c-img-fit"></span></span>
--------------------------- */

.c-img-ratio {
	text-align: left;
	display: block;
	width: 100%;
	height: 0;
	padding-bottom: 61.8%; /* golden ratio */
	position: relative;
}

.c-img-ratio._r2-5to1 {
	padding-bottom: 40%;
}
.c-img-ratio._r3to2 {
	padding-bottom: 66.667%;
}



/*.c-img-ratio._r1to1 {
	padding-bottom: 100%;
}
.c-img-ratio._r2to1 {
	padding-bottom: 50%;
}
.c-img-ratio._r10to9 {
	padding-bottom: 90%;
}
.c-img-ratio._r3to2 {
	padding-bottom: 66.667%;
}
.c-img-ratio._r16to9 {
	padding-bottom: 56.25%;
}

.c-img-ratio._auto {
	height: auto;
	padding-bottom: 0 !important;
}

.c-img-ratio._full {
	height: 100%;
	padding-bottom: 0 !important;
}*/

.c-img-ratio > span {
	position: absolute;
	width: 100%;
	height: 100%;
}

.c-img-ratio._auto > span {
	position: relative;
	width: 100%;
	height: auto;
}

.c-img-ratio > * > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}



/* =============================================================

	Common

* ============================================================= */

/* c-arrow-A
--------------------------- */

.c-arrow-A:after {
	content: "";
	width: 40px;
	height: 40px;
	background: url(../images/c-sprite01.png) no-repeat -550px 0;
	display: block;
	margin: 20px auto 0;
}
.c-arrow-A._w:after {
	content: "";
	width: 40px;
	height: 40px;
	background: url(../images/c-sprite01.png) no-repeat -500px 0;
	display: block;
	margin: 20px auto 0;
}

.c-arrow-A._l:after {
	margin-left: 0;
}


/* c-dlist-A
--------------------------- */

.c-dlist-A {
	line-height: 1.8;
}

.c-dlist-A > dt {
	font-size: 0.933rem;
	color: #7c7d80;
	position: absolute;
	margin-top: .1em;
}

.c-dlist-A > dd {
	padding: 0 0 .8em 9em;
	margin-bottom: .9em;
	border-bottom: 1px solid #d0d2d3;
}
.c-dlist-A > dd:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}


/* c-flowlist
--------------------------- */

.c-flowlist__item {
	position: relative;
}

.c-flowlist__item + .c-flowlist__item {
	margin-top: 7%;
	padding-top: 7%;
	border-top: 1px solid #d0d2d3;
}

.c-flowlist__item + .c-flowlist__item:before {
	content: "";
	width: 60px;
	height: 12px;
	background-color: #fff;
	position: absolute;
	top: -6px;
	left: 50%;
	margin-left: -23px;
}
.c-flowlist__item + .c-flowlist__item:after {
	content: "";
	border: 8px solid transparent;
	border-top: 12px solid #8bc53f;
	position: absolute;
	top: -6px;
	left: 50%;
}

.c-flowlist__title {
	width: 22%;
	padding-right: 5%;
	text-align: center;
	display: inline-block;
	vertical-align: middle;
}

.c-flowlist__title .c-number {
	margin: 0 auto 15px;
}

.c-flowlist__img {
	width: 33%;
	display: inline-block;
	vertical-align: middle;
}

.c-flowlist__txt {
	width: 45%;
	padding-left: 5%;
	display: inline-block;
	vertical-align: top;
}


/* c-hero
--------------------------- */

.c-hero {
	position: relative;
	padding-bottom: 4%;
}
.c-hero._noimage {
	border-top: 1px solid #fff;
	padding-bottom: 9%;
}

.c-hero:before {
	content: "";
	width: 200px;
	height: 1px;
	background-color: #8bc53f;
	position: absolute;
	bottom: 0;
	right: 8%;
}
.c-hero:after {
	content: attr(data-etitle);
	color: #8bc53f;
	font-size: 1.133rem;
	line-height: 30px;
	background-color: #fff;
	padding-left: 40px;
	position: absolute;
	bottom: -15px;
	right: 8%;
}

.c-hero__title {
	color: #fff;
	font-size: 1.867rem;
	font-weight: 600;
	line-height: 1.4;
	width: 40%;
	max-width: 800px;
	min-width: 450px;
	height: 9vw;
	max-height: 150px;
	min-height: 100px;
	background-color: #2c7558;
	position: absolute;
	transform: translateY(-50%);
}
.c-hero._noimage > .c-hero__title {
	transform: translateY(0);
}
.c-hero__title._long {
	min-width: 550px;
}

.c-hero__title > span {
	position: absolute;
	top: 51%;
	transform: translateY(-50%);
}
.c-hero__title > span:before {
	content: "";
	width: 9vw;
	max-width: 150px;
	min-width: 100px;
	height: 10px;
	margin-right: 50px;
	display: inline-block;
}

.c-hero__title > i {
	width: 9vw;
	max-width: 150px;
	min-width: 100px;
	height: 9vw;
	max-height: 150px;
	min-height: 100px;
	position: absolute;
	left: 0;
	background-color: #8bc53f;
}

.c-hero__title > i:after {
	content: "";
	width: 60px;
	height: 60px;
	background: url(../images/c-sprite01.png) no-repeat;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.c-hero__title._business > i:after {
	background-position: -200px -50px;
}
.c-hero__title._about > i:after {
	background-position: -300px -50px;
}
.c-hero__title._csr > i:after {
	background-position: -400px -50px;
}
.c-hero__title._quality > i:after {
	background-position: -100px -150px;
}
.c-hero__title._recruit > i:after {
	background-position: -200px -150px;
}
.c-hero__title._contact > i:after {
	background-position: -300px -150px;
}
.c-hero__title._sitemap > i:after {
	background-position: -400px -150px;
}



/* c-island
--------------------------- */

.c-island {
	background-color: #fff;
	padding: 10% 11%;
}


/* c-lead
--------------------------- */

.c-lead__txt {
	margin: 0 5%;
}

.c-grid-1of2 .c-lead__txt {
	margin: 0 10%;
}


/* c-list-A
--------------------------- */

.c-list-A > li {
	line-height: 1.8;
	padding-left: 1.2em;
	position: relative;
}
.c-list-A._uline > li {
	padding: .6em .5em .9em 2em;
	border-bottom: 1px solid #d0d2d3;
}

.c-list-A > li:before {
	content: "";
	width: 8px;
	height: 8px;
	background-color: #d0d2d3;
	border-radius: 50%;
	position: absolute;
	top: .65em;
	left: 0;
}
.c-list-A._uline > li:before {
	top: 1.25em;
	left: .8em;
}

.c-list-A > li + li {
	margin-top: .5em;
}


/* c-number
--------------------------- */

.c-number {
	color: #fff;
	font-size: 1.333rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 44px;
	text-align: center;
	display: block;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background-color: #8bc53f;
}


/* c-otherlinks
--------------------------- */

.c-otherlinks._business,
.c-otherlinks._about,
.c-otherlinks._sustainability {
	margin-top: 17%;
	position: relative;
}

.c-otherlinks._business:before,
.c-otherlinks._about:before,
.c-otherlinks._sustainability:before {
	content: "";
	width: 60px;
	height: 60px;
	background: url(../images/c-sprite01.png) no-repeat;
	position: absolute;
	top: -80px;
	left: 50%;
	margin-left: -30px;
}
.c-otherlinks._business:before {
	background-position: -500px -50px;
}
.c-otherlinks._about:before {
	background-position: -500px -150px;
}
.c-otherlinks._sustainability:before {
	background-position: -600px -50px;
}


.c-otherlinks__item {
	display: block;
	position: relative;
}

.c-otherlinks__item:hover .c-img-ratio,
.c-otherlinks__item._active .c-img-ratio {
	background-color: #2c7558;
}

.c-otherlinks__item:hover .c-img-ratio > span {
	opacity: 0.3;
}
.c-otherlinks__item._active .c-img-ratio > span {
	opacity: 0;
}

.c-otherlinks__txt {
	color: #fff;
	text-align: center;
	padding: 0 8%;
	width: 100%;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.c-otherlinks__item._active .c-otherlinks__txt {
	opacity: 0.7;
}

.c-otherlinks__txt:before {
	content: attr(data-etitle);
	display: block;
}
.c-otherlinks .c-arrow-A:after {
	margin-top: 10px;
}


/* c-photolist
--------------------------- */

.c-photolist figcaption {
	color: #fff;
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.6;
	text-align: center;
	background-color: #2c7558;
	padding: 15px 10px;
}

.c-photolist figure + p {
	margin-top: 15px;
}



/* c-stickout
--------------------------- */

.c-stickout {
	margin-left: -12%;
	margin-right: -12%;
}



/* =============================================================

	c-style

* ============================================================= */


.c-lh-14 { line-height: 1.4; }
.c-lh-16 { line-height: 1.6; }
.c-lh-18 { line-height: 1.8; }
.c-lh-20 { line-height: 2; }
.c-lh-22 { line-height: 2.2; }

.c-fs-13 { font-size: 0.867rem; }
.c-fs-14 { font-size: 0.933rem; }
.c-fs-16 { font-size: 1.067rem; }
.c-fs-18 { font-size: 1.2rem; line-height: 1.8; }
.c-fs-24 { font-size: 1.6rem; line-height: 1.6; }
.c-fs-28 { font-size: 1.867rem; line-height: 1.6; }

.c-tal-l { text-align: left; }
.c-tal-r { text-align: right; }
.c-tal-c { text-align: center; }


.c-tcl-gr1, .c-tcl-gr1 a { color: #2c7558; }
.c-tcl-gr2, .c-tcl-gr2 a { color: #8bc53f; }
.c-tcl-gray, .c-tcl-gray a { color: #7c7d80; }
.c-tcl-gray2, .c-tcl-gray2 a { color: #afafb2; }

strong, em, .c-fw-b { font-weight: 600; }

.c-mb-0 { margin-top: 0 !important; }
.c-mb-5 { margin-bottom: .375vw; }
.c-mb-10 { margin-bottom: .75vw; }
.c-mb-15 { margin-bottom: 1.125vw; }
.c-mb-20 { margin-bottom: 1.5vw; }
.c-mb-30 { margin-bottom: 2.25vw; }
.c-mb-40 { margin-bottom: 3vw; }
.c-mb-50 { margin-bottom: 3.75vw; }
.c-mb-60 { margin-bottom: 4.5vw; }
.c-mb-70 { margin-bottom: 5.3vw; }
.c-mb-80 { margin-bottom: 6.1vw; }
.c-mb-90 { margin-bottom: 6.85vw; }
.c-mb-100 { margin-bottom: 7.6vw; }
.c-mb-120 { margin-bottom: 10vw; }


.c-relative { position: relative !important; }
.c-static { position: static !important; }

.c-hidden { overflow: hidden !important; }
.c-visible { overflow: visible !important; }

.c-blk { display: block; }
.c-ib { display: inline-block; }








