@charset "utf-8";

/*
|---------------------------------------------------------------
| TiME Analytics / Contact
|---------------------------------------------------------------
*/
.contact {
  container-type: inline-size;
  display: block;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}
.contact__step {
  display: block;
  width: 100%;
  margin: 0 0 clamp(20px, 4.5cqw, 40px);
}
.contact__main {
  display: block;
  width: 100%;
}

/*
  ステップ
------------------------------------------------ */
.contact-step {
  --step-gap: 0.5em;
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--step-gap);
  color: var(--color-passive);
  font-size: 1.1em;
}
.contact-step > li {
  display: flex;
  align-items: baseline;
  gap: var(--step-gap);
}
.contact-step > li ~ li::before {
  content: "";
  align-self: center;
  display: block;
  width: 0.5em;
  height: 0.5em;
  border-width: 3px 3px 0 0;
  border-style: solid;
  border-color: color-mix(in srgb, var(--color-passive), #ffffff 50%);
  transform: rotate(45deg);
}

/*
  Section
------------------------------------------------ */
.contact-section {
  display: block;
}

/*
  STEP
------------------------------------------------ */
.contact[data-step="1"] li[data-step="1"] {
  color: var(--color-accent);
}
.contact[data-step="2"] li[data-step="2"] {
  color: var(--color-accent);
}
.contact[data-step="3"] li[data-step="3"] {
  color: var(--color-accent);
}

.contact[data-step] .contact-section[data-step] {
  display: none;
}
.contact[data-step="1"] .contact-section[data-step="1"] {
  display: block;
}
.contact[data-step="2"] .contact-section[data-step="2"] {
  display: block;
}
.contact[data-step="3"] .contact-section[data-step="3"] {
  display: block;
}

/*
  Badge
------------------------------------------------ */
.contact-badge {
  display: block;
  font-style: normal;
  font-weight: 500;
  float: right;
  color: var(--badge-color);
}

.contact-badge.is-required {
  --badge-color: var(--color-accent);
}

/*
  Actions
------------------------------------------------ */
.contact-actions {
  width: 100%;
  margin: 15px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

/*
  Button
------------------------------------------------ */
.contact-btn {
  --bs-btn-padding-y: 0.75em;
  --bs-btn-padding-x: 0.75em;
  display: block;
  width: 13em;
  font-size: 1em;
}

.contact-btn:not(.is-sending) .spinner-border {
  display: none;
}

.contact-btn {
  --bs-btn-border-color: var(--bs-btn-bg);
  --bs-btn-hover-color: var(--bs-btn-color);
  --bs-btn-hover-bg: color-mix(in srgb, var(--bs-btn-bg), #000000 10%);
  --bs-btn-hover-border-color: var(--bs-btn-hover-bg);
  --bs-btn-focus-shadow-rgb: 60, 153, 110;
  --bs-btn-active-color: var(--bs-btn-color);
  --bs-btn-active-bg: color-mix(in srgb, var(--bs-btn-bg), #000000 15%);
  --bs-btn-active-border-color: var(--bs-btn-active-bg);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #ffffff;
  --bs-btn-disabled-bg: color-mix(in srgb, var(--bs-btn-bg), #ffffff 15%);
  --bs-btn-disabled-border-color: var(--bs-btn-disabled-bg);
}

.contact-btn--positive {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--color-accent);
}
.contact-btn--negative {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--color-gray);
}
.contact-btn--primary {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--color-primary);
}

/*
  Table
------------------------------------------------ */
.contact-table {
  --border-color: var(--color-gray);
  --cell-padding-y: 0.75em;
  --cell-padding-x: 1em;
  width: 100%;
  margin: 0 0 2em;
  table-layout: fixed;
  font-size: clamp(14px, 0.9em, 16px);
}

.contact-table th,
.contact-table td {
  padding: var(--cell-padding-y) var(--cell-padding-x);
  border-color: var(--border-color);
  border-width: 1px;
  border-style: solid;
}

.contact-table th {
  width: 25%;
  background-color: var(--color-light);
}

@media (max-width: 600px) {
  .contact-table {
    display: block;
  }

  .contact-table tbody {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: calc(var(--cell-padding-y) * 2) calc(var(--cell-padding-x) * 2);
  }

  .contact-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-table tbody tr th,
  .contact-table tbody tr td {
    display: block;
    width: 100%;
    border: 0;
  }
}

/*
  Form
------------------------------------------------ */
.contact-form-lead {
  display: block;
  margin: 0 0 0.25rem;
  font-size: 0.875em;
  color: var(--color-foreground);
}

.contact-form.was-validated .form-control:invalid~.invalid-feedback {
  display: none;
}

.contact-form.was-validated .form-control:invalid:placeholder-shown~.contact-feedback-required {
  display: block;
}

.contact-form.was-validated .form-control:invalid:not(:placeholder-shown)~.contact-feedback-minlength,
.contact-form.was-validated .form-control:invalid:not(:placeholder-shown)~.contact-feedback-maxlength,
.contact-form.was-validated .form-control:invalid:not(:placeholder-shown)~.contact-feedback-email,
.contact-form.was-validated .form-control:invalid:not(:placeholder-shown)~.contact-feedback-pattern {
  display: block;
}

/*
  Term
------------------------------------------------ */
.contact-terms {
  width: 100%;
  margin: 0 0 25px;
  display: flex;
  flex-direction: column;
  gap: 3em 0;
}

.contact-term {
  display: block;
  width: 100%;
  margin: 0;
}
.contact-term__head {
  display: block;
  width: 100%;
  margin: 0 0 0.5em;
  padding: 0.25em 0;
  font-size: 1.25em;
  font-weight: 400;
  text-align: center;
}
.contact-term__body {
  width: 100%;
}

.contact-term-box {
  width: 100%;
  height: 280px;
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid #c8c8c8;
  padding: 1em;
  font-size: clamp(14px, 0.8em, 18px);
  line-height: 1.75;
}

.contact-term-agreement {
  width: 100%;
  margin: 15px 0;
  display: flex;
  justify-content: center;
}
.contact-term-agreement__check {
  max-width: 100%;
  padding: 1em 1.75em;
  color: var(--color-foreground);
  background-color: var(--color-light);
  font-size: clamp(14px, 0.9em, 16px);
}
.contact-term-agreement__check .form-check {
  cursor: pointer;
}

/*
  確認画面
------------------------------------------------ */
.contact-confirm-error:not(.js--error) {
  display: none;
}

.contact-captcha {
  width: 100%;
  margin: clamp(20px, 4vw, 40px) 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.contact-captcha > * {
  max-width: 100%;
}

/*
  完了画面
------------------------------------------------ */
.contact-complete {
  width: 100%;
}
.contact-complete__content {
  width: 100%;
  margin: 0 0 clamp(20px, 4.5cqw, 40px);
  text-align: center;
}
.contact-complete__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
}
