/* SV DIXON LTD - administrative office, Sale. Mint-chalk masthead sheet. */

:root {
  --sv-bg: #e8f3ec;
  --sv-ink: #22312b;
  --sv-accent: #1d6b5a;
  --sv-accent2: #7a5230;
  --sv-surface: #ffffff;

  --sv-ink-04: rgba(34, 49, 43, 0.04);
  --sv-ink-08: rgba(34, 49, 43, 0.08);
  --sv-ink-14: rgba(34, 49, 43, 0.14);
  --sv-ink-28: rgba(34, 49, 43, 0.28);
  --sv-ink-72: rgba(34, 49, 43, 0.72);
  --sv-accent-10: rgba(29, 107, 90, 0.1);
  --sv-accent-22: rgba(29, 107, 90, 0.22);
  --sv-accent2-12: rgba(122, 82, 48, 0.12);
  --sv-accent2-34: rgba(122, 82, 48, 0.34);

  --sv-head: "Radio Canada", "Trebuchet MS", sans-serif;
  --sv-body: "Sarabun", "Segoe UI", sans-serif;

  --sv-gap: 1.1rem;
  --sv-pad: 1.05rem;
  --sv-column: 46rem;
  --sv-rule: 3px;
  --sv-hair: 1px;
}

/* ---- reset: three rules, nothing else ---- */
*, *::before, *::after { box-sizing: border-box; }
h1, h2, h3, h4, p, figure, blockquote, dl, dd, ol, ul { margin: 0; }
img, svg { display: block; max-width: 100%; }

/* ---- page ---- */
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--sv-bg);
  color: var(--sv-ink);
  font-family: var(--sv-body);
  font-size: 1rem;
  line-height: 1.62;
  overflow-wrap: break-word;
  text-underline-offset: 0.18em;
}

p { margin-block-end: 0.85em; }
p:last-child { margin-block-end: 0; }

a {
  color: var(--sv-accent);
  text-decoration-thickness: from-font;
  transition: color 150ms linear, background-color 150ms linear;
}
a:hover { color: var(--sv-accent2); background-color: var(--sv-accent2-12); }

:focus-visible {
  outline: 3px solid var(--sv-accent2);
  outline-offset: 2px;
}

ul, ol { padding-inline-start: 1.25rem; }
li + li { margin-block-start: 0.35em; }

code, .sv-mono {
  font-family: ui-monospace, "Cascadia Mono", "Consolas", monospace;
  font-size: 0.92em;
  letter-spacing: -0.01em;
}

.sv-skip {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0.5rem;
  z-index: 40;
  padding: 0.5rem 0.9rem;
  background: var(--sv-ink);
  color: var(--sv-surface);
  font-family: var(--sv-head);
  font-weight: 700;
  transform: translateY(-120%);
  transition: transform 160ms ease-out;
}
.sv-skip:focus-visible { transform: translateY(0); background: var(--sv-ink); color: var(--sv-surface); }

.sv-wrap {
  width: 100%;
  max-width: calc(var(--sv-column) + 2.2rem);
  margin-inline: auto;
  padding-inline: 1.1rem;
}

/* ---- masthead ---- */
.sv-masthead {
  background: var(--sv-surface);
  border-block-end: var(--sv-rule) solid var(--sv-ink);
  padding-block-start: 0.7rem;
}
.sv-masthead__hair {
  height: var(--sv-hair);
  background: var(--sv-ink-28);
  margin-block-end: 0.75rem;
}
.sv-masthead__title {
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: clamp(1.65rem, 10.5vw, 4.1rem);
  line-height: 0.94;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  margin: 0;
}
.sv-masthead__title a { color: inherit; text-decoration: none; }
.sv-masthead__title a:hover { color: var(--sv-accent); background: none; }
.sv-masthead__strap {
  font-size: 0.95rem;
  color: var(--sv-ink-72);
  margin-block-start: 0.45rem;
  max-width: 34rem;
}
.sv-masthead__rule { margin-block: 0.6rem 0.55rem; }
.sv-masthead__rule svg { width: 100%; height: 10px; }
.sv-mastline {
  stroke: var(--sv-ink);
  stroke-width: 6;
  stroke-linecap: butt;
  stroke-dasharray: 100;
  stroke-dashoffset: 0;
  animation: svRuleDraw 760ms cubic-bezier(0.2, 0.75, 0.25, 1) both;
}
.sv-mastline[data-sv-ink="accent"] { stroke: var(--sv-accent); stroke-width: 3; animation-delay: 300ms; }

.sv-edition {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 1rem;
  padding-block-end: 0.7rem;
  font-size: 0.78rem;
  font-family: var(--sv-head);
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.09em;
  color: var(--sv-accent2);
}
.sv-edition span + span {
  border-inline-start: var(--sv-hair) solid var(--sv-ink-28);
  padding-inline-start: 1rem;
}

/* ---- two-level bar ---- */
.sv-bar {
  background: var(--sv-surface);
  border-block-end: var(--sv-hair) solid var(--sv-ink-28);
}
.sv-bar__list {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sv-bar__list > li { margin: 0; flex: 0 1 auto; min-width: 0; }
.sv-bar__group { border-inline-end: var(--sv-hair) solid var(--sv-ink-14); }
.sv-bar__summary {
  display: block;
  padding: 0.6rem 0.75rem;
  cursor: pointer;
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 0.8rem;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.08em;
  color: var(--sv-ink);
  background: var(--sv-surface);
  border-block-start: var(--sv-rule) solid transparent;
  transition: background-color 150ms linear, border-color 180ms ease-out, color 150ms linear;
}
.sv-bar__summary::marker { content: ""; }
.sv-bar__summary::-webkit-details-marker { display: none; }
.sv-bar__summary:hover { background: var(--sv-accent-10); color: var(--sv-accent); }
.sv-bar__summary[data-sv-here="true"] {
  border-block-start-color: var(--sv-accent2);
  color: var(--sv-accent2);
}
.sv-bar__group[open] > .sv-bar__summary {
  border-block-start-color: var(--sv-accent);
  background: var(--sv-bg);
  color: var(--sv-accent);
}
.sv-bar__cue {
  display: inline-block;
  margin-inline-start: 0.45rem;
  font-size: 0.85em;
  color: var(--sv-ink-72);
  transition: transform 180ms ease-out, color 150ms linear;
}
.sv-bar__group[open] > .sv-bar__summary .sv-bar__cue { transform: rotate(90deg); color: var(--sv-accent); }
.sv-bar__sub {
  margin: 0;
  padding: 0.25rem 0 0.6rem;
  list-style: none;
  min-width: 13rem;
  background: var(--sv-bg);
  border-block-start: var(--sv-hair) solid var(--sv-ink-14);
}
.sv-bar__sub li { margin: 0; }
.sv-bar__sub a {
  display: block;
  padding: 0.32rem 0.75rem 0.32rem 0.9rem;
  font-size: 0.86rem;
  text-decoration: none;
  border-inline-start: var(--sv-rule) solid transparent;
  transition: border-color 150ms linear, padding-inline-start 160ms ease-out, background-color 150ms linear;
}
.sv-bar__sub a:hover, .sv-bar__sub a:focus-visible {
  border-inline-start-color: var(--sv-accent2);
  padding-inline-start: 1.15rem;
  background: var(--sv-surface);
}
.sv-bar__sub a[data-sv-here="true"] {
  color: var(--sv-accent2);
  border-inline-start-color: var(--sv-accent2);
  font-weight: 600;
}

/* ---- stacked panels ---- */
main { display: block; padding-block: 1.4rem 2.2rem; }

.sv-panel {
  background: var(--sv-surface);
  border-block-start: var(--sv-rule) solid var(--sv-ink);
  border-inline: var(--sv-hair) solid var(--sv-ink-14);
  border-block-end: var(--sv-hair) solid var(--sv-ink-14);
  padding: var(--sv-pad);
  margin-block-end: var(--sv-gap);
}
.sv-panel:last-child { margin-block-end: 0; }
.sv-panel[data-sv-tone="quiet"] {
  background: transparent;
  border-inline-color: transparent;
  border-block-end-color: transparent;
}
.sv-panel[data-sv-tone="mark"] { border-block-start-color: var(--sv-accent2); }

.sv-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 0.74rem;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.13em;
  color: var(--sv-accent2);
  margin-block-end: 0.3rem;
}
.sv-eyebrow::before {
  content: "";
  width: 1.5rem;
  height: var(--sv-rule);
  background: var(--sv-accent2);
  flex: none;
}

h2, h3, h4 {
  font-family: var(--sv-head);
  font-weight: 700;
  letter-spacing: -0.012em;
  line-height: 1.14;
}
h2 { font-size: clamp(1.3rem, 5.2vw, 1.85rem); }
h3 { font-size: 1.08rem; margin-block-start: 1.1rem; }
h4 { font-size: 0.97rem; margin-block-start: 0.9rem; }
h2 + p, h3 + p, h4 + p { margin-block-start: 0.45rem; }

.sv-lede { font-size: 1.05rem; color: var(--sv-ink-72); margin-block-start: 0.5rem; }
.sv-note { font-size: 0.86rem; color: var(--sv-ink-72); }
.sv-note[data-sv-tone="rule"] {
  border-block-start: var(--sv-hair) solid var(--sv-ink-14);
  padding-block-start: 0.6rem;
  margin-block-start: 0.8rem;
}

/* ---- disclosure panels inside a stack ---- */
.sv-disc { border-block-start: var(--sv-hair) solid var(--sv-ink-14); }
.sv-disc:first-of-type {
  border-block-start: var(--sv-rule) solid var(--sv-ink-28);
  margin-block-start: 0.9rem;
}
.sv-disc__summary {
  display: flex;
  gap: 0.6rem;
  align-items: baseline;
  padding: 0.6rem 0.1rem;
  cursor: pointer;
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 1rem;
  transition: color 150ms linear, background-color 150ms linear;
}
.sv-disc__summary:hover { color: var(--sv-accent); background: var(--sv-accent-10); }
.sv-disc__summary::marker { content: ""; }
.sv-disc__summary::-webkit-details-marker { display: none; }
.sv-disc__sign {
  flex: none;
  width: 1.15rem;
  height: 1.15rem;
  border: var(--sv-hair) solid var(--sv-ink-28);
  position: relative;
  transition: background-color 170ms linear, border-color 170ms linear;
}
.sv-disc__sign::before, .sv-disc__sign::after {
  content: "";
  position: absolute;
  background: var(--sv-ink);
  transition: opacity 170ms linear, background-color 170ms linear;
}
.sv-disc__sign::before { inset-block-start: 50%; inset-inline: 18%; height: 2px; margin-block-start: -1px; }
.sv-disc__sign::after { inset-inline-start: 50%; inset-block: 18%; width: 2px; margin-inline-start: -1px; }
.sv-disc[open] > .sv-disc__summary .sv-disc__sign { background: var(--sv-accent); border-color: var(--sv-accent); }
.sv-disc[open] > .sv-disc__summary .sv-disc__sign::before { background: var(--sv-surface); }
.sv-disc[open] > .sv-disc__summary .sv-disc__sign::after { opacity: 0; }
.sv-disc__body { padding: 0 0 0.9rem 1.75rem; }
.sv-disc__body > * + * { margin-block-start: 0.6rem; }

/* ---- the standing week column ---- */
.sv-week__strip { margin-block: 0.9rem 0.4rem; }
.sv-week__strip svg { width: 100%; height: auto; }
.sv-week__base { stroke: var(--sv-ink); stroke-width: 2; }
.sv-week__stem {
  stroke: var(--sv-accent);
  stroke-width: 9;
  stroke-linecap: butt;
  stroke-dasharray: 100;
  stroke-dashoffset: 0;
  animation: svColumnFill 420ms ease-out both;
  animation-delay: calc(820ms + var(--sv-i, 0) * 130ms);
  transition: stroke 200ms linear, stroke-width 200ms linear;
}
.sv-week__cap {
  fill: var(--sv-ink-72);
  font-family: "Radio Canada", sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.sv-week__day[data-sv-rest="true"] .sv-week__stem { stroke: var(--sv-ink-28); }
.sv-week__day[data-sv-now="true"] .sv-week__stem { stroke: var(--sv-accent2); stroke-width: 15; }
.sv-week__day[data-sv-now="true"] .sv-week__cap { fill: var(--sv-accent2); }
.sv-week__flag {
  fill: var(--sv-accent2);
  transform-box: fill-box;
  transform-origin: center bottom;
  animation: svTodaySettle 520ms cubic-bezier(0.18, 0.9, 0.25, 1) both;
  animation-delay: 1.78s;
}

.sv-week__rows { margin: 0.6rem 0 0; padding: 0; list-style: none; }
.sv-week__row {
  display: grid;
  grid-template-columns: 5.4rem 1fr;
  gap: 0.15rem 0.8rem;
  padding: 0.5rem 0.55rem;
  border-block-start: var(--sv-hair) solid var(--sv-ink-14);
  margin: 0;
  transition: background-color 160ms linear, box-shadow 160ms linear;
}
.sv-week__row:hover { background: var(--sv-ink-04); }
.sv-week__row[data-sv-now="true"] {
  background: var(--sv-accent2-12);
  box-shadow: inset 3px 0 0 var(--sv-accent2);
}
.sv-week__name {
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 0.82rem;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.09em;
  color: var(--sv-accent);
}
.sv-week__row[data-sv-rest="true"] .sv-week__name { color: var(--sv-ink-72); }
.sv-week__row[data-sv-now="true"] .sv-week__name { color: var(--sv-accent2); }
.sv-week__text { font-size: 0.93rem; }
.sv-week__stamp { font-size: 0.8rem; color: var(--sv-ink-72); margin-block-start: 0.55rem; }

/* ---- sheets: the two working widgets ---- */
.sv-sheet { margin-block-start: 1rem; }
.sv-sheet__set { border: 0; margin: 0; padding: 0; }
.sv-sheet__legend {
  padding: 0;
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 0.76rem;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.11em;
  color: var(--sv-accent);
}
.sv-sheet__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.7rem;
  margin-block-start: 0.7rem;
}
.sv-sheet__field { display: grid; gap: 0.2rem; }
.sv-sheet__field > span { font-size: 0.82rem; font-weight: 600; color: var(--sv-ink-72); }
.sv-sheet__field input {
  font: inherit;
  font-size: 1rem;
  padding: 0.44rem 0.55rem;
  color: var(--sv-ink);
  background: var(--sv-bg);
  border: var(--sv-hair) solid var(--sv-ink-28);
  border-block-end-width: 2px;
  transition: border-color 150ms linear, background-color 150ms linear, box-shadow 150ms linear;
}
.sv-sheet__field input:hover { border-color: var(--sv-accent); }
.sv-sheet__field input:focus-visible { background: var(--sv-surface); box-shadow: inset 0 -2px 0 var(--sv-accent); }
.sv-sheet__field input:invalid { border-color: var(--sv-accent2); }

.sv-sheet__act {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
  margin-block-start: 0.85rem;
}
.sv-btn {
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 0.82rem;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.09em;
  padding: 0.5rem 1.05rem;
  color: var(--sv-surface);
  background: var(--sv-accent);
  border: 0;
  border-block-end: var(--sv-rule) solid var(--sv-ink);
  cursor: pointer;
  transition: background-color 150ms linear, transform 120ms ease-out;
}
.sv-btn:hover { background: var(--sv-ink); }
.sv-btn:active { transform: translateY(2px); }
.sv-btn[data-sv-kind="plain"] {
  background: transparent;
  color: var(--sv-accent);
  border-block-end-color: var(--sv-accent-22);
}
.sv-btn[data-sv-kind="plain"]:hover { background: var(--sv-accent-10); color: var(--sv-ink); }

.sv-sheet__out {
  margin-block-start: 0.95rem;
  padding: 0.8rem 0.85rem;
  background: var(--sv-bg);
  border-inline-start: var(--sv-rule) solid var(--sv-accent);
  transition: background-color 220ms linear, border-color 220ms linear;
}
.sv-sheet__out[data-sv-state="bad"] {
  border-inline-start-color: var(--sv-accent2);
  background: var(--sv-accent2-12);
}
.sv-sheet__out[data-sv-state="done"] { animation: svOutFlash 620ms ease-out 1; }
.sv-sheet__head { font-family: var(--sv-head); font-weight: 700; font-size: 0.95rem; }
.sv-sheet__work { margin: 0.5rem 0 0; padding: 0; list-style: none; }
.sv-sheet__work li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.2rem 0.8rem;
  padding: 0.3rem 0;
  border-block-start: var(--sv-hair) dotted var(--sv-ink-28);
  font-size: 0.9rem;
  margin: 0;
}
.sv-sheet__work b { font-family: var(--sv-head); font-weight: 700; white-space: nowrap; }
.sv-sheet__total { border-block-start: 2px solid var(--sv-ink); font-size: 1rem; }
.sv-sheet__caveat {
  font-size: 0.8rem;
  color: var(--sv-ink-72);
  margin-block-start: 0.65rem;
  font-style: italic;
}

.sv-ruler {
  margin-block-start: 0.9rem;
  border-block-start: var(--sv-hair) solid var(--sv-ink-14);
  padding-block-start: 0.7rem;
}
.sv-ruler svg { width: 100%; height: auto; }
.sv-ruler__frame { fill: none; stroke: var(--sv-ink-28); stroke-width: 1.5; }
.sv-ruler__tick { stroke: var(--sv-ink-28); stroke-width: 1; }
.sv-ruler__hour {
  fill: var(--sv-ink-72);
  font-family: "Radio Canada", sans-serif;
  font-size: 13px;
  font-weight: 700;
}
.sv-ruler__slot { fill: var(--sv-accent-22); stroke: var(--sv-accent); stroke-width: 1.5; }
.sv-ruler__gap { fill: var(--sv-accent2-34); }
.sv-ruler__rest {
  fill: var(--sv-ink-08);
  stroke: var(--sv-ink-28);
  stroke-width: 1;
  stroke-dasharray: 3 3;
}
.sv-ruler__key {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 1rem;
  margin-block-start: 0.5rem;
  font-size: 0.78rem;
  color: var(--sv-ink-72);
}
.sv-ruler__key span { display: flex; align-items: center; gap: 0.35rem; }
.sv-ruler__swatch {
  width: 0.85rem;
  height: 0.85rem;
  border: var(--sv-hair) solid var(--sv-ink-28);
  flex: none;
}
.sv-ruler__swatch[data-sv-swatch="slot"] { background: var(--sv-accent-22); border-color: var(--sv-accent); }
.sv-ruler__swatch[data-sv-swatch="gap"] { background: var(--sv-accent2-34); border-color: var(--sv-accent2); }
.sv-ruler__swatch[data-sv-swatch="rest"] { background: var(--sv-ink-08); border-style: dashed; }

/* ---- tables and lists of record ---- */
.sv-table__scroll { overflow-x: auto; margin-block-start: 0.9rem; }
/* the scroller gives a table its own width: set it wide enough that a cell of prose
   is still a column of prose on a 320px screen, not one word per line. */
.sv-table { border-collapse: collapse; width: 100%; min-width: 35rem; font-size: 0.92rem; }
.sv-table[data-sv-cols="5"] { min-width: 50rem; }
.sv-table caption {
  text-align: start;
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 0.76rem;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.11em;
  color: var(--sv-accent);
  padding-block-end: 0.4rem;
}
.sv-table th, .sv-table td {
  text-align: start;
  padding: 0.45rem 0.6rem;
  border-block-end: var(--sv-hair) solid var(--sv-ink-14);
  vertical-align: top;
}
.sv-table thead th {
  border-block-end: 2px solid var(--sv-ink);
  font-size: 0.78rem;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.08em;
}
.sv-table tbody tr { transition: background-color 160ms linear; }
.sv-table tbody tr:hover { background: var(--sv-ink-04); }
/* no nowrap here: these first cells are sometimes a phrase, and holding one on a
   single line starves the columns beside it on a narrow screen. */
.sv-table td:first-child { font-family: var(--sv-head); font-weight: 700; }

.sv-dl { display: grid; grid-template-columns: 1fr; gap: 0; margin-block-start: 0.8rem; }
.sv-dl dt {
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 0.74rem;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.11em;
  color: var(--sv-accent2);
  border-block-start: var(--sv-hair) solid var(--sv-ink-14);
  padding-block-start: 0.45rem;
}
.sv-dl dd { margin: 0 0 0.5rem; }

.sv-split { display: grid; grid-template-columns: 1fr; gap: var(--sv-gap); }
.sv-hold {
  background: var(--sv-bg);
  border-block-start: var(--sv-rule) solid var(--sv-accent);
  padding: 0.85rem;
}
.sv-hold[data-sv-side="practice"] { border-block-start-color: var(--sv-accent2); }
.sv-hold h3 { margin-block-start: 0; }
.sv-hold ul { margin-block-start: 0.5rem; padding-inline-start: 1.1rem; }

.sv-steps { margin: 0.9rem 0 0; padding: 0; list-style: none; counter-reset: svstep; }
.sv-steps > li {
  counter-increment: svstep;
  display: grid;
  grid-template-columns: 2.2rem 1fr;
  gap: 0.2rem 0.75rem;
  padding: 0.65rem 0;
  border-block-start: var(--sv-hair) solid var(--sv-ink-14);
  margin: 0;
}
.sv-steps > li::before {
  content: counter(svstep, decimal-leading-zero);
  grid-column: 1;
  grid-row: 1;
  font-family: var(--sv-head);
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--sv-accent2);
  line-height: 1.2;
}
/* every child sits in the text column; without this the paragraph auto-places
   into the 2.2rem counter column and sets one word per line. */
.sv-steps > li > * { grid-column: 2; }
.sv-steps h3 { margin-block-start: 0; font-size: 1rem; }

/* ---- footer ---- */
.sv-foot {
  background: var(--sv-surface);
  border-block-start: var(--sv-rule) solid var(--sv-ink);
  padding-block: 1.3rem 2rem;
  font-size: 0.88rem;
}
.sv-foot__grid { display: grid; grid-template-columns: 1fr; gap: 1.1rem; }
.sv-foot__name { font-family: var(--sv-head); font-weight: 700; font-size: 1rem; letter-spacing: 0.01em; }
.sv-foot address { font-style: normal; margin-block-start: 0.45rem; }
.sv-foot address span { display: block; }
.sv-foot__reg { margin-block-start: 0.6rem; color: var(--sv-ink-72); }
.sv-foot__reg span { display: block; }
.sv-foot a {
  border-block-end: var(--sv-hair) solid var(--sv-accent-22);
  text-decoration: none;
  transition: border-color 160ms linear, background-color 160ms linear;
}
.sv-foot a:hover { border-block-end-color: var(--sv-accent2); }
.sv-foot__links { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 1.2rem; }
.sv-foot__links li { margin: 0 0 0.25rem; }

/* ---- widths ---- */
@media (min-width: 34rem) {
  :root { --sv-pad: 1.35rem; --sv-gap: 1.3rem; }
  .sv-sheet__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sv-dl { grid-template-columns: 11rem 1fr; column-gap: 1rem; align-items: baseline; }
  .sv-dl dd {
    border-block-start: var(--sv-hair) solid var(--sv-ink-14);
    padding-block-start: 0.45rem;
    margin-block-end: 0;
  }
  .sv-week__row { grid-template-columns: 6.5rem 1fr; }
}

@media (min-width: 48rem) {
  :root { --sv-pad: 1.6rem; }
  .sv-masthead__strap { font-size: 1rem; }
  .sv-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sv-sheet__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sv-sheet__grid[data-sv-fields="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sv-foot__grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 2rem; }
  .sv-week__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 1.4rem;
    align-items: start;
  }
  .sv-week__strip { margin-block-start: 0.3rem; }
}

@media (min-width: 64rem) {
  :root { --sv-column: 56rem; }
  .sv-masthead__title { font-size: 4.4rem; }
  .sv-bar__summary { padding-inline: 1.1rem; }
}

/* ---- print: the office prints these pages ---- */
@media print {
  body { background: #ffffff; font-size: 10.5pt; }
  .sv-bar, .sv-skip, .sv-sheet__act, .sv-ruler__key { display: none; }
  .sv-panel { border-inline: 0; page-break-inside: avoid; }
  .sv-disc__body { display: block; }
  a { color: inherit; }
}

/* ---- motion gate: the set-piece lands finished, nothing moves ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .sv-mastline { stroke-dashoffset: 0 !important; }
  .sv-week__stem { stroke-dashoffset: 0 !important; }
  .sv-week__flag { opacity: 1 !important; transform: none !important; }
}

@keyframes svRuleDraw {
  from { stroke-dashoffset: 100; }
  to { stroke-dashoffset: 0; }
}

@keyframes svColumnFill {
  from { stroke-dashoffset: 100; }
  to { stroke-dashoffset: 0; }
}

@keyframes svTodaySettle {
  0% { opacity: 0; transform: translateY(-9px) scaleY(0.4); }
  60% { opacity: 1; transform: translateY(1px) scaleY(1.06); }
  100% { opacity: 1; transform: translateY(0) scaleY(1); }
}

@keyframes svOutFlash {
  0% { background-color: var(--sv-accent-22); }
  100% { background-color: var(--sv-bg); }
}
