@charset "UTF-8";


/*-------------------------------------------
Mainvisual
-------------------------------------------*/
#mainvisual {
  text-align: center;
}
#mainvisual img {
  width: 100%;
  max-width: 1200px;
  display: block;
  margin: 0 auto;
  height: auto;
  object-fit: cover;
}
.blurred-gif {
/*    filter: blur(0.6px);*/

}
/*-------------------------------------------
About
-------------------------------------------*/

.icon-panda {
  padding-left: 1.5em; /* アイコン分の左paddingを設定（調整してください） */
  position: relative; /* 擬似要素の基準となる */
}
.icon-panda::before{
    content: "";
    display: inline-block; /* 幅や高さを有効にする */
    background-image: url('../img/icon-panda.svg');
    background-size: contain;
    background-repeat: no-repeat;
    width: 1.1em;
    height: 1.1em;
    position: absolute; /* タイトルに対して絶対配置 */
    left: 40%; /* 左端に配置 */
    top: 50%; /* 縦方向中央に配置 */
    transform: translateY(-50%); /* 縦方向中央に配置するための調整 */
    margin-right: 0.5em; /* タイトルとの右側の間隔（ここでは直接指定しない） */
}
#about {
  background-color: #f6f6f5;
}
#about .content {
  display: flex;
  justify-content: center;
  align-items: center;
}
#about img {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  margin: 30px;
}
#about .text {
  text-align: left;
}
#about p {
  padding-bottom: 10px;
  color: #767676;
}
#about .content-title {
  margin-bottom: 20px;
}
#about .colorline {
  position: relative;
  display: inline-block;
  font-weight:bold;
  border-bottom: solid 4px #6fa288;
  padding: 5px 20px 0 0;
}
#about .colorline::after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 4px #f4ae9d;
  width: 30%;
}
#about span {
  font-size: 0.9rem;
}
.box19 {
  position: relative;
  padding:1em 1em 0.25em;
}
.box19:before,.box19:after{ 
  content:'';
  width: 20px;
  height: 30px;
  position: absolute;
  display: inline-block;
}
.box19:before{
  border-left: solid 1px #4e746d;
  border-top: solid 1px #4e746d;
  top:0;
  left: 0;
}
.box19:after{
  border-right: solid 1px #4e746d;
  border-bottom: solid 1px #4e746d;
  bottom:0;
  right: 0;
}

/*-------------------------------------------
Works
-------------------------------------------*/
#works ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;

}
#works li {
  width: 31%;
  margin-bottom: 100px;
  text-align: center;
}
.icon-grass {
  padding-left: 1.5em; /* アイコン分の左paddingを設定（調整してください） */
  position: relative; /* 擬似要素の基準となる */
}
.icon-grass::before{
    content: "";
    display: inline-block; /* 幅や高さを有効にする */
    background-image: url('../img/icon-grass.svg');
    background-size: contain;
    background-repeat: no-repeat;
    width: 1em;
    height: 1em;
    position: absolute; /* タイトルに対して絶対配置 */
    left: 42%; /* 左端に配置 */
    top: 50%; /* 縦方向中央に配置 */
    transform: translateY(-50%); /* 縦方向中央に配置するための調整 */
    margin-right: 0.5em; /* タイトルとの右側の間隔（ここでは直接指定しない） */
}

#works .heading12 {
	position: relative;
}

#works .heading12::before {
  font-size: 1.5rem;
	content: attr(data-number);
	display: inline-block;
	margin-right: 15px;
	color: #f4ae9d;
	border-bottom: 2px solid #2e989d;
}
/*-------------------------------------------
record
-------------------------------------------*/
#record {
  background-color: #2e989d73;
  max-width: unset;
}
#record h2 {
  color: #daff9a;
}
#record h3 {
  color: #daff9a;
}
#record p {
  color: #51605e;
}
#record ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 50px;
  margin-left: auto;
  margin-right: auto;
  max-width: 1100px;
}
#record li {
  width: 29%;
  margin-bottom: 100px;
  text-align: center;
}
.icon-cactus {
  padding-left: 1.5em; /* アイコン分の左paddingを設定（調整してください） */
  position: relative; /* 擬似要素の基準となる */
}
.icon-cactus::before{
    content: "";
    display: inline-block; /* 幅や高さを有効にする */
    background-image: url('../img/icon-cactus.svg');
    background-size: contain;
    background-repeat: no-repeat;
    width: 1.5em;
    height: 1.5em;
    position: absolute; /* タイトルに対して絶対配置 */
    left: 35%; /* 左端に配置 */
    top: 50%; /* 縦方向中央に配置 */
    transform: translateY(-50%); /* 縦方向中央に配置するための調整 */
    margin-right: 0.5em; /* タイトルとの右側の間隔（ここでは直接指定しない） */
}
#record .heading12 {
	position: relative;
}

#record .heading12::before {
  font-size: 1.5rem;
	content: attr(data-number);
	display: inline-block;
	margin-right: 15px;
	color: #ffffff;
	border-bottom: 2px solid #f79e1d;
}
/*-------------------------------------------
News
-------------------------------------------*/
#news dl {
  display: flex;
  flex-wrap: wrap;
  border-top: solid 1px #c8c8c8;
  margin-bottom: 20px;
  max-height: calc(7.5em * 3); /* 例: 1行の高さが2emなら 2em * 3 = 6em */
  overflow-y: auto;
}
#news dt,
#news dd {
  line-height: 1.8em; /* 例として1.8emを設定 */
  margin-bottom: 0.5em; /* 行間のスペース */
}
#news dt {
  width: 25%;
  border-bottom: solid 1px #c8c8c8;
  padding: 15px;
  position: relative;
  padding-left: 8em;
}
#news dd {
  width: 75%;
  border-bottom: solid 1px #c8c8c8;
  padding: 15px;
  word-break: break-all;
}
#news dt span {
  position: absolute;
  top: 15px;
  left: 0;
  padding: 0.1rem 1rem 0.1rem 0;
  color: #fff;
  border-radius: 20px;
  background: #767676;
  font-weight: bold;
}
#news dt span i {
  margin-right: 1rem;
}
#news dt span:after {
  position: absolute;
    top: calc(50% - 6px);
    right: -10px;
    width: 0;
    height: 0;
    content: '';
    border-width: 6px 0 6px 16px;
    border-style: solid;
    border-color: transparent transparent transparent #767676;
}
#news dd p > span{
  background: linear-gradient(transparent 70%, #daff9a 70%);
}

.icon-matu {
  padding-left: 1.5em; /* アイコン分の左paddingを設定（調整してください） */
  position: relative; /* 擬似要素の基準となる */
}
.icon-matu::before{
    content: "";
    display: inline-block; /* 幅や高さを有効にする */
    background-image: url('../img/icon-matu.svg');
    background-size: contain;
    background-repeat: no-repeat;
    width: 1.2em;
    height: 1.2em;
    position: absolute; /* タイトルに対して絶対配置 */
    left: 40%; /* 左端に配置 */
    top: 50%; /* 縦方向中央に配置 */
    transform: translateY(-50%); /* 縦方向中央に配置するための調整 */
    margin-right: 0.5em; /* タイトルとの右側の間隔（ここでは直接指定しない） */
}

/*-------------------------------------------
フッター
-------------------------------------------*/
#footer {
  background-color: #51605e;
  color: #fff;
  font-size: 1rem;
  padding: 10px 20px;
  text-align: center;
}

/*-------------------------------------------
SP
-------------------------------------------*/
@media screen and (max-width: 820px) {
  #mainvisual img {
  height: 420px;
}
   .icon-panda::before{
    left: 25%;
  }
  .icon-grass::before{
    left: 25%;
  }
  .icon-cactus::before{
    left: 22%;
  }
  .icon-matu::before{
    left: 25%;
  }
  .icon-snail::before{
    left: 22%;
  }
    .mobile-break {
      display: inline; /* または block など、適切な表示形式 */
    }
  
  /*-------------------------------------------
  ヘッダー
  -------------------------------------------*/
  #header {
    max-width: 100%;
    height: auto;
    flex-direction: column;
  }
  #header li {
    font-size: 0.8rem;
    margin-left: 20px;
  }
  #header li:first-child {
    margin-left: 0;
  }
  /*-------------------------------------------
  About
  -------------------------------------------*/
  #about .content {
    flex-direction: column;
  }
  #about img {
    margin-top: 0;
  }

  /*-------------------------------------------
  Works
  -------------------------------------------*/
  #works ul {
    flex-direction: column;
  }
  #works li {
    width: 100%;
  }

  /*-------------------------------------------
  /*-------------------------------------------
  record
  -------------------------------------------*/
  #record ul {
    flex-direction: column;
  }
  #record li {
    width: 100%;
  }

  /*-------------------------------------------
  News
  -------------------------------------------*/
  #news dl {
    flex-direction: column;
    max-height: calc(8.5em * 3);
    display: inline-block;
  }
  #news dt {
    width: 100%;
    border-bottom: none;
    padding-bottom: 1em;
  }
  #news dd {
    width: 100%;
    padding-top: 0;
  }

  /*-------------------------------------------
  Contact
  -------------------------------------------*/
  #contact dl {
    flex-direction: column;
  }
  #contact dt {
    width: 100%;
  }
  #contact dd {
    width: 100%;
  }
}

/* header（ハンバーガーメニュー） */
.demobox-header{
	background: #ddd;
	height: 64px;
	padding: 1em;
}
.demobox-sitename{
	font-weight: 700;
	font-size: 18px;
}
/* 全体調整CSS */
.hamburger-demo-menubox *{
	font-size: 16px;
}
.hamburger-demo-menubox li{
	font-size: 14px;
}
/* hamburgerここから */
	/* input非表示 */
.input-hidden{
	display: none;
}
	/* label */
  .hamburger-demo-switch{
    cursor: pointer;
    position: fixed; /* ← absoluteからfixedに変更 */
    right: 3%;
    top: 1em; /* 調整しました。0だとヘッダーに隠れる可能性があります。 */
    z-index: 9999;
    width: 4em;
    height: 4em;
  }
/* メニュー展開時にハンバーガーアイコンを固定 */
#hamburger-demo4:checked ~ .hamburger-demo-switch{
	position: fixed;
}
/* 円を用いたハンバーガーデザイン */
	/* 外側の円 */
.hamburger-demo-switch4:before{
	content: "";
	position: absolute;
	width: 3em;
	height: 3em;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border-radius: 50%;
  background-color: #f9fff0;
}
	/* 真ん中の円 */
.hamburger-switch-circle{
	height: 3px;
	width: 25px;
	background: #51605e; /* 真ん中の線（円）の色 */
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: .3s;
}
	/* 上下の線 */
.hamburger-switch-circle:before, .hamburger-switch-circle:after{
	content: "";
	position: absolute;
	width: 25px;
	top: 50%;
	left: 50%;
	transition: .3s;
}
.hamburger-switch-circle:before{
	border-top: 3px solid #51605e; /* ハンバーガーアイコン上側の線の色 */
	transform: translate(-50%, -300%);
}
.hamburger-switch-circle:after{
	border-bottom: 3px solid #51605e; /* ハンバーガーアイコン下側の線の色 */
	transform: translate(-50%, 200%);
}
/* アイコン･アニメーション */
#hamburger-demo4:checked ~ .hamburger-demo-switch .hamburger-switch-circle{
	height: 25px;
	border-radius: 50%;
}
#hamburger-demo4:checked ~ .hamburger-demo-switch .hamburger-switch-circle:before{
	width: 0;
}
#hamburger-demo4:checked ~ .hamburger-demo-switch .hamburger-switch-circle:after{
	width: 0;
}
	/* 真ん中の×印 */
.hamburger-demo-switch4:after{
	content: "×";
	font-size: 0px;
	position: absolute;
	color: #fff; /* ハンバーガーの"×"マークの色 */
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	transition: .2s;
}
#hamburger-demo4:checked ~ .hamburger-demo-switch4:after{
	font-size: 25px;
}
/* メニューエリア */
.hamburger-demo-menuwrap{
	position: fixed;
	height: 100%;
	background: #f8f8f8; /* メニューエリアの背景色 */
	padding: 5em 3% 2em;
	z-index: 9998;
	transition: .3s;
	overflow-y: scroll; /* メニュー内容が多い場合に縦スクロール */
	top: 0;
	left: 100%;
	width: 70%;
}
/* メニューリスト */
.hamburger-demo-menulist{
	margin-right: 3%;
	padding-left: 5% !important; /* !important不要な場合あり */
	list-style: none;
  display: block; /* 各リストアイテムをブロック要素にする */
	margin-bottom: 5px; /* 必要に応じて、リストアイテム間の余白を設定 */
	border-radius: 2em; /* 現在の角丸を維持 */
  flex-direction: column;
}
.hamburger-demo-menulist li a{
	text-decoration: none;
	color: #51605e; /* メニューエリアの文字色 */
  display: block; /* リンク要素もブロック要素にし、li全体をクリック可能にする */
	padding: .5em 2.5em .5em 1em; /* 現在のpaddingを維持 */
	position: relative; /* 現在のrelativeを維持 */
}
.hamburger-demo-menulist li a span{
  font-size: 0.7rem;
  padding-left: 1em;
  color: #aac182;
}
	/* 円を用いたメニューリスト */
.hamburger-menulist-circle li{
	border: 1px solid;
	margin-bottom: 15px;
	border-radius: 2em;
  background-color: #f9fff0;
	border: solid 2px #d4f1a2;
  font-weight: bold;
	box-shadow: 0 3px 5px rgba(0, 0, 0, 0.22);
}
.hamburger-menulist-circle li a{
	padding: .5em 2.5em .5em 2em;
	position: relative;
}
.hamburger-menulist-circle a:before{
	content: "";
	position: absolute;
	width: 1.5em;
	height: 1.5em;
	background: #d4f1a2; /* メニューリスト矢印背景（円）の色 */
	border-radius: 50%;
	top: 50%;
	right: .5em;
	transform: translate(0, -50%);
}
.hamburger-menulist-circle a:after{
	content: "";
	position: absolute;
	width: 10px;
	height: 10px;
	border: 2.5px solid;
	border-color: #fff #fff transparent transparent; /* メニューリスト矢印の色（#fffのみ変更） */
	top: 50%;
	right: .5em;
	transform: translate(-80%, -50%) rotate(45deg);
}
/* メニューエリア･アニメーション */
	/* 右から */
#hamburger-demo4:checked ~ .hamburger-demo-menuwrap{
	left: 30%;
}
	/* コンテンツカバー */
#hamburger-demo4:checked ~ .hamburger-demo-cover{
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 9997;
	background: rgba(3,3,3,.5);
	display: block;
}

/* PCではハンバーガーメニューを表示しない */
@media (min-width: 820px){
	.hamburger-demo-menubox{
		display: none;
	}
  }
/* Scroll Downアニメーション */
.container_06 {
  height: 100px;
}

.scroll-down_06 {
  position: absolute;
  /* bottom: 20px; */
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  color: #6fa288;
  font-size: 14px;
  text-decoration: none;
}

.circle-arrow {
  width: 40px;
  height: 40px;
  border: 1px solid #6fa288;
  border-radius: 50%;
  position: relative;
  margin-bottom:12px;
  margin-inline: auto;
  animation: pulse 2s infinite;
}

.circle-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-left: 1px solid #6fa288;
  border-bottom: 1px solid #6fa288;
  transform: translate(-50%, -50%) rotate(-45deg);
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}