.index-ttl-block {
  height: calc(100dvh - 67px);
  background: url(../img/main_bg.jpg) center no-repeat;
  background-size: cover;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  transition-property: opacity;
  transition-duration: 1.5s;
  opacity: 0; }
  .index-ttl-block.show {
    opacity: 1; }
    .index-ttl-block.show .index-ttl {
      opacity: 1; }
    .index-ttl-block.show p {
      opacity: 1; }
  .index-ttl-block p {
    font-family: 'Noto Serif JP', "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    font-size: 24px;
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1.8;
    color: #333;
    text-shadow: 0px 0px 2px #ffffff, 0px 0px 8px #ffffff;
    transition-property: opacity;
    transition-duration: 0.6s;
    transition-delay: 1.0s;
    opacity: 0;
    margin-top: 30px; }

.index-ttl {
  transition-property: opacity;
  transition-duration: 0.6s;
  transition-delay: 0.5s;
  opacity: 0; }

.topic-block {
  margin: 120px 0;
  min-height: 530px;
  display: flex;
  transition-property: all;
  transition-duration: 0.6s;
  opacity: 0;
  transform: translateY(60px); }
  .topic-block.show {
    opacity: 1;
    transform: translateY(0); }
  .topic-block.episode-wrap {
    flex-direction: row-reverse; }
    .topic-block.episode-wrap .index-img {
      background-image: url(../img/img_episode.jpg);
      border-radius: 15px 0 0 15px; }
    .topic-block.episode-wrap .index-cnt {
      justify-content: center; }
    .topic-block.episode-wrap .index-cnt-detail {
      padding: 20px 8% 20px 20px; }
  .topic-block.history-wrap .index-img {
    background-image: url(../img/img_history.jpg);
    border-radius: 0 15px 15px 0; }
  .topic-block.history-wrap .index-cnt-detail {
    padding: 20px 20px 20px 8%; }

.index-img {
  width: 55%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover; }
  .index-img img {
    opacity: 0; }

.index-cnt {
  width: 45%;
  box-sizing: border-box;
  display: flex;
  align-items: center; }

.index-cnt-detail {
  max-width: 530px;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 2.0;
  font-weight: bold;
  box-sizing: border-box; }

.topic-ttl-capiton {
  font-family: 'Noto Serif JP', "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: 24px;
  font-size: 2.4rem;
  color: #009944;
  margin-bottom: 5px; }
  .topic-ttl-capiton img {
    margin-right: 5px; }

.topic-ttl {
  font-family: 'Noto Serif JP', "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.0;
  color: #009944;
  margin-bottom: 20px; }
  .topic-ttl span {
    font-size: 86px;
    font-size: 8.6rem; }

.topic-link {
  width: 260px;
  margin-top: 30px; }
  .topic-link a {
    display: block;
    background-color: #009944;
    font-family: 'Noto Serif JP', "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    font-size: 20px;
    font-size: 2.0rem;
    color: #FFF;
    text-align: center;
    padding: 3px;
    border-radius: 50px; }
    .topic-link a:hover {
      text-decoration: none; }

.chronologically-wrap {
  margin-top: 120px;
  padding-bottom: 100px;
  transition-property: all;
  transition-duration: 0.6s;
  opacity: 0;
  transform: translateY(60px); }
  .chronologically-wrap.show {
    opacity: 1;
    transform: translateY(0); }
  .chronologically-wrap::before {
    content: "";
    display: block;
    width: 100%;
    height: 480px;
    background-image: url(../img/img_chronologically.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover; }

.chronologically-cnt {
  max-width: 660px;
  margin: 0 auto;
  padding: 50px 20px 0;
  font-size: 18px;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 2.0; }
  .chronologically-cnt .topic-ttl-capiton {
    text-align: center; }
  .chronologically-cnt .topic-ttl {
    text-align: center; }
  .chronologically-cnt p {
    text-align: center; }
    .chronologically-cnt p span {
      display: inline-block; }
  .chronologically-cnt .topic-link {
    margin: 30px auto 0; }

.sns-wrap {
  width: 100%;
  margin: 0 auto; }
  .sns-wrap .sns-header {
    margin-bottom: 1em;
    text-align: center; }
    .sns-wrap .sns-header .sns-type {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10px; }
    .sns-wrap .sns-header h2 {
      font-size: 38px;
      font-size: 3.8rem;
      font-weight: bold;
      color: #009944; }
    @media only screen and (max-width: 768px) {
    .index-ttl-block {
      height: calc(100dvh - 54px); }
      .index-ttl-block p {
        font-size: 1.6rem;
        line-height: 2;
        margin-top: 30px; }
        .index-ttl-block p span {
          display: inline-block; }
    .index-ttl {
      width: 240px; }
    .topic-block {
      margin: 60px 0;
      min-height: initial;
      display: block; }
        .topic-block.episode-wrap .index-img {
          margin-left: auto; }
        .topic-block.episode-wrap .index-cnt-detail {
          padding: 30px 20px 0; }
      .topic-block.history-wrap .index-cnt-detail {
        width: 100%;
        box-sizing: border-box;
        padding: 30px 20px 0; }
        .topic-block.history-wrap .index-cnt-detail p {
          text-align: center; }
    .index-img {
      width: 94%;
      background: none; }
      .index-img img {
        opacity: 1; }
    .index-cnt {
      width: auto; }
    .index-cnt-detail {
      font-size: 1.4rem; }
    .topic-ttl-capiton {
      font-size: 2.0rem;
      text-align: center; }
    .topic-ttl {
      font-size: 3.0rem;
      text-align: center; }
      .topic-ttl span {
        font-size: 6.0rem; }
    .topic-link {
      width: 200px;
      margin: 30px auto 0; }
      .topic-link a {
        font-size: 1.7rem; }
    .chronologically-wrap {
      margin-top: 60px;
      padding-bottom: 50px; }
      .chronologically-wrap::before {
        background-image: url(../img/img_chronologically_sp.jpg);
        height: 240px; }
    .chronologically-cnt {
      padding: 30px 20px 0;
      font-size: 1.4rem; }
        .sns-wrap .sns-header h2 {
          font-size: 2.4rem; } }
