/* ==========================================================================
   Granite State Report - Additional CSS
   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; }