/* Site theme: matches home portal typography, colors, and links site-wide.
   See docs/THEME.md for the design system. */

/* Typography */
body {
  font-family: 'Space Grotesk', system-ui, sans-serif;
}

.prose,
main {
  font-family: 'Space Grotesk', system-ui, sans-serif;
}

.prose h1,
.prose h2,
.prose h3,
.prose h4,
.prose h5,
.prose h6,
.prose .focus-heading,
.prose .area-title {
  font-family: 'Archivo', system-ui, sans-serif;
}

/* Light mode text colors */
.prose {
  color: #3f3f46;
}

.prose h1,
.prose h2,
.prose h3,
.prose h4,
.prose h5,
.prose h6,
.prose strong {
  color: #09090b;
}

.prose p,
.prose li {
  color: #3f3f46;
  line-height: 1.65;
}

/* Dark mode text colors */
.dark .prose {
  color: #a1a1aa;
}

.dark .prose h1,
.dark .prose h2,
.dark .prose h3,
.dark .prose h4,
.dark .prose h5,
.dark .prose h6,
.dark .prose strong {
  color: #fafafa;
}

.dark .prose p,
.dark .prose li {
  color: #a1a1aa;
}

/* Links: match home portal nav-footer */
.prose a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.prose a:hover {
  text-decoration: underline;
  color: #2563eb;
}

.dark .prose a:hover {
  color: #60a5fa;
}

.prose a:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.dark .prose a:focus-visible {
  outline-color: #60a5fa;
}

@media (prefers-reduced-motion: reduce) {
  .prose a {
    transition: none;
  }
}

/* Section pages (Resume, Contact, Experience, Education): content width + spacing */
.site-portal {
  font-family: 'Space Grotesk', system-ui, sans-serif;
}

.site-portal section {
  max-width: 48rem;
}

.site-portal section > * + * {
  margin-top: 1.5rem;
}

.site-portal h1,
.site-portal h2,
.site-portal h3,
.site-portal h4 {
  font-family: 'Archivo', system-ui, sans-serif;
  font-weight: 600;
  color: #09090b;
}

.dark .site-portal h1,
.dark .site-portal h2,
.dark .site-portal h3,
.dark .site-portal h4 {
  color: #fafafa;
}

.site-portal p,
.site-portal li {
  color: #3f3f46;
  line-height: 1.65;
}

.site-portal strong {
  color: inherit;
  font-weight: 500;
}

.dark .site-portal p,
.dark .site-portal li {
  color: #a1a1aa;
}

.site-portal a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.site-portal a:hover {
  text-decoration: underline;
  color: #2563eb;
}

.dark .site-portal a:hover {
  color: #60a5fa;
}

.site-portal a:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.dark .site-portal a:focus-visible {
  outline-color: #60a5fa;
}

/* Resume download button */
.download-btn-wrap {
  margin: 0;
  text-align: left;
}

.download-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  gap: 0.28rem !important;
  padding: 0.31rem 0.5rem !important;
  border-radius: 0.82rem;
  border: 1px solid #111827;
  background: #111827;
  color: #ffffff;
  font-weight: 700;
  font-size: 0.74rem !important;
  line-height: 1 !important;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease,
    transform 0.15s ease;
}


.download-btn:hover {
  background: #1f2937;
  border-color: #1f2937;
  color: #ffffff;
  text-decoration: none;
}

.download-btn span {
  text-align: center;
  margin-left: 0.63rem;
  font-size: 0.74rem !important;
  line-height: 1 !important;
  font-weight: 600 !important;
  color: #ffffff !important;
}

.download-btn svg {
  color: #ffffff !important;
}

.download-btn:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.download-btn-icon {
  width: 0.98rem !important;
  height: 0.98rem !important;
  min-width: 0.98rem;
  min-height: 0.98rem;
  display: inline-block;
  flex: 0 0 auto;
}

.dark .download-btn {
  border-color: #f1f5f9;
  background: #f8fafc;
  color: #000000;
}

.dark .download-btn:hover {
  background: #e2e8f0;
  border-color: #e2e8f0;
  color: #000000;
}

.dark .download-btn span {
  color: #000000 !important;
}

.dark .download-btn svg {
  color: #000000 !important;
}

/* Keep button text in true inverse color; override generic section link color rule */
.site-portal a.download-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.31rem 0.5rem !important;
  color: #ffffff !important;
}

.site-portal a.download-btn:hover {
  color: #ffffff !important;
}

.dark .site-portal a.download-btn {
  color: #000000 !important;
}

.dark .site-portal a.download-btn:hover {
  color: #000000 !important;
}

.social-email {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
}

.social-email svg {
  width: 100%;
  height: 100%;
  display: block;
}
