/* Swapwright (barterbazarr.com) design system v1.0. Written fresh for this site (SPEC 3): woven stripe, market awnings,
   balance beam, paper Swap Sheet, ticket-stub pricing. Rozha One (display) + Rosario (text), both SIL OFL, self-hosted. */
@font-face { font-family: "Rozha One"; src: url("/assets/fonts/rozha-one-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Rosario"; src: url("/assets/fonts/rosario-latin-wght-normal.woff2") format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }

:root {
  --paper: #f7f0e4;
  --paper-2: #efe4d1;
  --card: #fffdf8;
  --ink: #1e2242;
  --ink-2: #474a66;
  --muted: #6b6c80;
  --line: #ddd0b9;
  --give: #b8492a;      /* terracotta: You give */
  --give-soft: #f6dfd3;
  --get: #1d6b66;       /* teal: They give */
  --get-soft: #d5ebe6;
  --sun: #e3a12f;       /* saffron accent */
  --sun-soft: #fbeccb;
  --brass: #a67c2e;
  --radius: 18px;
  --shadow: 0 1px 0 rgba(30, 34, 66, .06), 0 14px 34px -18px rgba(30, 34, 66, .35);
  --display: "Rozha One", "Georgia", serif;
  --text: "Rosario", "Segoe UI", system-ui, sans-serif;
  --w: 1180px;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 1.0625rem/1.6 var(--text); overflow-x: hidden; }
img, svg { max-width: 100%; }
a { color: var(--ink); text-decoration-color: var(--sun); text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:hover { color: var(--give); }
:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; border-radius: 4px; }
.skip { position: absolute; left: -999px; top: 0; background: var(--ink); color: #fff; padding: .6rem 1rem; z-index: 10; }
.skip:focus { left: 1rem; }
.shell { width: 100%; max-width: var(--w); margin: 0 auto; padding: 0 24px; }
.narrow { max-width: 780px; }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.num { font-variant-numeric: tabular-nums; }

/* ---------- woven stripe ---------- */
.weave { height: 12px; background:
  repeating-linear-gradient(90deg, var(--give) 0 18px, var(--sun) 18px 24px, var(--ink) 24px 40px, var(--get) 40px 46px, var(--paper) 46px 50px); }
.weave--thin { height: 6px; opacity: .9; background:
  repeating-linear-gradient(90deg, var(--get) 0 10px, var(--paper) 10px 14px, var(--give) 14px 24px, var(--paper) 24px 28px); }

/* ---------- header ---------- */
.hdr { background: var(--paper); border-bottom: 1px solid var(--line); }
.hdr__in { display: flex; align-items: center; gap: 28px; min-height: 76px; }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); }
.brand svg { width: 38px; height: 38px; flex: none; }
.brand__name { font: 400 1.85rem/1 var(--display); letter-spacing: .01em; }
.menu { display: flex; gap: 6px; margin-left: auto; flex-wrap: wrap; }
.menu a { padding: 10px 14px; border-radius: 999px; font-weight: 600; font-size: .98rem; text-decoration: none; color: var(--ink-2); min-height: 44px; display: inline-flex; align-items: center; }
.menu a:hover { background: var(--paper-2); color: var(--ink); }
.menu a[aria-current="page"] { background: var(--ink); color: var(--paper); }
.hdr__cta { display: none; }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 22px; border-radius: 999px;
  background: var(--give); color: #fff; font: 700 1rem/1.1 var(--text); text-decoration: none; border: 2px solid var(--give); cursor: pointer; }
.btn:hover { background: #9d3b20; border-color: #9d3b20; color: #fff; }
.btn--ink { background: var(--ink); border-color: var(--ink); }
.btn--ink:hover { background: #12152c; border-color: #12152c; }
.btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--ghost:hover { background: var(--ink); color: var(--paper); }
.btn--small { min-height: 44px; padding: 8px 16px; font-size: .95rem; }
.btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.linkbtn { background: none; border: 0; padding: 10px 0; min-height: 44px; font: 600 .95rem var(--text); color: var(--give); text-decoration: underline; cursor: pointer; }

/* ---------- type ---------- */
.eyebrow { font: 700 .8rem/1.2 var(--text); letter-spacing: .16em; text-transform: uppercase; color: var(--give); margin: 0 0 12px; }
.h1 { font: 400 clamp(2.4rem, 5.6vw, 4.4rem)/1.02 var(--display); margin: 0 0 18px; letter-spacing: -.005em; }
.h2 { font: 400 clamp(1.8rem, 3.6vw, 2.7rem)/1.08 var(--display); margin: 0 0 14px; }
.h3 { font: 400 1.5rem/1.15 var(--display); margin: 0 0 10px; }
.lede { font-size: 1.2rem; color: var(--ink-2); max-width: 38em; margin: 0 0 22px; }
.hl { background: linear-gradient(transparent 62%, var(--sun-soft) 62%); padding: 0 .08em; }
.give { color: var(--give); }
.get { color: var(--get); }
p { margin: 0 0 14px; }

/* ---------- hero ---------- */
.hero { padding: 64px 0 56px; position: relative; }
.hero__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.hero__fine { font-size: .95rem; color: var(--muted); margin-top: 18px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; }
.chips li { border: 1px solid var(--line); background: var(--card); border-radius: 999px; padding: 6px 14px; font-size: .92rem; font-weight: 600; color: var(--ink-2); }

/* ---------- the scale card ---------- */
.scale { background: var(--card); border-radius: 26px; box-shadow: var(--shadow); padding: 26px 26px 22px; border: 1px solid var(--line); }
.beam { display: block; width: 100%; height: auto; margin: 0 auto 6px; }
.beam .bar { fill: var(--brass); }
.beam .post { fill: var(--ink); }
.beam .pan-y { fill: var(--give-soft); stroke: var(--give); stroke-width: 2; }
.beam .pan-t { fill: var(--get-soft); stroke: var(--get); stroke-width: 2; }
.beam .cord { stroke: var(--brass); stroke-width: 1.6; }
.beam text { font: 700 13px var(--text); }
.pans { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pan { border-radius: 14px; padding: 14px 16px; }
.pan--y { background: var(--give-soft); }
.pan--t { background: var(--get-soft); }
.pan h3 { font: 700 .78rem/1.2 var(--text); letter-spacing: .14em; text-transform: uppercase; margin: 0 0 8px; }
.pan--y h3 { color: var(--give); }
.pan--t h3 { color: var(--get); }
.pan ul { list-style: none; margin: 0 0 8px; padding: 0; font-size: .95rem; }
.pan li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px dashed rgba(30, 34, 66, .15); }
.pan li span:last-child { font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.pan__total { display: flex; justify-content: space-between; font-weight: 700; font-size: 1.05rem; margin: 6px 0 0; }
.verdict { margin: 16px 0 0; padding: 16px 18px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); }
.verdict__tag { display: inline-block; font: 700 .78rem/1 var(--text); letter-spacing: .12em; text-transform: uppercase; padding: 6px 10px; border-radius: 6px; margin-bottom: 8px; color: #fff; }
.verdict__tag--even { background: var(--get); }
.verdict__tag--close { background: var(--sun); color: var(--ink); }
.verdict__tag--lopsided { background: var(--give); }
.verdict__tag--empty { background: var(--muted); }
.verdict__say { font: 400 1.45rem/1.2 var(--display); margin: 0 0 6px; }
.verdict__fix { margin: 0; color: var(--ink-2); }

/* ---------- sections ---------- */
.band { padding: 72px 0; }
.band--sand { background: var(--paper-2); }
.band--ink { background: var(--ink); color: var(--paper); }
.band--ink a { color: var(--paper); }
.band--ink .eyebrow { color: var(--sun); }
.sechead { max-width: 760px; margin-bottom: 34px; }

/* market stalls: the three tools */
.stalls { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.stall { background: var(--card); border-radius: 0 0 var(--radius) var(--radius); box-shadow: var(--shadow); display: flex; flex-direction: column; }
.stall__awning { height: 30px; background: repeating-linear-gradient(90deg, var(--c, var(--give)) 0 24px, var(--card) 24px 48px); position: relative; border-radius: 8px 8px 0 0; }
.stall__awning::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 12px;
  background: radial-gradient(circle at 12px 0, var(--c, var(--give)) 11.5px, transparent 12px) 0 0 / 24px 12px repeat-x; }
.stall--get { --c: var(--get); }
.stall--sun { --c: var(--sun); }
.stall__body { padding: 30px 24px 24px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.stall__body p { color: var(--ink-2); }
.stall__price { margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--line); font-size: .95rem; }
.stall__price b { font-variant-numeric: tabular-nums; }

/* how it works */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; counter-reset: s; list-style: none; padding: 0; margin: 0; }
.steps li { counter-increment: s; border-top: 3px solid var(--ink); padding-top: 14px; }
.steps li::before { content: counter(s, decimal-leading-zero); font: 400 2.2rem/1 var(--display); color: var(--give); display: block; margin-bottom: 8px; }
.steps b { display: block; font-size: 1.08rem; margin-bottom: 4px; }

/* condition ladder */
.ladder { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); margin: 18px 0; }
.ladder div { padding: 14px 12px; background: var(--card); border-right: 1px solid var(--line); }
.ladder div:last-child { border-right: 0; }
.ladder b { display: block; font: 400 1.7rem/1 var(--display); color: var(--get); }
.ladder span { font-size: .9rem; color: var(--ink-2); }

/* tax strip */
.facts { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: start; }
.quote { border-left: 4px solid var(--sun); padding: 4px 0 4px 18px; font-size: 1.12rem; margin: 0 0 14px; }
.quote cite { display: block; font-style: normal; font-size: .9rem; color: var(--sun); margin-top: 6px; }

/* ---------- ticket-stub pricing ---------- */
.tickets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ticket { position: relative; background: var(--card); border-radius: 16px; box-shadow: var(--shadow); padding: 26px 24px 22px; display: flex; flex-direction: column;
  background-image: radial-gradient(circle at 0 64px, var(--paper) 12px, transparent 12.5px), radial-gradient(circle at 100% 64px, var(--paper) 12px, transparent 12.5px); }
.band--sand .ticket { background-image: radial-gradient(circle at 0 64px, var(--paper-2) 12px, transparent 12.5px), radial-gradient(circle at 100% 64px, var(--paper-2) 12px, transparent 12.5px); }
.ticket__k { font: 700 .8rem/1 var(--text); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); height: 38px; margin: 0; border-bottom: 2px dashed var(--line); }
.ticket__v { font: 400 2.6rem/1 var(--display); margin: 22px 0 4px; }
.ticket__v small { font: 600 1rem var(--text); color: var(--ink-2); }
.ticket__alt { color: var(--ink-2); margin: 0 0 14px; }
.ticket ul { padding-left: 1.1em; margin: 0 0 18px; color: var(--ink-2); }
.ticket li { margin-bottom: 6px; }
.ticket .btn { margin-top: auto; }
.ticket--pass { border: 2px solid var(--give); }
.ticket--pass .ticket__k { color: var(--give); }
.preview { background: var(--sun-soft); border: 1px solid #ecd197; border-radius: 12px; padding: 12px 14px; font-size: .95rem; margin: 0 0 16px; }
.preview strong { color: #7a5410; }

/* the price line at the point of use */
.pricetag { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; border: 1px dashed var(--brass); border-radius: 12px; padding: 12px 16px; background: var(--card); font-size: .97rem; margin: 18px 0; }
.pricetag b { font-variant-numeric: tabular-nums; }
.pricetag__k { font: 700 .75rem/1 var(--text); letter-spacing: .14em; text-transform: uppercase; color: var(--brass); }
.pricetag strong { background: var(--sun-soft); padding: 2px 8px; border-radius: 6px; }

/* ---------- forms ---------- */
.form { display: grid; gap: 16px; }
label, .label { font-weight: 700; font-size: .95rem; display: block; margin-bottom: 6px; }
.hint { font-weight: 400; color: var(--muted); font-size: .9rem; }
input[type=text], input[type=date], input[type=number], input[inputmode], select, textarea {
  width: 100%; min-height: 46px; padding: 10px 12px; border: 1.5px solid #cdbfa5; border-radius: 10px; background: #fff;
  font: 400 1rem var(--text); color: var(--ink); }
input:focus, select:focus { border-color: var(--ink); outline: 3px solid var(--sun-soft); }
.errs { background: var(--give-soft); border-left: 4px solid var(--give); border-radius: 8px; padding: 12px 16px; margin: 0 0 18px; }
.errs ul { margin: 0; padding-left: 1.1em; }
.note { background: var(--get-soft); border-left: 4px solid var(--get); border-radius: 8px; padding: 12px 16px; margin: 0 0 18px; font-weight: 600; }
.check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; min-height: 44px; }
.check input { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--give); }

/* scale form: two sides */
.sides { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.side { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px; border-top: 6px solid var(--give); }
.side--t { border-top-color: var(--get); }
.side h2 { font: 400 1.6rem/1.1 var(--display); margin: 0 0 4px; }
.side--y h2 { color: var(--give); }
.side--t h2 { color: var(--get); }
.row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px 0; border-bottom: 1px dashed var(--line); }
.row:last-of-type { border-bottom: 0; }
.row__what { grid-column: 1 / -1; }
.row label { font-size: .8rem; font-weight: 700; color: var(--muted); margin-bottom: 3px; letter-spacing: .02em; }
.row__n { font: 400 1rem var(--display); color: var(--muted); }
.scalebar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin: 24px 0 0; }
.result { display: grid; grid-template-columns: 1.1fr 1fr; gap: 26px; align-items: start; margin-bottom: 30px; }

/* ---------- Swap Sheet (paper document) ---------- */
.sheet { background: #fff; color: #1b1b1b; max-width: 860px; margin: 0 auto; padding: 46px 52px 40px; position: relative; box-shadow: var(--shadow);
  background-image: radial-gradient(circle at 10px 0, var(--paper) 5px, transparent 5.5px); background-size: 20px 10px; background-repeat: repeat-x; }
.sheet__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; border-bottom: 3px double #1b1b1b; padding-bottom: 14px; margin-bottom: 18px; }
.sheet .sheet__title { font: 400 2.4rem/1.05 var(--display); margin: 0; }
.sheet__meta { text-align: right; font-size: .95rem; }
.sheet table { width: 100%; border-collapse: collapse; margin: 6px 0 18px; font-size: .97rem; }
.sheet th, .sheet td { text-align: left; padding: 7px 8px; border-bottom: 1px solid #ddd; vertical-align: top; }
.sheet th { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: #555; }
.sheet td.r, .sheet th.r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sheet tfoot td { font-weight: 700; border-bottom: 0; }
.sheet h2 { font: 400 1.35rem/1.1 var(--display); margin: 18px 0 6px; }
.sheet__sign { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 34px; }
.sheet__sign div { border-top: 1.5px solid #1b1b1b; padding-top: 6px; font-size: .92rem; }
.stamp { position: absolute; right: 52px; bottom: 150px; transform: rotate(-12deg); border: 4px double var(--give); color: var(--give); font: 400 1.5rem/1 var(--display);
  padding: 8px 16px; border-radius: 8px; opacity: .75; letter-spacing: .08em; }
.sheet__fine { font-size: .85rem; color: #555; margin-top: 22px; }

/* ---------- Trade Tab ---------- */
.tabhead { display: grid; grid-template-columns: 1.3fr 1fr; gap: 26px; align-items: end; margin-bottom: 26px; }
.keybox { background: var(--ink); color: var(--paper); border-radius: var(--radius); padding: 20px 22px; }
.keybox code { display: block; word-break: break-all; font: 600 1rem/1.4 ui-monospace, "Cascadia Mono", Menlo, monospace; background: rgba(255, 255, 255, .08); padding: 10px 12px; border-radius: 8px; margin: 8px 0; }
.keybox input { font-family: ui-monospace, Menlo, monospace; }
.keybox a { color: var(--sun); }
.balance { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; }
.balance__line { font: 400 1.5rem/1.2 var(--display); margin: 0 0 12px; }
.tally { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0; }
.tally div { background: var(--paper); border-radius: 10px; padding: 10px 12px; }
.tally dt { font-size: .8rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.tally dd { margin: 0; font: 400 1.6rem/1.1 var(--display); font-variant-numeric: tabular-nums; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.panel { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; }
.panel h2 { font: 400 1.5rem/1.1 var(--display); margin: 0 0 12px; }
.seg { display: flex; gap: 8px; flex-wrap: wrap; border: 0; padding: 0; margin: 0 0 4px; }
.seg legend { font-weight: 700; font-size: .95rem; margin-bottom: 6px; padding: 0; }
.seg label { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid #cdbfa5; border-radius: 999px; padding: 8px 14px; min-height: 44px; font-weight: 600; margin: 0; cursor: pointer; background: #fff; }
.seg input { accent-color: var(--give); width: 18px; height: 18px; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.entries { width: 100%; border-collapse: collapse; font-size: .97rem; }
.entries th, .entries td { padding: 10px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.entries th { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.entries td.r, .entries th.r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dir { display: inline-block; font-size: .78rem; font-weight: 700; padding: 3px 8px; border-radius: 6px; white-space: nowrap; }
.dir--gave { background: var(--give-soft); color: var(--give); }
.dir--got { background: var(--get-soft); color: var(--get); }
.years { list-style: none; padding: 0; margin: 0; }
.years li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--line); font-variant-numeric: tabular-nums; }
.danger { border: 1.5px solid var(--give); border-radius: var(--radius); padding: 18px 20px; background: #fff; }

/* ---------- guide / text pages ---------- */
.pagehead { padding: 56px 0 28px; }
.prose { max-width: 760px; }
.prose h2 { font: 400 1.9rem/1.1 var(--display); margin: 40px 0 12px; }
.prose h3 { font: 700 1.1rem/1.3 var(--text); margin: 24px 0 8px; }
.prose ul, .prose ol { padding-left: 1.2em; }
.prose li { margin-bottom: 6px; }
.toc { background: var(--card); border-radius: 14px; padding: 16px 20px; border: 1px solid var(--line); margin: 0 0 20px; }
.toc ol { margin: 0; }
.faq dl { margin: 0; }
.faq div { border-top: 1px solid var(--line); padding: 16px 0; }
.faq dt { font-weight: 700; font-size: 1.05rem; margin-bottom: 4px; }
.faq dd { margin: 0; color: var(--ink-2); }
.msg { padding: 40px 0 60px; }

/* ---------- footer ---------- */
.ftr { background: var(--ink); color: #d9d6e6; padding: 0 0 26px; margin-top: 72px; }
.ftr a { color: #fff; }
.ftr__top { display: grid; grid-template-columns: 1.2fr 2fr; gap: 40px; padding: 44px 24px 26px; }
.ftr__name { font: 400 2rem/1 var(--display); color: #fff; margin: 0 0 8px; }
.ftr__links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px 20px; }
.ftr__links a { padding: 8px 0; min-height: 44px; display: inline-flex; align-items: center; text-decoration: none; }
.ftr__links a:hover { text-decoration: underline; color: var(--sun); }
.disc { font-size: .9rem; color: #bdbad0; max-width: 62em; margin: 0; padding: 18px 0; border-top: 1px solid rgba(255, 255, 255, .12); }
.ftr__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: .9rem; padding-top: 14px; }
.ftr__pw { margin: 0; font-weight: 700; color: #fff; }
.ftr__ver { margin: 0; color: #9d9ab3; }

/* ---------- phone ---------- */
@media (max-width: 960px) {
  .hero__grid, .result, .facts, .tabhead, .grid2 { grid-template-columns: 1fr; gap: 32px; }
  .stalls, .tickets { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr 1fr; }
  .ftr__top { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .shell { padding: 0 16px; }
  .hdr__in { flex-wrap: wrap; gap: 6px 10px; padding: 12px 0 8px; min-height: 0; }
  .menu { margin-left: 0; width: 100%; gap: 2px; }
  .menu a { padding: 8px 10px; font-size: .92rem; }
  .brand__name { font-size: 1.6rem; }
  .hero { padding: 36px 0 40px; }
  .band { padding: 52px 0; }
  .sides { grid-template-columns: 1fr; }
  .pans { grid-template-columns: 1fr; }
  .scale { padding: 18px 16px; }
  .ladder { grid-template-columns: repeat(2, 1fr); }
  .ladder div { border-bottom: 1px solid var(--line); }
  .steps { grid-template-columns: 1fr; }
  .ftr__links { grid-template-columns: 1fr 1fr; }
  .sheet { padding: 32px 18px 26px; }
  .sheet__head { flex-direction: column; }
  .sheet__meta { text-align: left; }
  .sheet__sign { grid-template-columns: 1fr; gap: 30px; }
  .stamp { bottom: 170px; right: 14px; font-size: 1.1rem; }
  .two, .tally { grid-template-columns: 1fr; }
  .hide-sm { display: none; }
  .sheet th, .sheet td { padding: 6px 4px; }
  .sheet table { font-size: .9rem; }
}

/* ---------- print: Swap Sheet + year statement ---------- */
@media print {
  .hdr, .ftr, .weave, .noprint, .skip { display: none !important; }
  body { background: #fff; }
  .sheet { box-shadow: none; padding: 0; max-width: none; background-image: none; }
  .band, .pagehead { padding: 0; }
  a { text-decoration: none; color: #000; }
}
.mt-l { margin-top: 40px; }
.tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ---------- v1.1.0: AdEngine banner (adengine.us) ----------
   One labelled slot between the main content and the footer, on home, guide, pricing and the Trade Scale's worked example
   only (the controllers opt in). The label and the reserved height are on the <ins>, so when tag.js (or ae-size.js) hides a
   slot it cannot fill, the label and the space go with it. 110px = 16px label + 4px gap + 90px banner; 270px on phones
   (300x250). The footer keeps its own 72px top margin below the banner; 48px above it (40px on phones), except pricing,
   which already ends on a 72px band. Label in the site's caps style, --ink-2 (7.6:1 on the paper). display stays in this
   file and is never !important: tag.js hides a slot with style.display='none'. */
.ae-slot { padding: 0 24px; }
.ae-slot ins.adengine { display: block; max-width: 728px; min-height: 110px; margin: 48px auto 0; text-align: center; text-decoration: none; }
.ae-slot ins.adengine::before { content: "Advertisement"; display: block; margin-bottom: 4px; font: 700 11px/16px var(--text); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); }
.ae-slot ins.adengine a { display: inline-block; vertical-align: top; }
.ae-slot:has(> ins.adengine[style*="none"]) { display: none; }
main:has(> .shell:last-child > .band:last-child) + .ae-slot ins.adengine { margin-top: 0; }
@media (max-width: 767px) { .ae-slot ins.adengine { max-width: 300px; min-height: 270px; margin-top: 40px; } }
@media (max-width: 760px) { .ae-slot { padding: 0 16px; } }
@media print { .ae-slot { display: none; } }
