#topform:not(.topform) {
  margin-bottom: 60px !important;
  overflow: visible !important;
  position: relative;
  z-index: 1;
  -webkit-text-size-adjust: 100%;
}

.entryForm {
  margin-bottom: 60px;
}

#topform:not(.topform) .horizonal {
  width: 100%;
  max-width: 1200px;
  font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", Meiryo, "メイリオ", "MS Pゴシック", sans-serif;
  line-height: normal;
  color: #333;
  overflow: hidden;
  font-feature-settings: normal;
  -webkit-text-size-adjust: 100%;
}

#topform:not(.topform) .horizonal *,
#topform:not(.topform) .horizonal *::before,
#topform:not(.topform) .horizonal *::after {
  font-family: inherit;
  word-break: normal;
}

#topform:not(.topform) .horizonal .input,
#topform:not(.topform) .horizonal .textarea,
#topform:not(.topform) .horizonal .select,
#topform:not(.topform) .horizonal .select-select {
  font-family: inherit;
  font-feature-settings: "palt";
}

#topform:not(.topform) .horizonal .h-adr ul,
#topform:not(.topform) .horizonal .nav-ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#topform:not(.topform) .horizonal img {
  max-width: none;
  vertical-align: baseline;
}

#topform:not(.topform) .horizonal .container {
  width: 90%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

#topform:not(.topform) .horizonal .sec {
  flex: 0 0 25%;
  width: 25%;
  max-width: none;
  margin: 0;
}

#topform:not(.topform) .horizonal .formbox_name .col2 .df-row {
  width: calc(50% - 7.5px);
  flex: 0 0 calc(50% - 7.5px);
  box-sizing: border-box;
}

#topform:not(.topform) .horizonal .nav.is-over .nav-ul {
  margin-bottom: 0;
}

#topform:not(.topform) .horizonal .nav.is-over .nav-notice {
  display: none;
}

/* contactTerm block (inside form) */
#topform:not(.topform) .horizonal .contactTerm,
#topform:not(.topform) .horizonal .contactTerm *,
#topform:not(.topform) .horizonal .contactTerm *::before,
#topform:not(.topform) .horizonal .contactTerm *::after {
  box-sizing: border-box;
}

#topform:not(.topform) .horizonal .contactTerm {
  font-size: 16px;
  line-height: normal;
}

#topform:not(.topform) .horizonal .contactTerm_header {
  font-size: 16px;
}

#topform:not(.topform) .horizonal .contactTerm_desc,
#topform:not(.topform) .horizonal .contactTerm_button {
  font-size: 15px;
}

#topform:not(.topform) .horizonal .contactTerm .contactTerm_button:hover {
  color: #1eb8b1;
}

/* checkbox — grid keeps checkmark aligned on embed LPs */
#topform:not(.topform) .horizonal .contactTerm .checkboxButton > input[type=checkbox] {
  display: none;
}

#topform:not(.topform) .horizonal .contactTerm .checkboxButton_label {
  box-sizing: border-box;
  margin-inline: auto;
  cursor: pointer;
  position: relative;
  display: grid;
  grid-template-columns: 20px auto;
  column-gap: 20px;
  align-items: center;
  justify-content: center;
  width: 570px;
  max-width: 100%;
  height: 65px;
  padding: 10px 20px 10px 12px;
  border: 1px solid #AAA5A5;
  border-radius: 10px;
  color: #000;
  font-size: 15px;
  font-weight: 400;
  line-height: 20px;
  background: #fff;
  transition: background 0.1s ease, border 0.1s ease;
  font-feature-settings: normal;
  font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", Meiryo, "メイリオ", "MS Pゴシック", sans-serif;
}

#topform:not(.topform) .horizonal .contactTerm .checkboxButton_label::before {
  grid-column: 1;
  grid-row: 1;
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  margin: 0;
  background-color: #e4e4e4;
  border-radius: 4px;
  flex-shrink: 0;
  transition: background 0.1s ease;
}

#topform:not(.topform) .horizonal .contactTerm .checkboxButton_label::after {
  grid-column: 1;
  grid-row: 1;
  justify-self: center;
  align-self: center;
  opacity: 0;
  position: relative;
  top: -2px;
  left: auto;
  display: block;
  content: "";
  width: 12px;
  height: 8px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
  transition: opacity 0.1s ease;
}

#topform:not(.topform) .horizonal .contactTerm .checkboxButton_label:hover {
  background-color: #e5f7f6;
}

#topform:not(.topform) .horizonal .contactTerm .checkboxButton > input[type=checkbox]:checked + .checkboxButton_label {
  border-color: #e5f7f6;
  background-color: #e5f7f6;
  color: #1eb8b1;
}

#topform:not(.topform) .horizonal .contactTerm .checkboxButton > input[type=checkbox]:checked + .checkboxButton_label::before {
  background-color: #1eb8b1;
}

#topform:not(.topform) .horizonal .contactTerm .checkboxButton > input[type=checkbox]:checked + .checkboxButton_label::after {
  opacity: 1;
}

#topform:not(.topform) .horizonal .contactTerm .checkboxButton.narrow > input[type=checkbox]:checked + .checkboxButton_label {
  border-color: #1eb8b1;
  background-color: #fff;
  color: #444;
}

/* contactTerm modal (inside form — match prod, Safari-safe) */
#topform:not(.topform) .horizonal .contactTerm-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  min-height: -webkit-fill-available;
  background-color: rgba(255, 255, 255, 0.8);
  justify-content: center;
  align-items: center;
  z-index: 10001;
  font-size: 16px;
  font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", Meiryo, "メイリオ", "MS Pゴシック", sans-serif;
  line-height: normal;
  color: #262727;
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  -webkit-overflow-scrolling: touch;
  pointer-events: none;
}

#topform:not(.topform) .horizonal .contactTerm-modal *,
#topform:not(.topform) .horizonal .contactTerm-modal *::before,
#topform:not(.topform) .horizonal .contactTerm-modal *::after {
  box-sizing: border-box;
  font-family: inherit;
  max-width: 100%;
}

#topform:not(.topform) .horizonal .contactTerm-modal .modal-in {
  position: relative;
  width: 100%;
  max-width: 95%;
  pointer-events: auto;
  overflow: visible;
}

#topform:not(.topform) .horizonal .contactTerm-modal .close,
#topform:not(.topform) .horizonal .contactTerm-modal .close svg {
  max-width: none;
}

#topform:not(.topform) .horizonal .contactTerm-modal .close {
  position: absolute;
  top: -30px;
  right: 0%;
  z-index: 2;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin: 0;
}

#topform:not(.topform) .horizonal .contactTerm-modal .close svg {
  transition: opacity 0.3s;
}

#topform:not(.topform) .horizonal .contactTerm-modal .close:hover svg {
  opacity: 0.5;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content {
  width: 100%;
  max-width: 100%;
  height: 60vh;
  height: 60dvh;
  max-height: -webkit-fill-available;
  padding: 40px;
  border-radius: 10px;
  border: solid 1px #1eb8b1;
  background: #fff;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  font-size: 16px;
  line-height: 2;
  color: #262727;
  overflow-wrap: break-word;
  word-break: break-word;
  font-feature-settings: "palt";
  -webkit-text-size-adjust: 100%;
  box-sizing: border-box;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content h3 {
  font-size: 18px;
  line-height: normal;
  margin: 0 0 16px;
  font-weight: 700;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content h4 {
  font-size: 16px;
  line-height: normal;
  margin: 16px 0 10px;
  font-weight: 700;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content p,
#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ol,
#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ul,
#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content li,
#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content a {
  font-size: 16px;
  line-height: 2;
  color: #262727;
  overflow-wrap: break-word;
  word-break: break-word;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content p {
  margin: 10px 0 0;
  box-sizing: border-box;
  font-feature-settings: "palt";
  -webkit-text-size-adjust: 100%;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content a {
  display: inline;
  overflow-wrap: anywhere;
  word-break: break-word;
  color: #1eb8b1;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ol {
  margin: 10px 11px;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ol li {
  list-style: decimal;
  margin: 8px 10px;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ol li p {
  margin-top: 0;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ol li p + p {
  margin-top: 10px;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ol li ol {
  margin: 0 10px 24px;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ol li ol li {
  list-style: decimal;
}

#topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content-box + .contactTerm_content-box {
  margin-top: 36px;
}

/* agent_2512 standalone keeps base #topform rules */
#topform.topform {
  margin-bottom: 60px;
  overflow: visible;
}

#topform.topform .horizonal {
  width: 100%;
  max-width: 1200px;
  font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", Meiryo, "メイリオ", "MS Pゴシック", sans-serif;
  color: #333;
}

#topform.topform .horizonal .input,
#topform.topform .horizonal .textarea,
#topform.topform .horizonal .select,
#topform.topform .horizonal .select-select {
  font-family: inherit;
  font-feature-settings: "palt";
}

#topform.topform .horizonal .h-adr ul,
#topform.topform .horizonal .nav-ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#topform.topform .horizonal img {
  max-width: none;
  vertical-align: baseline;
}

#topform.topform .horizonal .container {
  margin-left: auto;
  margin-right: auto;
}

#topform.topform .horizonal .sec {
  flex: 0 0 25%;
  width: 25%;
  max-width: none;
  margin: 0;
}

#topform.topform .horizonal .formbox_name .col2 .df-row {
  width: calc(50% - 7.5px);
  flex: 0 0 calc(50% - 7.5px);
  box-sizing: border-box;
}

/* PC embed — let form.css typography/layout apply (no 10px inherit chain) */
@media screen and (min-width: 769px) {
  #topform:not(.topform) .horizonal .sec {
    display: block;
    padding: 40px 0 0;
    box-sizing: border-box;
  }

  #topform:not(.topform) .horizonal .sec-title {
    font-size: 18px;
    line-height: normal;
  }

  #topform:not(.topform) .horizonal .sec-title span {
    font-size: 20px;
  }

  #topform:not(.topform) .horizonal .nav-li {
    font-size: 16px;
    line-height: 1;
  }

  #topform:not(.topform) .horizonal .button,
  #topform:not(.topform) .horizonal .button-prev {
    font-size: 18px;
  }
}

/* SP embed — let form.css typography apply (no 10px inherit chain) */
@media screen and (max-width: 768px) {
  #topform:not(.topform) .horizonal .sec {
    flex: 0 0 25%;
    width: 100vw;
    max-width: 100%;
    margin: 0 auto;
    padding-top: 15px;
    box-sizing: border-box;
  }

  #topform:not(.topform) .horizonal .container {
    width: 90%;
    max-width: none;
    min-width: initial;
  }

  #topform:not(.topform) .horizonal .nav-li {
    font-size: 12px;
    line-height: 1;
    padding: 12px 0 10px;
  }

  #topform:not(.topform) .horizonal .sec-title {
    font-size: 16px;
    line-height: 1;
  }

  #topform:not(.topform) .horizonal .sec-title span {
    font-size: 18px;
  }

  #topform:not(.topform) .horizonal .sec-title .small {
    font-size: 10px;
  }

  #topform:not(.topform) .horizonal .sec-notice {
    font-size: 13px;
    line-height: 1.3;
  }

  #topform:not(.topform) .horizonal .label-box {
    font-size: 16px;
  }

  #topform:not(.topform) .horizonal .label-text {
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .label-text .small {
    font-size: 10px;
  }

  #topform:not(.topform) .horizonal .accordion_header {
    font-size: 16px;
  }

  #topform:not(.topform) .horizonal .formbox_remark .accordion_header {
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .df-column__title {
    font-size: 16px;
  }

  #topform:not(.topform) .horizonal .df-row__title {
    font-size: 15px;
  }

  #topform:not(.topform) .horizonal .input,
  #topform:not(.topform) .horizonal .textarea,
  #topform:not(.topform) .horizonal .select,
  #topform:not(.topform) .horizonal .select-select {
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .is-error .error-message {
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .agreement,
  #topform:not(.topform) .horizonal .agreement a {
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .button,
  #topform:not(.topform) .horizonal .button-prev {
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .contactTerm {
    padding: 33px 0 56px;
    width: 100%;
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .contactTerm_header,
  #topform:not(.topform) .horizonal .contactTerm_desc,
  #topform:not(.topform) .horizonal .contactTerm_button {
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .contactTerm .checkboxButton_label {
    padding: 10px 0;
    width: 100%;
    height: auto;
    min-height: 65px;
    margin: 0 auto;
    font-size: 12px;
    column-gap: 12px;
  }

  #topform:not(.topform) .horizonal .contactTerm-modal {
    font-size: 14px;
    align-items: center;
    padding: 44px 2.5% 16px;
    box-sizing: border-box;
  }

  #topform:not(.topform) .horizonal .contactTerm-modal .modal-in {
    width: 100%;
    max-width: 95%;
    flex-shrink: 0;
    max-height: calc(100dvh - 88px);
    max-height: calc(100vh - 88px);
    overflow: visible;
  }

  #topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content {
    padding: 20px;
    font-size: 14px;
    height: 60dvh;
    height: 60vh;
    max-height: calc(100dvh - 88px);
    max-height: calc(100vh - 88px);
  }

  #topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content p,
  #topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ol,
  #topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content ul,
  #topform:not(.topform) .horizonal .contactTerm-modal .contactTerm_content li {
    font-size: 14px;
  }

  #topform:not(.topform) .horizonal .contactTerm-modal .close {
    top: -36px;
    right: 0;
    z-index: 1;
  }

  #topform:not(.topform) .horizonal .contactTerm .contactTerm_button {
    font-size: 14px;
  }
}
