@charset "UTF-8";
/* ==========================================================
	file：base
	01.import
	02.基本スタイル
	03.headerスタイル
	04.footerスタイル
========================================================== */
/* ==========================================================
	01.import
========================================================== */
@import url("https://use.fontawesome.com/releases/v5.3.1/css/all.css");
@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:wght@400;700&display=swap&subset=japanese');
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,900;1,500&display=swap');
/* ==========================================================
	02.基本スタイル
========================================================== */
body {
	color: #1c1c1c;
	overflow-x: hidden;
	font-family: 'Noto Sans JP', 'YuGothic', 'Yu Gothic', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', 'Meiryo', 'ＭＳ ゴシック', sans-serif;
	font-weight: 400;
}
.roboto {
	font-family: 'Roboto', sans-serif;
	font-weight: 400;
}
.roboto.font-b {
	font-weight: bold;
}
.roboto.font-i {
	font-style: italic;
}
a {
	transition: color 0.5s;
}
a:hover {
	text-decoration: none;
}
.tel > a {
	color: #007c36;
	font-weight: bold;
}

/* ==========================================================
	03.headerスタイル
========================================================== */
.header-nav {
	width: 100%;
	position: fixed;
	top: 0;
	z-index: 100;
}
.header-logo {
	position: absolute;
	top: 15px;
	left: 15px;
	z-index: 101;
}
.header-logo svg {
	height: 45px;
}
.header-logo svg path,
.header-logo svg rect,
.header-logo svg polygon {
	fill: #007c36;
}
/* Hamburger Menu */
.hamburger-area {
	position: absolute;
	top: 28px;
	right: 20px;
	width: 42px;
	height: calc((36px *3) / 4);
	cursor: pointer;
}
.hamburger-area .menu-text {
	color: #444;
	font-size: 0.6875rem;
	position: absolute;
	top: -1.3125rem;
	right: 0;
	width: 44px;
	height: 1.0rem;
	line-height: 1.0rem;
	text-align: center;
	z-index: 100;
}
.hamburger-area.active .menu-text {
	color: #fff;
}
.menu-button {
	background: rgba(0, 0, 0, 0);
	border: 0;
	position: absolute;
	top: 0;
	right: 0;
	width: 44px;
	height: calc((36px *3) / 4);
	cursor: pointer;
	z-index: 100;
}
button.menu-button:focus {
	outline: 0;
}
.hamburger-area .menu-button b {
	position: absolute;
	left: 0;
	width: 44px;
	height: 3px;
	background-color: #666;
	transition: background-color 1.5s 0.8s;
}
.hamburger-area.active .menu-button b {
	background-color: #fff;
}
.menu-button b:nth-of-type(1) {
	top: 0;
}
.menu-button b:nth-of-type(2) {
	top: 50%;
}
.menu-button b:nth-of-type(3) {
	top: 100%;
}

/* Global Menu */
.global-nav {
	background-color: rgba(0, 0, 0, .7);
	border-bottom-left-radius: 100vh;
	position: absolute;
	top: -100%;
	right: -120%;
	width: 100%;
	height: 100vh;
	transform-origin: right top;
	opacity: 0;
}
.global-nav ul {
	padding-left: 0;
}
.navbar-nav {
	position: absolute;
	top: 15vh;
	right: -100%;
	width: 80vw;
	height: 60vh;
	list-style: none;
	display: -ms-grid;
	display: grid;
	grid-row-gap: 1.5rem;
	row-gap: 1.5rem;
	-webkit-column-gap: 1.25rem;
	grid-column-gap: 1.25rem;
	column-gap: 1.25rem;
	grid-template-areas:
		'home solution'
		'product works'
		'company recruit'
		'news contact';
	-ms-grid-rows: 1fr 1fr 1fr 1fr;
	grid-template-rows: 1fr 1fr 1fr 1fr;
	-ms-grid-columns: 1fr 1fr;
	grid-template-columns: 1fr 1fr;
}
.nav-item-home {
	-ms-grid-row: 1;
	-ms-grid-row-span: 1;
	-ms-grid-column: 1;
	grid-area: home;
}
.nav-item-solution {
	-ms-grid-row: 1;
	-ms-grid-row-span: 1;
	-ms-grid-column: 2;
	grid-area: solution;
}
.nav-item-product {
	-ms-grid-row: 2;
	-ms-grid-row-span: 1;
	-ms-grid-column: 1;
	grid-area: product;
}
.nav-item-works {
	-ms-grid-row: 2;
	-ms-grid-row-span: 1;
	-ms-grid-column: 2;
	grid-area: works;
}
.nav-item-company {
	-ms-grid-row: 3;
	-ms-grid-row-span: 1;
	-ms-grid-column: 1;
	grid-area: company;
}
.nav-item-recruit {
	-ms-grid-row: 3;
	-ms-grid-row-span: 1;
	-ms-grid-column: 2;
	grid-area: recruit;
}
.nav-item-news {
	-ms-grid-row: 4;
	-ms-grid-row-span: 1;
	-ms-grid-column: 1;
	grid-area: news;
}
.nav-item-contact {
	-ms-grid-row: 4;
	-ms-grid-row-span: 1;
	-ms-grid-column: 2;
	grid-area: contact;
}
.nav-link {
	color: #fff;
	font-family: 'Roboto', sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 0.6;
	padding: 1.0rem 0;
}
.nav-link::before {
	content: '\f068';
	font-size: 1.0rem;
	font-weight: bold;
	font-family: "Font Awesome 5 Free";
	line-height: 0.5;
	padding-right: 0.75rem;
}
.nav-link:hover {
	color: #ccc;
}
.nav-link > small {
	display: block;
	font-size: 0.75rem;
	font-weight: normal;
	padding: 1.0rem 0 2.0rem 1.5rem;
}

.sub-nav {
	list-style: none;
	position: absolute;
	bottom: 11vh;
	right: -100%;
	width: 80vw;
	height: 11vh;
}
.sub-item {
	text-align: right;
	margin-bottom: 1.0rem;
}
.sub-item .sub-link {
	color: #fff;
	font-size: 0.8125rem;
}

/* ==========================================================
	04.footerスタイル
========================================================== */
footer {
	background: linear-gradient(to bottom, rgba(54, 54, 54, 0.7), rgba(54, 54, 54, 0.7)), url('../img/common/bg-mainvisual.jpg');
	background-size: 150% auto;
	padding-top: 100px;
	position: relative;
}
.pagetop {
	position: fixed;
	margin-bottom: 0;
	width: 40px;
	height: 20px;
	bottom: 45px;
	right: 15px;
	opacity: 0;
	transform: rotate(-90deg);
	z-index: 10;
}
.pagetop a {
	color: #007c36;
	position: relative;
	display: inline-block;
	text-shadow: 1px 1px 1px rgba(122, 247, 163, 0.4);
}
.pagetop a:hover {
	color: #025024;
}
.pagetop a::before,
.pagetop a::after {
	content: '';
	background: #007c36;
	display: block;
	position: absolute;
	height: 1px;
	top: 50%;
	box-shadow: 1px 1px 1px rgba(122, 247, 163, 0.4);
	transition: background .3s ease, transform .3s ease;
}
.pagetop a::before {
	width: 36px;
	left: calc(50% + 50px);
	transition: width .3s;
}
.pagetop a::after {
	width: 10px;
	right: calc(50% - 86px);
	transform-origin: right center;
	transform: rotate(40deg);
}
.pagetop a:hover::before {
	width: 46px;
}
.pagetop a:hover::after {
	transform: translateX(10px) rotate(40deg);
}

.contact-wrap {
	background: #f2f0ea;
	text-align: center;
	padding: 50px 0;
}
.contact-ttl {
	font-size: 1.5rem;
	font-weight: bold;
	margin-bottom: 1.5rem;
}
.contact-ttl .roboto {
	color: #007c36;
	display: block;
	font-size: 1.125rem;
	font-weight: normal;
	margin-bottom: 0.75rem;
}

.address-wrap {
	background: #fff;
	padding: 50px 0;
}
.address-ttl {
	font-size: 1.5rem;
	font-weight: bold;
	margin-bottom: 1.5rem;
}
.address-ttl .roboto {
	color: #007c36;
	display: block;
	font-size: 1.125rem;
	font-weight: normal;
	margin-bottom: 0.75rem;
}
.address-wrap .address-flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.address-flex .address-inner {
	width: 100%;
	margin-bottom: 20px;
}
.address-flex .address-inner ul {
	list-style: none;
	padding-left: 0;
}
.footer-nav {
	background: #fff;
	list-style: none;
	padding-left: 0;
}
.footer-nav ul {
	margin-bottom: 0;
}
.footer-item {
	display: inline-block;
	position: relative;
	padding-bottom: 1rem;
}
.footer-item::before {
	content: '-';
	margin-right: 5px;
}
.footer-item + .footer-item {
	margin-left: 1.5rem;
}
.footer-link {
	color: #333;
	text-decoration: underline;
}
.copy {
	background: #000;
	color: #fff;
	font-size: 0.75rem;
	padding: 0.75rem 0;
	text-align: center;
}

@media (max-width: 350px) {
	/* 画面幅 350px以下 */
/* ==========================================================
	03.headerスタイル
========================================================== */
	.navbar-nav {
		position: absolute;
		top: 20vh;
		height: 60vh;
		grid-row-gap: 0.5rem;
		row-gap: 1.0rem;
	}
	.nav-link {
		padding-top: 0.5rem;
	}
	.nav-link > small {
		padding-bottom: 1.0rem;
	}
/* ==========================================================
	04.footerスタイル
========================================================== */
	.footer-item + .footer-item {
		margin-left: 1.0rem;
	}
}

@media (max-width: 550px) {
	/* 画面幅 550px以下 */
/* ==========================================================
	04.footerスタイル
========================================================== */
	.footer-item:last-of-type {
		margin-left: 0;
		display: block;
	}
	.footer-item:nth-last-child(2) {
		margin-left: 0;
		display: block;
	}
}

@media (min-width: 768px) {
	/* 画面幅 768px以上 */
/* ==========================================================
	02.基本スタイル
========================================================== */
	body {
		line-height: 1.8;
	}

/* ==========================================================
	03.headerスタイル
========================================================== */
	.header-logo {
		top: 30px;
		left: 30px;
	}
	/* Hamburger Menu */
	.hamburger-area {
		top: 50px;
		right: 30px;
	}
	.nav-link {
		font-size: 2.5rem;
		line-height: 0.8;
		padding-left: 1.5rem;
	}
	.nav-link::before {
		font-size: 2.0rem;
		line-height: 0.5;
		padding-right: 1.0rem;
	}
	.nav-link > small {
		font-size: 1.125rem;
		padding-left: 4.375rem;
	}
	.sub-item .sub-link {
		font-size: 1.125rem;
	}

/* ==========================================================
	04.footerスタイル
========================================================== */
	.pagetop {
		bottom: 55px;
		right: 50px;
	}
	.contact-ttl,
	.address-ttl {
		font-size: 1.875rem;
		margin-bottom: 2.0rem;
	}
	.contact-ttl .roboto,
	.address-ttl .roboto {
		font-size: 1.25rem;
	}
	.address-flex .address-inner {
		width: 80%;
		padding-left: 5rem;
	}
}

@media (min-width: 992px) {
	/* 画面幅 992px以上 */

/* ==========================================================
	03.headerスタイル
========================================================== */
	.navbar-nav {
		top: 20vh;
		width: 80vw;
		-webkit-column-gap: 1.875rem;
		grid-column-gap: 1.875rem;
		column-gap: 1.875rem;
		grid-template-areas:
			'home works news'
			'solution company contact'
			'product recruit non';
		-ms-grid-rows: 1fr 1fr 1fr;
		grid-template-rows: 1fr 1fr 1fr;
		-ms-grid-columns: 1fr 1fr 1fr;
		grid-template-columns: 1fr 1fr 1fr;
	}
	.nav-item-home {
		-ms-grid-row: 1;
		-ms-grid-column: 1;
	}
	.nav-item-solution {
		-ms-grid-row: 2;
		-ms-grid-column: 1;
	}
	.nav-item-product {
		-ms-grid-row: 3;
		-ms-grid-column: 1;
	}
	.nav-item-works {
		-ms-grid-row: 1;
		-ms-grid-column: 2;
	}
	.nav-item-company {
		-ms-grid-row: 2;
		-ms-grid-column: 2;
	}
	.nav-item-recruit {
		-ms-grid-row: 3;
		-ms-grid-column: 2;
	}
	.nav-item-news {
		-ms-grid-row: 1;
		-ms-grid-column: 3;
	}
	.nav-item-contact {
		-ms-grid-row: 2;
		-ms-grid-column: 3;
	}

/* ==========================================================
	04.footerスタイル
========================================================== */
	footer {
		background-attachment: fixed;
		background-size: auto 100%;
		padding-top: 200px;
	}
	.contact-wrap,
	.address-wrap {
		padding: 80px 0;
	}
	.address-flex .address-inner {
		width: 28%;
		padding-left: 0;
	}
	.address-flex .address-inner:nth-of-type(2) {
		width: 40%;
	}
}

@media (min-width: 1400px) {
	/* 画面幅 1400px以上 */

/* ==========================================================
	03.headerスタイル
========================================================== */
	.navbar-nav {
		max-width: 1200px;
	}

}