* { box-sizing: border-box; }
body {
  margin: 0;
  background: #eeeae2;
  color: #252418;
  font: 1rem/1.5 Inter, Arial, sans-serif;
}
.agency {
  max-width: 1200px;
  margin: auto;
  padding: clamp(16px, 4vw, 52px);
}
.masthead, .contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.masthead { margin-bottom: 24px; }
.masthead b { font: 700 2.1rem Georgia, serif; }
.bento {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}
.card {
  padding: clamp(20px, 3vw, 38px);
  border-radius: 16px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.card small {
  display: block;
  font-size: .76rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.card h1, .card h2 { margin: 16px 0 10px; line-height: 1.05; }
.card p { margin: 10px 0; max-width: 48ch; }
.case { background: #403554; color: #fff8ef; }
.case h1 {
  font: 500 clamp(2.9rem, 5.3vw, 4.8rem)/.99 Georgia, serif;
  letter-spacing: -.04em;
  margin: 38px 0 20px;
}
.metric { background: #d7ef83; }
.metric h2 { font-size: clamp(3rem, 5vw, 4.6rem); letter-spacing: -.055em; }
.service { background: #fffaf0; }
.contact { background: #d7cae6; }
.card summary {
  cursor: pointer;
  width: fit-content;
  padding: 8px 0;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.case details { margin-top: 22px; }
.card summary:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
@media (min-width: 760px) {
  .bento { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .case { grid-column: span 2; grid-row: span 2; }
  .metric, .service { grid-column: span 2; }
  .contact { grid-column: 1 / -1; }
}
