/* contractovix.site :: one stylesheet for every page.
   Tradecraft journal look: cream paper, forest green, black ink, condensed display type. */

/* four self-hosted faces, subset and renamed (see the OFL files beside them) */
@font-face { font-display: swap; font-family: "Cvx Display"; font-weight: 800; src: url("../fonts/cvx-display-800.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "Cvx Text"; font-weight: 400; src: url("../fonts/cvx-text-400.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "Cvx Text"; font-weight: 700; src: url("../fonts/cvx-text-700.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "Cvx Note"; font-weight: 400; src: url("../fonts/cvx-note-400.woff2") format("woff2"); }

/* hook classes: basefoot__brand basefoot__entry basefoot__group basefoot__line basefoot__links yardhead__label yardhead__stop yardhead__stops trailnav__step trailnav__steps sidecol__item sourcing__item pane showcase__copy stages__intro tradeset__intro workbench__form k-author k-contact k-guide k-home k-hub k-legal k-missing k-page k-service k-tool */

:root {
  --paper: #efeadd;
  --paper-deep: #e4dcc7;
  --card: #f6f2e7;
  --ink: #1b1c19;
  --ink-soft: #45463f;
  --rule: #cfc6ad;
  --forest: #1f3b29;
  --leaf: #24452f;
  --leaf-hover: #17301f;
  --green-word: #2a5636;
  --night: #1a1b18;
  --night-ink: #f1ece0;
  --night-soft: #c9c3b3;
  --note: #f7f0d2;
  --focus: #9c4307;
  --display: "Cvx Display", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --text: "Cvx Text", "Segoe UI", Roboto, Arial, sans-serif;
  --hand: "Cvx Note", "Comic Sans MS", cursive;
  --wrap: 75rem;
  --gutter: clamp(1rem, 4vw, 2.5rem);
}

html { text-size-adjust: 100%; }
*, ::before, ::after { box-sizing: border-box; }
body {
  font-family: var(--text);
  color: var(--ink);
  background: var(--paper);
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.6;
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--green-word); text-decoration-thickness: .08em; text-underline-offset: .18em; }
:focus-visible { outline-offset: 3px; border-radius: 2px; outline: 3px solid var(--focus); }
a:hover { color: var(--ink); }
main:focus { outline: none; }
.cvx-hide { position: absolute; clip-path: inset(50%); height: 1px; overflow: hidden; width: 1px; white-space: nowrap; }

h1, h2, h3 { line-height: 1.15; margin: 0 0 .6em; }
h1 { font-family: var(--display); font-weight: 800; text-transform: uppercase; letter-spacing: .01em; font-size: clamp(2.4rem, 6vw, 4rem); line-height: .98; }
h2 { font-family: var(--display); font-weight: 800; font-size: clamp(1.6rem, 3.4vw, 2.25rem); letter-spacing: .01em; }
h3 { font-size: 1.15rem; font-weight: 700; }
p, ul, ol { margin: 0 0 1em; }

.eyebrow { color: var(--ink-soft); text-transform: uppercase; letter-spacing: .14em; font: 700 .78rem/1.45 var(--text); margin-bottom: .9rem; }
.eyebrow--pale { color: var(--night-soft); }

/* skip link */
.jumplink { position: absolute; left: 1rem; top: -4rem; z-index: 10; background: var(--ink); color: var(--paper); padding: .75rem 1rem; font-weight: 700; }
.jumplink:focus { top: 1rem; }

/* buttons */
.plank {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 48px; padding: .7rem 1.25rem;
  font: 700 1rem/1.2 var(--text); text-decoration: none; cursor: pointer;
  border: 2px solid transparent; border-radius: 2px;
}
.plank--leaf { background: var(--leaf); color: #fff; border-color: var(--leaf); }
.plank--leaf:hover { background: var(--leaf-hover); color: #fff; }
.plank--outline { border-color: var(--ink); color: var(--ink); background: none; }
.plank--outline:hover { background: var(--ink); color: var(--paper); }
.plank--paper { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.plank--paper:hover { background: #fff; color: var(--ink); }
.plank--small { min-height: 44px; padding: .5rem .9rem; font-size: .95rem; }
.plank--mast { min-height: 44px; background: var(--leaf); color: #fff; padding: .55rem 1rem; font-size: .95rem; }
.plank--mast:hover { background: var(--leaf-hover); color: #fff; }

/* masthead */
.yardhead { background: var(--paper); border-bottom: 1px solid var(--rule); }
.yardhead__inner { max-width: var(--wrap); margin: 0 auto; padding: .75rem var(--gutter); display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.brandmark { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--ink); min-height: 44px; }
.brandmark__glyph { width: 2.4rem; height: 2.4rem; color: var(--forest); }
.brandmark__words { display: flex; flex-direction: column; line-height: 1.1; }
.brandmark__name { font-family: var(--display); font-weight: 800; font-size: 1.55rem; letter-spacing: .01em; }
.brandmark__line { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.yardhead__nav { margin-left: auto; }
.yardhead__nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem 1.1rem; margin: 0; padding: 0; }
.yardhead__nav a { text-decoration: none; color: var(--ink); font-weight: 700; font-size: .95rem; display: inline-flex; min-height: 44px; align-items: center; border-bottom: 3px solid transparent; }
.yardhead__nav a:hover { border-bottom-color: var(--rule); }
.yardhead__nav a[aria-current="page"], .yardhead__nav a[aria-current="true"] { border-bottom-color: var(--forest); }
.yardhead__toggle { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; min-width: 44px; padding: .4rem .8rem; margin-left: auto; background: transparent; color: var(--ink); border: 2px solid var(--ink); border-radius: 2px; font: 700 .95rem var(--text); cursor: pointer; }
.yardhead__toggle[hidden] { display: none; }
.yardhead__bars, .yardhead__bars::before, .yardhead__bars::after { display: block; width: 18px; height: 2px; background: currentColor; position: relative; content: ""; }
.yardhead__bars::before { position: absolute; top: -6px; }
.yardhead__bars::after { position: absolute; top: 6px; }
@media (max-width: 60rem) {
  .yardhead__nav { order: 3; flex-basis: 100%; margin-left: 0; }
  .yardhead__nav ul { flex-direction: column; gap: 0; padding-bottom: .5rem; }
  .yardhead__nav a { width: 100%; border-bottom: 1px solid var(--rule); }
  .yardhead__nav a[aria-current="page"], .yardhead__nav a[aria-current="true"] { border-bottom: 1px solid var(--rule); box-shadow: inset 4px 0 0 var(--forest); padding-left: .75rem; }
  .yardhead__nav.is-folded { display: none; }
  .plank--mast { order: 2; }
}
@media (max-width: 30rem) { .plank--mast { display: none; } }

/* home: hero */
.opener { max-width: var(--wrap); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); border-bottom: 1px solid var(--rule); }
.opener__copy { padding: clamp(2rem, 5vw, 3.5rem) var(--gutter) 2.5rem; display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 0 1.5rem; align-content: start; }
.opener__copy .eyebrow { grid-column: 1 / -1; }
.opener__title { font-size: clamp(2.6rem, 4.9vw, 4.4rem); margin: 0 0 1.25rem; }
.opener__green { color: var(--green-word); }
.opener__side { border-left: 1px solid var(--rule); padding-left: 1.1rem; align-self: center; font-size: 1rem; }
.opener__facts { grid-column: 1 / -1; list-style: none; padding: 0; margin: 1rem 0 1.75rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.opener__facts li { padding: .25rem 1rem; border-left: 1px solid var(--rule); }
.opener__facts li:first-child { border-left: 0; padding-left: 0; }
.opener__fact-no { display: block; font-family: var(--display); font-weight: 800; font-size: 2rem; line-height: 1; }
.opener__fact-text { font-size: .9rem; color: var(--ink-soft); }
.opener__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .9rem; }
.opener__art { position: relative; background: var(--paper-deep); border-left: 1px solid var(--rule); min-height: 26rem; padding: 3rem 1.5rem 1.5rem; display: flex; align-items: flex-end; }
.opener__house { width: 100%; display: block; }
.opener__scrawl { position: absolute; left: 1.5rem; top: 1rem; font-family: var(--hand); font-size: 1.45rem; line-height: 1.15; color: var(--forest); transform: rotate(-4deg); margin: 0; }
.opener__tags { position: absolute; right: 1rem; top: 1.2rem; list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.opener__tags li { background: var(--note); padding: .45rem .8rem; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; box-shadow: 2px 3px 0 rgba(27, 28, 25, .18); transform: rotate(2deg); }
.opener__tags li:nth-child(2) { transform: rotate(-1.5deg); }
.opener__corner { position: absolute; right: 0; bottom: 0; max-width: 13rem; margin: 0; background: var(--night); color: var(--night-ink); padding: 1.1rem 1.2rem; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; line-height: 1.5; }
@media (max-width: 62rem) {
  .opener { grid-template-columns: minmax(0, 1fr); }
  .opener__art { border-left: 0; border-top: 1px solid var(--rule); }
}
@media (max-width: 40rem) {
  .opener__copy { grid-template-columns: minmax(0, 1fr); }
  .opener__side { border-left: 0; padding-left: 0; }
  .opener__facts { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .opener__facts li { border-left: 0; padding: 0; }
  .opener__art { padding-top: 5.5rem; min-height: 0; flex-direction: column; align-items: stretch; }
  .opener__tags { position: static; display: flex; flex-wrap: wrap; margin-top: 1rem; }
  .opener__corner { position: static; max-width: none; margin-top: 1rem; }
}

/* home: services */
.tradeset { max-width: var(--wrap); margin: 0 auto; padding: clamp(2.5rem, 6vw, 4rem) var(--gutter); display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); gap: 2rem; }
.tradeset__title { font-size: clamp(2rem, 4vw, 2.8rem); }
.tradeset__all { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; font-weight: 700; color: var(--ink); }
.tradeset__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.tradeset__card { position: relative; display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.25rem 1.25rem 2.5rem; background: var(--card); border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); color: var(--ink); text-decoration: none; }
.tradeset__card:hover { background: #fff; color: var(--ink); }
.tradeset__card svg { width: 2.4rem; height: 2.4rem; color: var(--ink); margin-bottom: .4rem; }
.tradeset__name { font-weight: 700; }
.tradeset__text { font-size: .92rem; color: var(--ink-soft); }
.tradeset__go { position: absolute; right: 1rem; bottom: .8rem; font-size: 1.1rem; }
@media (max-width: 62rem) { .tradeset { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 44rem) { .tradeset__grid { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 44.01rem) and (max-width: 62rem) { .tradeset__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* home: featured example */
.showcase { --focus: #f2a65a; background: var(--night); color: var(--night-ink); display: grid; gap: 2rem; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr) minmax(0, 4fr); padding: clamp(2.5rem, 6vw, 3.5rem) max(var(--gutter), calc((100% - var(--wrap)) / 2 + var(--gutter))); align-items: center; }
.showcase h2 { color: #fff; font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
.showcase a:not(.plank) { color: var(--night-ink); }
.showcase__plan { position: relative; }
.showcase__plan svg { display: block; width: 100%; }
.showcase__note { position: absolute; right: -.5rem; top: -1rem; background: var(--note); color: var(--ink); font-family: var(--hand); font-size: 1.15rem; line-height: 1.1; padding: .5rem .7rem; transform: rotate(4deg); margin: 0; box-shadow: 2px 3px 0 rgba(0, 0, 0, .35); }
.showcase__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.showcase__list a { display: flex; justify-content: space-between; gap: .5rem; align-items: center; min-height: 48px; padding: .6rem .9rem; border: 1px solid #45463f; text-decoration: none; font-size: .95rem; }
.showcase__list a:hover { background: #2a2b27; }
@media (max-width: 62rem) { .showcase { grid-template-columns: minmax(0, 1fr); } }

/* home: method */
.stages { max-width: var(--wrap); margin: 0 auto; padding: clamp(2.5rem, 6vw, 4rem) var(--gutter); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 2fr); gap: 2rem; border-bottom: 1px solid var(--rule); }
.stages__list { display: grid; gap: 1.25rem; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0; list-style: none; margin: 0; }
.stages__list li { border-top: 3px solid var(--ink); padding-top: .9rem; }
.stages__no { display: block; font-family: var(--display); font-weight: 800; font-size: 2.4rem; line-height: 1; margin-bottom: .5rem; }
.stages__list p { font-size: .93rem; color: var(--ink-soft); }
@media (max-width: 62rem) { .stages { grid-template-columns: minmax(0, 1fr); } .stages__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 34rem) { .stages__list { grid-template-columns: minmax(0, 1fr); } }

/* home: why */
.whyset { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) minmax(0, 1.4fr); max-width: var(--wrap); margin: 0 auto; }
.whyset__art svg { display: block; width: 100%; height: 100%; object-fit: cover; }
.whyset__panel { --focus: #f2a65a; background: var(--forest); color: #f3efe4; padding: 2.25rem 1.75rem; }
.whyset__panel h2 { color: #fff; font-family: var(--display); }
.whyset__panel .eyebrow { color: #cfd8c8; }
.whyset__points { list-style: none; margin: 0; padding: 2rem 1.5rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-content: center; }
.whyset__points svg { width: 2.4rem; height: 2.4rem; color: var(--forest); }
.whyset__points h3 { margin: .4rem 0 .25rem; font-size: 1.02rem; }
.whyset__points p { font-size: .92rem; color: var(--ink-soft); margin: 0; }
@media (max-width: 62rem) { .whyset { grid-template-columns: minmax(0, 1fr); } .whyset__art { max-height: 16rem; overflow: hidden; } }
@media (max-width: 34rem) { .whyset__points { grid-template-columns: minmax(0, 1fr); } }

/* home: questions */
.askhome { border-top: 1px solid var(--rule); }
.askhome__inner { max-width: 52rem; margin: 0 auto; padding: clamp(2.5rem, 6vw, 3.5rem) var(--gutter); }

/* closing band */
.closer { --focus: #f2a65a; position: relative; overflow: hidden; background: var(--night); color: var(--night-ink); }
.closer__inner { position: relative; z-index: 1; max-width: var(--wrap); margin: 0 auto; padding: clamp(2.25rem, 5vw, 3rem) var(--gutter); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; }
.closer__inner > div { max-width: 44rem; }
.closer__title { color: #fff; font-size: clamp(1.7rem, 3.6vw, 2.5rem); margin-bottom: .4rem; }
.closer__text { margin: 0; color: var(--night-soft); }
.closer__sketch { position: absolute; right: 1rem; bottom: -.5rem; width: 15rem; color: #57584f; z-index: 0; }
@media (max-width: 40rem) { .closer__sketch { display: none; } }

/* inner pages */
.pagehead { border-bottom: 1px solid var(--rule); background: linear-gradient(90deg, var(--paper) 0, var(--paper) 70%, var(--paper-deep) 70%); }
.pagehead__inner { max-width: var(--wrap); margin: 0 auto; padding: 1.5rem var(--gutter) 2.25rem; }
.pagehead h1 { max-width: 22ch; }
.standfirst { font-size: 1.15rem; max-width: 46rem; color: var(--ink); }
.credit { font-size: .9rem; color: var(--ink-soft); margin: 0; }
.credit a { color: var(--ink-soft); }
.trailnav ol { list-style: none; display: flex; flex-wrap: wrap; gap: .2rem .5rem; margin: 0 0 1.2rem; padding: 0; font-size: .88rem; }
.trailnav li + li::before { content: "/"; margin-right: .5rem; color: var(--ink-soft); }
.trailnav a { color: var(--ink-soft); display: inline-block; padding: .3rem 0; }
.trailnav a[aria-current="page"] { color: var(--ink); text-decoration: none; }
@media (max-width: 50rem) { .pagehead { background: var(--paper); } }

.folio { max-width: var(--wrap); margin: 0 auto; padding: 2.5rem var(--gutter) 1rem; }
.folio--rail { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; gap: 3rem; align-items: start; }
@media (max-width: 62rem) { .folio--rail { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; } }
.copytext { max-width: 46rem; }
.copytext h2 { margin-top: 2.2rem; }
.copytext h3 { margin-top: 1.6rem; }
.copytext li { margin-bottom: .4rem; }
.copytext code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .9em; background: var(--paper-deep); padding: .05em .3em; border-radius: 2px; overflow-wrap: anywhere; }
.pullnote { border-left: 4px solid var(--forest); background: var(--card); padding: 1rem 1.2rem; font-style: italic; }
.offsite::after { content: " \2197"; font-size: .8em; font-family: var(--display); }
/* the arrows are drawn from the display face, which carries U+2192 and U+2197 (the text face does not) */
span[aria-hidden="true"] { font-family: var(--display); }
td a { display: inline-flex; align-items: center; min-height: 24px; }

.sidecol { position: sticky; top: 1rem; display: grid; gap: 1.25rem; }
@media (max-width: 62rem) { .sidecol { position: static; } }
.sidecol__box { background: var(--card); border: 1px solid var(--rule); padding: 1rem 1.1rem; }
.sidecol__head { font-family: var(--text); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .5rem; }
.sidecol__list { margin: 0; padding-left: 1.1rem; font-size: .93rem; }
.sidecol__list li { margin: .15rem 0; }
.sidecol__list a { display: inline-block; padding: .3rem 0; }

/* tables */
.tablebox { position: relative; overflow-x: auto; margin: 0 0 1.5rem; }
table { border-collapse: collapse; width: 100%; font-size: .95rem; background: var(--card); }
caption { text-align: left; font-weight: 700; padding: 0 0 .5rem; caption-side: top; }
th, td { border: 1px solid var(--rule); padding: .6rem .7rem; text-align: left; vertical-align: top; }
thead th { background: var(--paper-deep); }

/* fictional examples and notes */
.madeup { border: 2px dashed var(--ink-soft); background: var(--card); padding: 1.1rem 1.25rem .4rem; margin: 1.5rem 0; position: relative; }
.madeup__tag { display: inline-block; background: var(--note); font-family: var(--hand); font-size: 1.2rem; padding: .1rem .6rem; transform: rotate(-1.5deg); margin: -1.9rem 0 .8rem; box-shadow: 1px 2px 0 rgba(27, 28, 25, .2); }
.sitenote { background: var(--note); padding: 1rem 1.2rem .3rem; margin: 1.5rem 0; box-shadow: 2px 3px 0 rgba(27, 28, 25, .15); }
.sitenote__tag { font-family: var(--hand); font-size: 1.25rem; margin-bottom: .3rem; }

/* question lists */
.askset { border-top: 1px solid var(--rule); margin-bottom: 1.5rem; }
.askset__item { border-bottom: 1px solid var(--rule); }
.askset__item summary { font-weight: 700; padding: .75rem 0; min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; list-style: none; cursor: pointer; }
.askset__item summary::-webkit-details-marker { display: none; }
.askset__item summary::after { content: "+"; font-family: var(--display); font-size: 1.6rem; line-height: 1; }
.askset__item[open] summary::after { content: "\2212"; }
.askset__body { padding: 0 0 .75rem; }

/* steps on inner pages */
.stepset { list-style: none; padding: 0; margin: 1rem 0 2rem; display: grid; gap: 1rem; }
.stepset__item { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: 0 1rem; border-top: 3px solid var(--ink); padding-top: .9rem; }
.stepset__no { font-family: var(--display); font-weight: 800; font-size: 2.3rem; line-height: 1; grid-row: span 2; }
.stepset__item h3 { margin: 0 0 .3rem; }
.stepset__item p { margin: 0; }

/* hub cards */
.panes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); padding: 0; margin: 1rem 0 2rem; list-style: none; }
.pane__link { position: relative; display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.1rem 1.1rem 2.3rem; background: var(--card); border: 1px solid var(--rule); color: var(--ink); text-decoration: none; }
.pane__link:hover { background: #fff; color: var(--ink); }
.pane__title { font-weight: 700; }
.pane__text { font-size: .92rem; color: var(--ink-soft); }
.pane__go { position: absolute; right: .9rem; bottom: .7rem; }

/* sources */
.sourcing { max-width: var(--wrap); margin: 0 auto; padding: 1rem var(--gutter) 2.5rem; }
.sourcing h2 { font-size: 1.4rem; }
.sourcing ol { padding-left: 1.2rem; font-size: .93rem; max-width: 52rem; }
.sourcing li { margin-bottom: .45rem; }
.sourcing a { overflow-wrap: anywhere; }
.sourcing__grade { color: var(--ink-soft); font-size: .85rem; }
.sourcing__more { font-size: .9rem; color: var(--ink-soft); }

/* tools */
.workbench { background: var(--card); border: 1px solid var(--rule); padding: 1.4rem clamp(1rem, 3vw, 1.75rem); margin: 0 0 2.5rem; }
.workbench__title { font-size: 1.7rem; }
.workbench__note { font-size: .92rem; color: var(--ink-soft); }
.workbench__set { border: 0; border-top: 1px solid var(--rule); margin: 1.25rem 0 0; padding: 1rem 0 0; min-width: 0; }
.workbench__set legend { font-weight: 700; font-size: 1.05rem; padding: 0 .4rem 0 0; }
.workbench__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }
.workbench__result { border-top: 3px solid var(--ink); margin-top: 1.5rem; padding-top: 1rem; }
.workbench__subtitle { font-size: 1.25rem; }
.workbench__subtitle:focus { outline: 3px solid var(--focus); outline-offset: 4px; }
.workbench__text { white-space: pre-wrap; overflow-wrap: anywhere; background: #fff; border: 1px solid var(--rule); padding: 1rem; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .88rem; line-height: 1.5; max-height: 32rem; overflow: auto; }
.workbench__warn { background: var(--note); border-left: 4px solid var(--focus); padding: .7rem 1rem .7rem 2rem; }
.workbench__warn:empty, .workbench__warn[hidden] { display: none; }
.workbench__count { font-weight: 700; }
.workbench__status { min-height: 1.6em; font-size: .93rem; }
.entry { margin: 0 0 1rem; }
.entry label { display: block; font-weight: 700; margin-bottom: .3rem; }
.entry__hint { font-size: .88rem; color: var(--ink-soft); margin: .3rem 0 0; }
.entry--inline { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem; margin-top: 1rem; }
.entry--inline label { flex-basis: 100%; margin: 0; }
.entry--inline input { flex: 1 1 14rem; }
select, textarea, input:is([type="text"], [type="email"], [type="url"], [type="number"], [type="tel"]) {
  width: 100%; min-height: 48px; padding: .6rem .7rem; font: inherit; color: var(--ink);
  background: #fff; border: 2px solid #6d6c62; border-radius: 2px;
}
textarea { min-height: 6rem; resize: vertical; }
.matrix select, .matrix__input { min-height: 44px; }
.ticks { display: grid; gap: .35rem; }
.tick { display: flex; align-items: center; gap: .6rem; min-height: 44px; cursor: pointer; }
.tick input, .matrix input[type="checkbox"] { width: 24px; height: 24px; margin: 0; accent-color: var(--leaf); flex: none; }
.matrix td, .matrix th { vertical-align: middle; }
.matrix--areas td:not(:first-child) { text-align: center; }
.matrix--areas th[scope="col"] { font-size: .85rem; }
.matrix__input { min-width: 9rem; }
@media (max-width: 44rem) {
  .matrix--areas thead { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
  .matrix--areas, .matrix--areas tbody, .matrix--areas tr, .matrix--areas td { display: block; width: 100%; }
  .matrix--areas caption { display: block; }
  .matrix--areas tr { border: 1px solid var(--rule); margin-bottom: .9rem; padding: .5rem .75rem; background: var(--card); }
  .matrix--areas td { border: 0; padding: .3rem 0; text-align: left; }
  .matrix--areas td:not(:first-child) { display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left; }
  .matrix--areas td[data-head]::before { content: attr(data-head); font-size: .9rem; font-weight: 700; }
  .matrix--areas td:first-child { display: grid; gap: .3rem; }
}

/* contact desk */
.enqdesk { background: var(--card); border: 1px solid var(--rule); padding: 1.4rem clamp(1rem, 3vw, 1.75rem); margin: 0 0 2rem; }
.enqdesk__title { font-size: 1.6rem; }
.enqdesk__msg { padding: .9rem 1.1rem; margin: 0 0 1.25rem; border-left: 4px solid var(--forest); background: #fff; }
.enqdesk__msg--bad { border-left-color: var(--focus); }
.enqdesk__row { margin: 0 0 1rem; }
.enqdesk__row label { display: block; font-weight: 700; margin-bottom: .3rem; }
.enqdesk__hint { font-size: .88rem; color: var(--ink-soft); margin: .3rem 0 0; }
.enqdesk__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.enqdesk__notice { font-size: .9rem; color: var(--ink-soft); margin-top: 1rem; }

/* not found */
.nowhere { max-width: 46rem; margin: 0 auto; padding: 3rem var(--gutter); }

/* footer */
.basefoot { --focus: #f2a65a; background: var(--night); color: var(--night-soft); font-size: .93rem; }
.basefoot__inner { max-width: var(--wrap); margin: 0 auto; padding: 2.75rem var(--gutter) 1.5rem; display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 2rem; }
.basefoot a { color: var(--night-ink); display: inline-block; padding: .25rem 0; }
.basefoot a:hover { color: #fff; }
.basefoot ul { list-style: none; margin: 0 0 1rem; padding: 0; }
.basefoot__name { font-family: var(--display); font-weight: 800; font-size: 1.7rem; color: #fff; margin-bottom: .3rem; }
.basefoot__head { font-family: var(--text); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin: 0 0 .5rem; }
.basefoot__base { max-width: var(--wrap); margin: 0 auto; padding: 1.25rem var(--gutter) 2rem; border-top: 1px solid #3a3b35; }
.basefoot__disclosure { color: var(--night-ink); max-width: 52rem; }
.basefoot__copy { margin: 0; }
@media (max-width: 62rem) { .basefoot__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 34rem) { .basefoot__inner { grid-template-columns: minmax(0, 1fr); } }

@media print { body { background: #fff; } .yardhead, .closer, .basefoot, .sidecol { display: none; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, ::before, ::after { transition: none; animation: none; } }
