.p-formHero { padding: 7.2rem 0 5rem; }
.p-formHero__head { text-align: center; max-width: 86rem; margin: 0 auto; }
.p-formHero h1 { font-size: clamp(3.2rem, 2.5rem + 2.1vw, 5.2rem); line-height: 1.35; letter-spacing: -.02em; }
.p-formHero__lead { max-width: 72rem; margin: 2.4rem auto 0; font-size: clamp(1.6rem, 1.45rem + .4vw, 1.9rem); line-height: 1.9; color: var(--c-ink-soft); }
.p-contactLine { max-width: 72rem; margin: 3.2rem auto 0; padding-top: 2.4rem; border-top: 1px solid var(--c-line); display: flex; justify-content: center; gap: 1.2rem 2.4rem; align-items: baseline; flex-wrap: wrap; color: var(--c-ink-soft); font-size: 1.4rem; }
.p-contactLine strong { color: var(--c-ink); font-size: 1.7rem; letter-spacing: .02em; }
.p-contactLine a { color: var(--c-accent); text-decoration: underline; text-underline-offset: .25em; }

.p-progressWrap { border-top: 1px solid var(--c-border); scroll-margin-top: 8rem; }
ol.p-progress { max-width: 76rem; margin: 0 auto; padding: 6rem 2.4rem 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.p-progress__item { position: relative; text-align: center; color: var(--c-ink-faint); }
.p-progress__item:not(:last-child)::after { content: ""; position: absolute; top: 1.8rem; left: calc(50% + 2.2rem); right: calc(-50% + 2.2rem); height: 1px; background: var(--c-line); }
.p-progress__dot { position: relative; z-index: 1; width: 3.6rem; height: 3.6rem; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; background: var(--c-white); border: 1px solid var(--c-control-line); color: var(--c-ink-faint); font-family: var(--font-en); font-weight: 700; }
.p-progress__label { margin-top: .8rem; font-size: 1.3rem; font-weight: 700; }
.p-progress__check { width: 1.8rem; height: 1.8rem; }
.p-progress__item.is-active { color: var(--c-ink); }
.p-progress__item.is-active .p-progress__dot { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-white); }
.p-progress__item.is-done { color: var(--c-accent); }
.p-progress__item.is-done .p-progress__dot { border-color: var(--c-accent); color: var(--c-accent); }
.p-progress__item.is-done:not(:last-child)::after { background: var(--c-accent); }

.p-formSec { padding: 3rem 0 9.6rem; background: var(--c-white); }
.p-formStep { display: none; }
.p-formStep.is-active { display: block; }
.p-formSec .p-narrow > .p-formStep + .p-formStep { margin-top: 0; }
.p-formHead { text-align: center; max-width: 72rem; margin: 0 auto 5.6rem; }
.p-formHead h2 { font-size: clamp(2.6rem, 2.2rem + 1.1vw, 3.6rem); line-height: 1.45; }
.p-formHead p { margin-top: 1.6rem; color: var(--c-ink-soft); font-size: 1.6rem; line-height: 1.9; }
.p-form { border-top: 2px solid var(--c-ink); }
.p-field { display: grid; grid-template-columns: minmax(0, 25rem) minmax(0, 1fr); gap: 4rem; padding: 3.2rem 0; border-bottom: 1px solid var(--c-line); align-items: start; }
.p-field__labelArea { display: block; }
.p-field__label { display: block; font-weight: 700; line-height: 1.6; }
.p-required, .p-optional { display: inline-flex; margin-left: .8rem; padding: .2rem .7rem; border-radius: var(--r-pill); font-size: 1.2rem; line-height: 1.5; vertical-align: .1em; }
.p-required { color: var(--c-loss); background: var(--c-loss-soft); }
.p-optional { color: var(--c-ink-faint); background: var(--c-bg); }
.p-field__help { display: block; margin-top: .8rem; font-size: 1.2rem; font-weight: 400; color: var(--c-ink-faint); line-height: 1.7; }
.p-control { width: 100%; min-width: 0; min-height: 5.6rem; border: 1px solid var(--c-control-line); border-radius: var(--r-sm); background: var(--c-white); padding: 1.4rem 1.6rem; font: inherit; font-size: 1.6rem; line-height: 1.5; transition: border-color .15s; }
.p-control:focus { border-color: var(--c-accent); }
.p-control::placeholder { color: var(--c-ink-faint); }
.p-control[readonly] { background: var(--c-bg); color: var(--c-ink-soft); }
.p-control--textarea { min-height: 15rem; resize: vertical; }
.p-control--sm { max-width: 28rem; }
.p-control--md { max-width: 34rem; }
.p-miniLabel { display: block; margin-bottom: .6rem; font-size: 1.2rem; font-weight: 700; color: var(--c-ink-faint); }
.p-selectWrap { position: relative; }
.p-selectWrap::after { content: ""; position: absolute; right: 1.8rem; top: 50%; width: .8rem; height: .8rem; border-right: 2px solid var(--c-ink-faint); border-bottom: 2px solid var(--c-ink-faint); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.p-select { appearance: none; -webkit-appearance: none; padding-right: 4.4rem; cursor: pointer; }
.p-select:invalid { color: var(--c-ink-faint); }
.p-select option { color: var(--c-ink); }
.p-otherInput { display: none; margin-top: 1.6rem; }
.p-otherInput.is-visible { display: block; }
.p-otherInput .p-miniLabel { margin-bottom: .8rem; }
.p-error { display: none; margin-top: .8rem; color: var(--c-loss); font-size: 1.2rem; }
.p-errorSummary { margin-bottom: 3.2rem; padding: 2rem 2.4rem; background: var(--c-loss-soft); border-left: 3px solid var(--c-loss); }
.p-errorSummary__title { color: var(--c-loss); font-size: 1.5rem; font-weight: 700; line-height: 1.6; }
ul.p-errorSummary__list { margin-top: 1.2rem; display: grid; gap: .8rem; }
.p-errorSummary__list a { color: var(--c-loss); font-size: 1.4rem; line-height: 1.7; }
.p-field.is-error .p-control, .p-field.is-error .p-select { border-color: var(--c-loss); background: var(--c-loss-soft); }
.p-field.is-error .p-error, .p-consent.is-error .p-error { display: block; }
.p-consent { padding: 3.2rem 0; border-bottom: 1px solid var(--c-line); }
.p-check { display: flex; gap: 1.2rem; align-items: flex-start; justify-content: center; cursor: pointer; }
.p-check input { width: 2rem; height: 2rem; margin-top: .25rem; accent-color: var(--c-accent); flex: none; }
.p-check__txt { font-size: 1.45rem; line-height: 1.8; }
.p-check__txt a { color: var(--c-accent); font-weight: 700; }
.p-consent .p-error { text-align: center; }
.p-formActions { margin-top: 4rem; display: flex; justify-content: center; gap: 1.2rem; flex-wrap: wrap; }
.p-formMeta { margin-top: 2rem; text-align: center; color: var(--c-ink-faint); font-size: 1.2rem; line-height: 1.8; }
.p-formMeta + .p-formMeta { margin-top: .8rem; }
.p-formMeta a { color: var(--c-accent); font-weight: 700; }

.p-confirm { border-top: 2px solid var(--c-ink); }
.p-confirmRow { display: grid; grid-template-columns: minmax(0, 25rem) minmax(0, 1fr); gap: 4rem; padding: 2.6rem 0; border-bottom: 1px solid var(--c-line); }
.p-confirmRow dt { font-weight: 700; }
.p-confirmRow dd { white-space: pre-wrap; word-break: break-word; }
.p-confirmNote { display: grid; grid-template-columns: minmax(0, 25rem) minmax(0, 1fr); gap: 4rem; padding: 2.6rem 0; border-bottom: 1px solid var(--c-line); }
.p-confirmNote__label { font-weight: 700; }
.p-confirmNote__txt { color: var(--c-ink-soft); font-size: 1.4rem; line-height: 1.9; }
.p-sendError { margin-top: 3.2rem; padding: 1.6rem 2rem; background: var(--c-loss-soft); border-left: 3px solid var(--c-loss); color: var(--c-loss); font-size: 1.4rem; line-height: 1.8; }
.p-sendError:not([hidden]) { display: block; }
.p-formUnavailable { margin-bottom: 3.2rem; }
.p-turnstile { display: flex; justify-content: center; max-width: 100%; margin-top: 3.2rem; }
.p-turnstileStatus { margin-top: 1.6rem; min-height: 2.6rem; text-align: center; color: var(--c-ink-soft); font-size: 1.4rem; line-height: 1.8; }
.p-turnstileRetry { margin-top: 1.6rem; text-align: center; }
.p-formActions .p-btn:disabled { cursor: not-allowed; opacity: .55; }

.p-complete { text-align: center; padding: 4rem 0 4rem; }
.p-complete h1 { font-size: clamp(2.8rem, 2.3rem + 1.2vw, 3.8rem); line-height: 1.5; }
.p-complete p { margin: 1.6rem auto 0; max-width: 64rem; color: var(--c-ink-soft); line-height: 1.9; }

.p-trust { padding: 5.6rem 0; background: var(--c-bg); border-top: 1px solid var(--c-border-soft); }
.p-trust__head { text-align: center; }
.p-trust__head h2 { font-size: 2.2rem; }
.p-trust__head p { margin-top: .8rem; color: var(--c-ink-soft); font-size: 1.4rem; }
.p-trust__items { max-width: 82rem; margin: 3.2rem auto 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.p-trustItem { padding: 2.4rem; text-align: center; }
.p-trustItem + .p-trustItem { border-left: 1px solid var(--c-line); }
.p-trustItem__logo { height: 5.6rem; width: auto; margin: 0 auto; }
.p-trustItem__desc { margin-top: 1.2rem; color: var(--c-ink-soft); font-size: 1.2rem; line-height: 1.7; }

@media screen and (max-width: 749px) {
  .p-formHero { padding: 5.6rem 0 3.6rem; }
  ol.p-progress { padding: 4.8rem 1.6rem 0; }
  .p-progress__item:not(:last-child)::after { left: calc(50% + 1.8rem); right: calc(-50% + 1.8rem); }
  .p-progress__label { font-size: 1.2rem; }
  .p-formSec { padding: 2.4rem 0 7.2rem; }
  .p-formHead { margin-bottom: 4rem; }
  .p-field, .p-confirmRow, .p-confirmNote { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; padding: 2.4rem 0; }
  .p-control--sm, .p-control--md { max-width: none; }
  .p-consent { padding: 2.4rem 0; }
  .p-turnstileStatus { min-height: 5.2rem; }
  .p-formActions { flex-direction: column-reverse; }
  .p-formActions .p-btn { width: 100%; }
  .p-trust__items { grid-template-columns: 1fr; }
  .p-trustItem + .p-trustItem { border-left: 0; border-top: 1px solid var(--c-line); }
}
