/* Sav-Law Meetings: request form (loaded only on pages that carry [savlaw_meeting_form]).
   Builds on the theme's .contact-form styles; everything here is prefixed with .meeting-form so it wins over them. */

.meeting-form .meeting-intro { padding: 12px 14px; background: var(--tint, #dfe9ec); border-inline-start: 3px solid var(--accent-text, #3e6d7d); font-size: 15px; line-height: 1.6; }

.meeting-form fieldset.meeting-field { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
.meeting-form fieldset.meeting-field > legend { padding: 0; margin-bottom: 8px; font-size: 13px; font-weight: 500; }

/* Meeting type */
.meeting-form .meeting-options { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.meeting-form .meeting-options label { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 400; cursor: pointer; }
.meeting-form input[type="radio"],
.meeting-form input[type="checkbox"] { width: 18px; min-height: 0; height: 18px; padding: 0; margin: 0; accent-color: var(--ink, #1f4f5f); }

/* Days and time windows */
.meeting-form .meeting-hint { font-size: 13px; color: var(--muted, #4e6068); }
.meeting-form .meeting-slots:empty { display: none; }
.meeting-form .meeting-status { font-size: 14px; color: var(--muted, #4e6068); }
.meeting-form .meeting-day { display: block; margin: 0 0 14px; padding: 0; border: 0; min-width: 0; }
.meeting-form .meeting-day > legend { padding: 0; margin-bottom: 8px; font-size: 14px; font-weight: 500; }
.meeting-form .meeting-times { display: flex; flex-wrap: wrap; gap: 8px; }
.meeting-form .meeting-slot { position: relative; display: block; margin: 0; font-size: 15px; font-weight: 400; }
.meeting-form .meeting-slot input { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
.meeting-form .meeting-slot span { display: block; min-width: 76px; padding: 11px 14px; text-align: center; background: var(--paper, #fff); border: 1px solid var(--line-strong, #cbd8dc); }
.meeting-form .meeting-slot input:checked + span { background: var(--ink, #1f4f5f); border-color: var(--ink, #1f4f5f); color: var(--on-ink, #f4f7f8); }
.meeting-form .meeting-slot input:focus-visible + span { outline: 2px solid var(--accent-text, #3e6d7d); outline-offset: 2px; }
.meeting-form .meeting-slot input:disabled { cursor: not-allowed; }
.meeting-form .meeting-slot input:disabled + span { opacity: .45; }
.meeting-form .meeting-count { font-size: 14px; font-weight: 500; }
.meeting-form .meeting-msg { margin: 0; padding: 10px 14px; border: 1px solid #d9a3a3; background: #fbeeee; font-size: 14px; }

.meeting-form .meeting-other { padding: 0; background: none; border: 0; color: var(--accent-text, #3e6d7d); font: inherit; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.meeting-form .meeting-other:focus-visible { outline: 2px solid var(--accent-text, #3e6d7d); outline-offset: 2px; }
.meeting-form .meeting-other-wrap[hidden],
.meeting-form .meeting-fallback[hidden],
.meeting-form .meeting-count[hidden],
.meeting-form .meeting-msg[hidden] { display: none; }

@media (max-width: 480px) {
	.meeting-form .meeting-slot span { min-width: 70px; padding: 12px 10px; }
}
