/* VibeDeploy Blog — listing + article styles. Reuses design tokens from site.css. */

/* ---- listing header ---- */
.blog-hero{padding:104px 0 0;text-align:center;position:relative}
.blog-hero .eyebrow{margin-bottom:18px}
.blog-hero h1{font-size:clamp(32px,4.6vw,52px);font-weight:800;letter-spacing:-.03em;line-height:1.08;max-width:20ch;margin:0 auto}
.blog-hero p{font-size:17px;color:var(--mut);max-width:640px;margin:18px auto 0}

/* ---- listing grid ---- */
.posts{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding:52px 0 0}
.post-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;color:inherit;transition:transform .26s cubic-bezier(.2,.7,.2,1),box-shadow .28s}
.post-card:hover{transform:translateY(-4px);box-shadow:0 26px 60px -34px rgba(0,0,0,.28)}
.post-card .thumb{height:180px;background:linear-gradient(120deg,#1a1c20,#2b1d16)}
.post-card.feat{grid-column:1/-1}
.post-card.feat .thumb{height:230px;background:linear-gradient(125deg,#F6612F 0%,#c2451c 45%,#2b1d16 100%)}
.post-card .body{padding:24px 26px}
.post-card .tag{display:inline-block;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-d);background:var(--tint);border-radius:var(--pill);padding:4px 11px}
.post-card .date{font-size:12.5px;color:var(--mut);font-family:var(--mono);margin-left:10px}
.post-card h2{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:12px 0 8px}
.post-card p{font-size:14.5px;color:var(--mut)}

/* ---- upcoming ---- */
.upcoming{padding:60px 0 0}
.upcoming h2{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px;text-align:center}
.upcoming .sub{text-align:center;color:var(--mut);font-size:15px;margin-bottom:28px}
.up-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.up{background:#fff;border:1px dashed #d8d8d2;border-radius:14px;padding:18px 20px}
.up .tag{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.05em}
.up h3{font-size:15.5px;font-weight:700;margin:6px 0 4px;letter-spacing:-.01em}
.up span{font-size:12px;color:var(--mut);font-family:var(--mono)}

/* ================= article ================= */
.post{max-width:760px;margin:0 auto;padding:92px 0 0}
.post .kicker{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--mut);font-family:var(--mono);margin-bottom:16px;flex-wrap:wrap}
.post .kicker .tag{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-d);background:var(--tint);border-radius:var(--pill);padding:4px 11px}
.post h1{font-size:clamp(30px,4.4vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:18px}
.post .lead{font-size:19px;color:var(--ink-2);line-height:1.6;margin-bottom:8px}

.tldr{background:#fafaf8;border:1px solid var(--line);border-radius:var(--r);padding:20px 24px;margin:26px 0 30px}
.tldr b{display:block;font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-bottom:8px}
.tldr p{margin:0;font-size:15.5px;color:var(--ink-2)}

.post-body{font-size:17px;line-height:1.75;color:var(--ink-2)}
.post-body h2{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:42px 0 14px;color:var(--ink)}
.post-body h3{font-size:20px;font-weight:700;letter-spacing:-.015em;margin:28px 0 10px;color:var(--ink)}
.post-body p{margin:0 0 18px}
.post-body ul,.post-body ol{margin:0 0 18px;padding-left:22px}
.post-body li{margin-bottom:8px}
.post-body a{color:var(--brand-d);text-decoration:underline;text-underline-offset:2px}
.post-body strong{color:var(--ink);font-weight:700}
.post-body table{width:100%;border-collapse:collapse;margin:0 0 22px;font-size:15px}
.post-body th,.post-body td{border:1px solid var(--line);padding:10px 13px;text-align:left;vertical-align:top}
.post-body th{background:#fafaf8;font-weight:700;color:var(--ink)}
.post-body blockquote{border-left:3px solid var(--brand);background:var(--tint);padding:14px 18px;border-radius:0 12px 12px 0;margin:0 0 20px;color:var(--ink-2)}
.post-body code{font-family:var(--mono);font-size:14px;background:#f0f0ec;border-radius:6px;padding:2px 7px}
.post-body pre{background:var(--ink);color:#f3f3f0;border-radius:14px;padding:18px 20px;overflow-x:auto;margin:0 0 22px;font-size:14px;line-height:1.7}
.post-body pre code{background:none;padding:0;color:inherit}

.callout{background:#fff;border:1px solid var(--line);border-left:3px solid var(--sky-d);border-radius:0 14px 14px 0;padding:16px 20px;margin:0 0 22px;font-size:15.5px}
.callout.warn{border-left-color:var(--brand)}
.callout b{color:var(--ink)}

/* in-article FAQ */
.faq-block{margin:44px 0 0}
.faq-block h2{margin-bottom:18px}
.faq-q{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 22px;margin-bottom:12px}
.faq-q h3{font-size:17px;font-weight:700;margin:0 0 8px}
.faq-q p{font-size:15px;color:var(--mut);margin:0}

/* offer / CTA */
.offer{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:34px 36px;margin:46px 0 0;text-align:center}
.offer h3{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:10px;color:#fff}
.offer p{color:#c9cbce;font-size:15.5px;max-width:540px;margin:0 auto 20px}
.offer code{font-family:var(--mono);font-size:13.5px;background:rgba(255,255,255,.1);color:#ffb594;border-radius:6px;padding:3px 9px;display:inline-block;margin-top:14px}

.disclaimer{font-size:13px;color:var(--mut);background:#fafaf8;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin:28px 0 0}
.post-foot{max-width:760px;margin:34px auto 0;padding-top:22px;border-top:1px solid var(--line);font-size:13.5px;color:var(--mut)}

@media(max-width:880px){
  .posts,.up-grid{grid-template-columns:1fr}
}
