/* ============================================================
   PHRASELY — blog & inner-page styles
   Loaded by the server-rendered /blog pages and about.html
   ============================================================ */

/* current page in the nav */
.nav-links a.on { color: var(--purple); font-weight: 800; }

/* ---- purple page header (smaller sibling of .hero) ---- */
.page-head {
  background: var(--purple);
  color: #fff;
  padding: clamp(46px, 6vw, 80px) 0 clamp(52px, 7vw, 88px);
}
.page-head h1 {
  font-family: var(--fred); font-weight: 600; color: #fff;
  font-size: clamp(34px, 5vw, 60px); line-height: 1.06; letter-spacing: -0.015em;
  margin: 20px 0 0; text-wrap: balance; max-width: 16em;
}
.page-head .lead { color: rgba(255,255,255,.86); max-width: 34em; margin-top: 18px; }

.back-link {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--nun); font-weight: 700; font-size: 14px;
  color: rgba(255,255,255,.8);
}
.back-link:hover { color: var(--lime); }

/* ---- post list ---- */
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 980px) { .post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .post-grid { grid-template-columns: 1fr; } }

.post-card {
  display: flex; flex-direction: column; overflow: hidden;
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-card);
  padding: 30px 28px; box-shadow: var(--shadow-card);
  transition: transform .16s ease, box-shadow .16s ease;
}
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-pop); }
.post-card.has-cover { padding: 0; }
.post-card .post-cover {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block;
  background: var(--surface-lav);
}
.post-card .post-card-text { display: flex; flex-direction: column; flex: 1; }
.post-card.has-cover .post-card-text { padding: 26px 28px 30px; }
.post-date {
  font-family: var(--nun); font-weight: 800; font-size: 12px;
  letter-spacing: 1.1px; text-transform: uppercase; color: var(--purple);
}
.post-card h2 {
  font-family: var(--fred); font-weight: 600; font-size: 24px; line-height: 1.18;
  margin: 12px 0 10px; color: var(--ink);
}
.post-card p {
  font-family: var(--nun); font-weight: 500; font-size: 15.5px; line-height: 1.55;
  color: var(--ink-3); margin: 0 0 22px;
}
.post-more {
  margin-top: auto; display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--nun); font-weight: 800; font-size: 14px; color: var(--purple);
}

.post-empty {
  background: #fff; border: 1px dashed var(--line-2); border-radius: var(--r-card);
  padding: 46px 34px; text-align: center; grid-column: 1 / -1;
}
.post-empty h2 { font-family: var(--fred); font-weight: 600; font-size: 24px; margin: 0 0 8px; }
.post-empty p { font-family: var(--nun); font-weight: 500; color: var(--ink-3); margin: 0; }

/* ---- single post ---- */
.post-head h1 { margin-top: 22px; max-width: 15em; }
.post-meta {
  display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 20px;
  font-family: var(--nun); font-weight: 700; font-size: 14px; color: rgba(255,255,255,.78);
}
.post-meta span + span::before { content: '·'; margin-right: 18px; color: rgba(255,255,255,.5); }
.draft-flag {
  background: var(--lime); color: var(--ink); border-radius: var(--r-pill);
  padding: 3px 12px; font-size: 12px; letter-spacing: .4px; text-transform: uppercase;
}
.draft-flag::before { content: none !important; }

article.section { padding-top: clamp(44px, 5vw, 68px); }

/* cover image above the article */
.post-hero {
  max-width: 860px; margin: 0 auto clamp(34px, 4vw, 52px); padding: 0;
}
.post-hero img {
  width: 100%; display: block; border-radius: var(--r-card);
  box-shadow: var(--shadow-pop); background: var(--surface-lav);
}

.post-body { max-width: 700px; margin: 0 auto; font-family: var(--nun); color: var(--ink-2); }
.post-body > *:first-child { margin-top: 0; }
.post-body p {
  font-weight: 500; font-size: 18px; line-height: 1.68; margin: 0 0 24px;
}
.post-body h2 {
  font-family: var(--fred); font-weight: 600; font-size: clamp(24px, 3vw, 32px);
  line-height: 1.18; color: var(--ink); margin: 46px 0 16px;
}
.post-body h3 {
  font-family: var(--fred); font-weight: 600; font-size: 22px;
  color: var(--ink); margin: 34px 0 12px;
}
.post-body h4 { font-family: var(--fred); font-weight: 600; font-size: 19px; margin: 28px 0 10px; }
.post-body a { color: var(--purple); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.post-body a:hover { color: var(--purple-press); }
.post-body strong { color: var(--ink); font-weight: 800; }
.post-body ul, .post-body ol { margin: 0 0 24px; padding-left: 22px; }
.post-body li { font-weight: 500; font-size: 18px; line-height: 1.6; margin-bottom: 10px; }
.post-body li::marker { color: var(--purple); }
.post-body blockquote {
  margin: 0 0 26px; padding: 4px 0 4px 24px; border-left: 4px solid var(--lime);
}
.post-body blockquote p { font-size: 19px; font-weight: 600; color: var(--ink); margin: 0; }
.post-body code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .88em;
  background: var(--surface-lav); border: 1px solid var(--line-2);
  border-radius: 7px; padding: 2px 6px; color: var(--purple-press);
}
.post-body hr { border: none; border-top: 1px solid var(--line); margin: 40px 0; }

@media (max-width: 500px) {
  .post-body p, .post-body li { font-size: 17px; }
  .post-card { padding: 26px 22px; }
}
