/* Local feedback / contact dialogs and site search (see /Common/scripts/site-forms.js, local-search.js) */
.puiFormDialog form { font-family: "Muli", Arial, sans-serif; font-size: 1rem; }
.puiFormDialog label { display: block; margin: 0.75em 0 0.25em; font-weight: 700; }
.puiFormDialog input[type="text"],
.puiFormDialog input[type="email"],
.puiFormDialog textarea { width: 100%; box-sizing: border-box; padding: 0.5em; border: 1px solid #767676; font: inherit; }
.puiFormDialog .puiFieldset { border: 0; padding: 0; margin: 1em 0 0; }
.puiFormDialog .puiFieldset legend { font-weight: 700; padding: 0; }
.puiFormDialog .puiRatingScale { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 0.5em; }
.puiFormDialog label.puiRating { margin: 0; font-weight: 400; }
.puiFormDialog .puiRating input { position: absolute; opacity: 0; }
.puiFormDialog .puiRating span { display: inline-block; min-width: 2.2em; padding: 0.4em 0; text-align: center; border: 1px solid #00578e; color: #00578e; cursor: pointer; }
.puiFormDialog .puiRating input:checked + span { background: #00578e; color: #fff; }
.puiFormDialog .puiRating input:focus + span { outline: 2px solid #000; outline-offset: 2px; }
.puiFormDialog .puiReq { color: #b00020; }
.puiFormDialog .puiTurnstile { margin: 1em 0 0.5em; min-height: 65px; }
.puiFormDialog .puiFormError { color: #b00020; font-weight: 700; min-height: 1.2em; }
.puiFormDialog .button-group { margin-top: 1em; }
.puiFormDialog .button-group button { cursor: pointer; }
.puiFormDialog .puiSubmit { background: #00578e; color: #fff; border: 0; padding: 0.6em 1.4em; font: inherit; font-weight: 700; }
.puiFormDialog .puiSubmit[disabled] { opacity: 0.6; }
.puiFormDialog .puiThankYou h2 { margin-top: 0; }
.puiHoneypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.localSearch form { display: flex; flex-wrap: wrap; gap: 0.5em; align-items: center; margin-bottom: 1.5em; }
.localSearch form label { flex-basis: 100%; font-weight: 700; }
.localSearch form .searchInput { flex: 1 1 240px; padding: 0.6em; border: 1px solid #767676; font: inherit; }
.localSearch form .searchButton { background: #00578e; color: #fff; border: 0; padding: 0.6em 1.4em; font: inherit; font-weight: 700; cursor: pointer; }
.localSearchResults { padding-left: 1.2em; }
.localSearchResults li { margin-bottom: 1.25em; }
.localSearchResults a { font-size: 1.15em; font-weight: 700; }
.localSearchResults .resultUrl { color: #006621; font-size: 0.85em; word-break: break-all; }
.localSearchResults p { margin: 0.25em 0 0; }
.localSearchResults mark { background: #fff3a0; }

/* Forms built into pages (/en/forms/*.aspx) - same look as the dialogs */
.puiPageForm { max-width: 720px; font-size: 1rem; }
.puiPageForm .puiRequiredNote { font-style: italic; }
.puiPageForm label { display: block; margin: 1em 0 0.3em; font-weight: 700; }
.puiPageForm input[type="text"],
.puiPageForm input[type="email"],
.puiPageForm input[type="tel"],
.puiPageForm input[type="date"],
.puiPageForm input[type="time"],
.puiPageForm input[type="number"],
.puiPageForm select,
.puiPageForm textarea { width: 100%; box-sizing: border-box; padding: 0.55em; border: 1px solid #767676; font: inherit; background: #fff; }
.puiPageForm fieldset { border: 0; padding: 0; margin: 1.25em 0 0; }
.puiPageForm legend { font-weight: 700; padding: 0; }
.puiPageForm .puiChoice { display: block; margin: 0.35em 0; font-weight: 400; }
.puiPageForm .puiChoice input { margin-right: 0.5em; }
.puiPageForm .puiHint { margin: 0.25em 0 0; font-size: 0.9em; color: #444; }
.puiPageForm .puiReq { color: #b00020; }
.puiPageForm .puiTurnstile { margin: 1.5em 0 0.5em; min-height: 65px; }
.puiPageForm .puiFormError { color: #b00020; font-weight: 700; min-height: 1.2em; }
.puiPageForm .puiSubmit { margin-top: 0.75em; background: #00578e; color: #fff; border: 0; padding: 0.7em 1.8em; font: inherit; font-weight: 700; cursor: pointer; }
.puiPageForm .puiSubmit[disabled] { opacity: 0.6; }
.puiThankYou:focus { outline: none; }

/* Calendar (/en/calendar.aspx) */
.puiCalendar .calFilters { border: 1px solid #d0d7de; padding: 0.75em 1em; margin: 0 0 1.5em; }
.puiCalendar .calFilters legend { font-weight: 700; padding: 0 0.3em; }
.puiCalendar .calFilters label { display: inline-block; margin: 0.25em 1.25em 0.25em 0; font-weight: 400; }
.puiCalendar .calViewLinks { margin: 0 0 1.5em; }
.puiCalendar h2.calMonth { border-bottom: 2px solid #00578e; padding-bottom: 0.25em; margin-top: 1.5em; }
.puiCalendar .calEvents { list-style: none; padding: 0; margin: 0; }
.puiCalendar .calEvent { display: flex; gap: 1em; padding: 0.9em 0; border-bottom: 1px solid #e3e3e3; }
.puiCalendar .calDate { flex: 0 0 3.5em; text-align: center; background: #00578e; color: #fff; padding: 0.4em 0; align-self: flex-start; }
.puiCalendar .calDate .calDay { display: block; font-size: 1.5em; font-weight: 800; line-height: 1.1; }
.puiCalendar .calDate .calMon { display: block; font-size: 0.8em; text-transform: uppercase; }
.puiCalendar .calEvent h3 { margin: 0 0 0.2em; font-size: 1.1em; }
.puiCalendar .calMeta { margin: 0; color: #444; font-size: 0.95em; }
.puiCalendar .calNone { font-style: italic; }
.puiCalendar .calDetail dt { font-weight: 700; margin-top: 0.9em; }
.puiCalendar .calDetail dd { margin: 0.2em 0 0; }
