/**
 * PURIVOM — UTILITIES & GENERIC CONTENT STYLES
 */

/* ---------------------------------------------------------------------
   TEXT UTILITIES
   --------------------------------------------------------------------- */

.pv-text-center { text-align: center; }
.pv-text-accent { color: var(--pv-text-accent); }
.pv-text-secondary { color: var(--pv-text-secondary); }
.pv-eyebrow {
  display: inline-block;
  font-size: var(--pv-text-label);
  text-transform: uppercase;
  letter-spacing: var(--pv-tracking-wider);
  color: var(--pv-text-accent);
  margin-bottom: var(--pv-space-sm);
}

/* ---------------------------------------------------------------------
   GENERIC PAGE / SINGLE CONTENT
   --------------------------------------------------------------------- */

.pv-page-header {
  padding-top: var(--pv-space-2xl);
  padding-bottom: var(--pv-space-xl);
  text-align: center;
}

.pv-page-header__title {
  max-width: 20ch;
  margin-left: auto;
  margin-right: auto;
}

.pv-entry-content {
  color: var(--pv-text-secondary);
}

.pv-entry-content > * + * {
  margin-top: var(--pv-space-md);
}

.pv-entry-content h2,
.pv-entry-content h3,
.pv-entry-content h4 {
  margin-top: var(--pv-space-xl);
  margin-bottom: var(--pv-space-sm);
}

.pv-entry-content a {
  color: var(--pv-text-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--pv-color-water-200);
}

.pv-entry-content a:hover {
  text-decoration-color: currentColor;
}

.pv-entry-content img {
  border-radius: var(--pv-radius-md);
}

.pv-entry-content blockquote {
  border-left: 2px solid var(--pv-border-accent);
  padding-left: var(--pv-space-md);
  font-family: var(--pv-font-display);
  font-size: var(--pv-text-h4);
  color: var(--pv-text-primary);
}

.pv-entry-content ul,
.pv-entry-content ol {
  list-style: disc;
  padding-left: 1.4em;
}

.pv-entry-content ol {
  list-style: decimal;
}

.pv-entry-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--pv-space-sm);
  color: var(--pv-text-secondary);
  font-size: var(--pv-text-small);
}

.pv-entry-meta a {
  color: var(--pv-text-secondary);
}

.pv-entry-meta a:hover {
  color: var(--pv-text-accent);
}

/* ---------------------------------------------------------------------
   ARCHIVE / SEARCH RESULTS
   --------------------------------------------------------------------- */

.pv-archive-grid {
  display: grid;
  gap: var(--pv-space-lg);
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 992px) {
  .pv-archive-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .pv-archive-grid {
    grid-template-columns: 1fr;
  }
}

.pv-search-form {
  display: flex;
  gap: var(--pv-space-sm);
  max-width: 480px;
  margin: 0 auto;
}

.pv-no-results {
  text-align: center;
  padding: var(--pv-space-2xl) 0;
}

/* ---------------------------------------------------------------------
   404
   --------------------------------------------------------------------- */

.pv-404 {
  text-align: center;
  padding: var(--pv-space-4xl) 0;
}

.pv-404__code {
  font-family: var(--pv-font-display);
  font-size: clamp(4rem, 3rem + 6vw, 9rem);
  color: var(--pv-text-accent);
  line-height: 1;
}

/* ---------------------------------------------------------------------
   COMMENTS
   --------------------------------------------------------------------- */

.pv-comments {
  border-top: var(--pv-border-width) solid var(--pv-border-default);
  padding-top: var(--pv-space-xl);
  margin-top: var(--pv-space-2xl);
}

.pv-comment-list {
  display: flex;
  flex-direction: column;
  gap: var(--pv-space-lg);
}

.pv-comment {
  padding-bottom: var(--pv-space-lg);
  border-bottom: var(--pv-border-width) solid var(--pv-border-default);
}

/* ---------------------------------------------------------------------
   SR-ONLY LOGO FALLBACK
   --------------------------------------------------------------------- */

.pv-hero-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  text-align: center;
  padding: var(--pv-space-2xl) 0;
}
