/* Additions for the static site (keep separate from the CSS exported from WordPress). */
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 10000; clip: auto; width: auto; height: auto; padding: .75rem 1rem; background: #fff; color: #704b9d; }
.rm-form-status { margin-top: 1rem; font-weight: 700; }
.rm-form-status[data-state="ok"] { color: #2e7d32; }
.rm-form-status[data-state="error"] { color: #b00020; }
/* honeypot spam trap: hidden from people, still filled in by bots */
.rm-form input[name="_hp"], .rm-form :has(> input[name="_hp"]) { position: absolute !important; left: -9999px !important; }
/* Forms use the browser's `required` check; Formidable's CSS paints every :invalid field red,
   which would show empty required fields as errors before anyone types. Only show the error
   style once the visitor has interacted with the field (:user-invalid), as on WordPress. */
.frm_style_formidable-style.with_frm_style .rm-form .frm_form_field :invalid:not(:user-invalid),
.frm_style_formidable-style.with_frm_style .paybill-form .frm_form_field :invalid:not(:user-invalid) {
  color: var(--text-color); background-color: var(--bg-color);
  border-color: var(--border-color); border-width: var(--field-border-width); border-style: var(--field-border-style);
}
/* Radio/checkbox options: long labels (e.g. the SMS consent wording) wrap aligned with the
   text, not underneath the button. */
/* (selectors are long on purpose: they must outrank Formidable's ".with_frm_style .vertical_radio .frm_radio label") */
.rm-form .frm_form_field .frm_opt_container .frm_radio > label,
.rm-form .frm_form_field .frm_opt_container .frm_checkbox > label { display: flex; align-items: flex-start; gap: .45em; }
.rm-form .frm_form_field .frm_opt_container .frm_radio > label > input,
.rm-form .frm_form_field .frm_opt_container .frm_checkbox > label > input { flex: none; margin-top: .2em; }
/* Pay Your Bill (public/js/paybill.js) */
.paybill-form { max-width: 560px; }
.paybill-form .frm_button_submit:disabled { opacity: .55; cursor: not-allowed; }
.paybill-status[data-state="error"] { color: #b00020; }
.paybill-note { font-size: .9em; color: #555; margin-top: .75rem; }
.payment-placeholder { padding: 1.5rem; border: 2px solid #704b9d; border-radius: 6px; background: #f6f2fb; }
.elementor-video-iframe { display: block; }

/* Header buttons: four equal-width buttons (Book Appt. added Oct 2026) */
.header-buttons .btn,
.header-buttons .btn:first-child,
.header-buttons .btn:nth-child(2) { flex: 1 1 0; min-width: 0; }
.header-buttons .btn .icon-wrapper { flex: 0 0 auto; }
.header-buttons .btn .btn-text { min-width: 0; flex: 1 1 auto; padding: 6px 4px; }
@media (max-width: 600px) {
  .header-buttons .btn .icon-wrapper { padding: 0 3px; }
  .header-buttons .btn .icon-wrapper img { width: auto; height: 26px; max-width: 40px; transform: none; }
  .header-buttons .btn .btn-text { padding: 4px; font-size: 13px; }
}
