@import url('/styles/base.css');
.form-shell { width: min(100%, 48rem); margin: 0 auto; padding: 2rem var(--gutter) 4rem; }
.form-intro { margin: 0 0 1.5rem; color: var(--muted); }
form { display: grid; gap: 1.5rem; }
fieldset { display: grid; gap: 1rem; margin: 0; padding: 1.25rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--surface); }
legend { padding: 0 .25rem; font-size: 1.25rem; font-weight: 800; }
.field-grid { display: grid; gap: 1rem; }
.field-group { display: grid; gap: .5rem; }
.field-group label, .radio-row { font-weight: 700; }
.field-group input, .field-group select { min-height: 3rem; width: 100%; padding: .75rem 1rem; border: 1px solid var(--border); border-radius: .5rem; color: var(--foreground); background: var(--surface); font: inherit; font-size: 1rem; }
.field-group input:focus, .field-group select:focus { outline: 3px solid color-mix(in srgb, var(--focus) 30%, transparent); outline-offset: 1px; border-color: var(--focus); }
.field-help { margin: 0; color: var(--muted); font-size: .9375rem; }
.radio-row { display: flex; gap: .75rem; align-items: center; min-height: 3rem; padding: .5rem; }
.radio-row input { width: 1.25rem; height: 1.25rem; }
.error-summary { margin: 1rem 0; padding: 1rem; border-left: .35rem solid var(--danger); background: #fcecef; }
.error-summary h2 { margin: 0 0 .5rem; font-size: 1.1rem; }
.error-summary ul { margin: 0; padding-left: 1.25rem; }
.success-panel { padding: 1.5rem; border-left: .35rem solid var(--success); background: var(--surface); }
.review-summary { display:grid; gap:.75rem; margin: 1rem 0; padding: 1rem; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface); }
.review-summary dt { color:var(--muted); font-size:.875rem; }
.review-summary dd { margin:0; font-weight:700; }
.success-panel h2 { margin-top: 0; }
.included-service { padding: 1.25rem; border: 1px solid var(--border); border-left: .35rem solid var(--accent); background: var(--surface-subtle); }
.included-service h2 { margin: 0 0 .5rem; font-size: 1.45rem; }
.included-service p:last-child { margin: 0; color: var(--muted); }
.privacy-notice { margin: 1rem 0 0; padding: 1rem; border-left: .25rem solid var(--primary); color: var(--muted); background: var(--surface-subtle); }
@media (min-width: 40rem) { .form-shell { padding-top: 4rem; } .field-grid { grid-template-columns: 1fr 1fr; } }
