/* ==========================================================================
   ServiceScout — blog
   Loads after styles.css and scout-features.css. Namespaced .bl- so nothing
   here touches the header, footer or other pages. Colour/type tokens and the
   hero shell, buttons, eyebrows, cards, badges, stats, tables and callouts
   all come from the two sheets above.
   ========================================================================== */

/* ---- article header / meta bar ----------------------------------------- */
.bl-hero-inner { max-width: 860px; }
.bl-hero .fx-h1 { font-size: clamp(32px, 4.2vw, 54px); }
.bl-kicker { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.bl-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); font-size: 14px; color: #B7C4D2; }
.bl-meta .bl-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--signal-teal); color: var(--scout-navy); font-family: var(--font-display); font-weight: 700; display: inline-grid; place-items: center; font-size: 14px; flex: 0 0 auto; }
.bl-meta .bl-by { display: flex; align-items: center; gap: 12px; }
.bl-meta .bl-by b { display: block; color: #fff; font-family: var(--font-display); font-weight: 600; font-size: 15px; }
.bl-meta .bl-by span { display: block; font-size: 13px; color: #8895A4; }
.bl-meta .bl-dot { font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #8895A4; }
.bl-meta .bl-dot b { color: #DCE5EE; font-weight: 500; }

/* ---- layout: article + sticky TOC ----------------------------------------- */
.bl-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(32px, 5vw, 72px); align-items: start; }
.bl-layout > * { min-width: 0; }
@media (max-width: 1024px) { .bl-layout { grid-template-columns: 1fr; } }
.bl-side { position: sticky; top: 96px; }
@media (max-width: 1024px) { .bl-side { position: static; } }
.bl-toc { background: #fff; border: 1px solid var(--slate-200); border-radius: var(--radius-sm); padding: 18px 20px; }
.bl-toc h4 { font-family: var(--font-mono); font-weight: 600; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-500); margin: 0 0 12px; }
.bl-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.bl-toc li { counter-increment: toc; margin: 0 0 8px; padding-left: 26px; position: relative; font-size: 14px; line-height: 1.4; }
.bl-toc li::before { content: counter(toc, decimal-leading-zero); position: absolute; left: 0; top: 1px; font-family: var(--font-mono); font-size: 11px; color: var(--slate-500); }
.bl-toc a { color: var(--slate-700); }
.bl-toc a:hover, .bl-toc a.active { color: var(--scout-navy); text-decoration: none; font-weight: 600; }
.bl-side .bl-side-cta { margin-top: 16px; background: var(--scout-navy); color: #fff; border-radius: var(--radius-sm); padding: 18px 20px; }
.bl-side .bl-side-cta .label { color: var(--signal-teal); }
.bl-side .bl-side-cta p { color: #B7C4D2; font-size: 14px; margin: 8px 0 14px; }
.bl-side .bl-side-cta .btn { width: 100%; }
@media (max-width: 1024px) { .bl-side .bl-side-cta { display: none; } }

/* mobile TOC as a disclosure */
.bl-toc-mobile { display: none; margin: 0 0 24px; }
@media (max-width: 1024px) { .bl-toc-mobile { display: block; } .bl-side .bl-toc { display: none; } }
.bl-toc-mobile summary { cursor: pointer; font-family: var(--font-display); font-weight: 600; color: var(--scout-navy); padding: 12px 16px; border: 1px solid var(--slate-200); border-radius: var(--radius-sm); background: #fff; list-style: none; }
.bl-toc-mobile summary::-webkit-details-marker { display: none; }
.bl-toc-mobile .bl-toc { border-top: 0; border-radius: 0 0 var(--radius-sm) var(--radius-sm); }

/* ---- short answer + takeaways ----------------------------------------------- */
.bl-answer { background: var(--slate-50); border: 1px solid var(--slate-200); border-left: 4px solid var(--signal-teal); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; padding: 20px 24px; margin: 0 0 22px; }
.bl-answer .label { color: #0B8B7C; display: block; margin-bottom: 8px; }
.bl-answer p { margin: 0; font-size: 17px; color: var(--slate-900); line-height: 1.6; }
.bl-takeaways { background: #fff; border: 1px solid var(--slate-200); border-radius: var(--radius-sm); padding: 20px 24px; margin: 0 0 34px; }
.bl-takeaways .label { display: block; margin-bottom: 10px; }
.bl-takeaways ul { margin: 0; padding: 0; list-style: none; }
.bl-takeaways li { position: relative; padding-left: 30px; margin: 0 0 10px; font-size: 15.5px; color: var(--slate-700); line-height: 1.5; }
.bl-takeaways li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 50%; background: rgba(22,214,195,.15); background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230B8B7C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='3.5 8.5 6.5 11.5 12.5 5'/></svg>"); background-position: center; background-repeat: no-repeat; background-size: 12px; }

/* ---- article prose ------------------------------------------------------------ */
.bl-article { font-size: 17px; line-height: 1.7; color: var(--slate-900); }
.bl-article > h2 { font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; margin: 48px 0 14px; scroll-margin-top: 96px; }
.bl-article > h2:first-of-type { margin-top: 6px; }
.bl-article h3 { font-size: clamp(19px, 1.8vw, 22px); margin: 30px 0 10px; }
.bl-article p, .bl-article ul, .bl-article ol { max-width: 72ch; }
.bl-article ul, .bl-article ol { padding-left: 24px; margin: 0 0 18px; }
.bl-article li { margin: 0 0 8px; }
.bl-article li::marker { color: #0B8B7C; }
.bl-article strong { color: var(--scout-navy); font-weight: 600; }
.bl-article blockquote { margin: 26px 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--advantage-orange); font-family: var(--font-display); font-size: clamp(19px, 2vw, 23px); line-height: 1.4; color: var(--scout-navy); font-weight: 500; max-width: 34ch; }
.bl-article blockquote cite { display: block; margin-top: 10px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-500); font-style: normal; }
.bl-article .fx-callout { margin: 26px 0; max-width: 100%; }
.bl-article .fx-table-wrap { margin: 20px 0 26px; }
.bl-article .fx-table { min-width: 460px; }
.bl-article hr { border: 0; border-top: 1px solid var(--slate-200); margin: 40px 0; }
.bl-bridge { background: var(--scout-navy); color: #fff; border-radius: var(--radius-sm); padding: 22px 26px; margin: 34px 0; }
.bl-bridge .label { color: var(--signal-teal); display: block; margin-bottom: 8px; }
.bl-bridge p { color: #DCE5EE; margin: 0; max-width: 62ch; font-size: 16.5px; }

/* ---- figures / product mockups ---------------------------------------------- */
.bl-figure { margin: 26px 0 30px; }
.bl-figure figcaption { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .06em; color: var(--slate-500); margin-top: 10px; }
.bl-figure .fx-artifact { margin: 0; max-width: 620px; box-shadow: 0 24px 48px -24px rgba(7,27,44,.35); animation: none; border: 1px solid var(--slate-200); }
.bl-mock-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.bl-mock-row .fx-artifact { max-width: none; }

/* workflow: 8 steps, mockup per step */
.bl-workflow { list-style: none; margin: 22px 0 30px; padding: 0; counter-reset: wf; display: grid; gap: 14px; }
.bl-workflow li { counter-increment: wf; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; align-items: start; background: #fff; border: 1px solid var(--slate-200); border-radius: var(--radius-sm); padding: 18px 20px; }
.bl-workflow li::before { content: counter(wf); font-family: var(--font-mono); font-size: 14px; font-weight: 600; color: var(--scout-navy); background: var(--slate-100); border-radius: 12px; width: 56px; height: 56px; display: grid; place-items: center; }
.bl-workflow h4 { font-size: 17px; margin: 4px 0 6px; }
.bl-workflow p { margin: 0 0 12px; font-size: 15.5px; color: var(--slate-700); max-width: 66ch; }
.bl-workflow .bl-wf-mock { background: var(--slate-50); border: 1px solid var(--slate-200); border-radius: 10px; padding: 12px 14px; font-size: 13px; color: var(--slate-700); display: grid; gap: 6px; }
.bl-workflow .bl-wf-mock .k { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: #0B8B7C; }
.bl-workflow .bl-wf-mock .v { color: var(--slate-900); }
.bl-workflow .bl-wf-mock .v strong { color: var(--scout-navy); }
.bl-workflow .bl-wf-mock .badge { font-size: 10px; }
.bl-wf-audio { display: flex; align-items: center; gap: 12px; background: var(--scout-navy); color: #fff; border-radius: 10px; padding: 10px 12px; }
.bl-wf-audio .play { width: 30px; height: 30px; border-radius: 50%; background: var(--signal-teal); color: var(--scout-navy); display: inline-grid; place-items: center; flex: 0 0 auto; }
.bl-wf-audio .wave { flex: 1; display: flex; gap: 2px; align-items: center; height: 22px; }
.bl-wf-audio .wave i { display: block; width: 2px; background: var(--signal-teal); opacity: .8; border-radius: 1px; }
.bl-wf-audio .t { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--signal-teal); }
.bl-wf-audio .t b { display: block; font-family: var(--font-display); font-size: 12.5px; color: #fff; letter-spacing: 0; text-transform: none; }
.bl-wf-board { display: grid; gap: 6px; }
.bl-wf-board .row { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 10px; align-items: center; background: #fff; border: 1px solid var(--slate-200); border-radius: 8px; padding: 8px 10px; font-size: 12.5px; }
.bl-wf-board .row .time { font-family: var(--font-mono); font-size: 11px; color: var(--slate-500); }
.bl-wf-report { width: 100%; border-collapse: collapse; font-size: 12.5px; background: #fff; border-radius: 8px; overflow: hidden; }
.bl-wf-report th { font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-500); text-align: left; padding: 8px 10px; background: var(--slate-100); }
.bl-wf-report td { padding: 8px 10px; border-top: 1px solid var(--slate-200); }
.bl-wf-report td:first-child { font-weight: 600; color: var(--scout-navy); }
.bl-wf-report .num { font-family: var(--font-mono); }

/* ---- proof strip ---------------------------------------------------------------- */
.bl-proof { margin: 22px 0 30px; }
.bl-proof .fx-stats { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.bl-proof p { font-size: 14px; color: var(--slate-500); margin: 12px 0 0; max-width: 72ch; }

/* ---- interactive tool frame ------------------------------------------------------ */
.bl-tool { margin: 26px 0 34px; }
.bl-tool .fx-calc { padding: clamp(18px, 2.5vw, 28px); }
.bl-tool .bl-tool-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.bl-tool .bl-tool-head h3 { margin: 0; }
.bl-tool .bl-print { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; background: transparent; border: 1px solid var(--slate-300); border-radius: 999px; padding: 8px 14px; cursor: pointer; color: var(--slate-700); }
.bl-tool .bl-print:hover { border-color: var(--scout-navy); color: var(--scout-navy); }
.bl-check { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.bl-check li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: start; padding: 10px 12px; border: 1px solid var(--slate-200); border-radius: 8px; background: #fff; font-size: 15px; }
.bl-check input { width: 18px; height: 18px; margin-top: 3px; accent-color: #0B8B7C; }
.bl-check b { color: var(--scout-navy); }
.bl-check small { display: block; color: var(--slate-500); font-size: 13px; margin-top: 2px; }
.bl-check-group { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-500); margin: 18px 0 8px; }
.bl-check-group:first-child { margin-top: 0; }
.bl-sheet { width: 100%; border-collapse: collapse; background: #fff; font-size: 14px; }
.bl-sheet th { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-500); text-align: left; padding: 10px 12px; background: var(--slate-50); border: 1px solid var(--slate-200); }
.bl-sheet td { padding: 10px 12px; border: 1px solid var(--slate-200); min-width: 120px; }
.bl-sheet td[contenteditable] { background: #FFFDF8; outline: none; }
.bl-sheet td[contenteditable]:focus { background: #fff; box-shadow: inset 0 0 0 2px rgba(22,214,195,.4); }
.bl-sheet td:first-child { font-weight: 600; color: var(--scout-navy); background: var(--slate-50); }
.bl-tool-note { font-size: 13px; color: var(--slate-500); margin: 12px 0 0; }

/* ---- author box ------------------------------------------------------------------ */
.bl-author { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; align-items: start; background: #fff; border: 1px solid var(--slate-200); border-radius: var(--radius-sm); padding: 22px; margin: 44px 0 0; }
.bl-author .bl-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--scout-navy); color: var(--signal-teal); font-family: var(--font-display); font-weight: 700; display: grid; place-items: center; font-size: 20px; }
.bl-author b { font-family: var(--font-display); font-size: 17px; color: var(--scout-navy); display: block; }
.bl-author span { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-500); display: block; margin: 4px 0 8px; }
.bl-author p { margin: 0; font-size: 15px; color: var(--slate-700); }

/* ---- blog index / hubs ------------------------------------------------------------- */
.bl-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bl-filters .label { margin-right: 6px; }
.bl-chip { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; padding: 8px 13px; border-radius: 999px; border: 1px solid var(--slate-200); background: #fff; color: var(--slate-700); cursor: pointer; text-decoration: none; transition: border-color .15s, background .15s, color .15s; }
.bl-chip:hover { border-color: var(--scout-navy); color: var(--scout-navy); text-decoration: none; }
.bl-chip.active, .bl-chip[aria-current] { background: var(--scout-navy); border-color: var(--scout-navy); color: #fff; }
.dark .bl-chip { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); color: #DCE5EE; }
.dark .bl-chip:hover { border-color: var(--signal-teal); color: var(--signal-teal); }
.dark .bl-chip.active, .dark .bl-chip[aria-current] { background: var(--signal-teal); border-color: var(--signal-teal); color: var(--scout-navy); }
.bl-filterbar { border-bottom: 1px solid var(--slate-200); background: #fff; }
.bl-filterbar .wrap { display: grid; gap: 12px; padding-top: 18px; padding-bottom: 18px; }
.bl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 980px) { .bl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .bl-grid { grid-template-columns: 1fr; } }
.bl-card { display: flex; flex-direction: column; color: inherit; min-width: 0; transition: transform .15s ease, border-color .15s ease, box-shadow .2s ease; }
a.bl-card:hover { text-decoration: none; transform: translateY(-2px); border-color: rgba(22,214,195,.7); box-shadow: 0 16px 34px -22px rgba(7,27,44,.35); }
.bl-card .bl-card-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.bl-card .bl-card-tags .badge { font-size: 10px; padding: 5px 9px; }
.bl-card h3 { font-size: 19px; line-height: 1.25; margin: 0 0 8px; }
.bl-card p { margin: 0 0 14px; font-size: 15px; color: var(--slate-700); flex: 1 1 auto; }
.bl-card .bl-card-meta { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--slate-500); display: flex; gap: 12px; flex-wrap: wrap; }
.bl-card.is-hidden { display: none; }
.bl-featured { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
@media (max-width: 900px) { .bl-featured { grid-template-columns: 1fr; } }
.bl-featured .fx-artifact { margin: 0; max-width: 520px; }
.bl-empty { border: 1px dashed var(--slate-300); border-radius: var(--radius-sm); padding: 22px; color: var(--slate-500); font-size: 15px; background: #fff; }
.bl-hub-trade { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 980px) { .bl-hub-trade { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 620px) { .bl-hub-trade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bl-hub-trade a { display: block; padding: 16px 18px; background: #fff; border: 1px solid var(--slate-200); border-radius: var(--radius-sm); color: var(--scout-navy); font-family: var(--font-display); font-weight: 600; font-size: 15px; min-width: 0; }
.bl-hub-trade a small { display: block; font-family: var(--font-mono); font-weight: 400; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-500); margin-top: 6px; }
.bl-hub-trade a:hover { text-decoration: none; border-color: rgba(22,214,195,.7); }
.bl-hub-trade a[aria-current] { background: var(--scout-navy); color: #fff; border-color: var(--scout-navy); }
.bl-hub-trade a[aria-current] small { color: var(--signal-teal); }
.bl-topic-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.bl-topic-list a { display: block; padding: 14px 16px; background: #fff; border: 1px solid var(--slate-200); border-radius: var(--radius-sm); color: inherit; min-width: 0; }
.bl-topic-list a:hover { text-decoration: none; border-color: rgba(22,214,195,.7); }
.bl-topic-list b { display: block; font-family: var(--font-display); font-weight: 600; color: var(--scout-navy); font-size: 15px; margin-bottom: 3px; }
.bl-topic-list span { font-size: 13.5px; color: var(--slate-700); }
.bl-list { display: grid; gap: 12px; }
.bl-list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; background: #fff; border: 1px solid var(--slate-200); border-radius: var(--radius-sm); padding: 14px 18px; color: inherit; min-width: 0; }
.bl-list a:hover { text-decoration: none; border-color: rgba(22,214,195,.7); }
.bl-list b { font-family: var(--font-display); font-weight: 600; color: var(--scout-navy); font-size: 16px; display: block; }
.bl-list span { font-size: 14px; color: var(--slate-700); }
.bl-list .bl-card-meta { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--slate-500); white-space: nowrap; }
@media (max-width: 560px) { .bl-list a { grid-template-columns: 1fr; } }

/* ---- print: the checklists / worksheets print cleanly ------------------------------ */
@media print {
  .site-header, .site-footer, .fx-cta, .bl-side, .bl-toc-mobile, .bl-meta, .fx-actions, .bl-author, .fx-related, .fx-section-tint#faq { display: none !important; }
  .bl-tool { break-inside: avoid; }
  .bl-sheet td[contenteditable] { background: #fff; }
}
