/* Bondtally design system v1 (30.10.2026): oxblood ink of an engraved bond certificate for trust, brass for the one main action (dark text on brass), parchment surfaces; red/amber only for statuses. Source Serif 4 headings (ledger and official-statement feel), Public Sans body. */
@font-face { font-family: "Source Serif 4"; src: url("/fonts/source-serif-4-latin.woff2") format("woff2"); font-weight: 600 700; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("/fonts/public-sans-var.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }

:root {
  --paper: #ffffff;
  --surface: #faf6f1;
  --surface-2: #f2eae1;
  --ink: #221a1d;
  --ink-2: #4b3d43;
  --muted: #66585e;
  --line: #e9e1da;
  --line-2: #d6c9bf;
  --navy: #5a1a2b;
  --navy-2: #43121f;
  --accent: #8a2a40;
  --accent-soft: #f7e9ec;
  --ember: #e2a63b;
  --ember-soft: #fbf0d9;
  --ok: #1d7a43;
  --ok-soft: #e7f5ec;
  --warn: #8a5a00;
  --warn-soft: #fff4d6;
  --err: #b42318;
  --err-soft: #fdecea;
  --night: #2b0f18;
  --night-2: #45131f;
  --night-text: #fbf3ef;
  --night-muted: #dcbcc3;
  --radius: 14px;
  --radius-s: 9px;
  --shadow: 0 1px 2px rgb(40 18 24 / 6%), 0 10px 30px -14px rgb(40 18 24 / 24%);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --wrap: 75rem;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 16px/1.6 "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif; overflow-x: hidden; }
h1, h2, h3, h4 { font-family: "Source Serif 4", Georgia, serif; color: var(--ink); margin: 0; letter-spacing: -0.012em; line-height: 1.15; }
p { margin: 0; }
a { color: var(--accent); text-underline-offset: 3px; }
img { max-width: 100%; height: auto; display: block; }
.wrap { width: min(var(--wrap), 100% - 32px); margin-inline: auto; }
.mono { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: .92em; }
.nw { white-space: nowrap; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid rgb(138 42 64 / 50%); outline-offset: 2px; border-radius: 6px; }

/* ---------- header ---------- */
.is-app .top { position: static; }
.top { position: sticky; top: 0; z-index: 30; background: rgb(255 255 255 / 93%); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line); }
.top .wrap { display: flex; align-items: center; gap: 16px; min-height: 64px; flex-wrap: wrap; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.brand img { width: 34px; height: 34px; border-radius: 9px; }
.brand b { font: 700 20px/1 "Source Serif 4", sans-serif; letter-spacing: -0.02em; }
.by { color: var(--muted); font-size: 13px; text-decoration: none; margin-right: auto; }
.by:hover { color: var(--accent); text-decoration: underline; }
.nav { display: flex; gap: 20px; align-items: center; }
.nav a { color: var(--ink-2); text-decoration: none; font-size: 14.5px; font-weight: 500; }
.nav a:hover { color: var(--accent); }
.allapps { color: var(--muted) !important; }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 11px 20px; border-radius: 12px; border: 1px solid transparent; font: 650 15px/1.2 "Public Sans", sans-serif; text-decoration: none; cursor: pointer; transition: transform .15s var(--ease), background .15s, box-shadow .15s; text-align: center; }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--navy); color: #fff; box-shadow: 0 8px 22px -10px rgb(43 15 24 / 60%); }
.btn-primary:hover { background: var(--navy-2); color: #fff; }
.btn-ghost { background: #fff; color: var(--navy); border-color: var(--line-2); }
.btn-ghost:hover { border-color: var(--navy); color: var(--navy); }
.btn-ember { background: var(--ember); color: #1f1700; }
.btn-ember:hover { background: #e2a400; color: #1f1700; }
.btn-sm { min-height: 38px; padding: 8px 14px; font-size: 14px; border-radius: 10px; }
.btn[disabled] { opacity: .55; cursor: not-allowed; }

/* ---------- hero ---------- */
.hero { padding: 48px 0 36px; background: radial-gradient(1200px 500px at 85% -10%, #f6ebe2 0, transparent 60%), linear-gradient(#fff, #faf8f4); }
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 48px; align-items: center; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; background: var(--warn-soft); color: #7a4a00; border: 1px solid #f0d9a3; font-size: 13.5px; font-weight: 600; padding: 6px 12px; border-radius: 999px; }
.eyebrow i { width: 8px; height: 8px; border-radius: 50%; background: #b47800; box-shadow: 0 0 0 4px rgb(180 120 0 / 18%); }
.hero h1 { font-size: clamp(2.1rem, 4.6vw, 3.5rem); margin: 18px 0 16px; }
.hero h1 em { font-style: normal; color: var(--navy); background: linear-gradient(transparent 62%, #ffe08a 62%); }
.lead { font-size: 18px; color: var(--ink-2); max-width: 36rem; }
.cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.offer { margin-top: 14px; font-size: 14.5px; color: var(--ink-2); }
.offer b { color: #7a4a00; }
.linkbtn { border: 0; background: none; padding: 0; font: inherit; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font-weight: 650; }
.linkbtn:hover { color: var(--navy); }
.offer code { background: var(--warn-soft); border: 1px dashed #d9b45f; padding: 1px 7px; border-radius: 6px; font-weight: 700; color: #7a4a00; }
.fine { margin-top: 10px; font-size: 13.5px; color: var(--muted); }

/* ---------- carousel + lightbox ---------- */
.carousel { position: relative; border-radius: 20px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); overflow: hidden; }
.track { display: flex; align-items: flex-start; transition: transform .45s var(--ease), height .3s var(--ease); touch-action: pan-y; }
.slide { flex: 0 0 100%; margin: 0; background: var(--surface); display: flex; flex-direction: column; }
.slide button { display: block; padding: 0; border: 0; background: none; cursor: zoom-in; width: 100%; }
.slide img { width: 100%; height: auto; max-height: 560px; object-fit: contain; background: #f3f1ec; }
.slide figcaption { padding: 12px 16px 14px; font-size: 14px; color: var(--ink-2); background: #fff; border-top: 1px solid var(--line); min-height: 50px; }
.car-btn { position: absolute; top: calc(50% - 40px); width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-2); background: rgb(255 255 255 / 94%); color: var(--navy); font-size: 22px; line-height: 1; cursor: pointer; display: grid; place-items: center; box-shadow: var(--shadow); }
.car-btn:hover { background: #fff; border-color: var(--navy); }
.car-prev { left: 10px; }
.car-next { right: 10px; }
.dots { display: flex; justify-content: center; gap: 8px; padding: 10px 0 2px; }
.dots button { width: 10px; height: 10px; border-radius: 50%; border: 0; background: var(--line-2); padding: 0; cursor: pointer; }
.dots button[aria-current="true"] { background: var(--navy); width: 26px; border-radius: 6px; }
.lightbox { position: fixed; inset: 0; z-index: 100; background: rgb(8 14 26 / 88%); display: grid; grid-template-rows: 1fr auto; padding: 56px 16px 16px; }
.lightbox img { max-width: min(1400px, 100%); max-height: calc(100vh - 140px); margin: auto; object-fit: contain; border-radius: 10px; background: #fff; }
.lightbox p { color: #e6ecf5; text-align: center; font-size: 15px; padding-top: 10px; }
.lb-close, .lb-prev, .lb-next { position: absolute; border: 0; background: rgb(255 255 255 / 14%); color: #fff; width: 46px; height: 46px; border-radius: 50%; font-size: 22px; cursor: pointer; }
.lb-close { top: 10px; right: 12px; }
.lb-prev { left: 12px; top: 50%; }
.lb-next { right: 12px; top: 50%; }
.lb-close:hover, .lb-prev:hover, .lb-next:hover { background: rgb(255 255 255 / 26%); }

/* ---------- trust strip ---------- */
.trust { border-block: 1px solid var(--line); background: #fff; }
.trust ul { list-style: none; margin: 0; padding: 16px 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.trust li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--ink-2); line-height: 1.4; }
.trust li b { display: block; color: var(--ink); font-size: 14.5px; }
.ico { flex: none; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--accent-soft); color: var(--navy); }
.ico svg { width: 18px; height: 18px; }

/* ---------- sections ---------- */
.sec { padding: 72px 0; }
.sec.alt { background: var(--surface); }
.sec h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); max-width: 44rem; }
.sec .sub { color: var(--ink-2); font-size: 17px; margin-top: 12px; max-width: 46rem; }
.kicker { color: var(--accent); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 10px; }
.timeline { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-top: 30px; }
.tl { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; position: relative; }
.tl .d { font: 800 19px/1.2 "Source Serif 4", sans-serif; color: var(--navy); }
.tl p { font-size: 14.5px; color: var(--ink-2); margin-top: 6px; }
.tl.hot { border-color: #d9b45f; background: var(--warn-soft); }
.tl.hot .d { color: #7a4a00; }
.src { font-size: 13px; color: var(--muted); margin-top: 16px; }
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 32px; counter-reset: s; }
.step { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; }
.step .n { width: 36px; height: 36px; border-radius: 10px; background: var(--navy); color: #fff; font: 800 16px/36px "Source Serif 4", sans-serif; text-align: center; }
.step h3 { font-size: 19px; margin: 14px 0 8px; }
.step p { color: var(--ink-2); font-size: 15px; }
.checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; margin-top: 28px; list-style: none; padding: 0; }
.checks li { display: flex; gap: 10px; font-size: 15.5px; color: var(--ink-2); }
.checks li::before { content: ""; flex: none; width: 20px; height: 20px; margin-top: 2px; border-radius: 6px; background: var(--ok-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23157f3c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat; }
.checks b { color: var(--ink); }
.table-scroll { overflow-x: auto; margin-top: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
table.cmp { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 640px; }
.cmp th, .cmp td { padding: 13px 16px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.cmp thead th { background: var(--surface); font-size: 14px; color: var(--ink-2); }
.cmp th.us, .cmp td.us { background: #f6f1ea; }
.cmp tr:last-child td { border-bottom: 0; }
.yes { color: var(--ok); font-weight: 650; }
.no { color: var(--err); font-weight: 650; }

/* ---------- pricing ---------- */
.plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 32px; align-items: stretch; }
.plan { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 26px; display: flex; flex-direction: column; gap: 12px; }
.plan.pick { border: 2px solid var(--navy); box-shadow: var(--shadow); position: relative; }
.plan.pick::before { content: "For one applicant (BEN)"; position: absolute; top: -13px; left: 22px; background: var(--navy); color: #fff; font-size: 12.5px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.plan h3 { font-size: 20px; }
.price { font: 700 40px/1 "Source Serif 4", sans-serif; color: var(--ink); }
.price small { font: 500 15px "Public Sans", sans-serif; color: var(--muted); }
.disc { font-size: 14.5px; color: #7a4a00; font-weight: 600; }
.plan ul { list-style: none; padding: 0; margin: 4px 0 6px; display: grid; gap: 8px; font-size: 15px; color: var(--ink-2); }
.plan li::before { content: "✓ "; color: var(--ok); font-weight: 800; }
.plan .btn { margin-top: auto; }
.pay-note { margin-top: 18px; font-size: 14px; color: var(--muted); }

/* ---------- faq ---------- */
.faq { margin-top: 26px; display: grid; gap: 10px; max-width: 54rem; }
.faq details { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 4px 18px; }
.faq summary { cursor: pointer; font-weight: 650; padding: 13px 0; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; float: right; color: var(--muted); font-weight: 400; font-size: 20px; line-height: 1; }
.faq details[open] summary::after { content: "–"; }
.faq details p { padding: 0 0 14px; color: var(--ink-2); }

/* ---------- night band + footer ---------- */
.band { background: linear-gradient(135deg, var(--night), var(--night-2)); color: var(--night-text); padding: 56px 0; }
.band .wrap { display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.band h2 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.2rem); }
.band p { color: var(--night-muted); margin-top: 8px; }
.foot { background: var(--night); color: var(--night-muted); padding: 44px 0 30px; font-size: 14.5px; }
.foot .cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 24px; }
.foot h4 { color: #fff; font-size: 14px; margin-bottom: 10px; }
.foot ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.foot a { color: var(--night-text); text-decoration: none; }
.foot a:hover { text-decoration: underline; }
.foot .brand { color: #fff; }
.foot .legal { margin-top: 28px; padding-top: 18px; border-top: 1px solid #22314c; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; font-size: 13px; }

/* ---------- legal pages ---------- */
.doc { width: min(48rem, 100% - 32px); margin: 44px auto 70px; }
.doc h1 { font-size: 2.2rem; }
.doc h2 { font-size: 1.25rem; margin: 28px 0 8px; }
.doc p, .doc li { color: var(--ink-2); margin-bottom: 10px; }
.doc .meta { color: var(--muted); }

/* ---------- app ---------- */
.app-main { padding: 28px 0 60px; background: var(--surface); min-height: 70vh; }
.app-head { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: flex-end; justify-content: space-between; margin-bottom: 18px; }
.app-head h1 { font-size: clamp(1.6rem, 3vw, 2.1rem); }
.app-head p { color: var(--ink-2); margin-top: 6px; }
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: 0 1px 2px rgb(14 23 38 / 4%); }
.card + .card { margin-top: 16px; }
.card h2 { font-size: 19px; margin-bottom: 4px; }
.card .hint { color: var(--muted); font-size: 14px; }
.drop { margin-top: 14px; border: 2px dashed var(--line-2); border-radius: 16px; background: #fbfcfe; padding: 30px 18px; text-align: center; transition: border-color .15s, background .15s; }
.drop.over { border-color: var(--navy); background: var(--accent-soft); }
.drop svg { width: 44px; height: 44px; color: var(--navy); margin: 0 auto 10px; }
.drop b { display: block; font-size: 17px; }
.drop p { color: var(--muted); font-size: 14px; margin-top: 4px; }
.drop .row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 16px; }
.opts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.opt { border: 1px solid var(--line); border-radius: 12px; padding: 14px; font-size: 14.5px; color: var(--ink-2); }
.opt legend, .opt .t { font-weight: 650; color: var(--ink); padding: 0 4px; }
.opt label { display: flex; gap: 8px; align-items: flex-start; margin-top: 6px; cursor: pointer; }
.opt input[type="radio"] { margin-top: 5px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.chip { display: inline-flex; gap: 6px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; font-size: 13.5px; }
.kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.kpi { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px; }
.kpi .v { font: 800 28px/1.1 "Source Serif 4", sans-serif; }
.kpi .l { font-size: 13px; color: var(--muted); margin-top: 4px; }
.kpi.ok .v { color: var(--ok); }
.kpi.rv .v { color: var(--warn); }
.kpi.er .v { color: var(--err); }
.kpi.fl .v { color: var(--navy); }
.ready-box { display: flex; gap: 14px; align-items: center; background: var(--ok-soft); border: 1px solid #b7e2c5; border-radius: 14px; padding: 14px 16px; margin: 16px 0; }
.ready-box svg { width: 30px; height: 30px; color: var(--ok); flex: none; }
.ready-box b { color: #0f5e2c; }
.files { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 8px; }
.files li { display: grid; grid-template-columns: auto 1fr auto auto; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: #fff; }
.files .fi { width: 34px; height: 34px; border-radius: 9px; background: var(--accent-soft); color: var(--navy); display: grid; place-items: center; font: 800 11px "Public Sans"; }
.files .nm { font-family: ui-monospace, Consolas, monospace; font-size: 13.5px; overflow-wrap: anywhere; }
.files .ct { font-size: 13.5px; color: var(--muted); white-space: nowrap; }
.dl-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; align-items: center; }
.lock { background: var(--warn-soft); border: 1px solid #f1d38a; color: #6b4500; border-radius: 12px; padding: 12px 14px; font-size: 14.5px; margin-top: 14px; }
.lock b { color: #5a3a00; }
.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.tabs button { border: 1px solid var(--line-2); background: #fff; border-radius: 999px; padding: 6px 12px; font: 600 13.5px "Public Sans"; cursor: pointer; color: var(--ink-2); }
.tabs button[aria-pressed="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.tbl-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
table.grid { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 760px; background: #fff; }
.grid th, .grid td { padding: 9px 11px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.grid thead th { background: var(--surface); position: sticky; top: 0; font-size: 12.5px; color: var(--ink-2); }
.grid td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sev { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 6px; padding: 2px 7px; white-space: nowrap; }
.sev.error { background: var(--err-soft); color: var(--err); }
.sev.review { background: var(--warn-soft); color: var(--warn); }
.sev.warn { background: #f1f3f7; color: #4b5565; }
.sev.fixed { background: var(--ok-soft); color: var(--ok); }
.sev.info { background: var(--accent-soft); color: var(--navy); }
.chg { font-family: ui-monospace, Consolas, monospace; font-size: 12.5px; color: var(--muted); }
.chg ins { text-decoration: none; color: var(--ok); }
.more { margin-top: 10px; }
.match { font-weight: 700; }
.match.y { color: var(--ok); }
.match.n { color: var(--err); }
.busy { position: fixed; inset: 0; z-index: 50; background: rgb(250 246 241 / 80%); display: grid; place-items: center; }
.busy div { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 22px; box-shadow: var(--shadow); font-weight: 600; }
.notice { border-radius: 12px; padding: 12px 14px; font-size: 14.5px; margin-top: 12px; }
.notice.err { background: var(--err-soft); color: #7a1a12; border: 1px solid #f5c2bd; }
.notice.ok { background: var(--ok-soft); color: #0f5e2c; border: 1px solid #b7e2c5; }
.licence { display: grid; grid-template-columns: 1.2fr 1fr; gap: 20px; }
.licence textarea { width: 100%; min-height: 70px; border: 1px solid var(--line-2); border-radius: 10px; padding: 10px; font: 13px ui-monospace, Consolas, monospace; margin-top: 8px; }
.buy-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.empty { text-align: center; padding: 26px 12px; color: var(--muted); }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .hero .wrap { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .hero .wrap > * { min-width: 0; }
  .trust ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .nav .hide-s { display: none; }
  .by { margin-right: 0; }
  .top .wrap { gap: 6px 14px; padding: 8px 0; }
  .brand + .by { flex: 1 1 auto; }
  .nav { width: 100%; gap: 16px; overflow-x: auto; padding-bottom: 2px; }
  .hero { padding-top: 26px; }
  .lead { font-size: 16.5px; }
  .cta .btn { flex: 1 1 100%; }
  .steps, .plans, .checks, .opts, .licence { grid-template-columns: 1fr; }
  .trust ul { grid-template-columns: 1fr; gap: 10px; }
  .timeline { grid-template-columns: 1fr; }
  .sec { padding: 52px 0; }
  .foot .cols { grid-template-columns: 1fr 1fr; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .files li { grid-template-columns: auto 1fr; }
  .files li .ct { grid-column: 2; }
  .files li .btn { grid-column: 1 / -1; }
  .car-btn { width: 38px; height: 38px; font-size: 19px; top: auto; bottom: 8px; }
  .slide figcaption { padding: 12px 54px 14px; min-height: 64px; }
  table.cmp { min-width: 0; }
  .cmp thead { display: none; }
  .cmp tr { display: block; padding: 14px 14px 8px; border-bottom: 1px solid var(--line); }
  .cmp tr:last-child { border-bottom: 0; }
  .cmp td { display: block; border: 0; padding: 3px 0; }
  .cmp td:first-child { font-weight: 700; color: var(--ink); padding-bottom: 6px; }
  .cmp td[data-l]::before { content: attr(data-l) ": "; font-weight: 650; color: var(--muted); }
  .cmp td.us { background: #f6f1ea; border-radius: 8px; padding: 6px 8px; margin-bottom: 4px; }
  .slide img { max-height: 74vh; }
  .band .btn { width: 100%; }
}

/* ---------- Erasefold additions ---------- */
.slide video { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; background: #0f2233; }
.slide .media { position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f3f1ec; }
.slide .media img, .slide .media video { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: contain; }
.slide .media video { object-fit: cover; }
.slide .badge { position: absolute; left: 12px; top: 12px; z-index: 2; background: rgb(43 15 24 / 84%); color: #fff; font-size: 12px; font-weight: 650; padding: 4px 9px; border-radius: 999px; }
.thumbs { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.thumbs button { position: relative; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; background: #fff; cursor: pointer; aspect-ratio: 16 / 10; box-shadow: 0 1px 2px rgb(14 23 38 / 8%); }
.thumbs button img { width: 100%; height: 100%; object-fit: cover; }
.thumbs button[aria-current="true"] { border-color: var(--ember); }
.thumbs button .bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--ember); }
.thumbs button[aria-current="true"] .bar { animation: fill var(--dur, 4.5s) linear forwards; }
.carousel-box.paused .thumbs .bar { animation-play-state: paused; }
.thumbs .play { position: absolute; inset: auto auto 6px 6px; background: rgb(43 15 24 / 80%); color: #fff; font-size: 10.5px; font-weight: 700; border-radius: 999px; padding: 2px 7px; }
@keyframes fill { from { width: 0; } to { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .thumbs button[aria-current="true"] .bar { animation: none; width: 100%; } .track { transition: none; } }
.lightbox video { max-width: min(1400px, 100%); max-height: calc(100vh - 140px); margin: auto; border-radius: 10px; background: #000; }
.spec { display: inline-flex; align-items: center; gap: 8px; background: var(--ok-soft); color: #0f5e2c; border: 1px solid #b7e2c5; border-radius: 999px; padding: 5px 12px; font-size: 13.5px; font-weight: 650; }
.spec.bad { background: var(--err-soft); color: var(--err); border-color: #f5c2bd; }
.spec svg { width: 16px; height: 16px; }
.lists { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-top: 12px; }
.lists .li { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: #fff; }
.lists .li b { display: block; font: 700 15px/1.2 "Source Serif 4", sans-serif; }
.lists .li span { font-size: 13px; color: var(--muted); }
.lists .li.off { opacity: .6; }
.map { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 560px; }
.map th, .map td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; }
.map thead th { background: var(--surface); font-size: 12.5px; color: var(--ink-2); }
.map select { font: 14px "Public Sans", sans-serif; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; max-width: 100%; }
.map td.ex { font-family: ui-monospace, Consolas, monospace; font-size: 12.5px; color: var(--muted); overflow-wrap: anywhere; }
.cover { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cover span { font-size: 13px; border-radius: 999px; padding: 3px 10px; border: 1px solid var(--line); background: #fff; }
.cover span.y { border-color: #b7e2c5; background: var(--ok-soft); color: #0f5e2c; }
.cover span.n { color: var(--muted); }
.progress { height: 8px; border-radius: 999px; background: var(--surface-2); overflow: hidden; margin-top: 12px; }
.progress i { display: block; height: 100%; width: 0; background: var(--navy); transition: width .2s; }
.due { display: flex; gap: 12px; align-items: center; border: 1px solid #f0d9a3; background: var(--warn-soft); border-radius: 12px; padding: 12px 14px; margin-top: 14px; font-size: 14.5px; color: #6d2414; }
.due b { color: #7a4a00; }
.hashtool { display: grid; grid-template-columns: 180px 1fr auto; gap: 10px; margin-top: 12px; }
.hashtool select, .hashtool input { font: 14px "Public Sans", sans-serif; padding: 9px 10px; border: 1px solid var(--line-2); border-radius: 10px; min-width: 0; }
.hashout { margin-top: 10px; font: 13px ui-monospace, Consolas, monospace; color: var(--ink-2); overflow-wrap: anywhere; }
.st { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 6px; padding: 2px 7px; white-space: nowrap; }
.st.s3 { background: var(--ok-soft); color: var(--ok); }
.st.s4 { background: var(--accent-soft); color: var(--accent); }
.st.s2 { background: var(--warn-soft); color: var(--warn); }
.st.s5 { background: #f1f3f7; color: #4b5565; }
.cta .btn-ember { box-shadow: 0 10px 24px -12px rgb(160 115 0 / 45%); }
@media (max-width: 760px) {
  .thumbs { gap: 6px; }
  .hashtool { grid-template-columns: 1fr; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.grid th.num { text-align: right; }
.proof { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.proof li { font-size: 13.5px; font-weight: 600; color: var(--navy); background: var(--accent-soft); border: 1px solid #ecdc9c; border-radius: 999px; padding: 4px 11px; }
.proof li::before { content: "✓ "; color: var(--ok); }
.m-only { display: none; }
.ans-head { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: flex-start; justify-content: space-between; }
#scale .step .n { width: auto; min-width: 36px; padding: 0 8px; }
@media (max-width: 760px) {
  .m-only { display: block; margin-top: 12px; font-size: 14.5px; }
  .hero .fine { display: none; }
  .slide .media { aspect-ratio: 4 / 5; }
  .slide .media video { object-fit: contain; background: #f3f1ec; }
  .lead { font-size: 16px; }
  .ans-head .btn { width: 100%; }
}
@media (max-width: 760px) { .due { flex-direction: column; align-items: flex-start; gap: 4px; } }
@media (max-width: 760px) { .map { min-width: 0; } .map th:nth-child(2), .map td.ex { display: none; } .map select { max-width: 190px; } }
/* review round 2 */
.car-nav { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.car-nav .car-btn { position: static; flex: none; width: 38px; height: 38px; font-size: 20px; box-shadow: none; }
.car-nav .thumbs { flex: 1; margin-top: 0; }
.m-only-btn { display: none; }
.proofbtn { border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.vectors { width: min(980px, calc(100% - 24px)); max-height: 86vh; border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: var(--shadow); }
.vectors::backdrop { background: rgb(8 14 26 / 60%); }
.vec-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 6px; }
.vec-head h2 { font-size: 20px; }
.vectors .lb-close { position: static; background: var(--surface-2); color: var(--ink); width: 38px; height: 38px; font-size: 18px; }
.vectors .grid { min-width: 720px; font-size: 12.5px; }
.vectors td.h { font-family: ui-monospace, Consolas, monospace; overflow-wrap: anywhere; }
.deliv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.deliv div { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--surface); }
.deliv b { display: block; font: 700 15px/1.3 "Source Serif 4", sans-serif; }
.deliv span { font-size: 13px; color: var(--muted); }
@media (max-width: 760px) {
  .d-only { display: none; }
  .m-only-btn { display: inline-flex; }
  .nav .allapps { display: none; }
  .nav .hide-s { display: inline; }
  .hero .wrap { gap: 0; }
  .hero .wrap > div:first-child { display: contents; }
  .hero .eyebrow { order: 1; justify-self: start; }
  .hero h1 { order: 2; }
  .hero .cta { order: 3; }
  .hero #buy-status { order: 3; }
  .hero .carousel-box { order: 4; margin: 20px 0 6px; }
  .hero .lead { order: 5; margin-top: 14px; }
  .hero .offer { order: 6; }
  .hero .proof { order: 7; }
  .hero .fine { order: 8; }
  .hero h1 { font-size: 2rem; margin: 14px 0 14px; }
  .deliv { grid-template-columns: 1fr; }
  .cmp td.us { border-left: 3px solid var(--ember); font-weight: 600; }
}
/* review round 3 */
.lead-m { display: none; }
.pts { margin: 10px 0 0; padding-left: 18px; color: var(--ink-2); font-size: 15px; }
.pts li { margin-bottom: 6px; }
.sub-h { font-size: 18px; margin-top: 34px; }
.checks.small li { font-size: 15px; }
.recv { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; margin-top: 24px; }
.recv h3 { font: 600 14px/1.4 ui-monospace, Consolas, monospace; margin-bottom: 8px; }
.recv .grid { min-width: 560px; font-size: 12.5px; }
.pre { margin: 0; background: #0f2233; color: #f8ebe1; border-radius: 12px; padding: 14px; font: 12px/1.55 ui-monospace, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 1080px) { .recv { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  .hero .lead { display: none; }
  .lead-m { display: block; order: 3; color: var(--ink-2); font-size: 16px; margin: 0 0 12px; }
  .hero .proof { order: 4; margin-top: 0; }
  .hero .cta { order: 5; margin-top: 18px; }
  .hero #buy-status { order: 5; }
  .hero .carousel-box { order: 6; }
  .hero .offer { order: 7; }
  .car-nav .car-btn { width: 44px; height: 44px; }
  .eyebrow { font-size: 12.5px; }
}
/* review round 4 */
.who { margin-top: 18px; border: 1px solid var(--line); border-left: 3px solid var(--navy); border-radius: 12px; padding: 12px 14px; font-size: 14.5px; color: var(--ink-2); background: #fff; }
.slide[data-video] .media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 56px; background: linear-gradient(transparent, rgb(255 255 255 / 92%)); pointer-events: none; }
@media (max-width: 760px) {
  .hero .offer { order: 5; margin-top: 12px; }
  .recv .grid { min-width: 0; }
  .recv .grid thead { display: none; }
  .recv .grid tr { display: block; padding: 10px 12px; border-bottom: 1px solid var(--line); }
  .recv .grid td { display: block; border: 0; padding: 2px 0; }
  .recv .grid td[data-l]::before { content: attr(data-l) ": "; color: var(--muted); font-weight: 600; }
  .pre { font-size: 11.5px; }
}
/* review round 5 */
.m-only-note { display: none; }
.sqlbox { margin-top: 10px; max-width: 760px; }
.sqlbox p { color: var(--ink-2); margin-bottom: 10px; }
.sample-bar { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; background: var(--accent-soft); border: 1px solid #ecdc9c; border-radius: 12px; padding: 12px 14px; margin-top: 14px; font-size: 14.5px; color: var(--navy); }
@media (max-width: 760px) {
  .m-only-note { display: block; order: 5; font-size: 13px; color: var(--muted); margin-top: 8px; }
  .hero .cta .btn { flex: 1 1 100%; }
  .pre { max-height: 420px; overflow: auto; }
}
/* review round 6 */
.handoff { display: none; }
.stepper { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.stepper a { font-size: 13.5px; font-weight: 600; text-decoration: none; color: var(--ink-2); border: 1px solid var(--line-2); background: #fff; border-radius: 999px; padding: 5px 12px; }
.stepper a.done { border-color: #b7e2c5; background: var(--ok-soft); color: #0f5e2c; }
.stepper a.done::before { content: "✓ "; }
.pre.pv { max-height: 360px; overflow: auto; white-space: pre; }
@media (max-width: 760px) {
  .handoff { display: block; order: 5; margin-top: 12px; border: 1px solid #ecdc9c; background: var(--accent-soft); border-radius: 14px; padding: 12px; }
  .handoff b { display: block; color: var(--navy); font-size: 14.5px; }
  .handoff .row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
  .handoff .btn { flex: 1 1 100%; }
  .handoff span { display: block; font-size: 12.5px; color: var(--muted); margin-top: 6px; }
  .hero .proof { order: 6; margin-top: 12px; }
  .hero .carousel-box { order: 7; }
  .hero .offer { order: 6; }
  #receives .pre { white-space: pre; overflow-x: auto; }
}
/* review round 7 */
.procure { background: #fff; padding: 14px 0 0; }
.procure-box { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; border: 1px solid var(--line); border-left: 3px solid var(--navy); border-radius: 12px; padding: 12px 14px; font-size: 14.5px; color: var(--ink-2); }
.procure-box b { color: var(--navy); }
@media (max-width: 760px) {
  #receives .pre { white-space: pre-wrap; overflow-x: hidden; font-size: 11px; }
  .hero .offer { order: 8; }
  .hero .eyebrow { font-size: 12px; padding: 5px 10px; }
}

/* ---------- Tagscope app additions ---------- */
.queue { display: grid; gap: 8px; margin-top: 14px; }
.qi { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; background: #fff; }
.qi b { font-size: 15px; }
.qi span { color: var(--muted); font-size: 14px; }
.qi.off { background: var(--surface); }
.app-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; margin-top: 14px; }
.field label { display: block; font-weight: 700; font-size: 14.5px; margin-bottom: 6px; }
.field select, .field input[type="text"], .field input[type="number"] { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 10px; background: #fff; color: var(--ink); }
.field .hint { margin-top: 4px; }
.progress-text { font-size: 14px; color: var(--muted); margin-top: 8px; overflow-wrap: anywhere; }
.kpis.ts { grid-template-columns: repeat(5, minmax(0, 1fr)); }
button.kpi { text-align: left; font: inherit; cursor: pointer; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
button.kpi:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
button.kpi b { display: block; font: 800 30px/1.05 "Source Serif 4", sans-serif; }
button.kpi span { display: block; font-size: 13.5px; color: var(--muted); margin-top: 4px; }
.kpi.k-pass b { color: var(--ok); }
.kpi.k-quickfix b { color: var(--accent); }
.kpi.k-remediate b { color: var(--warn); }
.kpi.k-ocr b, .kpi.k-error b { color: var(--err); }
.res-cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; margin-top: 18px; }
.panel { border: 1px solid var(--line); border-radius: 14px; padding: 16px; background: #fff; }
.panel h3 { font-size: 17px; margin-bottom: 10px; }
.issues { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.issues li { display: grid; grid-template-columns: minmax(0, 1fr) 84px 32px; grid-template-areas: "it it n" "bar wc wc"; gap: 3px 10px; align-items: center; font-size: 14px; }
.issues .it { grid-area: it; }
.issues .wc { grid-area: wc; font-size: 12px; color: var(--muted); text-align: right; white-space: nowrap; }
.issues .bar { grid-area: bar; height: 7px; background: var(--surface-2); border-radius: 99px; overflow: hidden; }
.issues .bar i { display: block; height: 100%; background: var(--warn); border-radius: 99px; }
.issues b { grid-area: n; text-align: right; font-variant-numeric: tabular-nums; }
.exc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ex { border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: var(--surface); }
.ex b { font: 800 24px/1 "Source Serif 4", sans-serif; }
.ex h4 { font-size: 14px; margin: 6px 0 4px; letter-spacing: 0; }
.ex p { font-size: 12.5px; color: var(--muted); line-height: 1.45; }
.plan-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; font-size: 14px; }
.plan-list b { display: inline-block; min-width: 34px; color: var(--navy); }
.ftabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 8px; }
.ftabs button { font: inherit; font-size: 13.5px; border: 1px solid var(--line-2); background: #fff; border-radius: 999px; padding: 5px 12px; cursor: pointer; color: var(--ink-2); }
.ftabs button[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.grid td.fn { font-family: ui-monospace, Consolas, monospace; font-size: 12.5px; overflow-wrap: anywhere; min-width: 190px; max-width: 280px; }
.grid td.iss { font-size: 13px; color: var(--ink-2); min-width: 220px; }
.badge { display: inline-block; font-size: 12.5px; font-weight: 700; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.b-ok { background: var(--ok-soft); color: var(--ok); }
.b-info { background: var(--accent-soft); color: var(--accent); }
.b-warn { background: var(--warn-soft); color: var(--warn); }
.b-err { background: var(--err-soft); color: var(--err); }
.rows-more { font-size: 14px; margin-top: 10px; color: var(--ink-2); }
.dl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.dl-grid .btn { justify-content: flex-start; text-align: left; }
.flash { animation: flash 1.4s var(--ease); }
.btn.locked { opacity: .78; }
button.kpi em { display: block; font-style: normal; font-size: 12.5px; color: var(--accent); margin-top: 6px; font-weight: 700; }
button.kpi[aria-pressed="true"] { border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); }
.exc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.facts { margin-top: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); padding: 14px 18px; }
.facts ul { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 4px; font-size: 14.5px; }
.slide[data-video] .media::after { display: none; }
.thumbs .play { font-size: 11px; }
.m-only { display: none; }
@media (max-width: 760px) {
  .m-only { display: revert; }
  .nav a.m-only { margin-top: 0; font-size: inherit; }
  .nav a.d-only { display: none; }
  .sample-out tbody tr:nth-child(n+4) { display: none; }
  .deliv { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .deliv span { font-size: 13px; }
  .thumbs button:not(:first-child) .play { display: none; }
  .thumbs .play b { display: none; }
  .cmp-tools tbody tr:nth-child(1), .cmp-tools tbody tr:nth-child(4) { display: none; }
}
@keyframes flash { 0%, 100% { background: transparent; } 30% { background: var(--warn-soft); } }
@media (max-width: 960px) {
  .app-grid, .res-cols { grid-template-columns: 1fr; }
  .kpis.ts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .exc, .dl-grid { grid-template-columns: 1fr; }
  .proof li:nth-child(n+4) { display: none; }
  .ex { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 10px; padding: 10px 12px; }
  .ex b { grid-row: span 2; align-self: center; text-align: center; }
  .ex h4 { margin: 0 0 2px; }
}
/* keyboard focus on the visually hidden file inputs shows on their visible label buttons */
label.btn:has(+ input.sr:focus-visible) { outline: 3px solid rgb(138 42 64 / 50%); outline-offset: 2px; }

/* Linewarden results (v1) */
.kpis.lw { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.kpi.k-lead b { color: var(--err); }
.kpi.k-grr b { color: var(--warn); }
.kpi.k-unknown b { color: var(--accent); }
.kpi.k-nonlead b { color: var(--ok); }
.kpi.k-conn b, .kpi.k-connu b { color: var(--navy); }
.mini { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 6px; }
.mini th, .mini td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.mini th { font-weight: 600; color: var(--muted); font-size: 13px; }
.mini td.n, .mini th.n { text-align: right; font-variant-numeric: tabular-nums; }
.big-n { font: 800 26px/1.1 "Source Serif 4", sans-serif; color: var(--ink); }
.map-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 16px; margin-top: 12px; }
.map-grid label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 3px; }
.map-grid select { width: 100%; }
.map-grid .req label::after { content: " *"; color: var(--err); }
.fmt { display: inline-flex; gap: 8px; align-items: center; background: var(--accent-soft); color: var(--navy); border-radius: 999px; padding: 4px 12px; font-size: 13.5px; font-weight: 600; }
.chk { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; margin-top: 8px; }
.chk input { margin-top: 4px; width: 18px; height: 18px; flex: none; }
.sev-error { color: var(--err); font-weight: 600; }
.sev-warn { color: var(--warn); font-weight: 600; }
.sev-info { color: var(--muted); }
.cls { display: inline-block; border-radius: 999px; padding: 2px 10px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.cls-lead { background: var(--err-soft); color: var(--err); }
.cls-grr { background: var(--warn-soft); color: var(--warn); }
.cls-unknown { background: var(--accent-soft); color: var(--accent); }
.cls-nonlead { background: var(--ok-soft); color: var(--ok); }
@media (max-width: 960px) { .kpis.lw { grid-template-columns: repeat(3, minmax(0, 1fr)); } .map-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .kpis.lw { grid-template-columns: repeat(2, minmax(0, 1fr)); } .map-grid { grid-template-columns: minmax(0, 1fr); } }
.price-m { font-size: 15px; color: var(--ink-2); margin-top: 10px; }
.price-m b { color: #7a5200; }
@media (max-width: 760px) { .hero .price-m { order: 3; margin: 12px 0 0; } }
/* review round 2 (Linewarden): phones get readable text tabs instead of tiny thumbnails; compact count tiles */
@media (max-width: 760px) {
  .thumbs { gap: 6px; }
  .thumbs button { aspect-ratio: auto; height: 36px; background: var(--surface); border: 1px solid var(--line-2); }
  .thumbs button img { display: none; }
  .thumbs button .play, .thumbs button:not(:first-child) .play { display: block; position: static; inset: auto; background: none; color: var(--navy); font-size: 12.5px; padding: 0 2px; line-height: 34px; text-align: center; }
  .thumbs .play b { display: inline; }
  .thumbs button[aria-current="true"] { border: 2px solid var(--ember); background: var(--ember-soft); }
}
@media (max-width: 560px) {
  .kpis.lw { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .kpis.lw button.kpi { padding: 10px 9px; }
  .kpis.lw button.kpi b { font-size: 22px; }
  .kpis.lw button.kpi span { font-size: 12px; line-height: 1.3; }
}
.sample-out td:first-child { white-space: nowrap; }
@media (max-width: 760px) {
  .car-nav .car-btn { display: none; }
  .car-nav .thumbs { gap: 5px; }
  .thumbs button .play, .thumbs button:not(:first-child) .play { font-size: 12px; padding: 0; letter-spacing: -0.01em; }
  .thumbs button .play b { display: inline !important; }
  .thumbs button .play i { font-style: normal; font-size: 10px; }
}
.plan .btn, .licence .buy-row .btn { display: block; text-align: center; }

/* ---------- Bidtally components ---------- */
.kpis.bt { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.kpis.bt .kpi b { display: block; font: 800 26px/1.1 "Source Serif 4", sans-serif; color: var(--navy); overflow-wrap: anywhere; }
.kpis.bt .kpi span { display: block; font-size: 13px; color: var(--muted); margin-top: 4px; line-height: 1.3; }
.kpi.k-err b { color: var(--err) !important; }
.kpi.k-warn b { color: var(--warn) !important; }
.kpi.k-ok b { color: var(--ok) !important; }
.app-grid .wide { grid-column: 1 / -1; }
.field input[type="date"], .field textarea { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 10px; background: #fff; color: var(--ink); }
.field textarea { resize: vertical; min-height: 76px; }
.inline { display: flex; gap: 8px; align-items: stretch; }
.inline input { flex: 1; min-width: 0; }
.inline .btn { white-space: nowrap; }
.due-mini { margin-top: 12px; font-size: 15px; color: var(--ink-2); }
.due-mini b { color: var(--navy); }
.sub-h { font-size: 16px; margin: 20px 0 6px; }
.row-btns { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
table.factors { min-width: 640px; }
table.factors input[type="text"], table.factors input[type="number"], table.factors select { width: 100%; font: inherit; font-size: 14px; padding: 7px 9px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; color: var(--ink); }
table.factors td.n input { max-width: 90px; text-align: right; }
.drop-s { padding: 18px; }
.svc { margin-top: 14px; }
.svc h3 { font-size: 16px; margin-bottom: 6px; }
.svc-warn { font-size: 14px; margin: 0 0 8px; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.grid tr.is-sel td, .sample-out tr.is-sel td { background: #fffaea; }
.cls-sel { background: var(--ember-soft); color: #6b4a00; }
.cls-best { background: var(--ok-soft); color: var(--ok); }
.cls-off { background: var(--surface-2); color: var(--muted); }
.sample-out td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 960px) { .kpis.bt { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .kpis.bt { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .kpis.bt .kpi { padding: 10px 11px; }
  .kpis.bt .kpi b { font-size: 21px; }
  .inline { flex-direction: column; }
}

/* ---------- review round 1 (Bidtally) ---------- */
.due .short { display: none; }
.editor { margin-top: 12px; border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: var(--surface); }
table.editor-grid { min-width: 980px; }
table.editor-grid input[type="text"], table.editor-grid input[type="date"] { width: 100%; min-width: 70px; font: inherit; font-size: 13.5px; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; color: var(--ink); }
table.editor-grid input.num { text-align: right; max-width: 110px; }
table.editor-grid input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--accent); }
.recv2 { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 28px; }
.recv2 .table-scroll { margin-top: 0; }
.memo-fig { margin: 0; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; box-shadow: var(--shadow); }
.memo-fig a { display: block; }
.memo-fig img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top left; }
.memo-fig figcaption { padding: 10px 14px; font-size: 13.5px; color: var(--ink-2); border-top: 1px solid var(--line); }
@media (max-width: 960px) { .recv2 { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .hero .offer { display: none; } }
@media (max-width: 560px) {
  .due .long { display: none; }
  .due .short { display: inline; }
  .kpis.bt { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .kpis.bt .kpi { padding: 9px 8px; border-radius: 12px; }
  .kpis.bt .kpi b { font-size: 17px; }
  .kpis.bt .kpi span { font-size: 11.5px; line-height: 1.25; }
  table.grid.scored { min-width: 0; }
  .grid.scored thead { display: none; }
  .grid.scored tr { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 12px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
  .grid.scored td { display: block; border: 0; padding: 1px 0; text-align: left !important; white-space: normal; }
  .grid.scored td[data-l]::before { content: attr(data-l) ": "; color: var(--muted); font-weight: 600; font-size: 12px; }
  .grid.scored td[data-l="Bidder"], .grid.scored td[data-l="Result"] { grid-column: 1 / -1; }
  .grid.scored td[data-l="Bidder"]::before, .grid.scored td[data-l="Result"]::before { content: none; }
  table.editor-grid { min-width: 0; }
  .editor-grid thead { display: none; }
  .editor-grid tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
  .editor-grid td { display: block; border: 0; padding: 0; }
  .editor-grid td[data-l]::before { content: attr(data-l); display: block; color: var(--muted); font-weight: 600; font-size: 12px; margin-bottom: 2px; }
}
@media (max-width: 560px) {
  .grid.scored tr.is-sel { background: #fffaea; }
  .grid.scored tr.is-sel td { background: transparent; }
  .grid.scored td.num { font-size: 14px; }
}

/* ---------- review round 2 (Bidtally) ---------- */
.memo-fig .memo-open { display: block; position: relative; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.memo-fig .zoom { position: absolute; right: 10px; bottom: 10px; background: rgb(43 15 24 / 86%); color: #fff; font-size: 12.5px; font-weight: 650; padding: 4px 10px; border-radius: 999px; }
.recv2 { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
.price-m a { color: inherit; text-decoration-color: var(--line-2); }
@media (max-width: 560px) {
  .is-app .card { padding: 16px 12px; }
  .is-app .app-main .wrap { width: min(var(--wrap), 100% - 20px); }
  .kpis.bt .kpi b { font-size: 15.5px; white-space: nowrap; letter-spacing: -0.02em; }
  .kpis.bt .kpi { padding: 8px 7px; }
}

/* quote row under the pricing note (purchase pack, 30.10) */
.bp-quote-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 16px; font-size: 14.5px; color: var(--ink-2); }
@media (max-width: 760px) { .bp-quote-row .btn { width: 100%; } }

/* link under the Consultant plan to /consultants/ (30.10) */
.plan-more { display: block; text-align: center; font-size: 14px; font-weight: 650; color: var(--navy); margin-top: 2px; }

/* ---------- Bondtally additions (30.10.2026) ---------- */
.issuer-form { margin-top: 18px; border: 1px solid var(--line); border-left: 3px solid var(--navy); border-radius: 12px; padding: 12px 14px; background: #fff; }
.issuer-form label { display: block; font-size: 14.5px; color: var(--ink-2); }
.issuer-form .row, .lookup-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.issuer-form input, .lookup-row input { flex: 1 1 220px; min-width: 0; font: 400 15.5px/1.3 inherit; font-family: inherit; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 10px; background: #fff; color: var(--ink); }
.lookup-row { margin-top: 12px; }
.opts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 18px; margin-top: 14px; }
.more-box { margin-top: 14px; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; background: var(--surface); }
.more-box summary { cursor: pointer; font-weight: 600; color: var(--navy); }
.more-box textarea, #yield-box textarea { width: 100%; font: 13.5px/1.45 ui-monospace, Consolas, monospace; border: 1px solid var(--line-2); border-radius: 10px; padding: 8px 10px; }
.due.v-pay { border-color: #f5c2bd; background: var(--err-soft); }
.due.v-pay b { color: var(--err); }
.due.v-none { border-color: #b7e2c5; background: var(--ok-soft); }
.due.v-none b { color: #0f5e2c; }
.due span { color: var(--ink-2); }
.sev-ok { color: var(--ok); font-weight: 600; }
.exc-row { margin: 0 0 10px; font-size: 14.5px; }
.exc-row small { color: var(--muted); }
.grid.fv tr.cr td { color: var(--muted); font-style: italic; }
.grid.fv tr.tot td { font-weight: 700; border-top: 2px solid var(--navy); }
.grid.port tr.soon td { background: #fff7e8; }
.mini tr.is-sel td { background: var(--accent-soft); }
.kpi.k-pass b { color: var(--ok); }
@media (max-width: 760px) { .opts-grid { grid-template-columns: 1fr; } .hero .issuer-form { order: 5; } }
@media (max-width: 760px) {
  table.grid.fv, table.grid.port, table.grid.editor-grid { min-width: 0; }
  .grid.fv thead, .grid.port thead, .grid.editor-grid thead { display: none; }
  .grid.fv tr, .grid.port tr, .grid.editor-grid tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4px 12px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
  .grid.fv td, .grid.port td, .grid.editor-grid td { display: block; border: 0; padding: 0; text-align: left; white-space: normal; }
  .grid.fv td[data-l]::before, .grid.port td[data-l]::before, .grid.editor-grid td[data-l]::before { content: attr(data-l); display: block; font-size: 11.5px; font-weight: 600; color: var(--muted); }
  .grid.fv td[data-l="Description"], .grid.port td[data-l="Issue"], .grid.editor-grid td[data-l="Description"] { grid-column: 1 / -1; }
  .grid.fv tr.tot { display: flex; justify-content: space-between; }
  .grid.port tr.soon { background: #fff7e8; }
  .grid.editor-grid input, .grid.editor-grid select { width: 100%; }
}
