/* Blog, search, single post, generic pages */

.gv-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px}
.gv-post-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm);transition:box-shadow .3s var(--ease),transform .3s var(--ease);display:flex;flex-direction:column}
.gv-post-card:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.gv-post-thumb{display:block;overflow:hidden;aspect-ratio:16/10}
.gv-post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.gv-post-card:hover .gv-post-thumb img{transform:scale(1.04)}
.gv-post-body{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}
.gv-post-meta{font-family:"Inter";font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:12px}
.gv-post-body h2{font-size:1.28rem;line-height:1.22;margin-bottom:10px}
.gv-post-body h2 a{transition:color .2s}
.gv-post-body h2 a:hover{color:var(--primary)}
.gv-post-body p{color:var(--muted);font-size:.96rem;margin-bottom:16px;flex:1}
.gv-post-more{font-family:"Inter";font-weight:600;font-size:.92rem;color:var(--primary);display:inline-flex;align-items:center;gap:6px;align-self:flex-start}
.gv-post-more::after{content:"→";transition:transform .2s}
.gv-post-more:hover::after{transform:translateX(3px)}

.gv-pagination{margin-top:48px;text-align:center}
.gv-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;margin:0 4px;border-radius:var(--rb);border:1px solid var(--border);background:var(--surface);font-family:"Inter";font-weight:600;font-size:.92rem;transition:.2s}
.gv-pagination .page-numbers:hover{border-color:var(--primary);color:var(--primary)}
.gv-pagination .page-numbers.current{background:var(--primary);color:#fff;border-color:transparent}
.gv-pagination .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.gv-single-hero{margin-top:-40px;margin-bottom:8px}
.gv-single-hero img{width:100%;border-radius:var(--r-lg);box-shadow:var(--sh)}

.gv-prose{max-width:780px;margin:0 auto;font-size:1.06rem;line-height:1.78;color:var(--ink-soft)}
.gv-prose > * + *{margin-top:1.15em}
.gv-prose h2{font-size:clamp(1.5rem,3vw,2.05rem);margin-top:1.9em;color:var(--ink)}
.gv-prose h3{font-size:1.32rem;margin-top:1.6em;color:var(--ink)}
.gv-prose h4{font-size:1.1rem;margin-top:1.4em;color:var(--ink)}
.gv-prose a{color:var(--primary);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.gv-prose a:hover{color:var(--primary-700)}
.gv-prose ul,.gv-prose ol{padding-left:1.3em}
.gv-prose li+li{margin-top:.5em}
.gv-prose ul li::marker{color:var(--primary)}
.gv-prose blockquote{border-left:3px solid var(--primary);padding:4px 0 4px 22px;font-family:"Fraunces",Georgia,serif;font-size:1.2rem;color:var(--ink);font-style:italic}
.gv-prose img,.gv-prose figure img{border-radius:var(--r);box-shadow:var(--sh-sm)}
.gv-prose figcaption{font-size:.86rem;color:var(--muted-2);text-align:center;margin-top:8px}
.gv-prose code{background:var(--alt);padding:2px 7px;border-radius:6px;font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.gv-prose pre{background:var(--navy);color:#E8EDF2;padding:20px 22px;border-radius:var(--r);overflow-x:auto;font-size:.9rem}
.gv-prose pre code{background:none;padding:0;color:inherit}
.gv-prose table{width:100%;border-collapse:collapse;font-size:.95rem}
.gv-prose th,.gv-prose td{border:1px solid var(--border);padding:11px 14px;text-align:left}
.gv-prose th{background:var(--alt);font-family:"Inter";font-weight:600;color:var(--ink)}
.gv-prose hr{border:0;border-top:1px solid var(--border);margin:2.4em 0}
.gv-page-links{margin-top:2em;font-family:"Inter";font-weight:600}

@media(max-width:640px){
  .gv-posts{grid-template-columns:1fr}
  .gv-prose{font-size:1rem}
}
