/* CPA HubSpot新フォーム共通CSS。フォームID指定なし。HTML埋め込み用。 */
form.hsfc-Form {
  --hsf-global__font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", sans-serif;
  --hsf-global__font-size: 16px;
  --hsf-global__color: #121f24;
  --hsf-global__error-color: #bf1012;
  --hsf-global-error__color: #bf1012;
  --hsf-field-label__font-family: var(--hsf-global__font-family);
  --hsf-field-label__color: #121f24;
  --hsf-field-label__font-size: 16px;
  --hsf-field-description__font-family: var(--hsf-global__font-family);
  --hsf-field-description__color: #777;
  --hsf-field-description__font-size: 12px;
  --hsf-erroralert__color: #bf1012;
  --hsf-erroralert__font-family: var(--hsf-global__font-family);
  --hsf-button__background-color: #9b763a;
  --hsf-button__color: #fff;
  --hsf-field-input__font-family: Arial, sans-serif;
  --hsf-field-input__font-size: 16px;
  --hsf-field-input__color: #000;
  --hsf-field-input__background-color: #fff;
  --hsf-field-input__border-color: #c5d0d5;
  --hsf-field-input__border-width: 1px;
  --hsf-field-input__border-style: solid;
  --hsf-field-input__border-radius: 3px;
  --hsf-field-input__padding: 10px;
  --hsf-row__horizontal-spacing: 0px;
  --hsf-row__vertical-spacing: 0px;
  --hsf-module__vertical-spacing: 0px;
  --hsf-background__padding: 0px;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  font-family: var(--hsf-global__font-family) !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: #121f24 !important;
}

form.hsfc-Form *, form.hsfc-Form *::before, form.hsfc-Form *::after { box-sizing: border-box; }
form.hsfc-Form .hsfc-Step {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
form.hsfc-Form .hsfc-Step__Content {
  padding: 0 !important;
}


form.hsfc-Form .hsfc-Row {
  grid-template-columns: minmax(0,1fr) !important;
  flex-direction: column;
  width: 100% !important;
  margin: 0 !important;
  padding: 24px 16px !important;
  gap: 0 !important;
  border: 0;
  border-bottom: 1px solid #dce4e8;
  background: transparent !important;
}
form.hsfc-Form .hsfc-Step__Content > .hsfc-Row:first-child { border-top: 1px solid #dce4e8; }


form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) {
  display: grid;
  grid-template-columns: 25% minmax(0,1fr);
  column-gap: 16px;
  row-gap: 0;
  align-items: start;
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
}
form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > * {
  min-width: 0;
  margin: 0 !important;
  grid-column: 2;
}
form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > .hsfc-FieldLabel {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  padding: 0 48px 0 0 !important;
  color: #121f24 !important;
  font-family: var(--hsf-global__font-family) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: left !important;
}
form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > .hsfc-FieldLabel:not(:has(.hsfc-FieldLabel__RequiredIndicator)) { padding-right: 0 !important; }
form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > :not(.hsfc-FieldLabel):not(.hsfc-FieldDescription):not(.hsfc-ErrorAlert):not([type="hidden"]):not([hidden]) { grid-row: 1; }


form.hsfc-Form .hsfc-FieldLabel__RequiredIndicator {
  position: absolute;
  top: 3px;
  right: 0;
  margin: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
}
form.hsfc-Form .hsfc-FieldLabel__RequiredIndicator::before {
  content: "必須";
  display: inline-block;
  padding: 2px 6px;
  background: #9b763a;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
  vertical-align: top;
}


form.hsfc-Form :is(.hsfc-TextInput,.hsfc-TextareaInput) {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 10px !important;
  border: 1px solid #c5d0d5 !important;
  border-radius: 3px !important;
  background: #fff !important;
  color: #000 !important;
  font: 400 16px Arial, sans-serif !important;
  line-height: normal !important;
  box-shadow: none !important;
  top: auto !important;
}
form.hsfc-Form :is(.hsfc-TextInput,.hsfc-TextareaInput):focus {
  background-color: rgba(253,245,215,.7) !important;
  outline: 1px solid #bbb !important;
  outline-offset: 0;
}
form.hsfc-Form :is(.hsfc-TextInput,.hsfc-TextareaInput)[aria-invalid="true"] {
  border-color: #bf1012 !important;
  background-color: #ffeaea !important;
}
form.hsfc-Form :is(.hsfc-TextInput,.hsfc-TextareaInput):disabled {
  background-color: #dfdfdf !important;
  color: #666 !important;
  cursor: default;
}


form.hsfc-Form .hsfc-DropdownInput { width: 50%; max-width: 100%; }
form.hsfc-Form .hsfc-DropdownInput > .hsfc-TextInput { padding-right: 30px !important; }
form.hsfc-Form .hsfc-DropdownInput__Caret { padding: 0 10px !important; }
form.hsfc-Form .hsfc-DropdownInput__Caret > span {
  border-top: 5px solid #747474;
  border-left-width: 4px;
  border-right-width: 4px;
}
form.hsfc-Form .hsfc-DropdownOptions {
  background: #fff !important;
  border: 1px solid #c5d0d5 !important;
  border-radius: 3px !important;
  color: #121f24 !important;
  font-family: var(--hsf-global__font-family) !important;
  font-size: 16px !important;
}
form.hsfc-Form .hsfc-DropdownOptions__List { margin: 0 !important; padding: 0 !important; }
form.hsfc-Form .hsfc-DropdownOptions__List__ListItem {
  margin: 0 !important;
  padding: 10px !important;
  border: 0 !important;
  color: #121f24 !important;
  background: #fff !important;
  line-height: 1.5 !important;
}
form.hsfc-Form .hsfc-DropdownOptions__List__ListItem::before { content: none !important; }
form.hsfc-Form .hsfc-DropdownOptions__List__ListItem:is(:hover,:focus,[aria-selected="true"]) { background: #eff6f8 !important; }


form.hsfc-Form .hsfc-PhoneInput { min-width: 0; }
form.hsfc-Form .hsfc-PhoneInput__FlagAndCaret {
  flex: 0 0 auto;
  padding: 10px !important;
  border-color: #c5d0d5 !important;
  background: #fff !important;
}
form.hsfc-Form .hsfc-PhoneInput:not(.hsfc-PhoneInput--rtl) > .hsfc-TextInput {
  flex: 1 1 auto;
  border-left: 0 !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}


form.hsfc-Form :is(.hsfc-RadioFieldGroup__Options,.hsfc-CheckboxFieldGroup__Options) { width: 100%; }
form.hsfc-Form :is(.hsfc-RadioFieldGroup__Options,.hsfc-CheckboxFieldGroup__Options) > div { margin: 0 0 5px !important; }
form.hsfc-Form :is(.hsfc-RadioFieldGroup__Options,.hsfc-CheckboxFieldGroup__Options) .hsfc-FieldLabel {
  display: flex;
  align-items: flex-start;
  gap: 5px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #444 !important;
  font-family: var(--hsf-global__font-family) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
}
form.hsfc-Form :is(.hsfc-RadioFieldGroup__Options,.hsfc-CheckboxFieldGroup__Options) .hsfc-FieldLabel > span { margin: 0 !important; }
form.hsfc-Form :is(.hsfc-RadioInput,.hsfc-CheckboxInput) {
  appearance: none;
  -webkit-appearance: none;
  position: relative !important;
  top: auto !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  margin: 3px 0 0 !important;
  padding: 0 !important;
  border: 1px solid #c5d0d5 !important;
  background: #fff !important;
  box-shadow: none !important;
  cursor: pointer;
}
form.hsfc-Form .hsfc-RadioInput { border-radius: 50% !important; }
form.hsfc-Form .hsfc-CheckboxInput { border-radius: 0 !important; }
form.hsfc-Form :is(.hsfc-RadioInput,.hsfc-CheckboxInput)::before,
form.hsfc-Form :is(.hsfc-RadioInput,.hsfc-CheckboxInput)::after { content: none !important; }
form.hsfc-Form :is(.hsfc-RadioInput,.hsfc-CheckboxInput):checked { background: #bf1012 !important; }
form.hsfc-Form .hsfc-RadioInput:checked::after {
  content: "" !important;
  position: absolute;
  inset: 4px !important;
  width: 10px;
  height: 10px;
  border: 0;
  border-radius: 50%;
  background: #fff !important;
  transform: none;
  mask: none !important;
  -webkit-mask: none !important;
}
form.hsfc-Form .hsfc-CheckboxInput:checked::after {
  content: "" !important;
  position: absolute;
  inset: auto !important;
  left: 5px !important;
  top: 1px !important;
  width: 7px;
  height: 12px;
  border: solid #fff;
  border-width: 0 3px 3px 0;
  border-radius: 0;
  background: transparent !important;
  transform: rotate(45deg);
  transform-origin: center;
  box-shadow: none;
  mask: none !important;
  -webkit-mask: none !important;
}
form.hsfc-Form :is(.hsfc-RadioInput,.hsfc-CheckboxInput):focus-visible { outline: 2px solid #9b763a !important; outline-offset: 2px; }
form.hsfc-Form :is(.hsfc-RadioInput,.hsfc-CheckboxInput):disabled { opacity: .55; cursor: default; }


form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > .hsfc-FieldDescription {
  grid-row: 2;
  margin-top: 3px !important;
  color: #777 !important;
  font-family: var(--hsf-global__font-family) !important;
  font-size: 12px !important;
  line-height: 1.6 !important;
}
form.hsfc-Form .hsfc-FieldDescription a { color: #216887; text-decoration: underline; }
form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > .hsfc-ErrorAlert {
  margin-top: 6px !important;
  color: #bf1012 !important;
  font-family: var(--hsf-global__font-family) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}


form.hsfc-Form .hsfc-NavigationRow { margin: 24px 0 16px !important; }
form.hsfc-Form .hsfc-NavigationRow__Buttons { justify-content: center !important; }
form.hsfc-Form .hsfc-NavigationRow__Buttons > button.hsfc-Button {
  width: 80% !important;
  max-width: 350px !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 16px !important;
  border: 2px solid #9b763a !important;
  border-radius: 3px !important;
  background: #9b763a !important;
  color: #fff !important;
  font: 700 16px Arial, sans-serif !important;
  line-height: normal !important;
  text-align: center !important;
  box-shadow: none !important;
  filter: none !important;
  cursor: pointer;
}
form.hsfc-Form .hsfc-NavigationRow__Buttons > button.hsfc-Button:is(:hover,:focus-visible) {
  background: #fff !important;
  color: #9b763a !important;
}
form.hsfc-Form .hsfc-NavigationRow__Buttons > button.hsfc-Button:is(:disabled,[aria-disabled="true"],[aria-busy="true"]) {
  border-color: #dfdfdf !important;
  background: #dfdfdf !important;
  color: #666 !important;
  cursor: default;
}


@media screen and (max-width:767px) {
  form.hsfc-Form .hsfc-Row { padding: 20px 0 24px !important; }
  form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) {
    grid-template-columns: minmax(0,1fr);
    column-gap: 0;
  }
  form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > * { grid-column: 1; }
  form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > .hsfc-FieldLabel { padding: 0 0 8px !important; }
  form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > :not(.hsfc-FieldLabel):not(.hsfc-FieldDescription):not(.hsfc-ErrorAlert):not([type="hidden"]):not([hidden]) { grid-row: 2; }
  form.hsfc-Form .hsfc-FieldLabel__RequiredIndicator { position: static; }
  form.hsfc-Form .hsfc-FieldLabel__RequiredIndicator::before { margin-left: 12px; vertical-align: 1px; }
  form.hsfc-Form .hsfc-DropdownInput { width: 100%; }
  form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) > .hsfc-FieldDescription { grid-row: 3; }
}

/* 複数の項目が同じ行に設定されている場合も、項目順を保って縦に配置 */
form.hsfc-Form .hsfc-Row > :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) ~ :is(.hsfc-TextField,.hsfc-EmailField,.hsfc-PhoneField,.hsfc-DropdownField,.hsfc-RadioFieldGroup,.hsfc-CheckboxFieldGroup,.hsfc-TextareaField,.hsfc-NumberField,.hsfc-URLField,.hsfc-DateField,.hsfc-FileField,.hsfc-FileFieldAsync) { margin-top: 24px !important; }
form.hsfc-Form .hsfc-TextareaInput { min-height: 150px !important; line-height: 1.6 !important; resize: vertical; }
form.hsfc-Form .hsfc-FileInput { width: auto !important; max-width: 100%; height: auto !important; font-size: 16px; }

/* 単一チェックボックスはラベルと一体の標準構造を維持 */
form.hsfc-Form .hsfc-CheckboxField > .hsfc-FieldLabel {
  justify-content: flex-start;
  gap: 5px;
  color: #121f24 !important;
  font-family: var(--hsf-global__font-family) !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
}
form.hsfc-Form .hsfc-CheckboxField .hsfc-FieldLabel__RequiredIndicator,
form.hsfc-Form .hsfc-DataPrivacyField .hsfc-FieldLabel__RequiredIndicator { position: static; }
form.hsfc-Form .hsfc-CheckboxField .hsfc-FieldLabel__RequiredIndicator::before,
form.hsfc-Form .hsfc-DataPrivacyField .hsfc-FieldLabel__RequiredIndicator::before { margin-left: 12px; }

/* 複数ステップの前へ・次へボタンも配色を統一し、ボタン幅は可変に */
form.hsfc-Form .hsfc-NavigationRow__Buttons { flex-wrap: wrap; gap: 16px !important; }
form.hsfc-Form .hsfc-NavigationRow__Buttons > button.hsfc-Button:not(:only-child) { width: auto !important; flex: 1 1 140px; }
