/* The Body Theory — public blog + embeddable sections.
   Palette/typography approximate the live site (greens, Roboto, Montserrat). */
:root{
  --tbt-green:#2e7d5b;--tbt-green-d:#246b4d;--tbt-ink:#222827;--tbt-muted:#69756f;
  --tbt-line:#e2e8e5;--tbt-bg:#fff;
}
.pv-shell{max-width:1040px;margin:0 auto;padding:0 20px}

/* ---- fallback chrome (staging only) ---- */
body.pv-fallback{margin:0;background:var(--tbt-bg);color:var(--tbt-ink);
  font:16px/1.65 'Roboto',system-ui,sans-serif}
.pv-top{border-bottom:1px solid var(--tbt-line);background:#fff}
.pv-top .pv-shell{display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:16px 20px;flex-wrap:wrap}
.pv-logo{font-family:'Montserrat Alternates',sans-serif;font-size:21px;color:var(--tbt-ink);
  text-decoration:none}
.pv-logo b{color:var(--tbt-green)}
.pv-nav{display:flex;gap:4px;flex-wrap:wrap}
.pv-nav a{color:var(--tbt-ink);text-decoration:none;font-weight:500;font-size:14px;
  padding:8px 12px;border-radius:8px}
.pv-nav a:hover{color:var(--tbt-green-d);background:#f2f7f4}
.pv-foot{border-top:1px solid var(--tbt-line);margin-top:56px;color:var(--tbt-muted);
  font-size:13px}
.pv-stagenote{color:#b88a2e;font-weight:600}

/* ---- blog index ---- */
.pv-blog h1,.pv-post h1{font-family:'Montserrat Alternates',sans-serif;font-weight:700;
  color:var(--tbt-ink);margin:34px 0 4px;font-size:34px}
.pv-sub{color:var(--tbt-muted);margin:0 0 26px}
.pv-filter{background:#f2f7f4;border:1px solid var(--tbt-line);border-radius:9px;
  padding:9px 14px;font-size:14px}
.pv-filter a{color:var(--tbt-green-d)}
.pv-empty{color:var(--tbt-muted);padding:34px 0}
.pv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pv-card{border:1px solid var(--tbt-line);border-radius:13px;overflow:hidden;
  padding:0 0 16px;background:#fff;display:flex;flex-direction:column}
.pv-card-link{text-decoration:none;color:inherit}
.pv-card-img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.pv-card h2{font-size:18px;line-height:1.35;margin:14px 16px 6px;color:var(--tbt-ink)}
.pv-card-link:hover h2{color:var(--tbt-green-d)}
.pv-card p{margin:0 16px 8px;font-size:14px;color:var(--tbt-muted)}
.pv-meta{font-size:13px;color:var(--tbt-muted)}
.pv-tags{margin-top:auto}
.pv-tag{display:inline-block;font-size:12px;font-weight:600;color:var(--tbt-green-d);
  background:#eaf4ee;border-radius:99px;padding:3px 10px;text-decoration:none;margin:2px 2px 0 0}
.pv-tag:hover{background:#dcece3}
.pv-pager{display:flex;gap:6px;margin:30px 0}
.pv-pager a,.pv-pager .cur{padding:7px 13px;border:1px solid var(--tbt-line);border-radius:8px;
  text-decoration:none;color:var(--tbt-ink);font-size:14px}
.pv-pager .cur{background:var(--tbt-green);border-color:var(--tbt-green);color:#fff}

/* ---- single post ---- */
.pv-post{max-width:760px}
.pv-crumb{margin:26px 0 0}
.pv-crumb a{color:var(--tbt-green-d);text-decoration:none;font-size:14px}
.pv-post .pv-meta{margin:2px 0 20px}
.pv-hero{width:100%;border-radius:13px;margin:6px 0 22px;display:block}
.pv-body{font-size:17px;line-height:1.75}
.pv-body h2,.pv-body h3{font-family:'Montserrat Alternates',sans-serif;color:var(--tbt-ink);
  margin:1.5em 0 .4em}
.pv-body img{max-width:100%;height:auto;border-radius:10px}
.pv-body blockquote{border-left:3px solid var(--tbt-green);margin:1.4em 0;
  padding:.3em 1.2em;color:var(--tbt-muted);font-style:italic}
.pv-body a{color:var(--tbt-green-d)}
.pv-draft{background:#fff7e0;border:1px solid #ecd9a0;color:#7a5d12;border-radius:10px;
  padding:10px 16px;margin:22px 0 0;font-weight:600;font-size:14px}
.pv-cta{margin:36px 0}
.pv-btn{display:inline-block;background:var(--tbt-green);color:#fff;text-decoration:none;
  font-weight:600;padding:13px 22px;border-radius:10px}
.pv-btn:hover{background:var(--tbt-green-d)}

/* ---- team section ---- */
.pv-team h2,.pv-reviews h2{font-family:'Montserrat Alternates',sans-serif;font-size:28px;
  text-align:center;margin:46px 0 26px}
.pv-green{color:var(--tbt-green)}
.pv-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:30px;max-width:1040px;margin:0 auto;padding:0 20px}
.pv-member{text-align:center}
.pv-member-photo{width:170px;height:170px;border-radius:50%;object-fit:cover;
  border:4px solid #eaf4ee}
.pv-member h3{margin:14px 0 2px;font-size:19px}
.pv-role{color:var(--tbt-green-d);font-weight:600;font-size:14px;margin:0 0 10px}
.pv-bio{font-size:15px;line-height:1.65;text-align:left}

/* ---- reviews section ---- */
.pv-reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:24px;max-width:1040px;margin:0 auto;padding:0 20px}
.pv-review{margin:0;border:1px solid var(--tbt-line);border-radius:13px;padding:22px;
  background:#fbfdfc}
.pv-stars{color:#e7b53a;font-size:18px;letter-spacing:2px}
.pv-review blockquote{margin:10px 0 14px;font-size:15px;line-height:1.65;font-style:italic}
.pv-review figcaption{font-weight:600;font-size:14px}
.pv-source{color:var(--tbt-muted);font-weight:400}

@media(max-width:900px){.pv-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pv-grid{grid-template-columns:1fr}}
