@charset "UTF-8";

/* Original hero photos align pixel-for-pixel with the recolored artwork.
   Restore only the background beyond the form frame; keep the artwork intact. */
.hero-background-restore {
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
  clip-path: inset(0 0 0 88.125%); /* desktop: x >= 5076 of 5760 */
}

.hero-background-restore img {
  display: block;
  width: 100%;
  height: 100%;
}

@media (max-width: 767px) {
  .hero-background-restore {
    /* Mobile: the left, right and bottom margins around the lower form. */
    clip-path: polygon(
      0 46%, 4.84375% 46%, 4.84375% 98.736842%,
      95.15625% 98.736842%, 95.15625% 46%,
      100% 46%, 100% 100%, 0 100%
    );
  }
}

.blank {
  border: 5px solid transparent;
  animation: blink 1s infinite;
}

.blank-radius {
  border-radius: 40px;
  border: 5px solid transparent;
  animation: blink 1s infinite;
}

@keyframes blink {
  0% {
    border-color: transparent;
  }
  50% {
    border-color: red;
  }
  100% {
    border-color: transparent;
  }
}
.req::after {
  content: "必須";
  color: red;
  font-weight: bold;
  font-size: 0.8em;
  margin-left: 0.25em;
}
