		@charset "UTF-8";

/*------------------------------*/
/* 基本 */
/*------------------------------*/

* {
	margin: 0;
	padding: 0;
	list-style: none;
}

:root {
	--v-space: clamp(90px, 9vw, 120px);
}

body {
/*	margin: 0;*/
	background-color: #ffffff;
	color: #222222;
	font-family: sans-serif;
}

p {
	line-height: 1.8;
}

/* リンク：基本 */
a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	filter: brightness(150%) contrast(100%);
}

/* リンク：ボタン */
.click a:hover {
	filter: brightness(125%) saturate(80%);
	transition: all 0.3s;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}


/* 横幅と左右の余白 */
.w-container {
	width: min(92%, 1000px);
	margin: auto;
	position: relative;
}

/* ヘッダー */
.header {
	height: 112px;
	background-color: #ffffff;
}

.header-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
}

/* ナビゲーションボタン */
.navbtn {
	padding: 0;
	outline: none;
	border: none;
	background: transparent;
	cursor: pointer;
	color: #aaaaaa;
	font-size: 30px;
}

.open .navbtn {
	z-index: 110;
	color: #ffffff;
}

.navbtn .fa-bars {
	display: revert;
}

.open .navbtn .fa-bars {
	display: none;
}

.navbtn .fa-times {
	display: none;
}

.open .navbtn .fa-times {
	display: revert;
}

@media (min-width: 768px) {
	.navbtn {
		display: none;
	}
}

/* ナビゲーションメニュー：モバイル */

@media (max-width: 767px) {
	.nav {
		position: fixed;
/* 		inset: 0 -100% 0 100%; */
        top: 0;
        left: 100%;
        width: 100%;
        height: 100%;
		z-index: 100;
/* 		background-color: #4e483ae6; */
		background-color: #ffffff;
		opacity: 0.9;
		transition: transform 0.3s;
	}
	
	.open .nav {
		transform: translate(-100%, 0);
	}

	.open body {
		position: fixed;
		overflow: hidden;
	}

    .nav ul {
        display: flex;
        flex-direction: column;
		justify-content: center;
        align-items: center;
		height: 100%;
		gap: 48px;
/* 		color: #ffffff;*/
		color: #707070;
		line-height: 3em;
    }
   	.nav li {
		font-size: 20px;
	}

	.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after,
	.hamburger.is-active .hamburger-inner,
	.hamburger.is-active .hamburger-inner::before,
	.hamburger.is-active .hamburger-inner::after {
		background-color: #707070;
	}
}

/* ナビゲーションメニュー：PC */

@media (min-width: 768px) {
	.nav ul {
		display: flex;
/* 		gap: 40px; */
		color: #707070;
	}
	.nav li {
		margin-left: 1em;
		font-size: 14px;
	}
}

/* ヒーロー */

.hero {
	height: 240px;
	background-image: url("../img/hero2.jpg");
	background-position: center;
	background-size: cover;
}

.hero2 {
	height: 240px;
	background-image: url("../img/hero2.jpg");
	background-position: center;
	background-size: cover;
}

.hero-container {
/*	display: grid;
	justify-items: center;
	align-content: center;*/
	height: 100%;
	display:flex;
	flex-direction: column;
	justify-content:center;
	align-items:center;
}

.hero h1{
	margin-bottom: 32px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: clamp(28px,5.6vw,54px);
	min-height: 0vw;
	font-weight: 400;
	line-height: 1.3;
	text-align: center;
}

.hero2 h1{
	margin-bottom: 32px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: clamp(28px,5.6vw,54px);
	min-height: 0vw;
	font-weight: 400;
	line-height: 1.3;
	text-align: center;
}

span {
	display: inline-block;
}

.hero p{
	font-size: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
	min-height: 0vw;
	text-align: center;
}

.hero2 p{
	font-size: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
	min-height: 0vw;
	text-align: center;
}

h1 {
	 font-feature-settings: "palt";
	letter-spacing: 0.05em;
}

/* ボタン */

.btn {
	display: block;
	margin: 40px auto 0;
	width: 320px;
	padding: 12px;
	box-sizing: border-box;
	border-radius: 4px;
	background-color: #2e8b57;
	color: #ffffff;
	font-size: 20px;
	text-align: center;
}

/* PC設定（ヒーロー） */
@media (min-width: 768px) {
.hero {
	height: 360px;
	background-image: url("../img/hero2.jpg");
	background-position: center;
	background-size: cover;
}

.hero2 {
	height: 240px;
	background-image: url("../img/hero2.jpg");
	background-position: center;
	background-size: cover;
}
}



/*------------------------------*/
/* ここからコンテツ */
/*------------------------------*/


.posts {
	margin-top: 60px;
	}

/* PC上マージン */
@media (min-width: 768px) {
.posts {
	margin-top: 120px;
/*-	padding: clamp(0px, 9vw, 0px) 0;*/
	}
}

.posts_w {
	margin-top: 100px;
	padding:  60px 0px;
	background-color: #f5f5f5;
}

.posts-container {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 60px 30px;
}

/* 事業内容 */

.heading {
	margin-bottom: 28px;
	font-size: clamp(28px, 4vw, 46px);
	min-height: 0vw;
	font-weight: 300;
	text-align: center;
	letter-spacing: 0.5em;
	text-indent: 0.5em;
}

.heading span {
	display: block;
	color: #666666;
	font-size: clamp(16px, 2vw, 24px);
	min-height: 0vw;
	font-weight: 200;
	letter-spacing: 0.1em;
	text-indent: 0.1em;
}

/* PCのgrid設定 */
@media (min-width: 768px) {
.posts-container{
	grid-template-columns: repeat(3, 1fr);
	gap: 80px 80px;
	}
}

/* 事業内容のアイコン */

.post a {
	display: block;
}

.post img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	width: 100%;
}

@supports not (aspect-ratio: 3 / 2) {
	.post img {
		margin: 0 auto;
		height: 200px;
		width: 200px;
	}
}

.post h3 {
	margin: 1em 0 0.5em;
	font-size: clamp(20px, 2.7vw, 32px);
	font-weight: 300;
	min-height: 0vw;
	text-align: center;
}

/*	メイン内の文章全て*/

.post p {
/*	max-width: 20em;*/
	font-size: clamp(14px, 1.7vw, 16px);
	min-height: 0vw;
	text-align: left;
}

/*イメージテキスト*/
.imgtext {
/*		padding: var(--v-space) 0;*/
	background-color: #eeeeee;
}

.imgtext + .imgtext {
	padding-top: 0;
}

.imgtext-container {
	display: flex;
	flex-direction: column;
	gap: 0 5%;
/*			gap: clamp(45px, 6vw, 80px);*/
}

@media (min-width: 768px) {
	.imgtext-container {
		flex-direction: row;
		align-items: flex-start;
		/*align-items: center;*/

	}

	.imgtext-container.reverse {
		flex-direction: row-reverse;
	}

	.imgtext-container > .text {
		flex: 1;
		min-width: 17em;
  	}

	.imgtext-container > .img {
		flex: 2;
	}
}

/*------------------------------*/
/*会社情報テーブルの再定義*/
/*------------------------------*/
.tbl_prof {
	margin-top: 60px;
	width: 100%;
	border-collapse:collapse;
	border: 1px solid #d3d3d3;
}

.tbl_prof th {
	width: 25%;
	border: 1px solid #d3d3d3;
	padding:  20px 0px 20px 10px;
	background-color:#eeeeee;
	font-size: 14px;
	font-weight: normal;
	text-align: left;
	letter-spacing: 0.25em;
}

.tbl_prof td {
	border: 1px solid #d3d3d3;
	padding:  20px 10px 20px 10px;
	background-color:#ffffff;
	font-size: 14px;
}

.tbl_prof  ul {
	list-style-type: square;
}

/* PCのテーブル設定 */
@media (min-width: 768px) {
.tbl_prof {
	margin-top: 60px;
	width: 100%;
	border-collapse:collapse;
	border: 1px solid #d3d3d3;
}

.tbl_prof th {
	width: 25%;
	border: 1px solid #d3d3d3;
	padding:  20px 20px 20px 20px;
	background-color:#eeeeee;
	font-weight: normal;
	text-align: left;
	letter-spacing: 0.25em;
}

.tbl_prof td {
	border: 1px solid #d3d3d3;
	padding:  20px 20px 20px 20px;
	background-color:#ffffff;
}

.tbl_prof  ul {
	list-style-type: square;
}
}

/*------------------------------*/
/* Google Mapを囲う要素 */
/*------------------------------*/

#map {
  position: relative;
  width: 100%;
  height: 0;
  margin-top: 60px;
  margin-bottom: 100px;
  padding-top: 55%; /* 比率ヨコ長*/
  /* padding-top: 75%; /* 比率4:3*/
}
 
/* Google Mapのiframe */
#map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*------------------------------*/
/* フッター */
/*------------------------------*/

.footer {
	padding: 50px 0;
	background-color: #000;
	color: #ffffff;
	font-size: 14px;
}

.footer-site a {
	font-size: 24px;
}

.footer-menu p {
	margin-top: 24px;
	border-bottom: 1px solid #808080;
	font-size: 18px;
}

.footer-menu2 {
	margin-top: 8px;
	display: flex;
	flex-wrap: wrap;
	color: #e8e8e8;
	font-size: 13px;
	line-height: 1.8;
}
.footer-menu2  li {
	margin-right: 1.25em;
}

/*.footer-menu2  li:not(:last-child)::after {
	content: "｜";
}*/

.footer-copy {
	margin-top: 60px;
	font-size: 10px;
}
