/* Everything that is not responsive lives here. Versioned by filemtime(), so a fix is never
   served stale. The page bodies carry their own inline styles, exactly as the designs do, so this
   file stays small on purpose: resets, typography defaults, link colors, focus rings, and the
   handful of rules that make Fluent Forms match the cards it sits inside. */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body.rwc-site {
	margin: 0;
	background: #ffffff;
	font-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	font-size: 17px;
	line-height: 1.6;
	color: #26303c;
	-webkit-font-smoothing: antialiased;
}

body.rwc-site h1,
body.rwc-site h2,
body.rwc-site h3 { font-family: 'Archivo', system-ui, sans-serif; text-wrap: pretty; }

body.rwc-site img { max-width: 100%; }

/* Links. Defined here so a link added later in the WordPress editor is never browser default blue. */
body.rwc-site a { color: #14416f; text-decoration: none; }
body.rwc-site a:hover,
body.rwc-site a:focus-visible { color: #2f7a52; text-decoration: underline; }
body.rwc-site p a { text-decoration: underline; text-underline-offset: 2px; }

body.rwc-site :focus-visible { outline: 2px solid #14416f; outline-offset: 2px; }

body.rwc-site summary { list-style: none; }
body.rwc-site summary::-webkit-details-marker { display: none; }
body.rwc-site details[open] .plus { transform: rotate(45deg); }

/* Fluent Forms. Every form sits inside the page's own card, so it gets no card of its own here,
   only field styling that matches the rest of the site. */
body.rwc-site .fluentform .ff-el-group { margin-bottom: 16px; }
body.rwc-site .fluentform .ff-el-input--label label { font-size: 14px; font-weight: 600; color: #3d4957; }
body.rwc-site .fluentform input[type="text"],
body.rwc-site .fluentform input[type="email"],
body.rwc-site .fluentform input[type="tel"],
body.rwc-site .fluentform input[type="number"],
body.rwc-site .fluentform select,
body.rwc-site .fluentform textarea {
	border: 1px solid #cfd8e3;
	border-radius: 10px;
	font-size: 16px;
	min-height: 46px;
	padding: 12px 13px;
	width: 100%;
}
body.rwc-site .fluentform textarea { min-height: 96px; }
body.rwc-site .fluentform .ff-btn-submit,
body.rwc-site .fluentform .ff-btn-next,
body.rwc-site .fluentform .ff-btn-prev {
	border: 0;
	border-radius: 999px;
	font-weight: 600;
	min-height: 48px;
	padding: 13px 26px;
}
body.rwc-site .fluentform .ff-btn-submit,
body.rwc-site .fluentform .ff-btn-next { background: #2f7a52; color: #ffffff; }
body.rwc-site .fluentform .ff-btn-submit:hover,
body.rwc-site .fluentform .ff-btn-next:hover { background: #14416f; }
body.rwc-site .fluentform .ff-btn-prev { background: #eef3f8; color: #14416f; }
body.rwc-site .fluentform .ff-step-header .ff-el-progress-bar { background: #2f7a52; }

@media (prefers-reduced-motion: reduce) {
	body.rwc-site *, body.rwc-site *::before, body.rwc-site *::after {
		animation-duration: .001ms !important;
		transition-duration: .001ms !important;
	}
}

/* Name field: two inputs in one cell, so it takes twice the width of a single
   input cell, and every field in a row bottom-aligns regardless of label wrap. */
body.rwc-site .rwc-form .ff-t-container { align-items: flex-end; }
body.rwc-site .rwc-form .ff-t-cell:has(.ff-name-field-wrapper) { flex: 2 1 360px; }
body.rwc-site .rwc-form .ff-name-field-wrapper { align-items: flex-end; }
body.rwc-site .rwc-form .ff-name-field-wrapper > div { flex: 1 1 150px; }
body.rwc-site .rwc-form .ff-el-group { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; }

/* The mobile panel is printed with an inline display:none so it is hidden before
   any stylesheet arrives. An inline style outranks a selector, so the checked
   rule has to be marked important or the Menu button does nothing. */
body.rwc-site #nav-h:checked ~ .mobile-nav { display: block !important; }
@media (min-width: 1000px) { body.rwc-site .mobile-nav { display: none !important; } }
