/* ========================================
   フォーム共通
======================================== */
:root {
  --form-label-width: 220px;
  --form-control-max: 100%;
  --form-gap: 12px;
}
.smpForm {
  margin: 0 auto;
  border-radius: 8px;
}

.smpForm .ss_field,
.smpForm .ss_enquete_field {
  display: flex;
  align-items: flex-start;
  gap: var(--form-gap);
  margin: 0px;
  border-bottom: 0px solid #eeeeee;
  padding: 10px 30px;
}

.smpForm .ss_form_title,
.smpForm .ss_enquete_title {
  width: var(--form-label-width);
  flex-shrink: 0;
  padding-top: 8px;
  font-weight: 700;
  line-height: 1.6;
  padding-top: 10px;
}

.smpForm .ss_grid {
  flex: 1;
  min-width: 0;
}

.smpForm .ss_input {
  min-width: 0;
}

.smpForm .ss_user_notnull {
  margin-left: 4px;
}

/* 補足文 */
.smpForm .ss_rightComment,
.smpForm .ss_bottomComment,
.smpForm .ss_leftComment,
.smpForm .ss_upComment {
  font-size: 1em;
  line-height: 1.2;
  color:#4b4a4a!important;
  font-weight:400;
}


/* ========================================
   フォーム全体の枠を消す
======================================== */

/* 外枠を消す */
.smpForm .ss_container,
.smpForm .ss_contents,
.smpForm .ss_visitor_form,
.smpForm .ss_enquete_form {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* 各行の区切り線を完全削除 */
.smpForm .ss_field,
.smpForm .ss_enquete_field {
  border: none !important;
}



/* フォーカス時も枠なし */
.smpForm input:focus,
.smpForm select:focus,
.smpForm textarea:focus {
  outline: none;
  box-shadow: none;
}
/* ========================================
   幅をそろえたい通常入力
======================================== */
.smpForm #ss_email .ss_input,
.smpForm #ss_company_name .ss_input,
.smpForm #ss_tel .ss_input,
.smpForm #ss_division .ss_input,
.smpForm #ss_position .ss_input,
.smpForm #ss_address1 .ss_input,
.smpForm #ss_address2 .ss_input,
.smpForm #ss_address3 .ss_input,
.smpForm .ss_enquete_field .ss_input {
  width: 100%;
  max-width: var(--form-control-max);
}

.smpForm #ss_email input,
.smpForm #ss_company_name input,
.smpForm #ss_tel input,
.smpForm #ss_division input,
.smpForm #ss_position input,
.smpForm #ss_address1 input,
.smpForm #ss_address2 input,
.smpForm #ss_address3 input,
.smpForm .ss_enquete_field textarea {
  width: 100%;
  box-sizing: border-box;
}

/* 入力欄の見た目をそろえる */
.smpForm input[type="text"],
.smpForm input[type="email"],
.smpForm input[type="tel"],
.smpForm select,
.smpForm textarea {
  border: 1px solid #d9d9d9;
  padding: 5px 3px;
  font-size: 1em;
  line-height: 1.3;
  background: #fff;
  box-sizing: border-box;
}

/* お問い合わせ内容 */
.smpForm .ss_enquete_field textarea {
  min-height: 140px;
  resize: vertical;
}

/* ========================================
   郵便番号：伸ばさない
======================================== */
.smpForm #ss_zip .ss_grid {
  display: flex;
  align-items: center;
  gap: 8px;
}

.smpForm #ss_zip .ss_input {
  width: auto;
  flex: 0 0 auto;
}

.smpForm #ss_zip input {
  height: 40px;
  box-sizing: border-box;
}

.smpForm #ss_zip input[name*="zip1"] {
  width: 4.5em;
}

.smpForm #ss_zip input[name*="zip2"] {
  width: 5.5em;
}

.smpForm #ss_zip .ss_grid span {
  line-height: 40px;
}

/* ========================================
   プルダウン：全部 年商規模くらいにそろえる
======================================== */
.smpForm #ss_prefecture_master_id .ss_input,
.smpForm #ss_VisitorData\.attribute34 .ss_input,
.smpForm #ss_VisitorData\.attribute67 .ss_input,
.smpForm #ss_VisitorData\.attribute68 .ss_input {
  width: 100%;
  max-width: var(--form-control-max);
}

.smpForm #ss_prefecture_master_id select,
.smpForm #ss_VisitorData\.attribute34 select,
.smpForm #ss_VisitorData\.attribute67 select,
.smpForm #ss_VisitorData\.attribute68 select {
  width: 100%;
  box-sizing: border-box;
}

/* ========================================
   同意チェック
======================================== */
.smpForm #ss_consent_personal_info .ss_input {
  max-width: 100%;
}

.smpForm #ss_consent_personal_info input[type="checkbox"] {
  width: auto;
  margin-right: 6px;
}

/* ========================================
   送信ボタン
======================================== */
.smpForm .ss_btnArea {
  margin-top: 24px;
  text-align: center;
}

.smpForm .ss_btnArea input[type="button"] {
  min-width: 240px;
  padding: 16px 24px;
  border-radius: 6px;
  background: #28a286;
  font-size: 1.6rem;
  font-weight: 700;
}

.smpForm .ss_btnArea input[type="button"]:hover {
  opacity: 0.9;
}

/* ========================================
   フォーム下の個人情報文
======================================== */
.form-policy {
  background: #fff;
  padding: 32px;
  border-radius: 8px;
}

/* ========================================
   SP
======================================== */
@media (max-width: 768px) {
  .contact_layout {
    display: block;
  }

  .contact_intro {
    width: 100%;
    max-width: none;
    margin-bottom: 32px;
  }

  .smpForm .ss_field,
  .smpForm .ss_enquete_field {
    display: block;
  }

  .smpForm .ss_form_title,
  .smpForm .ss_enquete_title {
    width: 100%;
    margin-bottom: 8px;
    padding-top: 0;
  }

  .smpForm #ss_name .ss_grid {
    flex-wrap: wrap;
  }

  .smpForm #ss_zip .ss_grid {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .smpForm #ss_zip .ss_input {
    display: flex;
    align-items: center;
    margin: 0;
  }

  .smpForm #ss_zip .ss_leftComment {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    margin: 0 8px 0 0;
  }

  .smpForm #ss_zip input[name*="zip1"],
  .smpForm #ss_zip input[name*="zip2"] {
    height: 40px;
    box-sizing: border-box;
    margin: 0;
  }
}


/* ========================================
   非表示関連
======================================== */
/* hidden対象のinputだけ初期非表示 */
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute100"],
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute101"],
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute102"],
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute104"],
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute105"],
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute106"],
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute108"],
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute109"],
.smpForm input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute110"] {
  display: none !important;
}

/* hidden項目のfieldsetごと非表示（:has対応ブラウザ用の保険） */
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute100"]),
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute101"]),
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute102"]),
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute104"]),
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute105"]),
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute106"]),
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute108"]),
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute109"]),
.smpForm fieldset:has(input[name="Public::EmbeddedApplication::Userenquete_D__P__D_Enquete.attribute110"]) {
  display: none !important;
}

/* JS成功時の保険 */
.smpForm .hidden-field {
  display: none !important;
}

/* フォームは初期非表示 */
.smpForm .smpForm {
  opacity: 0;
  visibility: hidden;
}

/* 成功時のみ表示 */
.smpForm .smpForm.is-loaded {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s;
  }
  
  
  /* 読み込み */
.smpFormWrapper {
  position: relative;
}

/* ローディング */
.smp-loading {
  text-align: center;
  padding: 40px 20px;
  color: #666;
  font-size: 14px;
}

/* スピナー */
.spinner {
  width: 24px;
  height: 24px;
  border: 3px solid #ccc;
  border-top-color: #a8dbbc;
  border-radius: 50%;
  margin: 0 auto 10px;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* フォーム初期状態 */
.smpForm {
  opacity: 0;
  visibility: hidden;
}

/* 読み込み完了 */
.smpForm.is-loaded {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s;
}


.smpForm.is-loaded ~ .smp-loading {
  display: none;
}

.smpForm.is-loaded ~ .smp-loading,
.smpFormWrapper.is-loaded .smp-loading {
  display: none;
}