/* Shared reading layout, built from the existing Bolewska design tokens. */
.site-subpage-main { padding: 0; }
.subpage-header { padding: 1.75rem 0 2.25rem; background: var(--color-bg-alt); border-bottom: 1px solid var(--color-border); }
.subpage-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; color: var(--color-text-muted); font: 500 .75rem/1.6 var(--font-sans); margin-bottom: 1rem; }
.subpage-breadcrumbs a { color: var(--color-primary); text-decoration: none; }
.subpage-breadcrumbs a:hover { text-decoration: underline; text-underline-offset: 4px; }
.subpage-header-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: center; }
.subpage-header--with-image .subpage-header-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.subpage-heading { min-width: 0; }
.subpage-eyebrow { color: var(--color-primary); font: 600 .7rem/1.6 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; margin-bottom: .5rem; }
.subpage-heading h1 { max-width: 28ch; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 700; line-height: 1.25; color: var(--color-primary); letter-spacing: -.02em; text-wrap: balance; overflow-wrap: anywhere; }
.subpage-lead { font-size: clamp(1rem, 1.2vw, 1.1rem); line-height: 1.7; margin-top: .75rem; max-width: 62ch; color: var(--color-text-muted); }
.subpage-meta { font: 500 .8rem/1.7 var(--font-sans); color: var(--color-text-muted); margin-top: 1rem; }
.subpage-header-image { min-width: 0; overflow: hidden; border-radius: var(--radius-sm); }
.subpage-header-image img { width: 100%; height: 100%; object-fit: cover; }
.subpage-header-image--portrait { aspect-ratio: 1; max-height: 430px; border: 1px solid var(--color-border); }
.subpage-header-image--landscape { aspect-ratio: 4 / 3; }
.subpage-header-image--book { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; background: var(--color-white); border: 1px solid var(--color-border); padding: 2rem; }
.subpage-header-image--book img { width: auto; height: 100%; max-width: 100%; object-fit: contain; filter: drop-shadow(0 18px 16px rgba(var(--color-primary-rgb), .12)); }
.subpage-article { padding: 3.5rem 0 4.5rem; background: var(--color-bg-main); }
.subpage-reading-layout { display: block; }
.subpage-reading-layout > .entry-content.subpage-prose { width: 100%; max-width: none; margin-inline: 0; }
.entry-content.subpage-prose { min-width: 0; max-width: 100%; font-family: var(--font-serif); color: var(--color-text-main); font-size: clamp(1rem, .95rem + .2vw, 1.125rem); line-height: 1.7; text-align: left; overflow-wrap: anywhere; display: flow-root; }
.subpage-prose p { font-family: inherit; margin-bottom: 1.25em; }
.subpage-prose h2, .subpage-prose h3, .subpage-prose h4 { font-family: var(--font-serif); color: var(--color-primary); line-height: 1.4; text-wrap: balance; margin: 2.5rem 0 1rem; }
.subpage-prose h2 { font-size: 1.8rem; }
.subpage-prose h3 { font-size: 1.4rem; }
.subpage-prose h4 { font-size: 1.15rem; }
.subpage-prose > :first-child { margin-top: 0; }
.subpage-prose > :last-child { margin-bottom: 0; }
.subpage-prose strong { font-weight: 700; }
.subpage-prose .subpage-author-signature { display: block; width: clamp(170px, 24vw, 230px); height: auto; margin: 2.25rem 0 0 -.35rem; filter: brightness(0); }
.subpage-prose ul, .subpage-prose ol { padding-left: 1.5rem; margin: 1.5rem 0; }
.subpage-prose li { padding-left: .35rem; margin-bottom: .65rem; }
.subpage-prose blockquote { border-left: 2px solid var(--color-primary); background: var(--color-bg-alt); padding: 1.5rem 2rem; color: var(--color-primary); font-size: 1.15rem; margin: 2.25rem 0; }
.subpage-prose blockquote p:last-child { margin-bottom: 0; }
.subpage-prose a:not(.btn) { color: var(--color-primary); text-decoration: underline; text-underline-offset: 4px; }
.subpage-prose a:not(.btn):hover { color: var(--color-text-main); }
.subpage-prose .btn { text-decoration: none; line-height: 1.3; }
.subpage-prose .btn-primary { color: var(--color-white); }
.subpage-prose img, .subpage-prose video { max-width: 100%; height: auto; }
.subpage-prose iframe { max-width: 100%; }
.subpage-prose .wp-caption { max-width: 100%; }
.subpage-prose .wp-caption-text, .subpage-prose figcaption { font: 500 .8rem/1.7 var(--font-sans); color: var(--color-text-muted); }
.subpage-prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 2rem 0; font-size: .9rem; }
.subpage-prose th, .subpage-prose td { border: 1px solid var(--color-border); padding: .8rem 1rem; text-align: left; vertical-align: top; }
.subpage-prose pre { max-width: 100%; overflow: auto; padding: 1.25rem; background: var(--color-bg-alt); font-size: .85rem; }
.subpage-actions { display: flex; flex-wrap: wrap; gap: 1rem; border-top: 1px solid var(--color-border); margin-top: 2.5rem; padding-top: 2rem; }
.subpage-actions .btn { min-height: 52px; }
.subpage-signup { background: var(--color-bg-alt); border: 1px solid var(--color-border); padding: 2rem; margin-top: 2rem; }
.subpage-tags { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; font: 500 .8rem/1.6 var(--font-sans); }
.subpage-related { padding-bottom: 4rem; }
.subpage-related .section-heading { font-size: clamp(1.4rem, 2vw, 1.8rem); margin-bottom: 1.25rem; }
.subpage-related .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 640px; gap: 1.25rem; margin-bottom: 0; }
.subpage-related .blog-card-image-wrapper, .blog-page .blog-card-image-wrapper { height: auto; aspect-ratio: 4 / 5; background: var(--color-border); }
.subpage-related .blog-card-image, .blog-page .blog-card-image { display: block; object-fit: cover; object-position: center; }
.subpage-related .blog-card:hover .blog-card-image, .blog-page .blog-card:hover .blog-card-image { transform: none; }
.subpage-related .blog-card-content { padding: 1rem 1.1rem; }
.subpage-related .blog-card-date-top { font-size: .68rem; margin-bottom: .35rem; }
.subpage-related .blog-card-title { font-size: 1.05rem; margin-bottom: .6rem; }
.subpage-related .blog-card-excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-size: .85rem; line-height: 1.65; margin-bottom: .9rem; }
.subpage-related .blog-card-btn { min-height: 44px; padding: .65rem .8rem; font-size: .68rem; letter-spacing: .03em; }
.subpage-contact { padding: 4.5rem 0; border-top: 1px solid var(--color-border); background: var(--color-bg-alt); overflow-wrap: anywhere; }
.subpage-contact .contact-container { align-items: start; }
.subpage-contact .contact-container > *, .subpage-contact .contact-detail-content { min-width: 0; }
.subpage-contact .contact-detail-value { overflow-wrap: anywhere; }
.site-subpage-main ~ .site-footer .footer-link { overflow-wrap: anywhere; }
.subpage-contact .contact-info { padding-top: 0; }
.subpage-contact .contact-title { font-size: var(--fs-h2); }
.subpage-contact .contact-description { max-width: 50ch; }
.subpage-contact textarea { height: 180px; min-height: 160px; resize: vertical; }
.site-subpage-main .blog-page > .container, .site-subpage-main .archive-page > .container { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.site-subpage-main .archive-page__header, .site-subpage-main .search-page__header { padding-top: 3rem; }
@media (max-width: 1024px) {
    .subpage-header-grid, .subpage-header--with-image .subpage-header-grid { gap: 2.5rem; }
}
@media (max-width: 767px) {
    .subpage-header { padding: 1.25rem 0 1.5rem; }
    .subpage-breadcrumbs { margin-bottom: .85rem; }
    .subpage-header--with-image .subpage-header-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .subpage-header-image--portrait { aspect-ratio: 4 / 3; max-height: 360px; }
    .subpage-header-image--book { max-height: 330px; aspect-ratio: 4 / 3; }
    .subpage-article { padding: 2rem 0 3rem; }
    .subpage-prose h2 { font-size: 1.5rem; }
    .subpage-prose h3 { font-size: 1.25rem; }
    .subpage-prose blockquote { padding: 1.25rem; font-size: 1.05rem; }
    .subpage-prose img.alignleft, .subpage-prose img.alignright, .subpage-prose .wp-caption.alignleft, .subpage-prose .wp-caption.alignright { float: none; display: block; max-width: 100%; margin: 1.5rem auto; }
    .subpage-signup { padding: 1.5rem; }
    .subpage-related .blog-grid { grid-template-columns: minmax(0, 1fr); max-width: 320px; }
    .subpage-related .blog-card-image-wrapper, .blog-page .blog-card-image-wrapper { aspect-ratio: 1; }
    .subpage-contact { padding: 3.5rem 0; }
    .subpage-contact .contact-container { grid-template-columns: minmax(0, 1fr); }
    .subpage-contact .btn, .subpage-actions .btn { white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 480px) {
    .subpage-actions .btn { width: 100%; }
}
