.ph-contact-modal,
.ph-employee-modal {
  --abs-contact-navy: #002465;
  --abs-contact-cyan: #10b8d4;
  --abs-contact-muted: #6d7f98;
  /* Backward-compatible aliases for Parent Hub's existing component styles. */
  --ph-navy: var(--abs-contact-navy);
  --ph-cyan: var(--abs-contact-cyan);
  --ph-muted: var(--abs-contact-muted);
}

.ph-contact-modal[hidden],
.ph-employee-modal[hidden],
.ph-state-contacts[hidden],
.ph-state-contacts__empty[hidden],
.ph-staff-finder__input [hidden],
.ph-employee-modal__slack-note[hidden] {
  display: none !important;
}

body.ph-modal-open {
  overflow: hidden;
}

.ph-contact-modal,
.ph-employee-modal {
  align-items: center;
  background: rgba(3, 28, 62, .68);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1.25rem;
  position: fixed;
  z-index: 1250;
}

.ph-contact-modal__panel,
.ph-employee-modal__panel {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .32);
  color: #26364a;
  font-family: Poppins, Arial, sans-serif;
  max-height: calc(100vh - 2.5rem);
  overflow-y: auto;
  padding: clamp(1.35rem, 3vw, 2.25rem);
  position: relative;
  width: min(880px, 100%);
}

.ph-contact-modal__panel {
  width: min(1080px, 100%);
}

.ph-employee-modal__panel {
  text-align: center;
  width: min(560px, 100%);
}

.ph-contact-modal__close {
  align-items: center;
  background: #eaf7fb;
  border: 0;
  border-radius: 50%;
  color: var(--abs-contact-navy);
  cursor: pointer;
  display: flex;
  height: 38px;
  justify-content: center;
  position: absolute;
  right: 1rem;
  top: 1rem;
  width: 38px;
}

.ph-contact-modal__close:hover,
.ph-contact-modal__close:focus-visible {
  background: #d7f0f8;
  outline: 2px solid var(--abs-contact-cyan);
  outline-offset: 2px;
}

.ph-contact-modal__eyebrow,
.ph-state-contacts__heading > span {
  color: var(--abs-contact-cyan);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ph-contact-modal__heading h2 {
  color: var(--abs-contact-navy);
  font-size: 2rem;
  margin: .25rem 0;
}

.ph-contact-modal__heading p,
.ph-staff-finder > p {
  color: var(--abs-contact-muted);
  font-size: .8rem;
  margin: 0;
}

.ph-company-contact {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1.5rem 0;
}

.ph-company-contact > a,
.ph-company-contact > div,
.ph-employee-modal__links a {
  align-items: center;
  background: #f1f9fd;
  border: 1px solid #d8edf5;
  border-radius: 10px;
  display: flex;
  gap: .7rem;
  min-width: 0;
  padding: .8rem;
  text-decoration: none;
}

.ph-company-contact i,
.ph-employee-modal__links i {
  color: var(--abs-contact-cyan);
}

.ph-company-contact span,
.ph-employee-modal__links span {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ph-company-contact small,
.ph-employee-modal__links small {
  color: var(--abs-contact-muted);
  font-size: .62rem;
}

.ph-company-contact strong,
.ph-employee-modal__links strong {
  color: var(--abs-contact-navy);
  font-size: .72rem;
  overflow-wrap: anywhere;
}

.ph-contact-directory {
  border-top: 1px solid #dce8ee;
  padding-top: 1.2rem;
}

.ph-contact-directory > .ph-staff-finder__state {
  margin-top: 0;
}

.ph-state-contacts {
  background: #f8fbfd;
  border: 1px solid #dce8ee;
  border-radius: 12px;
  margin-top: 1rem;
  padding: 1rem;
}

.ph-state-contacts__heading {
  margin-bottom: .8rem;
}

.ph-state-contacts__heading h3 {
  color: var(--abs-contact-navy);
  font-size: 1rem;
  margin: .15rem 0 0;
}

.ph-state-contact-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ph-state-contact-card {
  background: #fff;
  border: 1px solid #d8edf5;
  border-radius: 10px;
  min-width: 0;
  overflow: hidden;
}

.ph-state-contact-card__heading {
  align-items: center;
  background: #edf8fc;
  color: var(--abs-contact-navy);
  display: flex;
  gap: .55rem;
  padding: .7rem .8rem;
}

.ph-state-contact-card__heading i {
  color: var(--abs-contact-cyan);
}

.ph-state-contact-card__heading strong {
  font-size: .75rem;
}

.ph-state-contact-card--centers {
  grid-column: 1 / -1;
}

.ph-state-contact-centers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ph-state-contact-center {
  min-width: 0;
}

.ph-state-contact-center + .ph-state-contact-center {
  border-left: 1px solid #d8edf5;
}

.ph-state-contact-center__name {
  color: var(--abs-contact-navy);
  display: block;
  font-size: .72rem;
  padding: .65rem .8rem 0;
}

.ph-state-contact-card__actions {
  display: grid;
}

.ph-state-contact-card__actions a {
  align-items: center;
  border-top: 1px solid #edf2f5;
  display: flex;
  gap: .65rem;
  min-width: 0;
  padding: .65rem .8rem;
  text-decoration: none;
}

.ph-state-contact-card__actions a:hover,
.ph-state-contact-card__actions a:focus {
  background: #f5fbfe;
}

.ph-state-contact-card__actions i {
  color: var(--abs-contact-cyan);
  flex: 0 0 16px;
  text-align: center;
}

.ph-state-contact-card__actions span {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ph-state-contact-card__actions small {
  color: var(--abs-contact-muted);
  font-size: .58rem;
}

.ph-state-contact-card__actions strong {
  color: var(--abs-contact-navy);
  font-size: .66rem;
  overflow-wrap: anywhere;
}

.ph-state-contacts__empty {
  color: var(--abs-contact-muted);
  font-size: .72rem;
  margin: 0;
}

.ph-staff-finder {
  border-top: 1px solid #dce8ee;
  margin-top: 1rem;
  padding-top: 1.2rem;
}

.ph-staff-finder > label {
  color: var(--abs-contact-navy);
  font-weight: 700;
}

.ph-staff-finder__state {
  display: flex;
  flex-direction: column;
  font-size: .72rem;
  gap: .3rem;
  margin-top: 1rem;
}

.ph-contact-directory select,
.ph-staff-finder input {
  background: #f8fbfd;
  border: 1px solid #cbdce6;
  border-radius: 9px;
  min-height: 44px;
  padding: .6rem .8rem;
  width: 100%;
}

.ph-contact-directory select:focus,
.ph-staff-finder input:focus {
  border-color: var(--abs-contact-cyan);
  box-shadow: 0 0 0 3px rgba(16, 184, 212, .15);
  outline: 0;
}

.ph-staff-finder__input {
  align-items: center;
  display: grid;
  gap: .5rem;
  grid-template-columns: auto 1fr auto;
  margin-top: .7rem;
}

.ph-staff-finder__status {
  color: var(--abs-contact-muted);
  font-size: .7rem;
  margin: .5rem 0;
}

.ph-staff-results {
  display: grid;
  gap: .5rem;
}

.ph-staff-result {
  align-items: center;
  background: #fff;
  border: 1px solid #dce8ee;
  border-radius: 10px;
  cursor: pointer;
  display: grid;
  gap: .7rem;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  padding: .6rem;
  text-align: left;
}

.ph-staff-result:hover,
.ph-staff-result:focus-visible {
  background: #f5fbfe;
  border-color: var(--abs-contact-cyan);
  outline: 0;
}

.ph-staff-result__photo,
.ph-employee-modal__portrait {
  align-items: center;
  background: #dff3fb;
  border-radius: 50%;
  color: var(--abs-contact-navy);
  display: flex;
  font-weight: 700;
  height: 44px;
  justify-content: center;
  overflow: hidden;
  width: 44px;
}

.ph-staff-result__photo img,
.ph-employee-modal__portrait img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.ph-staff-result__copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ph-staff-result__copy strong {
  color: var(--abs-contact-navy);
  font-size: .78rem;
}

.ph-staff-result__copy span,
.ph-staff-result__copy small {
  color: var(--abs-contact-muted);
  font-size: .65rem;
  overflow-wrap: anywhere;
}

.ph-employee-modal__portrait {
  height: 88px;
  margin: 0 auto 1rem;
  width: 88px;
}

.ph-employee-modal__position {
  color: var(--abs-contact-cyan);
  font-weight: 700;
}

.ph-employee-modal__bio,
.ph-employee-modal__slack-note {
  color: var(--abs-contact-muted);
  font-size: .8rem;
}

.ph-employee-modal__links {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.ph-employee-modal__slack-note {
  font-size: .68rem;
}

@media (max-width: 767.98px) {
  .ph-company-contact,
  .ph-employee-modal__links,
  .ph-state-contact-grid,
  .ph-state-contact-centers {
    grid-template-columns: 1fr;
  }

  .ph-state-contact-center + .ph-state-contact-center {
    border-left: 0;
    border-top: 1px solid #d8edf5;
  }

  .ph-contact-modal,
  .ph-employee-modal {
    padding: .65rem;
  }

  .ph-contact-modal__panel,
  .ph-employee-modal__panel {
    max-height: calc(100vh - 1.3rem);
    padding: 1.2rem;
  }

  .ph-contact-modal__heading h2 {
    font-size: 1.55rem;
    padding-right: 2.5rem;
  }
}
