#index.contact .main {
  overflow-x: clip;
}

#index.contact .main__grid {
  position: relative;
  display: flex;
  width: 100%;
  max-width: 13.6rem;
  margin-inline: auto;
}

#index.contact .main__info {
  --beveled-cut: 0.04rem;
  flex: 0 0 6.6rem;
  min-width: 0;
  padding: 0.66rem 0.4rem 0.7rem 1.4rem;
  background: var(--color-primary);
  color: var(--color-white);
  clip-path: polygon(0 0, calc(100% - var(--beveled-cut)) 0, 100% var(--beveled-cut), 100% calc(100% - var(--beveled-cut)), calc(100% - var(--beveled-cut)) 100%, 0 100%);
}

#index.contact .main__grid::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 99%;
  width: 99.99rem;
  background: var(--color-primary);
}

#index.contact .main__lead {
  margin-bottom: 0.31rem;
  font-family: var(--font-family-base);
  font-size: 0.29rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.02em;
}

#index.contact .main__text {
  max-width: 4.2rem;
  font-family: var(--font-family-base);
  line-height: 1.9;
  letter-spacing: 0.02em;
}

#index.contact .c-edge-frame {
  --edge-frame-justify: flex-start;
  --edge-frame-gap: 0;
  --edge-frame-left-display: none;
  --edge-frame-right-cut: 0.04rem;
  --edge-frame-rail-color: var(--color-primary);
  flex: 1 1 auto;
  min-width: 0;
}

#index.contact .main__form-panel {
  --beveled-cut: 0.05rem;
  flex: 0 0 6.67rem;
  width: 6.67rem;
  min-width: 0;
  padding: 0.2rem 0.5rem;
  background: var(--color-white);
}

/* フォームは formrun（form.run）の iframe 埋め込み。
iframe の中身は外部サイトが実pxで描画するため、高さだけは rem ではなく px で持つ
（rem にすると 1920px 時に中身が伸びないまま枠だけ高くなる）。px の例外。
高さは実測（幅530pxで847px、幅748pxで862px）に入力エラー表示ぶんの余裕を足した値。
これを超えたときは iframe の中でスクロールする */
#index.contact .main__form-embed {
  display: block;
  width: 100%;
  height: var(--contact-form-embed-height, 1144px);
  border: 0;
}

/* 以下の .form* は自前フォーム用のスタイル。現在は formrun の埋め込みを使っているため未使用（参照用に残す） */
#index.contact .form {
  width: 5.3rem;
}

#index.contact .form__row {
  margin-bottom: 0.28rem;
}

#index.contact .form__label {
  display: block;
  margin-bottom: 0.14rem;
  color: var(--color-primary);
  font-family: var(--font-family-base);
  font-size: 0.17rem;
  font-weight: 600;
  line-height: 1.4;
}

#index.contact .form__select-field {
  position: relative;
}

#index.contact .form__select,
#index.contact .form__input,
#index.contact .form__textarea {
  --beveled-cut: 0.03rem;
  display: block;
  width: 100%;
  border: 0;
  outline: 0;
  background: var(--color-surface-form);
  color: var(--color-primary);
  font-family: var(--font-family-base);
  font-size: 0.14rem;
  line-height: 1.5;
  clip-path: polygon(var(--beveled-cut) 0, calc(100% - var(--beveled-cut)) 0, 100% var(--beveled-cut), 100% calc(100% - var(--beveled-cut)), calc(100% - var(--beveled-cut)) 100%, var(--beveled-cut) 100%, 0 calc(100% - var(--beveled-cut)), 0 var(--beveled-cut));
}

#index.contact .form__select,
#index.contact .form__input {
  height: 0.72rem;
  padding: 0 0.24rem;
}

#index.contact .form__select {
  appearance: none;
  padding-right: 0.48rem;
  color: var(--color-primary-muted);
  cursor: pointer;
}

#index.contact .form__select-field::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.24rem;
  width: 0.1rem;
  height: 0.1rem;
  border-right: 0.02rem solid var(--color-primary);
  border-bottom: 0.02rem solid var(--color-primary);
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}

#index.contact .form__input::placeholder,
#index.contact .form__textarea::placeholder {
  color: var(--color-primary-muted);
}

#index.contact .form__textarea {
  height: 3.6rem;
  padding: 0.22rem 0.24rem;
  resize: vertical;
}

#index.contact .form__agree {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  margin-top: -0.02rem;
  margin-bottom: 0.76rem;
}

#index.contact .form__checkbox {
  appearance: none;
  flex: 0 0 auto;
  width: 0.16rem;
  height: 0.16rem;
  margin: 0;
  border: 0.01rem solid var(--color-primary);
  background: var(--color-white);
  cursor: pointer;
}

#index.contact .form__checkbox:checked {
  background: var(--color-primary);
  box-shadow: inset 0 0 0 0.03rem var(--color-white);
}

#index.contact .form__agree-label {
  color: var(--color-primary);
  font-family: var(--font-family-base);
  font-size: 0.13rem;
  line-height: 1.5;
  cursor: pointer;
}

#index.contact .form__privacy-link {
  text-decoration: underline;
}

#index.contact .form__submit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0 0 0.22rem;
  color: var(--color-primary);
  font-family: var(--font-family-base);
  font-size: 0.17rem;
  font-weight: 600;
}

#index.contact .form__submit::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 0.02rem;
  background: var(--color-primary);
}

#index.contact .form__submit-icon,
#index.contact .form__submit-icon img {
  display: block;
  flex: 0 0 auto;
  width: 0.2rem;
  height: 0.2rem;
}

#index.contact .c-page-title {
  --page-title-heading-padding-inline: 0.4rem;
  --page-title-divider-margin-start: 0.3rem;
  --page-title-divider-margin-end: 0.42rem;
  margin-top: 1.04rem;
  padding-top: 0.72rem;
}

#index.contact .main+.c-site-footer {
  margin-top: 0.56rem;
}
