/*==================================================

** form common
==================================================*/
.main .form-box {
  background: rgba(221, 221, 221, 0.2);
  padding: 64px 12.1%; }
.main .form-row {
  display: grid;
  grid-template-columns: 190px 1fr; }
  .main .form-row + .form-row {
    margin-top: 24px; }
.main .form-dt {
  margin-top: 13px; }
  .main .form-dt.must::after {
    content: '';
    display: inline-block;
    aspect-ratio: 1;
    width: 22px;
    background: url("../img/common/form_ico_must.svg") no-repeat center center/contain;
    vertical-align: -6px; }
.main .form-agree {
  margin-top: 48px; }
  .main .form-agree > :first-child {
    margin-top: 0; }
  .main .form-agree p {
    font-size: 1.6rem;
    text-align: center; }
  .main .form-agree .agree label {
    display: block;
    width: max-content;
    margin: 24px auto 0;
    position: relative;
    padding-left: 28px; }
    .main .form-agree .agree label::before {
      content: '';
      display: block;
      aspect-ratio: 1;
      width: 20px;
      border: 1px solid #ddd;
      border-radius: 4px;
      background: no-repeat center center/11px auto,#fff;
      position: absolute;
      left: 0;
      top: -3px; }
    .main .form-agree .agree label:has(input:checked)::before {
      background-image: url("../img/common/form_ico_check_rd.svg"); }
  .main .form-agree .agree input {
    position: absolute;
    left: 0;
    top: 0;
    padding: 0;
    opacity: 0; }
.main .form-btn {
  margin-top: 48px; }
  .main .form-btn .btn-submit {
    border: none;
    display: block;
    width: 240px;
    height: 48px;
    border-radius: 0;
    color: #fff;
    background: #393f40;
    margin: auto;
    font: inherit;
    font-size: 1.4rem;
    cursor: pointer;
    transition: all 0.4s; }
    .main .form-btn .btn-submit:hover {
      background: #ed796d;
      transition: all 0.6s; }
.main .form input,
.main .form textarea,
.main .form select {
  border: 1px solid #ddd;
  border-radius: 4px;
  width: 100%;
  padding-inline: 11px;
  padding-block: 4px 0;
  background-color: #fff;
  line-height: 1.5; }
.main .form input {
  height: 46px; }
.main .form textarea {
  max-width: 100%;
  min-height: 160px;
  padding-block: 11px; }
.main .form select {
  height: 46px;
  padding-inline: 11px 40px;
  background: url("../img/common/ico_select_bk.svg") no-repeat right 18px center/13px auto, #fff; }
.main .form .size-m {
  max-width: 360px; }
.main .wpcf7 .wpcf7-radio .wpcf7-list-item, .main .wpcf7 .wpcf7-checkbox .wpcf7-list-item {
  display: block;
  margin: 0; }
  .main .wpcf7 .wpcf7-radio .wpcf7-list-item + .wpcf7-list-item, .main .wpcf7 .wpcf7-checkbox .wpcf7-list-item + .wpcf7-list-item {
    margin-top: 8px; }
.main .wpcf7 .wpcf7-form-control-wrap {
  display: block; }
.main .wpcf7 .wpcf7-acceptance {
  display: block;
  text-align: center; }
  .main .wpcf7 .wpcf7-acceptance .wpcf7-list-item {
    margin: 0;
    padding: 0; }
.main .wpcf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 8px;
  color: #ed796d; }
.main .wpcf7 .wpcf7-response-output {
  margin: 32px auto 0;
  padding: 16px 16px 14px;
  line-height: 1.6;
  text-align: center;
  border-color: #ed796d !important; }
@media screen and (max-width: 960px) {
  .main .form-box {
    padding: 64px 5.5%; }
  .main .form-row {
    grid-template-columns: 1fr; }
  .main .form-dd {
    margin-top: 16px; } }
@media screen and (max-width: 767px) {
  .main .form-dt {
    margin-top: 0; }
  .main .form-btn .btn-submit {
    max-width: 240px; }
  .main .form .size-m {
    max-width: 100%; } }

/*==================================================

** contact
==================================================*/
