@charset "utf-8";
/* CSS Document */
.bd-placeholder-img {
  font-size: 1.125rem;
  text-anchor: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media (min-width: 768px) {
  .bd-placeholder-img-lg {
    font-size: 3.5rem;
  }
}
.b-example-divider {
  width: 100%;
  height: 3rem;
  background-color: rgba(0, 0, 0, .1);
  border: solid rgba(0, 0, 0, .15);
  border-width: 1px 0;
  box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
}
.b-example-vr {
  flex-shrink: 0;
  width: 1.5rem;
  height: 100vh;
}
.bi {
  vertical-align: -.125em;
  fill: currentColor;
}
.nav-scroller {
  position: relative;
  z-index: 2;
  height: 2.75rem;
  overflow-y: hidden;
}
.nav-scroller .nav {
  display: flex;
  flex-wrap: nowrap;
  padding-bottom: 1rem;
  margin-top: -1px;
  overflow-x: auto;
  text-align: center;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}
.bd-mode-toggle {
  z-index: 1500;
}
.video-wrapper video {
  min-width: 100%;
  min-height: 100vh;
}
.overlay img {
  max-width: 100%;
  max-height: 100%;
}
/* モバイル表示 */
@media (max-width: 768px) {
  .overlay {
    position: absolute;
    top: -10%;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
/* タブレット表示 */
@media (min-width: 768px) and (max-width: 1024px) {
  .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
/* デスクトップ表示 */
@media (min-width: 1024px) {
  .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
.logo {
  width: 420px;
  height: auto;
}

@media (max-width: 991px) {
  .logo {
    width: 250px;
  }
}




@media (max-width: 768px) {
.img_30th{padding: 30px;}
}


@media (min-width: 1024px) {
.img_30th{padding: 0px;}

}




.side_navi {
  font-size: 18px !important;
  padding: 8px 0 8px 0;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}
.fw-100 {
  font-weight: 100;
}
.fw-200 {
  font-weight: 200;
}
.fw-300 {
  font-weight: 300;
}
.fw-400 {
  font-weight: 400;
}
.fw-500 {
  font-weight: 500;
}
.fw-600 {
  font-weight: 600;
}
.fw-700 {
  font-weight: 700;
}
.fw-800 {
  font-weight: 800;
}
/* Animation
-------------------------------------------------- */
.ai_Visual {
  opacity: 0;
  animation: mainVisual 0.7s ease-out forwards;
  animation-delay: 0.4s;
}
.ai_logo {
  opacity: 0;
  animation: mainVisual 0.7s ease-out forwards;
  animation-delay: 1.4s;
}
.ai_scroll {
  opacity: 0;
  animation: mainVisual 0.7s ease-out forwards;
  animation-delay: 2.4s;
}
@keyframes mainVisual {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.scrollbar {
  opacity: 0;
  animation: scroll 0.9s cubic-bezier(0.75, 0, 0.25, 1) forwards;
  animation-delay: 3s;
}
@keyframes scroll {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* link
-------------------------------------------------- */
.textlink {
  padding-bottom: 0px;
  background-image: linear-gradient(#009844, #009844);
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 0 2px;
  transition: background-size 0.3s;
}
.textlink:hover {
  background-position: bottom left;
  background-size: 100% 2px;
}
/* Main Scroll Bar
-------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400&display=swap');
/* モバイル表示 */
@media (max-width: 768px) {
  .scroll_down {
    display: block;
    left: 0;
    right: 0;
    text-align: center;
    bottom: 80px;
    padding-bottom: 20px;
    position: absolute;
  }
}
/* タブレット表示 */
@media (min-width: 768px) and (max-width: 1024px) {
  .scroll_down {
    display: block;
    left: 0;
    right: 0;
    text-align: center;
    bottom: 0;
    position: absolute;
  }
}
/* デスクトップ表示 */
@media (min-width: 1024px) {
  .scroll_down {
    display: block;
    left: 0;
    right: 0;
    text-align: center;
    bottom: 0;
    position: absolute;
  }
}
.scroll_down p {
  letter-spacing: .1vw;
}
.scroll_down a {
  display: inline-block;
  line-height: 18px;
  font-size: 12px;
  font-weight: normal;
  color: #FFF;
  letter-spacing: 2px;
  text-decoration: none;
}
.scroll_down .mouse {
  position: relative;
  display: block;
  width: 35px;
  height: 55px;
  margin: 0 auto 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 2px solid #FFF;
  border-radius: 23px;
}
.scroll_down .mouse > * {
  position: absolute;
  display: block;
  top: 29%;
  left: 50%;
  width: 8px;
  height: 8px;
  margin: -4px 0 0 -4px;
  background: #FFF;
  border-radius: 50%;
  animation: ani-mouse 2.5s linear infinite;
}
@keyframes ani-mouse {
  0% {
    opacity: 0;
    top: 70%;
  }
  40% {
    opacity: 0;
    top: 30%;
  }
  70% {
    opacity: 1;
    top: 30%;
  }
  100% {
    opacity: 1;
    top: 70%;
  }
}
.Gradation_1 {
  background: linear-gradient(270deg, #afeeee, #ffe4e1);
  background-size: 200% 200%;
  animation: Grad 5s ease infinite;
  clip-path: polygon(0 60px, 100% 0, 100% calc(100% - 60px), 0 100%);
}
@keyframes Grad {
  0% {
    background-position: 0% 50%
  }
  50% {
    background-position: 100% 50%
  }
  100% {
    background-position: 0% 50%
  }
}
/*fontstyle*/
.heading08 {
  font-size: 36px;
  text-align: center;
}
.heading08 span {
  text-align: center;
  display: flex;
  align-items: center;
  color: #fff;
  font-size: 24px;
  text-transform: uppercase;
}
.heading08 span::before {
  text-align: center;
  content: '';
  display: inline-block;
  margin-right: 20px;
  width: 40px;
  height: 1px;
  background-color: #fff;
}
.montserrat {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}
/* モバイル表示 */
@media (max-width: 768px) {
  .montserrat {
    font-size: 28px;
  }
}
/* タブレット表示 */
@media (min-width: 768px) and (max-width: 1024px) {
  .montserrat {
    font-size: 36px;
  }
}
/* デスクトップ表示 */
@media (min-width: 1024px) {
  .montserrat {
    font-size: 36px;
  }
}
h1 {
  position: relative;
  display: inline-block;
  margin-bottom: 1em;
}
h1:before {
  content: '';
  position: absolute;
  bottom: -15px;
  display: inline-block;
  width: 60px;
  height: 5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color: black;
  border-radius: 2px;
}
.py-100 {
  padding: 0 0 300px 0
}
.action-img {
  margin: 0 auto;
  overflow: hidden;
  cursor: pointer;
}
.action-img img {
  width: 100%;
  transition-duration: 0.7s;
}
.action-img:hover img {
  transform: scale(1.1);
  transition-duration: 0.7s;
  opacity: 0.6;
}
.video-wrapper {
  position: relative;
  width: 100%;
  height: 100vh; /* スマホ画面全体に表示する場合 */
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}
.video-wrapper video {
  min-width: 100%;
  min-height: 100%;
  object-fit: cover; /* 中央寄せ＋画面いっぱいに表示 */
}
/* モバイル表示 */
@media (max-width: 768px) {
  .first-view {
    height: 50vh; /* モバイルでは70%の高さ */
  }
}
/* タブレット表示 */
@media (min-width: 768px) and (max-width: 1024px) {
  .first-view {
    height: 75vh; /* タブレットでは75%の高さ */
  }
}
/* デスクトップ表示 */
@media (min-width: 1024px) {
  .first-view {
    height: 80vh; /* デスクトップでは80%の高さ */
  }
}
/* 背景設定 */
.diagonal-bg {
  background-color: #eff3f1;
  clip-path: polygon(0 60px, 100% 0, 100% calc(100% - 60px), 0 100%);
}
.diagonal-bg-cont {
  clip-path: polygon(0 60px, 100% 0, 100% calc(100% - 0px), 0 100%);
}
.bokin {
  background: url("../img/bg_otawara.jpg") center no-repeat;
  background-size: cover;
  text-align: center;
}
.btn i {
  vertical-align: top;
}
.bi {
  vertical-align: center; /* テキストの中央にアイコンを合わせる */
}
ul.text-mauvepink {
  list-style-type: disc; /* ディスクを丸に設定 */
  list-style-position: outside; /* ディスクをリストアイテムの外側に配置 */
  padding-left: 20px; /* アイテムとディスクの間にスペースを追加 */
}
ul.text-mauvepink li {
  color: white; /* リストアイテムのテキストを白に */
}
.link-hover {
  color: white;
  transition: color 0.2s ease;
}
.link-hover:hover {
  color: rgba(255, 255, 255, 0.7); /* 70%の透明感でふわっと薄く */
}
/* PC画面でボタン幅を狭くする */
@media (min-width: 768px) {
  .btn {
    max-width: 380px; /* 半分以下の幅に */
    width: 100%;
  }
}
/* モバイル表示 */
@media (max-width: 768px) {
  .fs-sm-fs-5 {
    font-size: 0.9rem !important; /* お好みで調整 */
  }
}
/* 透明から浮き上がるアニメーション */
@keyframes fadeInSlowUp {
  0% {
    opacity: 0; /* 最初は透明 */
    transform: translateY(20px); /* 下から浮き上がる */
  }
  100% {
    opacity: 1; /* 完全に表示される */
    transform: translateY(0); /* 元の位置に戻る */
  }
}
.animate__fadeInSlowUp {
  animation-name: fadeInSlowUp;
  animation-duration: 2s; /* ゆっくり浮き上がる */
  animation-timing-function: ease-out; /* 滑らかな動き */
}
/*** scrolltop ***/
.pagetop {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.pagetop.show {
  opacity: 1;
  visibility: visible;
}
.pagetop a {
  display: block;
  background-color: #198754;
  text-align: center;
  color: #FFFFFF;
  font-size: 12px;
  text-decoration: none;
  padding: 0px 2px 4px 2px;
  border-radius: 10%;
}
.pagetop a:hover {
  background: #026C5A;
}
/*沿革*/
ul {
  padding: 0;
}
li {
  list-style-type: none;
}
dd {
  margin-left: 0;

}
.flow {
  padding-left: 120px;
  position: relative;
	margin-bottom: -29px;
	padding-bottom: 0
}
.flow::before {
  content: "";
  width: 15px;
  height: 100%;
  background: #eee;
  margin-left: -8px;
  display: block;
  position: absolute;
  top: 0;
  left: 120px;
}
.flow > li {
  position: relative;
}
.flow > li:not(:last-child) {
  margin-bottom: 2vh;
}
.flow > li .icon {
  font-size: 18px;
  color: #fff;
  /*background: rgb(107,144,219);
	background: -moz-linear-gradient(left, rgba(107,144,219,1) 0%, rgba(102,213,233,1) 100%);
	background: -webkit-linear-gradient(left, rgba(107,144,219,1) 0%,rgba(102,213,233,1) 100%);
	background: linear-gradient(to right, rgba(107,144,219,1) 0%,rgba(102,213,233,1) 100%);*/
  background-image: linear-gradient(to top, #0ba360 0%, #3cba92 100%);
  /*	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6b90db', endColorstr='#66d5e9',GradientType=1 );
*/ padding: 10px 20px;
  display: block;
  position: absolute;
  top: 0;
  left: -130px;
  z-index: 100;
  border-radius: 10px;
}
.flow > li .icon::after {
  content: "";
  border-style: solid;
  border-width: 5px 0 5px 10px;
  border-color: transparent transparent transparent #3cba92;
  position: absolute;
  top: 50%;
  left: 100%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
.flow > li dl {
  padding-left: 70px;
  position: relative;
}
.flow > li dl::before, .flow > li dl::after {
  content: "";
  display: block;
  position: absolute;
  top: 25px;
}
.flow > li dl::before {
  width: 7px;
  height: 7px;
  margin-top: -3px;
  background: #22AE78;
  border-radius: 50%;
  left: -4px;
}
.flow > li dl::after {
  width: 50px;
  border-bottom: 1px dashed #999;
  position: absolute;
  left: 5px;
}
.flow > li dl dt {
  font-size: 18px;
  font-weight: 600;
	margin-bottom: 0vh;
}
@media (max-width: 576px) {
  .flow > li dl {
    padding-left: 15px;
    position: relative;
  }
  .flow > li dl::after {
    border-bottom: none;
  }
}



/*沿革ボタン*/
.readmore {
/*    position: relative;
*/  margin: 50px auto 10px auto;
    display: block;
    color: #5a5a5a;
	background:#FFF; 
	padding: 5px 30px;
	font-weight: bold;
	letter-spacing: 1px;

/*	font-size: 16px;*/	
	 border: 3px solid #22AE78;
}

.readmore:hover {
    background: #22AE78;
    color: #FFF; 
transition: .3s;

}



.readmore.on-click:before {
  transform: rotate(180deg);
}
.readmore .open {
  display: block;

}
.readmore.on-click .open {
  display: none;

}
.readmore .close {
	display: none;
}
.readmore.on-click .close {
	display: block;
}

.close  {color: #198754;
}

.close a{


}

/* ホバー時のスタイル */

.readmore a{
	text-decoration: none

}

/* span内のテキストもホバー時にスムーズに色を変える */
button.readmore .open,
button.readmore .close {
  transition: color 0.3s ease; /* 文字色の変化をスムーズに */
}

button.readmore .open:hover,
button.readmore .close:hover {	
	
  color: #FFF; /* spanの文字色もホバー時に変更 */
}


.hover1 {
	display: inline-block;

	color: #fff;
	cursor: pointer;
	transition: all 0.3s ease 0s;

}
.hover1:hover {
opacity: 0.6;
transition-duration: 0.3s;
}


.truncate-text {
  display: -webkit-box;
  -webkit-line-clamp: 2; /* 行数を指定 (30文字程度に調整) */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
}

.card-texture{
	background-image: linear-gradient(to top, #dfe9f3 0%, white 100%);
}




/*===== // Resonsive Vertical Timeline =====*/
/*.demo{
	
background-color: #EFF3F1;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='182' height='182' viewBox='0 0 200 200'%3E%3Cdefs%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='100' y1='33' x2='100' y2='-3'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='1'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='100' y1='135' x2='100' y2='97'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='1'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='%23c7cbc9' fill-opacity='0.08'%3E%3Crect x='100' width='100' height='100'/%3E%3Crect y='100' width='100' height='100'/%3E%3C/g%3E%3Cg fill-opacity='0.08'%3E%3Cpolygon fill='url(%23a)' points='100 30 0 0 200 0'/%3E%3Cpolygon fill='url(%23b)' points='100 100 0 130 0 100 200 100 200 130'/%3E%3C/g%3E%3C/svg%3E");


}
*/