body, h1, p {
    margin: 0;
    padding: 0;
    font-family: "Kosugi", sans-serif;
    color: #474f67;
}

.logo-fadein {
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.logo-fadein p {
  display: none; /* display: noneをblockに変更して表示させる */
  z-index: 9999;
  width: 280px; /* 必要に応じて変更 */
}

.logo-fadein img {
  max-width: 100%; /* 親要素の幅に応じてサイズを自動調整 */
  height: auto;   /* 縦横比を維持 */
}


.title{
  font-family: "Zen Maru Gothic", serif;
  color: #F1896B;
  font-size: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight:bold;
  text-align: center;
}

.title::before,
.title::after {
content: '';
width: 3px;
height: 40px;
background-color: #AEC1BA;
}
.title::before {
margin-right: 30px;
transform: rotate(-35deg)
}
.title::after {
margin-left: 30px;
transform: rotate(35deg)
}

.home-img img {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
}

.sub-img-1 img {
  max-width: 80%; /* 画像がコンテナの幅を超えないようにする */
}

.container{
  max-width: 1150px;
  width: 100%;
}

.first-content {
  display: flex;
  justify-content: space-between; /* コンテンツの最大幅を960pxに指定 */
  width: 100%; /* ブラウザウィンドウが960px未満の場合には、幅を動的に調整 */
  margin: 0 auto; /* 左右の余白を自動で均等にすることで中央に配置 */
}
.box {
  flex: 0.5;
}

.index-title{
  font-family: "Zen Maru Gothic", serif;
  font-weight: bold;
  padding-bottom: 10px;
}

.title-emphasis{
  color: #f3c05e;
}

.sub-img-1 {
  flex: 1;
  display: flex;
  align-items: center;
  margin-right: 0px;
  margin-top: 130px;
}

/* ブラウザの幅が小さい時に適用するスタイル */
@media screen and (max-width: 980px) {
  .content {
    margin-left: 0px;
    margin-right: 0px;
  }
}

/* さらに小さい画面サイズの時のスタイル (例: スマートフォン) */
@media screen and (max-width: 480px) {
  .content {
    margin-left: 0px;
    margin-right: 0px;
  }
}
  .box {
    width: auto;
    height: 250px;
    margin: 0 auto auto auto;
    border-radius: 5px;
    background: #fff;
    position: relative;
    overflow: hidden;
  }
  
  /* アニメーション設定 */
  .arrowWrap {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 200px
  }
  
  .arrowInner p {
    font-size: 15px;
    text-align: end;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  
  .arrow {
    width: 1px;
    height: 100px;
    margin: 50px auto 0;
    background-color: #eee;
    position: relative;
    overflow: hidden;
  }
  
  .arrow::before {
    content: '';
    width: 1px;
    height: 100px;
    margin: 50px auto 0;
    background-color: #000;
    position: absolute;
    top: -150px;
    left: 0;
    -webkit-animation: arrow 2.5s ease 0s infinite normal;
    animation: arrow 2.5s ease 0s infinite normal;
  }
  
  @keyframes arrow {
    0% {
      -webkit-transform: translate3d(-50%, 0, 0);
      transform: translate3d(-50%, 0, 0);
    }
  
    60% {
      -webkit-transform: translate3d(-50%, 100px, 0);
      transform: translate3d(-50%, 100px, 0);
    }
  
    100% {
      -webkit-transform: translate3d(-50%, 100px, 0);
      transform: translate3d(-50%, 100px, 0);
    }
  }

.header-title {
  font-family: "Kosugi", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.header-menu {
  font-family: "Kosugi", sans-serif;
  font-weight: 200;
  font-style: normal;
}

.navbar-light .navbar-toggler {
  border-color: rgba(0,0,0,0);
}
.navbar-toggler:focus {
  outline: none;
  border: none;
  box-shadow: none;
}


.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(156, 175, 191, 1)' stroke-width='2' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

.explanation {
  margin-top: 20px;
}

.cp_hr01 {
	height: 3px;
	border-width: 0;
	background-image: -webkit-linear-gradient(135deg,
	#AEC1BA 0px,#AEC1BA 2px, transparent 2px, transparent 4px,
	#AEC1BA 4px, #AEC1BA 6px, transparent 6px, transparent);
	background-image:         linear-gradient(-45deg,
	#AEC1BA 0px,#AEC1BA 2px, transparent 2px, transparent 4px,
	#AEC1BA 4px, #AEC1BA 6px, transparent 6px, transparent);
	background-size: 6px 6px;
}


.features-title{
  max-width: 800px;
  margin: 30px auto;
  margin-top: 100px;
}

.features-titlefont{
  font-family: "Zen Maru Gothic", serif;
  color: #F1896B;
  font-size: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight:bold;
  text-align: center;
}
.features-titlefont::before,
.features-titlefont::after {
  content: '';
  width: 3px;
  height: 40px;
  background-color: #AEC1BA;
}
.features-titlefont::before {
  margin-right: 30px;
  transform: rotate(-35deg)
}
.features-titlefont::after {
  margin-left: 30px;
  transform: rotate(35deg)
}

.caption_box {
	display: inline-block;
	width: 300px;
	max-width: 100%;
  height: 400px;
	border: 1px solid #474F67;
	border-radius: 0px;
  border-width: 3pt;
	padding: 1.8em .8em .8em;
	position: relative;
	text-align: left;
}
.caption_box .caption {
	padding: .4em;
	position: absolute;
  width: 60px;
	top: -2em;
	left: 50%;
	transform: translateX(-50%);
	background: #fff;
	white-space: nowrap;
}
.caption_box > :last-child {
	margin-bottom: 0;
}

.caption_box::before,
.caption_box::after {
  content: "";
  width: 55px;
  height: 29px;
  background: #FFF;
  display: inline-block;
  position: absolute;
  top: 99%;
  left: 0%;
  transform: translateX(-50%);
}

.caption_box::after {
  left: -3%;
  top: 95%;
  height: 90px;
  width: 10px;
  transform: translateX(0);
}

.caption_box span::before,
.caption_box span::after {
  content: "";
  width: 55px;
  height: 29px;
  background: #FFF;
  display: inline-block;
  position: absolute;
  top: 99%;
  left: 99%;
  transform: translateX(-50%);
}

.caption_box span::after {
  left: 99%;
  top: 95%;
  height: 80px;
  width: 10px;
  transform: translateX(0);
}

.main-text {
  line-height: 30px;
  margin-left: 20px;
  margin-top:30px
}


.features h4 {
  border-bottom: solid 5px #E3E0D0;
  padding-bottom: 10px;
  margin-left: 35px;
  margin-right: 35px;
}

.features p {
  padding-top: 10px;
  margin-left: 27px;
  margin-right: 27px;
}

.features hr {
  width: 240px;
  height: 4px; /* 太さを指定 */
  background-color: #E3E0D0; /* 線の色を指定 */
  border: none; /* ボーダーをなくす（必要に応じて変更） */
}


.gaiyou{
  padding-top: 100px;
}

.user-flow {
  padding-top: 25px;
  padding-bottom: 50px;
  margin-bottom: 80px;
  margin-top: 100px;
}
.admission {
  background-color: #EBAA92;
}
.viewmore {
  background-color: #AEC1BA;
}
.admission h3 {
  background-color: #f9d592;
}
.viewmore h3 {
  background-color: #D2E9D9;
}
.vertical {
  writing-mode: vertical-rl;
  color: #FFFFFF;
  font-size: 25px;
  font-weight:lighter
}
@media screen and (max-width: 992px){
  .vertical {display:none}
}
.user-flow img {
  max-width: 100%;
  border-radius: 15px;
}
.user-flow h3 {
  position: relative;
  bottom: 50px;
  margin: 0px 10% 0px 10%;
  padding: 10px 0 10px 0;
  border-radius: 10px;
}
@media only screen and (max-width: 992px) {
  .user-flow h3 {
    bottom: 70px;
  }
  .user-flow p {
    margin-top: -30px;
  }
}
.button_solid a{
  background: #eee;
  border-radius: 3px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  max-width: 300px;
  padding: 10px 25px;
  color: #313131;
  transition: 0.3s ease-in-out;
  font-weight: 600;
  box-shadow: 5px 5px 0 #d9c49c;
  border-radius: 50px;
  margin-top: 15px;
}
.button_solid a:hover {
  background-color: #e3d7c0;
  box-shadow: 0 0 0;
  transform: translate(5px, 5px);
  text-decoration: none;
}

/* table01 */
.table{
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: 100px;
  margin-bottom: 100px;
  padding-bottom: 100px;
}


.table {
  width: 100%;
  display: flex;
  padding: 50px auto 50px auto;
  justify-content: center;
  margin-top: 60px; /* 上の余白を増やす */
  margin-bottom: 60px; /* 下の余白を増やす */
  
}


#table01 {
  border-collapse: separate;
  border-spacing: 0;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
  border-radius: 8px;
  overflow: hidden; /* Ensures the border-radius clips the content */
}

#table01 tr {
  border-bottom: 1px solid #e1e1e1;
}

#table01 th,
#table01 td {
  padding: 30px 15px; /* 上下のパディングを30pxに増やす */
  border: none;
  background-color: #fafafa; /* Light gray background for cells */
}

#table01 th {
  background-color: #f0f0f0; /* Slightly different background for header cells */
  color: #474f67; /* Darker text for contrast */
  font-weight: normal;
}

/* First Row of table to have round corners */
#table01 tr:first-child th:first-child {
  border-top-left-radius: 8px;
}

#table01 tr:first-child th:last-child {
  border-top-right-radius: 8px;
}

/* Last Row of table to have round corners */
#table01 tr:last-child td:first-child {
  border-bottom-left-radius: 8px;
}

#table01 tr:last-child td:last-child {
  border-bottom-right-radius: 8px;
}

/* _sp_ */
@media only screen and (max-width: 480px) {
  #table01 th,
  #table01 td {
    width: 100%;
    display: block;
    text-align: left; /* Align text to the left for better readability on mobile */
  }

  #table01 tr:nth-child(even) td {
    background-color: #f7f7f7; /* Striped effect for readability on mobile */
  }

  #table01 th {
    background-color: #e8e8e8; /* Slightly darker background on mobile for the header */
    padding-top: 15px;
  }

  #table01 td {
    padding-top: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e1e1e1; /* Add a separator for stacked cells */
  }

  /* To remove the bottom border for the last cell */
  #table01 td:last-child {
    border-bottom: none;
  }
}
