/* Tested-fix guide: the Canada runtimes guide template (section nav, copy-exact blocks, feed panel).
   IRS FIRE shutdown guide: forked from the Docker 29 disk guide stylesheet (two-part H1, ledger tables, feed panel), with a
   "This week" note in the intro and the next step (the calendar's repository check) as a panel with the page's one button. */
article.tzg-guide { max-width: 72rem; margin-inline: auto; }
/* The H1 opens with what a searcher typed and the day it happens: "IRS FIRE shuts down on 19 November 2026:" at full size, the date
   in the alarm colour and held whole. What the page is about follows on its own line in the display face, a step down, held to a
   reading measure. Nothing is cut: both parts wrap at their spaces. */
article.tzg-guide h1 { max-width: none; font-size: clamp(1.75rem, 1rem + 2.6vw, 3.25rem); line-height: 1.06; }
article.tzg-guide h1 .irs-h1a { display: block; max-width: 22ch; text-wrap: balance; }
article.tzg-guide h1 .irs-h1date { color: var(--wp-rust); white-space: nowrap; }
article.tzg-guide h1 .irs-h1b { display: block; margin-top: var(--wp-3); max-width: 34ch; font-size: clamp(1.25rem, .9rem + 1.2vw, 1.8rem); line-height: 1.2; letter-spacing: -0.01em; text-wrap: balance; }
/* the intro keeps the reading measure */
article.tzg-guide .results-intro { max-width: none; }
article.tzg-guide .results-intro > [data-article-intro] > * { max-width: var(--cn-reading-max); }
/* the kicker date stays one unit on a phone */
.tzg-guide .results-intro .eyebrow time { white-space: nowrap; }
.tzg-guide .guide-byline { color: var(--wp-muted); margin: 0 0 var(--wp-8); }
.tzg-guide .guide-body { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--wp-16); margin-top: var(--wp-12); border-top: var(--wp-rule-strong) solid var(--wp-ink); }
.tzg-guide .guide-nav { padding-top: var(--wp-8); }
.tzg-guide .guide-nav ol { list-style: decimal-leading-zero; padding-left: var(--wp-6); margin: 0; }
.tzg-guide .guide-nav li { padding-left: var(--wp-2); margin-bottom: var(--wp-4); }
.tzg-guide .guide-nav li::marker { font-family: var(--wp-font-mono); color: var(--wp-muted); }
.tzg-guide .guide-nav a { display: inline-flex; align-items: center; min-height: var(--wp-tap); line-height: 1.5; }
.tzg-guide .guide-back { margin-top: var(--wp-4); }
.tzg-guide .guide-reading { min-width: 0; }
article.tzg-guide .results-section:first-child { border-top: 0; margin-top: 0; }
article.tzg-guide .results-section, article.tzg-guide .results-section h3[id] { scroll-margin-top: var(--wp-8); }
/* copy-paste blocks keep every line whole: long lines scroll inside the frame, so a wrap is never read as a new line */
/* .875rem at every width, as on the Camunda guide; the check's echo line (124 characters) scrolls inside its frame, so the block takes focus */
article.tzg-guide .check-block { font-size: .875rem; white-space: pre; overflow-x: auto; overscroll-behavior-x: contain; tab-size: 4; }
article.tzg-guide .check-block:focus-visible { outline: 3px solid var(--cn-color-amber); outline-offset: 3px; }
article.tzg-guide .check-block code { font-size: 1em; }
/* a path breaks only at a slash, never at the hyphen in static-debian13 */
.tzg-guide .tzg-nobreak { white-space: nowrap; }
/* Narrower than 20rem happens only with enlarged text (at 100% the page is at least 320px): there a name wider than the line wraps inside its own box instead of crossing the screen. */
@container page (max-width: 19.99rem) { .tzg-guide .tzg-nobreak { display: inline-block; max-width: 100%; overflow-wrap: anywhere; text-decoration: inherit; white-space: normal; } }
/* a checksum breaks between any two digits rather than push the page wide; a copy is still one string */
.tzg-guide .tzg-hash { word-break: break-all; }

/* the intro: the lede (the answer), then "This week:", what to do now, as a ruled note in the alarm colour */
article.tzg-guide .lede code { white-space: normal; }
article.tzg-guide .tzg-intro { max-width: 44em; font-size: var(--wp-text-body); line-height: 1.6; margin: 0 0 var(--wp-4); }
article.tzg-guide .irs-now { margin-top: var(--wp-6); font-size: clamp(1rem, .95rem + .25vw, 1.125rem); padding: var(--wp-1) 0 var(--wp-1) var(--wp-4); border-left: 4px solid var(--wp-rust); }
article.tzg-guide .irs-now strong { color: var(--wp-rust); }
/* one column up to 62.5rem, as on the runtimes guide: below it the nav column leaves the reading column too narrow for the receipts */
@container page (max-width: 62.5rem) {
  .tzg-guide .guide-body { grid-template-columns: minmax(0, 1fr); gap: var(--wp-8); }
  .tzg-guide .guide-nav { padding-top: var(--wp-6); border-bottom: var(--wp-rule) solid var(--wp-ink); padding-bottom: var(--wp-6); }
  .tzg-guide .guide-nav li { margin-bottom: var(--wp-2); }
  article.tzg-guide .results-section:first-child { padding-top: 0; }
}
/* closing panel: the feed for the next fix. It closes the article under the same strong rule as the body, and only the address is cobalt, because cobalt is the action */
.tzg-guide .fix-feed { grid-column: 2; margin: var(--wp-12) 0 var(--wp-12); padding-top: var(--wp-6); border-top: var(--wp-rule-strong) solid var(--wp-ink); }
.tzg-guide .fix-feed-label { margin: 0 0 var(--wp-3); color: var(--wp-muted); font: 500 var(--wp-text-cite)/1.2 var(--wp-font-mono); letter-spacing: .08em; text-transform: uppercase; }
.tzg-guide .fix-feed h2 { margin: 0 0 var(--wp-4); max-width: 16ch; font: 600 var(--wp-text-title)/1.02 var(--wp-font-display); letter-spacing: -0.02em; text-wrap: balance; }
.tzg-guide .fix-feed p { max-width: 50ch; }
.tzg-guide .fix-feed-url { margin: var(--wp-6) 0 var(--wp-2); }
/* the address is the action: a cobalt slip in the mono face, so it can be read, copied or followed */
.tzg-guide .fix-feed-url a { display: inline-flex; align-items: center; min-height: var(--wp-tap); padding: var(--wp-2) var(--wp-4); background: var(--wp-bio); color: var(--wp-on-bio); font: 500 1rem/1.3 var(--wp-font-mono); text-decoration: none; }
.tzg-guide .fix-feed-url a:hover { background: var(--wp-cobalt-deep); text-decoration: underline; text-underline-offset: 4px; }
.tzg-guide .fix-feed-more a { display: inline-flex; align-items: center; min-height: var(--wp-tap); padding-right: var(--wp-6); position: relative; color: var(--wp-ink); font-weight: 600; text-decoration-thickness: var(--wp-rule-strong); text-underline-offset: 5px; }
/* positioned, so the link underline stops before the arrow, as on .more */
.tzg-guide .fix-feed-more a::after { content: "→"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
@container page (max-width: 62.5rem) {
  .tzg-guide .fix-feed { grid-column: auto; margin-top: var(--wp-8); }
}
@container page (max-width: 30rem) {
  .tzg-guide .fix-feed-url a { font-size: .9375rem; padding-inline: var(--wp-3); }
}
/* lists: Sources (one line each) get a little air; "Do you need to do anything?" items are two or three sentences, so they get a
   paragraph's worth */
article.tzg-guide .results-section > ul > li + li { margin-top: var(--wp-2); }
article.tzg-guide #do-you-need > ul > li + li { margin-top: var(--wp-4); }

/* The two ledger tables: ledger lines, mono heads (as the HA and n8n guides). Two columns fit a 320 line, so a row stays a row at
   every width: the left column (a date, held whole) gets a fixed share, the right one wraps. The FIRE closing row carries the rust
   edge, the one row a reader scanning the table has to find. */
.tzg-guide .tzg-table-wrap { margin: var(--wp-6) 0 var(--wp-8); }
.tzg-guide table.tzg-table { min-width: 0; width: 100%; border: 0; border-collapse: collapse; table-layout: fixed; font-size: var(--wp-text-ledger); line-height: 1.5; }
.tzg-guide .tzg-table th, .tzg-guide .tzg-table td { border: 0; border-bottom: var(--wp-rule) solid var(--wp-hair); padding: var(--wp-3) var(--wp-4) var(--wp-3) 0; text-align: left; vertical-align: top; background: none; }
.tzg-guide .tzg-table th:last-child, .tzg-guide .tzg-table td:last-child { padding-right: 0; }
.tzg-guide .tzg-table thead th { font: 500 var(--wp-text-cite)/1.3 var(--wp-font-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp-muted); border-bottom: var(--wp-rule-strong) solid var(--wp-ink); vertical-align: bottom; }
.tzg-guide .tzg-table tbody th { font-weight: 600; }
.tzg-guide .tzg-table code { white-space: normal; }
.tzg-guide .irs-ends thead th:first-child { width: 34%; }
.tzg-guide .irs-tcc thead th:first-child { width: 40%; }
.tzg-guide .tzg-table-wrap:has(.irs-tcc) { max-width: 38rem; }
.tzg-guide .irs-ledger tr.irs-key > * { box-shadow: inset 0 -2px 0 var(--wp-rust); }
.tzg-guide .irs-ledger tr.irs-key th { color: var(--wp-rust); }
@container page (max-width: 30rem) {
  .tzg-guide .irs-ends thead th:first-child { width: 42%; }
  .tzg-guide .irs-tcc thead th:first-child { width: 48%; }
  .tzg-guide .tzg-table th, .tzg-guide .tzg-table td { padding-right: var(--wp-3); }
}
/* At 22.5rem and below (a 320 phone) a held-whole date no longer fits beside its text: each row becomes the date over its text, the
   column heads hidden from view but kept for screen readers (the table's own headers are unchanged) */
@container page (max-width: 22.5rem) {
  .tzg-guide .irs-ledger, .tzg-guide .irs-ledger tbody, .tzg-guide .irs-ledger tr, .tzg-guide .irs-ledger th, .tzg-guide .irs-ledger td { display: block; width: auto !important; }
  .tzg-guide .irs-ledger thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .tzg-guide .irs-ledger tbody { border-top: var(--wp-rule-strong) solid var(--wp-ink); }
  .tzg-guide .irs-ledger tr { padding: var(--wp-3) 0; border-bottom: var(--wp-rule) solid var(--wp-hair); }
  .tzg-guide .irs-ledger th, .tzg-guide .irs-ledger td { border: 0; padding: 0; }
  .tzg-guide .irs-ledger td { margin-top: var(--wp-1); }
  .tzg-guide .irs-ledger tr.irs-key > * { box-shadow: none; }
  .tzg-guide .irs-ledger tr.irs-key { border-bottom: 2px solid var(--wp-rust); }
}

/* The next step (bet guide-conversion): "Other dates in the same repository" is a panel under the rust edge of the next-step block,
   and its link is the page's one button (cobalt is the action). The button may wrap at its spaces on a phone, never past the panel. */
article.tzg-guide .results-section.irs-next { margin-top: var(--wp-12); padding: var(--wp-6); background: var(--wp-panel); border: var(--wp-rule) solid var(--wp-ink); border-left: 4px solid var(--wp-rust); }
article.tzg-guide .irs-next h2 { margin-top: 0; }
article.tzg-guide .irs-next p { max-width: 54ch; }
article.tzg-guide .irs-next-go { margin: var(--wp-6) 0 0; }
article.tzg-guide .irs-next-go .button { max-width: 100%; text-align: center; white-space: normal; text-wrap: balance; }
article.tzg-guide .results-section.irs-next + .results-section { border-top: 0; }
@container page (max-width: 30rem) {
  article.tzg-guide .results-section.irs-next { padding: var(--wp-5, 1.25rem) var(--wp-4); }
  article.tzg-guide .irs-next-go .button { display: flex; width: 100%; padding-inline: var(--wp-4); }
}

/* GitHub-follow line in the follow area: its own step under the feed button. The repository name is an inline link, padded to a
 48 px target without moving its line; focused, the ring sits on the words. */
.tzg-guide .fix-feed-gh { margin: var(--wp-6) 0 var(--wp-2); }
.tzg-guide .fix-feed-gh a { padding: max(7px, calc(var(--wp-tap) / 2 - .62em)) 5px; margin: 0 -5px; font-weight: 600; }
.tzg-guide .fix-feed-gh a:focus-visible { padding: 0; margin: 0; outline-offset: 2px; }
/* the menu path reads as one step: it never breaks after an arrow */
.tzg-guide .fix-feed-path { white-space: nowrap; }
/* the template's standard sign-off, as the other guides */
article.tzg-guide .pk-signoff { margin-top: var(--wp-8); padding-top: var(--wp-4); border-top: var(--wp-rule) solid var(--wp-hair); }
