/* Dedicated contact page. */
.contact-page { padding: 0; background: var(--fa-color-background); }
.contact-page + .site-footer { margin-top: 0; }
.contact-page__hero { padding: 72px 0 118px; background: var(--fa-color-primary-very-light); }
.contact-page__hero-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(380px, .7fr); gap: 72px; align-items: center; }
.contact-page__hero-grid--no-image { grid-template-columns: minmax(0, 900px); }
.contact-page__eyebrow { margin: 0 0 15px; color: var(--fa-color-primary); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.contact-page__intro h1 { max-width: 760px; margin: 0; font-size: 58px; line-height: 1.04; font-weight: 500; letter-spacing: -.055em; text-wrap: balance; }
.contact-page__intro h1 em { color: var(--fa-color-primary); font-style: normal; }
.contact-page__lead { max-width: 620px; margin-top: 25px; color: rgba(0, 0, 0, .68); font-size: 17px; line-height: 1.75; }
.contact-page__lead > :first-child { margin-top: 0; }
.contact-page__lead > :last-child { margin-bottom: 0; }
.contact-page__visual { position: relative; height: 360px; }
.contact-page__image { position: relative; z-index: 1; width: calc(100% - 34px); height: calc(100% - 34px); object-fit: cover; border-radius: 24px; box-shadow: 0 26px 60px rgba(60, 52, 44, .15); }
.contact-page__visual span { position: absolute; right: 0; bottom: 0; width: 58%; height: 46%; background: rgba(0, 101, 177, .12); border: 1px solid rgba(255, 255, 255, .7); border-radius: 22px; -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.contact-page__body { position: relative; z-index: 2; margin-top: -56px; padding: 0 0 72px; }
.contact-page__setup-notice { display: grid; gap: 18px; align-content: center; min-height: 220px; padding: 28px; color: var(--fa-color-text); background: var(--fa-color-primary-very-light); border: 1px dashed rgba(0, 101, 177, .34); border-radius: 16px; }
.contact-page__setup-notice div { display: grid; gap: 3px; }
.contact-page__setup-notice strong { font-size: 14px; }
.contact-page__setup-notice span { color: rgba(0, 0, 0, .64); font-size: 13px; }
.contact-page__setup-notice a { justify-self: start; color: var(--fa-color-primary); font-size: 13px; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.contact-page__layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr); gap: 18px; align-items: stretch; }
.contact-page__layout--details-only { grid-template-columns: minmax(0, 1fr); }
.contact-page__form-card { min-width: 0; padding: 44px; background: rgba(252, 251, 249, .94); border: 1px solid rgba(100, 90, 78, .14); border-radius: 24px; box-shadow: 0 24px 60px rgba(60, 52, 44, .09); }
.contact-page__form-card h2 { margin: 0 0 28px; font-size: 32px; line-height: 1.15; font-weight: 600; }
.contact-page__form p { margin-top: 0; }
.contact-page__form label { display: grid; gap: 8px; margin-bottom: 18px; color: var(--fa-color-text); font-size: 14px; font-weight: 700; }
.contact-page__form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) { width: 100%; min-height: 54px; padding: 0 16px; color: var(--fa-color-text); background: var(--fa-color-primary-very-light); border: 1px solid rgba(100, 90, 78, .2); border-radius: 12px; font: inherit; }
.contact-page__form textarea { width: 100%; min-height: 160px; padding: 16px; color: var(--fa-color-text); background: var(--fa-color-primary-very-light); border: 1px solid rgba(100, 90, 78, .2); border-radius: 12px; font: inherit; resize: vertical; }
.contact-page__form select { width: 100%; min-height: 54px; padding: 0 16px; color: var(--fa-color-text); background: var(--fa-color-primary-very-light); border: 1px solid rgba(100, 90, 78, .2); border-radius: 12px; font: inherit; }
.contact-page__form input[type="submit"] { min-height: 52px; padding: 0 24px; color: #fff; background: var(--fa-color-primary); border: 1px solid var(--fa-color-primary); border-radius: 999px; font: inherit; font-weight: 700; cursor: pointer; transition: filter var(--fa-duration-hover) var(--fa-ease-snappy), transform var(--fa-duration-hover) var(--fa-ease-spring); }
.contact-page__form button[type="submit"] { min-height: 52px; padding: 0 24px; color: #fff; background: var(--fa-color-primary); border: 1px solid var(--fa-color-primary); border-radius: 999px; font: inherit; font-weight: 700; cursor: pointer; transition: filter var(--fa-duration-hover) var(--fa-ease-snappy), transform var(--fa-duration-hover) var(--fa-ease-spring); }
.contact-page__form input[type="submit"]:hover { filter: brightness(.92); transform: translateY(-2px); }
.contact-page__form button[type="submit"]:hover { filter: brightness(.92); transform: translateY(-2px); }
.contact-page__form .fluentform { color: var(--fa-color-text); font-family: var(--fa-font-body); }
.contact-page__form .fluentform .ff-el-group { margin-bottom: 18px; }
.contact-page__form .fluentform .ff-t-container { gap: 16px; }
.contact-page__form .fluentform .ff-el-input--label { margin-bottom: 8px; }
.contact-page__form .fluentform .ff-el-input--label label { color: var(--fa-color-text); font-size: 13px; line-height: 1.35; font-weight: 700; }
.contact-page__form .fluentform .ff-el-is-required.asterisk-right label::after { margin-left: 4px; color: #b00020; }
.contact-page__form .fluentform .ff-el-form-control { width: 100%; min-height: 54px; padding: 13px 16px; color: var(--fa-color-text); background: var(--fa-color-primary-very-light) !important; border: 1px solid rgba(100, 90, 78, .2) !important; border-radius: 12px !important; box-shadow: none !important; font: inherit; transition: background-color var(--fa-duration-hover) var(--fa-ease-snappy), border-color var(--fa-duration-hover) var(--fa-ease-snappy), box-shadow var(--fa-duration-hover) var(--fa-ease-out); }
.contact-page__form .fluentform textarea.ff-el-form-control { min-height: 160px; line-height: 1.6; resize: vertical; }
.contact-page__form .fluentform .ff-el-form-control::placeholder { color: rgba(0, 0, 0, .48); opacity: 1; }
.contact-page__form .fluentform .ff-el-form-control:hover { border-color: rgba(0, 101, 177, .42) !important; }
.contact-page__form .fluentform .ff-el-form-control:focus { background: #fff !important; border-color: var(--fa-color-primary) !important; box-shadow: 0 0 0 3px rgba(0, 101, 177, .14) !important; outline: 0; }
.contact-page__form .fluentform .ff-el-is-error .ff-el-form-control { border-color: #b00020 !important; box-shadow: 0 0 0 3px rgba(176, 0, 32, .1) !important; }
.contact-page__form .fluentform .error, .contact-page__form .fluentform .text-danger { margin-top: 6px; color: #8b0018; font-size: 13px; font-weight: 650; }
.contact-page__form .fluentform .ff_submit_btn_wrapper { margin-top: 6px; margin-bottom: 0; }
.contact-page__form .fluentform .ff-btn-submit { display: inline-flex; gap: 14px; align-items: center; justify-content: space-between; min-height: 52px; padding: 5px 6px 5px 20px; color: #fff !important; background: var(--fa-color-primary) !important; border: 1px solid var(--fa-color-primary) !important; border-radius: 999px !important; box-shadow: 0 10px 22px rgba(0, 101, 177, .16); font: inherit; font-weight: 700; cursor: pointer; opacity: 1; transition: filter var(--fa-duration-hover) var(--fa-ease-snappy), box-shadow var(--fa-duration-hover) var(--fa-ease-out), transform var(--fa-duration-hover) var(--fa-ease-spring); }
.contact-page__form .fluentform .ff-btn-submit::after { display: block; flex: 0 0 36px; width: 36px; height: 36px; content: ""; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230065B1' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / 14px no-repeat; border-radius: 50%; transform: rotate(-45deg); transition: transform var(--fa-duration-hover) var(--fa-ease-spring); }
.contact-page__form .fluentform .ff-btn-submit:hover { color: #fff !important; background: var(--fa-color-primary) !important; border-color: var(--fa-color-primary) !important; box-shadow: 0 14px 28px rgba(0, 101, 177, .24); filter: brightness(.94); transform: translateY(-2px); }
.contact-page__form .fluentform .ff-btn-submit:hover::after { transform: rotate(0deg); }
.contact-page__form .fluentform .ff-btn-submit:disabled { cursor: wait; filter: grayscale(.2); opacity: .72; transform: none; }
.contact-page__form .fluentform .ff-message-success { margin: 0; padding: 18px; color: #064f32; background: #edf9f3; border: 1px solid #77b99a; border-radius: 12px; box-shadow: none; }
.contact-page__details { min-width: 0; padding: 40px; overflow: hidden; color: #fff; background: var(--fa-color-primary); border-radius: 24px; box-shadow: 0 24px 60px rgba(0, 75, 132, .2); }
.contact-page__details-heading { position: relative; z-index: 1; }
.contact-page__details-eyebrow { margin: 0 0 12px; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.contact-page__details h2 { max-width: 440px; margin: 0; color: #fff; font-size: 34px; line-height: 1.12; font-weight: 550; letter-spacing: -.03em; }
.contact-page__details-list { position: relative; z-index: 1; display: grid; gap: 14px; margin-top: 30px; }
.contact-page__method { display: grid; grid-template-areas: "icon label" "icon value"; grid-template-columns: 44px minmax(0, 1fr); gap: 4px 14px; align-content: center; min-height: 72px; padding: 8px; color: #fff; background: transparent; border: 0; border-radius: 12px; text-decoration: none; transition: background-color var(--fa-duration-hover) var(--fa-ease-snappy), transform var(--fa-duration-hover) var(--fa-ease-spring); }
a.contact-page__method:hover { color: #fff; background: rgba(255, 255, 255, .08); text-decoration: none; transform: translateY(-2px); }
.contact-page__method-icon { grid-area: icon; display: inline-flex; align-items: center; justify-content: center; align-self: center; width: 42px; height: 42px; color: #fff; background: rgba(255, 255, 255, .12); border-radius: 50%; }
.contact-page__method-icon svg { display: block; width: 18px; height: 18px; color: currentColor; }
.contact-page__method-label { grid-area: label; align-self: end; color: rgba(255, 255, 255, .75); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.contact-page__method strong { grid-area: value; align-self: start; font-size: 15px; line-height: 1.45; font-weight: 650; overflow-wrap: anywhere; }
address.contact-page__method { font-style: normal; }
.contact-page__availability { max-width: 500px; margin-top: 24px; color: #fff; font-size: 14px; line-height: 1.7; }
.contact-page__availability > :first-child { margin-top: 0; }
.contact-page__availability > :last-child { margin-bottom: 0; }
.contact-page__layout--details-only .contact-page__details { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr); gap: 52px; align-items: start; padding: 48px; }
.contact-page__layout--details-only .contact-page__details h2 { font-size: 42px; }
.contact-page__layout--details-only .contact-page__details-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 0; }
.contact-page__layout--details-only .contact-page__method { min-height: 72px; }
@media (max-width:900px) {
	.contact-page__hero { padding-bottom: 92px; }
	.contact-page__hero-grid { grid-template-columns: minmax(0, 1fr); gap: 42px; }
	.contact-page__visual { height: 340px; }
	.contact-page__body { margin-top: -40px; }
	.contact-page__layout { grid-template-columns: minmax(0, 1fr); }
	.contact-page__layout--details-only .contact-page__details { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.contact-page__layout--details-only .contact-page__details-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width:600px) {
	.contact-page__hero { padding: 52px 0 72px; }
	.contact-page__intro h1 { font-size: 40px; letter-spacing: -.045em; }
	.contact-page__lead { margin-top: 20px; font-size: 16px; }
	.contact-page__visual { height: 270px; }
	.contact-page__body { margin-top: -28px; padding-bottom: 52px; }
	.contact-page__setup-notice { min-height: 180px; gap: 12px; padding: 20px; }
	.contact-page__form-card { padding: 26px; border-radius: 20px; }
	.contact-page__details { padding: 28px; border-radius: 20px; }
	.contact-page__details h2 { font-size: 32px; }
	.contact-page__layout--details-only .contact-page__details { gap: 26px; padding: 28px; }
	.contact-page__layout--details-only .contact-page__details h2 { font-size: 34px; }
	.contact-page__layout--details-only .contact-page__details-list { grid-template-columns: minmax(0, 1fr); }
	.contact-page__layout--details-only .contact-page__method { min-height: 72px; }
	.contact-page__form input[type="submit"] { width: 100%; }
	.contact-page__form button[type="submit"] { width: 100%; }
	.contact-page__form .fluentform .ff-t-container { gap: 0; }
	.contact-page__form .fluentform .ff-btn-submit { gap: 10px; width: 100%; padding: 4px 5px 4px 16px; font-size: 14px; white-space: nowrap; }
	.contact-page__form .fluentform .ff-btn-submit::after { flex-basis: 32px; width: 32px; height: 32px; }
}
@media (prefers-reduced-motion:reduce) {
	.contact-page__form input[type="submit"] { transition: none; }
	.contact-page__form button[type="submit"] { transition: none; }
	.contact-page__method { transition: none; }
	.contact-page__form .fluentform .ff-el-form-control { transition: none; }
	.contact-page__form .fluentform .ff-btn-submit { transition: none; }
	.contact-page__form .fluentform .ff-btn-submit::after { transition: none; }
}
.contact-page__form .fluentform .ff-el-form-control:focus-visible, .contact-page__form .fluentform .ff-btn-submit:focus-visible { outline: var(--fa-focus-width) solid var(--fa-focus-color) !important; outline-offset: var(--fa-focus-offset) !important; border-radius: var(--fa-focus-radius) !important; box-shadow: 0 0 0 var(--fa-focus-halo-width) var(--fa-focus-halo) !important; }

/* Brand motif on the contact page: open "f" arches and dot fields, as on the homepage. */
.contact-page__hero { position: relative; isolation: isolate; }
.contact-page__hero::before, .contact-page__hero::after, .contact-page__body::before { position: absolute; z-index: -1; content: ""; pointer-events: none; }
.contact-page__hero::before { bottom: 0; left: 0; width: min(420px, 70%); height: 380px; background: var(--fa-motif) no-repeat; background-position: 100% 0; background-size: 560px 560px; }
.contact-page__hero::after, .contact-page__body::before { width: min(320px, 55%); height: 250px; background: var(--fa-dots); -webkit-mask-image: radial-gradient(closest-side, #000 35%, transparent); mask-image: radial-gradient(closest-side, #000 35%, transparent); }
.contact-page__hero::after { top: 24px; right: 2%; }
.contact-page__body::before { bottom: 0; left: 0; }
/* The open "f" peeks out behind the photo instead of the old glass block. */
.contact-page__visual span { top: -36px; right: -18px; bottom: auto; width: 170px; height: 208px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 78'%3E%3Cpath d='M5 80V33a27 27 0 0 1 54 0v13' fill='none' stroke='%230065b1' stroke-opacity='.45' stroke-width='1' stroke-linecap='round'/%3E%3Ccircle cx='32' cy='38' r='2.6' fill='%230065b1'/%3E%3C/svg%3E") center / contain no-repeat; border: 0; border-radius: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
/* A white open "f" rises from the bottom edge of the blue details card, like the homepage contact block. */
.contact-page__details { position: relative; }
.contact-page__details::after { position: absolute; z-index: 0; right: 36px; bottom: -34px; width: 170px; height: 207px; content: ""; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 78'%3E%3Cpath d='M5 80V33a27 27 0 0 1 54 0v13' fill='none' stroke='%23fff' stroke-opacity='.9' stroke-width='2.2' stroke-linecap='round'/%3E%3Ccircle cx='32' cy='38' r='4' fill='%23fff'/%3E%3C/svg%3E") center / contain no-repeat; pointer-events: none; }
.contact-page__availability { position: relative; z-index: 1; }
@media (max-width:900px) {
	.contact-page__visual span { right: 0; }
	.contact-page__details { padding-bottom: 170px; }
}
@media (max-width:600px) {
	.contact-page__hero::before { height: 220px; background-size: 330px 330px; opacity: .7; }
	.contact-page__hero::after, .contact-page__body::before { height: 180px; }
	.contact-page__visual span { top: -24px; width: 110px; height: 134px; }
	.contact-page__details { padding-bottom: 130px; }
	.contact-page__details::after { right: 24px; bottom: -24px; width: 104px; height: 127px; }
}
/* Light dividers between the contact methods in the blue card. */
.contact-page__details-list { gap: 0; }
.contact-page__method + .contact-page__method { border-top: 1px solid rgba(255, 255, 255, .2); border-radius: 0; }
.contact-page__method { padding-top: 14px; padding-bottom: 14px; }
