/*
Theme Name: Linmer Bench
Theme URI: https://linmerperolino.com
Author: Linmer Perolino
Description: "The Lab Report" — a personal site for a Medical Laboratory Scientist and author. Full-screen hero whose real video is scrubbed by scroll, a journey seen through a microscope lens with a career timeline, a specimen-register journal, the book as a manuscript, and a signed sign-off. All homepage text and images are editable under Appearance → Customize → Homepage.
Version: 3.0.0
Requires at least: 6.3
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: linmer-bench
*/

/* Homepage and shared styles: assets/css/site.css. This file covers the inner pages. */

/* Dark title band under the fixed header */
.page-band { position: relative; overflow: hidden; background: var(--night); color: var(--white); padding: calc(clamp(84px, 8vw, 108px) + clamp(16px, 2vw, 28px)) 0 clamp(40px, 4.4vw, 68px); }
.page-band .section-title { font-family: var(--display); font-weight: 400; text-transform: uppercase; font-size: clamp(56px, 8vw, 128px); line-height: .94; }
.page-band .section-title em { font-family: var(--serif); font-style: italic; text-transform: none; color: var(--lime); }
.page-band .section-sub { margin-top: 14px; color: #cfd3d7; font-size: clamp(16px, 1.3vw, 19px); max-width: 34em; }
.page-band .single-title { font-size: clamp(42px, 5.4vw, 88px); max-width: 20ch; line-height: 1.02; }
.single-meta { margin-top: 18px; color: #b8bdc3; font-family: var(--mono); font-size: 13px; display: flex; gap: 8px; flex-wrap: wrap; }
.single-meta a { border-bottom: 1px solid rgba(255,255,255,.35); }
.single-meta a:hover { color: var(--lime); }
.page-band :focus-visible { outline-color: var(--lime); }

.single-figure { margin: 0 auto; margin-top: calc(clamp(28px, 4vw, 52px) * -1); position: relative; }
.single-figure img { width: 100%; max-height: 640px; object-fit: cover; border-radius: 4px; }
.page-band:has(+ .single-figure) { padding-bottom: clamp(70px, 8vw, 110px); }
.single-body { padding: clamp(36px, 4vw, 56px) 0 clamp(72px, 8vw, 120px); background: var(--cream); }

/* Readable article text */
.prose { max-width: 720px; margin: 0 auto; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.75; color: var(--ink-soft); }
.prose > * + * { margin-top: 1.2em; }
.prose h2, .prose h3, .prose h4 { color: var(--ink); line-height: 1.2; margin-top: 1.8em; }
.prose h2 { font-family: var(--display); font-weight: 400; text-transform: uppercase; font-size: clamp(30px, 3vw, 42px); line-height: 1; }
.prose h3 { font-size: 24px; font-weight: 600; }
.prose a { color: var(--ink); text-decoration: underline; text-decoration-color: #9ba7ae; text-underline-offset: 3px; }
.prose a:hover { text-decoration-color: var(--ink); }
.prose a.pill { text-decoration: none; }
.prose img { height: auto; }
.prose figure { margin-left: 0; margin-right: 0; }
.prose figcaption, .wp-caption-text { font-size: 14px; color: var(--muted); margin-top: 8px; }
.prose blockquote { margin-left: 0; padding: 4px 0 4px 24px; border-left: 4px solid var(--lime); font-family: var(--serif); font-size: 1.25em; line-height: 1.4; color: var(--ink); }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose hr { border: 0; border-top: 1px solid var(--rule); margin: 2.4em 0; }
.prose pre { background: var(--night); color: #e9ebee; padding: 18px; overflow-x: auto; border-radius: 8px; font-size: 15px; }
.prose .alignwide { max-width: 1040px; margin-left: 50%; transform: translateX(-50%); width: min(1040px, calc(100vw - 2 * var(--gutter))); }
.prose .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.alignleft { float: left; margin: .3em 1.4em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.4em; }
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-block-button__link { background: var(--lime); color: var(--ink) !important; border-radius: 999px; text-decoration: none !important; font-weight: 600; }

.post-nav { max-width: 720px; margin: 56px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; border-top: 1.5px solid var(--ink); padding-top: 24px; }
.post-nav a { display: block; font-family: var(--serif); font-size: 24px; line-height: 1.15; }
.post-nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.post-nav small { display: block; font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.post-nav .next { text-align: right; grid-column: 2; }

/* Journal archive (register) */
.archive-register { border-top: 0; padding-top: clamp(40px, 5vw, 72px); }
.archive-register .ledger { margin-top: 0; }
.pagination-wrap { margin-top: 40px; }
.pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid rgba(14,15,17,.3); font-family: var(--mono); font-size: 13px; }
.pagination .page-numbers.current { background: var(--ink); color: var(--lime); border-color: var(--ink); }
.pagination a.page-numbers:hover { background: var(--lime); border-color: var(--lime); }

/* Search form */
.search-form { display: flex; gap: 10px; max-width: 520px; }
.search-form input[type="search"] { flex: 1; min-width: 0; padding: 13px 18px; border-radius: 999px; border: 1px solid #b9bdbb; background: var(--white); font: inherit; font-size: 16px; }
.search-form button { border: 0; cursor: pointer; font-family: var(--body); }

/* Comments */
.comments { margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--rule); }
.comment-list { list-style: none; padding: 0; }
.comment-list .comment { margin-top: 24px; }
.comment-list .children { list-style: none; padding-left: 28px; }
.comment-meta { font-size: 14px; color: var(--muted); }
.comment-author .avatar { border-radius: 50%; float: left; margin-right: 12px; }
.comment-form input:not([type="submit"]):not([type="checkbox"]), .comment-form textarea { width: 100%; padding: 12px 14px; border: 1px solid #b9bdbb; border-radius: 8px; font: inherit; background: var(--white); }
.comment-form .submit { background: var(--lime); border: 0; border-radius: 999px; padding: 14px 24px; font: 600 15px var(--body); cursor: pointer; }

/* Custom logo + footer menu */
.brand img, .custom-logo { width: clamp(124px, 11.5vw, 172px); height: auto; }
.signoff-sign img { width: clamp(180px, 16vw, 240px); height: auto; }
.lined-sign img { width: 180px; height: auto; filter: invert(1); }
.signoff-data dd li { display: inline; list-style: none; }
.signoff-data dd li + li::before { content: " · "; }

@media (max-width: 820px) {
	.post-nav { grid-template-columns: 1fr; }
	.post-nav .next { grid-column: 1; text-align: left; }
	.brand img, .custom-logo { width: 112px; }
}
