@charset "UTF-8";

/* =====================
  message
===================== */
.message {
  padding-block: 134px 78px;

  @media only screen and (width <= 768px) {
    padding-block: 24.3vw 26.7vw;
  }

  /* ==== u-inner ==== */
  .u-inner {
    display: block grid;
    grid-template-rows: repeat(auto-fit, minmax(0, min-content));
    grid-template-columns: 381px auto;
    gap: 0 80px;
    max-inline-size: 1200px;

    @media only screen and (width <= 768px) {
      display: block flex;
      flex-direction: column;
    }
  }

  /* ==== u-hgroup ==== */
  .u-hgroup {
    grid-area: 1 / 2 / 2 / 3;
  }

  /* ==== body ==== */
  .body {
    grid-area: 2 / 2 / 3 / 3;
    margin-block-start: 38px;
  }

  /* ==== author ==== */
  .author {
    display: block flex;
    grid-area: 3 / 2 / 4 / 3;
    gap: 20px;
    align-items: center;
    justify-content: flex-end;
    margin-block-start: 2px;
    transform: none;
    translate: -2px 0;

    @media only screen and (width <= 768px) {
      gap: calc((100 / 390) * 21 * 1vw);
      margin-block-start: calc((100 / 390) * 2 * 1vw);
      translate: calc((100 / 390) * 2 * -1 * 1vw) 0;
    }
  }

  /* ==== picture ==== */
  .picture {
    grid-area: 1 / 1 / 5 / 2;
    margin-block-start: 9px;
    border-radius: 8px;

    @media only screen and (width <= 768px) {
      margin-block-start: calc((100 / 390) * 79 * 1vw);
      border-radius: calc((100 / 390) * 8 * 1vw);
    }
  }
}

/* =====================
  profile
===================== */
.profile {
  padding-block: 134px 104px;

  @media only screen and (width <= 768px) {
    padding-block: 24.3vw 26.7vw;
  }

  /* ==== u-inner ==== */
  .u-inner {
    max-inline-size: 1200px;
  }

  /* ==== u-table ==== */
  .u-table {
    margin-block-start: 45px;

    @media only screen and (width <= 768px) {
      margin-block-start: calc((100 / 390) * 45 * 1vw);
    }
  }
}

/* =====================
  access
===================== */
.access {
  padding-block: 95px 97px;

  @media only screen and (width <= 768px) {
    padding-block: 24.3vw 26.7vw;
  }

  /* ==== u-inner ==== */
  .u-inner {
    display: block grid;
    grid-template-rows: repeat(auto-fit, minmax(0, min-content));
    align-items: center;
    justify-content: space-between;
    max-inline-size: 1200px;

    @media only screen and (width <= 768px) {
      display: block flex;
      flex-direction: column;
      align-items: flex-start;
    }
  }

  /* ==== .u-hgroup ==== */
  .u-hgroup {
    grid-area: 1 / 1 / 2 / 3;
  }

  /* ==== iframe ==== */
  & iframe {
    grid-area: 2 / 1 / 3 / 3;
    inline-size: 100%;
    block-size: 381px;
    margin-block-start: 68px;

    @media only screen and (width <= 768px) {
      block-size: calc((100 / 390) * 381 * 1vw);
      margin-block-start: calc((100 / 390) * 68 * 1vw);
    }
  }

  /* ==== address ==== */
  & address {
    grid-area: 3 / 1 / 4 / 2;
    margin-block-start: 36px;

    @media only screen and (width <= 768px) {
      margin-block-start: calc((100 / 390) * 37 * 1vw);
    }
  }

  /* ==== .u-anchor ==== */
  .u-anchor {
    grid-area: 3 / 2 / 4 / 3;
    margin-block-start: 22px;

    @media only screen and (width <= 768px) {
      align-items: center;
      margin-block-start: calc((100 / 390) * 41 * 1vw);
      margin-inline: auto;
    }
  }
}

/* =====================
  history
===================== */
.history {
  padding-block: 134px 135px;

  @media only screen and (width <= 768px) {
    padding-block: 24.3vw 34.6vw;
  }

  /* ==== u-inner ==== */
  .u-inner {
    max-inline-size: 1200px;
  }

  /* ==== u-table ==== */
  .u-table {
    margin-block-start: 45px;

    @media only screen and (width <= 768px) {
      margin-block-start: calc((100 / 390) * 45 * 1vw);
    }
  }
}

/* =====================
  message
===================== */
html[lang='en'] .message {
  padding-block: 134px 104px;

  @media only screen and (width <= 768px) {
    padding-block: calc((100 / 390) * 95 * 1vw) 104px;
  }

  .body {
    margin-block-start: 27px;
    line-height: 1.81;
    text-indent: 10px;
    letter-spacing: -0.1px;
    word-break: normal;

    @media only screen and (width <= 768px) {
      margin-block-start: calc((100 / 390) * 27 * 1vw);
      text-indent: calc((100 / 390) * 10 * 1vw);
      letter-spacing: calc((100 / 390) * -0.1 * 1vw);
    }

    & span {
      padding-inline-start: 3px;

      @media only screen and (width <= 768px) {
        padding-inline-start: calc((100 / 390) * 3 * 1vw);
      }
    }
  }

  .author {
    gap: 18px;
    margin-block-start: 24px;
    font-family: var(--yumin);

    @media only screen and (width <= 768px) {
      gap: calc((100 / 390) * 18 * 1vw);
      margin-block-start: calc((100 / 390) * 24 * 1vw);
    }

    & dt {
      font-size: 18px;
      font-weight: 600;
      letter-spacing: -0.8px;

      @media only screen and (width <= 768px) {
        font-size: calc((100 / 390) * 18 * 1vw);
        letter-spacing: calc((100 / 390) * -0.8 * 1vw);
      }
    }

    & dd {
      font-size: 24px;
      font-weight: 400;
      letter-spacing: -0.8px;

      @media only screen and (width <= 768px) {
        font-size: calc((100 / 390) * 24 * 1vw);
        letter-spacing: calc((100 / 390) * -0.8 * 1vw);
      }
    }
  }
}

/* =====================
  profile
===================== */
html[lang='en'] .profile {
  .u-table {
    margin-block-start: 33px;

    @media only screen and (width <= 768px) {
      margin-block-start: calc((100 / 390) * 33 * 1vw);
    }
  }
}

/* =====================
  access
===================== */
html[lang='en'] .access {
  padding-block: 95px 118px;

  @media only screen and (width <= 768px) {
    padding-block: calc((100 / 390) * 95 * 1vw) calc((100 / 390) * 104 * 1vw);
  }

  & address {
    margin-block-start: 8px;

    @media only screen and (width <= 768px) {
      margin-block-start: calc((100 / 390) * 28 * 1vw);
      word-break: normal;
    }
  }
}

/* =====================
  history
===================== */
html[lang='en'] .history {
  .u-table {
    margin-block-start: 33px;
  }
}
