@charset "UTF-8";
.main {
  /* =====================
    MV
  ===================== */
  .u-mv {
    background-image: url('../img/company/mv.png');
  }

  /* =====================
    greeting
  ===================== */
  .greeting {
    position: relative;
    padding-block-start: 120px;
    padding-block-end: 120px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-image: url('../img/company/greeting_bg.png');

    @media only screen and (width <= 768px) {
      padding-block: calc((100 / 390) * 64 * 1vw) calc((100 / 390) * 88 * 1vw);
    }

    .u-inner {
      position: relative;

      &::before {
        content: '';
        display: block flow;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        background-image: url('../img/company/icon_bg.svg');
        inline-size: 337px;
        block-size: 259px;
        pointer-events: none;
        position: absolute;
        right: 9px;
        bottom: -70px;
      }
      @media only screen and (width <= 768px) {
        &::before {
          aspect-ratio: 337/259;
          inline-size: calc((100 / 390) * 220 * 1vw);
          block-size: auto;
          pointer-events: none;
          position: absolute;
          right: calc((100 / 390) * 9 * 1vw);
          bottom: calc((100 / 390) * -88 * 1vw);
        }
      }

      & h3.catch {
        font-family: var(--serif);
        font-size: 32px;
        font-weight: 500;
        text-align: center;
        margin-block-start: 57px;

        @media only screen and (width <= 768px) {
          font-size: calc((100 / 390) * 24 * 1vw);
          margin-block-start: calc((100 / 390) * 48 * 1vw);
        }
      }

      .unit {
        position: relative;
        margin-block-start: 32px;
        text-align: center;

        @media only screen and (width <= 768px) {
          text-align: left;
          margin-block-start: calc((100 / 390) * 16 * 1vw);
        }
        .description {
          margin-block-start: 1.52em;
        }
      }

      .name-set {
        position: relative;
        display: block flex;
        align-items: baseline;
        justify-content: center;
        gap: 24px;
        margin-block-start: 32px;

        @media only screen and (width <= 768px) {
          gap: calc((100 / 390) * 24 * 1vw);
          justify-content: end;
          margin-block-start: calc((100 / 390) * 32 * 1vw);
          padding-inline: calc((100 / 390) * 8 * 1vw);
        }

        & dd {
          font-family: var(--name);
          font-size: 24px;
          font-weight: bold;
          line-height: 1.5;

          @media only screen and (width <= 768px) {
            font-size: calc((100 / 390) * 22 * 1vw);
          }
        }
      }
    }
  }
  /* =====================
    Outline
  ===================== */
  .outline {
    padding-block: 120px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-image: url('../img/company/outline_bg.png');
    inline-size: 100%;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 64 * 1vw);
      padding-block-end: calc((100 / 390) * 64 * 1vw);
    }

    .u-inner {
      .wrap {
        margin-inline: 50px;
        background-color: #fff;
        padding-inline: 80px;
        padding-block: 80px;
        border-radius: 10px;

        @media only screen and (width <= 768px) {
          margin-inline: 0;
          padding-inline: calc((100 / 390) * 16 * 1vw);
          padding-block: calc((100 / 390) * 64 * 1vw);
          border-radius: calc((100 / 390) * 10 * 1vw);
        }

        .u-table {
          margin-block-start: 65px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 46 * 1vw);
          }
        }
      }
    }
  }

  /* =====================
    access
  ===================== */
  .access {
    position: relative;
    padding-block: 120px;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 64 * 1vw);
      padding-block-end: calc((100 / 390) * 64 * 1vw);
    }
    .u-inner {
      .list {
        margin-inline: 50px;
        margin-block-start: 60px;

        @media only screen and (width <= 768px) {
          margin-inline: 0;
          margin-block-start: calc((100 / 390) * 48 * 1vw);
        }

        .item {
          & iframe {
            inline-size: 100%;
            block-size: 400px;

            @media only screen and (width <= 768px) {
              block-size: calc((100 / 390) * 320 * 1vw);
            }
          }

          .address {
            padding-inline: 40px;
            display: block grid;
            grid-template-columns: 90px 1fr max-content;
            align-items: start;
            justify-content: space-between;
            column-gap: 24px;
            margin-block-start: 24px;

            @media only screen and (width <= 768px) {
              padding-inline: 0;
              grid-template-columns: max-content 1fr;
              column-gap: calc((100 / 390) * 32 * 1vw);
              row-gap: calc((100 / 390) * 24 * 1vw);
              margin-block-start: calc((100 / 390) * 24 * 1vw);
            }

            h3.title {
              position: relative;
              font-size: 20px;
              font-weight: 500;
              color: var(--primary);
              display: block flex;
              align-items: center;
              gap: 8px;

              @media only screen and (width <= 768px) {
                grid-area: 1/1/2/2;
                font-size: calc((100 / 390) * 20 * 1vw);
                gap: calc((100 / 390) * 8 * 1vw);
              }

              &::before {
                content: '';
                display: block;
                background-repeat: no-repeat;
                background-size: contain;
                background-position: center;
                background-image: url('../img/_common/icon_pin.svg');
                inline-size: 14px;
                aspect-ratio: 14/21;
                flex-shrink: 0;
              }

              @media only screen and (width <= 768px) {
                &::before {
                  inline-size: calc((100 / 390) * 14 * 1vw);
                }
              }
            }
            @media only screen and (width <= 768px) {
              & address {
                grid-area: 1/2/2/3;
              }
              .u-anchor {
                grid-area: 2/1/3/3;
                margin-inline: auto;
              }
            }
          }

          & + .item {
            margin-block-start: 80px;
          }
        }
      }
    }
  }
}
