.intake-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; padding: 64px 0 88px; }
.intake-form [hidden] { display: none !important; }
.intake-intro { max-width: 820px; margin-bottom: 38px; }
.intake-intro h1 { margin: 0 0 14px; color: var(--forest); font-family: var(--font-heading); font-size: clamp(2.25rem, 4vw, 3.7rem); font-weight: 500; line-height: 1.04; }
.intake-intro > p:last-child { max-width: 760px; margin: 0; font-size: 1.02rem; }
.intake-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 30px; align-items: start; }
.intake-aside { position: sticky; top: 24px; padding: 24px; border: 1px solid var(--warm-gray); border-radius: 18px; background: rgba(255, 253, 248, 0.58); }
.intake-aside__title { margin: 0 0 18px; color: var(--forest); font-weight: 700; }
.intake-progress { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.intake-progress li { display: flex; gap: 10px; align-items: center; color: #59615e; font-size: 0.9rem; }
.intake-progress span { display: inline-grid; width: 28px; height: 28px; place-items: center; flex: 0 0 28px; border: 1px solid var(--warm-gray); border-radius: 50%; font-size: 0.78rem; }
.intake-progress li.is-current { color: var(--forest); font-weight: 700; }
.intake-progress li.is-current span, .intake-progress li.is-complete span { border-color: var(--forest); background: var(--forest); color: var(--white); }
.intake-aside__note { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--warm-gray); font-size: 0.86rem; }
.intake-aside__note p { margin: 7px 0 0; }
.intake-form { min-height: 560px; padding: 30px; border: 1px solid var(--warm-gray); border-radius: 22px; background: var(--white); box-shadow: 0 18px 54px rgba(24, 52, 46, 0.07); }
.intake-status { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 26px; padding-bottom: 15px; border-bottom: 1px solid var(--warm-gray); color: var(--moss); font-size: 0.8rem; }
.intake-step { min-width: 0; margin: 0; padding: 0; border: 0; }
.js .intake-step { display: none; }
.js .intake-step.is-active { display: block; }
.intake-step legend { width: 100%; margin: 0 0 8px; padding: 0; color: var(--forest); font-family: var(--font-heading); font-size: clamp(1.65rem, 3vw, 2.3rem); font-weight: 550; line-height: 1.12; }
.intake-step__lead { margin: 0 0 26px; color: #58615d; }
.intake-form .form-field { margin-bottom: 20px; }
.intake-form .form-field label { display: block; margin-bottom: 7px; color: var(--forest); font-size: 0.9rem; font-weight: 700; }
.intake-form .form-field label span { color: #66706b; font-weight: 400; }
.intake-form input, .intake-form select, .intake-form textarea { font-family: inherit; }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 20px; }
.choice-card { position: relative; display: flex; min-height: 70px; align-items: center; padding: 14px 14px 14px 46px; border: 1px solid var(--warm-gray); border-radius: 12px; background: var(--paper); cursor: pointer; }
.choice-card input { position: absolute; left: 15px; width: 19px; height: 19px; accent-color: var(--forest); }
.choice-card:has(input:checked) { border-color: var(--moss); background: var(--sage); }
.choice-card span { color: var(--forest); font-size: 0.88rem; font-weight: 650; line-height: 1.35; }
.upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.upload-field { padding: 16px; border: 1px dashed var(--moss); border-radius: 12px; background: rgba(221, 228, 217, 0.35); }
.upload-field label, .upload-field span { display: block; }
.upload-field span { margin-top: 2px; color: #66706b; font-size: 0.78rem; }
.upload-field input { width: 100%; margin-top: 12px; font-size: 0.78rem; }
.field-error { margin: -8px 0 20px; color: #9f3d2f; font-size: 0.86rem; font-weight: 700; }
.review-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 22px 0; }
.review-item { padding: 14px; border-left: 3px solid var(--moss); background: var(--paper); }
.review-item strong, .review-item span { display: block; }
.review-item strong { margin-bottom: 3px; color: var(--forest); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; }
.review-item span { white-space: pre-line; }
.consent-check { display: flex; gap: 11px; align-items: flex-start; margin-top: 22px; font-size: 0.9rem; }
.consent-check input { width: 19px; height: 19px; margin-top: 3px; accent-color: var(--forest); }
.intake-submit-note { color: #66706b; font-size: 0.82rem; }
.intake-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--warm-gray); }
.intake-actions .button { min-width: 140px; }
.intake-summary-field { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

@media (max-width: 820px) {
  .intake-shell { width: min(100% - 28px, 680px); padding: 38px 0 64px; }
  .intake-layout { grid-template-columns: 1fr; }
  .intake-aside { position: static; padding: 16px; }
  .intake-aside__title, .intake-aside__note { display: none; }
  .intake-progress { grid-template-columns: repeat(5, 1fr); gap: 5px; }
  .intake-progress li { justify-content: center; font-size: 0; }
  .intake-progress span { font-size: 0.78rem; }
  .intake-form { min-height: 0; padding: 20px; border-radius: 16px; }
  .intake-status { align-items: flex-start; flex-direction: column; gap: 3px; }
  .choice-grid, .upload-grid, .review-card { grid-template-columns: 1fr; }
  .intake-actions { justify-content: stretch; }
  .intake-actions .button { width: 100%; min-width: 0; }
}
