/* AccountMaster contact, directions, and client portal enhancements. */
.header-phone {
  color: var(--green);
  font: 700 clamp(18px, 2vw, 28px)/1 Georgia, serif;
  text-decoration: none;
  white-space: nowrap;
}

.phone,
.phone-inline {
  font-weight: 800;
  letter-spacing: .02em;
}

.phone-inline {
  font-size: 1.25em;
}

.address-feature,
.contact address,
.address-inline {
  color: var(--green);
  font: 700 clamp(21px, 2.5vw, 34px)/1.25 Georgia, serif;
}

.address-feature {
  display: grid;
  gap: 12px;
  margin-top: 24px;
}

.map-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.map-links a {
  border: 1px solid currentColor;
  border-radius: 999px;
  display: inline-flex;
  font: 700 14px/1.2 system-ui, sans-serif;
  padding: 10px 14px;
  text-decoration: none;
}

.map-links a:hover,
.map-links a:focus-visible {
  background: var(--green);
  color: white;
}

.client-portal {
  align-items: center;
  background: var(--green);
  color: var(--cream);
  display: grid;
  gap: 40px;
  grid-template-columns: 1.15fr .85fr;
}

.client-portal h2 {
  margin-bottom: 16px;
}

.portal-card {
  background: #355746;
  border: 1px solid #9daea0;
  border-radius: 8px;
  padding: 28px;
}

.portal-card p {
  font-size: 20px;
  font-weight: 700;
}

.portal-card small {
  display: block;
  margin-top: 14px;
}

.portal-card .button {
  background: var(--lime);
  color: var(--ink);
}

@media (max-width: 1050px) {
  header {
    flex-wrap: wrap;
  }

  .header-phone {
    order: 2;
  }

  header nav {
    order: 3;
    width: 100%;
  }
}

@media (max-width: 700px) {
  .client-portal {
    grid-template-columns: 1fr;
  }

  .header-phone {
    font-size: 20px;
  }

  .address-feature,
  .contact address,
  .address-inline {
    font-size: 22px;
  }
}
