.appointment{padding-top:24px;padding-bottom:110px;scroll-margin-top:15px}
.appointment-heading{max-width:770px;margin-bottom:44px}
.appointment-heading .eyebrow{margin-bottom:15px}
.appointment-heading h2{font-size:clamp(34px,4vw,52px)}
.appointment-heading>p:last-child{font-size:17px;line-height:1.75;margin-top:23px;max-width:690px}
.appointment-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(45px,6vw,86px);align-items:start}
.appointment-form{min-width:0}
.appointment-required{font-size:12px;margin:0 0 23px;color:var(--muted)}
.appointment-fields{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 22px;min-width:0}
.appointment-field{display:flex;flex-direction:column;min-width:0}
.appointment-field-wide{grid-column:1/-1}
.appointment-field>label{font-size:14px;font-weight:540;margin-bottom:9px;color:var(--ink)}
.appointment-field input,.appointment-field textarea{width:100%;max-width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);padding:14px 15px;min-height:53px;font-size:16px;line-height:1.45;transition:border-color .15s,box-shadow .15s}
.appointment-field input[type=date]{min-height:55px;appearance:none}
.appointment-field textarea{resize:vertical;min-height:156px}
.appointment-field input:hover,.appointment-field textarea:hover{border-color:var(--muted)}
.appointment-field input:focus,.appointment-field textarea:focus{outline:3px solid var(--line-strong);outline-offset:2px;border-color:var(--green-dark)}
.appointment-field input[aria-invalid=true],.appointment-field textarea[aria-invalid=true]{border-color:#a33329}
.appointment-hint{font-size:12px;line-height:1.6;color:var(--muted);margin-top:7px}
.appointment-field-error{color:#922b23;font-size:12px;font-weight:500;line-height:1.6;margin-top:7px}
.appointment-consent{padding-top:6px;font-size:12px;line-height:1.8;color:var(--muted)}
.appointment-consent>label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:13px;align-items:start;cursor:pointer}
.appointment-consent input{accent-color:var(--green-dark);width:20px;height:20px;margin:3px 0 0;border-radius:4px;flex:none}
.appointment-consent input[aria-invalid=true]{outline:2px solid #a33329;outline-offset:2px}
.appointment-consent>a{display:inline-flex;align-items:center;gap:8px;margin:10px 0 0 35px;color:var(--green-dark);text-decoration:underline}
.appointment-consent>.appointment-field-error{display:block;margin-left:35px}
.appointment-submit-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:27px}
.appointment-submit{min-height:56px;background:var(--cta-green);padding-inline:25px;gap:28px}
.appointment-submit:hover{background:var(--cta-hover)}
.appointment-submit:disabled{opacity:.53}
.appointment-submit-note{font-size:12px;margin-top:15px;line-height:1.7;max-width:430px}
.appointment-feedback{border-left:3px solid var(--line-strong);background:var(--sand);padding:16px 19px;margin-top:26px;font-size:13px;line-height:1.75;color:var(--muted);border-radius:0 8px 8px 0;scroll-margin-top:120px}
.appointment-feedback[data-state=success]{border-color:var(--brand-green);background:var(--mint);color:var(--brand-green)}
.appointment-feedback[data-state=error]{border-color:#a33329;background:#fff5f1;color:#7e3129}
.appointment-feedback:focus{outline:2px solid var(--green-dark);outline-offset:4px}
.appointment-retry{border:0;background:transparent;padding:11px 0;color:var(--green-dark);font-size:13px;text-decoration:underline}
.appointment-errors{border:1px solid #d6a298;border-radius:10px;padding:20px 22px;background:#fff8f5;margin-bottom:26px;color:#7e3129;scroll-margin-top:120px}
.appointment-errors p{font-size:14px;font-weight:600;color:inherit}
.appointment-errors ul{padding-left:18px;margin:9px 0 0;font-size:13px;line-height:1.9}
.appointment-errors a{text-decoration:underline}
.appointment-aside{border-radius:16px;background:var(--surface-warm);padding:32px 29px 29px}
.appointment-aside-kicker{display:block;color:var(--muted);font-size:11px;margin-bottom:17px}
.appointment-aside h3{font-size:29px;line-height:1.15;max-width:250px}
.appointment-next{list-style:none;padding:0;margin:31px 0}
.appointment-next li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;margin-bottom:24px}
.appointment-next li:last-child{margin-bottom:0}
.appointment-next li>span{font-size:11px;color:var(--green-dark);padding-top:3px;font-variant-numeric:tabular-nums}
.appointment-next h4{font-size:13px;line-height:1.55;font-weight:600;margin:0 0 7px;letter-spacing:-.015em}
.appointment-next p{font-size:12px;line-height:1.85;color:var(--muted)}
.appointment-intake-note{border-top:1px solid var(--line);padding-top:23px;font-size:12px;line-height:1.8}
.appointment-intake-note>strong{color:var(--ink);font-weight:600;display:block;margin-bottom:9px}
.appointment-intake-note p{font-size:12px;color:var(--muted);line-height:1.8}
.appointment-intake-note p strong{font-weight:600}
.appointment-trap,.appointment-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1000px){.appointment-layout{grid-template-columns:minmax(0,1fr) 290px;gap:36px}.appointment-aside{padding:29px 24px}.appointment-fields{column-gap:17px}}
@media(max-width:800px){.appointment-layout{grid-template-columns:1fr;gap:45px}.appointment-heading{margin-bottom:34px}.appointment-aside{padding:30px;max-width:none}.appointment-aside h3{max-width:none}.appointment-next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.appointment-next li{grid-template-columns:1fr;gap:9px;margin:0}.appointment-intake-note p{max-width:620px}.appointment-intake-note{padding-top:22px}}
@media(max-width:540px){.appointment{padding-top:14px;padding-bottom:75px}.appointment-heading>p:last-child{font-size:15px;margin-top:21px}.appointment-fields{grid-template-columns:1fr;gap:22px}.appointment-field-wide{grid-column:auto}.appointment-field input,.appointment-field textarea{padding:14px 13px}.appointment-consent{padding-top:2px}.appointment-submit{width:100%;justify-content:space-between;padding-inline:21px}.appointment-submit-row{gap:9px}.appointment-submit-note{font-size:11px}.appointment-aside{padding:29px 25px}.appointment-next{display:block;margin-block:28px}.appointment-next li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:11px;margin-bottom:22px}.appointment-heading h2{max-width:350px}.appointment-errors{padding:18px}.appointment-feedback{padding:15px 16px}}
