/* Cams Tocker — a six-person accountancy and tax practice in Kingston.
 *
 * Idiom: the filing year. Small-business clients ring an accountant to ask
 * what is due next, so the page answers it before they ring: choose the kind
 * of business and the next twelve months of filings are laid out, month by
 * month, with the next one counted down. Everything else on the page is the
 * practice's other promise — a fixed annual fee, published, and no charge for
 * a telephone call.
 *
 * Ledger grey-blue and ink with one cyan-teal for dates and the few links
 * that matter, and red reserved for "this one is next". No warmth: this is a
 * document, and it should read like one. Source Serif 4 for headings, Public
 * Sans for text and figures. Nothing here is shared with any other template.
 */

:root {
  --ledger: #eef1f4;
  --white: #ffffff;
  --ink: #0f1620;
  --ink-2: #47536180;
  --slate: #475361;
  --mute: #8794a3;
  --rule: #dde3e9;
  --teal: #0e7490;
  --teal-deep: #0a566c;
  --teal-tint: #e2f1f5;
  --flag: #b3261e;

  --gutter: clamp(1.25rem, 6vw, 7rem);
  --max: 78rem;
  --shell: min(100% - 2 * var(--gutter), var(--max));
  --serif: 'Source Serif 4', Georgia, serif;
  --sans: 'Public Sans', ui-sans-serif, system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--ledger); color: var(--ink); font: 400 clamp(1rem, 0.96rem + 0.16vw, 1.06rem)/1.6 var(--sans); }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.12; margin: 0; letter-spacing: -0.01em; }
h1 em, h2 em { font-style: normal; color: var(--teal); }

.ct-skip { position: absolute; left: -9999px; }
.ct-skip:focus { left: 1rem; top: 1rem; z-index: 99; background: var(--teal); color: #fff; padding: 0.6rem 1rem; }
.ct-shell { width: var(--shell); margin-inline: auto; }
.ct-eyebrow { margin: 0 0 0.9rem; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--teal); }
.ct-lead { font-size: 1.1rem; color: var(--slate); max-width: 36rem; }

/* ── top ────────────────────────────────────────────────────────────── */

.ct-top { position: sticky; top: 0; z-index: 40; background: rgba(238, 241, 244, 0.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--rule); }
.ct-top__in { width: var(--shell); margin-inline: auto; display: grid; grid-template-columns: auto 1fr auto auto; gap: 1.4rem; align-items: center; padding-block: 0.8rem; }
.ct-mark { display: grid; text-decoration: none; font-family: var(--serif); font-weight: 600; font-size: 1.45rem; line-height: 1.05; }
.ct-mark small { font-family: var(--sans); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mute); margin-top: 0.2rem; white-space: nowrap; }
.ct-nav { display: flex; justify-content: center; gap: clamp(0.9rem, 2.2vw, 1.8rem); }
.ct-nav a { text-decoration: none; font-size: 0.93rem; color: var(--slate); white-space: nowrap; padding-block: 0.3rem; border-bottom: 2px solid transparent; }
.ct-nav a:hover, .ct-nav a[aria-current] { color: var(--ink); border-bottom-color: var(--teal); }
.ct-next { display: grid; margin: 0; font-size: 0.76rem; line-height: 1.25; white-space: nowrap; border-left: 2px solid var(--flag); padding-left: 0.6rem; }
.ct-next span { color: var(--mute); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.66rem; }
.ct-next b { font-weight: 600; }
.ct-burger { display: none; }
.ct-cta-short { display: none; }
@media (max-width: 76rem) { .ct-next { display: none; } .ct-top__in { grid-template-columns: auto 1fr auto; } }
@media (max-width: 60rem) {
  .ct-top__in { gap: 0.8rem; grid-template-columns: auto 1fr auto; }
  .ct-top__cta { justify-self: end; }
  .ct-burger { display: grid; gap: 5px; place-content: center; width: 2.6rem; height: 2.6rem; background: none; border: 0; color: inherit; cursor: pointer; }
  .ct-burger span { display: block; width: 22px; height: 2px; background: currentColor; }
  .ct-burger em { display: none; }
  .ct-nav { grid-column: 1 / -1; grid-row: 2; flex-direction: column; gap: 0; max-height: 0; overflow: hidden; transition: max-height 0.3s; }
  .ct-nav a { padding: 0.85rem 0; border-top: 1px solid var(--rule); border-bottom: 0; }
  .ct-top[data-menu] .ct-nav { max-height: 20rem; }
}
@media (max-width: 36rem) { .ct-cta-long { display: none; } .ct-cta-short { display: inline; } .ct-mark small { display: none; } .ct-mark { font-size: 1.25rem; } }

/* ── buttons ────────────────────────────────────────────────────────── */

.ct-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; cursor: pointer; text-decoration: none; white-space: nowrap; font: 600 0.92rem/1 var(--sans); padding: 0.85rem 1.25rem; border-radius: 4px; border: 1.5px solid var(--ink); color: var(--ink); background: transparent; transition: background 0.18s, color 0.18s, border-color 0.18s; }
.ct-btn:hover { background: var(--ink); color: #fff; }
.ct-btn--ink { background: var(--ink); color: #fff; }
.ct-btn--ink:hover { background: var(--teal); border-color: var(--teal); }
.ct-btn--teal { background: var(--teal); border-color: var(--teal); color: #fff; }
.ct-btn--teal:hover { background: var(--teal-deep); border-color: var(--teal-deep); }
.ct-btn--line-light { border-color: rgba(255, 255, 255, 0.55); color: #fff; }
.ct-btn--line-light:hover { background: #fff; color: var(--ink); }
.ct-btn[aria-busy="true"] { opacity: 0.7; cursor: progress; }
.ct-row { display: flex; flex-wrap: wrap; gap: 0.7rem; align-items: center; }
.ct-link { color: var(--teal); font-weight: 600; text-decoration: none; border-bottom: 1.5px solid currentColor; }

/* ── sections ───────────────────────────────────────────────────────── */

.ct-section { padding-block: clamp(3.5rem, 7vw, 6rem); }
.ct-section--white { background: var(--white); border-block: 1px solid var(--rule); }
.ct-section--ink { background: var(--ink); color: #dbe1e8; }
.ct-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: 1rem 4rem; align-items: end; margin-bottom: clamp(1.8rem, 4vw, 2.8rem); }
.ct-head h1, .ct-head h2 { font-size: clamp(2.1rem, 1.3rem + 3vw, 3.8rem); }
.ct-head p { margin: 0; color: var(--slate); }
.ct-section--ink .ct-head p { color: #9aa7b5; }
.ct-section--ink .ct-eyebrow { color: #5eead4; }
.ct-section--ink h2 em { color: #5eead4; }
@media (max-width: 52rem) { .ct-head { grid-template-columns: minmax(0, 1fr); } }

/* ── hero ───────────────────────────────────────────────────────────── */

.ct-hero { width: var(--shell); margin-inline: auto; padding-block: clamp(2.4rem, 5vw, 4rem) clamp(1.6rem, 3vw, 2.4rem); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.ct-hero h1 { font-size: clamp(2.4rem, 1.4rem + 3.8vw, 4.6rem); margin-bottom: 1.1rem; }
.ct-hero__img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 4px; }
.ct-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.8rem; }
.ct-facts div { border-top: 2px solid var(--ink); padding-top: 0.6rem; }
.ct-facts strong { display: block; font-family: var(--serif); font-weight: 600; font-size: 1.7rem; line-height: 1; }
.ct-facts span { font-size: 0.86rem; color: var(--slate); }
@media (max-width: 54rem) { .ct-hero { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 34rem) { .ct-facts { grid-template-columns: minmax(0, 1fr); } }

/* ── the filing year ────────────────────────────────────────────────── */

.ct-year { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 0; border: 1px solid var(--rule); background: var(--white); border-radius: 4px; overflow: hidden; }
.ct-year__pick { padding: clamp(1.2rem, 3vw, 2rem); display: grid; gap: 1.4rem; align-content: start; border-right: 1px solid var(--rule); }
.ct-set { border: 0; margin: 0; padding: 0; min-width: 0; }
.ct-set legend { float: left; width: 100%; padding: 0; margin-bottom: 0.6rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mute); }
.ct-set legend + * { clear: both; }
.ct-opts { display: grid; gap: 0.4rem; }
.ct-opt { position: relative; }
.ct-opt input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; }
.ct-opt span { display: block; padding: 0.65rem 0.85rem; border: 1px solid var(--rule); border-radius: 4px; background: var(--ledger); font-size: 0.95rem; }
.ct-opt span small { display: block; font-size: 0.78rem; color: var(--mute); }
.ct-opt input:hover + span { border-color: var(--slate); }
.ct-opt input:focus-visible + span { outline: 2px solid var(--teal); outline-offset: 2px; }
.ct-opt input:checked + span { border-color: var(--ink); background: var(--white); box-shadow: inset 3px 0 0 var(--teal); }
.ct-year__pick input[type="date"] { font: inherit; padding: 0.6rem 0.7rem; border: 1px solid var(--rule); border-radius: 4px; background: var(--ledger); color: var(--ink); width: 100%; }
.ct-summary { border-top: 1px solid var(--rule); padding-top: 1rem; display: grid; gap: 0.2rem; }
.ct-summary b { font-family: var(--serif); font-weight: 600; font-size: 1.2rem; }
.ct-summary span { font-size: 0.88rem; color: var(--flag); font-weight: 600; }

.ct-year__list { list-style: none; margin: 0; padding: clamp(1.2rem, 3vw, 2rem); display: grid; gap: 1.4rem; max-height: 34rem; overflow-y: auto; }
.ct-month h3 { font-size: 0.82rem; font-family: var(--sans); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mute); padding-bottom: 0.4rem; border-bottom: 1px solid var(--rule); }
.ct-month.is-now h3 { color: var(--ink); }
.ct-month ul { list-style: none; margin: 0; padding: 0; }
.ct-filing { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr) auto; gap: 1rem; align-items: baseline; padding: 0.6rem 0; border-bottom: 1px dashed var(--rule); }
.ct-filing:last-child { border-bottom: 0; }
.ct-filing time { font-variant-numeric: tabular-nums; font-size: 0.9rem; color: var(--teal); font-weight: 600; }
.ct-filing b { font-weight: 600; font-size: 0.98rem; }
.ct-filing small { display: block; font-size: 0.82rem; color: var(--mute); }
.ct-filing em { font-style: normal; font-size: 0.82rem; color: var(--mute); white-space: nowrap; }
.ct-filing.is-next { background: var(--teal-tint); margin-inline: -0.6rem; padding-inline: 0.6rem; border-radius: 3px; border-bottom-color: transparent; }
.ct-filing.is-next em { color: var(--flag); font-weight: 700; }
.ct-year__none { color: var(--mute); }
@media (max-width: 58rem) { .ct-year { grid-template-columns: minmax(0, 1fr); } .ct-year__pick { border-right: 0; border-bottom: 1px solid var(--rule); } }
@media (max-width: 34rem) { .ct-filing { grid-template-columns: minmax(0, 1fr) auto; } .ct-filing time { grid-column: 1 / -1; } }

/* ── fees ───────────────────────────────────────────────────────────── */

.ct-fees { width: 100%; border-collapse: collapse; background: var(--white); border: 1px solid var(--rule); font-size: 0.96rem; }
.ct-fees caption { text-align: left; font-family: var(--serif); font-weight: 600; font-size: 1.3rem; padding: 0 0 0.7rem; }
.ct-fees th, .ct-fees td { text-align: left; padding: 0.85rem 1rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
.ct-fees thead th { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mute); background: var(--ledger); }
.ct-fees tbody th { font-weight: 600; }
.ct-fees tbody th small { display: block; font-weight: 400; font-size: 0.85rem; color: var(--slate); margin-top: 0.15rem; }
.ct-fees td.ct-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }
.ct-fees tr:last-child th, .ct-fees tr:last-child td { border-bottom: 0; }
.ct-fees-wrap { overflow-x: auto; }
.ct-inout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.4rem, 3vw, 2.4rem); margin-top: 2.4rem; }
.ct-inout > div { border-top: 2px solid var(--ink); padding-top: 1rem; }
.ct-inout h3 { font-size: 1.3rem; margin-bottom: 0.7rem; }
.ct-inout ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; color: var(--slate); font-size: 0.95rem; }
.ct-inout li { padding-left: 1.2rem; position: relative; }
.ct-inout li::before { content: "•"; position: absolute; left: 0; color: var(--teal); }
.ct-inout--out li::before { content: "–"; color: var(--mute); }
@media (max-width: 46rem) { .ct-inout { grid-template-columns: minmax(0, 1fr); } }

/* ── services ───────────────────────────────────────────────────────── */

.ct-work { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.ct-work > a, .ct-work > div { background: var(--white); padding: clamp(1.2rem, 2.6vw, 1.8rem); text-decoration: none; display: grid; gap: 0.5rem; align-content: start; }
.ct-work h3 { font-size: 1.35rem; }
.ct-work p { margin: 0; color: var(--slate); font-size: 0.94rem; }
.ct-work span { font-size: 0.8rem; font-weight: 600; color: var(--teal); }

/* ── people ─────────────────────────────────────────────────────────── */

.ct-people { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: clamp(1.2rem, 3vw, 2rem); }
.ct-person { text-decoration: none; display: grid; gap: 0.5rem; }
.ct-person img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; filter: grayscale(0.2); }
.ct-person h3 { font-size: 1.25rem; }
.ct-person span { font-size: 0.82rem; color: var(--teal); font-weight: 600; }
.ct-person p { margin: 0; font-size: 0.92rem; color: var(--slate); }

/* ── quotes, questions ──────────────────────────────────────────────── */

.ct-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: clamp(1.2rem, 3vw, 2rem); }
.ct-quotes figure { margin: 0; border-top: 2px solid var(--ink); padding-top: 1.1rem; }
.ct-quotes blockquote { margin: 0; font-family: var(--serif); font-size: 1.2rem; line-height: 1.4; }
.ct-quotes figcaption { margin-top: 0.8rem; font-size: 0.84rem; color: var(--mute); }

.ct-qa { max-width: 52rem; border-top: 2px solid var(--ink); }
.ct-qa details { border-bottom: 1px solid var(--rule); }
.ct-qa summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1.2rem; padding: 1rem 0; font-family: var(--serif); font-weight: 600; font-size: 1.2rem; }
.ct-qa summary::-webkit-details-marker { display: none; }
.ct-qa summary::after { content: "+"; font-family: var(--sans); color: var(--teal); }
.ct-qa details[open] summary::after { content: "\2212"; }
.ct-qa p { margin: 0 0 1.1rem; color: var(--slate); max-width: 62ch; }

/* ── the call ───────────────────────────────────────────────────────── */

.ct-call { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; scroll-margin-top: 6rem; }
.ct-call__aside h1 { font-size: clamp(2.2rem, 1.4rem + 3vw, 3.8rem); margin-bottom: 1rem; }
.ct-call__aside p { color: var(--slate); }
.ct-about { margin: 1.2rem 0 0; padding: 0.9rem 1rem; background: var(--teal-tint); border-left: 3px solid var(--teal); font-size: 0.94rem; }
.ct-about strong { display: block; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--teal); margin-bottom: 0.2rem; }
@media (max-width: 58rem) { .ct-call { grid-template-columns: minmax(0, 1fr); } }

.ct-form { background: var(--white); border: 1px solid var(--rule); border-radius: 4px; padding: clamp(1.3rem, 3vw, 2.1rem); }
.ct-step { border: 0; margin: 0; padding: 0 0 1.3rem; min-width: 0; }
.ct-step + .ct-step { padding-top: 1.3rem; border-top: 1px solid var(--rule); }
.ct-step legend { float: left; width: 100%; padding: 0; margin-bottom: 0.8rem; font-family: var(--serif); font-weight: 600; font-size: 1.25rem; }
.ct-step legend + * { clear: both; }
.ct-days { display: grid; grid-auto-flow: column; grid-auto-columns: 5rem; gap: 0.4rem; overflow-x: auto; padding-bottom: 0.4rem; }
.ct-day { display: grid; justify-items: center; gap: 0.05rem; padding: 0.6rem 0.3rem; cursor: pointer; font: inherit; color: var(--ink); background: var(--ledger); border: 1px solid var(--rule); border-radius: 4px; }
.ct-day span { font-size: 0.64rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute); }
.ct-day strong { font-family: var(--serif); font-weight: 600; font-size: 1.1rem; }
.ct-day small { font-size: 0.68rem; color: var(--teal); font-weight: 600; }
.ct-day:hover:not(:disabled) { border-color: var(--teal); }
.ct-day:disabled { opacity: 0.45; cursor: not-allowed; }
.ct-day:disabled small { color: var(--mute); }
.ct-day.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.ct-day.is-on span, .ct-day.is-on small { color: #b9c4d0; }
.ct-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(4.6rem, 1fr)); gap: 0.4rem; }
.ct-time { padding: 0.6rem 0.3rem; cursor: pointer; font: 600 0.93rem var(--sans); font-variant-numeric: tabular-nums; color: var(--ink); background: var(--ledger); border: 1px solid var(--rule); border-radius: 4px; }
.ct-time:hover { border-color: var(--teal); }
.ct-time.is-on { background: var(--teal); border-color: var(--teal); color: #fff; }
.ct-note { margin: 0.8rem 0 0; min-height: 1.4em; font-size: 0.9rem; color: var(--slate); }
.ct-note[data-state="ok"] { color: var(--teal); font-weight: 600; }
.ct-note[data-state="err"] { color: var(--flag); }
.ct-field { display: grid; gap: 0.35rem; margin-bottom: 0.9rem; }
.ct-field label { font-size: 0.86rem; font-weight: 600; }
.ct-field input, .ct-field textarea { font: inherit; color: var(--ink); background: var(--ledger); border: 1px solid var(--rule); border-radius: 4px; padding: 0.75rem 0.85rem; }
.ct-field input:focus, .ct-field textarea:focus { outline: 2px solid var(--teal); outline-offset: -1px; background: var(--white); }
.ct-two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
@media (max-width: 34rem) { .ct-two { grid-template-columns: 1fr; } }
.ct-hp { position: absolute; left: -9999px; }
.ct-send { display: grid; gap: 0.6rem; padding-top: 1.2rem; border-top: 1px solid var(--rule); }
.ct-send .ct-btn { width: 100%; padding-block: 1rem; }
.ct-send small { color: var(--mute); font-size: 0.83rem; }
.ct-msg { margin: 0; font-size: 0.9rem; }
.ct-msg[data-state="err"] { color: var(--flag); }

.ct-dd { position: relative; }
.ct-dd__button { width: 100%; display: flex; align-items: center; min-height: 3.1rem; padding: 0.5rem 2.6rem 0.5rem 0.85rem; cursor: pointer; text-align: left; font: inherit; color: var(--ink); background: var(--ledger); border: 1px solid var(--rule); border-radius: 4px; position: relative; }
.ct-dd__button::after { content: ""; position: absolute; right: 1rem; top: 50%; width: 0.45rem; height: 0.45rem; margin-top: -0.3rem; border-right: 2px solid var(--teal); border-bottom: 2px solid var(--teal); transform: rotate(45deg); transition: transform 0.2s; }
.ct-dd.is-open .ct-dd__button::after { transform: rotate(-135deg); margin-top: -0.05rem; }
.ct-dd__button:focus-visible, .ct-dd.is-open .ct-dd__button { outline: 2px solid var(--teal); outline-offset: -1px; background: var(--white); }
.ct-dd__button.is-placeholder .ct-dd__title { color: var(--mute); }
.ct-dd__value, .ct-dd__option { display: flex; align-items: center; gap: 0.7rem; min-width: 0; }
.ct-dd__list { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 0.3rem); max-height: 22rem; overflow-y: auto; background: var(--white); border: 1px solid var(--rule); border-radius: 4px; padding: 0.3rem; box-shadow: 0 22px 44px -26px rgba(15, 22, 32, 0.4); }
.ct-dd__group { padding: 0.65rem 0.7rem 0.3rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal); }
.ct-dd__option { padding: 0.5rem 0.7rem; border-radius: 3px; cursor: pointer; }
.ct-dd__option.is-active { background: var(--ledger); }
.ct-dd__option.is-selected { background: var(--teal-tint); }
.ct-dd__text { display: grid; min-width: 0; }
.ct-dd__title { font-weight: 600; }
.ct-dd__meta { font-size: 0.8rem; color: var(--slate); }
@media (max-width: 36rem) {
  .ct-dd__list { position: fixed; z-index: 60; left: 0.6rem; right: 0.6rem; top: auto; bottom: calc(0.6rem + env(safe-area-inset-bottom)); max-height: 70vh; }
  .ct-dd.is-open::before { content: ""; position: fixed; inset: 0; z-index: 59; background: rgba(15, 22, 32, 0.4); }
}

.ct-done { background: var(--white); border: 1px solid var(--rule); border-top: 3px solid var(--teal); border-radius: 4px; padding: clamp(1.4rem, 3.5vw, 2.4rem); scroll-margin-top: 6rem; }
.ct-done:focus { outline: none; }
.ct-done h2 { font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.6rem); margin-bottom: 1rem; }
.ct-done dl { display: grid; grid-template-columns: auto 1fr; gap: 0.45rem 1.4rem; margin: 0 0 1.2rem; padding: 0.9rem 0; border-block: 1px solid var(--rule); }
.ct-done dt { font-size: 0.8rem; color: var(--mute); }
.ct-done dd { margin: 0; font-weight: 600; }
.ct-done ul { margin: 0 0 1.3rem; padding-left: 1.1rem; color: var(--slate); display: grid; gap: 0.4rem; }
.ct-done:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
.ct-done dd { overflow-wrap: anywhere; }
@media (max-width: 430px) {
  .ct-done dl { grid-template-columns: 1fr; gap: 0.1rem 0; }
  .ct-done dt { padding-top: 0.55rem; }
}

/* the note that goes on the file before the telephone rings */
.ct-asked { display: grid; gap: 0.3rem; margin: 0 0 1rem; padding: 0.85rem 1rem; background: var(--ledger); border-left: 2px solid var(--teal); border-radius: 0 4px 4px 0; }
.ct-asked b { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal); }
.ct-asked q { font-size: 0.97rem; color: var(--ink); overflow-wrap: anywhere; }
.ct-asked--filing { border-left-color: var(--flag); background: var(--white); border: 1px solid var(--rule); border-left: 2px solid var(--flag); }
.ct-asked--filing b { color: var(--flag); }

/* ── article ────────────────────────────────────────────────────────── */

.ct-article { width: min(100% - 2 * var(--gutter), 46rem); margin-inline: auto; }
.ct-crumbs { font-size: 0.85rem; color: var(--mute); margin-bottom: 1.2rem; }
.ct-crumbs a { text-decoration: none; }
.ct-crumbs a:hover { color: var(--teal); }
.ct-article h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem); margin-bottom: 0.7rem; }
.ct-article__meta { color: var(--teal); font-weight: 600; font-size: 0.92rem; margin: 0 0 1.5rem; }
.ct-article img { width: 100%; aspect-ratio: 5 / 3; object-fit: cover; border-radius: 4px; margin-bottom: 1.8rem; }
.ct-article__body { color: var(--slate); }
.ct-article__body > * + * { margin-top: 1rem; }

/* ── footer ─────────────────────────────────────────────────────────── */

.ct-foot { background: var(--ink); color: #c7d0da; padding-block: clamp(3rem, 6vw, 4.5rem) 2rem; }
.ct-foot__in { width: var(--shell); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.1fr) minmax(0, 0.8fr); gap: clamp(1.6rem, 4vw, 3rem); padding-bottom: 2.2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.ct-foot h2 { font-family: var(--sans); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #5eead4; margin-bottom: 0.9rem; }
.ct-foot p { margin: 0 0 0.5rem; font-size: 0.92rem; color: #9aa7b5; }
.ct-foot .ct-foot__mark { font-family: var(--serif); font-weight: 600; font-size: 1.8rem; color: #fff; margin-bottom: 0.6rem; }
.ct-foot .ct-hours { margin-top: 0.8rem; font-size: 0.9rem; display: grid; grid-template-columns: auto auto; justify-content: start; gap: 0.25rem 1.2rem; }
.ct-foot .ct-hours dt { color: #9aa7b5; }
.ct-foot .ct-hours dd { margin: 0; white-space: nowrap; }
.ct-foot a { text-decoration: none; }
.ct-foot a:hover { color: #fff; }
.ct-foot__nav { display: grid; gap: 0.45rem; font-size: 0.92rem; color: #9aa7b5; }
.ct-foot .ct-foot__fine { width: var(--shell); margin: 1.4rem auto 0; font-size: 0.8rem; color: #6b7785; }
@media (max-width: 62rem) { .ct-foot__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
@media (max-width: 36rem) { .ct-foot__in { grid-template-columns: minmax(0, 1fr); } }

.ct-hours { margin: 0; display: grid; grid-template-columns: auto auto; justify-content: space-between; gap: 0.3rem 1.2rem; font-size: 0.92rem; }
.ct-hours dt { color: var(--slate); }
.ct-hours dd { margin: 0; text-align: right; white-space: nowrap; }
.ct-empty { color: var(--mute); font-style: italic; }
