/* Base element styles, WordPress core classes, local overrides of the design system. */

html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); }
body.tom { min-height: 100vh; }
img, video, iframe { max-width: 100%; }
img { height: auto; }
a { color: var(--accent-strong); }
a:hover { color: var(--ink); }
h1, h2, h3, h4 { font-family: var(--font-display); color: var(--ink); text-wrap: balance; }
hr { border: 0; border-top: 1px solid var(--hairline); }

.tom-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--surface); color: var(--ink); padding: 8px 12px; border-radius: 6px; }
.tom-skip:focus { left: 8px; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* Post content inside .tom-prose */
.tom-prose h2 { font: 800 26px/28px var(--font-display); margin-top: 8px; }
.tom-prose h3 { font: 700 21px/24px var(--font-display); margin-top: 4px; }
.tom-prose ul, .tom-prose ol { padding-left: 24px; }
.tom-prose blockquote { margin: 0; padding: 4px 0 4px 16px; border-left: 3px solid var(--accent); color: var(--ink); }
.tom-prose figure { margin: 0; }
.tom-prose figcaption, .tom-prose .wp-element-caption { font: 500 13px/18px var(--font-sans); color: var(--ink-muted); margin-top: 6px; }
.tom-prose table { width: 100%; border-collapse: collapse; font: 500 15px/20px var(--font-sans); background: var(--surface); }
.tom-prose th, .tom-prose td { padding: 8px 10px; border-top: 1px solid var(--hairline); text-align: left; }
.tom-prose .wp-block-table, .tom-prose .tom-static-table { overflow-x: auto; margin: 0 0 1.25em; }
.tom-prose iframe { border: 0; }
.tom-prose .wp-block-embed__wrapper, .tom-prose .wp-block-embed { width: 100%; }
.tom-prose--page { font-size: 17px; line-height: 27px; }
.alignleft { float: left; margin: 0 16px 8px 0; }
.alignright { float: right; margin: 0 0 8px 16px; }
.aligncenter { margin-left: auto; margin-right: auto; display: block; }

.tom-prose .tom-district-table__qualifier td { background: var(--accent-soft); }   /* projected top 4 (old [district_table]) */

/* OVERRIDE (QA round 3 item 13, replaces LC2 item 13): the last 3-4 lines of the gated teaser fade into the
   paywall card, across paragraph breaks; at most 60% of the teaser, so its first lines stay readable. */
.tom-prose--gated { position: relative; }
.tom-prose--gated::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: min(60%, 120px); height: min(60%, 4.2lh); background: linear-gradient(to bottom, color-mix(in srgb, var(--paper) 0%, transparent), color-mix(in srgb, var(--paper) 55%, transparent) 40%, var(--paper) 92%); pointer-events: none; }
