/* ============================================================
   Site consistency layer — loaded LAST on every page.
   Aligns every template (landings, SEO guides, blog, cases)
   with the homepage: same root scale, same page gutter,
   same header metrics.
   ============================================================ */

/* 1) Same proportional root scale as the homepage (1440px = design width) */
html{font-size:16px}
@media (min-width:1080px){html{font-size:clamp(15px,.70vw,20px)}}

/* 2) Same page gutter as the homepage .wrap (72px at 1440px) */
:root{--pad:clamp(1.25rem,5vw,9rem)}

/* 3) Blog: container aligned with the homepage grid */
.blog-wrap{max-width:none !important;padding-inline:var(--pad) !important}
.blog-wrap.post-head{max-width:none !important;padding-inline:var(--pad) !important}
.blog-wrap.post-layout,.blog-wrap.post-share,.blog-wrap.post-hero,.blog-wrap.post-toc-top{padding-inline:var(--pad) !important;max-width:none !important}
.post-head h1{max-width:22ch}

/* 4) Blog listing: sensible card titles and meta line */
.post-grid .card-body h2{
  font-size:clamp(1.125rem,calc(.95rem + .45vw),1.375rem) !important;
  line-height:1.25 !important;
  letter-spacing:-.02em !important;
  margin:.15rem 0 0 !important;
}
.post-grid .card .meta{font-size:.75rem !important;letter-spacing:.03em !important}
.post-grid .card .excerpt{font-size:.9375rem !important;line-height:1.55 !important}
.post-grid .card-body .tag{font-size:.65rem !important}

/* 5) Mobile gutter identical everywhere */
@media (max-width:760px){
  .blog-wrap,.blog-wrap.post-head,.blog-wrap.post-layout,.blog-wrap.post-share,.blog-wrap.post-hero{padding-inline:var(--pad) !important}
}

/* 6) AI chatbot landing: no narrower inner cap on wide screens (match the homepage grid) */
.aic-hero-grid,.aic-model-strip,.aic-inner{max-width:none !important}

/* ============================================================
   7) Blog post — centered article, uniform images, meta, author box
   ============================================================ */
/* Centered article column: TOC (14rem) + gap (3.25rem) + reading column (54rem) */
article.post{--post-w:71.25rem;--post-toc:14rem;--post-gap:3.25rem;--post-read:54rem}
article.post:not(:has(.post-toc)){--post-w:54rem;--post-toc:0rem;--post-gap:0rem}
article.post .blog-wrap.post-head,
article.post .blog-wrap.post-layout,
article.post .blog-wrap.post-share,
article.post .blog-wrap.post-hero,
article.post .blog-wrap.post-toc-top{
  max-width:calc(var(--post-w) + 2 * var(--pad)) !important;
  margin-left:auto !important;margin-right:auto !important;
}
article.post .post-layout.has-toc,
article.post .post-layout:has(.post-toc){
  grid-template-columns:var(--post-toc) minmax(0,var(--post-read)) !important;
  gap:var(--post-gap) !important;
}
.post-related .blog-wrap{max-width:calc(71.25rem + 2 * var(--pad)) !important;margin-inline:auto !important}

/* Post meta line: same size as the meta on the blog listing */
.post-head .meta{
  font-size:.75rem !important;letter-spacing:.03em !important;text-transform:none !important;
  margin-top:1.1rem !important;color:var(--muted,#797f88) !important;
}
.post-head .post-kicker{font-size:.75rem !important}

/* Post images: always the same frame (reading-column width, 1.91:1 like OG images) */
article.post .post-hero.blog-wrap{margin-top:2rem !important;margin-bottom:0 !important}
article.post .post-hero img,
article.post .local-post-img img{
  display:block !important;width:100% !important;height:auto !important;
  aspect-ratio:1200/628 !important;object-fit:cover !important;object-position:center !important;
}
article.post .post-hero img{
  max-width:var(--post-read) !important;
  margin-left:calc(var(--post-toc) + var(--post-gap)) !important;
  border-radius:1rem !important;border:1px solid var(--line,#e7e7e1) !important;box-shadow:none !important;
}
article.post .post-hero figcaption{max-width:var(--post-read);margin-left:calc(var(--post-toc) + var(--post-gap))}
article.post .local-post-img{
  margin:0 0 2.25rem !important;border-radius:1rem !important;overflow:hidden !important;
  border:1px solid var(--line,#e7e7e1) !important;background:var(--line-2,#f0f0eb) !important;max-width:var(--post-read);
}
article.post .local-post-img figcaption{padding:.65rem .9rem !important;font-size:.75rem !important;color:var(--muted,#797f88) !important;background:#fff}
article.post .post-share{margin-top:1.25rem}

/* Author box */
.author-box{
  display:grid !important;grid-template-columns:3.75rem minmax(0,1fr) !important;gap:1.25rem !important;
  align-items:start !important;margin:3.5rem 0 0 !important;padding:1.6rem 1.75rem !important;
  border:1px solid var(--line,#e7e7e1) !important;border-radius:1.25rem !important;background:var(--card,#fff) !important;
}
.author-box .author-avatar{width:3.75rem !important;height:3.75rem !important;border-radius:50% !important;object-fit:cover !important;border:1px solid var(--line,#e7e7e1) !important}
.author-box .author-info{display:block !important;min-width:0}
.author-box .author-eyebrow{
  font-family:var(--font-mono,"JetBrains Mono",monospace) !important;font-size:.625rem !important;line-height:1 !important;
  letter-spacing:.16em !important;text-transform:uppercase !important;color:var(--muted,#797f88) !important;margin:.35rem 0 .45rem !important;
}
.author-box .author-name{
  font-family:"Space Grotesk",sans-serif !important;font-size:1.125rem !important;font-weight:600 !important;
  letter-spacing:-.015em !important;line-height:1.2 !important;color:var(--ink,#0e0f10) !important;margin:0 0 .6rem !important;
}
.author-box .author-bio{font-size:.9375rem !important;line-height:1.6 !important;color:var(--ink-2,#3b3f45) !important;margin:0 !important;max-width:60ch}
.author-box .author-bio a{color:var(--lime-ink,#4e7a00);text-decoration:underline;text-underline-offset:2px}
.author-box .author-links{
  display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:.4rem .6rem !important;
  margin:.9rem 0 0 !important;font-size:.8125rem !important;
}
.author-box .author-links a{
  display:inline-flex;align-items:center;padding:.4rem .8rem;border:1px solid var(--line,#e7e7e1);border-radius:999px;
  color:var(--ink,#0e0f10) !important;text-decoration:none !important;font-weight:500;line-height:1;transition:border-color .2s ease,background .2s ease;
}
.author-box .author-links a:hover{border-color:var(--ink,#0e0f10);background:var(--paper,#fbfbf9)}
.author-box .author-links span{display:none !important}

/* Tablet / mobile: single column, everything full width */
@media (max-width:760px){
  article.post{--post-toc:0rem;--post-gap:0rem}
  article.post .post-layout.has-toc,article.post .post-layout:has(.post-toc){grid-template-columns:minmax(0,1fr) !important;gap:1.75rem !important}
  article.post .post-hero img,article.post .post-hero figcaption{margin-left:0 !important;max-width:100% !important}
  .author-box{grid-template-columns:3rem minmax(0,1fr) !important;gap:1rem !important;padding:1.25rem !important}
  .author-box .author-avatar{width:3rem !important;height:3rem !important}
}
