@charset "UTF-8";

.p-form {
  isolation: isolate;
}

/* contact.css（XD: 05-CONTACT / BaseCode: contact-form） */
.p-form {
  padding-block: 4rem 5rem;
}

@media (min-width: 768px) {
  .p-form {
    padding-block: 7.375rem 10.1875rem;
  }
}

.p-form__contents {
  padding: 3rem 1.1875rem 3.5rem;
  background-color: #f4f6fc;
  border-radius: 1.25rem;
}

@media (min-width: 768px) {
  .p-form__contents {
    padding: 4.1875rem min(6rem, 8.33%) 4.875rem;
    border-radius: 1.875rem;
  }
}

.p-form__title {
  color: #0a5da7;
  text-align: center;
  font-size: max(1.125rem, 14.4px);
}

@media (min-width: 0px) {
  .p-form__title {
    font-size: 1.125rem;
  }
}

.p-form__title {
  font-weight: 700;
  line-height: 1.4444444444;
}

@media (min-width: 768px) {
  .p-form__title {
    font-size: max(1.5rem, 19.2px);
    font-weight: 700;
    line-height: 1.4583333333;
  }
}

@media (min-width: 768px) and (min-width: 0px) {
  .p-form__title {
    font-size: 1.5rem;
  }
}

.p-form__lead {
  margin-block-start: 0.75rem;
  color: #606060;
  font-size: max(0.8125rem, 10.4px);
}

@media (min-width: 0px) {
  .p-form__lead {
    font-size: 0.8125rem;
  }
}

.p-form__lead {
  font-weight: 400;
  line-height: 1.6153846154;
}

@media (min-width: 768px) {
  .p-form__lead {
    margin-block-start: 1.5rem;
    text-align: center;
    font-size: max(1rem, 12.8px);
    font-weight: 400;
    line-height: 1.5;
  }
}

@media (min-width: 768px) and (min-width: 0px) {
  .p-form__lead {
    font-size: 1rem;
  }
}

.p-form .form {
  margin-block-start: 2.125rem;
}

@media (min-width: 768px) {
  .p-form .form {
    margin-block-start: 2.8125rem;
  }
}

.p-form .row {
  margin-inline: 0;
}

.p-form__container {
  display: flex;
  flex-direction: column;
  row-gap: 2.0625rem;
}

@media (min-width: 768px) {
  .p-form__container {
    row-gap: 1.8125rem;
  }
}

.p-form__container .col-md-4,
.p-form__container .col-md-8 {
  flex: unset;
  width: 100%;
  max-width: none;
  padding: 0;
}

.p-form__container>.formRow {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 0.9375rem;
  padding-block-end: 0.6875rem;
  border-bottom: 1px solid #707070;
}

@media (min-width: 768px) {
  .p-form__container>.formRow {
    grid-template-columns: min(23rem, 38%) minmax(0, 1fr);
    align-items: start;
    padding-block-end: 2.0625rem;
  }
}

@media (min-width: 768px) {
  .p-form__container>.formRow:has(select) {
    padding-block-end: 1.125rem;
  }
}

.p-form__container>.formRow .formTh {
  display: flex;
  align-items: center;
  column-gap: 1.25rem;
  position: relative;
  padding-inline-start: 1rem;
}

@media (min-width: 768px) {
  .p-form__container>.formRow .formTh {
    column-gap: 1.375rem;
    min-height: 3.75rem;
    padding-inline-start: 2.1875rem;
  }
}

.p-form__container>.formRow .formTh::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
  width: 0.25rem;
  height: 1.5rem;
  background-color: #0a5da7;
  pointer-events: none;
}

@media (min-width: 768px) {
  .p-form__container>.formRow .formTh::before {
    width: 0.3125rem;
    height: 1.75rem;
  }
}

.p-form__container>.formRow .label {
  margin-block-end: 0;
  color: #0a5da7;
  font-size: max(1rem, 12.8px);
}

@media (min-width: 0px) {
  .p-form__container>.formRow .label {
    font-size: 1rem;
  }
}

.p-form__container>.formRow .label {
  font-weight: 700;
  line-height: 1.5;
}

.p-form .requiredText {
  padding: 0.125rem 0.5rem;
  background-color: #0a5da7;
  color: #ffffff;
  font-size: max(0.75rem, 9.6px);
}

@media (min-width: 0px) {
  .p-form .requiredText {
    font-size: 0.75rem;
  }
}

.p-form .requiredText {
  font-weight: 700;
  line-height: 1.5;
}

/*----------------------------------
  入力欄
-----------------------------------*/
.p-form input[type=text],
.p-form input[type=email],
.p-form input[type=tel],
.p-form select,
.p-form textarea {
  width: 100%;
  min-height: 2.75rem;
  padding: 0.625rem 1rem;
  background-color: #ffffff;
  border: 0;
  border-radius: 0;
  color: #000000;
  font-size: max(0.875rem, 11.2px);
}

@media (min-width: 0px) {

  .p-form input[type=text],
  .p-form input[type=email],
  .p-form input[type=tel],
  .p-form select,
  .p-form textarea {
    font-size: 0.875rem;
  }
}

.p-form input[type=text],
.p-form input[type=email],
.p-form input[type=tel],
.p-form select,
.p-form textarea {
  font-weight: 400;
  line-height: 1.7142857143;
}

@media (min-width: 768px) {

  .p-form input[type=text],
  .p-form input[type=email],
  .p-form input[type=tel],
  .p-form select,
  .p-form textarea {
    min-height: 3.75rem;
    padding: 1.125rem 1.25rem;
  }
}

.p-form input[type=text]::placeholder,
.p-form input[type=email]::placeholder,
.p-form input[type=tel]::placeholder,
.p-form select::placeholder,
.p-form textarea::placeholder {
  color: #7e7e7e;
}

.p-form select:has(option[value=""]:checked) {
  color: #7e7e7e;
}

.p-form select {
  appearance: none;
  padding-inline-end: 3rem;
  background: #ffffff url("https://tadmngt.com/system_panel/uploads/images/select-arrow.svg") no-repeat right 1rem center/0.75rem;
  cursor: pointer;
}

@media (min-width: 768px) {
  .p-form select {
    background-position: right 1.25rem center;
  }
}

.p-form textarea {
  height: 11rem;
  resize: vertical;
}

/*----------------------------------
  プラポリ（XD: 592x178 の白枠）
-----------------------------------*/
.p-form__privacy {
  overflow-y: auto;
  height: 11.125rem;
  padding: 0.875rem 1rem;
  background-color: #ffffff;
}

.p-form__privacy p {
  font-size: max(0.8125rem, 10.4px);
}

@media (min-width: 0px) {
  .p-form__privacy p {
    font-size: 0.8125rem;
  }
}

.p-form__privacy p {
  font-weight: 400;
  line-height: 1.6923076923;
  overflow-wrap: anywhere;
}

.p-form__privacy> :first-child {
  margin-block-start: 0;
}

.p-form__privacy-text {
  margin-block-start: 1rem;
}

@media (min-width: 768px) {
  .p-form__privacy-text {
    margin-block-start: 1.25rem;
  }
}

.p-form .p-form__privacy-head {
  position: relative;
  margin-block-start: 1.25rem;
  padding-inline-start: 1.375rem;
  padding-block-end: 0.5rem;
  border-bottom: 1px solid #c7c7c7;
  color: #0a5da7;
  font-size: max(0.875rem, 11.2px);
}

@media (min-width: 0px) {
  .p-form .p-form__privacy-head {
    font-size: 0.875rem;
  }
}

.p-form .p-form__privacy-head {
  font-weight: 500;
  line-height: 1.5714285714;
}

@media (min-width: 768px) {
  .p-form .p-form__privacy-head {
    margin-block-start: 1.5rem;
    padding-block-end: 0.625rem;
    font-size: max(0.9375rem, 12px);
    font-weight: 500;
    line-height: 1.6;
  }
}

@media (min-width: 768px) and (min-width: 0px) {
  .p-form .p-form__privacy-head {
    font-size: 0.9375rem;
  }
}

.p-form .p-form__privacy-head::before {
  content: "";
  position: absolute;
  top: 0.375rem;
  left: 0;
  width: 0.75rem;
  height: 0.625rem;
  background-color: #0a5da7;
  border-radius: 0.1875rem;
  pointer-events: none;
}

@media (min-width: 768px) {
  .p-form .p-form__privacy-head::before {
    top: 0.4375rem;
  }
}

.p-form .text-center {
  display: flex;
  align-items: center;
  column-gap: 0.625rem;
  margin-block-start: 0.875rem;
}

.p-form .text-center input[type=checkbox] {
  flex-shrink: 0;
  width: 1.375rem;
  height: 1.375rem;
  margin: 0;
  accent-color: #0a5da7;
  cursor: pointer;
}

@media (min-width: 768px) {
  .p-form .text-center input[type=checkbox] {
    width: 1.875rem;
    height: 1.875rem;
  }
}

.p-form .text-center .privacyLabel {
  margin-block-end: 0;
  color: #000000;
  white-space: nowrap;
  font-size: max(0.875rem, 11.2px);
}

@media (min-width: 0px) {
  .p-form .text-center .privacyLabel {
    font-size: 0.875rem;
  }
}

.p-form .text-center .privacyLabel {
  font-weight: 700;
  line-height: 1.5714285714;
}

@media (min-width: 768px) {
  .p-form .text-center .privacyLabel {
    font-size: max(1rem, 12.8px);
    font-weight: 700;
    line-height: 1.5;
  }
}

@media (min-width: 768px) and (min-width: 0px) {
  .p-form .text-center .privacyLabel {
    font-size: 1rem;
  }
}

.p-form .text-center .requiredText {
  flex-shrink: 0;
  margin-inline-start: 0.375rem;
}

@media (min-width: 768px) {
  .p-form .text-center .requiredText {
    margin-inline-start: 0.5rem;
  }
}

/*----------------------------------
  送信ボタン（XD: 340x67 / 白背景 / 枠 2px）
-----------------------------------*/
.p-form .p-form__btn {
  display: grid;
  place-items: center;
  width: 15rem;
  min-height: 3.875rem;
  margin-block-start: 2.5rem;
  margin-inline: auto;
  background-color: #ffffff;
  border: 2px solid #0a5da7;
  border-radius: 0.5rem;
  color: #0a5da7;
  transition: background-color 0.3s ease, color 0.3s ease;
  font-size: max(1.25rem, 16px);
}

@media (min-width: 0px) {
  .p-form .p-form__btn {
    font-size: 1.25rem;
  }
}

.p-form .p-form__btn {
  font-weight: 700;
  line-height: 1.45;
}

@media (min-width: 768px) {
  .p-form .p-form__btn {
    width: 21.25rem;
    min-height: 4.1875rem;
    margin-block-start: 3.125rem;
  }
}

@media (any-hover: hover) {
  .p-form .p-form__btn:hover {
    background-color: #0a5da7;
    color: #ffffff;
  }
}

.p-form .formErrorContent {
  margin-block-start: 0.5rem;
  color: #d80e0e;
  font-size: max(0.75rem, 9.6px);
}

@media (min-width: 0px) {
  .p-form .formErrorContent {
    font-size: 0.75rem;
  }
}

.p-form .formErrorContent {
  font-weight: 400;
  line-height: 1.5;
}

/*----------------------------------
  改行（br）
  CMS では br にクラスを指定できないため、親要素から入れ子で指定する
  PC のみ改行（SP では自然に折り返す）
-----------------------------------*/
.p-form__lead br {
  display: none;
}

@media (min-width: 768px) {
  .p-form__lead br {
    display: inline;
  }
}

/*----------------------------------
  送信完了ページ（thanks.html / XD 完成版：06-SENT）
-----------------------------------*/
.p-thanks {
  padding-block: 4rem 7.5rem;
}

@media (min-width: 768px) {
  .p-thanks {
    padding-block: 7.5rem 10.1875rem;
  }
}

.p-thanks__contents {
  padding: 2.625rem 1.875rem 3.0625rem;
  background-color: #f4f6fc;
  border-radius: 1.25rem;
}

@media (min-width: 768px) {
  .p-thanks__contents {
    padding: 3rem min(6rem, 8.33%) 3.0625rem;
    border-radius: 1.875rem;
    text-align: center;
  }
}

.p-thanks__title {
  color: #0a5da7;
  text-align: center;
  font-size: max(1.5rem, 19.2px);
}

@media (min-width: 0px) {
  .p-thanks__title {
    font-size: 1.5rem;
  }
}

.p-thanks__title {
  font-weight: 500;
  line-height: 1.4166666667;
}

@media (min-width: 768px) {
  .p-thanks__title {
    font-size: max(2rem, 25.6px);
    font-weight: 500;
    line-height: 1.4375;
  }
}

@media (min-width: 768px) and (min-width: 0px) {
  .p-thanks__title {
    font-size: 2rem;
  }
}

.p-thanks__text {
  margin-block-start: 1.125rem;
  color: #606060;
  font-size: max(1rem, 12.8px);
}

@media (min-width: 0px) {
  .p-thanks__text {
    font-size: 1rem;
  }
}

.p-thanks__text {
  font-weight: 400;
  line-height: 1.75;
}

@media (min-width: 768px) {
  .p-thanks__text {
    margin-block-start: 1.3125rem;
    font-size: max(1.125rem, 14.4px);
    font-weight: 400;
    line-height: 1.7777777778;
  }
}

@media (min-width: 768px) and (min-width: 0px) {
  .p-thanks__text {
    font-size: 1.125rem;
  }
}

.p-thanks__btn {
  margin-block-start: 1.875rem;
}

@media (min-width: 768px) {
  .p-thanks__btn {
    margin-block-start: 2.375rem;
  }
}

.p-thanks__btn:empty {
  display: none;
}

.p-thanks .c-btn-link {
  justify-content: center;
  width: 17.0625rem;
  min-height: 4.5625rem;
  margin-inline: auto;
  padding-inline: 1rem;
  box-shadow: none;
  text-align: center;
}

@media (min-width: 768px) {
  .p-thanks .c-btn-link {
    width: 21.25rem;
    min-height: 4.1875rem;
  }
}

.p-thanks .c-btn-link p {
  font-size: max(1.25rem, 16px);
}

@media (min-width: 0px) {
  .p-thanks .c-btn-link p {
    font-size: 1.25rem;
  }
}

.p-thanks .c-btn-link p {
  font-weight: 700;
  line-height: 1.45;
}

.p-thanks__contents>.c-btn-link {
  margin-block-start: 1.875rem;
}

@media (min-width: 768px) {
  .p-thanks__contents>.c-btn-link {
    margin-block-start: 2.375rem;
  }
}