.astra-instagram {
  padding-top: 240px;
  padding-bottom: 120px;
  position: relative;
  z-index: 1;

  @media screen and (max-width: 768px) {
    padding-top: 70px;
  }
}

.astra-instagram .section-container {

  .astra-instagram-inner {
    display: flex;
    align-items: flex-start;
    margin-bottom: 40px;

    @media screen and (max-width: 1024px) {
      flex-wrap: wrap;
    }
  }

  .sp-more-button {
    display: none;

    @media screen and (max-width: 768px) {
      display: block;
    }

    .more-button {
      width: 214px;
      height: 56px;
      margin-inline: auto;
      margin-bottom: 90px;
      border: 2px solid #4EC3E1;
      border-radius: 60px;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 40px;
      color: #4EC3E1;
      text-decoration: none;
      background-color: transparent;
      font-family: var(--astra-source-code-pro), monospace;
      font-size: 24px;
      font-weight: var(--astra-font-weight-regular);
      cursor: pointer;
    }

  }
}

.astra-instagram .left {
  width: 414px;

  @media screen and (max-width: 1024px) {
    width: 100%;
  }

  .left__more-button {
    margin-top: 68px;

    .more-button {
      width: 214px;
      height: 56px;
      border: 2px solid #4EC3E1;
      border-radius: 60px;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 40px;
      color: #4EC3E1;
      text-decoration: none;
      background-color: transparent;
      font-family: var(--astra-source-code-pro), monospace;
      font-size: 24px;
      font-weight: var(--astra-font-weight-regular);
      cursor: pointer;

      @media screen and (max-width: 768px) {
        width: 75px;
        height: 36px;
        font-size: 14px;
        font-weight: var(--astra-font-weight-light);
      }

      /*
       * 日本語は「もっと見る」で、英語の「More」より横に長い。幅を固定した
       * ままだと文字が折り返し、高さの決まった枠から縦にはみ出す。日本語の
       * ときだけ、元の幅を下限にして中身にあわせて伸ばす（英語表示には
       * lang-ja が付かないので、英語の見た目は変わらない）。
       */
      body.lang-ja & {
        width: fit-content;
        min-width: 214px;
        padding-inline: 24px;
        white-space: nowrap;

        @media screen and (max-width: 768px) {
          min-width: 75px;
          padding-inline: 16px;
        }
      }

      .more-button__arrow {
        width: 48px;
        display: block;

        svg {
          width: 100%;
          display: block;
        }
      }
    }
  }
}

.astra-instagram .right {
  flex: 1;
  text-align: right;

  .instagram-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;

    @media screen and (max-width: 1024px) {
      margin-top: 24px;
    }

    /*
     * 正方形に固定する。写真が縦長だと行の高さが写真の縦横比に引きずられ、
     * セクション全体が極端に間延びするため。Instagram のグリッド自体も正方形。
     */
    .instagram-grid__item {
      position: relative;
      aspect-ratio: 1 / 1;
      overflow: hidden;

      /* リンクありの枠。a が inline のままだと img の height: 100% が効かない。 */
      >a {
        width: 100%;
        height: 100%;
        display: block;
      }

      img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
      }
    }
  }
}
