@charset "utf-8";
/* CSS Document */

/*PCのみに適用*/
@media only screen and (min-width:769px){
.PageLink {
    padding-top:40px;
	margin-top:-40px;
}	
}
/*PCのみに適用 END*/

body {
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	font-size: 17px!important;
	color:#333;
	line-height:1.8 !important;
	background:#FFF;
	overflow-y: scroll;  /*  縦スクロールバーを表示します。 */
	overflow-x: hidden;  /*  横スクロールバーを消します。 */
	height: 100%;
	letter-spacing: .1em;animation: fadeIn 2s ease 0s 1 normal;/*フワットフェードイン*/
    -webkit-animation: fadeIn 2s ease 0s 1 normal;/*フワットフェードイン*/
}

/*フワットフェードイン*/
@keyframes fadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

@-webkit-keyframes fadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

#TopPhoto,
#TopImg {
	margin-top: 120px;
	position: relative;
}

#TopImg figure {
	position: relative;
	z-index: 0;
	top: 0;
	left: 30%;
	width: 70%;
}

#TopImg figure img {
	width: 100%;
	height: auto;
}

.Text {
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  position: absolute;
  top: 50%;
  left: 8%;
  transform: translateY(-50%);
  -webkit- transform: translateY(-50%);
	z-index: 1;
	width: 92%;
}

.BigText {
  font-size: clamp(22px, 4.5vw, 60px);
  position: relative;
  color: #FFF;
  white-space: nowrap;
	z-index: 100;
	font-weight: 600;
	line-height: 1.3;
}

.BigText:before {
  content: attr(data-heading);
  overflow: hidden;
  position: absolute;
  left: 0;
  top: 0;
  width: 23.9%;
  color: #000;
}


.TopNewsBox {
	background-color: rgba(255,255,255,0.9);
	max-width: 600px;
	width: 100%;
	float: right;
	margin-right: 3%;
	display: flex;
	align-items: center;
    justify-content: space-around;
	padding: 30px;
	margin-top: -80px;
	position: relative;
	z-index: 1;
	
}

.TopNewsTitle {
	width: 35%;
	margin-right: 5%;
	text-align: center;
	
}

.TopNewsTitle h2 {
	padding-bottom: 15px;
}

.TopNewsTitle span {
	display: block;
	font-size: 0.8em;
	margin-top: -5px;
}

.TopArticle {
	padding-left: 5%;
	border-left: 1px solid #000;
}

.TopArticle article {
	display: flex;
	padding: 5px 0
}

.TopArticle article p {
	line-height: 1.5;
}

.TopArticle article time {
	padding-right: 15px;
}


.TopNewsBtn a {
	text-decoration:none;
}

.Title {
	font-size: 170%;
}

.TextBoxRight {
	float: right;
	background: #FFF;
	padding: 7% 7% 7% 15%;
	width: 52%;
	margin-left: -10%;
	margin-top: 5%;
	position: relative;
	z-index: 0;
	
	box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.1);
}

.ConceptList {
	margin-top: 8%;
}

.ConceptList img {
	width: 100%;
	height: auto;
}

.ConceptList li:last-child { 
	margin-top: 5%;
}

.PhotoLeft {
	float: left;
	width: 35%;
	position: relative;
	z-index: 1;
}

.TextBoxLeft {
	float: left;
	background: #FFF;
	padding: 7% 15% 7% 7%;
	width: 52%;
	margin-right: -10%;
	margin-top: 10%;
	position: relative;
	z-index: 0;
	
	box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.1);
}

.PhotoRight {
	float: right;
	width: 35%;
	position: relative;
	z-index: 1;
	margin-top: 5%;
}

.PhotoLeftCenter {
	display: inline-block;
	width: 55%;
	vertical-align: middle;
}

.TextBoxRightCenter {
	display: inline-block;
	width: 35%;
	margin-left: 3%;
	font-size: 110%;
	vertical-align: middle;
}

.S_Title {
	font-size: 130%;
	line-height: 1.5;
}

.BG_Gry {
	background: #F5F5F5;
	padding: 5% 0;
}

.BG_Grn {
	background: #013101;
	padding: 5% 0;
	color: #FFF;
}

.BG_Wht {
	background: #FFF;
	padding: 0 0 5%;
}

.TitleDownText {
	font-size: 1.1em;
}

.FeatureImg01 {
	position: relative;
	margin-top: 50px;
	margin-right: 50px;
}

.FeatureImg02 {
	position: relative;
	margin-top: 50px;
	margin-left: 50px;
}

.FeatureTitle {
	background-color: rgba(255,255,255,0.9);
	color: #333;
	font-size: 1.5em;
	-ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
	padding: 20px 8px;
	position: absolute;
	top: -50px;
	left: 15px;
}

.TopFeaturesList li:first-child {
	display: flex;
}

.TopFeaturesList li:last-child {
	display: flex;
	flex-direction: row-reverse;
	align-items: flex-end;
	margin-top: -170px;
}

.FeatureText {
	font-size: 1.1em ;
	margin-top: 50px;
	width: 45%;
}

.TopDesignList {
	max-width: 1200px;
	margin: 0 auto;
	width: 90%;
}

#TopDesign {
	position: relative;
}

.BgImg01 {
	background: url("../images/Vector.png") no-repeat;
	background-position: right 60%;/*右端、上から30px*/
	z-index: 0;
}

.heading {
  position: relative;
  text-align: center; /* 文字の中央寄せ */
}
.heading::before {
  background-color: #095709; /* 線の色 */
  border-radius: 5px; /* 線の両端を丸く */
  bottom: -10px; /* 線の位置 */
  content: "";
  height: 2px; /* 線の高さ */
  left: 50%; /* 線の中央寄せ */
  position: absolute;
  transform: translateX(-50%); /* 線の中央寄せ */
  width: 50px; /* 線の長さ */
}

.TopProductsAccess {
	background: url("../images/Group.png") no-repeat;
	background-position: left 0;/*右端、上から30px*/
	z-index: 0;
}

#TopAccess,
#TopProducts {
	max-width: 1200px;
	width: 90%;
	margin: 0 auto;
}

#F_BtnArea {
	background: url("../images/btn_bg.jpg") no-repeat;
	padding: 5% 0;
	color: #FFF;
	background-size:cover;
}

/* お問い合わせ メインビュー（固定ヘッダー分を内側パディングで確保し、背景を上端まで表示） */
#F_BtnArea.ContactMv {
	padding-top: 5%;
}

/* お問い合わせMV直下のフォーム説明エリア（専用クラス・他と非干渉） */
.ContactPdTop {
	padding-top: 5%;
}

#F_BtnArea ul {
	display: grid;
	grid-template-columns: repeat(2, 327px);
	gap: 16px;
	width: fit-content;
	min-width: 270px;
	margin-left: auto;
	margin-right: auto;
}

#F_BtnArea li {
	width: auto;
	max-width: 100%;
	min-width: 0;
}

#F_BtnArea .F_Btn {
	width: 100%;
}

#F_BtnArea p {
	font-size: 0.8em;
}

/* ボタン群の下の注釈テキスト：ボタン全体と同じ幅で左寄せ */
#F_BtnArea .F_BtnNote {
	width: calc(327px * 2 + 16px);
	max-width: 100%;
	margin: 24px auto 0;
	font-size: 0.8em;
	text-align: left;
}

/* ===== お問い合わせCTAボタン（共通 / footer） ===== */
.CtaBtn {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	max-width: 100%;
	min-height: 68px;
	padding: 0 24px;
	font-size: clamp(15px, 1.6vw, 24px);
	font-weight: bold;
	line-height: 1.3;
	letter-spacing: 0.1em;
	color: #fff;
	text-align: left;
	text-decoration: none;
	white-space: nowrap;
	vertical-align: top;
	transition: opacity 0.3s ease;
}

.CtaBtn:hover {
	opacity: 0.85;
	color: #fff;
}

.CtaBtnLabel {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.CtaBtnTelIcon {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}

.CtaBtnArrow {
	position: relative;
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background-color: #fff;
}

.CtaBtnArrow::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 42%;
	width: 6px;
	height: 6px;
	border-top: 2px solid;
	border-right: 2px solid;
	transform: translate(-50%, -50%) rotate(45deg);
}

/* 配色（背景＋矢印の色） */
.CtaBtn--line  { background-color: #226E12; }
.CtaBtn--mail  { background-color: #D7AB4D; }
.CtaBtn--tel   { background-color: #00435B; }
.CtaBtn--sales { background-color: #9A0000; }

.CtaBtn--line  .CtaBtnArrow::before { border-color: #226E12; }
.CtaBtn--mail  .CtaBtnArrow::before { border-color: #D7AB4D; }
.CtaBtn--tel   .CtaBtnArrow::before { border-color: #00435B; }
.CtaBtn--sales .CtaBtnArrow::before { border-color: #9A0000; }

@media only screen and (max-width: 768px) {
	.CtaBtn {
		width: 100%;
		max-width: 340px;
		min-height: 60px;
		padding: 0 16px;
		font-size: clamp(15px, 4vw, 22px);
		gap: 8px;
	}
}

.LeftBox {
	display: inline-block;
	width: 40%;
	vertical-align: middle;
}

.RightBox {
	display: inline-block;
	width: 50%;
	vertical-align: middle;
	padding-left: 5% !important;
}



.AccessDl {
	margin-top: 50px;
	font-size: 1.1em;
}

.AccessDl dt {
	font-weight: bold;
	margin-top: 20px;
}
.Map {
	width: 100%;
	height: 450px;
}
/*ボタン*/
a.Btn {
	display: block;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	width: 180px;
	padding: 0.5rem 1rem;
	font-weight: bold;
	border: 2px solid #013101;
	color: #013101;
	cursor: pointer;
	position: relative;
 	overflow: hidden;
 	z-index: 1;
}
a.Btn::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #013101;
	transform: translateX(-100%);
	transition: all .3s;
	z-index: -1;
}
a.Btn:hover::before {
	transform: translateX(0);
}
a.Btn:hover {
	color: #fff;
}

.BtnLong {
	width: 220px !important;
	margin-top: 5%;
}
/*ボタン END*/

footer {
	background: #FFF;
	padding: 0 !important;
	text-align: center;
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
}

.FotterInner {
	width: 90%;
	padding: 30px 0;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.Copy {
	font-size: 80%;
	padding: 10px;
	background: #013101;
	color: #FFF;
}



.F_nav {
	margin-top: 1%;
	text-align: center;
}

.F_nav li {
	margin: 0 15px;
	display: inline-block;
}

.F_nav li a {
	text-decoration: none;
	color: #333;
}

.F_nav li a:hover,
.TopNewsBtn a:hover {
	color: #095709;
	/*-webkit-transition: 5s;
    -moz-transition: 5s;
    -o-transition: 5s;
    -ms-transition: 5s;*/
    transition: 0.5s;
}

#TopTitle {
	position: relative;
	margin-top: 120px;
}

.TitlePhoto img {
	width: 100%;
	height: auto;
}

.TitlePhoto .Title {
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
	letter-spacing: 10px;
	text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.4);
	position: absolute;
	top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
	color: #FFF;
	font-size: 200% !important;
	width: 90%;
    margin: 0 auto;
    text-align: center;
}

#CompanyText {
	max-width: 1000px;
	width: 90%;
	margin: 0 auto;
	padding-top: 5%;
}

.disc li {
	list-style: disc;
	margin-left: 15px;
}

/* table01 */
#table01 {
	width: 100%;
}
#table01 tr {
  border-bottom: 1px solid #D4D4D4;
}

#table01 th,
#table01 td {
  padding: 24px;
  border: none;
}

#table01 td {
	vertical-align: middle;
}

#table01 th {
  width: 20%;
	padding: 24px;
}

/* sp */
@media only screen and (max-width: 768px) {
	
#table01 tr {
  border-bottom: none;
}
	
	#table01 th {
		border-top:  1px solid #D4D4D4;
		border-bottom:  1px solid #D4D4D4;
	}
	
  #table01 th,  #table01 th,
  #table01 td {
     width: 90%;
    display: block;
	  padding: 3% 5%;
  }
}
/* table01 END */

.ProductBody {
	max-width: 1200px;
	width: 80%;
	margin: 0 auto;
	padding: 5%;
	background: #F5F5F5;
}

.ProductList,
.RecruitList2 {
	display: flex;
	justify-content: space-between;
    align-items: center;
}

.ProductList figure {
	width: 40%;
	margin-right: 5%;
}

.ProductList2,
.RecruitList {
	display: flex;
	justify-content: space-between;
    align-items: center;
	flex-direction: row-reverse;
}

.ProductList2 figure {
	width: 40%;
	margin-left: 5%;
}

.ProductDetail {
	width: 55%;
}

.RecruitList .RecruitPhoto {
	width: 35%;
	margin-left: 5%;
}

.RecruitList2 .RecruitPhoto {
	width: 35%;
	margin-right: 5%;
}

.RecruitText {
	width: 60%;
}

.RecruitSub {
	color: #013101;
	font-family: "Caveat", cursive;
	transform: rotate(-7deg); 
	margin-top: -50px;
	padding-bottom: 40px;
	font-size: 17px;
}

.NumberList > li{
	list-style: decimal;
	margin-left: 25px;
}

.ABC > li {
	list-style: lower-alpha;
	margin-left: 25px;
}

.iii > li {
	list-style: lower-roman;
	margin-left: 25px;
}

.red {
	color: red;
}

.NewsTopList li {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin-top: 30px;
	padding-bottom: 30px;
	border-bottom: 2px solid #f5f5f5;
}

.NewsTopList li figure {
	width: 30%;
	padding-right: 15px;
}

.NewsTopTitle {
	width: 65%;
}

#NewsTop {
	margin: 0 auto 80px;
}

#NewsArticle {
	margin: 80px auto;
}

#NewsTop figure,
	#NewsTop p,
#NewsArticle figure,
#NewsArticle p {
		margin-top: 30px;
	}
	
	#NewsTop figure,
#NewsArticle figure {
		text-align: center;
	}

.BlogTitle {
	font-size: 1.2em;
}

/*動画100％*/
.movie {
   position: relative;
 width: 100%;
    padding-bottom: 56.25%;
}
.movie video {
    position: absolute;
	 top: 0;
	 left: 0;
    width: 100%;
    height: 100%;
}


/* ===== FV CTA（お問い合わせボタン） ===== */
/* 画面幅に応じて可変（vw+clamp）。右側ニュースとの被りを防ぐため固定pxを廃止 */
.FvCta {
	margin-top: clamp(20px, 3vw, 44px);
}

.FvCtaLead {
	width: clamp(220px, 27vw, 393px);
	max-width: 100%;
	margin: 0 0 clamp(10px, 1.3vw, 18px);
}

.FvCtaLead img {
	display: block;
	width: 100%;
	height: auto;
}

.FvCtaBtn {
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: clamp(220px, 27vw, 393px);
	max-width: 100%;
	height: clamp(52px, 4.8vw, 70px);
	padding: 0 clamp(18px, 2.8vw, 40px);
	background-color: #D7AB4D;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.FvCtaBtn:hover {
	opacity: 0.85;
}

.FvCtaBtnText {
	font-size: clamp(16px, 1.7vw, 25px);
	font-weight: 600;
	letter-spacing: 0.1em;
	color: #fff;
}

.FvCtaBtnIcon {
	position: relative;
	flex-shrink: 0;
	width: clamp(15px, 1.45vw, 21px);
	height: clamp(15px, 1.45vw, 21px);
	border-radius: 50%;
	background-color: #fff;
}

.FvCtaBtnIcon::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 42%;
	width: 6px;
	height: 6px;
	border-top: 2px solid #D7AB4D;
	border-right: 2px solid #D7AB4D;
	transform: translate(-50%, -50%) rotate(45deg);
}

@media only screen and (max-width: 768px) {
	.FvCta {
		margin-top: 24px;
	}
	/* 425px時に約65vw、最小230pxで可変。margin autoで中央寄せ */
	.FvCtaLead {
		width: clamp(230px, 65vw, 393px);
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
	.FvCtaBtn {
		width: clamp(230px, 65vw, 393px);
		max-width: 100%;
		height: clamp(54px, 16vw, 60px);
		padding: 0 clamp(16px, 5vw, 28px);
		margin-left: auto;
		margin-right: auto;
	}
	.FvCtaBtnText {
		font-size: clamp(15px, 4.3vw, 18px);
	}
	.FvCtaBtnIcon {
		width: clamp(16px, 5vw, 21px);
		height: clamp(16px, 5vw, 21px);
	}
}