
html {
    scroll-behavior: smooth;
}

.str-outer:not(.of-full) {
    padding: 0;
}

.main-page {
  width: 900px;
  margin: 0 auto;
    color: #333;
}

.main-page a {
  display: block;
}

.main-page h1 {
  position: relative;
  margin: 50px 0 100px;
  text-align: center;
  font-size: 320%;
  line-height: 1.25;
  border: none;
}

.main-page h1:before {
  content: '';
  position: absolute;
  bottom: -20%;
  display: inline-block;
  width: 50%;
  height: 1px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color: #333;
}

.main-page h2 {
  padding: 30px 0;
  font-weight: 550;
  text-align: center;
  background: #d5d5d5;
}

.main-page h3 {
  margin: 0;
  padding: 0;
  text-align: center;
  font-weight: 550;
  border-bottom: unset;
}

/* タイトル */
.title-text {
  margin: 50px;
  text-align: center;
}

/* index */
.wrap-index {
  margin: 20px 50px;
  padding: 50px 60px 30px;
  border: 1px solid #d5d5d5;
}

.wrap-index a {
  margin-bottom: 20px;
  text-decoration: underline;
}

/* コンテンツ */
.wrap-content {
  margin: 100px 0;
}

.main-text {
  margin: 50px;
  line-height: 1.65;
}

.wrap-img {
  margin: 0 15%;
  text-align: center;
}

.three-images {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2%;
}

.three-images img {
  max-width: 40%;
  height: auto;
}

.arrow-img {
  max-width: 2%!important;
}

.wrap-flex-content {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2%;
}

.wrap-flex-content section {
  width: 48%;
  display: flex;
  flex-direction: column;
  margin-top: 50px;
}

.flex-text {
  flex-grow: 1;
  margin: 30px 20px;
  line-height: 1.65;
}


/* 共通 */

.content-inner {
    padding-top: 70px;
    margin-top: -70px;
}

.note {
  font-size: 80%;
  font-weight: 500;
  padding-left: 1em;
  text-indent: -1em;
}

/* ボタン */

.right-arrow  {
  display: block;
  position: relative;
  margin: 30px;
  padding: 25px;
  font-size: 120%;
  text-align: center;
  color: #fff;
  background-color: #333;
  text-decoration: none;
}

.right-arrow::after {
  display: block;
  width: 12px;
  height: 12px;
  position: absolute;
  top: 50%;
  right: 30px;
  content: '';
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

.right-arrow-short  {
  display: block;
  position: relative;
  font-size: 3.5vw;
  text-align: center;
  text-decoration: underline;
  color: #333;
}

.right-arrow-short::after {
  content: " >";
  font-size: 4vw;
}

/* 動くマーカー */
.js-marker {
  display: inline;
  position: relative;
  background-image: linear-gradient(90deg, #ffff66, #ffff66); /* 単色の場合は同じ色、グラデーションさせる場合は別々の色 */
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 100%; /* '30%'の部分にマーカーの太さを記入 */
  transition: all 1s ease-in-out; /* マーカーを引く速度を調整 */
}

/* アニメーション発火時 */
.js-marker.inview {
  background-size: 100% 100%; /* '30%'の部分は上で設定した太さに合わせる */
}