/*
メディアクエリを使用したレスポンシブデザイン
- PCファーストで設計しているので、部分的に@media (max-width: 500px)などで指定する
*/

.front_page_contents {
  display: flex;
  flex-direction: column;
  gap: 5em;
  justify-content: center;
  align-items: stretch;
  max-width: 800px;
  margin-inline: auto;
  padding-bottom: 5em;

  @media (min-width: 1000px) {
    max-width: none;
    margin-inline: 0;
    grid-area: content; /* PCではグリッドのcontentエリアに配置 */
  }

  section > h2,
  nav > h2 {
    text-align: center;
    margin-bottom: 2rem;
    font-size: 2em;
  }
}

.gray_box {
  margin-bottom: unset;

  @media (min-width: 1000px) {
    max-width: none;
    margin-inline: 0;
  }
}

.main-visual-image {
  margin-bottom: 2em;

  @media (min-width: 1000px) {
    grid-area: main_visual; /* PCではmain_visualエリアに配置 */
  }
}

/*
            スタンプカードボタン
            - 画面右下にFixed
            - ホバーすると、ツールチップをボタンの左側に表示する
            - ツールチップは吹き出しのデザインにする
            - .fixed_stamp_buttonとツールチップの背景はwood_yoko.jpgを利用する。テキストは白。
            - スタンプは、点線の丸の中に「クリック」という文字を表示する。-10degの角度で表示する
            - スタンプの下には「スタンプを押す」という文字を表示する
            */

.fixed_stamp_button {
  position: fixed;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  align-items: center;
  justify-content: center;
  padding: 0.5em;
  background-image: url(../images/common/wood_yoko.jpg);
  background-color: #654b30;
  background-blend-mode: multiply;
  background-size: cover;
  box-shadow: 0px 0px 15px -5px #777777;
  z-index: 1;
  transition: opacity 1s ease-in-out;

  width: 80px;
  bottom: 0;
  right: 0;
  border-radius: 10px 0 0 0;

  svg {
    width: 100%;
    height: auto;
    transition: transform 0.3s ease-in-out;

    &.is_stamped {
      /*禁止カーソル*/
      cursor: not-allowed;
      transform: rotate(-10deg);
    }

    &.isnt_stamped {
      /*ポインター*/
      cursor: pointer;

      &:hover {
        transform: rotate(-10deg);
      }
    }
  }

  p {
    &.stamp_msg {
      color: white;
      font-size: 0.8em;
      text-align: center;
    }

    &.tooltip {
      display: block;
      position: absolute;
      top: 50%;
      right: calc(100% + 20px);
      width: max-content;
      max-width: 20em;
      padding: 1em;
      background-image: url(../images/common/wood_yoko.jpg);
      background-color: #654b30;
      background-blend-mode: multiply;
      background-size: cover;
      border-radius: 10px;
      box-shadow: 0px 0px 15px -5px #777777;
      z-index: 1;
      color: white;
      font-size: 0.8em;
      transform: translateY(-50%);
      transition: opacity 0.3s ease-in-out;
      opacity: 0;

      &::before {
        content: "";
        position: absolute;
        top: 50%;
        left: calc(100% + 10px);
        width: 0;
        height: 0;
        border: 10px solid transparent;
        border-left-color: #654b30;
        border-right: 0;
        margin-top: -10px;
        margin-left: -10px;
      }

      &.show_tooltip {
        opacity: 1;
      }
    }
  }
}

.about {
  display: flex;
  max-width: 800px;
  margin: 0 auto;
  align-items: flex-start;
  justify-content: center;

  flex-direction: column;
  gap: 1em;

  .left {
    flex-direction: column;
    flex-basis: 30%;

    display: grid;
    gap: 1em;
    grid-template-columns: auto 1fr;

    h2 {
      font-size: 2.5em;
      color: #634529;
      line-height: 1.5;
      text-align: left;
    }

    img {
      width: 100%;
      height: auto;
    }
  }

  .right {
    display: flex;
    flex-direction: column;
    gap: 1em;
    justify-content: flex-start;
  }
}

/*
    公式Instagramセクション
    - セクション全体を中央寄せにする
    - テキストも中央寄せにする
    - InstagramロゴのSVGとアカウント名を縦に並べ、中央寄せにする
    - ロゴのサイズを調整する
*/
.instagram_section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1em;
  max-width: 800px;
  margin-inline: auto;
  text-align: center;

  h2 {
    font-size: 2em;
    color: #634529;
    margin-bottom: 0.5em;
  }

  p {
    margin-bottom: 1em;
  }

  a {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #333;
    font-weight: bold;

    i.fab.fa-instagram {
      font-size: 3em; /* アイコンサイズを調整 */
      margin-bottom: 0.5em;
    }

    &:hover {
      opacity: 0.7;
    }
  }

  @media (min-width: 1000px) {
    a {
      flex-direction: row;

      i.fab.fa-instagram {
        margin-right: 0.5em;
        margin-bottom: 0;
      }
    }
  }
}

/*
    初めての方はこちら
    - 2x2のグリッドで表示する
    - 1枚のカードの高さが同じになるようにする
    */

.for_beginner ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1em;

  li {
    display: contents;

    a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      border-radius: 10px;
      text-decoration: none;
      background-image: url(../images/common/wood_yoko.jpg);
      background-color: #4f4437;
      background-blend-mode: overlay;
      background-size: cover;
      font-family: "RocknRoll One", sans-serif;
      color: white;
      font-size: 1.1em;
      padding: 1em;
      box-shadow: 0px 0px 15px -5px #777777;
      min-height: 80px;
      line-height: 1.5;
      align-content: center;
      text-align: center;

      span {
        display: inline;
      }

      &:hover {
        background-color: #634529;
      }
    }
  }
}

/*リスト全体*/

.comment_list {
  list-style: none;
  max-width: 800px;
  display: grid;
  background: #ffffff;
  border-radius: 10px;
  box-shadow: 0px 0px 15px -5px #777777;

  grid-template-columns: 1fr;
  gap: 1em;
  padding: 1.5em;

  > li {
    display: inline-flex;
    gap: 1em;
    flex-direction: column;
    align-items: flex-start;
    border: 1px solid #ccc;
    padding: 1.4em;
    box-sizing: border-box;
    border-radius: 10px;
    cursor: pointer;
    text-decoration: none;

    &:hover {
      background: #f5f5f5;
    }

    .row {
      display: grid;
      grid-template-columns: 1fr 2fr;
      gap: 0.5em;
      width: 100%;
    }

    .comment_post_title {
      font-size: 12px;
      color: #999;
    }

    .comment_author {
      display: flex;
      gap: 0.5em;
      align-items: center;
      flex-direction: column;

      .author_icon {
        width: 50px;
        height: 50px;
        border-radius: 50%;
        overflow: hidden;
        border: 1px solid #ccc;

        img {
          width: 100%;
          height: auto;
        }
      }

      .author_name {
        font-size: 12px;
      }
    }

    .comment {
      display: flex;
      gap: 0.5em;
      align-items: flex-start;
      flex-direction: column;

      /*吹き出しデザイン*/
      position: relative;
      padding: 1em;
      border-radius: 10px;
      background: #fff;
      box-shadow: 0px 0px 15px -5px #777777;

      &:before {
        content: "";
        position: absolute;
        top: 50%;
        left: -10px;
        width: 0;
        height: 0;
        border: 10px solid transparent;
        border-right-color: #fff;
        border-left: 0;
        border-bottom: 0;
        margin-top: -10px;
      }

      .comment_date {
        font-size: 12px;
        color: #999;
      }

      .comment_content {
        font-size: 14px;
        font-weight: bold;
        color: #ff7f30;
      }
    }
  }
}

/*募集中のお題*/
.dai_area {
  /* 1つでも見やすいように中央寄せ */
  /* max-width: 600px; */ /* 横幅いっぱいに広げるためコメントアウト */
  /* margin: 0 auto; */ /* 横幅いっぱいに広げるためコメントアウト */

  .article_list {
    /* max-width: 600px; */ /* 親要素で制御するためコメントアウト */
    /* margin: 0 auto; */ /* 親要素で制御するためコメントアウト */

    li {
      /* 画像とメタ情報を横並びにする */
      grid-template: "img meta" auto / 1fr 2fr; /* 変更 */
      gap: 1.5em; /* ギャップを調整 */
      padding: 1.5em;
      transition: transform 0.2s ease, box-shadow 0.2s ease;

      &:hover {
        background-color: #f5f5f5;
        transform: translateY(-2px);
        box-shadow: 0px 4px 20px -5px #777777;
      }

      > img,
      > svg {
        /* 画像のサイズを調整 */
        max-width: 150px; /* 横並びになるので小さめに */
        margin: 0; /* 中央寄せを解除 */
        aspect-ratio: 1 / 1;
        object-fit: cover;
        border-radius: 10px;
      }

      .article_list_meta {
        text-align: left; /* 左寄せに戻す */
        max-width: none;
        display: flex; /* Flexboxで要素を縦に並べる */
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start; /* 左寄せ */
        gap: 0.3em; /* 要素間の隙間を調整 */

        .title {
          font-size: 16px;
          margin-bottom: 0; /* 不要なマージンを削除 */
          line-height: 1.4;
        }

        .date {
          margin-bottom: 0; /* 不要なマージンを削除 */
        }

        .comment {
          font-weight: bold;
          color: #ff7f30;
        }
      }
    }
  }
}

/*
PCで健康応援コンテンツのみ2カラム表示にするためのスタイル
*/
@media (min-width: 1000px) {
  .information.column .article_list {
    grid-template-columns: repeat(2, 1fr); /* PCで2カラムにする */
    gap: 2em; /* 必要に応じて調整 */
  }

  .information.column .article_list li {
    grid-template: "img meta" auto / 1fr 2fr; /* PCでは画像とメタ情報を横並びにする */
  }
}
