/*
Theme Name: The Newton Lab
Template: twentytwentyfive
Description: Child theme of Twenty Twenty-Five for blog.thenewtonlab.com.
Version: 1.2.0
Requires at least: 6.7
Text Domain: newtonlab
*/

/* Components used by the templates and patterns. Colors and type come from theme.json. */
.nl-header { border-bottom: 1px solid var(--wp--preset--color--accent-6); padding-block: var(--wp--preset--spacing--30); }
.nl-header .wp-block-site-title { font-size: 1.125rem; font-weight: 700; margin: 0; }
.nl-header .wp-block-site-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.nl-hero, .nl-sky { margin: 0; }
.wp-block-image.nl-hero img { display: block; width: 100%; height: 320px; object-fit: cover; object-position: center 65%; }
.wp-block-image.nl-sky img { display: block; width: 100%; height: 10vh; min-height: 64px; object-fit: cover; object-position: center 40%; }
.nl-main { padding-block: var(--wp--preset--spacing--60); }
.nl-intro { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
.nl-intro-title { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.15; }
.nl-intro-lede { color: var(--wp--preset--color--accent-4); font-size: 1.125rem; max-width: 40rem; }
.nl-eyebrow { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--wp--preset--color--accent-4); font-weight: 600; margin-bottom: 0.75rem; }
.nl-section { margin-top: var(--wp--preset--spacing--50); }
.nl-topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.nl-topic { display: block; border: 1px solid var(--wp--preset--color--accent-6); border-radius: 8px; padding: 1rem 1.125rem; color: var(--wp--preset--color--contrast); text-decoration: none; transition: border-color 0.15s; }
.nl-topic:hover, .nl-topic:focus-visible { border-color: var(--wp--preset--color--accent-1); }
.nl-topic strong { display: block; }
.nl-topic span { color: var(--wp--preset--color--accent-4); font-size: 0.875rem; }
.nl-post-list .wp-block-post-template { list-style: none; padding: 0; margin: 0; }
.nl-post-row { border-top: 1px solid var(--wp--preset--color--accent-5); padding-block: 0.75rem; gap: 0.25rem 1.5rem; }
.nl-post-row .wp-block-post-title { font-size: 1rem; font-weight: 600; margin: 0; flex: 1 1 20rem; }
.nl-post-row .wp-block-post-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.nl-post-row .wp-block-post-title a:hover { color: var(--wp--preset--color--accent-1); }
.nl-meta { color: var(--wp--preset--color--accent-4); font-size: 0.875rem; gap: 0.25rem 1rem; }
.nl-meta a { color: inherit; }
.nl-more { margin-top: 1rem; }
.nl-author { margin-top: var(--wp--preset--spacing--60); padding: 1.25rem 1.5rem; font-size: 1rem; background: var(--wp--preset--color--accent-2); border-radius: 8px; }
.nl-post-nav { margin-top: var(--wp--preset--spacing--50); gap: 1rem; }
.nl-footer { border-top: 1px solid var(--wp--preset--color--accent-6); padding-block: var(--wp--preset--spacing--40); color: var(--wp--preset--color--accent-4); font-size: 0.875rem; }

/* Older posts use raw <pre>, wide images and tables: scroll inside the block, never widen the page. */
.wp-block-post-content pre { overflow-x: auto; white-space: pre; overflow-wrap: normal; }
.wp-block-post-content pre code { white-space: inherit; }
.wp-block-post-content img { max-width: 100%; height: auto; }
.wp-block-post-content table { display: block; max-width: 100%; overflow-x: auto; }
.wp-block-post-content :is(p, li, h2, h3, h4) { overflow-wrap: anywhere; }

@media (max-width: 600px) {
	.nl-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-block-image.nl-hero img { height: 180px; }
}
