/* ==========================================
   Contact Page - Mobile First
   ========================================== */

.tai-contact-page {
  overflow: hidden;
}

.ct-form-section {
  padding: 12px 0 40px;
  background: #fff;
}

.ct-inner {
  width: 100%;
  padding: 0 8%;
  margin: 0 auto;
}

.ct-lead {
  margin: 45px 0 68px;
  color: var(--text-primary);
  font-weight: normal;
  line-height: 2;
  letter-spacing: 0;
}

p.ct-lead {
  font-size: 16px !important;
}

.ct-form,
.ct-form-fields {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.ct-form.is-confirming .ct-form-fields {
  display: none;
}

.ct-form-row {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.ct-form-row > p {
  display: contents;
  margin: 0;
}

.ct-form-row > p > br {
  display: none;
}

.ct-form-row .wpcf7-form-control-wrap,
.ct-select-wrap > p {
  display: block;
  width: 100%;
  margin: 0;
}

.ct-label {
  display: flex;
  align-items: baseline;
  gap: 11px;
  margin: 0;
  color: var(--text-primary);
  line-height: 1.4;
}

label.ct-label {
  font-weight: 700 !important;
}

.ct-required {
  color: var(--primary-red);
  font-size: 11px;
  font-weight: 700;
}

.ct-input,
.ct-textarea,
.ct-select {
  display: block;
  width: 100%;
  border: 1px solid #e3e3e3;
  border-radius: 14px !important;
  background: #F9F9F9;
  color: #222;
  font-family: var(--font-ja);
  font-size: 15px !important;
  font-weight: 400;
  line-height: 1.5;
  box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.03);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ct-input,
.ct-select {
  height: 67px;
  padding: 0 29px;
}

.ct-textarea {
  min-height: 383px;
  padding: 24px 29px;
  resize: vertical;
}

.ct-input::placeholder,
.ct-textarea::placeholder {
  color: #dedede;
}

.ct-input:focus,
.ct-textarea:focus,
.ct-select:focus {
  outline: none;
  border-color: rgba(197, 0, 24, 0.38);
  box-shadow: 0 0 0 3px rgba(197, 0, 24, 0.08);
}

.ct-select-wrap {
  position: relative;
}

.ct-select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 25px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #d8d8d8;
  border-bottom: 2px solid #d8d8d8;
  transform: translateY(-65%) rotate(45deg);
  pointer-events: none;
}

.ct-select {
  appearance: none;
  /*color: #cfcfcf;*/
}

.ct-privacy {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ct-privacy-check {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  margin: 0;
  color: #222;
  cursor: pointer;
}

.ct-privacy-check input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.ct-privacy-check > span:not(.wpcf7-form-control-wrap),
.ct-privacy-check .wpcf7-list-item-label > span {
  position: relative;
  width: 27px;
  height: 27px;
  border: 1px solid #bfbfbf;
  border-radius: 3px;
  background: #fff;
  flex: 0 0 auto;
}

.ct-privacy-check > span:not(.wpcf7-form-control-wrap)::after,
.ct-privacy-check .wpcf7-list-item-label > span::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 4px;
  width: 8px;
  height: 14px;
  border-right: 2px solid var(--primary-red);
  border-bottom: 2px solid var(--primary-red);
  transform: rotate(45deg);
  opacity: 0;
}

.ct-privacy-check input:checked + span::after,
.ct-privacy-check input:checked + .wpcf7-list-item-label > span::after {
  opacity: 1;
}

.ct-privacy-check .wpcf7-form-control-wrap,
.ct-privacy-check .wpcf7-form-control,
.ct-privacy-check .wpcf7-list-item,
.ct-privacy-check .wpcf7-list-item label,
.ct-privacy-check .wpcf7-list-item-label {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  margin: 0;
}

.ct-privacy-check b {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

.ct-privacy a {
  margin-top: 14px;
  color: #222;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ct-form-submit {
  margin-top: 28px;
  text-align: center;
}

.ct-submit {
  min-width: 212px;
  height: 55px;
  padding: 0 32px;
  border: 1px solid var(--primary-red);
  border-radius: 999px;
  background: #fff;
  color: var(--primary-red);
  font-family: var(--font-ja);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease;
}

.ct-submit:hover {
  background: var(--primary-red);
  color: #fff;
}

.ct-confirm[hidden] {
  display: none !important;
}

body.contact-confirm-open {
  overflow: hidden;
}

.ct-confirm {
  position: fixed;
  inset: 0 0 0 10px;
  z-index: 10005;
  width: auto;
  max-width: none;
  overflow-y: auto;
  padding: 118px 40px 150px;
  background: #fff;
}

.ct-confirm-panel {
  width: 100%;
  margin: 0 auto;
  padding: 130px 56px 235px;
  border: 1px solid #dedede;
  border-radius: 6px;
  background: #fff;
}

.ct-confirm-title {
  margin: 0;
  color: var(--text-primary);
  font-family: var(--font-ja);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0;
  text-align: left;
}

.ct-confirm-list {
  margin: 126px 0 0;
  padding: 0;
}

.ct-confirm-row {
  display: block;
  margin: 0;
  padding: 24px 0 24px;
  border-bottom: 1px solid #dedede;
}

.ct-confirm-row + .ct-confirm-row {
  margin-top: 49px;
}

.ct-confirm-row dt {
  margin: 0 0 17px;
  color: var(--text-primary);
  font-family: var(--font-ja);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
}

.ct-confirm-row dd {
  min-height: 1.5em;
  margin: 0;
  color: var(--text-secondary);
  font-family: var(--font-ja);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.ct-confirm-row--message dd {
  line-height: 1.75;
}

.ct-confirm-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 68px;
  margin-top: -231px;
  padding-bottom: 164px;
}

.ct-confirm-actions > p {
  display: contents;
  margin: 0;
}

.ct-confirm-actions > p > br {
  display: none;
}

.ct-confirm-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 244px;
  height: 61px;
  padding: 0 34px;
  border: 2px solid var(--primary-red);
  border-radius: 999px;
  background: #fff;
  color: var(--primary-red);
  font-family: var(--font-ja);
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease;
}

.ct-confirm-button:hover {
  background: var(--primary-red);
  color: #fff;
}

@media screen and (max-width: 767px) {
  .ct-input, .ct-textarea, .ct-select {
    height: 53px;
    border-radius: 9px !important;
  }

  .ct-input, .ct-select {
    padding: 0 14px;
  }

  .ct-label {
    font-weight: 500;
    gap: 7px;
    align-items: center;
  }

  .ct-textarea {
    padding: 16px 16px;
  }

  .ct-privacy-check b {
    font-size: 15px;
    font-weight: normal;
  }

  .ct-form {
    gap: 37px;
  }

  .ct-confirm-panel {
    padding: 60px 26px 315px;
  }

  .ct-confirm-list {
    margin: 66px 0 0;
  }

  .ct-confirm-row + .ct-confirm-row {
    margin-top: 9px;
  }
}
