/* Public content pages: contact.aspx, accessibility.aspx (PRF 45944803, 2026-10-09).
   Scoped to body.page-public so nothing else on the site picks it up. */

.page-public {
	--fsi-ink: #2c434e;
	--fsi-text: #3a4a52;
	--fsi-muted: #5b6b73;
	--fsi-line: #7d8f99;
	--fsi-wash: #f4f4f4;
	--fsi-tint: #eef3f5;
	--fsi-green: #5e7a24;
	--fsi-green-dark: #4f6a1b;
	--fsi-error: #b3261e;
	--fsi-link: #0074ad;
	background: var(--fsi-wash);
	color: var(--fsi-text);
	font-family: 'Open Sans', "Helvetica Neue", Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}
.page-public ::selection { background: #c9dae2; color: var(--fsi-ink); }

.page-public .skip-link {
	position: absolute; left: 12px; top: -48px; z-index: 100;
	background: var(--fsi-ink); color: #fff; padding: 10px 16px; border-radius: 3px;
	font-weight: 600; font-size: 14px;
}
.page-public .skip-link:focus { top: 12px; color: #fff; outline: 3px solid #c9dae2; outline-offset: 2px; }

.page-wrap { max-width: 760px; margin: 0 auto; padding: 0 20px; }

/* Intro band, same slate as the homepage tagline band */
.page-intro { background: var(--fsi-ink); color: #d5e3ea; padding: 56px 0 112px; }
.page-intro h1 {
	font-family: 'Open Sans', sans-serif; font-weight: 300; font-size: 44px; line-height: 1.15;
	letter-spacing: -0.01em; color: #fff; margin: 0 0 14px;
}
.page-intro p { font-size: 17px; line-height: 1.6; max-width: 60ch; margin: 0; }
.page-intro p + p { margin-top: 10px; }
.page-intro a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.page-intro a:hover { text-decoration-thickness: 2px; }
.page-intro a:focus-visible { outline: 3px solid #c9dae2; outline-offset: 3px; border-radius: 2px; }

/* The card pulls up into the band */
.page-card {
	position: relative; background: #fff; border-radius: 12px;
	box-shadow: 0 14px 34px -16px rgba(44, 67, 78, 0.35);
	padding: 40px 44px; margin: -72px 0 72px;
}

/* Contact form */
.contact-form .form-note { font-size: 13px; color: var(--fsi-muted); margin: 0 0 26px; }
.contact-form .form-note .req { margin: 0 2px 0 0; }
.page-public .req { color: var(--fsi-error); font-weight: 700; margin-left: 3px; }
.contact-form .field-row { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
.contact-form .field { margin: 0 0 22px; }
.contact-form .field label {
	display: block; margin: 0 0 7px; font-weight: 600; font-size: 14px; line-height: 1.3; color: var(--fsi-ink);
}
.contact-form .form-control {
	display: block; width: 100%; height: 46px; padding: 10px 14px;
	font-family: inherit; font-size: 16px; line-height: 1.4; color: var(--fsi-ink);
	background: #fff; border: 1px solid var(--fsi-line); border-radius: 3px; box-shadow: none;
	transition: border-color .15s ease-out, box-shadow .15s ease-out;
}
.contact-form textarea.form-control { height: auto; min-height: 148px; resize: vertical; line-height: 1.55; }
.contact-form .form-control:hover { border-color: #5b6b73; }
.contact-form .form-control:focus {
	border-color: var(--fsi-ink); outline: 0;
	box-shadow: 0 0 0 3px rgba(81, 123, 143, 0.35);
}
.contact-form .form-control::placeholder { color: #6f828c; opacity: 1; }
.contact-form .field-error { display: block; margin-top: 7px; font-size: 13px; font-weight: 600; color: var(--fsi-error); }
.contact-form .contact-actions { margin-top: 6px; }

.page-public .btn-send {
	-webkit-appearance: none; appearance: none; border: 0; border-radius: 3px; cursor: pointer;
	background: var(--fsi-green); color: #fff;
	font: 600 15px/1 'Open Sans', sans-serif; padding: 15px 30px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
	transition: background-color .15s ease-out;
}
.page-public .btn-send:hover { background: var(--fsi-green-dark); }
.page-public .btn-send:active { background: #46601a; }
.page-public .btn-send:focus-visible { outline: 3px solid var(--fsi-ink); outline-offset: 2px; }

.page-card.thanks h2 { font-weight: 300; font-size: 30px; line-height: 1.25; color: var(--fsi-ink); margin: 0 0 10px; }
.page-card.thanks p { font-size: 16px; line-height: 1.6; margin: 0; }

/* Accessibility statement */
.statement { font-size: 16px; line-height: 1.7; }
.statement p { margin: 0 0 16px; max-width: 68ch; }
.statement h2 {
	font-family: 'Open Sans', sans-serif; font-size: 20px; font-weight: 600; line-height: 1.3;
	color: var(--fsi-ink); margin: 36px 0 10px;
}
.statement > :first-child { margin-top: 0; }
.statement a { color: var(--fsi-link); text-decoration: underline; text-underline-offset: 3px; }
.statement a:hover { color: #005a87; }
.statement a:focus-visible { outline: 3px solid var(--fsi-ink); outline-offset: 2px; border-radius: 2px; }
.statement address {
	font-style: normal; line-height: 1.7; margin: 4px 0 16px; padding: 18px 22px;
	background: var(--fsi-tint); border-radius: 8px; max-width: 68ch;
}
.statement address strong { color: var(--fsi-ink); }

@media (max-width: 767px) {
	.page-intro { padding: 36px 0 92px; }
	.page-intro h1 { font-size: 32px; }
	.page-intro p { font-size: 16px; }
	.page-card { padding: 28px 20px; margin: -60px 0 40px; border-radius: 10px; }
	.contact-form .field-row { grid-template-columns: 1fr; }
	.page-public .btn-send { width: 100%; padding: 16px 20px; }
	.statement h2 { margin-top: 30px; }
}
