/* Contact page styles are scoped to preserve the shared site. */
.contactPage { background: #faf7f2; color: #203852; font-size: 16px; line-height: 1.65; }
.contactPage * { box-sizing: border-box; }
.contactPage h1, .contactPage h2, .contactPage h3, .contactPage h4,
.contactPage p, .contactPage a, .contactPage dt, .contactPage dd { overflow-wrap: break-word; }
.contactPage p { font-size: 16px; line-height: 1.75; margin: 0 0 16px; }
.contactPage h2 { border: 0; color: #203852; font-size: 32px; font-weight: 700; letter-spacing: -0.5px; line-height: 1.25; margin: 0 0 24px; padding: 0; text-transform: none; }
.contactPage h3 { color: #203852; font-size: 23px; font-weight: 700; line-height: 1.35; margin: 0 0 16px; text-transform: none; }
.contactPage h4 { color: #203852; font-size: 16px; font-weight: 700; margin: 24px 0 10px; }
.contactPage a { color: #24595c; text-decoration: underline; text-underline-offset: 3px; }
.contactPage a:hover { color: #172b40; }
.contactPage a:focus-visible, .contactPage button:focus-visible,
.contactPage input:focus-visible, .contactPage textarea:focus-visible { outline: 3px solid #d6a84b; outline-offset: 4px; }
.contactPage .contactKicker { color: #24595c; font-size: 14px; font-weight: 700; letter-spacing: 1.4px; line-height: 1.5; margin: 0 0 12px; text-transform: uppercase; }
.contactHero { background: #203852; color: #fff; padding: 48px 0; }
.contactHeroGrid { align-items: center; display: grid; gap: 36px 64px; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
.contactHero h1 { color: #fff; font-size: 52px; font-weight: 700; letter-spacing: -1px; line-height: 1.1; margin: 0 0 20px; }
.contactHero .contactKicker { color: #cfe0dc; }
.contactHero .contactLead { font-size: 20px; line-height: 1.6; margin: 0; max-width: 560px; }
.contactMainLine { border-left: 4px solid #d6a84b; padding: 8px 0 8px 28px; }
.contactMainLine a, .contactMainLine a:visited { color: #fff; }
.contactMainLine a:hover { color: #eac678; }
.contactMainLine .contactPhone { display: inline-block; font-size: 30px; font-weight: 700; line-height: 1.4; margin-bottom: 14px; }
.contactMainEmail { display: block; margin-bottom: 8px; overflow-wrap: anywhere; }
.contactMainLine p:last-child { color: #dbe5eb; font-size: 14px; margin: 0; }
.contactRoutesSection { padding: 44px 0 48px; }
.contactRoutesSection h2 { font-size: 26px; }
.contactRoutes { display: grid; gap: 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.contactRoute { background: #fff; border: 1px solid #d7e1dc; border-top: 4px solid #2f6f73; border-radius: 6px; display: flex; flex-direction: column; padding: 26px; }
.contactRoute:nth-child(2) { border-top-color: #d6a84b; }
.contactRoute:nth-child(3) { border-top-color: #203852; }
.contactRoute > a:not(.contactButton) { overflow-wrap: anywhere; }
.contactRoute .contactDetail { font-size: 14px; margin: 8px 0 18px; }
.contactNoWrap { white-space: nowrap; }
.contactPage .contactButton { align-self: flex-start; border: 2px solid transparent; border-radius: 5px; cursor: pointer; display: inline-block; font-family: inherit; font-size: 16px; font-weight: 700; line-height: 1.5; max-width: 100%; padding: 12px 20px; text-align: center; text-decoration: none; white-space: normal; }
.contactPage .contactButtonTeal { background: #2f6f73; color: #fff; }
.contactPage .contactButtonTeal:hover, .contactPage .contactButtonTeal:focus { background: #24595c; color: #fff; }
.contactPage .contactButtonOutline { background: #fff; border-color: #2f6f73; color: #24595c; }
.contactPage .contactButtonOutline:hover, .contactPage .contactButtonOutline:focus { background: #e4ece8; color: #203852; }
.contactRoute .contactButton { margin-top: auto; }
.contactRoute > a + .contactButton { margin-top: 20px; }
.contactDetailsSection { background: #edf2ef; border-top: 1px solid #d7e1dc; padding: 56px 0; }
.contactDetailsGrid { align-items: start; display: grid; gap: 48px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.contactDetailsGrid > *, .contactHeroGrid > *, .contactRoutes > * { min-width: 0; }
.contactFormPanel { background: #fff; border: 1px solid #d7e1dc; border-radius: 8px; padding: 36px; scroll-margin-top: 24px; }
.contactFormPanel h2 { margin-bottom: 16px; }
.contactFormPanel .contactFormNote { color: #52636a; font-size: 14px; margin-bottom: 24px; }
.contactFormPanel .form-group { margin-bottom: 24px; }
.contactFormPanel label { display: block; font-size: 16px; font-weight: 700; margin-bottom: 8px; }
.contactFormPanel .form-control { background: #fff; border: 1px solid #81949e; border-radius: 4px; box-shadow: none; color: #203852; font-family: inherit; font-size: 16px; height: auto; line-height: 1.5; min-height: 48px; padding: 12px; width: 100%; }
.contactFormPanel .form-control:focus { border-color: #24595c; }
.contactFormPanel textarea.form-control { min-height: 170px; resize: vertical; }
.contactFormPanel #divFormAlerts:not(:empty) { margin-top: 16px; }
.contactOffice { border-bottom: 1px solid #c8d5ce; padding: 0 0 26px; margin-bottom: 26px; }
.contactOfficeHeading { align-items: baseline; display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; margin-bottom: 10px; }
.contactOfficeHeading h3 { margin: 0; }
.contactOfficeHeading a { font-size: 14px; padding: 4px 0; }
.contactOffice address { font-size: 16px; font-style: normal; line-height: 1.65; margin: 0; }
.contactHours { font-size: 14px; margin: 0; }
.contactHours > div { display: grid; gap: 8px 16px; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); padding: 6px 0; }
.contactHours dt { font-weight: 400; }
.contactHours dd { margin: 0; text-align: right; }
.contactHours dd span { color: #52636a; }
.contactOffice > p { font-size: 14px; margin: 12px 0 0; }
.contactSchoolNote { border-left: 3px solid #2f6f73; padding-left: 20px; }
.contactSchoolNote h3 { font-size: 20px; margin-bottom: 12px; }
.contactSchoolNote p, .contactSchoolNote a { font-size: 14px; }
@media (max-width: 1199px) {
    .contactRoutes { gap: 16px; }
    .contactRoute { padding: 22px; }
    .contactDetailsGrid { gap: 32px; }
    .contactFormPanel { padding: 28px; }
}
@media (max-width: 991px) {
    .contactHeroGrid { gap: 32px; grid-template-columns: minmax(0, 1fr); }
    .contactRoutes { grid-template-columns: minmax(0, 1fr); }
    .contactRoute { padding: 26px; }
    .contactRoute .contactButton { margin-top: 12px; }
    .contactDetailsGrid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
}
@media (max-width: 575px) {
    .contactHero { padding: 36px 0; }
    .contactHero h1 { font-size: 40px; }
    .contactHero .contactLead { font-size: 18px; }
    .contactMainLine { padding-left: 18px; }
    .contactMainLine .contactPhone { font-size: 26px; }
    .contactPage h2 { font-size: 28px; }
    .contactRoutesSection { padding: 32px 0; }
    .contactRoutesSection h2 { font-size: 24px; }
    .contactDetailsSection { padding: 32px 0; }
    .contactFormPanel, .contactRoute { padding: 22px 18px; }
    .contactHours > div { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 8px 0; }
    .contactHours dt { font-weight: 700; }
    .contactHours dd { text-align: left; }
}
