/* ============================================================
   blog.css  -  BLOG INDEX PAGE
   Editorial article grid (4-up) with a live search filter and a
   "View more" pager. Loaded only on blog.html.
============================================================ */
.blog-hero { padding-block: clamp(120px, 18vw, 160px) clamp(40px, 8vw, 56px); }
.blog-headline { max-width: 18ch; }
.blog-headline em { color: var(--gold); font-style: italic; }
.blog-intro { max-width: 640px; color: var(--ash); margin-block-start: var(--space-md); }

.blog-search { position: relative; max-width: 420px; margin-block-start: var(--space-xl); }
.blog-search-icon {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 0;
  transform: translateY(-50%);
  width: 18px; height: 18px;
  color: var(--ash);
  pointer-events: none;
}
.blog-search-icon svg { width: 100%; height: 100%; }
.blog-search-input {
  width: 100%;
  font-size: var(--type-body);
  padding: 10px 8px 10px 30px;
  background: transparent;
  border: 0;
  border-block-end: 1px solid var(--rule);
  color: var(--ink);
}
.blog-search-input:focus { outline: none; border-block-end-color: var(--gold); }

.blog-grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--rule);
}
.blog-card {
  background: var(--paper);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  min-height: 248px;
  transition: background var(--dur-base) var(--ease-out);
}
.blog-card.is-hidden { display: none; }
.blog-card:hover { background: var(--cream); }
.blog-cat {
  font-family: var(--font-mono);
  font-size: var(--type-micro);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-text);
  margin-block-end: var(--space-sm);
}
.blog-card-title {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--type-h3-lg);
  line-height: 1.15;
  color: var(--ink);
  margin-block-end: var(--space-sm);
}
.blog-excerpt { font-size: var(--type-small); line-height: 1.6; color: var(--ash); }
.blog-status {
  margin-block-start: auto;
  padding-block-start: var(--space-md);
  font-family: var(--font-mono);
  font-size: var(--type-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ash);
}

.blog-empty { text-align: center; color: var(--ash); padding-block: var(--space-2xl); font-style: italic; }
.blog-more-wrap { display: flex; justify-content: center; margin-block-start: var(--space-xl); }
.blog-more {
  font-family: var(--font-mono);
  font-size: var(--type-small);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 12px 28px;
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
.blog-more:hover { background: var(--ink); color: var(--paper); }
.blog-more[hidden] { display: none; }

@media (max-width: 1100px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .blog-grid { grid-template-columns: 1fr; } }


/* ============================================================
   NOTIFY ME  -  email capture (posts to Web3Forms via notify.js)
============================================================ */
.notify-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2xl);
  align-items: center;
}
.notify-copy .display-2 em { color: var(--gold); font-style: italic; }
.notify-lede { max-width: 480px; color: var(--ash); margin-block-start: var(--space-md); }
.notify-form { width: 100%; }
.notify-row {
  display: flex;
  gap: var(--space-sm);
  border-block-end: 1px solid var(--rule);
  padding-block-end: var(--space-sm);
}
.notify-row:focus-within { border-block-end-color: var(--gold); }
.notify-input {
  flex: 1;
  min-width: 0;
  font-size: var(--type-body);
  background: transparent;
  border: 0;
  color: var(--ink);
  padding: 8px 0;
}
.notify-input:focus { outline: none; }
.notify-btn {
  flex: none;
  font-family: var(--font-mono);
  font-size: var(--type-small);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 12px 24px;
  background: var(--ink);
  color: var(--paper);
  border: 0;
  cursor: pointer;
  transition: background var(--dur-base) var(--ease-out);
}
.notify-btn:hover { background: var(--gold-deep); }
.notify-btn:disabled { opacity: 0.6; cursor: default; }
.notify-status { margin-block-start: var(--space-sm); font-size: var(--type-small); min-height: 1.2em; }
.notify-status[data-state="success"] { color: var(--gold-text); }
.notify-status[data-state="error"]   { color: var(--coral); }
@media (max-width: 900px) {
  .notify-inner { grid-template-columns: 1fr; gap: var(--space-lg); }
}
