/* article-styles/fmaze.css — split from public-article.css (2026-07-20).
 * Loaded per-article via a server-rendered <link> when
 * src/lib/blog/article-style-chunks.ts resolves the "fmaze" chunk.
 * Served raw from /public (no build step) — this file IS the source of
 * truth. Cascade: loads AFTER public-core.css + public-article.css in
 * document order. Source order preserves the original monolith order —
 * do not re-sort. New rules for this collection belong here. */


/* ── Founder Maze · "Set Up" article (sole-prop vs corp) ───────────
   Bespoke enhanced-article styling, scoped under .fmaze. Ported from the
   source design, with fonts remapped to StormIt's (Newsreader/sans/mono)
   so it reads native while keeping its evergreen palette, fork diagram,
   comparison cards, callouts, sources, and save block. */
.fmaze {
  --fm-ink: #1a1d21;
  --fm-ink-soft: #4b5159;
  --fm-ink-faint: #6b7077;
  --fm-card: #ffffff;
  --fm-sand: #ece9e1;
  --fm-line: #d9d8d0;
  --fm-line-soft: #e6e5de;
  --fm-evergreen: #1c5d4c;
  --fm-evergreen-deep: #123f33;
  --fm-brass: #7a6028;
  --fm-brass-soft: #c6a259;
  --fm-brass-bg: #efe6cd;
  --fm-brick: #9f3c35;
  --fm-brick-bg: #f3e4e2;
  font-family: var(--sans), system-ui, -apple-system, sans-serif;
  color: var(--fm-ink);
  font-size: 18px;
  line-height: 1.65;
}
.fmaze a { color: var(--fm-evergreen-deep); text-underline-offset: 3px; }
.fmaze a:hover { color: var(--fm-evergreen); }
.fmaze .mono { font-family: var(--mono), ui-monospace, monospace; }
.fmaze .eyebrow, .fmaze .secnum {
  font-family: var(--mono), monospace; font-size: 12px; font-weight: 500;
  letter-spacing: 0.1em; color: var(--fm-brass);
}
.fmaze h2 {
  font-family: var(--serif), Georgia, serif; font-weight: 600;
  font-size: clamp(1.5rem, 3.2vw, 2.05rem); line-height: 1.13;
  letter-spacing: -0.01em; margin: 10px 0 16px; color: var(--fm-ink);
}
.fmaze h3 {
  font-family: var(--serif), Georgia, serif; font-weight: 600;
  font-size: 1.3rem; line-height: 1.3; margin: 30px 0 8px; color: var(--fm-ink);
}
.fmaze p { margin: 0 0 17px; }
.fmaze strong { font-weight: 600; color: var(--fm-ink); }
.fmaze ul { margin: 0 0 18px; padding: 0; list-style: none; }
.fmaze ul li { position: relative; padding-left: 26px; margin-bottom: 11px; }
.fmaze ul li::before { content: ""; position: absolute; left: 4px; top: 11px; width: 7px; height: 7px; border: 1.5px solid var(--fm-evergreen); border-radius: 50%; }
.fmaze ul.dash li::before { top: 14px; height: 0; width: 11px; border: none; border-top: 1.5px solid var(--fm-brass); }
.fmaze section { padding: 8px 0 34px; }
.fmaze .lead { font-size: 1.18rem; line-height: 1.55; color: var(--fm-ink); font-weight: 450; }
.fmaze .trigger { border-left: 3px solid var(--fm-brass); padding: 5px 0 5px 16px; margin: 8px 0 17px; color: var(--fm-ink); }
.fmaze .feenote { font-size: 14px; color: var(--fm-ink-faint); margin-top: 8px; }

/* meta row + status pills (were unstyled → the icon SVGs rendered as huge solid-black blobs) */
.fmaze .meta-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 2px 0 14px; }
.fmaze .pill { display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono), monospace; font-size: 12px; letter-spacing: 0.02em; color: var(--fm-ink-soft); background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 100px; padding: 5px 12px; line-height: 1; }
.fmaze .pill.k { color: var(--fm-evergreen-deep); background: #eef3f0; border-color: #cfe2da; }
.fmaze .pill svg { width: 13px; height: 13px; flex: none; }

/* inline Lucide icons must render as line art — without this they inherit a solid black fill */
.fmaze .pill svg,
.fmaze .callout .ct svg,
.fmaze .seal svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* keep the bullet in the gutter — base `.ps-article-body li` padding out-specifies `.fmaze ul li`,
   collapsing the indent so the marker sat on the first character. Re-assert with the theme class. */
.article-prose.fmaze ul { padding-left: 0; }
.article-prose.fmaze ul li { padding-left: 26px; }

/* fork diagram */
.fmaze .fork { margin: 6px 0 30px; padding: 30px 26px 22px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .fork-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 14px; }
.fmaze .fork svg { display: block; width: 100%; height: auto; }

/* short answer block */
.fmaze .answer { background: var(--fm-evergreen-deep); color: #eef3f0; border-radius: 16px; padding: 30px 30px 26px; margin: 4px 0 6px; }
.fmaze .answer h2 { color: #fff; margin-top: 8px; }
.fmaze .answer p { color: #dde8e3; }
.fmaze .answer strong { color: #fff; }
.fmaze .answer .tldr { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-brass-soft); }

/* comparison cards */
.fmaze .vs { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 6px 0 8px; }
@media (min-width: 620px) { .fmaze .vs { grid-template-columns: 1fr 1fr; } }
.fmaze .vcard { background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; padding: 24px 22px; }
.fmaze .vcard .vtag { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fm-ink-faint); }
.fmaze .vcard h3 { margin: 6px 0 4px; font-family: var(--serif), Georgia, serif; font-weight: 600; font-size: 1.32rem; }
.fmaze .vcard .gist { font-size: 14.5px; color: var(--fm-ink-soft); margin-bottom: 16px; }
.fmaze .vcard dl { margin: 0; display: grid; gap: 11px; }
.fmaze .vcard .row { display: grid; grid-template-columns: 84px 1fr; gap: 12px; align-items: start; font-size: 14.5px; line-height: 1.45; }
.fmaze .vcard .row dt { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fm-brass); padding-top: 3px; }
.fmaze .vcard .row dd { margin: 0; color: var(--fm-ink-soft); }
.fmaze .vcard.sole { border-top: 3px solid var(--fm-brass-soft); }
.fmaze .vcard.corp { border-top: 3px solid var(--fm-evergreen); }

/* callouts */
.fmaze .callout { border-radius: 14px; padding: 22px 24px; margin: 22px 0; border: 1px solid var(--fm-line); }
.fmaze .callout .ct { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 9px; display: flex; align-items: center; gap: 9px; }
.fmaze .callout .ct svg { width: 15px; height: 15px; }
.fmaze .callout p:last-child, .fmaze .callout ul:last-child { margin-bottom: 0; }
.fmaze .callout.note { background: var(--fm-card); }
.fmaze .callout.note .ct { color: var(--fm-evergreen); }
.fmaze .callout.honest { background: var(--fm-brass-bg); border-color: #e6d8b5; }
.fmaze .callout.honest .ct { color: var(--fm-brass); }
.fmaze .callout.caution { background: var(--fm-brick-bg); border-color: #e8cdc9; }
.fmaze .callout.caution .ct { color: var(--fm-brick); }
.fmaze .callout.caution li::before { border-color: var(--fm-brick); }

/* when-cards */
.fmaze .when { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 6px 0; }
@media (min-width: 620px) { .fmaze .when { grid-template-columns: 1fr 1fr; } }
.fmaze .wcard { border: 1px solid var(--fm-line); border-radius: 14px; padding: 22px; background: var(--fm-card); }
.fmaze .wcard h3 { margin-top: 0; }
.fmaze .wcard.a { background: #fbfaf6; }

/* official sources */
.fmaze .sources { background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; padding: 8px 24px 14px; }
.fmaze .src { display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--fm-line-soft); align-items: flex-start; }
.fmaze .src:last-child { border-bottom: none; }
.fmaze .seal { flex: none; width: 42px; height: 42px; border-radius: 9px; background: var(--fm-brass-bg); border: 1px solid #e6d8b5; display: flex; align-items: center; justify-content: center; color: var(--fm-brass); }
.fmaze .seal svg { width: 20px; height: 20px; }
.fmaze .src .body { flex: 1; min-width: 0; }
.fmaze .src .name { font-weight: 600; font-size: 15.5px; margin: 0 0 2px; }
.fmaze .src .name .org { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fm-brass); margin-left: 8px; }
.fmaze .src .desc { font-size: 14px; color: var(--fm-ink-soft); margin: 0 0 6px; line-height: 1.45; }
.fmaze .src a.url { font-family: var(--mono), monospace; font-size: 12.5px; word-break: break-all; text-decoration: none; color: var(--fm-evergreen-deep); }
.fmaze .src a.url:hover { text-decoration: underline; }

/* save / checklist */
.fmaze .save { background: var(--fm-sand); border: 1px solid var(--fm-line); border-radius: 18px; padding: 30px 28px; }
.fmaze .save h2 { margin-top: 8px; }
.fmaze .save .intro { font-size: 15px; color: var(--fm-ink-soft); margin-bottom: 20px; }
.fmaze .checks { display: grid; gap: 2px; }
.fmaze .check { display: flex; gap: 14px; align-items: flex-start; padding: 13px 4px; border-top: 1px solid var(--fm-line-soft); }
.fmaze .check:first-child { border-top: none; }
.fmaze .box { flex: none; width: 21px; height: 21px; border: 1.5px solid var(--fm-evergreen); border-radius: 5px; margin-top: 2px; background: #fff; }
.fmaze .check .txt { font-size: 15.5px; line-height: 1.45; }
.fmaze .check .txt b { font-weight: 600; }
.fmaze .printline { margin-top: 20px; font-family: var(--mono), monospace; font-size: 12px; color: var(--fm-ink-faint); display: flex; align-items: center; gap: 9px; }

/* disclaimer */
.fmaze .disclaimer { margin: 42px 0 0; padding: 22px 0 0; border-top: 1px solid var(--fm-line); font-size: 14px; line-height: 1.6; color: var(--fm-ink-faint); }
.fmaze .disclaimer b { color: var(--fm-ink-soft); font-weight: 600; }

/* spine diagram (same shell as .fork) */
.fmaze .spine { margin: 6px 0 30px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .spine-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .spine svg { display: block; width: 100%; height: auto; }

/* part dividers */
.fmaze .part { margin: 26px 0 6px; padding: 18px 22px; background: var(--fm-evergreen-deep); color: #fff; border-radius: 14px; display: flex; align-items: baseline; gap: 14px; }
.fmaze .part .pn { font-family: var(--mono), monospace; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-brass-soft); flex: none; }
.fmaze .part h2 { color: #fff; margin: 0; font-size: clamp(1.35rem, 3vw, 1.7rem); }

/* program-account cards */
.fmaze .accts { display: grid; grid-template-columns: 1fr; gap: 13px; margin: 6px 0 8px; }
@media (min-width: 560px) { .fmaze .accts { grid-template-columns: 1fr 1fr; } }
.fmaze .acct { background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 13px; padding: 18px 19px; border-left: 3px solid var(--fm-evergreen); }
.fmaze .acct .code { font-family: var(--mono), monospace; font-size: 13px; font-weight: 600; color: var(--fm-evergreen-deep); letter-spacing: 0.04em; }
.fmaze .acct h3 { margin: 5px 0 4px; font-size: 1.16rem; }
.fmaze .acct p { font-size: 14px; color: var(--fm-ink-soft); margin: 0; line-height: 1.45; }

/* 2026 figures reference card (dark, with tables) */
.fmaze .figures { background: #0f312a; color: #eaf2ef; border-radius: 16px; padding: 26px 26px 22px; margin: 8px 0; overflow-x: auto; }
.fmaze .figures .ftitle { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-brass-soft); margin-bottom: 4px; }
.fmaze .figures .fsub { font-family: var(--serif), Georgia, serif; font-weight: 600; font-size: 1.15rem; color: #fff; margin-bottom: 16px; }
.fmaze .figures table { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 0; }
.fmaze .figures caption { caption-side: top; text-align: left; font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fm-brass-soft); padding: 14px 0 7px; }
.fmaze .figures th, .fmaze .figures td { text-align: left; padding: 8px 14px 8px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.12); vertical-align: top; }
.fmaze .figures th { font-weight: 600; color: #cfe0d9; font-size: 12.5px; }
.fmaze .figures td:first-child { color: #cfe0d9; }
.fmaze .figures .num { font-family: var(--mono), monospace; color: #fff; white-space: nowrap; }
.fmaze .figures .fnote { font-size: 12px; color: #9fbab1; margin-top: 14px; font-family: var(--mono), monospace; line-height: 1.5; }

/* ── Founder Maze: GST/HST + R&D-funding article components ───────────
   New families for gst-hst-for-new-founders and sred-irap-mitacs-canada.
   The signature diagrams reuse the .spine shell; .rates reuses the dark
   .figures look. Read-next blocks are dropped at publish (DB-driven nav). */

/* signature diagram shells (conduit / timeline — same shell as .spine) */
.fmaze .conduit, .fmaze .timeline { margin: 6px 0 30px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .conduit-cap, .fmaze .timeline-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .conduit svg, .fmaze .timeline svg { display: block; width: 100%; height: auto; }

/* decision two-col variants (.vcard.a / .vcard.b) */
.fmaze .vcard.a { border-top: 3px solid var(--fm-brass-soft); }
.fmaze .vcard.b { border-top: 3px solid var(--fm-evergreen); }
.fmaze .vcard h3 { margin: 0 0 10px; }

/* category cards (taxable / zero-rated / exempt) */
.fmaze .cats { display: grid; grid-template-columns: 1fr; gap: 13px; margin: 6px 0 8px; }
@media (min-width: 680px) { .fmaze .cats { grid-template-columns: repeat(3, 1fr); } }
.fmaze .cat { background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 13px; padding: 18px 18px; border-top: 3px solid var(--fm-evergreen); }
.fmaze .cat.zero { border-top-color: var(--fm-brass-soft); }
.fmaze .cat.exempt { border-top-color: var(--fm-brick); }
.fmaze .cat .ch { font-family: var(--serif), Georgia, serif; font-weight: 600; font-size: 1.1rem; margin: 0 0 3px; }
.fmaze .cat .crate { font-family: var(--mono), monospace; font-size: 12px; color: var(--fm-ink-faint); margin-bottom: 9px; }
.fmaze .cat p { font-size: 14.5px; color: var(--fm-ink-soft); margin: 0 0 8px; line-height: 1.45; }
.fmaze .cat .itc { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.04em; padding: 3px 9px; border-radius: 100px; display: inline-block; }
.fmaze .cat .itc.yes { background: #e7f0ec; color: var(--fm-evergreen-deep); border: 1px solid #cfe2da; }
.fmaze .cat .itc.no { background: var(--fm-brick-bg); color: var(--fm-brick); border: 1px solid #e8cdc9; }

/* rate reference card (dark — shares the figures look) */
.fmaze .rates { background: #0f312a; color: #eaf2ef; border-radius: 16px; padding: 26px 26px 22px; margin: 8px 0; overflow-x: auto; }
.fmaze .rates .ftitle { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-brass-soft); margin-bottom: 4px; }
.fmaze .rates .fsub { font-family: var(--serif), Georgia, serif; font-weight: 600; font-size: 1.15rem; color: #fff; margin-bottom: 16px; }
.fmaze .rates table { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 0 0 4px; }
.fmaze .rates caption { caption-side: top; text-align: left; font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fm-brass-soft); padding: 14px 0 7px; }
.fmaze .rates th, .fmaze .rates td { text-align: left; padding: 8px 14px 8px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.12); vertical-align: top; }
.fmaze .rates th { font-weight: 600; color: #cfe0d9; font-size: 12.5px; }
.fmaze .rates td:first-child { color: #fff; font-weight: 500; }
.fmaze .rates .num { font-family: var(--mono), monospace; color: #fff; white-space: nowrap; }
.fmaze .rates td .small { color: #9fbab1; font-size: 12.5px; }
.fmaze .rates .fnote { font-size: 12px; color: #9fbab1; margin-top: 14px; font-family: var(--mono), monospace; line-height: 1.5; }

/* three-instrument cards (SR&ED / IRAP / Mitacs) */
.fmaze .three { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 6px 0 8px; }
@media (min-width: 740px) { .fmaze .three { grid-template-columns: repeat(3, 1fr); } }
.fmaze .inst { background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; padding: 22px 20px; border-top: 3px solid var(--fm-evergreen); }
.fmaze .inst .itag { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fm-ink-faint); }
.fmaze .inst h3 { margin: 5px 0 3px; font-family: var(--serif), Georgia, serif; font-weight: 600; font-size: 1.28rem; }
.fmaze .inst .what { font-size: 13.5px; color: var(--fm-evergreen-deep); font-weight: 600; margin: 0 0 10px; }
.fmaze .inst p { font-size: 14px; color: var(--fm-ink-soft); margin: 0; line-height: 1.45; }
.fmaze .inst.sred { border-top-color: var(--fm-evergreen); }
.fmaze .inst.irap { border-top-color: var(--fm-brass-soft); }
.fmaze .inst.mitacs { border-top-color: #5a7d72; }

/* ── Founder Maze: grants-vs-loans-vs-credits-vs-equity components ─────
   The .spectrum signature reuses the .spine/.fork shell; .compare is the
   side-by-side instrument table; .ichip are the instrument-class chips. */

/* spectrum signature diagram (same shell as .spine / .conduit) */
.fmaze .spectrum { margin: 6px 0 30px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .spectrum-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .spectrum svg { display: block; width: 100%; height: auto; }

/* comparison table */
.fmaze .compare { margin: 6px 0 8px; border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; background: var(--fm-card); }
.fmaze .compare table { width: 100%; border-collapse: collapse; font-size: 14px; }
.fmaze .compare th, .fmaze .compare td { text-align: left; padding: 13px 14px; border-bottom: 1px solid var(--fm-line-soft); vertical-align: top; line-height: 1.4; }
.fmaze .compare thead th { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fm-ink-faint); font-weight: 600; background: #faf9f6; }
.fmaze .compare tbody tr:last-child td { border-bottom: none; }
.fmaze .compare td:first-child { font-weight: 600; color: var(--fm-ink); }
.fmaze .compare .yes { color: var(--fm-brick); font-weight: 600; }
.fmaze .compare .no { color: var(--fm-evergreen); font-weight: 600; }
.fmaze .compare .cell-sub { display: block; color: var(--fm-ink-soft); font-size: 13.5px; font-weight: 400; }
@media (max-width: 600px) { .fmaze .compare { overflow-x: auto; } .fmaze .compare table { min-width: 560px; } }

/* instrument-class chips (non-dilutive / repaid / dilutive) */
.fmaze .ihead { display: flex; align-items: center; gap: 12px; margin: 10px 0 4px; }
.fmaze .ichip { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 11px; border-radius: 100px; font-weight: 600; }
.fmaze .ichip.nd { background: #e7f0ec; color: var(--fm-evergreen-deep); border: 1px solid #cfe2da; }
.fmaze .ichip.rp { background: var(--fm-brass-bg); color: var(--fm-brass); border: 1px solid #e6d8b5; }
.fmaze .ichip.di { background: var(--fm-brick-bg); color: var(--fm-brick); border: 1px solid #e8cdc9; }

/* ── Founder Maze: business-benefits-finder components ─────────────────
   .funnel signature (same shell as .spine); .steps are numbered workflow cards. */
.fmaze .funnel { margin: 6px 0 30px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .funnel-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .funnel svg { display: block; width: 100%; height: auto; }
.fmaze .steps { display: grid; gap: 14px; margin: 6px 0 8px; }
.fmaze .step { display: flex; gap: 18px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 14px; padding: 20px 22px; }
.fmaze .step .n { flex: none; width: 34px; height: 34px; border-radius: 9px; background: var(--fm-evergreen-deep); color: #fff; font-family: var(--mono), monospace; font-weight: 600; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.fmaze .step .sb { flex: 1; }
.fmaze .step h3 { margin: 2px 0 5px; font-size: 1.16rem; }
.fmaze .step p { margin: 0; font-size: 14.5px; color: var(--fm-ink-soft); line-height: 1.5; }
.fmaze .step p + p { margin-top: 8px; }

/* ── Founder Maze: Business Banking & Credit components ───────────────
   .sep-sig separation signature (same shell as .spine); .prep prep-
   checklist cards (corp vs sole-prop). */
.fmaze .sep-sig { margin: 6px 0 30px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .sep-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .sep-sig svg { display: block; width: 100%; height: auto; }
.fmaze .prep { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 6px 0 8px; }
@media (min-width: 680px) { .fmaze .prep { grid-template-columns: 1fr 1fr; } }
.fmaze .prepcol { border: 1px solid var(--fm-line); border-radius: 14px; padding: 20px 22px; background: var(--fm-card); }
.fmaze .prepcol .h { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fm-evergreen-deep); margin-bottom: 11px; display: flex; align-items: center; gap: 8px; }
.fmaze .prepcol.corp { border-top: 3px solid var(--fm-evergreen); }
.fmaze .prepcol.sole { border-top: 3px solid var(--fm-brass-soft); }
.fmaze .prepcol ul { margin: 0; }
.fmaze .prepcol li { font-size: 14px; margin-bottom: 9px; line-height: 1.4; }

/* .fmaze — First-Year Tax Calendar: year-ribbon signature + sample-calendar cards */
.fmaze .ribbon { margin: 6px 0 30px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .ribbon-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .ribbon svg { display: block; width: 100%; height: auto; }
.fmaze .samp { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 6px 0 8px; }
@media (min-width: 680px) { .fmaze .samp { grid-template-columns: 1fr 1fr; } }
.fmaze .sampcol { border: 1px solid var(--fm-line); border-radius: 14px; padding: 20px 22px; background: var(--fm-card); }
.fmaze .sampcol .h { font-family: var(--serif), Georgia, serif; font-weight: 600; font-size: 1.1rem; color: var(--fm-evergreen-deep); margin-bottom: 4px; }
.fmaze .sampcol .hs { font-family: var(--mono), monospace; font-size: 11px; color: var(--fm-ink-faint); margin-bottom: 13px; }
.fmaze .sampcol.corp { border-top: 3px solid var(--fm-evergreen); }
.fmaze .sampcol.sole { border-top: 3px solid var(--fm-brass-soft); }
.fmaze .sampcol ul { margin: 0; }
.fmaze .sampcol li { font-size: 14.5px; margin-bottom: 9px; line-height: 1.4; padding-left: 0; }
.fmaze .sampcol li::before { display: none; }
.fmaze .sampcol li b { font-family: var(--mono), monospace; font-size: 12px; color: var(--fm-evergreen-deep); display: inline-block; min-width: 62px; }

/* .fmaze — Hiring guide: three-phase signature (same shell as .spine) */
.fmaze .phases { margin: 6px 0 30px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .phases-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .phases svg { display: block; width: 100%; height: auto; }

/* .fmaze — Offer Letters guide: notice-gap signature + offer-components grid */
.fmaze .gap-sig { margin: 6px 0 30px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .gap-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .gap-sig svg { display: block; width: 100%; height: auto; }
.fmaze .grid2 { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 6px 0 8px; }
@media (min-width: 620px) { .fmaze .grid2 { grid-template-columns: 1fr 1fr; } }
.fmaze .gcard { border: 1px solid var(--fm-line); border-radius: 13px; padding: 16px 18px; background: var(--fm-card); }
.fmaze .gcard .gh { font-family: var(--serif), Georgia, serif; font-weight: 600; font-size: 16px; color: var(--fm-evergreen-deep); margin-bottom: 4px; }
.fmaze .gcard .gd { font-size: 14.5px; color: var(--fm-ink-soft); line-height: 1.45; }
.fmaze .offer-resources { padding-bottom: 34px; }
.fmaze .offer-resources .sources { margin-top: 18px; }
.fmaze .offer-resources .seal {
  font-family: var(--serif), Georgia, serif;
  font-size: 20px;
  font-weight: 600;
}

.fmaze .offer-check-widget {
  margin: 34px 0 38px;
  background: var(--fm-card);
  border: 1px solid var(--fm-line);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(26, 29, 33, 0.08);
}
.fmaze .offer-check-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  padding: 24px 26px 20px;
  border-bottom: 1px solid var(--fm-line);
  background: linear-gradient(135deg, #f7f4ea, #fff);
}
.fmaze .offer-check-eyebrow {
  margin: 0 0 6px;
  font-family: var(--mono), ui-monospace, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fm-brass);
}
.fmaze .offer-check-widget h2 {
  margin: 0 0 8px;
}
.fmaze .offer-check-widget p {
  margin: 0;
  max-width: 58ch;
  color: var(--fm-ink-soft);
  font-size: 15px;
  line-height: 1.5;
}
.fmaze .offer-check-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.fmaze .offer-check-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 8px 14px;
  border: 1px solid var(--fm-line);
  border-radius: 999px;
  background: #fff;
  color: var(--fm-ink-soft);
  font-family: var(--sans), system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.14s, color 0.14s, background 0.14s;
}
.fmaze .offer-check-btn:hover {
  border-color: var(--fm-evergreen);
  color: var(--fm-evergreen-deep);
}
.fmaze .offer-check-btn.primary {
  background: var(--fm-evergreen-deep);
  color: #fff;
  border-color: var(--fm-evergreen-deep);
}
.fmaze .offer-check-btn.primary:hover {
  background: var(--fm-evergreen);
  color: #fff;
}
.fmaze .offer-check-btn svg {
  width: 14px;
  height: 14px;
}
.fmaze .offer-check-progress {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 12px;
  align-items: center;
  padding: 14px 26px;
  border-bottom: 1px solid var(--fm-line);
  background: #f7f4ea;
}
.fmaze .offer-check-progress span {
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--fm-brass-soft), var(--fm-evergreen));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.3);
}
.fmaze .offer-check-progress::before {
  content: "";
  grid-column: 1;
  grid-row: 1;
  height: 8px;
  border-radius: 999px;
  background: #e4dfd0;
  z-index: 0;
}
.fmaze .offer-check-progress span {
  grid-column: 1;
  grid-row: 1;
  z-index: 1;
}
.fmaze .offer-check-progress b,
.fmaze .offer-check-progress em {
  font-family: var(--mono), ui-monospace, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fm-ink-faint);
}
.fmaze .offer-check-progress em {
  min-width: 44px;
  color: var(--fm-brass);
  opacity: 0;
  transition: opacity 0.2s;
}
.fmaze .offer-check-progress em.show { opacity: 1; }
.fmaze .offer-check-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 22px;
  padding: 18px 26px 20px;
}
.fmaze .offer-check-row {
  position: relative;
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 12px;
  align-items: start;
  padding: 14px 0;
  border-top: 1px solid var(--fm-line-soft);
  cursor: pointer;
}
.fmaze .offer-check-row:nth-child(-n+2) { border-top: 0; }
.fmaze .offer-check-row input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.fmaze .offer-check-box {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 1.5px solid var(--fm-line);
  background: #fff;
  display: grid;
  place-items: center;
  margin-top: 1px;
  transition: background 0.14s, border-color 0.14s;
}
.fmaze .offer-check-box svg {
  width: 13px;
  height: 13px;
  color: #fff;
  opacity: 0;
  transform: scale(.65);
  transition: opacity 0.14s, transform 0.14s;
}
.fmaze .offer-check-row.on .offer-check-box {
  background: var(--fm-evergreen-deep);
  border-color: var(--fm-evergreen-deep);
}
.fmaze .offer-check-row.on .offer-check-box svg {
  opacity: 1;
  transform: scale(1);
}
.fmaze .offer-check-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.fmaze .offer-check-copy span {
  color: var(--fm-ink);
  font-family: var(--serif), Georgia, serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.25;
}
.fmaze .offer-check-copy small {
  color: var(--fm-ink-soft);
  font-family: var(--sans), system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.45;
}
.fmaze .offer-check-row.on .offer-check-copy small {
  color: var(--fm-ink-faint);
}
.fmaze .offer-check-note {
  padding: 16px 26px 18px;
  border-top: 1px solid var(--fm-line);
  background: #f8f7f2;
  font-family: var(--serif), Georgia, serif;
  font-size: 14px;
  font-style: italic;
}
@media (max-width: 760px) {
  .fmaze .offer-check-head { flex-direction: column; }
  .fmaze .offer-check-actions { justify-content: flex-start; }
  .fmaze .offer-check-list { grid-template-columns: 1fr; }
  .fmaze .offer-check-row:nth-child(2) { border-top: 1px solid var(--fm-line-soft); }
}
@media print {
  .fmaze .offer-check-actions,
  .fmaze .offer-check-progress em {
    display: none;
  }
  .fmaze .offer-check-widget {
    break-inside: avoid;
    box-shadow: none;
  }
}

/* .fmaze — #20 Terminating an Employee: cost-layers signature + with/without-cause split */
.fmaze .layers-sig { margin: 40px 0 4px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .layers-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .layers-sig svg { display: block; width: 100%; height: auto; }

.fmaze .split { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 6px 0 8px; }
@media (min-width: 620px) { .fmaze .split { grid-template-columns: 1fr 1fr; } }
.fmaze .scard { border: 1px solid var(--fm-line); border-radius: 14px; padding: 20px 22px; background: var(--fm-card); }
.fmaze .scard.cause { border-top: 3px solid var(--fm-brick); }
.fmaze .scard.nocause { border-top: 3px solid var(--fm-evergreen); }
.fmaze .scard .h { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 8px; }
.fmaze .scard.cause .h { color: var(--fm-brick); }
.fmaze .scard.nocause .h { color: var(--fm-evergreen-deep); }
.fmaze .scard .big { font-family: var(--serif), Georgia, serif; font-weight: 600; font-size: 1.05rem; line-height: 1.25; margin-bottom: 8px; color: var(--fm-ink); }
.fmaze .scard p { font-size: 14px; color: var(--fm-ink-soft); margin: 0; }

/* .fmaze — #17 Contractors vs Employees: scale signature + compare emp/con colours */
.fmaze .scale { margin: 40px 0 4px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .scale-cap { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fm-ink-faint); margin-bottom: 16px; }
.fmaze .scale svg { display: block; width: 100%; height: auto; }
.fmaze .compare .emp { color: var(--fm-brick); }
.fmaze .compare .con { color: var(--fm-evergreen); }

/* .fmaze — #14 Immigrant Founder: two-layer signature + change/keep grid */
.fmaze .layers { margin: 40px 0 4px; padding: 30px 26px 24px; background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: 16px; overflow: hidden; }
.fmaze .layers svg { display: block; width: 100%; height: auto; }
.fmaze .ck { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 6px 0 8px; }
@media (min-width: 680px) { .fmaze .ck { grid-template-columns: 1fr 1fr; } }
.fmaze .ckcol { border: 1px solid var(--fm-line); border-radius: 14px; padding: 20px 22px; background: var(--fm-card); }
.fmaze .ckcol.change { border-top: 3px solid var(--fm-brick); }
.fmaze .ckcol.keep { border-top: 3px solid var(--fm-evergreen); }
.fmaze .ckcol .h { font-family: var(--mono), monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.fmaze .ckcol.change .h { color: var(--fm-brick); }
.fmaze .ckcol.keep .h { color: var(--fm-evergreen); }
.fmaze .ckcol ul { margin: 0; }
.fmaze .ckcol li { font-size: 14.5px; margin-bottom: 9px; line-height: 1.45; }
