/* ==========================================================================
   NOMADQO  site.css
   One stylesheet for index, fitouts, workshop, costs and contact.

   Markup conventions (block__element--modifier, nq- prefix):

   Page shell
     body > a.nq-skip, header.nq-head, main#main.nq-main, footer.nq-foot
     Every direct child of .nq-main is a ruled band (1px pine rule beneath).

   Header
     .nq-head > .nq-head__inner > a.nq-head__mark + span.nq-head__meta
       + nav.nq-nav > ul.nq-nav__list > li > a.nq-nav__link (+ --cta on Write to us)
       + details.nq-menu > summary.nq-menu__btn (span text + span.nq-menu__icon)
         + div.nq-menu__panel > ul.nq-menu__list > li > a.nq-menu__link
           + p.nq-menu__foot
     Current page link carries aria-current="page".

   Opening mosaic (index)
     section.nq-hero.nq-mosaic > div.nq-mo.nq-mo--lead (p.nq-label.nq-hero__label,
       h1.nq-hero__title > span.nq-wipe > span.nq-wipe__in  (one per line),
       div.nq-hero__note > p + p.nq-sign)
       + div.nq-mo--cherry + a.nq-mo--oat (span.nq-mo__label, span.nq-mo__fact, span.nq-mo__text)
       + figure.nq-mo--plan.nq-draw.nq-draw--hero > svg + figcaption.nq-draw__caption
       + div.nq-mo--steps > div.nq-mo__stephead + ol.nq-mo__steps > li.nq-mo__step

   Drawing (inline SVG, viewBox only, no width/height attributes)
     g.nq-draw__art  every stroke inside is drawn in on load
       .nq-draw__heavy  1.5px   .nq-draw__dash  dashed, faded not drawn
       .nq-draw__ghost  ghosted interior   .nq-draw__dim  dimension lines
       .nq-draw__hatch  hatched cut wall (fill="url(#id)")  .nq-draw__fade  fades in
     text.nq-draw__text (+ --dim, --caps, --sm)   .nq-draw__minor hidden on phones
     g.nq-draw__callout[data-callout="1..5"] > line.nq-draw__leader
       + g.nq-draw__dot > circle + text      (.is-current = cherry)
     pattern line: .nq-draw__hatchline   title block: .nq-draw__block

   Steps (index)
     section.nq-steps > div.nq-steps__head (p.nq-label + h2.nq-steps__title)
       + ol.nq-steps__list > li.nq-step[data-step="n"] >
         span.nq-step__num + h3.nq-step__name + p.nq-step__text
       + p.nq-steps__foot

   Bento and tiles
     div.nq-bento > a|div.nq-tile.nq-tile--w3..w12 (+ --h2, --pine, --cherry, --oat)
       > p.nq-tile__label, p.nq-tile__fact (+ --xl), p.nq-tile__text,
         ul.nq-tile__list, dl.nq-tile__meta > div > dt + dd,
         div.nq-tile__fig, div.nq-tile__foot > span.nq-tile__go > span.nq-arrow
     div.nq-bento--services: service tiles, every tile full width on phones
     div.nq-pricegrid uses the same tiles, equal height, foot on one floor.
     Prices: p.nq-price > span.nq-price__pre + span.nq-wb.nq-wb--144 ($ + span.nq-wb__tag)
       + span.nq-wb.nq-wb--170   (both show without JS)
     Switch: div.nq-wheelbase > div.nq-switch > button.nq-switch__btn[data-wb-set="144"]

   Generic sections
     .nq-pagehead > .nq-pagehead__side (.nq-label, .nq-pagehead__meta)
       + .nq-pagehead__main (h1.nq-pagehead__title, p.nq-pagehead__lead)
       --email variant for the contact page headline link
     .nq-sechead > p.nq-label + h2.nq-sechead__title + p.nq-sechead__aside
     .nq-split > .nq-split__main + .nq-split__side (--wide, --even, side --oat)
     .nq-body (padded text area), .nq-prose (reading measure, --drop drop cap)
     dl.nq-rows > div.nq-rows__row > dt.nq-rows__key + dd.nq-rows__val (--hours)
     ul.nq-flat > li.nq-flat__item > span.nq-flat__n + h3.nq-flat__title + p.nq-flat__text
     ul.nq-list (--up, --down)   ul.nq-inline > li   ul.nq-check > li.nq-check__item
     section.nq-refuse > .nq-sechead + ol.nq-refuse__list > li.nq-refuse__row >
       span.nq-refuse__n + h3.nq-refuse__what + p.nq-refuse__why
     ol.nq-process > li.nq-proc > div.nq-proc__num > span ; div.nq-proc__body ;
       dl.nq-proc__facts
     .nq-bench > .nq-bench__text.nq-prose + .nq-bench__side > .nq-bench__stick >
       .nq-bench__fig + ul.nq-nums > li.nq-nums__item > span.nq-nums__val + span.nq-nums__label
     ul.nq-people > li.nq-person > h3.nq-person__name + p.nq-person__role + p.nq-person__text
     ul.nq-facts > li.nq-fact > span.nq-fact__val + span.nq-fact__label
     ol.nq-schedule > li.nq-pay > span.nq-pay__num + h3.nq-pay__when + p.nq-pay__pct + p.nq-pay__text
     .nq-moves > .nq-moves__col > h3.nq-moves__title + ul.nq-list
     .nq-note > .nq-note__head + .nq-note__body ; .nq-closure ; .nq-links
     nav.nq-next > a.nq-next__link > span.nq-label + span.nq-next__title + span.nq-next__go
     .nq-sign  italic signature preceded by a short drawn rule
   ========================================================================== */

:root {
  --ground: #ECE2CF;
  --oat: #E0D3BA;
  --pine: #1E3B2C;
  --muted: #566550;
  --line: #2F4C3C;
  --cherry: #A51F2D;
  --soft: #BDBBA6;
  --sub: #566550;

  --serif: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, Georgia, serif;

  --fs-xs: .75rem;
  --fs-sm: .875rem;
  --fs-base: 1.0625rem;
  --fs-lead: 1.3125rem;
  --fs-h2: 1.75rem;
  --fs-xl: 2.5rem;
  --fs-num: 3.75rem;
  --fs-hero: clamp(2.75rem, 0.6rem + 4.6vw, 5.25rem);
  --fs-page: clamp(2.5rem, 1.9rem + 2.6vw, 3.75rem);

  --edge: clamp(10px, 2.2vw, 32px);
  --pad: clamp(18px, 2.1vw, 30px);
  --pad-lg: clamp(22px, 4vw, 64px);
  --sec-top: clamp(40px, 6vw, 96px);
  --sec-bot: clamp(28px, 4vw, 60px);
  --head-h: 64px;

  --rule: 1px solid var(--line);
  --rule-soft: 1px solid var(--soft);
  --ease-wipe: cubic-bezier(.7, 0, .2, 1);
  --ease-out: cubic-bezier(.2, .7, .2, 1);
}

@media (max-width: 759px) {
  :root { --head-h: 56px; }
}

/* ---------- Base ---------- */

*, *::before, *::after { box-sizing: border-box; }

html {
  background: var(--ground);
  color: var(--pine);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  margin: 0;
  padding: 0 var(--edge);
  min-height: 100vh;
  overflow-x: clip;
  background: var(--ground);
  color: var(--pine);
  font-family: var(--serif);
  font-size: var(--fs-base);
  line-height: 1.65;
  font-weight: 400;
  font-kerning: normal;
  font-variant-numeric: oldstyle-nums proportional-nums;
  font-feature-settings: "kern" 1, "onum" 1, "pnum" 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  margin: 0;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.01em;
  text-wrap: balance;
  overflow-wrap: break-word;
}

p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
dl, dd, figure { margin: 0; }
a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }
svg { max-width: 100%; height: auto; }
button { font: inherit; color: inherit; }
strong, b { font-weight: 600; }
em, i { font-style: italic; }

::selection { background: var(--pine); color: var(--ground); }

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

[id] { scroll-margin-top: calc(var(--head-h) + 16px); }

.nq-sr {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.nq-skip {
  position: absolute;
  left: var(--edge);
  top: -100px;
  z-index: 100;
  padding: .7em 1.1em;
  background: var(--pine);
  color: var(--ground);
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  text-decoration: none;
}
.nq-skip:focus { top: 8px; }

/* JS-dependent helpers: only for controls that do nothing without script */
.nq-jsonly { display: none !important; }
.js .nq-jsonly { display: revert !important; }
.js .nq-nojs { display: none !important; }

/* ---------- Text primitives ---------- */

.nq-label {
  display: block;
  font-size: var(--fs-xs);
  line-height: 1.45;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sub);
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
}

.nq-label--rule {
  display: flex;
  align-items: center;
  gap: .8em;
}
.nq-label--rule::before {
  content: "";
  flex: 0 0 1.75rem;
  height: 1px;
  background: currentColor;
}

.nq-lead {
  font-size: var(--fs-lead);
  line-height: 1.5;
  max-width: 54ch;
}

.nq-muted { color: var(--muted); }

.nq-sign {
  display: flex;
  align-items: center;
  gap: .6em;
  margin-top: .9em;
  font-style: italic;
  font-size: var(--fs-lead);
  line-height: 1.2;
  color: var(--pine);
}
.nq-sign::before {
  content: "";
  flex: 0 0 1.6em;
  height: 1px;
  background: currentColor;
}

/* Running-text links: pine with a cherry underline, cherry on hover */
.nq-link,
.nq-main a:not([class]) {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-color: var(--cherry);
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
  transition: color .2s ease, text-decoration-thickness .2s ease;
}
.nq-link:hover,
.nq-main a:not([class]):hover {
  color: var(--cherry);
  text-decoration-thickness: 2px;
}
.nq-tile--pine a:not([class]),
.nq-tile--cherry a:not([class]) { text-decoration-color: currentColor; }
.nq-tile--pine a:not([class]):hover,
.nq-tile--cherry a:not([class]):hover { color: inherit; }

/* Drawn arrow, no glyphs */
.nq-arrow {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 1.6em;
  height: .7em;
  vertical-align: -.02em;
  transition: transform .4s var(--ease-out), width .4s var(--ease-out);
}
.nq-arrow::before {
  content: "";
  position: absolute;
  left: 0; right: .1em; top: 50%;
  height: 1px;
  background: currentColor;
}
.nq-arrow::after {
  content: "";
  position: absolute;
  right: .12em; top: 50%;
  width: .46em; height: .46em;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

/* Button: hugs its text, flush, no lift */
.nq-btn {
  display: inline-flex;
  align-items: center;
  gap: .8em;
  width: auto;
  padding: .85em 1.35em;
  border: 1px solid var(--pine);
  background: var(--pine);
  color: var(--ground);
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.2;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
.nq-btn:hover { background: var(--cherry); border-color: var(--cherry); }
.nq-btn:hover .nq-arrow { transform: translateX(4px); }
.nq-btn--line { background: transparent; color: var(--pine); }
.nq-btn--line:hover { background: transparent; color: var(--cherry); border-color: var(--cherry); }

/* ---------- Header ---------- */

.nq-head {
  position: sticky;
  top: 0;
  z-index: 50;
  margin: 0 calc(var(--edge) * -1);
  padding: 0 var(--edge);
  background: var(--ground);
}

.nq-head__inner {
  position: relative;
  max-width: 1600px;
  margin: 0 auto;
  height: var(--head-h);
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  border-left: var(--rule);
  border-right: var(--rule);
  border-bottom: var(--rule);
}

.nq-head__mark {
  display: flex;
  align-items: center;
  gap: .7em;
  padding: 0 var(--pad);
  border-right: var(--rule);
  font-size: .875rem;
  line-height: 1;
  letter-spacing: .3em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--pine);
  text-decoration: none;
  white-space: nowrap;
  transition: color .25s ease;
}
.nq-head__mark::before {
  content: "";
  width: 9px; height: 9px;
  background: var(--cherry);
  flex: 0 0 auto;
}
.nq-head__mark:hover { color: var(--cherry); }

.nq-head__meta {
  display: none;
  align-items: center;
  margin-right: auto;
  padding: 0 var(--pad);
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}
@media (min-width: 1100px) {
  .nq-head__meta { display: flex; }
}

.nq-nav { display: flex; }
.nq-nav__list { display: flex; list-style: none; margin: 0; padding: 0; }
.nq-nav__list li { display: flex; }

.nq-nav__link {
  position: relative;
  display: flex;
  align-items: center;
  padding: 0 clamp(14px, 1.7vw, 28px);
  border-left: var(--rule);
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--pine);
  text-decoration: none;
  white-space: nowrap;
  transition: color .25s ease, background-color .25s ease;
}
.nq-nav__link::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 2px;
  background: var(--cherry);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .4s var(--ease-wipe);
}
.nq-nav__link:hover { color: var(--cherry); }
.nq-nav__link:hover::after,
.nq-nav__link[aria-current="page"]::after { transform: scaleX(1); }

.nq-nav__link--cta { background: var(--pine); color: var(--ground); }
.nq-nav__link--cta::after { display: none; }
.nq-nav__link--cta:hover { background: var(--cherry); color: var(--ground); }
.nq-nav__link--cta[aria-current="page"] { background: var(--cherry); }

/* Phone menu, built on details and summary */
.nq-menu { display: none; }

.nq-menu__btn {
  display: inline-flex;
  align-items: center;
  gap: .75em;
  padding: .6em .95em;
  border: var(--rule);
  list-style: none;
  cursor: pointer;
  user-select: none;
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  line-height: 1.2;
  color: var(--pine);
  transition: color .25s ease, border-color .25s ease;
}
.nq-menu__btn::-webkit-details-marker { display: none; }
.nq-menu__btn::marker { content: ""; }
.nq-menu__btn:hover { color: var(--cherry); border-color: var(--cherry); }

.nq-menu__icon {
  position: relative;
  width: 18px;
  height: 10px;
  flex: 0 0 auto;
}
.nq-menu__icon::before,
.nq-menu__icon::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: currentColor;
  transition: transform .35s var(--ease-wipe), top .35s var(--ease-wipe);
}
.nq-menu__icon::before { top: 1px; }
.nq-menu__icon::after { top: 8px; }
.nq-menu[open]:not(.is-closing) .nq-menu__icon::before { top: 4.5px; transform: rotate(45deg); }
.nq-menu[open]:not(.is-closing) .nq-menu__icon::after { top: 4.5px; transform: rotate(-45deg); }

.nq-menu__panel {
  position: absolute;
  top: calc(100% + 1px);
  left: -1px;
  right: -1px;
  z-index: 60;
  background: var(--ground);
  border: var(--rule);
  border-top: 0;
}

.nq-menu__list { list-style: none; margin: 0; padding: 0; }
.nq-menu__list li + li { border-top: var(--rule); }

.nq-menu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem var(--pad);
  font-size: var(--fs-h2);
  line-height: 1.2;
  color: var(--pine);
  text-decoration: none;
  transition: color .25s ease;
}
.nq-menu__link > span:first-child { transition: transform .35s var(--ease-out); }
.nq-menu__link:hover { color: var(--cherry); }
.nq-menu__link:hover > span:first-child { transform: translateX(6px); }
.nq-menu__link[aria-current="page"] { color: var(--cherry); }

.nq-menu__foot {
  padding: 1rem var(--pad) 1.15rem;
  border-top: var(--rule);
  font-size: var(--fs-sm);
  color: var(--muted);
  overflow-wrap: anywhere;
}
.nq-menu__foot a { color: var(--pine); text-decoration-color: var(--cherry); text-underline-offset: .2em; }

@media (max-width: 759px) {
  .nq-nav { display: none; }
  .nq-menu { display: flex; align-items: center; padding-right: var(--pad); }
  .nq-head__mark { border-right: 0; }
}

@keyframes nq-menu-in {
  from { clip-path: inset(0 0 100% 0); transform: translateY(-6px); }
  to { clip-path: inset(0 0 0 0); transform: none; }
}
@keyframes nq-menu-out {
  from { clip-path: inset(0 0 0 0); transform: none; }
  to { clip-path: inset(0 0 100% 0); transform: translateY(-6px); }
}
@keyframes nq-item-in {
  from { opacity: 0; transform: translateX(-10px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: no-preference) {
  .nq-menu[open] .nq-menu__panel { animation: nq-menu-in .42s var(--ease-wipe) both; }
  .nq-menu[open] .nq-menu__list li { animation: nq-item-in .45s var(--ease-out) backwards; }
  .nq-menu[open] .nq-menu__list li:nth-child(2) { animation-delay: .05s; }
  .nq-menu[open] .nq-menu__list li:nth-child(3) { animation-delay: .1s; }
  .nq-menu[open] .nq-menu__list li:nth-child(4) { animation-delay: .15s; }
  .nq-menu[open] .nq-menu__list li:nth-child(5) { animation-delay: .2s; }
  .nq-menu[open] .nq-menu__list li:nth-child(6) { animation-delay: .25s; }
  .nq-menu.is-closing .nq-menu__panel { animation: nq-menu-out .3s var(--ease-wipe) both; }
  .nq-menu.is-closing .nq-menu__list li { animation: none; }
}

/* ---------- Main frame ---------- */

.nq-main {
  max-width: 1600px;
  margin: 0 auto;
  border-left: var(--rule);
  border-right: var(--rule);
}

.nq-main > * { border-bottom: var(--rule); }

/* Ruled grids: hairlines between every cell, never doubled at the frame */
.nq-ruled,
.nq-bento,
.nq-pricegrid,
.nq-steps__list,
.nq-schedule,
.nq-flat,
.nq-people,
.nq-facts,
.nq-next,
.nq-moves,
.nq-check,
.nq-inline {
  overflow: hidden;
}

:is(.nq-ruled, .nq-bento, .nq-pricegrid, .nq-steps__list, .nq-schedule, .nq-flat,
    .nq-people, .nq-facts, .nq-next, .nq-moves, .nq-check, .nq-inline) > * {
  min-width: 0;
  margin: 0 -1px -1px 0;
  border-right: var(--rule);
  border-bottom: var(--rule);
}

:is(.nq-ruled, .nq-bento, .nq-pricegrid, .nq-steps__list, .nq-schedule, .nq-flat,
    .nq-people, .nq-facts, .nq-next, .nq-moves, .nq-check, .nq-inline) + * {
  border-top: var(--rule);
}

.nq-body {
  padding: var(--sec-top) var(--pad-lg) var(--sec-bot);
}

.nq-prose { max-width: 66ch; }
.nq-prose > * + * { margin-top: 1.1em; }
.nq-prose h3 { font-size: var(--fs-lead); margin-top: 1.8em; }
.nq-prose--drop > p:first-of-type::first-letter {
  float: left;
  font-size: 4.4em;
  line-height: .78;
  padding: .07em .09em 0 0;
  color: var(--pine);
  font-weight: 400;
}

/* ---------- Section head ---------- */

.nq-sechead {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--pad);
  row-gap: .5rem;
  align-items: end;
  padding: var(--sec-top) var(--pad) clamp(18px, 2.2vw, 30px);
  border-bottom: var(--rule);
}
.nq-sechead > .nq-label { grid-column: 1 / -1; }
.nq-sechead__title {
  grid-column: 1 / 8;
  font-size: var(--fs-h2);
  line-height: 1.15;
}
.nq-sechead__aside {
  grid-column: 8 / 13;
  color: var(--muted);
  max-width: 46ch;
}
.nq-sechead--tight { padding-top: clamp(24px, 3vw, 44px); }

@media (max-width: 899px) {
  .nq-sechead__title, .nq-sechead__aside { grid-column: 1 / -1; }
  .nq-sechead__aside { margin-top: .4rem; }
}

/* ---------- Opening mosaic (index) ----------
   Flat tiles on a 12 column grid. The 1px gaps show the pine beneath, so the grid
   lines are the structure itself. */

.nq-mosaic {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border-bottom: 1px solid var(--line);
}
.nq-mo {
  min-width: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  padding: clamp(18px, 2vw, 30px);
  background: var(--ground);
  color: var(--pine);
}

.nq-mo--lead {
  grid-column: 1 / -1;
  gap: clamp(16px, 2vw, 28px);
  background: var(--pine);
  color: var(--ground);
  container-type: inline-size;
}
.nq-mo--lead .nq-label { color: var(--soft); }
.nq-mo--lead .nq-hero__title {
  margin: 0;
  font-size: min(4.5rem, 9.4cqi);
  line-height: 1.04;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.012em;
  color: var(--ground);
}
.nq-wipe { display: block; }
.nq-wipe__in { display: block; padding-bottom: .12em; margin-bottom: -.12em; white-space: nowrap; }
.nq-hero__note {
  margin-top: auto;
  max-width: 34rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(236, 226, 207, .35);
  font-size: 1.1875rem;
  line-height: 1.5;
}
.nq-hero__note p { margin: 0; }
.nq-mo--lead .nq-sign { color: var(--ground); }

.nq-mo--cherry { background: var(--cherry); color: var(--ground); }
.nq-mo--oat { background: var(--oat); color: var(--pine); text-decoration: none; }
.nq-mo__label {
  display: block;
  margin: 0;
  font-size: var(--fs-xs);
  line-height: 1.45;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  font-variant-numeric: lining-nums;
}
.nq-mo--cherry .nq-mo__label { color: rgba(236, 226, 207, .85); }
.nq-mo--oat .nq-mo__label { color: var(--sub); }
.nq-mo__fact {
  display: block;
  margin: .55rem 0 0;
  font-size: clamp(1.75rem, 1rem + 1.7vw, 2.75rem);
  line-height: 1.05;
  font-style: italic;
  letter-spacing: -.01em;
  transition: color .3s ease;
}
.nq-mo__text { display: block; margin: auto 0 0; padding-top: .9rem; font-size: var(--fs-sm); line-height: 1.5; }
.nq-mo__go { text-decoration: underline; text-decoration-color: var(--cherry); text-underline-offset: .2em; }
.nq-mo--oat:hover .nq-mo__fact { color: var(--cherry); }

.nq-mo--plan { background: var(--oat); justify-content: space-between; gap: .75rem; }
.nq-mo--plan.nq-draw svg { flex: none; width: min(100%, 17rem); max-height: none; margin-inline: auto; }
.nq-plan__dim { stroke: var(--cherry); stroke-width: 1; }

.nq-mo__stephead {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .4rem 1.5rem;
  padding-bottom: .9rem;
  border-bottom: 1px solid var(--line);
}
.nq-mo__h2 { margin: 0; font-size: var(--fs-h2); line-height: 1.1; font-weight: 400; }
.nq-mo__small { margin: 0; max-width: 40rem; font-size: var(--fs-sm); color: var(--muted); }
.nq-mo__steps { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
.nq-mo__step { padding: .9rem 0; border-bottom: 1px solid var(--soft); }
.nq-mo__step:last-child { border-bottom: 0; }
.nq-mo__n {
  display: block;
  font-size: 2rem;
  line-height: 1;
  color: var(--cherry);
  font-variant-numeric: oldstyle-nums;
  font-feature-settings: "onum" 1;
}
.nq-mo__name { margin: .35rem 0 .25rem; font-size: 1.125rem; font-weight: 400; line-height: 1.25; }
.nq-mo__step p { margin: 0; font-size: .9375rem; line-height: 1.5; }

@media (max-width: 899px) {
  .nq-mo--cherry { grid-column: 1 / 7; }
  .nq-mo--oat { grid-column: 7 / -1; }
  .nq-mo--steps { grid-column: 1 / -1; order: 4; }
  .nq-mo--plan { grid-column: 1 / -1; order: 5; }
  .nq-wipe, .nq-wipe__in { display: inline; padding: 0; margin: 0; white-space: normal; }
  .nq-mo--lead .nq-hero__title { font-size: clamp(2.25rem, 10.5cqi, 3.5rem); }
  .nq-hero__note { font-size: 1.0625rem; }
  .nq-mo__fact { font-size: 1.5rem; }
}

@media (min-width: 640px) and (max-width: 899px) {
  .nq-mo__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
}

@media (min-width: 900px) {
  .nq-mosaic {
    grid-template-rows: minmax(0, 1fr) minmax(0, 1fr) auto;
    min-height: calc(100vh - var(--head-h));
    min-height: calc(100svh - var(--head-h));
  }
  .nq-mo--lead { grid-column: 1 / 7; grid-row: 1 / 3; }
  .nq-mo--cherry { grid-column: 7 / 10; grid-row: 1; }
  .nq-mo--oat { grid-column: 7 / 10; grid-row: 2; }
  .nq-mo--plan { grid-column: 10 / 13; grid-row: 1 / 4; }
  .nq-mo--steps { grid-column: 1 / 10; grid-row: 3; }
  .nq-mo__steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .nq-mo__step { padding: 1rem 1rem 0 0; border-bottom: 0; }
  .nq-mo__step + .nq-mo__step { padding-left: 1rem; border-left: 1px solid var(--soft); }
  .nq-mo--plan.nq-draw svg { flex: 0 1 auto; width: 100%; min-height: 0; }
}

/* ---------- Drawing ---------- */

.nq-draw { position: relative; margin: 0; min-width: 0; }
.nq-draw svg {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  overflow: visible;
  margin-inline: auto;
}

.nq-draw__art {
  fill: none;
  stroke: var(--line);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nq-draw__art * { vector-effect: none; }
.nq-draw__heavy { stroke-width: 1.5; }
.nq-draw__dash { stroke-dasharray: 5 4; }
.nq-draw__ghost { stroke: var(--muted); stroke-width: .8; }
.nq-draw__dim { stroke: var(--muted); stroke-width: .75; }
.nq-draw__hatch { stroke: var(--line); stroke-width: 1; }
.nq-draw__hatchline { stroke: var(--line); stroke-width: .6; fill: none; }
.nq-draw__block { fill: var(--ground); stroke: var(--line); stroke-width: 1; }
.nq-draw__solid { fill: var(--line); stroke: none; }

.nq-draw__text {
  fill: var(--pine);
  stroke: none;
  font-family: var(--serif);
  font-size: 13px;
  font-variant-numeric: oldstyle-nums;
  font-feature-settings: "onum" 1;
}
.nq-draw__text--sm { font-size: 11px; }
.nq-draw__text--dim { font-size: 12px; fill: var(--muted); }
.nq-draw__text--caps {
  font-size: 9.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

.nq-draw__callout { cursor: default; }
.nq-draw__leader {
  fill: none;
  stroke: var(--line);
  stroke-width: 1;
  transition: stroke .3s ease;
}
.nq-draw__dot {
  transform-box: fill-box;
  transform-origin: 50% 50%;
  transition: transform .35s var(--ease-out);
}
.nq-draw__dot circle {
  fill: var(--ground);
  stroke: var(--line);
  stroke-width: 1;
  transition: fill .3s ease, stroke .3s ease;
}
.nq-draw__dot text {
  fill: var(--pine);
  stroke: none;
  font-family: var(--serif);
  font-size: 13px;
  font-weight: 600;
  text-anchor: middle;
  dominant-baseline: central;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  transition: fill .3s ease;
}
.nq-draw__callout.is-current .nq-draw__dot circle { fill: var(--cherry); stroke: var(--cherry); }
.nq-draw__callout.is-current .nq-draw__dot text { fill: var(--ground); }
.nq-draw__callout.is-current .nq-draw__leader { stroke: var(--cherry); }

.nq-draw__caption {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .25rem 1rem;
  padding-top: .7rem;
  border-top: var(--rule);
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

@media (max-width: 759px) {
  .nq-draw__minor { display: none; }
  .nq-draw__text--dim { font-size: 17px; }
  .nq-mo--plan .nq-draw__text--dim { font-size: 12px; }
  .nq-draw__caption { padding-top: .5rem; }
}

/* Draw-in states. Armed is added by script only, then replaced by drawing. */
.nq-draw.is-armed .nq-draw__stroke {
  stroke-dasharray: var(--len);
  stroke-dashoffset: var(--len);
}
.nq-draw.is-armed :is(.nq-draw__dash, .nq-draw__hatch, .nq-draw__text, .nq-draw__fade, .nq-draw__callout) {
  opacity: 0;
}

@keyframes nq-stroke {
  from { stroke-dasharray: var(--len); stroke-dashoffset: var(--len); }
  to { stroke-dasharray: var(--len); stroke-dashoffset: 0; }
}
@keyframes nq-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: no-preference) {
  .nq-draw.is-drawing .nq-draw__stroke { animation: nq-stroke 1.4s var(--ease-wipe) backwards; }
  .nq-draw.is-drawing :is(.nq-draw__dash, .nq-draw__hatch, .nq-draw__text, .nq-draw__fade) {
    animation: nq-fade .9s ease .55s backwards;
  }
  .nq-draw.is-drawing .nq-draw__callout { animation: nq-fade .5s ease 1.2s backwards; }
}

/* ---------- Steps strip ---------- */

.nq-steps__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .4rem 1.4rem;
  padding: clamp(16px, 1.6vw, 22px) var(--pad);
  border-bottom: var(--rule);
}
.nq-steps__title { font-size: var(--fs-h2); line-height: 1.15; }

.nq-steps__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.nq-step {
  position: relative;
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr);
  column-gap: 1rem;
  padding: 1.25rem var(--pad) 1.4rem;
}
.nq-step__num {
  grid-row: span 3;
  display: block;
  font-size: 2.75rem;
  line-height: .9;
  font-weight: 400;
  color: var(--cherry);
  font-variant-numeric: oldstyle-nums;
  font-feature-settings: "onum" 1;
}
.nq-step__name {
  font-size: var(--fs-lead);
  line-height: 1.25;
  margin-bottom: .35rem;
  transition: transform .35s var(--ease-out), color .25s ease;
}
.nq-step__text { color: var(--pine); }
.nq-step:hover .nq-step__name,
.nq-step.is-current .nq-step__name { transform: translateX(4px); }
.nq-step:hover .nq-step__name { color: var(--cherry); }

@media (min-width: 900px) {
  .nq-steps__list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .nq-step {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    padding: clamp(18px, 1.8vw, 26px) clamp(16px, 1.7vw, 26px) clamp(22px, 2.4vw, 34px);
  }
  .nq-step__num {
    font-size: var(--fs-num);
    margin-bottom: .2rem;
    padding-bottom: .12em;
  }
  .nq-step__name { margin-bottom: 0; }
  .nq-step__text { font-size: 1rem; line-height: 1.6; }
}

.nq-steps__foot {
  padding: 1.1rem var(--pad) 1.3rem;
  padding-right: max(var(--pad), calc(100% - 90ch));
  color: var(--muted);
}

/* ---------- Tiles (bento, price grid, services) ---------- */

.nq-bento {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: minmax(9.5rem, auto);
  grid-auto-flow: row dense;
}

.nq-pricegrid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: stretch;
}

.nq-tile {
  --sub: var(--muted);
  --soft: #BDBBA6;
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  gap: .7rem;
  padding: var(--pad);
  color: var(--pine);
  text-decoration: none;
  grid-column: span 4;
}

.nq-tile--w2 { grid-column: span 2; }
.nq-tile--w3 { grid-column: span 3; }
.nq-tile--w4 { grid-column: span 4; }
.nq-tile--w5 { grid-column: span 5; }
.nq-tile--w6 { grid-column: span 6; }
.nq-tile--w7 { grid-column: span 7; }
.nq-tile--w8 { grid-column: span 8; }
.nq-tile--w9 { grid-column: span 9; }
.nq-tile--w12 { grid-column: 1 / -1; }
.nq-tile--h2 { grid-row: span 2; }

.nq-tile--pine,
.nq-tile--cherry,
.nq-tile--oat { background: transparent; }

.nq-tile--pine::before,
.nq-tile--cherry::before,
.nq-tile--oat::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--tile-fill);
  transform-origin: left center;
}

.nq-tile--pine { --tile-fill: var(--pine); --sub: #C3C1AE; --soft: #526555; color: var(--ground); }
.nq-tile--cherry { --tile-fill: var(--cherry); --sub: #EED3C6; --soft: #C25F62; color: var(--ground); }
.nq-tile--oat { --tile-fill: var(--oat); --soft: #B5B19B; }

.nq-tile__label { composes: none; }
.nq-tile__label {
  display: block;
  font-size: var(--fs-xs);
  line-height: 1.45;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sub);
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
}

.nq-tile__fact {
  font-size: var(--fs-lead);
  line-height: 1.3;
  font-weight: 400;
  letter-spacing: -.003em;
  text-wrap: balance;
  transition: transform .4s var(--ease-out), color .25s ease;
}
.nq-tile__fact--xl {
  font-size: clamp(2rem, 1.4rem + 1.6vw, 2.5rem);
  line-height: 1.05;
  letter-spacing: -.01em;
}
.nq-tile__fact em { font-style: italic; }

.nq-tile__title {
  font-size: var(--fs-h2);
  line-height: 1.12;
  font-weight: 400;
}

.nq-tile__text {
  color: var(--sub);
  font-size: 1rem;
  line-height: 1.6;
  max-width: 60ch;
}
.nq-tile--pine .nq-tile__text,
.nq-tile--cherry .nq-tile__text { color: inherit; opacity: .92; }

.nq-tile__list {
  list-style: none;
  margin: .2rem 0 0;
  padding: 0;
  border-top: 1px solid var(--soft);
}
.nq-tile__list li {
  position: relative;
  padding: .55rem 0 .55rem 1.25rem;
  border-bottom: 1px solid var(--soft);
  break-inside: avoid;
  line-height: 1.45;
  transition: transform .35s var(--ease-out);
}
.nq-tile__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 1.15em;
  width: .6rem; height: 1px;
  background: currentColor;
  opacity: .55;
  transition: background-color .25s ease, opacity .25s ease, width .35s var(--ease-out);
}

@media (min-width: 1100px) {
  .nq-tile--w7 .nq-tile__list,
  .nq-tile--w8 .nq-tile__list,
  .nq-tile--w9 .nq-tile__list,
  .nq-tile--w12 .nq-tile__list { columns: 2; column-gap: 2rem; border-top: 0; }
  .nq-tile--w7 .nq-tile__list li:first-child,
  .nq-tile--w8 .nq-tile__list li:first-child,
  .nq-tile--w9 .nq-tile__list li:first-child,
  .nq-tile--w12 .nq-tile__list li:first-child { border-top: 1px solid var(--soft); }
  .nq-bento--services > .nq-tile--w12 .nq-tile__list { columns: 3; }
}

.nq-tile__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 2rem;
  margin: 0;
  padding-top: .85rem;
  border-top: 1px solid var(--soft);
}
.nq-tile__meta > div { min-width: 0; }
.nq-tile__meta dt {
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sub);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}
.nq-tile__meta dd { margin: .1rem 0 0; font-size: var(--fs-lead); line-height: 1.3; }
.nq-tile__meta dd a { text-decoration-color: var(--cherry); }

.nq-tile__fig {
  margin: auto 0 0;
  padding-top: .5rem;
}
.nq-tile__fig svg { width: 100%; height: auto; display: block; }

.nq-tile__foot {
  margin-top: auto;
  padding-top: .9rem;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: .6rem 1rem;
}

.nq-tile__go {
  display: inline-flex;
  align-items: center;
  gap: .7em;
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sub);
  transition: color .25s ease;
}

a.nq-tile { cursor: pointer; }
a.nq-tile:hover .nq-tile__fact,
a.nq-tile:hover .nq-tile__title { transform: translateX(5px); }
a.nq-tile:hover .nq-tile__go .nq-arrow { transform: translateX(6px); width: 2em; }
a.nq-tile:not(.nq-tile--pine):not(.nq-tile--cherry):hover .nq-tile__fact,
a.nq-tile:not(.nq-tile--pine):not(.nq-tile--cherry):hover .nq-tile__title,
a.nq-tile:not(.nq-tile--pine):not(.nq-tile--cherry):hover .nq-tile__go { color: var(--cherry); }
a.nq-tile.nq-tile--pine:hover .nq-tile__go,
a.nq-tile.nq-tile--cherry:hover .nq-tile__go { color: var(--ground); }
a.nq-tile:focus-visible { outline-offset: -4px; }

/* Price set */
.nq-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .2em .9em;
  font-size: clamp(2rem, 1.4rem + 1.6vw, 2.5rem);
  line-height: 1.05;
  letter-spacing: -.01em;
  font-weight: 400;
}
.nq-price__pre {
  flex-basis: 100%;
  font-size: var(--fs-sm);
  letter-spacing: 0;
  font-style: italic;
  color: var(--sub);
}
.nq-wb {
  display: inline-flex;
  align-items: baseline;
  gap: .45em;
  white-space: nowrap;
}
.nq-wb + .nq-wb::before {
  content: "";
  align-self: center;
  width: 1px;
  height: .8em;
  margin-right: .5em;
  background: var(--soft);
}
.nq-wb__tag {
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sub);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

html.js[data-wb="144"] .nq-wb--170,
html.js[data-wb="170"] .nq-wb--144 { display: none; }
html.js .nq-wb + .nq-wb::before { display: none; }

@keyframes nq-swap {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
  html.js .nq-wb { animation: nq-swap .45s var(--ease-out); }
}

/* Wheelbase switch */
.nq-wheelbase {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2rem;
  padding: clamp(18px, 2vw, 26px) var(--pad);
}
.nq-wheelbase__note { color: var(--muted); max-width: 60ch; }

.nq-switch { display: none; }
.js .nq-switch {
  display: inline-flex;
  border: var(--rule);
}
.nq-switch__btn {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  padding: .8em 1.35em;
  border: 0;
  background: transparent;
  color: var(--pine);
  cursor: pointer;
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  line-height: 1.2;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  transition: background-color .3s var(--ease-out), color .25s ease;
}
.nq-switch__btn + .nq-switch__btn { border-left: var(--rule); }
.nq-switch__btn[aria-pressed="true"] { background: var(--pine); color: var(--ground); }
.nq-switch__btn:not([aria-pressed="true"]):hover { color: var(--cherry); }
.nq-switch__btn:focus-visible { outline-offset: -4px; }

/* Bento responsive mapping */
@media (max-width: 1099px) {
  .nq-bento,
  .nq-pricegrid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .nq-tile--w2, .nq-tile--w3, .nq-tile--w4, .nq-tile--w5 { grid-column: span 3; }
  .nq-tile--w6, .nq-tile--w7, .nq-tile--w8, .nq-tile--w9, .nq-tile--w12 { grid-column: 1 / -1; }
  .nq-tile { grid-column: span 3; }
}

@media (max-width: 759px) {
  .nq-bento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(8.5rem, auto);
  }
  .nq-tile, .nq-tile--w2, .nq-tile--w3, .nq-tile--w4 { grid-column: span 1; }
  .nq-tile--w5, .nq-tile--w6, .nq-tile--w7, .nq-tile--w8, .nq-tile--w9, .nq-tile--w12 { grid-column: 1 / -1; }
  .nq-tile--h2 { grid-row: auto; }
  .nq-tile--h2.nq-tile--w3, .nq-tile--h2.nq-tile--w4 { grid-column: 1 / -1; }
  .nq-tile { padding: 16px; gap: .55rem; }
  .nq-bento .nq-tile__fact { font-size: 1.125rem; }
  .nq-bento .nq-tile__fact--xl { font-size: 2rem; }

  .nq-pricegrid { grid-template-columns: minmax(0, 1fr); }
  .nq-pricegrid > .nq-tile { grid-column: 1 / -1; }

  /* Service tiles carry spec lists: one per row on phones */
  .nq-bento--services > .nq-tile { grid-column: 1 / -1; }
}

/* ---------- Note from Mara ---------- */

.nq-note {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--pad);
  row-gap: 1.25rem;
  padding: clamp(48px, 8vw, 128px) var(--pad) clamp(40px, 6vw, 96px);
}
.nq-note__head { grid-column: 1 / 4; }
.nq-note__title {
  margin-top: .5rem;
  font-size: var(--fs-h2);
  line-height: 1.15;
}
.nq-note__body {
  grid-column: 4 / 11;
  font-size: var(--fs-lead);
  line-height: 1.6;
  max-width: 58ch;
}
.nq-note__body p + p { margin-top: 1em; }

@media (max-width: 899px) {
  .nq-note__head, .nq-note__body { grid-column: 1 / -1; }
  .nq-note__body { font-size: 1.1875rem; }
}

/* ---------- Next block ---------- */

.nq-next {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nq-next__link {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2.2rem;
  min-height: 13rem;
  padding: clamp(26px, 3.6vw, 52px) var(--pad) clamp(22px, 2.6vw, 36px);
  color: var(--pine);
  text-decoration: none;
}
.nq-next__title {
  display: block;
  font-size: clamp(1.75rem, 1.2rem + 1.7vw, 2.5rem);
  line-height: 1.08;
  letter-spacing: -.01em;
  font-weight: 400;
  max-width: 20ch;
  text-wrap: balance;
  transition: transform .4s var(--ease-out), color .25s ease;
}
.nq-next__go {
  display: inline-flex;
  align-items: center;
  gap: .8em;
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  transition: color .25s ease;
}
.nq-next__link:hover .nq-next__title { transform: translateX(6px); color: var(--cherry); }
.nq-next__link:hover .nq-next__go { color: var(--cherry); }
.nq-next__link:hover .nq-arrow { transform: translateX(8px); width: 2.4em; }
.nq-next__link:focus-visible { outline-offset: -4px; }

@media (max-width: 759px) {
  .nq-next { grid-template-columns: minmax(0, 1fr); }
  .nq-next__link { min-height: 10rem; gap: 1.6rem; }
}

/* ---------- Page head (inner pages) ---------- */

.nq-pagehead {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.nq-pagehead__side {
  grid-column: 1 / 4;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
  padding: clamp(22px, 2.6vw, 36px) var(--pad);
  border-right: var(--rule);
}
.nq-pagehead__meta {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}
.nq-pagehead__meta li { padding: .45rem 0; border-top: var(--rule-soft); }
.nq-pagehead__main {
  grid-column: 4 / 13;
  min-width: 0;
  padding: clamp(40px, 6.5vw, 104px) var(--pad-lg) clamp(32px, 4.5vw, 68px);
}
.nq-pagehead__title {
  font-size: var(--fs-page);
  line-height: 1.05;
  letter-spacing: -.01em;
  font-weight: 400;
  max-width: 19ch;
  padding-bottom: .1em;
  margin-bottom: -.1em;
}
.nq-pagehead__lead {
  margin-top: clamp(18px, 2.4vw, 32px);
  font-size: var(--fs-lead);
  line-height: 1.55;
  max-width: 54ch;
}
.nq-pagehead__lead + .nq-pagehead__lead { margin-top: .8em; }

.nq-pagehead--email .nq-pagehead__title {
  max-width: none;
  font-size: clamp(1.75rem, .9rem + 4.6vw, 5.25rem);
  overflow-wrap: anywhere;
}
.nq-pagehead__mail {
  color: var(--pine);
  text-decoration-line: underline;
  text-decoration-color: var(--cherry);
  text-decoration-thickness: 2px;
  text-underline-offset: .14em;
  transition: color .25s ease, text-decoration-thickness .25s ease;
}
.nq-pagehead__mail:hover { color: var(--cherry); text-decoration-thickness: 3px; }

@media (max-width: 899px) {
  .nq-pagehead__side {
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .5rem 1.5rem;
    border-right: 0;
    border-bottom: var(--rule);
  }
  .nq-pagehead__meta { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
  .nq-pagehead__meta li { border-top: 0; padding: 0; }
  .nq-pagehead__main { grid-column: 1 / -1; }
}

/* ---------- Split band ---------- */

.nq-split {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.nq-split__main {
  grid-column: 1 / 8;
  min-width: 0;
  padding: var(--sec-top) var(--pad-lg) var(--sec-bot) var(--pad);
}
.nq-split__side {
  grid-column: 8 / 13;
  min-width: 0;
  padding: var(--sec-top) var(--pad) var(--sec-bot);
  border-left: var(--rule);
}
.nq-split__side--oat { background: var(--oat); }
.nq-split--wide .nq-split__main { grid-column: 1 / 9; }
.nq-split--wide .nq-split__side { grid-column: 9 / 13; }
.nq-split--even .nq-split__main { grid-column: 1 / 7; }
.nq-split--even .nq-split__side { grid-column: 7 / 13; }
.nq-split--flush .nq-split__main,
.nq-split--flush .nq-split__side { padding: 0; }

.nq-split__title {
  font-size: var(--fs-h2);
  line-height: 1.15;
  margin: .5rem 0 1.1rem;
}
.nq-split__side .nq-lead,
.nq-split__side p { max-width: 46ch; }

@media (max-width: 899px) {
  .nq-split__main,
  .nq-split__side,
  .nq-split--wide .nq-split__main,
  .nq-split--wide .nq-split__side,
  .nq-split--even .nq-split__main,
  .nq-split--even .nq-split__side { grid-column: 1 / -1; }
  .nq-split__main { padding-right: var(--pad); }
  .nq-split__side { border-left: 0; border-top: var(--rule); padding-top: var(--sec-bot); }
}

/* ---------- Rows (spec, terms, hours) ---------- */

.nq-rows { margin: 0; }
.nq-rows__row {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  column-gap: var(--pad);
  padding: 1rem 0;
  border-bottom: var(--rule-soft);
}
.nq-rows__row:first-child { border-top: var(--rule); }
.nq-rows__row:last-child { border-bottom: var(--rule); }
.nq-rows__key {
  padding-top: .35em;
  font-size: var(--fs-xs);
  line-height: 1.45;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}
.nq-rows__val {
  margin: 0;
  font-size: var(--fs-lead);
  line-height: 1.45;
  transition: transform .35s var(--ease-out);
}
.nq-rows__val small,
.nq-rows__help {
  display: block;
  margin-top: .25rem;
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: var(--muted);
}

.nq-rows--hours .nq-rows__row { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; }
.nq-rows--hours .nq-rows__key {
  padding-top: 0;
  font-size: var(--fs-lead);
  letter-spacing: 0;
  text-transform: none;
  font-weight: 400;
  color: var(--pine);
  font-variant-numeric: oldstyle-nums;
  font-feature-settings: "onum" 1;
}
.nq-rows--hours .nq-rows__val { text-align: right; }
.nq-rows__row--closed .nq-rows__val { font-style: italic; color: var(--muted); }

.nq-rows--flush .nq-rows__row { padding-inline: var(--pad); }
.nq-rows--flush .nq-rows__row:first-child { border-top: 0; }
.nq-rows--flush .nq-rows__row:last-child { border-bottom: 0; }

@media (max-width: 599px) {
  .nq-rows:not(.nq-rows--hours) .nq-rows__row { grid-template-columns: minmax(0, 1fr); row-gap: .2rem; }
  .nq-rows--hours .nq-rows__key,
  .nq-rows--hours .nq-rows__val { font-size: 1.125rem; }
}

/* ---------- Lists ---------- */

.nq-list { list-style: none; margin: 0; padding: 0; }
.nq-list li {
  position: relative;
  padding: .8rem 0 .8rem 1.75rem;
  border-bottom: var(--rule-soft);
  line-height: 1.5;
}
.nq-list li:first-child { border-top: var(--rule-soft); }
.nq-list li > * { transition: transform .35s var(--ease-out); }
.nq-list li::before,
.nq-list li::after {
  content: "";
  position: absolute;
  left: 0;
  top: calc(.8rem + .78em);
  width: .7rem;
  height: 1px;
  background: var(--muted);
  transition: background-color .25s ease, transform .35s var(--ease-out);
}
.nq-list li::after { display: none; }
.nq-list--up li::after {
  display: block;
  transform: rotate(90deg);
}
.nq-list li span,
.nq-list li { transition: transform .35s var(--ease-out), color .25s ease; }
.nq-list__help { display: block; font-size: var(--fs-sm); color: var(--muted); margin-top: .15rem; }

/* Inline ruled list, for short sets like what is not included */
.nq-inline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
}
.nq-inline > li {
  flex: 1 1 14rem;
  padding: 1.15rem var(--pad) 1.3rem;
  font-size: var(--fs-lead);
  line-height: 1.35;
  transition: color .25s ease;
}
.nq-inline > li > span { display: inline-block; transition: transform .35s var(--ease-out); }
.nq-inline__help { display: block; margin-top: .3rem; font-size: var(--fs-sm); color: var(--muted); }

/* Flat tiles, things every build gets */
.nq-flat {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr));
}
.nq-flat__item {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  min-height: 10rem;
  padding: var(--pad);
}
.nq-flat__n {
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
  transition: color .25s ease;
}
.nq-flat__title {
  font-size: var(--fs-lead);
  line-height: 1.28;
  font-weight: 400;
  transition: transform .35s var(--ease-out);
}
.nq-flat__text { margin-top: auto; font-size: var(--fs-sm); line-height: 1.6; color: var(--muted); }

/* Checklist, what to tell us */
.nq-check {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.nq-check__item {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  column-gap: 1rem;
  align-items: start;
  padding: 1.15rem var(--pad) 1.25rem;
}
.nq-check__item::before {
  content: "";
  width: .85rem;
  height: .85rem;
  margin-top: .42em;
  border: 1px solid var(--line);
  transition: border-color .25s ease, background-color .25s ease;
}
.nq-check__what {
  display: block;
  font-size: var(--fs-lead);
  line-height: 1.35;
  transition: transform .35s var(--ease-out);
}
.nq-check__hint {
  display: block;
  grid-column: 2;
  margin-top: .25rem;
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: var(--muted);
}

@media (max-width: 759px) {
  .nq-check { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Refusals (fitouts #turn-down) ---------- */

.nq-refuse {
  position: relative;
  border-top: 2px solid var(--cherry);
  margin-top: -1px;
}
.nq-refuse .nq-sechead { border-bottom: var(--rule); }

.nq-refuse__list { list-style: none; margin: 0; padding: 0; }
.nq-refuse__row {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 5fr) minmax(0, 7fr);
  column-gap: var(--pad);
  align-items: baseline;
  padding: 1.15rem var(--pad) 1.3rem;
  border-bottom: var(--rule);
}
.nq-refuse__row:last-child { border-bottom: 0; }
.nq-refuse__n {
  font-size: var(--fs-h2);
  line-height: 1;
  color: var(--cherry);
  font-variant-numeric: oldstyle-nums;
  font-feature-settings: "onum" 1;
}
.nq-refuse__what {
  font-size: var(--fs-lead);
  line-height: 1.3;
  font-weight: 400;
  transition: transform .35s var(--ease-out), color .25s ease;
}
.nq-refuse__why { color: var(--muted); max-width: 58ch; }

.nq-refuse__foot { padding: 1.1rem var(--pad) 1.3rem; border-top: var(--rule); color: var(--muted); }

@media (max-width: 759px) {
  .nq-refuse__row { grid-template-columns: 2.25rem minmax(0, 1fr); row-gap: .3rem; }
  .nq-refuse__why { grid-column: 2; }
}

/* ---------- Process (workshop #process) ---------- */

.nq-process { list-style: none; margin: 0; padding: 0; }

.nq-proc {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  border-bottom: var(--rule);
}
.nq-proc:last-child { border-bottom: 0; }

.nq-proc__num {
  grid-column: 1 / 3;
  padding: clamp(24px, 3vw, 44px) var(--pad);
  border-right: var(--rule);
  font-size: var(--fs-num);
  line-height: .9;
  color: var(--cherry);
  font-weight: 400;
  font-variant-numeric: oldstyle-nums;
  font-feature-settings: "onum" 1;
}
.nq-proc__num > span {
  display: block;
  position: sticky;
  top: calc(var(--head-h) + 24px);
  padding-bottom: .12em;
}
.nq-proc__body {
  grid-column: 3 / 10;
  min-width: 0;
  padding: clamp(24px, 3vw, 44px) var(--pad-lg) clamp(28px, 3.4vw, 52px) var(--pad);
}
.nq-proc__body > * + * { margin-top: 1em; }
.nq-proc__body p { max-width: 64ch; }
.nq-proc__title {
  font-size: var(--fs-h2);
  line-height: 1.15;
  font-weight: 400;
  margin-bottom: .2rem;
}
.nq-proc__body ul { list-style: none; padding: 0; max-width: 62ch; }
.nq-proc__body ul li {
  position: relative;
  padding: .45rem 0 .45rem 1.5rem;
  border-bottom: var(--rule-soft);
}
.nq-proc__body ul li::before {
  content: "";
  position: absolute;
  left: 0; top: calc(.45rem + .8em);
  width: .65rem; height: 1px;
  background: var(--muted);
}
.nq-proc__facts {
  grid-column: 10 / 13;
  min-width: 0;
  margin: 0;
  padding: clamp(24px, 3vw, 44px) var(--pad);
  border-left: var(--rule);
  background: var(--oat);
}
.nq-proc__facts dt {
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}
.nq-proc__facts dd {
  margin: .2rem 0 1.25rem;
  font-size: 1.125rem;
  line-height: 1.45;
}
.nq-proc__facts dd:last-child { margin-bottom: 0; }

@media (max-width: 899px) {
  .nq-proc__num {
    grid-column: 1 / -1;
    border-right: 0;
    border-bottom: var(--rule-soft);
    padding: 1.1rem var(--pad) .9rem;
    font-size: 2.75rem;
  }
  .nq-proc__num > span { position: static; }
  .nq-proc__body { grid-column: 1 / -1; padding: 1.25rem var(--pad) 1.6rem; }
  .nq-proc__facts { grid-column: 1 / -1; border-left: 0; border-top: var(--rule); padding: 1.25rem var(--pad); }
}

/* ---------- Cabinet bench (workshop #cabinet-bench) ---------- */

.nq-bench {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.nq-bench__text {
  grid-column: 1 / 9;
  min-width: 0;
  padding: var(--sec-top) var(--pad-lg) clamp(48px, 6vw, 96px);
  font-size: 1.125rem;
  line-height: 1.7;
}
.nq-bench__text .nq-label { margin-bottom: .6rem; }
.nq-bench__title {
  font-size: var(--fs-h2);
  line-height: 1.15;
  margin-bottom: 1.6rem;
}
.nq-bench__text > p { max-width: 66ch; }
.nq-bench__text > p + p { margin-top: 1.15em; }
.nq-bench__close {
  margin-top: 2rem !important;
  padding-top: 1.1rem;
  border-top: var(--rule);
  font-size: var(--fs-lead);
  line-height: 1.5;
}

.nq-bench__side {
  grid-column: 9 / 13;
  min-width: 0;
  border-left: var(--rule);
}
.nq-bench__stick {
  position: sticky;
  top: var(--head-h);
}
.nq-bench__fig {
  padding: var(--pad);
  background: var(--oat);
  border-bottom: var(--rule);
}
.nq-bench__fig svg { width: 100%; height: auto; display: block; }
.nq-bench__fig figcaption {
  margin-top: .7rem;
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
}

.nq-nums { list-style: none; margin: 0; padding: 0; }
.nq-nums__item {
  display: grid;
  gap: .3rem;
  padding: 1.2rem var(--pad) 1.3rem;
  border-bottom: var(--rule);
}
.nq-nums__item:last-child { border-bottom: 0; }
.nq-nums__val {
  font-size: var(--fs-xl);
  line-height: 1.05;
  letter-spacing: -.01em;
  font-weight: 400;
  transition: transform .35s var(--ease-out), color .25s ease;
}
.nq-nums__label { font-size: var(--fs-sm); line-height: 1.5; color: var(--muted); }

@media (max-width: 899px) {
  .nq-bench__text { grid-column: 1 / -1; padding-inline: var(--pad); }
  .nq-bench__side { grid-column: 1 / -1; border-left: 0; border-top: var(--rule); }
  .nq-bench__stick { position: static; }
  .nq-nums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nq-nums__item:nth-child(odd) { border-right: var(--rule); }
  .nq-nums__item:nth-last-child(-n+2) { border-bottom: 0; }
}

/* ---------- People ---------- */

.nq-people {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.nq-person {
  display: flex;
  flex-direction: column;
  gap: .55rem;
  min-height: 15rem;
  padding: clamp(22px, 2.6vw, 36px) var(--pad);
}
.nq-person__name {
  font-size: var(--fs-xl);
  line-height: 1;
  letter-spacing: -.01em;
  font-weight: 400;
  transition: transform .35s var(--ease-out);
}
.nq-person__role {
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}
.nq-person__text { margin-top: auto; max-width: 40ch; }

@media (max-width: 899px) {
  .nq-people { grid-template-columns: minmax(0, 1fr); }
  .nq-person { min-height: 0; }
  .nq-person__text { margin-top: .5rem; }
}

/* ---------- Fact strip ---------- */

.nq-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr));
}
.nq-fact {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  padding: 1.3rem var(--pad) 1.4rem;
}
.nq-fact__val {
  font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.5rem);
  line-height: 1.05;
  letter-spacing: -.01em;
  font-weight: 400;
}
.nq-fact__label { font-size: var(--fs-sm); line-height: 1.45; color: var(--muted); }

/* ---------- Payment schedule ---------- */

.nq-schedule {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.nq-pay {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  padding: clamp(20px, 2.4vw, 34px) var(--pad) clamp(24px, 2.8vw, 38px);
}
.nq-pay__num {
  font-size: var(--fs-num);
  line-height: .9;
  color: var(--cherry);
  font-weight: 400;
  padding-bottom: .12em;
  font-variant-numeric: oldstyle-nums;
  font-feature-settings: "onum" 1;
}
.nq-pay__when {
  font-size: var(--fs-lead);
  line-height: 1.25;
  transition: transform .35s var(--ease-out);
}
.nq-pay__pct {
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}
.nq-pay__text { font-size: 1rem; line-height: 1.6; }

@media (max-width: 1099px) {
  .nq-schedule { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 559px) {
  .nq-schedule { grid-template-columns: minmax(0, 1fr); }
  .nq-pay { display: grid; grid-template-columns: 3rem minmax(0, 1fr); column-gap: 1rem; }
  .nq-pay__num { grid-row: span 3; font-size: 2.75rem; }
}

/* ---------- What moves the price ---------- */

.nq-moves {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.nq-moves__col { padding: clamp(24px, 3vw, 44px) var(--pad) clamp(28px, 3.4vw, 48px); }
.nq-moves__title {
  display: flex;
  align-items: baseline;
  gap: .6rem;
  margin-bottom: 1rem;
  font-size: var(--fs-lead);
  line-height: 1.25;
  font-weight: 400;
}
.nq-moves__title .nq-label { margin-left: auto; }

@media (max-width: 759px) {
  .nq-moves { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Contact pieces ---------- */

.nq-closure {
  position: relative;
  padding: clamp(28px, 4vw, 56px) var(--pad) clamp(30px, 4vw, 56px);
  background: var(--oat);
  border-top: 2px solid var(--cherry);
}
.nq-closure__title {
  margin: .5rem 0 1rem;
  font-size: var(--fs-h2);
  line-height: 1.15;
}
.nq-closure__text {
  font-size: var(--fs-lead);
  line-height: 1.6;
  max-width: 58ch;
}
.nq-closure__text + .nq-closure__text { margin-top: .9em; }

.nq-links {
  padding: clamp(24px, 3vw, 40px) var(--pad);
  font-size: var(--fs-lead);
  line-height: 1.55;
}
.nq-links > p { max-width: 80ch; }

/* ---------- Footer ---------- */

.nq-foot {
  margin: 0 calc(var(--edge) * -1);
  padding: 0 var(--edge) var(--edge);
}
.nq-foot__inner {
  max-width: 1600px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  border-left: var(--rule);
  border-right: var(--rule);
  border-bottom: var(--rule);
}
.nq-foot__col {
  min-width: 0;
  padding: clamp(24px, 3vw, 40px) var(--pad);
  font-size: var(--fs-sm);
  line-height: 1.6;
}
.nq-foot__col--brand { grid-column: 1 / 5; }
.nq-foot__col--pages { grid-column: 5 / 9; border-left: var(--rule); }
.nq-foot__col--contact { grid-column: 9 / 13; border-left: var(--rule); }
.nq-foot__col .nq-label { margin-bottom: .8rem; }
.nq-foot__text { color: var(--muted); max-width: 34ch; }

.nq-foot__list { list-style: none; margin: 0; padding: 0; }
.nq-foot__list li { border-top: var(--rule-soft); }
.nq-foot__list li:last-child { border-bottom: var(--rule-soft); }
.nq-foot__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .5rem 0;
  color: var(--pine);
  text-decoration: none;
  font-size: var(--fs-base);
  transition: color .25s ease;
}
.nq-foot__link > span:first-child { transition: transform .35s var(--ease-out); }
.nq-foot__link .nq-arrow { opacity: 0; transform: translateX(-6px); transition: opacity .25s ease, transform .35s var(--ease-out); }
.nq-foot__link:hover { color: var(--cherry); }
.nq-foot__link:hover > span:first-child { transform: translateX(4px); }
.nq-foot__link:hover .nq-arrow { opacity: 1; transform: none; }
.nq-foot__link[aria-current="page"] { color: var(--cherry); }

.nq-foot__mail {
  display: inline-block;
  font-size: var(--fs-lead);
  line-height: 1.3;
  color: var(--pine);
  overflow-wrap: anywhere;
  text-decoration-line: underline;
  text-decoration-color: var(--cherry);
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
  transition: color .25s ease, text-decoration-thickness .25s ease;
}
.nq-foot__mail:hover { color: var(--cherry); text-decoration-thickness: 2px; }
.nq-foot__lines { margin-top: .9rem; color: var(--muted); }
.nq-foot__lines p + p { margin-top: .35rem; }

.nq-foot__word {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .6rem 2rem;
  padding: clamp(20px, 2.6vw, 36px) var(--pad) clamp(18px, 2vw, 28px);
  border-top: var(--rule);
}
.nq-foot__wordmark {
  font-size: clamp(2.5rem, 1.2rem + 6vw, 7rem);
  line-height: .9;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--pine);
  margin-right: -.2em;
}
.nq-foot__legal {
  font-size: var(--fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

@media (max-width: 899px) {
  .nq-foot__col--brand { grid-column: 1 / -1; }
  .nq-foot__col--pages { grid-column: 1 / 7; border-left: 0; border-top: var(--rule); }
  .nq-foot__col--contact { grid-column: 7 / 13; border-top: var(--rule); }
}
@media (max-width: 599px) {
  .nq-foot__col--pages,
  .nq-foot__col--contact { grid-column: 1 / -1; border-left: 0; }
}

/* ---------- Entrance motion (script driven) ---------- */

/* The wipe starts part-open, so a heading is never fully clipped at any moment */
@keyframes nq-wipe {
  from { clip-path: inset(0 60% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}
@keyframes nq-rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: no-preference) {
  .js .nq-hero .nq-wipe__in { animation: nq-wipe .9s var(--ease-wipe) backwards; }
  .js .nq-hero .nq-wipe:nth-child(2) .nq-wipe__in { animation-delay: .12s; }
  .js .nq-hero .nq-wipe:nth-child(3) .nq-wipe__in { animation-delay: .24s; }
  .js .nq-hero .nq-wipe:nth-child(4) .nq-wipe__in { animation-delay: .36s; }
  .js .nq-hero .nq-wipe:nth-child(5) .nq-wipe__in { animation-delay: .48s; }
  .js .nq-hero .nq-wipe:nth-child(6) .nq-wipe__in { animation-delay: .6s; }
  .js .nq-hero__label { animation: nq-rise .7s var(--ease-out) .05s backwards; }
  .js .nq-hero__note { animation: nq-rise .8s var(--ease-out) .6s backwards; }
  .js .nq-draw__caption { animation: nq-fade .8s ease .9s backwards; }

  .js .nq-pagehead__title { animation: nq-wipe .9s var(--ease-wipe) .05s backwards; }
  .js .nq-pagehead .nq-wipe__in { animation: none; }
  .js .nq-pagehead__lead,
  .js .nq-pagehead__side { animation: nq-rise .8s var(--ease-out) .35s backwards; }
}

@media (prefers-reduced-motion: no-preference) and (max-width: 899px) {
  .js .nq-hero .nq-wipe__in { animation: none; }
  .js .nq-hero__title { animation: nq-wipe .9s var(--ease-wipe) backwards; padding-bottom: .1em; margin-bottom: -.1em; }
}

/* Once settled, nothing in the opening screen can play its entrance again */
.js.is-settled .nq-hero *,
.js.is-settled .nq-hero__title,
.js.is-settled .nq-pagehead *,
.js.is-settled .nq-pagehead__title { animation: none !important; }

/* Scroll reveals: nq-rv-wait is only ever added by the script, then removed.
   Waiting elements stay readable: softened and nudged down, never hidden or clipped. */
.nq-rv {
  transition:
    opacity .7s var(--ease-out),
    transform .7s var(--ease-out);
  transition-delay: var(--rv-delay, 0ms);
}
.nq-rv.nq-rv-wait {
  opacity: .35;
  transform: translateY(12px);
}

.nq-rv:is(.nq-tile--pine, .nq-tile--cherry, .nq-tile--oat)::before {
  transition: opacity .7s var(--ease-out);
  transition-delay: var(--rv-delay, 0ms);
}
.nq-rv.nq-rv-wait:is(.nq-tile--pine, .nq-tile--cherry, .nq-tile--oat) {
  opacity: 1;
  transform: translateY(12px);
}
.nq-rv.nq-rv-wait:is(.nq-tile--pine, .nq-tile--cherry, .nq-tile--oat)::before {
  opacity: .85;
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
  .nq-rv.nq-rv-wait,
  .nq-rv.nq-rv-wait > * { opacity: 1 !important; transform: none !important; }
  .nq-rv.nq-rv-wait::before { opacity: 1 !important; }
  .nq-draw.is-armed .nq-draw__stroke { stroke-dasharray: none !important; stroke-dashoffset: 0 !important; }
  .nq-draw.is-armed * { opacity: 1 !important; }
}

/* ---------- Print ---------- */

@media print {
  .nq-head, .nq-menu, .nq-switch, .nq-skip { display: none !important; }
  body { padding: 0; background: #fff; }
  .nq-rv-wait, .nq-rv-wait > * { opacity: 1 !important; transform: none !important; }
  .nq-hero::after { display: none; }
  html.js[data-wb] .nq-wb--144,
  html.js[data-wb] .nq-wb--170 { display: inline-flex !important; }
}