/* ==========================================================================
   Granite State Report - Additional CSS  (v7, 2026-09-17 22:45 ET; sections 1-16 = v6 unchanged)
   v4 - 2026-09-17 11:15 ET. Supersedes v1 (live 2026-08-20) and the unpasted v3.
   Rollback: paste ROLLBACK_custom-css_as-live_2026-09-17_1112ET.css.

   1. box-sizing for the article shell (v1)
   2. centering that survives the theme (v1)
   3. fact-check table: fixed layout; the narrow # and Status columns apply
      ONLY to four-column tables. v1 forced a 38px first column on every
      table with the class, which crushed the two-column table on the
      Record Room. Long tokens now wrap instead of overflowing.
   4. long strings never blow out the column (v1)
   5. phone rules (v1)
   6. footer legal row wraps on phones (v3, F2)
   7. document never scrolls sideways (v3)
   8. hide the theme's empty subscribe block under articles (F9)
   ========================================================================== */

/* --- 1. honest box model ------------------------------------------------ */
.gsr-article,
.gsr-article * { box-sizing: border-box !important; }

/* --- 2. centering that survives the theme ------------------------------- */
.gsr-article.gsr-article.gsr-article {
  width: 100% !important;
  max-width: 780px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
  position: static !important;
}

/* --- 3. fact-check table stays inside the column ------------------------ */
.gsr-article .gsr-factcheck {
  width: 100% !important;
  table-layout: fixed !important;
}
.gsr-article .gsr-factcheck th,
.gsr-article .gsr-factcheck td {
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  hyphens: none !important;
}
/* four-column fact-check tables only: narrow # and Status columns */
.gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))) tr > *:nth-child(1) { width: 38px !important; }
.gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))) tr > *:nth-child(3) { width: 98px !important; overflow-wrap: normal !important; }

/* --- 4. long strings never blow out the column -------------------------- */
.gsr-article p,
.gsr-article li,
.gsr-article .gsr-sources,
.gsr-article .gsr-contact { overflow-wrap: break-word !important; }
.gsr-article img,
.gsr-article svg { max-width: 100% !important; height: auto !important; }

/* --- 5. phones ---------------------------------------------------------- */
@media (max-width: 640px) {
  .gsr-article.gsr-article.gsr-article {
    padding: 26px 18px 34px !important;
    box-shadow: none !important;
  }
  .gsr-article .gsr-title { font-size: 30px !important; line-height: 35px !important; }
  .gsr-article .gsr-dek { font-size: 19px !important; line-height: 27px !important; }
  .gsr-article h2 { font-size: 23px !important; line-height: 28px !important; }
  .gsr-article .gsr-masthead { font-size: 24px !important; line-height: 27px !important; }
  .gsr-article .gsr-factcheck { font-size: 12px !important; line-height: 17px !important; }
  .gsr-article .gsr-factcheck th,
  .gsr-article .gsr-factcheck td { padding: 7px 6px !important; }
  .gsr-article .gsr-statute-box { padding: 14px 16px !important; }
  .gsr-article .gsr-contact { padding: 18px 18px !important; }
  .gsr-article .gsr-engage { padding: 16px 18px !important; }
  .gsr-article .gsr-pullquote {
    padding: 16px 18px !important;
    font-size: 20px !important;
    line-height: 29px !important;
  }
}

/* --- 6. footer legal row: wrap on phones (F2) ---------------------------- */
.gsr-footer-nav {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: baseline !important;
  row-gap: 4px !important;
  column-gap: 0 !important;
  max-width: 100% !important;
}
.gsr-footer-nav a,
.gsr-footer-nav .sep { white-space: nowrap !important; }

/* --- 7. belt and braces: the document itself never scrolls sideways ------ */
html { overflow-x: clip !important; }
@supports not (overflow: clip) { html { overflow-x: hidden !important; } }

/* --- 8. the theme's subscribe block under articles is empty (F9) --------- */
.davenport-subscribe-block-container { display: none !important; }

/* --- 9. wide content tables scroll instead of clipping on phones (v5) ---
   Older article templates use auto-layout tables that ran past the phone
   viewport; html{overflow-x:clip} then hid the right-hand columns entirely.
   The two fixed-layout GSR tables are excluded so they keep wrapping. */
@media (max-width: 640px) {
  .entry-content table:not(.gsr-factcheck):not(.rr-held) {
    display: block !important;
    width: max-content !important;
    max-width: 100% !important;
    overflow-x: auto !important;
  }
  .entry-content table:not(.gsr-factcheck):not(.rr-held) caption { white-space: normal !important; }
}

/* --- 10. long URLs and unbroken strings never widen the page (v5) ------- */
.entry-content { overflow-wrap: break-word !important; }

/* --- 11. box-sizing must outrank a post that resets it (v5.1) ---------
   Post 3544's article CSS uses `all: initial !important`, which beat the
   single-class box-sizing rule above and pushed the page 21px wide. */
.gsr-article.gsr-article.gsr-article,
.gsr-article.gsr-article.gsr-article * { box-sizing: border-box !important; }

/* ==========================================================================
   v6 - 2026-09-17 21:45 ET. Sections 1-11 above are the v5.1 sheet, unchanged.
   Sections 12-16 restore the morning v4 rules that the v4(11:15)->v5->v5.1
   lineage never carried. Rollback: ROLLBACK_custom-css_as-live_2026-09-17_2130ET.css
   ========================================================================== */

/* --- 12. status colors: VERIFIED green, ATTRIBUTED rust ------------------
   .gsr-pass/.gsr-attr sit on the td, and the ".gsr-factcheck td" color rule
   in every article's own shell (v1/v2) outranks them: status cells have
   rendered black since August. */
.gsr-article .gsr-factcheck td.gsr-pass { color: #2c5530 !important; font-weight: 700 !important; }
.gsr-article .gsr-factcheck td.gsr-attr { color: #b14a37 !important; font-weight: 700 !important; }

/* --- 13. embedded media never wider than the card ------------------------ */
.gsr-article video,
.gsr-article iframe,
.gsr-article audio { max-width: 100% !important; }
.gsr-article audio,
.gsr-article .gsr-audio-player { display: block !important; width: 100% !important; }

/* --- 14. corrections register (5 columns) scrolls sideways in its wrapper - */
.gsr-article .gsr-tablewrap { width: 100% !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; }
.gsr-article .gsr-tablewrap .gsr-register { margin: 0 !important; min-width: 640px !important; table-layout: auto !important; }

/* --- 15. footer wordmark and separators on phones ------------------------ */
.gsr-footer .gsr-footer-logo { max-width: min(330px, 100%) !important; height: auto !important; }
.gsr-footer { overflow: hidden !important; }
@media (max-width: 760px) {
  .gsr-footer .gsr-footer-nav { column-gap: 16px !important; row-gap: 0 !important; }
  .gsr-footer .gsr-footer-nav .sep { display: none !important; }
  .gsr-footer .gsr-footer-logo { max-width: 260px !important; }
}

/* --- 16. phones: four-column fact-check tables stack into cards -----------
   Same four-column guard as section 3; .rr-held (Record Room) and
   .gsr-register are excluded by name as well. The header row and the row
   number are hidden; the Source cell is labeled; template-v3 cells carry
   data-label and get their own labels. Browsers without :has() keep the
   wrapped table from section 3. */
@media (max-width: 640px) {
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register),
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tbody,
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tr,
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) td,
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tr > td:nth-child(n) {
    display: block !important; width: 100% !important; }
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) thead,
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) th,
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tr:has(th) { display: none !important; }
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tr {
    border: 1px solid #d9d2c6 !important; margin: 0 0 10px 0 !important; padding: 8px 12px !important; background: #ffffff !important; }
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) td {
    border: 0 !important; padding: 3px 0 !important; background: transparent !important; overflow-wrap: anywhere !important; }
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tr:nth-child(even) td { background: transparent !important; }
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tr > td:nth-child(1) { display: none !important; }
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tr > td:nth-child(4)::before {
    content: "Source: " !important; font-weight: 700 !important; color: #1a2e4a !important;
    text-transform: uppercase !important; font-size: 11px !important; letter-spacing: 0.06em !important; }
  .gsr-article .gsr-factcheck:has(tr > *:nth-child(4)):not(:has(tr > *:nth-child(5))):not(.rr-held):not(.gsr-register) tr > td[data-label]::before {
    content: attr(data-label) ": " !important; font-weight: 700 !important; color: #1a2e4a !important;
    text-transform: uppercase !important; font-size: 11px !important; letter-spacing: 0.06em !important; }
  .gsr-article .gsr-factcheck { font-size: 13px !important; line-height: 19px !important; }
}


/* --- 17. correction notes (v7, 2026-09-17 22:45 ET) ----------------------
   A dated correction note sits at the top of the article and never comes off.
   Until now no class existed for one, so a note rendered as ordinary body
   text. .gsr-correction is scoped twice: inside .gsr-article (beats the
   per-post shell's ".gsr-article strong" color rule on specificity, which
   matters because a post's own <style> block loads after this sheet) and
   bare, for older articles that predate the shell. */
.gsr-article .gsr-correction,
.gsr-correction {
  background: #f5e8dd !important;
  border: 1px solid #e3c9b5 !important;
  border-left: 6px solid #b14a37 !important;
  padding: 16px 22px !important;
  margin: 0 0 26px 0 !important;
  font-family: 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 15px !important;
  line-height: 24px !important;
  color: #23211e !important;
  box-sizing: border-box !important;
  overflow-wrap: anywhere !important; }
.gsr-article .gsr-correction strong,
.gsr-correction strong { color: #b14a37 !important; font-weight: 700 !important; }
.gsr-article .gsr-correction a,
.gsr-correction a { color: #8f3a2b !important; text-decoration: underline !important; }
@media (max-width: 640px) {
  .gsr-article .gsr-correction,
  .gsr-correction { padding: 14px 16px !important; font-size: 14px !important; line-height: 22px !important; }
}