/* Paint Philly QA layout fixes 2026-11-03 (layout only) */

/* 16. balanced headings */
h1, h2, h3, .ppt-h2, .ppv-p-head h2, .pp-video-intro h2 { text-wrap: balance; }

/* 1. Our Story + Credentials: centre the mission/CTA wrappers, align buttons */
body.pp-bold :is(.pp-story-mission, .pp-story-cta, .pp-cred-cta) { margin-left: auto !important; margin-right: auto !important; text-align: center; }
body.pp-bold :is(.pp-story-cta, .pp-cred-cta) h2,
body.pp-bold :is(.pp-story-cta, .pp-cred-cta) p { text-align: center; margin-left: auto; margin-right: auto; }
body.pp-bold .pp-story-mission h2 { text-align: center; }
body.pp-bold :is(.pp-story-cta, .pp-cred-cta) > div { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px; }
body.pp-bold :is(.pp-story-cta, .pp-cred-cta) .pp-story-button,
body.pp-bold :is(.pp-story-cta, .pp-cred-cta) .pp-cred-button { margin: 0 !important; box-sizing: border-box; min-height: 52px; }
/* 8. top callout: breathing room above the kicker */
body.pp-bold .pp-pullquote { padding-top: 22px !important; }

/* 2. service pages: gap under the towns heading */
body.pp-bold .ppt-section.ppt-center > .ppt-wrap > .ppt-h2 { margin-bottom: 22px; }

/* 3. related-service cards: content tops aligned */
body.pp-bold .ppt-card__body { margin-top: 0 !important; flex: 1 1 auto; }

/* 4. blog grid */
body.pp-site-archive .ast-row { padding-top: 24px !important; }
body.pp-site-archive .ast-blog-featured-section.post-thumb { height: auto !important; padding: 0 !important; aspect-ratio: 3 / 2; overflow: hidden; }
body.pp-site-archive .post-thumb-img-content { width: 100%; height: 100%; margin: 0 !important; }
body.pp-site-archive .post-thumb-img-content a { display: block; width: 100%; height: 100%; }
body.pp-site-archive .post-thumb-img-content img { width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; margin: 0 !important; object-fit: cover !important; }

/* 5. video thumbnails: crop the baked-in YouTube letterbox */
body .pp-video-thumb { position: relative; overflow: hidden; }
body .pp-video-thumb img { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center !important; }

/* 6. pricing table */
body.pp-bold .ppx-table th:last-child, body.pp-bold .ppx-table td:last-child { text-align: right; }

/* 7. credentials documents: clean list */
body .pp-cred-grid { display: grid; gap: 0; max-width: 765px; border-top: 1px solid rgba(17,40,75,.18); }
body .pp-cred-card { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 16px; padding: 16px 4px; border-bottom: 1px solid rgba(17,40,75,.18); }
body .pp-cred-card span { font-weight: 800; font-size: 12px; letter-spacing: .1em; color: #2b6f8a; }
body .pp-cred-card h3 { margin: 0 !important; font-size: 20px; }
body .pp-cred-card a { font-weight: 700; white-space: nowrap; }

/* 9. why-choose: photo fills the column beside the 2x2 cards */
.ppv-p-why__grid { align-items: stretch; }
.ppv-p-why__side { align-self: stretch; }
.ppv-p-why__side .ppv-p-photo { aspect-ratio: auto; height: 100%; min-height: 360px; }

/* 10. process connector stubs: remove */
.ppv-p-steps::before { display: none !important; }

/* 11. service cards: titles on one line so descriptions align */
.ppv-p-card strong { font-size: 19px; white-space: nowrap; }
.ppv-p-card small { white-space: nowrap; }

/* 12/15. mobile */
@media (max-width: 600px) {
  .ppv-p-card strong { white-space: normal; }
  [class*="ppv-p-tab"] { white-space: nowrap; font-size: 13px; padding-left: 10px; padding-right: 10px; letter-spacing: 0; }
  .ppt-carousel__nav { position: static; margin-top: 12px; justify-content: center; }
}
