/* Blog post — prefix ps- */
.ps-hero { position: relative; padding: clamp(44px, 7vh, 88px) 0 calc(var(--hl-space-7) + 40px); overflow: hidden; }
.ps-hero::before { content: ""; position: absolute; right: -140px; top: -170px; width: 440px; height: 440px; border: 42px solid rgba(227,30,47,.14); border-radius: 50%; }
.ps-hero-inner { position: relative; }
.ps-hero .hl-breadcrumb, .ps-hero .eyebrow { color: var(--hl-white); }
.ps-hero .hl-breadcrumb a:last-child { max-width: 32ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ps-title { max-width: 22ch; color: var(--hl-white); font-size: clamp(34px, 4.4vw, 58px); line-height: 1.08; letter-spacing: -.03em; }
.ps-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 24px; color: var(--hl-text-on-dark-muted); font-size: var(--hl-fs-sm); }
.ps-meta li { display: flex; align-items: center; gap: 22px; }
.ps-meta li + li::before { content: ""; width: 4px; height: 4px; margin-left: -12px; margin-right: -12px; border-radius: 50%; background: var(--hl-red-on-dark); }
.ps-layout--nocover { padding-top: 0; }
.hilow-post-page .ps-hero:has(+ .ps-layout) { padding-bottom: var(--hl-space-6); }

.ps-cover-wrap { position: relative; z-index: 1; margin-top: calc(-1 * var(--hl-space-7)); }
.ps-cover { overflow: hidden; aspect-ratio: 16 / 7; border-radius: var(--hl-radius-lg); background: var(--hl-navy); box-shadow: 0 30px 70px rgba(17,28,47,.25); }
.ps-cover img { width: 100%; height: 100%; object-fit: cover; }

.ps-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px clamp(40px, 5vw, 80px); align-items: start; padding: var(--hl-space-6) 0 var(--hl-section-y); }
.ps-main { min-width: 0; }

.ps-foot { max-width: 740px; margin-top: var(--hl-space-5); padding-top: 28px; border-top: 1px solid var(--hl-border); }
.ps-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.ps-tags a { display: inline-block; padding: 7px 14px; border: 1px solid var(--hl-border); border-radius: 999px; color: var(--hl-navy); font-size: var(--hl-fs-xs); font-weight: 600; }
.ps-tags a:hover { border-color: var(--hl-navy); }
.ps-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; font-size: var(--hl-fs-sm); }
.ps-share span { font-size: var(--hl-fs-eyebrow); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--hl-text-muted); }
.ps-share a, .ps-copy { padding: 0; border: 0; background: none; color: var(--hl-navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.ps-share a:hover, .ps-copy:hover { color: var(--hl-red); }
.ps-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: var(--hl-space-5); }
.ps-pager a { display: grid; gap: 6px; padding: 20px 22px; border: 1px solid var(--hl-border); border-radius: var(--hl-radius-lg); color: var(--hl-navy); font-weight: 600; line-height: 1.35; transition: border-color .2s ease, box-shadow .2s ease; }
.ps-pager a:hover { border-color: var(--hl-border-strong); box-shadow: var(--hl-shadow-card); }
.ps-pager span { font-size: var(--hl-fs-eyebrow); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--hl-red); }
.ps-pager-next { grid-column: 2; text-align: right; }

.ps-aside { position: sticky; top: calc(var(--hl-header-h) + 24px); display: grid; gap: 20px; }
.ps-aside-k { margin-bottom: 12px; font-size: var(--hl-fs-eyebrow); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--hl-red); }
.ps-toc { padding: 22px 22px 14px; border: 1px solid var(--hl-border); border-radius: var(--hl-radius-lg); }
.ps-toc ol { list-style: none; counter-reset: toc; max-height: 46vh; overflow-y: auto; }
.ps-toc li { counter-increment: toc; }
.ps-toc a { display: grid; grid-template-columns: 26px 1fr; padding: 8px 0; border-top: 1px solid var(--hl-border); color: var(--hl-text-muted); font-size: var(--hl-fs-xs); line-height: 1.4; transition: color .15s ease; }
.ps-toc li:first-child a { border-top: 0; }
.ps-toc a::before { content: counter(toc, decimal-leading-zero); color: var(--hl-red); font-weight: 700; }
.ps-toc a:hover, .ps-toc a.is-active { color: var(--hl-navy); }
.ps-toc a.is-active { font-weight: 700; }
.ps-cta { padding: 26px 24px; border-radius: var(--hl-radius-lg); background: var(--hl-navy); color: var(--hl-text-on-dark-muted); font-size: var(--hl-fs-sm); }
.ps-cta .ps-aside-k { color: var(--hl-red-on-dark); }
.ps-cta-title { margin-bottom: 8px; color: var(--hl-white); font-family: var(--hl-font-display); font-size: 22px; font-weight: 600; line-height: 1.2; letter-spacing: -.02em; }
.ps-cta .btn { width: 100%; margin-top: 18px; }
.ps-cta-phone { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; color: var(--hl-white); font-weight: 700; }
.ps-cta-phone svg { width: 16px; height: 16px; }
.ps-services { padding: 22px 22px 12px; border: 1px solid var(--hl-border); border-radius: var(--hl-radius-lg); }
.ps-services ul { list-style: none; }
.ps-services a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--hl-border); color: var(--hl-navy); font-size: var(--hl-fs-xs); font-weight: 600; }
.ps-services li:first-child a { border-top: 0; }
.ps-services a:hover { color: var(--hl-red); }
.ps-services .arrow { width: 12px; height: 12px; flex-shrink: 0; }

.ps-related-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: var(--hl-space-5); }
.ps-related .bl-card-title { font-size: 20px; }

@media (max-width: 1080px) {
  .ps-layout { grid-template-columns: 1fr; }
  .ps-aside { position: static; grid-template-columns: 1fr 1fr; }
  .ps-toc { display: none; }
  .ps-services { display: none; }
  .ps-cta { grid-column: 1 / -1; }
  .ps-main .hl-prose, .ps-foot { max-width: none; }
}
@media (max-width: 600px) {
  .ps-hero { padding-bottom: calc(var(--hl-space-6) + 32px); }
  .ps-cover-wrap { margin-top: calc(-1 * var(--hl-space-6)); }
  .ps-cover { aspect-ratio: 4 / 3; }
  .ps-pager { grid-template-columns: 1fr; }
  .ps-pager-next { grid-column: auto; text-align: left; }
  .ps-related-head { flex-direction: column; align-items: start; }
}
