/* Office and map block and "Get directions" (M14, W4-d). Starter tokens only; mobile first. */
.office-block { margin: 2rem 0; }
.office-block__heading { margin: 0 0 0.75rem; }
.office-block__details > * { margin: 0 0 0.75rem; }
.office-block__name { font-weight: 700; }
.office-block__address { font-style: normal; }
.office-block__phone a { display: inline-block; min-height: 2.75rem; line-height: 2.75rem; }

.office-directions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  min-height: 2.75rem;
  padding: 0.5rem 0;
  font-weight: 700;
  color: var(--starter-link);
}
.office-directions__note { font-weight: 400; }
.office-directions:focus-visible { outline: 3px solid var(--starter-focus); outline-offset: 2px; }

.office-map { margin-top: 1rem; }
.office-map__placeholder {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--starter-muted);
  border-radius: 0.25rem;
  background: var(--starter-background);
}
.office-map__placeholder[hidden] { display: none; }
.office-map__text { margin: 0; }
.office-map__button {
  min-height: 2.75rem;
  padding: 0.5rem 1rem;
  font: inherit;
  font-weight: 700;
  text-align: left;
  color: var(--starter-background);
  background: var(--starter-text);
  border: 2px solid var(--starter-text);
  border-radius: 0.25rem;
  cursor: pointer;
}
.office-map__note { font-weight: 400; }
.office-map__button:focus-visible { outline: 3px solid var(--starter-focus); outline-offset: 3px; }
.office-map__frame {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 0;
}
.office-map__frame:focus-visible { outline: 3px solid var(--starter-focus); outline-offset: 3px; }

@media (min-width: 48rem) {
  .office-block { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 0 2rem; align-items: start; }
  .office-block__heading { grid-column: 1 / -1; }
  .office-map { margin-top: 0; }
  .office-map__frame { aspect-ratio: 16 / 10; }
}

/* MB-13 (#116): Small label and Intro (above the details and map), and "All offices": a list of every office. */
.office-block__eyebrow { margin: 0 0 var(--space-3, 12px); }
.office-block__intro { margin: 0 0 var(--space-8, 32px); max-width: var(--container-text, 42rem); }
.office-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-8, 32px) var(--grid-gap, 32px); }
.office-list__item > * { margin: 0 0 var(--space-3, 12px); }
.office-list__name { font-size: var(--fs-h4, 1.25rem); }
.office-list__address { font-style: normal; }
.office-list__label { display: block; font-weight: var(--fw-bold, 700); }
.office-list__phone a { display: inline-block; min-height: var(--tap-min, 44px); line-height: var(--tap-min, 44px); font-weight: var(--fw-bold, 700); }
@media (min-width: 48rem) {
  .office-block > .office-block__eyebrow,
  .office-block > .office-block__intro { grid-column: 1 / -1; }
  .office-block--all { display: block; }
  .office-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 64rem) {
  .office-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
