/* Shared readable type scale. Loaded last on every preview page. */
:root {
  --read-body: 1.125rem;
  --read-ui: 1rem;
  --read-small: .875rem;
}
body { font-size:var(--read-body); line-height:1.7; }
button, input, textarea, select { font:inherit; }
p { overflow-wrap:break-word; }
/* Navigation keeps its original appearance, with room to wrap instead of shrink. */
.nav, .links, .top, .bar, .nl-header { flex-wrap:wrap; }
.nav { row-gap:12px; }
.links { gap:8px clamp(16px,2.5vw,36px); }
.links a { display:inline-flex; align-items:center; min-height:44px; font-size:var(--read-ui); line-height:1.5; letter-spacing:.08em; }
.top a:last-child, .bar .muted, .nl-home { font-size:var(--read-ui); line-height:1.5; }
.top a, .bar a, .nl-header a { padding-block:8px; }
.top .brand, .bar .brand, .nl-brand { font-size:1.125rem; line-height:1.5; }
.brand, .nl-brand { max-width:100%; white-space:normal; overflow-wrap:break-word; }
/* Labels remain subordinate, but never become tiny on a phone. */
.eyebrow, .hero .eyebrow, .nl-kicker,
#newsletter .outpost-newsletter-eyebrow, .contact-label, .pill {
  font-size:var(--read-small); line-height:1.6; letter-spacing:.13em;
}
.hero p, .hero .lede, .hero > .hero-inner > p,
.series-desc, .author-copy p, .contact-copy p, .contact-lead,
.book p, .featured p, .nl-description, #newsletter p, .about p {
  font-size:var(--read-body); line-height:1.75;
}
.hero p { max-width:36rem; }
.series-desc { max-width:36rem; letter-spacing:normal; }
.nl-lead { font-size:1.25rem; line-height:1.65; }
/* Give book titles full lines and align covers at the top of the rail. */
.covers { align-items:flex-start; gap:clamp(14px,1.4vw,20px); }
.covers .cover { flex-basis:clamp(8.5rem,11vw,10rem); }
.cover-label { font-size:var(--read-ui); line-height:1.5; min-height:4.5em; overflow-wrap:break-word; }
.cover-label small { font-size:var(--read-small); line-height:1.5; margin-top:4px; color:#b6c1c8; }
/* Clear controls and supporting information across all page templates. */
.cta, .primary, .series-link, .edition, .kindle-link, .paperback-link,
.nl-button, .nl-next, .nl-form button, .contact-submit,
#newsletter .outpost-newsletter-button {
  font-size:var(--read-ui); line-height:1.5; min-height:44px;
  max-width:100%; white-space:normal; overflow-wrap:break-word;
}
.cta, .series-link, .nl-button, .nl-form button, .contact-submit { letter-spacing:.07em; }
.market, .storefront, .nl-form label, .field label { font-size:var(--read-ui); line-height:1.6; }
.market { flex-wrap:wrap; }
.market select, .storefront select { font-size:var(--read-ui); max-width:100%; min-height:44px; }
.storefront select { margin:8px 0 0; }
.market-note, .storefront p, .narrator, .nl-note,
.preview-note, .contact-copy .newsletter-aside, .social-links small,
.footer, .foot, .nl-footer, .newsletter .notice {
  font-size:var(--read-small); line-height:1.65;
}
.nl-form input[type=email], .field input, .field textarea { font-size:var(--read-ui); }
.foot button { font:inherit; min-height:44px; }
#privacy-consent { font-size:var(--read-ui); line-height:1.6; max-width:36rem; right:16px; left:16px; max-height:calc(100dvh - 32px); overflow:auto; }
#privacy-consent button { font:inherit; min-height:44px; margin-block:5px; max-width:100%; white-space:normal; }
.book > *, .featured > *, .section-head > *, .nl-card { min-width:0; }
.book h3, .featured h2, .hero h1, .nl-card h1 { overflow-wrap:break-word; }
:where(a, button, input, select, textarea):focus-visible { outline:3px solid #edbe81; outline-offset:4px; }
@media(max-width:760px) {
  .book { grid-template-columns:minmax(0,1fr); gap:24px; }
  .book img, .real-cover { width:min(100%,250px); max-width:100%; }
  .nav { align-items:flex-start; flex-direction:column; }
  .links { width:100%; }
}
@media(max-width:480px) {
  .top, .bar, .nl-header { align-items:flex-start; flex-direction:column; gap:4px; }
  .links { gap:4px 18px; }
  .nl-form { padding:18px; }
}
@media(prefers-reduced-motion:reduce) {
  html, :root { scroll-behavior:auto; }
  .cover, #newsletter .outpost-newsletter-button { transition:none; }
}
/* Maintain readable white text on the existing red/green control palettes. */
#main .cta:hover, .author-copy .cta:hover { background:#ad302b; }
.primary:hover, .kindle-link:hover, .kindle-link:focus-visible { background:#2f6f52; }
.book .narrator { font-size:var(--read-small); line-height:1.65; }
/* Keep long newsletter headings, including their punctuation, on readable lines. */
@media(max-width:480px) {
  .nl-card h1 { font-size:clamp(2rem,10vw,3rem); }
}
