/* =====================================================================
   Contact page — page-specific styles (reuses core classes from style.css)
   ===================================================================== */

.page-hero .bg-glyph { top: -10px; right: -10px; }

/* Author card */
.author-card .card__body { display: grid; gap: 14px; }
.author-avatar {
  width: 84px; height: 84px; border-radius: 50%;
  background: var(--grad);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 30px;
  letter-spacing: -0.02em;
  display: grid;
  place-items: center;
  box-shadow: var(--shadow-md);
}
.author-name { font-size: 22px; font-weight: 600; letter-spacing: -0.03em; margin: 0; }
.author-card .chip { margin-top: -6px; width: fit-content; }
.author-desc { color: var(--ink-3); font-size: 15px; line-height: 1.6; margin: 0; }
.author-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }

/* Contact mini-cards (2x2 within the span-7 bento cell) */
.contact-mini-grid { height: 100%; }
.contact-mini-grid .card { height: 100%; }
.contact-mini-grid .card__body { display: grid; gap: 10px; align-content: start; }
.contact-mini-grid .tile { margin-bottom: 4px; }

/* Mono link line with arrow, used inside contact/feature cards */
.link-line {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 6px;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ink-2);
  text-decoration: none;
  width: fit-content;
}
.link-line svg { width: 13px; height: 13px; flex: 0 0 auto; transition: transform 0.35s var(--ease-out); }
.link-line:hover { color: var(--accent-ink); }
.link-line:hover svg { transform: translate(3px, -3px); }

/* Response-time routing strip */
.contact-routes .stat__num span { font-family: var(--font-display); }

@media (max-width: 640px) {
  .contact-mini-grid .card { height: auto; }
}
