/* Order + appointment request forms (shared). Rules are scoped to form.rf so they don't touch page styles. */
.rf .fs{border:1px solid var(--line);padding:26px 26px 28px;margin:0 0 22px;background:#fff}
.rf .fs legend{font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);padding:0 10px}
.rf .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.rf .field{display:flex;flex-direction:column;gap:7px;margin:0}
.rf .field--full{grid-column:1/-1}
.rf .field label{display:block;margin:0;font-family:var(--display);font-weight:500;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--navy)}
.rf .field input,.rf .field select,.rf .field textarea{font-family:var(--text);font-size:.97rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:0;padding:13px 14px;width:100%;transition:border-color .2s,box-shadow .2s}
.rf .field input:focus,.rf .field select:focus,.rf .field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(23,45,86,.1)}
.rf .field textarea{min-height:110px;resize:vertical}
.rf .field-hint{font-size:13px;line-height:1.45;color:var(--body);margin:0}
.rf .field-hint.show{padding-top:2px}
.rf .field-hint.err{color:var(--red);font-weight:500}
.rf .precond{display:flex;gap:12px;background:#FDF3F3;border:1px solid #E9C9Cb;padding:16px 18px;margin:18px 0 0;font-size:13.5px;line-height:1.5;color:#7a2a2f}
.rf .precond[hidden]{display:none}
.rf .precond svg{width:20px;height:20px;color:var(--red);flex:none;margin-top:1px}
.rf .precond b{color:var(--red)}
.rf .precond a{color:var(--red);text-decoration:underline}
.rf .rf-notice{margin:0 0 18px}
.rf .fs-help{font-size:13.5px;color:var(--body);margin:0 0 18px;line-height:1.5}
.rf .order-item{border:1px solid var(--line);padding:18px 18px 6px;margin:0 0 14px;background:#fff}
.rf .order-item .precond{margin:18px 0 12px}
.rf .oi-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.rf .oi-title{font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.rf .oi-title::before{content:"#" attr(data-n) "\00a0\00a0"}
.rf .oi-remove{background:none;border:0;color:var(--body);font-size:13px;cursor:pointer;text-decoration:underline;padding:4px}
.rf .oi-remove:hover{color:var(--red)}
.rf .rf-add{margin-top:2px}
.rf .order-submit{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:4px}
.rf .order-submit .btn{margin:0}
.rf .reassure{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--body);margin:0}
.rf .reassure svg{width:16px;height:16px;color:#1f8a4c;flex:none}
.rf .form-note{font-size:.83rem;line-height:1.5;color:var(--body);margin:16px 0 0}
.rf .form-status{margin:16px 0 0;font-size:.95rem;font-weight:500;display:none;padding:14px 16px;border-radius:0}
.rf .form-status.ok{display:block;color:#14663B;background:#EAF7EF;border:1px solid #BFE6CD}
.rf .form-status.err{display:block;color:var(--red);background:#FDF3F3;border:1px solid #E9C9Cb}
/* appointment block on office pages */
.appt{border:1px solid var(--line);border-top:3px solid var(--red);background:var(--mist);padding:28px 28px 24px;margin:24px 0 8px;scroll-margin-top:110px}
.appt>h3{margin:0 0 6px!important;font-size:21px}
.appt>p.appt-sub{font-size:14.5px;line-height:1.6;color:var(--body);margin:0 0 20px}
.appt .rf .fs{padding:22px 20px 24px}
@media(max-width:920px){.rf .form-grid{grid-template-columns:1fr}}
@media(max-width:560px){.appt{padding:22px 16px 20px;margin-left:-4px;margin-right:-4px}.appt .rf .fs{padding:18px 14px 20px}.rf .order-item{padding:14px 12px 4px}}
/* office hours in the office card (West Palm Beach, Miami) */
.loc-hours{display:flex;gap:9px;font-size:14px;line-height:1.55;color:var(--ink);margin:-4px 0 14px}
.loc-hours svg{width:15px;height:15px;color:var(--red);flex:none;margin-top:3px}
.loc-hours b{display:block;font-weight:500}
.loc-hours small{display:block;color:var(--body);font-size:13px}
