/** Dedicated intake form: page-only styles, shared Tailwind colour/font tokens. */
.intake-shell { max-width:940px; }
.intake-hero { padding:65px 0 40px; }
.intake-hero h1 { font-size:clamp(3.8rem,7vw,6.5rem); margin:20px 0 24px; }
.intake-page .intake-lead { font-family:var(--font-display); font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.4; color:var(--color-sage); max-width:760px; }
.intake-main { padding-bottom:100px; }
.intake-page p:not(.rn-eyebrow):not(.intake-lead),.intake-page label { font-size: var(--text-reading); line-height:1.85; }
.intake-intro { padding:30px 34px; background:var(--color-wash); border-radius:4px 70px 4px 4px; margin:5px 0 38px; }
.intake-page h2,.intake-intro h3 { font-family:var(--font-display); font-size:32px; line-height:1.2; margin-bottom:18px; }
.intake-intro p { color:var(--color-muted); }
.intake-intro .actions { margin-top:22px; }
.intake-form { background:white; border:1px solid var(--color-line); border-radius:4px; padding:40px; }
.intake-form .fine { font-size:12px; line-height:1.85; color:var(--color-muted); }
.intake-form > h2 { margin-top:36px; }
.intake-fields { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:22px 0; }
.intake-form label { display:block; font-weight:500; color:var(--color-forest); }
.intake-form input:not([type="checkbox"]):not([type="hidden"]),.intake-form textarea { display:block; width:100%; min-width:0; background:var(--color-paper); border:1px solid var(--color-line); border-radius:3px; padding:12px 14px; font:inherit; font-size: var(--text-reading); margin-top:9px; color:var(--color-forest); }
.intake-form textarea { resize:vertical; min-height:110px; }
.intake-form > label { margin:25px 0 14px; }
.intake-form input:focus,.intake-form textarea:focus { outline:2px solid var(--color-sage); outline-offset:2px; }
.intake-form fieldset { border:1px solid var(--color-line); padding:24px; margin:32px 0; min-width:0; border-radius:4px; }
.intake-form legend { font-family:var(--font-display); font-size:28px; font-weight:500; padding:0 8px; }
.intake-form fieldset > p { margin-bottom:15px; }
.intake-form .intake-check { display:flex; align-items:flex-start; gap:13px; margin:17px 0; font-weight:400; }
.intake-check input { flex:none; width:19px; height:19px; margin-top:4px; accent-color:var(--color-olive); }
.intake-card { background:var(--color-paper); padding:24px; margin-bottom:22px; border-radius:4px; }
.intake-card h2 { font-size:25px; }
.intake-card .fine p + p { margin-top:17px; }
.intake-form a { text-decoration:underline; text-underline-offset:3px; }
.intake-form .intake-card .intake-check { border-top:1px solid var(--color-line); padding-top:18px; margin-bottom:0; }
.intake-form > button { margin-top:22px; }
.intake-form button:disabled { opacity:.6; cursor:wait; }
.intake-status { background:var(--color-wash); border-left:3px solid var(--color-sage); padding:20px; margin-top:25px; }
.intake-status[hidden],.intake-trap { display:none; }
@media(max-width:640px) {
 .intake-hero { padding:45px 0 30px; }
 .intake-hero h1 { font-size:3.7rem; }
 .intake-intro { padding:26px 23px; }
 .intake-intro .actions { flex-direction:column; align-items:stretch; }
 .intake-form { padding:25px 20px; }
 .intake-fields { grid-template-columns:1fr; gap:20px; }
 .intake-form fieldset { padding:20px 15px; }
 .intake-card { padding:20px 16px; }
 .intake-form legend { font-size:25px; }
 .intake-form > button { width:100%; }
 .intake-main { padding-bottom:65px; }
}

/* Prevent focus zoom in mobile Safari while keeping inputs easy to read. */
@media(max-width:640px) { .intake-form input:not([type="checkbox"]):not([type="hidden"]),.intake-form textarea { font-size: var(--text-reading); } }

/* Persistent feedback supplements the native checkbox validation tooltip. */
.intake-form .intake-field-error { color:#8a3029; font-size:13px; font-weight:500; margin-top:10px; }
.intake-field-error[hidden] { display:none; }
.intake-form input[aria-invalid="true"] { outline:2px solid #8a3029; outline-offset:3px; }

/* Native Netlify POST returns here even without JavaScript. */
.intake-status[hidden]:target { display:block; }

/* Highlighted introduction and receipt keep their existing typography. */
.intake-page .intake-intro p,.intake-page .intake-status p { font-size: 14px; }
