@media screen and (min-width: 768px) {


  body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    margin: 0;
  }

  main {
    flex: 1;
  }

  .kv {
    width: auto;
    height: auto;
    background: url(../img/kv_bg.png) no-repeat;
    background-size: cover;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    padding-top: 100px;
  }

  .kv__desc h1 {
    font-size: 3.6rem;

    span {
      color: #ff7f00;
      padding-left: 8px;
    }
  }

  .kv__img {
    width: 42vw;
    position: absolute;
    left: 6%;
    top: 74%;
    transform: translateY(-50%) scale(0.5);
    z-index: 20;
  }

  .kv__desc {
    width: auto;
    margin: 0 auto;
    transform: translateY(-50%);
    z-index: 30;
    position: relative;
  }

  .kv-left {
    width: 50%;
  }

  .kv-right {
    width: 38%;
  }
}

/* 
@media (min-width: 1024px) {}

@media (min-width: 1280px) {

  body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    margin: 0;
  }

  main {
    flex: 1;
  }

  .kv {
    width: auto;
    height: 40vw;
    background: url(../img/kv_bg.png) no-repeat;
    background-size: cover;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .kv__desc h1 {
    font-size: 54px;

    span {
      color: #ff7f00;
      padding-left: 8px;
    }
  }

  .kv__img {
    width: 42vw;
    position: absolute;
    left: 12.34vw;
    top: 68%;
    transform: translateY(-50%) scale(0.5);
    z-index: 20;
  }

  .kv__desc {
    width: auto;
    margin: 0 auto;
    transform: translateY(-50%);
    z-index: 30;
    position: relative;
  }

  .kv-left {
    width: 45%;
  }

  .kv-right {
    width: 38%;
  }
} */

@media screen and (min-width: 768px) {
  .kv {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: start;
    gap: 48px;

    width: 100%;
    height: auto;
    padding-block: 64px;

    /* 背景は全幅のまま、内容の幅を最大1200pxにする */
    padding-inline: max(32px, calc((100% - 1200px) / 2));
  }

  .kv-left,
  .kv-right {
    width: 100%;
    min-width: 0;
  }

  .kv-left {
    display: flex;
    flex-direction: column;

    /* 紹介文と画像の間隔を一定にする */
    gap: 32px;
  }

  .kv__desc {
    width: 100%;
    margin: 0;
    transform: none;
  }

  .kv__img {
    /* 画像を紹介文の下に通常の配置で並べる */
    position: static;
    inset: auto;
    transform: none;

    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }

  .kv__img img {
    width: 100%;
    height: auto;
  }

  .kv__desc h1 {
    margin-bottom: 24px;
  }

  .kv__desc h1 span {
    /* 大画面で文字が大きくなりすぎないようにする */
    font-size: clamp(32px, 3vw, 52px);
  }

  .kv-text {
    /* 画像全体の縮小を解除するため、注記の文字サイズも調整 */
    font-size: 14px;
    text-align: center;
  }
}

/* タブレットでは紹介・画像・フォームの順に縦に並べる */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .kv {
    grid-template-columns: minmax(0, 1fr);
  }
}