/*
 * RW Comms — the built-in form (shortcode / block). Neutral, inherits the site's font and colours;
 * a theme overrides the custom properties on .rwc-form or restyles the classes.
 */
.rwc-form {
	--rwc-gap: 1rem;
	--rwc-radius: 6px;
	--rwc-border: #c8ccd2;
	--rwc-focus: #2563eb;
	--rwc-error: #b91c1c;
	--rwc-success: #15803d;
	--rwc-muted: #6b7280;
	--rwc-button-bg: #111827;
	--rwc-button-fg: #ffffff;
	max-width: 100%;
	font: inherit;
	color: inherit;
}
.rwc-form__fields { display: grid; grid-template-columns: 1fr; gap: var(--rwc-gap); }
.rwc-form--grid .rwc-form__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rwc-form--grid .rwc-form__field--full { grid-column: 1 / -1; }
@media (max-width: 640px) { .rwc-form--grid .rwc-form__fields { grid-template-columns: 1fr; } }
.rwc-form__field { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.rwc-form__label { font-weight: 600; }
.rwc-form__required { color: var(--rwc-error); }
.rwc-form__required-note { margin: 0 0 1em; font-size: .9em; }
.rwc-form__optional { font-weight: 400; color: var(--rwc-muted); font-size: .9em; }
.rwc-form input:not([type="checkbox"]):not([type="radio"]), .rwc-form select, .rwc-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	color: inherit;
	background: #fff;
	border: 1px solid var(--rwc-border);
	border-radius: var(--rwc-radius);
	padding: .6em .75em;
}
.rwc-form textarea { resize: vertical; }
.rwc-form input:focus-visible, .rwc-form select:focus-visible, .rwc-form textarea:focus-visible { outline: 2px solid var(--rwc-focus); outline-offset: 1px; }
.rwc-form .is-invalid { border-color: var(--rwc-error); }
.rwc-form__field.is-invalid input, .rwc-form__field.is-invalid select, .rwc-form__field.is-invalid textarea { border-color: var(--rwc-error); }
.rwc-form__check { display: flex; gap: .5rem; align-items: flex-start; }
.rwc-form__choices { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: .4rem; }
.rwc-form__choices legend { padding: 0; margin-bottom: .35rem; }
.rwc-form__choice { display: flex; gap: .5rem; align-items: flex-start; cursor: pointer; }
.rwc-form__choice input { margin-top: .25em; }
.rwc-form__field.is-invalid .rwc-form__choices legend { color: var(--rwc-error); }
.rwc-form__section { grid-column: 1 / -1; margin-top: calc(var(--rwc-gap) / 2); }
.rwc-form__section-title { margin: 0; font-size: 1.1em; }
.rwc-form__help { margin: 0; font-size: .9em; color: var(--rwc-muted); }
.rwc-form__error { margin: 0; font-size: .9em; color: var(--rwc-error); }
.rwc-form__actions { margin-top: var(--rwc-gap); }
/* reCAPTCHA v2's box is 304 × 78 px: its height is kept so nothing moves when it appears, and on a
   form narrower than the box it is scaled down instead of pushing the page sideways. */
.rwc-form__captcha { margin-top: var(--rwc-gap); min-height: 78px; container-type: inline-size; }
@container (max-width: 303px) { .rwc-form__captcha > div { transform: scale(.88); transform-origin: 0 0; } }
@container (max-width: 267px) { .rwc-form__captcha > div { transform: scale(.75); } }
.rwc-form__button {
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	border: 0;
	border-radius: var(--rwc-radius);
	padding: .75em 1.5em;
	background: var(--rwc-button-bg);
	color: var(--rwc-button-fg);
}
.rwc-form__button:disabled, .rwc-form.is-sending .rwc-form__button { opacity: .6; cursor: progress; }
.rwc-form__consent { margin: .75rem 0 0; font-size: .9em; color: var(--rwc-muted); }
.rwc-form__message { margin: var(--rwc-gap) 0 0; padding: .75em 1em; border-radius: var(--rwc-radius); border: 1px solid currentColor; }
.rwc-form__message.is-error { color: var(--rwc-error); }
.rwc-form__message.is-success { color: var(--rwc-success); }
.rwc-form.is-sent .rwc-form__fields, .rwc-form.is-sent .rwc-form__captcha, .rwc-form.is-sent .rwc-form__actions, .rwc-form.is-sent .rwc-form__consent { display: none; }
