/* Punchlist360 guides.
 *
 * Long-form reading, so the constraints are different from the app: a measure
 * around 68 characters, generous line height, and a type scale that makes the
 * headings navigable when somebody is scanning for the one paragraph they came
 * for. Search traffic arrives mid-question and leaves the moment it cannot find
 * the answer.
 */
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

.blog-hero{padding:64px 0 34px;border-bottom:1px solid var(--border)}
.blog-hero h1{font-size:clamp(30px,4.4vw,46px);line-height:1.1;letter-spacing:-.02em;margin:0 0 14px}
.blog-hero .lede{font-size:17.5px;line-height:1.6;color:var(--text-2);max-width:64ch;margin:0}
.blog-topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.blog-topics .chip{text-decoration:none}

.blog-index{padding:34px 0 70px}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.post-card{
  display:flex;flex-direction:column;text-decoration:none;overflow:hidden;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);
  transition:border-color .15s,transform .15s;
}
.post-card:hover{border-color:var(--gold-border);transform:translateY(-2px)}
/* Now a real <img>, so it needs object-fit rather than background sizing. */
.post-card-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:var(--bg-input)}
.post-card-body{display:block;padding:16px 18px 18px}
.post-card-title{display:block;font-size:16.5px;font-weight:700;color:var(--text);line-height:1.32;margin-bottom:7px}
.post-card-desc{display:block;font-size:13.5px;line-height:1.5;color:var(--text-2)}
.post-card-meta{display:block;font-size:12px;color:var(--text-2);margin-top:10px;opacity:.8}

.crumbs{font-size:13px;color:var(--text-2);padding:26px 0 10px}
.crumbs a{color:var(--text-2)}
.crumbs span{opacity:.5;margin:0 4px}

.post{padding-bottom:70px}
.post h1{font-size:clamp(29px,4.2vw,44px);line-height:1.13;letter-spacing:-.02em;margin:0 0 16px;max-width:22ch}
.post .lede{font-size:18.5px;line-height:1.62;color:var(--text-2);max-width:66ch;margin:0 0 14px}
.post-meta{font-size:13px;color:var(--text-2);opacity:.85;margin:0 0 26px}
.post-hero{
  display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;
  border-radius:var(--radius);margin-bottom:38px;
  background:var(--bg-input);border:1px solid var(--border);
}

/* The reading column. Everything inside it is measured for prose. */
.post-body{max-width:68ch;font-size:17px;line-height:1.72;color:var(--text)}
.post-body h2{font-size:26px;line-height:1.22;letter-spacing:-.01em;margin:44px 0 14px}
.post-body h3{font-size:19px;line-height:1.3;margin:30px 0 10px}
.post-body p{margin:0 0 20px}
.post-body ul,.post-body ol{margin:0 0 22px;padding-left:24px}
.post-body li{margin-bottom:10px}
.post-body a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.post-body a:hover{color:var(--gold-2)}
.post-body b{color:var(--text);font-weight:700}
.post-body blockquote{
  margin:26px 0;padding:16px 22px;border-left:3px solid var(--gold);
  background:var(--gold-dim);border-radius:0 8px 8px 0;font-size:18px;
}
.post-body blockquote p{margin:0}
.post-callout{
  margin:28px 0;padding:18px 22px;border:1px solid var(--gold-border);
  background:var(--gold-dim);border-radius:10px;
}
.post-callout b{display:block;margin-bottom:6px;font-size:15px;color:var(--gold-3)}
.post-callout p{margin:0;font-size:15.5px;line-height:1.6}
/* Tables carry real content here, so they get room and must not push the page. */
.post-body .table-wrap{margin:26px 0;max-width:100%}
.post-body table{font-size:14.5px}
.post-body th{white-space:nowrap}

.post-faq{max-width:68ch;margin-top:52px;padding-top:34px;border-top:1px solid var(--border)}
.post-faq h2{font-size:26px;margin:0 0 20px}
.faq-q{margin-bottom:22px}
.faq-q h3{font-size:17px;margin:0 0 6px;color:var(--text)}
.faq-q p{margin:0;font-size:15.5px;line-height:1.62;color:var(--text-2)}
.faq-q a{color:var(--gold)}

.blog-cta{
  margin:52px 0 0;padding:32px;border-radius:var(--radius);
  border:1px solid var(--gold-border);background:var(--gold-dim);max-width:68ch;
}
.blog-cta h2{margin:0 0 10px;font-size:24px}
.blog-cta p{margin:0 0 18px;color:var(--text-2);line-height:1.6}

.post-related{margin-top:56px;padding-top:34px;border-top:1px solid var(--border)}
.post-related h2{font-size:24px;margin:0 0 20px}

footer .foot-grid a{display:block;color:var(--text-2);text-decoration:none;font-size:13.5px;margin-bottom:7px;line-height:1.4}
footer .foot-grid a:hover{color:var(--gold)}
footer .foot-grid h4{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin:0 0 12px}

@media (max-width:720px){
  .blog-hero{padding:40px 0 26px}
  .post-hero{aspect-ratio:16/9;margin-bottom:28px}
  .post-body{font-size:16.5px}
  .post-body h2{font-size:23px;margin-top:36px}
  .blog-cta{padding:24px}
}
