/* Interior pages only. The approved homepage stylesheet is unchanged. */
.public-interior { overflow-wrap: anywhere; }
.public-interior figure { margin: 0; }
.public-interior h1 { font-size: clamp(2.7rem, 6vw, 5.5rem); }
.page-banner { position: relative; isolation: isolate; padding: clamp(3rem, 7vw, 6rem) 0; }
.page-banner > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; }
.page-banner::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(247,247,244,.96),rgba(247,247,244,.78) 60%,rgba(247,247,244,.1)); }
.page-banner h1 { max-width: 58rem; }
.page-lede { max-width: 45rem; font: 400 clamp(1.45rem,3vw,2.3rem)/1.15 var(--display); }
.book-feature, .overview-grid, .contact-grid, .biography, .coming-next { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: clamp(2rem,5vw,5rem); align-items: start; }
.book-feature > img, .book-feature figure img { width: 100%; aspect-ratio: 1.1; object-fit: cover; }
.book-feature h2 { font-size: clamp(1.7rem,3vw,2.7rem); }
.breadcrumbs { padding-top: 1.5rem; font-size: .8rem; }
.book-details { margin: 0; }
.book-details > div { display: grid; grid-template-columns: 1fr 1.4fr; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.book-details dd { margin: 0; }
.coming-next { border-top: 1px solid var(--line); align-items: center; }
.coming-next img { width: 100%; aspect-ratio: 2; object-fit: cover; }
.biography { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); }
.biography > img { width: 100%; height: 100%; max-height: 60rem; object-fit: cover; }
.format-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; margin-top: 2rem; }
.format-grid img { width: 100%; aspect-ratio: 1.8; object-fit: cover; margin-bottom: 1.5rem; }
.public-interior .newsletter-grid { grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); }
.public-interior .newsletter-form-wrap { border-right: 0; padding-right: 0; }
.contact-grid aside { padding-left: 2rem; border-left: 1px solid var(--line); }
.contact-grid aside img { display: block; width: 100%; height: 100%; margin-top: 2rem; object-fit: cover; object-position: center; }
.contact-form { display: grid; gap: .5rem; margin: 2rem 0; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 0; padding: .85rem; color: var(--text); background: var(--white); font: inherit; }
.contact-form textarea { resize: vertical; }
.contact-form label { font-size: .8rem; letter-spacing: .08em; }
.contact-form .button { justify-self: start; cursor: pointer; }
.field-error { font-size: .8rem; margin: 0 0 .75rem; }
[aria-invalid=true] { outline: 2px solid var(--text); outline-offset: 2px; }
.honeypot { position: absolute; left: -10000px; }
.legal-copy { max-width: 54rem; }
.legal-copy h2 { font-size: 2.2rem; margin-top: 2.5rem; }
.filter-bar { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0; }
.filter-bar a { padding: .75rem 1.5rem; border: 1px solid var(--line); text-decoration: none; min-height: 44px; }
.filter-bar [aria-current=true] { background: var(--olive-action); color: var(--white); }
.archive-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.archive-card { border: 1px solid var(--line); min-width: 0; }
.archive-card > img { width: 100%; aspect-ratio: 1.8; object-fit: cover; }
.archive-card > div { padding: 1.25rem; }
.archive-card h3 { font-size: 2rem; }
.archive-card [datetime], .article-meta { font-size: .85rem; color: var(--slate-text); }
/* Article layouts and source apparatus */
.article-heading { max-width: 65rem; padding-block: 3rem; }
.article-hero { width: 100%; max-height: 32rem; object-fit: cover; }
.article-layout { display: grid; grid-template-columns: minmax(10rem,.65fr) minmax(0,2.4fr) minmax(12rem,.85fr); gap: 2.5rem; padding-block: 3rem; }
.article-body { line-height: 1.85; }
.article-body h2 { font-size: 2.5rem; margin: 2rem 0 1rem; }
.article-body h3 { font-size: 1.9rem; margin: 1.5rem 0 .75rem; }
.article-body blockquote { margin: 1.5rem 0; padding: 1rem 1.5rem; border-left: 3px solid var(--olive); background: #eceee8; font-family: var(--display); font-size: 1.4rem; }
.article-body img { width: 100%; height: auto; }
.article-body figcaption, figcaption { font-size: .8rem; color: var(--slate-text); margin-top: .5rem; }
.article-body .scripture cite { display: block; font: .85rem var(--sans); }
.article-body .footnotes { border-top: 1px solid var(--line); font-size: .9rem; padding-top: 1rem; }
.article-body sup a { display: inline-block; padding: 0 .2rem; }
.article-toc a { display: block; padding: .6rem 0; font-size: .9rem; }
.article-sidebar { border-left: 1px solid var(--line); padding-left: 1.5rem; }
.article-sidebar h2 { font-size: 1.6rem; }
.article-reflection .article-layout { grid-template-columns: minmax(0,2.5fr) minmax(12rem,1fr); max-width: 70rem; }
.article-reflection .article-toc { display: none; }
.article-reflection .article-body { font-size: 1.05rem; }
.article-reflection .article-heading { max-width: 70rem; }
.article-neighbors { display: flex; justify-content: space-between; gap: 2rem; border-block: 1px solid var(--line); padding: 2rem 0; }
.sample-notice { padding: .75rem 1rem; border: 1px solid var(--line); font-size: .85rem; }
.public-interior [hidden] { display: none !important; }
@media(max-width: 64rem) {
 .article-layout { grid-template-columns: minmax(0,1fr) minmax(12rem,.4fr); }
 .article-toc { grid-column: 1 / -1; }
 .archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width: 45rem) {
 .book-feature, .overview-grid, .contact-grid, .biography, .coming-next, .format-grid, .article-layout, .article-reflection .article-layout, .public-interior .newsletter-grid { grid-template-columns: minmax(0,1fr); }
 .biography > img { max-height: 24rem; }
 .contact-grid aside, .article-sidebar { border-left: 0; padding-left: 0; }
 .public-interior .newsletter-form-wrap { padding: 1.5rem 0 0; border-left: 0; }
 .article-neighbors { flex-direction: column; }
}
@media(max-width: 28rem) { .archive-grid { grid-template-columns: minmax(0,1fr); } }
