/* Contact page regions and Drupal-managed custom blocks. */
.contact-map { width: 100%; background: #e9e9e9; }
.contact-map iframe { display: block; width: 100%; height: clamp(320px, 42vw, 560px); border: 0; }
.content-top-region:has(.contact-map) { margin-bottom: 0; }
.content-top-region:has(.contact-map) + .main-content { padding-top: clamp(2rem, 4vw, 3.5rem); }

.contact-sidebar .contact-details { margin: 0; padding: 0; list-style: none; }
.contact-sidebar .contact-details li { display: grid; grid-template-columns: 1.35rem minmax(0, 1fr); gap: .75rem; margin: 0 0 1rem; }
.contact-sidebar .contact-icon { color: var(--psc-red); font-weight: 700; text-align: center; }
.contact-sidebar a:not(.button) { overflow-wrap: anywhere; }
.contact-sidebar .button { margin-top: .35rem; }
.contact-sidebar__download { margin: 1.35rem 0 0; padding-top: 1.35rem; border-top: 1px solid #e4e4e4; text-align: center; }
.contact-sidebar__download img { display: block; width: min(150px, 100%); margin: 0 auto .75rem; }

.content-bottom-region { width: 100%; padding: clamp(3rem, 6vw, 5rem) 0; background: #f4f3f2; }
.content-bottom-region .block { margin: 0; }
.contact-person-section .container { display: grid; gap: 1.5rem; }
.contact-person-section__heading { margin: 0 0 .5rem; font-family: Oswald, Arial, sans-serif; font-size: clamp(1.8rem, 3vw, 2.5rem); text-align: center; }
.contact-person-card { display: grid; grid-template-columns: minmax(190px, .72fr) minmax(0, 2fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; padding: clamp(1.25rem, 3vw, 2.25rem); background: #fff; border: 1px solid rgba(34,34,34,.1); border-radius: .65rem; box-shadow: 0 8px 25px rgba(34,34,34,.06); }
.contact-person-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: .4rem; }
.contact-person-content h3 { margin: 0 0 .45rem; font-family: Oswald, Arial, sans-serif; font-size: clamp(1.45rem, 2.4vw, 2rem); }
.contact-person-role { margin: 0 0 .7rem; color: #555; font-weight: 700; }
.contact-person-phone { display: inline-block; margin-bottom: .9rem; font-size: 1.08rem; font-weight: 700; }
.contact-person-description { margin: 0; font-size: 1.05rem; line-height: 1.7; }

@media (max-width: 767px) {
  .contact-map iframe { height: 360px; }
  .content-bottom-region { padding: 2.5rem 0; }
  .contact-person-card { grid-template-columns: 1fr; }
  .contact-person-image { max-width: 28rem; margin-inline: auto; }
}

@media (max-width: 480px) {
  .contact-map iframe { height: 300px; }
  .contact-person-card { padding: 1rem; }
  .contact-person-description { font-size: 1rem; }
}
