.cx-flow { padding-top: 64px; padding-bottom: 96px; color: var(--cx-text); }
.cx-flow__inner { display: grid; gap: 56px; max-width: 840px; margin-inline: auto; }
.cx-flow-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; list-style: none; }
.cx-flow-steps li { display: grid; gap: 8px; padding-bottom: 16px; border-bottom: 1px solid var(--cx-rule); color: var(--cx-muted); font-size: 14px; line-height: 20px; font-weight: 700; }
.cx-flow-steps li.is-current { color: var(--cx-red); border-bottom: 2px solid var(--cx-red); }
.cx-flow-steps__number { font: 700 12px/16px Archivo,sans-serif; }
.cx-flow-intro { display: grid; gap: 16px; }
.cx-flow-intro h2 { font-size: 24px; line-height: 34px; }
.cx-flow-intro p, .cx-flow-message__copy { font-size: 16px; line-height: 28px; }
.cx-flow-break-sp { display: none; }
.cx-flow-table { border-top: 1px solid var(--cx-rule); }
.cx-flow-row { display: grid; grid-template-columns: 224px minmax(0,1fr); gap: 32px; padding-block: 24px; border-bottom: 1px solid var(--cx-rule); }
.cx-flow-row dt { color: var(--cx-muted); font-size: 14px; line-height: 20px; font-weight: 700; }
.cx-flow-row dd { min-width: 0; font-size: 16px; line-height: 28px; overflow-wrap: anywhere; }
.cx-flow-native-value { white-space: pre-line; }
.cx-flow-address-detail { display: block; }
.cx-flow-consent { margin-top: 56px; color: var(--cx-muted); font-size: 14px; line-height: 24px; }
.cx-flow-consent a { text-decoration: underline; text-underline-offset: 2px; }
.cx-flow-actions { display: flex; justify-content: center; gap: 24px; }
.cx-flow-consent + .cx-flow-actions { margin-top: 24px; }
.cx-flow-actions > p { display: contents; }
.cx-flow-actions br { display: none; }
.cx-flow-actions .cx-button, .cx-flow-submit { width: 264px; max-width: 100%; border-radius: 4px; }
.cx-flow-back { text-align: left; }
.cx-flow-submit { display: block; position: relative; flex-shrink: 0; }
.cx-flow-submit .cx-button { display: block; padding-right: 60px; text-align: left; }
.cx-flow-submit .cx-arrow { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.cx-flow-actions .wpcf7-spinner { position: absolute; margin: 64px 0 0; }
.cx-flow-message { display: grid; gap: 24px; }
.cx-flow-message__label { color: var(--cx-red); font: 700 12px/16px Archivo,sans-serif; }
.cx-flow-message h2 { font-size: 36px; line-height: 50px; }
.cx-flow-message__status { font-size: 24px; line-height: 34px; font-weight: 700; }
.cx-flow-message__copy { display: grid; gap: 16px; }
.cx-flow-form input[type=button], .cx-flow-form input[type=submit] { min-height: 56px; cursor: pointer; }
.cx-flow-form .wpcf7-response-output { margin-inline: 0; }
@media (min-width: 768px) and (max-width: 1199px) {
  .cx-flow { padding-inline: 48px; }
}
@media (max-width: 767px) {
  .cx-flow { padding-top: 40px; padding-bottom: 64px; }
  .cx-flow__inner { gap: 40px; }
  .cx-flow-steps { gap: 12px; }
  .cx-flow-row { grid-template-columns: minmax(0,1fr); gap: 8px; padding-block: 20px; }
  .cx-flow-break-sp { display: initial; }
  .cx-flow-consent { margin-top: 40px; }
  .cx-flow-actions { flex-direction: column; gap: 16px; }
  .cx-flow-actions .cx-button, .cx-flow-submit { width: 100%; }
  .cx-flow-actions .wpcf7-spinner { margin-top: 128px; }
  .cx-flow-message h2 { font-size: 24px; line-height: 36px; }
  .cx-flow-message__status { font-size: 18px; line-height: 28px; }
}

.cx-flow-migrated > .cx-flow-actions { margin-top: 24px; }
.cx-flow-migrated .cx-flow-back { display: block; width: 264px; max-width: 100%; }
.cx-flow-migrated .cx-flow-actions input { display: block; width: 100%; min-height: 56px; padding: 12px 20px; border: 1px solid var(--cx-control); border-radius: 4px; background: #fff; color: var(--cx-text); font: 700 14px/20px "Zen Kaku Gothic New", sans-serif; text-align: left; }
.cx-flow-migrated .cx-flow-submit input { padding-right: 60px; color: #fff; border-color: var(--cx-red); background: var(--cx-red); }
.cx-flow-migrated .cx-form-notes { display: grid; gap: 12px; margin-top: 24px; font-size: 14px; line-height: 24px; }
.cx-flow-migrated .cx-form-notes a { text-decoration: underline; }
.cx-flow-unavailable { padding: 16px; border: 1px solid var(--cx-rule); }
@media (max-width:767px) { .cx-flow-migrated .cx-flow-back { width: 100%; } }
