/* Contacts articles. Inherits the palette and typography of the FE template. */
.fe-contact {
  --fe-contact-offset: 24px;
  width: 100%; max-width: 1200px; margin: 0 auto;
  color: var(--fe-ink, #173628);
  font: max(16px, calc(16px * var(--fe-text-scale, 1) * var(--fe-font-body-scale, 1)))/1.65 FEPreviewSans, Arial, sans-serif;
  overflow-wrap: anywhere;
}
.fe-contact *, .fe-contact *::before, .fe-contact *::after { box-sizing: border-box; }
.fe-contact [id], .fe-contact[id] { scroll-margin-top: var(--fe-contact-offset); }
#main .fe-contact h1, #main .fe-contact h2, #main .fe-contact h3 { margin: 0; color: var(--fe-deep, #103723); font-weight: 700; text-transform: none; }
#main .fe-contact h1 { font-family: FEDisplaySans, FEPreviewSans, Arial, sans-serif; font-size: calc(clamp(34px, 4.2vw, 48px) * var(--fe-text-scale, 1) * var(--fe-font-section-heading-scale, 1)); line-height: 1.08; letter-spacing: -.035em; }
#main .fe-contact h2 { font-family: FEDisplaySans, FEPreviewSans, Arial, sans-serif; font-size: calc(26px * var(--fe-text-scale, 1) * var(--fe-font-section-heading-scale, 1)); line-height: 1.25; letter-spacing: -.02em; }
#main .fe-contact h3 { font: 700 1em/1.5 FEPreviewSans, Arial, sans-serif; }
#main .fe-contact p { margin: 0; font: inherit; }
#main .fe-contact a { color: var(--fe-green, #176b3b); text-decoration: underline; text-underline-offset: .18em; }
#main .fe-contact a:focus-visible { outline: 3px solid var(--fe-green, #176b3b); outline-offset: 4px; }
#main .fe-contact [tabindex="-1"]:focus { outline: none; }
.fe-contact-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px; padding: 32px 34px; border: 1px solid var(--fe-line, #dce8dd); border-radius: 18px; background: linear-gradient(115deg, #f0f6e9, #fbfdf9 80%); }
#main .fe-contact .fe-contact-eyebrow { margin: 0 0 11px; color: var(--fe-green, #176b3b); font-size: .74em; font-weight: 700; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
#main .fe-contact .fe-contact-intro { max-width: 61ch; margin-top: 14px; color: #465d4d; font-size: .95em; line-height: 1.7; }
.fe-contact-time { min-width: 220px; padding: 22px 25px; border-radius: 13px; background: var(--fe-deep, #103723); color: #fff; }
.fe-contact-time span { display: block; font-size: .77em; line-height: 1.5; }
.fe-contact-time strong { display: block; margin: 7px 0 5px; color: #fff; font-family: FEDisplaySans, FEPreviewSans, Arial, sans-serif; font-size: calc(29px * var(--fe-text-scale, 1)); line-height: 1.1; letter-spacing: -.025em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fe-contact-channels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 24px 0; }
.fe-contact-card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 23px 24px; border: 1px solid var(--fe-line, #dce8dd); border-radius: 15px; background: #fff; box-shadow: 0 7px 24px rgba(18, 55, 31, .035); }
.fe-contact-card-heading { display: flex; align-items: center; gap: 13px; width: 100%; margin-bottom: 18px; }
.fe-contact-icon { display: inline-block; flex: 0 0 46px; width: 46px; height: 46px; background-repeat: no-repeat; background-position: center; background-size: contain; }
.fe-contact-icon-phone { background-image: url('../images/fe-contact-phone.svg'); }
.fe-contact-icon-chat { background-image: url('../images/fe-contact-chat.svg'); }
.fe-contact-icon-mail { background-image: url('../images/fe-contact-mail.svg'); }
#main .fe-contact .fe-contact-card h2 { flex: 0 0 auto; font-family: FEPreviewSans, Arial, sans-serif; font-size: 1em; line-height: 1.35; letter-spacing: 0; }
#main .fe-contact .fe-contact-channel-link { display: inline-block; width: 100%; min-height: 44px; padding-block: 4px; font-size: calc(20px * var(--fe-text-scale, 1)); font-weight: 700; line-height: 1.6; letter-spacing: -.02em; text-decoration: none; }
#main .fe-contact .fe-contact-channel-link:hover { text-decoration: underline; }
#main .fe-contact .fe-contact-card p { margin-top: 6px; color: #526757; font-size: .8em; line-height: 1.6; }
.fe-contact-main { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; gap: 24px; }
.fe-contact-location, .fe-contact-help { min-width: 0; overflow: hidden; border: 1px solid var(--fe-line, #dce8dd); border-radius: 16px; background: #fff; }
.fe-contact-location-art { display: block; width: 100%; aspect-ratio: 4 / 3; margin: 0; overflow: hidden; border-bottom: 1px solid #e0ead8; background: #eef5e7 url('../images/fe-office-front.jpg') center / cover no-repeat; }
.fe-contact-location-art img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; }
.fe-contact-location-body { padding: 25px 28px 27px; }
#main .fe-contact .fe-contact-location h2 { margin-bottom: 14px; }
#main .fe-contact address { margin: 0; color: #455b4b; font: inherit; font-size: .94em; line-height: 1.8; }
.fe-contact-location-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 21px; }
#main .fe-contact .fe-contact-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 46px; padding: 11px 16px; border: 1px solid var(--fe-green, #176b3b); border-radius: 9px; background: var(--fe-green, #176b3b); color: #fff; font-size: .84em; font-weight: 700; line-height: 1.4; text-decoration: none; }
#main .fe-contact .fe-contact-button::after { content: '\2197'; font-size: 1.1em; font-weight: 400; }
#main .fe-contact .fe-contact-button:hover { background: var(--fe-deep, #103723); border-color: var(--fe-deep, #103723); }
#main .fe-contact .fe-contact-button-secondary { border-color: #ccddc5; background: #f5f9f0; color: var(--fe-deep, #103723); }
#main .fe-contact .fe-contact-button-secondary:hover { border-color: #b3cba8; background: #e9f2df; color: var(--fe-deep, #103723); }
.fe-contact-help { padding: 27px 28px; background: #f8faf5; }
#main .fe-contact .fe-contact-help h2 { margin-bottom: 23px; font-size: calc(24px * var(--fe-text-scale, 1) * var(--fe-font-section-heading-scale, 1)); }
.fe-contact-help-item + .fe-contact-help-item { margin-top: 21px; padding-top: 20px; border-top: 1px solid #dee8d7; }
#main .fe-contact .fe-contact-help p { margin-top: 7px; color: #4b6251; font-size: .85em; line-height: 1.7; }
#main .fe-contact .fe-contact-help a { display: inline-block; min-height: 40px; padding-block: 6px; }
.fe-contact-company { margin-top: 26px; padding: 25px 28px 22px; border: 1px solid var(--fe-line, #dce8dd); border-radius: 15px; background: #fff; }
#main .fe-contact .fe-contact-company h2 { margin-bottom: 12px; font-size: calc(23px * var(--fe-text-scale, 1) * var(--fe-font-section-heading-scale, 1)); }
#main .fe-contact .fe-contact-brand { margin-bottom: 21px; color: #526757; font-size: .85em; }
#main .fe-contact .fe-contact-company-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .65fr) minmax(0, 1.6fr); gap: 24px; margin: 0; }
#main .fe-contact .fe-contact-company-grid > .fe-contact-company-field { display: block; float: none; min-width: 0; margin: 0; padding: 0; }
#main .fe-contact .fe-contact-company-label { display: block; float: none; width: auto; padding: 0; margin: 0 0 7px; color: #5c715c; font-size: .73em; font-weight: 700; letter-spacing: .025em; }
#main .fe-contact .fe-contact-company-value { display: block; float: none; width: auto; padding: 0; margin: 0; color: var(--fe-ink, #173628); font-size: .83em; line-height: 1.7; }
.fe-contact-company-links { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 18px; padding-top: 10px; border-top: 1px solid #e9eee4; }
#main .fe-contact .fe-contact-company-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: .8em; }
/* Joomla's article title and menu page heading are separate settings.
   Preserve the h1 inside fe-contact; hide only the native wrapper headings. */
#main .fe-contact-shell > .page-header,
#main .fe-contact-shell > .com-content-article__title,
#main .fe-contact-shell > .item-title,
#main .fe-contact-shell > h1,
#main .fe-contact-shell > h2 { display: none !important; }
@supports selector(:has(*)) {
  #main .main-body:has(.fe-contact) .page-header:has(> h1, > h2),
  #main :is(.com-content-article, .item-page):has(.fe-contact) > :is(h1, h2) { display: none !important; }
}
@media (max-width: 1000px) {
  .fe-contact-hero { gap: 22px; padding: 28px; }
  .fe-contact-time { min-width: 190px; padding: 20px; }
  .fe-contact-channels { gap: 14px; }
  .fe-contact-card { padding: 21px 18px; }
  #main .fe-contact .fe-contact-channel-link { font-size: calc(18px * var(--fe-text-scale, 1)); }
  .fe-contact-main { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 20px; }
  .fe-contact-location-body, .fe-contact-help { padding: 23px; }
}
@media (max-width: 760px) {
  .fe-contact-hero { grid-template-columns: minmax(0, 1fr); gap: 23px; }
  .fe-contact-time { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; min-width: 0; padding: 16px 19px; }
  .fe-contact-time strong { margin: 0; font-size: calc(25px * var(--fe-text-scale, 1)); }
  .fe-contact-time span:last-child { flex-basis: 100%; }
  .fe-contact-channels { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-block: 20px; }
  .fe-contact-card { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 16px; padding: 21px; }
  .fe-contact-card-heading { display: contents; }
  .fe-contact-icon { grid-column: 1; grid-row: 1 / span 3; }
  #main .fe-contact .fe-contact-card h2 { grid-column: 2; }
  #main .fe-contact .fe-contact-channel-link { grid-column: 2; font-size: calc(20px * var(--fe-text-scale, 1)); }
  #main .fe-contact .fe-contact-card p { grid-column: 2; margin-top: 2px; }
  .fe-contact-main { grid-template-columns: minmax(0, 1fr); }
  .fe-contact-location-art { aspect-ratio: 4 / 3; }
  #main .fe-contact .fe-contact-company-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
  #main .fe-contact .fe-contact-company-grid > .fe-contact-company-field:last-child { grid-column: 1 / -1; }
}
@media (max-width: 420px) {
  .fe-contact-hero { padding: 24px 21px; border-radius: 13px; }
  .fe-contact-time { padding-inline: 15px; }
  .fe-contact-card { padding: 19px 17px; column-gap: 12px; }
  #main .fe-contact .fe-contact-channel-link { font-size: calc(18px * var(--fe-text-scale, 1)); }
  .fe-contact-location-body, .fe-contact-help, .fe-contact-company { padding: 22px 20px; }
  #main .fe-contact .fe-contact-company-grid { grid-template-columns: minmax(0, 1fr); }
  .fe-contact-location-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
}
/* Give the longer public email address a full-width line on small phones. */
@media (max-width: 420px) {
  #main .fe-contact .fe-contact-card[aria-labelledby="contact-email"] .fe-contact-icon { grid-row: 1; }
  #main .fe-contact .fe-contact-card[aria-labelledby="contact-email"] .fe-contact-channel-link { grid-column: 1 / -1; grid-row: 2; margin-top: 5px; }
  #main .fe-contact .fe-contact-card[aria-labelledby="contact-email"] p { grid-column: 1 / -1; grid-row: 3; }
}
@media print {
  .fe-contact { font: 11pt/1.5 Arial, sans-serif; color: #000; }
  .fe-contact-hero, .fe-contact-channels, .fe-contact-main, #main .fe-contact .fe-contact-company-grid { display: block; }
  .fe-contact-hero, .fe-contact-card, .fe-contact-location, .fe-contact-help, .fe-contact-company { padding: 0; margin: 0 0 18pt; border: 0; background: #fff; box-shadow: none; }
  .fe-contact-location-art, .fe-contact-icon, .fe-contact-location-actions, .fe-contact-company-links, .fe-contact-time { display: none; }
  .fe-contact-card-heading { display: block; }
  .fe-contact-location-body { padding: 0; }
  #main .fe-contact .fe-contact-company-grid > .fe-contact-company-field { margin-bottom: 8pt; }
  #main .fe-contact h1 { font-size: 24pt; }
  #main .fe-contact h2 { font-size: 15pt; }
  #main .fe-contact a, #main .fe-contact h1, #main .fe-contact h2 { color: #000; }
}
