.input-form {
  border: 1px solid #b1b1b1;
  width: auto;
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding: 50px;
}

.key-visual {
  position: relative;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
}
.key-visual img {
  width: 100%;
  height: auto;
  display: block;
}

/* テキストオーバーレイ（PC/SP共通） */
.key-visual__overlay {
  position: absolute;
  top: 50%;
  left: 20%;
  transform: translateY(-50%);
  color: #fff;
  padding: 1em 1em 1em 3em;
  z-index: 2;
}
.key-visual__catchphrase {
  font-weight: bold;
  font-size: 20px;
  margin: 0 0 0.5em;
}
.title--lv1 {
  margin: 0;
}
.text-shadow {
  text-shadow: #393939 0px 0px 6px;
}
.sub-title--lv2 {
  font-size: 1.8rem;
}

/* SP用背景画像（PCでは非表示） */
.key-visual > .sp-img {
  display: none;
}
.sp-only {
  display: none;
}

@media (max-width: 1460px) {
  .key-visual__overlay {
    left: 0;
  }
}

@media (max-width: 760px) {
  .pc-only {
    display: none;
  }
  .sp-only {
    display: inline;
  }

  /* PC用imgを隠し、SP用背景を表示 */
  .key-visual img {
    display: none;
  }
  .key-visual > .sp-img {
    display: block;
    background-image: url("../images/form/keyvisual-1_sp.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom;
    width: 100%;
    /* 画像のアスペクト比に合わせて調整 */
    aspect-ratio: 4 / 3;
    min-height: 280px;
  }

  /* テキストオーバーレイ（SP調整） */
  .key-visual__overlay {
    top: 30%;
    padding: 0.8em 1em;
  }
  .key-visual__catchphrase {
    font-size: 14px;
  }
  .title--lv1 {
    font-size: 22px !important;
  }
  .sub-title--lv2 {
    font-size: 1rem;
  }
  .input-form {
    width: 100%;
  }
}

ol.number-list {
  list-style: none;
  counter-reset: num;
  padding-left: 0;
}
ol.number-list li {
  counter-increment: num;
  position: relative;
  padding-left: 2em;
}
ol.number-list li::before {
  content: "" counter(num) "）";
  position: absolute;
  left: 0;
}

.pdf-file {
  border: 1px solid #c2c2c2;
  margin: 20px;
  border-radius: 30px;
  justify-content: left;
  display: flex;
  min-height: 100px;
  align-items: center;
}

#attention {
  margin-top: 100px;
  border: 1px solid #c2c2c2;
  padding: 30px 20px 20px 20px;
  width: 100%;
}
