@import url(https://fonts.googleapis.com/css?family=Pacifico);
@import url(http://fonts.googleapis.com/earlyaccess/notosansjp.css);
@import url(https://fonts.googleapis.com/css?family=Josefin+Sans);

/* reset */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;}
ul{list-style:none;}
table{border-collapse:collapse;border-spacing:0;}
caption,th{text-align:left;}
q:before,q:after{content:'';}
object,embed{vertical-align:top;}
legend{display:none;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
img,abbr,acronym,fieldset{border:0;}

body{
	font: 16px/1.9 'Noto Sans JP', Arial, Verdana, 游ゴシック, YuGothic,'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', メイリオ, Meiryo,sans-serif;
	font-weight: 400;
	-webkit-text-size-adjust:100%;
	overflow-x: hidden;
	color: #000;
	background: #fff;
}

.content {
    position: relative;
    z-index: 1;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
    text-align: center;
    padding-top: 20%;
}

a{
	color: #000;
	text-decoration: none;
}

a:hover, .active{
  text-decoration: underline;
}

a:active, a:focus,input:active, input:focus{outline:0;}


/* フェードインの初期スタイル */
.fade-in {
    opacity: 0;
    transform: translateY(30px); /* 下から上にフェードイン */
    transition: opacity 1s ease, transform 1s ease;
}

/* フェードインがトリガーされた状態 */
.fade-in.show {
    opacity: 1;
    transform: translateY(0); /* 元の位置に戻す */
}

/* ヘッダー
------------------------------------------------------------*/
#header {
	position: relative;
  overflow:hidden;
  width:100%;
  height:100vh;
}

#header img {
  position:absolute;
	left: 50%;
  top: 46%;
  width: 310%;
  height: auto;
  margin-left: 0;
  position: absolute;
  transform: translate(-50%, -50%);
}

/* 最初はモノクロ */
.img-color-transition {
  filter: grayscale(100%);
  animation: colorize 3s forwards; /* 3秒後にカラーに変わる */
}

/* アニメーション設定 */
@keyframes colorize {
  0% {
    filter: grayscale(100%);
  }
  80% {
    filter: grayscale(100%); /* 最初の80%の間はモノクロのまま */
  }
  100% {
    filter: grayscale(0%); /* 最後の20%で一気にカラーに */
  }
}


#slogan {
	position: absolute;
  top: 50%;
	width: 100%;
	height: 100%;
	-webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
	line-height: 1.2;
	text-align: center;
  z-index: 2;
}

 

#slogan h1{
    position:relative;
    margin-bottom: 20px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: 68px;
    overflow: hidden;
}

#slogan h1 span {
    position:relative;
    top: 100px;
    height: 68px;
	font-size: 31px;
	font-family: 'Pacifico', cursive;
	font-weight:normal;  
}

#slogan h1 span.show{
    top: 0;
    transition: top 0.5s ease-in-out, opacity 0.5s ease-in-out; /* アニメーション */
}

#slogan h1 span:after{
	content:"";
	display: block; 
    position:relative;
    top: 0;
    left: calc(50% - 137px);
	background-image: url(../images/VegeGo.png);
    width:274px;
    height:68px;
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: contain;
}

#slogan h2{
    position: absolute;
	top: 30px;
    height: 22px;
    left: calc(50% - 134px);
	font-weight:normal;
	color: #99f727;
	font-size: 21px;
    overflow: hidden;
}

#slogan h2 span{
    position:relative;
    top: 0;
	font-weight:normal;
	color: #99f727;
	font-size: 21px;
    opacity:0;
}

#slogan h2 span.show{
    top: 0;
    transition: top 0.5s ease-in-out, opacity 0.5s ease-in-out; /* アニメーション */
    opacity:1;
}



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

#footer {
	clear: both;
	padding: 50px 0;
	text-align: center;
	font-size: 12px;
}


/* 共通
------------------------------------------------------------*/
h1, h2{
	font-family: 'Josefin Sans', 'Noto Sans JP',sans-serif;
}

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

section h2{
	padding: 50px 0 15px 0;
  margin: 0 auto 30px;
  width: 100%;
	font-size: 32px;
	font-weight:normal;
	text-align: center;
	line-height: normal;
	border-bottom: 1px solid #231815;
}

.inner{
	display: block;
	width: 80%;
	margin: 0 auto;
	padding-bottom: 50px;
}


/* SEC01 MESSAGE
------------------------------------------------------------*/

#sec01 h2{
	margin: 0;
	padding: 70px 0 40px;
	border: none;
}

#sec01 .text{
	width: 80%;
	margin: 0 auto;
	padding-bottom: 50px;
	font-size: 20px;
}

#sec01 .text .subCopy {
	display: block;
	margin-top: 80px;
	font-size: 18px;
	text-align: center;
	font-family: 'Garamond Premier Pro',serif;
}

#sec01 .text .subCopy:before {
	content: "";
	display: block;
	position: relative;
  top: -35px;
  left: calc(50% - 1px);
	width: 1px;
	height: 65px;
	background-color: #231815;
}


/* SEC02 AREA
------------------------------------------------------------*/

.subContent {
  margin: 0 auto;
}

.subContent .copy{
	display: block;
	margin-bottom: 20px;
  width: 100%;
  font-size: 20px;
  text-align: center;
}

.subContent .text {
	margin-bottom: 30px;
}

.subContent .subText{
	display: block;
  margin: 0 auto;
  font-size: 16px;
}


/* SEC03 CONTACT
------------------------------------------------------------*/

#formWrap {
	width:100%;
	margin:0 auto;
}


table.formTable th, table.formTable td {
	display:flex;
}

table.formTable th {
	font-weight: 400;
}

input, textarea {
    width: 100%;
    padding: 15px;
    margin-bottom: 10px;
    border: 1px solid #231815;
    font-size: 16px;
}

textarea {
	height: 400px;
	margin-bottom: 18px;
}

#formWrap form p input {
	padding: 20px;
	margin-bottom: 0;
	border: none;
	font-size: 18px;
	background-color: #E6E6E6;
}

#formWrap form p input:hover {
    background-color: #222; /* 背景色を変更 */
    cursor: pointer;           /* マウスオーバー時にポインターを表示 */
    color: #fff;
}



/* SEC04 PROFILE
------------------------------------------------------------*/
#sec04{
	padding-top: 50px;
}

.ta1-parts caption {
	padding: 16px;	/*ボックス内の余白*/
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
	margin-bottom: 0;	/*下に空けるスペース*/
	text-align: center;
}

/*テーブルブロック設定*/
.ta1-parts {
	table-layout: fixed;
	border-top: none;	/*テーブルの一番上の線。幅、線種、色*/
	width: 100%;
}

/*tr（１行分）タグ設定*/
.ta1-parts tr {
	border-bottom: none;
	display:  grid;
	text-align: center;
}

/*th（左側）、td（右側）の共通設定*/
.ta1-parts th, .ta1-parts td {
	padding: 1rem;		/*ボックス内の余白*/
	word-break: break-all;	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}

.ta1-parts th {	
	text-align: center;	
	font-weight: normal;
	padding: 1rem 1rem 0px;
}

.ta1-parts td {
	padding: 0 1rem 1rem;
}


/* SEC05 PLICY
------------------------------------------------------------*/

#sec05 header h2 {
	padding: 70px 0 20px;
  border: none;
	font-size: 25px;
}

#sec05 .content {
	width: 72%;
  margin: 0 auto;
  padding-top: 0;
  padding-bottom: 20px;
  font-size: 16px;
  opacity: 1;
  text-align: left;
}


/* RESPONSIVE 設定
------------------------------------------------------------*/

@media only screen and (min-width: 1200px){

}

@media only screen and (min-width: 800px){
	body{
		font-size:20px;
	}

/* ヘッダー
------------------------------------------------------------*/

	#header img{
	    position:absolute;
	    left: 50%;
	    top: 25%;
	    width: 130%;
	    height:auto;
	    margin-left:0;
	    position: absolute;
   		transform: translate(-50%, -50%);
	}

	#slogan {
		height: unset;
	}

	#slogan h1 {
		top: unset;
		left: unset;
		transform: unset;
        height: 143px;
	}

    
    #slogan h1 span {
      position:relative;
      top: 143px;
      height: 143px;
      font-size: 31px;
      font-family: 'Pacifico', cursive;
      font-weight:normal;  
    }

    #slogan h1 span:after{
    	content:"";
        top: 0;
        left: calc(50% - 286px);
        width:573px;
        height:143px;
    }
    
	#slogan h2{
		position: relative;
        top: 0;
        left: unset;
        height: 54px;
        overflow: hidden;
	}
    
    #slogan h2 span{
		position: relative;
		top: 0px;
		font-size: 45px;
	}

    #slogan h2 span.show{
        top: 0;
        transition: top 0.5s ease-in-out, opacity 0.5s ease-in-out; /* アニメーション */
    }

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

  #footer {
  	display: flex;
  	justify-content: space-between;
  	margin: 0 auto;
    width: 72%;
		padding: 0 0 70px 0;
		font-size: 20px;
	}

	#footer.left {
		justify-content: end;
	}


/* 共通
------------------------------------------------------------*/

	.inner {
		width: 72%;
		padding-bottom: 240px;
	}


	section h2{
		padding: 0 0 15px 0;
    margin: 0 auto 30px;
    width: 100%;
    font-size: 43px;
	}


	/* SEC01 MESSAGE
	-----------------*/

	#sec01 h2 {
		padding: 130px 0 70px;
		width: auto;
		border: none;
		margin: 0;
		font-size: 53px;
	}

	#sec01 .text {
		width: 72%;
		margin: 0 auto;
		padding-bottom: 280px;
		font-size: 25px;
	}

	#sec01 .text .subCopy {
		margin-top: 160px;
		font-size: 24px;
	}

	/* SEC02 AREA
	-----------------*/


	
	/* SEC03 SERVICE MESSAGE STORY
	-----------------*/

	/*カラムで使う為の指定*/
	main.column {
		display: flex;	/*flexボックスを使う指定*/
		justify-content: space-between;	/*並びかたの種類の指定*/
		gap: 2rem;						/*main-contents-partsとsub-contents-partsの間のマージン的な隙間*/
	}
	
	/*mainContentの設定*/
	.mainContent {
		order: 1;			/*並び順。数字の小さい順番に表示されます。*/
		flex: 1;
	}
	
	/*.subContent*/
	.subContent {
		width: calc(100% - 253px);	/*幅*/
	}

	/*1つ目のsub-contents*/
	.subContent:nth-child(2) {
		order: 2;	/*並び順。数字の小さい順番に表示されます。*/
		padding-top: 140px;
	}

	.subContent .copy{
	  font-size: 25px;
	  text-align: left;
	}

	.subContent .subText{
		display: block;
		font-size: 20px;
	}

	#formWrap {
		display: block;
    flex-wrap: wrap;
    width: 100%;
    margin: 0;
		line-height:120%;
		font-size:90%;
	}

	input, textarea {
    margin-bottom: 24px;
	}
	
	label {
    font-size: 20px;
	}

	table.formTable{
		width:100%;
		border-collapse:collapse;
	}

	table.formTable th{
	  position: absolute;
	  left: -110px;
		width:110px;
		font-weight:normal;
		text-align:left;
		font-size: 20px;
		margin-bottom: 0;
	  vertical-align: top;
	  line-height: 50px;
	}

	#formWrap form p input {
		font-size: 20px;
	}

	/* SEC04 PROFILE
	-----------------*/
	#sec04{
		padding-top: 0;
	}

	#sec04 .inner {
		padding-bottom: 120px;
	}

	/*テーブルブロック設定*/
	.ta1-parts {
		table-layout: fixed;
		width: 100%;
	}

	/*tr（１行分）タグ設定*/
	.ta1-parts tr {
		border-bottom: 1px solid #666;	/*テーブルの下線。幅、線種、色*/
		display: table-row;
	}

	/*th（左側）、td（右側）の共通設定*/
	.ta1-parts th, .ta1-parts td {
		padding: 1rem 3rem;		/*ボックス内の余白*/
		word-break: break-all;
		text-align: left;
	}

	/*th（左側）のみの設定*/
	.ta1-parts th {
		width: 210px;			/*幅*/
		text-align: left;	/*左よせにする*/
	}


	/* sec05 PLICY
------------------------------------------------------------*/

	#sec05 header h2 {
		padding: 130px 0 80px;
		width: auto;
		border: none;
		font-size: 43px;
	}

	#sec05 .content {
		width: 72%;
    margin: 0 auto;
    padding-bottom: 50px;
    font-size: 20px;
	}

}



@media only screen and (min-width: 641px){

}

@media only screen and (max-width: 640px){

}

@media only screen and (max-width: 820px){
#header img {
  position:absolute;
	left: 50%;
  top: 46%;
  width: 310%;
  height: auto;
  margin-left: 0;
  position: absolute;
  transform: translate(-50%, -50%);
}
}

@media only screen and (max-width: 1199px){
}

/* フェードイン用のスタイル */
.light-fade-in {
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.fade-in.show {
    opacity: 1;
    transition: opacity 1s ease-in-out;
}