@import url(https://fonts.googleapis.com/earlyaccess/notosansjp.css);
@import url(https://fonts.googleapis.com/css?family=Pacifico);
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400&display=swap');/*スクロールダウン*/


/* 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;}
hr{border: none;}/*追加*/

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

a{
	color: #0066ff;
	text-decoration: none;
}

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

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


/*------------------------------------------------------------

　ヘッダー

------------------------------------------------------------*/
#header{
	text-align: center;
}

#header h1{
	padding-top: 60px;
}


/*ヘッダーフル表示*/
.full {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background: url("../images/headerImg.jpg")
    center / cover;
}

/* スマホ表示時位置指定（右側を多めに表示　※右2人を表示するよう調整） */
@media screen and (max-width: 768px) {
  .full {
    background-position: 63% center;
  }
}


/*　スクロールダウン　*/
.scroll_down{
	position:absolute;
	bottom:50px;
	animation: arrowmove 1s ease-in-out infinite;
	left: 50%;
}

.scroll_down a{
  position: absolute;
  bottom: 30px;
  color: #fff;
  font-size: 14px;
  font-family: 'Josefin Sans', sans-serif;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  width: 24px;
  height: 24px;
  text-decoration: none;
	left: -15px;/*スマホで中央寄せのズレを調整*/
}

.text {
  display: block;
  margin-top: 70px;
  margin-left: -14px;
  font-size: 12px;
  color: #fff;
  text-transform: uppercase;
  white-space: nowrap;
  letter-spacing: 2px;
}

.arrow {
  position: absolute;
  width: 28px;
  height: 5px;
  opacity: 0;
  transform: scale3d(0.5, 0.5, 0.5);
  animation: move 3s ease-out infinite;
}

.arrow:first-child {
  animation: move 3s ease-out 1s infinite;
}

.arrow:nth-child(2) {
  animation: move 3s ease-out 2s infinite;
}

.arrow:before,
.arrow:after {
  content: ' ';
  position: absolute;
  top: 0;
  height: 100%;
  width: 51%;
  background: #fff;
}

.arrow:before {
  left: 0;
  transform: skew(0deg, 30deg);
}

.arrow:after {
  right: 0;
  width: 50%;
  transform: skew(0deg, -30deg);
}

@keyframes move {
  25% { opacity: 1; }
  33% { opacity: 1; transform: translateY(30px); }
  67% { opacity: 1; transform: translateY(40px); }
  100% { opacity: 0; transform: translateY(55px) scale3d(0.5, 0.5, 0.5); }
}

/*スマホでの見切れ防止*/
@media screen and (max-width: 768px) {
.scroll_down{
	bottom:120px;
}
}


/*　ヘッダー画像にテキスト配置*/
.header_box
{
    position: relative;
	height: 100vh;
}

.header_box div.text
{
    position: absolute; 
    left: 100px; 
    bottom: 100px; 
    font-size: 35px;
	font-weight: 600;
	text-align: left;
	color: #fff;
	text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
	z-index: 10;
    overflow: hidden; /* 画面外に出ないように */
}

/* 一行ずつ下から出てくるアニメーション */
.header_box div.text span {
    display: inline-block;
    opacity: 0; /* 最初は透明 */
    transform: translateY(100px); /* 最初は下に隠れている */
    animation: slideUp 1s ease-out forwards;
}

/* 各行に異なるアニメーション遅延を設定 */
.header_box div.text span:nth-child(1) {
    animation-delay: 0s;
}
.header_box div.text span:nth-child(2) {
    animation-delay: 0.5s;
}
.header_box div.text span:nth-child(3) {
    animation-delay: 1s;
}
.header_box div.text span:nth-child(4) {
    animation-delay: 1.5s;
}
.header_box div.text span:nth-child(5) {
    animation-delay: 2s;
}
.header_box div.text span:nth-child(6) {
    animation-delay: 2.5s;
}
.header_box div.text span:nth-child(7) {
    animation-delay: 3s;
}
.header_box div.text span:nth-child(8) {
    animation-delay: 3.5s;
}
.header_box div.text span:nth-child(9) {
    animation-delay: 4s;
}
.header_box div.text span:nth-child(10) {
    animation-delay: 4.5s;
}
.header_box div.text span:nth-child(11) {
    animation-delay: 5s;
}
.header_box div.text span:nth-child(12) {
    animation-delay: 5.5s;
}

/* 下から上にスライドするアニメーション */
@keyframes slideUp {
    to {
        opacity: 1; /* 文字を表示 */
        transform: translateY(0); /* 下から上にスライドしてくる */
    }
}

/* スマホ（最大幅767px）では左余白を小さく */
@media (max-width: 767px) {
    .header_box div.text {
        left: 0;
		right: 0;
		font-size: 20px;
		text-align: center;
		bottom: 180px;
		/*　↓テキストが左にやや寄るのを修正するため追加*/
		margin-left: auto;
        margin-right: auto;
		letter-spacing: normal;
    }
}


/*------------------------------------------------------------

　フッター

------------------------------------------------------------*/
#footer{
	clear: both;
	padding: 60px 10px 50px 0;
	text-align: center;
	font-size: 22px;
}

.copy_right{
	font-size: 12px;
	margin-top: 50px;
}

#footer h3{
	font-size: 22px;
	font-weight: normal;
}

#footer h3 span{
	font-size: 30px;
}

#footer .btn-link {
	display: block;
	text-decoration: none;
	color: #fff;
	background-color: #969797;
	border: 2px solid #969797;
	margin: 20px auto 10px;
	padding: 2px 10px;
	border-radius: 25px;
}
#footer .btn-link:hover {
	background-color: #fff;
	color: #969797;
	border: 2px solid #969797;
	transition:0.5s;
}




/*------------------------------------------------------------

　サイト共通

------------------------------------------------------------*/

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

section{
	clear:both;
	padding: 30px 0;
}

section h2{
	font-size: 50px;
	font-weight:600;
	text-align: center;
	color: #969797;
	line-height: 2em;
	padding:  0 10px;
}

.inner{
	width: 94%;
	margin: 0 auto;
	padding-bottom: 20px;
}


/*　追従するトップへボタン　*/
#page_top{
	width: 50px;
	height: 50px;
	position: fixed;
	right: 0;
	background-color: #000;
	z-index: 1000;
}
#page_top a{
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  text-decoration: none;
}
#page_top a::before{
  font-family: FontAwesome;
  content: '\f106';
  font-size: 30px;/*初期値25*/
  color: #fff;
  position: absolute;
  width: 25px;
  height: 50px;
  top: 0;
  bottom: 12px;/*アイコンセンター調整　初期値0*/
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}
/*追加設定*/
#page_top a:hover {
	background-color: #555;
	transition: 0.5s;
}

/*下からフェードイン*/
.fade-in-section {
  opacity: 0;
  transform: translateY(100px); /* 出幅 */
  transition: opacity 0.6s ease-out, transform 0.6s ease-out; /* スピード） */
  will-change: opacity, transform;
}

.fade-in-section.is-visible {
  opacity: 1;
  transform: translateY(0); /* 元の位置に */
}





/*　文字段落
------------------------------------------------------------*/

.indentS{
	margin-bottom: 10px;
}

.indentM{
	margin-bottom: 20px;
}

.indentL{
	margin-bottom: 40px;
}

.outdentM{
	margin-top: 20px;
}


/*　画像表示
------------------------------------------------------------*/

/* パソコンで見たときは"pc"のclassがついた画像が表示される */
.pc { display: block !important; }
.sp { display: none !important; }
 
/* スマートフォンで見たときは"sp"のclassがついた画像が表示される */
@media only screen and (max-width: 640px) {
    .pc { display: none !important; }
    .sp { display: block !important; }
}


/*　改行
------------------------------------------------------------*/
/*　スマホで改行　*/

.br-sp {
  display: none;
}
@media screen and (max-width: 640px) {
  .br-pc {
    display: none;
  }
  .br-sp {
    display: inline-block;
  }
}
/*　タブレット以下で改行　*/
.br-tb {
  display: none;
}
@media screen and (max-width: 1024px) {
  .br-pc {
    display: none;
  }
	.br-tb {
    display: inline-block;
  }
}

/*パソコンの時だけ改行*/
.pc-only-br {
    display: none;
  }

@media screen and (min-width: 767px) {
	.pc-only-br {
		display: inline;
    }
}



/*　テキストレイアウト
------------------------------------------------------------*/

/*　パソコンはセンター寄せ、スマホでは左寄せ　*/
.responsive-text {
	text-align: center;
}

@media screen and (max-width: 767px) {
	.responsive-text {
		text-align: left;
    }
}




/*------------------------------------------------------------

　sec

------------------------------------------------------------*/

/* Introduction
------------------------------------------------------------*/
#introduction{
	text-align: center;
	background: #fffcdb;
	padding-bottom: 0;
}
.introduction_sub{
	color: #e60012;
	font-size: 35px;
	font-weight: 600;
	margin-top: 20px;
}
.introduction-divider {
	border-bottom: 15px solid #969797;
	margin-top: 25px;
}

@media only screen and (max-width: 799px){
	.introduction_sub{
		font-size: 20px;
		line-height: 1.4;
}
}



/* message
------------------------------------------------------------*/
#message h2{
	display: none;
}

#message img{
	margin: 10px auto 30px;
	display: block;
}




/* miryoku
------------------------------------------------------------*/
#miryoku{
	background: #fadce9;
	padding-bottom: 20px;
}

@media only screen and (max-width: 799px){
#miryoku{
	padding-top: 40px;
}
}

#miryoku img{
	width: 100%;
}

/*2カラム表示*/
#miryoku .col2 {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}

#miryoku .col2 li {
  width: 50%; /* 2列表示 */
  box-sizing: border-box;
  padding: 10px;
}

/* タブレット以下は1列表示に */
@media (max-width: 1024px) {
  #miryoku .col2 li {
    width: 100%;
  }
}



/* koka
------------------------------------------------------------*/
#koka{
	background: #d3edfb;
	padding-bottom: 20px;
}

@media only screen and (max-width: 799px){
#koka{
	padding-top: 40px;
}
}

#koka img{
	width: 100%;
}

/*2カラム表示*/
#koka .col2 {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}

#koka .col2 li {
  width: 50%; /* 2列表示 */
  box-sizing: border-box;
  padding: 10px;
}

/* タブレット以下は1列表示に */
@media (max-width: 1024px) {
  #koka .col2 li {
    width: 100%;
  }
}



/* plan
------------------------------------------------------------*/
#plan{
	text-align: center;
	margin-top: 10px;
	font-size: 16px;
}

#plan h2{
	display: none;
}

#plan img{
	margin-bottom: 20px;
}


#plan .plan_box {
  display: block;
  text-decoration: none;
  color: #fff;
  background-color: #f6ad3c;
  text-align: center;
  margin: 15px 5px 10px;
  padding: 7px 20px;
  border-radius: 10px;
  font-size: 35px;
  font-weight: 600;
  position: relative;
  overflow: hidden;
}
/* ボタンを光らせる */
#plan .plan_box::before {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    120deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.3) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  transform: skewX(-20deg);
  animation: shine 1.5s infinite;
}
@keyframes shine {
  0% {
    left: -75%;
  }
  100% {
    left: 125%;
  }
}


#plan .btn-link {
	display: block;
	text-decoration: none;
	color: #fff;
	background-color: #8dc556;
	border: 2px solid #8dc556;
	text-align: center;
	margin: 40px 5px 10px;
	padding: 7px 20px;
	border-radius: 10px;
	font-size:35px;
	font-weight: 600;
}
#plan .btn-link:hover {
	background-color: #fff;
	color: #8dc556;
	border: 2px solid #8dc556;
	transition:0.5s;
}

@media screen and (max-width: 767px) {
	#plan .plan_box {
	font-size: 25px;
    }
	#plan .btn-link {
	font-size: 25px;
}
}



/*2カラム表示*/
#plan .col2 {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}

#plan .col2 li {
  width: 50%; /* 2列表示 */
  box-sizing: border-box;
  padding: 0;
}

/* タブレット以下は1列表示に */
@media (max-width: 1024px) {
  #plan .col2 li {
    width: 100%;
  }
}



/* application　お問合わせ
------------------------------------------------------------*/
#application{
	background: #969797;
	color: #fff;
}

#application h2{
	color: #fff;
	margin-bottom: 10px;
	text-align: center;
}

#application .btn-link {
	display: block;
	text-decoration: none;
	color: #969797;
	background-color: #fff;
	border: 2px solid #969797;
	text-align: center;
	margin: 20px auto 10px;
	padding: 7px 20px;
	border-radius: 10px;
	font-size: 35px;
	font-weight: 600;
}
#application .btn-link:hover {
	background-color: #ccc;
	color: #969797;
	border: 2px solid #ccc;
	transition:0.5s;
}

@media screen and (max-width: 767px) {
	#application .btn-link {
		font-size: 25px;
}
}

/*ポップアップここから*/
.popup_wrap input {
  display: none;
}

.popup_overlay {
  display: block; /* flexをやめる */
  overflow-y: auto; /* 縦スクロールを許可 */
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 0.5s, transform 0s 0.5s;
  transform: scale(0);
  text-align: center; /* 子要素を中央寄せ */
}

.popup_content {
  display: inline-block;
  margin: 50px auto; /* 余白追加で中央寄せ調整 */
  width: 90%;
  max-width: 800px;
  padding: 30px;
  box-sizing: border-box;
  background: #eee;
  color: #000;
  line-height: 1.7em;
  transition: 0.5s;
  text-align: left;
}


.popup_trigger {
  position: absolute;
  width: 100%;
  height: 100%;
}

.close_btn {
  position: absolute;
  top: 14px;
  right: 16px;
  font-size: 30px;
  cursor: pointer;
}

.popup_wrap input:checked ~ .popup_overlay {
  opacity: 1;
  transform: scale(1);
  transition: opacity 0.5s;
}

.open_btn {
  position: relative;
  width: 80%;
  height: 20px;
  margin:20px auto 10px;
  padding: 8px 16px;
  color: #fff;
  border-radius: 25px;
  cursor: pointer;
  transition: .3s ease;

}
.open_btn:hover{
    color:#fff;
	font-weight: 600;
    transition: .3s ease;
}

#application a{
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

#application a:hover, .active{
	text-decoration: none;
	color: #555;
}

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



/*------------------------------------------------------------

　RESPONSIVE 設定

------------------------------------------------------------*/

@media only screen and (min-width: 1200px){
	.inner{
		width: 1024px;
	}
}

@media only screen and (min-width: 800px){
	body{
		font-size:18px;
	}
	
	
	
  #footer{
		padding: 30px 10px 70px 0;
	}
}




@media only screen and (max-width: 640px){
	.inner{
		width: 94%;
		padding-bottom: 20px;
	}
	
}

@media only screen and (max-width: 799px){
	#header{
		position: relative !important; /* スマホでスクロール可能にするため fixed から relative に変更 */
		width: 100%;
		z-index: 500;
	}
	
	#headerWrap{
		position: relative;
		width: 100%;
		height: 70px;
		background: #d7d7d7;
		border-bottom: 1px solid #ccc;
	}
	
	#header h1{
		padding-top: 10px;
	}
	
	#header h1 img{
		margin-top: 3px;
		max-height: 45px;
		width: auto !important;
	}
	section h2{
		font-size: 26px;
		line-height: 1.3;
		margin-bottom: 10px;
	}
}