/* PrintSlice inner pages: help, contact, guides, legal, early access, 404.
   The homepage is the control room; these are its manuals. Same void, bone
   and logo blue as index.html: big tight grotesque headings, small mono labels,
   hairline rules and numbered entries instead of boxed cards. The logo's blue
   is kept for links, actions and highlights. */
:root{
  --bg:#0c1117; --surface:#18212d; --sheet:#111821; --ink:#e8eef6; --muted:#a3b1c4;
  --accent:#4a90d9; --accent-ink:#08101a; --slate:#4e5f76; --slate-deep:#2c3849; --cut:#2c5682;
  --field-1:#111821; --field-1-ink:#e8eef6;
  --line:rgba(232,238,246,.1); --line-strong:rgba(232,238,246,.2);
  --ok:#3ddc97; --bad:#ff5c74;
  --display:'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --text:'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  --nav:'Lato', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --radius:4px;

  --step-small: clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem);
  --step-body: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);
  --step-lead: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);
  --step-title: clamp(1.3125rem, 1.15rem + 0.55vw, 1.6875rem);
  --step-part: clamp(2rem, 1.5rem + 1.8vw, 3.25rem);
  --step-head: clamp(2.5rem, 1.4rem + 3.6vw, 4.5rem);

  --m:12px;
  --pad:clamp(20px, 3.4vw, 56px);
  --gap:clamp(72px, 9vw, 144px);

  --ease-out:cubic-bezier(0.22, 1, 0.36, 1);
  --t-press:140ms; --t-hover:180ms; --t-ui:240ms;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{ margin:0; background:var(--bg); color:var(--ink); font:400 var(--step-body)/1.6 var(--text); -webkit-font-smoothing:antialiased; }
img, video, svg{ display:block; max-width:100%; }
a{ color:var(--accent); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:0.22em; text-decoration-color:color-mix(in srgb, currentColor 35%, transparent); transition:text-decoration-color var(--t-hover) ease, color var(--t-hover) ease; }
@media (hover:hover) and (pointer:fine){ a:hover{ text-decoration-color:currentColor; } }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
::selection{ background:var(--accent); color:var(--accent-ink); }
h1, h2, h3, p, ol, ul, figure{ margin:0; }
h1, h2, h3{ text-wrap:balance; font-weight:500; letter-spacing:-0.02em; }
p, li{ text-wrap:pretty; }
b, strong{ font-weight:500; color:var(--ink); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip:focus{ width:auto; height:auto; clip:auto; left:var(--m); top:var(--m); z-index:30; background:var(--accent); color:var(--accent-ink); padding:12px 16px; }
.display{ font-family:var(--display); font-weight:700; letter-spacing:-0.04em; line-height:0.95; }
/* Small uppercase mono labels: the control room's captions. */
.mono, .label, .crumbs, .fig-label, .field-label, .ways dt, .related h3, .index .count, .entry > .entry-n, .table th, .legal th, .foot-legal, .table-note, .legal .updated{
  font-family:var(--mono); font-size:0.75rem; font-weight:500; letter-spacing:0.12em; text-transform:uppercase;
}
.num{ font-variant-numeric:tabular-nums lining-nums; }
.muted{ color:var(--muted); }

/* ------- Buttons ------- */
.button{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:56px; padding:0 30px; border:0; border-radius:var(--radius);
  background:var(--accent); color:var(--accent-ink); font:500 1.0625rem/1 var(--text); text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:transform var(--t-press) var(--ease-out), background-color var(--t-hover) ease, box-shadow var(--t-hover) ease, opacity var(--t-hover) ease;
}
.button:active{ transform:scale(0.97); }
@media (hover:hover) and (pointer:fine){ .button:hover{ background:#7fb2ea; color:var(--accent-ink); box-shadow:0 0 0 6px rgba(74,144,217,.12); } }
.button.small{ min-height:42px; padding:0 18px; font-size:0.9375rem; }
.button.ghost{ background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--line-strong); }
@media (hover:hover) and (pointer:fine){ .button.ghost:hover{ background:var(--surface); color:var(--ink); box-shadow:inset 0 0 0 1px var(--accent); } }
.button:disabled, .button[aria-busy="true"]{ cursor:progress; opacity:.72; transform:none; }
.button[aria-busy="true"]{ position:relative; overflow:hidden; }
.button[aria-busy="true"]::after{
  content:""; position:absolute; left:0; bottom:0; height:3px; width:40%; background:var(--accent-ink); opacity:.7;
  animation:busy 1100ms var(--ease-out) infinite;
}
@keyframes busy{ from{ transform:translateX(-100%); } to{ transform:translateX(250%); } }

/* ------- Masthead ------- */
.mast{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px 36px; padding:20px var(--pad); }
.wordmark{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); }
.wordmark svg{ width:28px; height:28px; }
.wordmark span{ font-family:var(--display); font-weight:700; font-size:1.25rem; letter-spacing:-0.03em; line-height:1; }
.mast-nav{ display:flex; justify-content:flex-end; align-items:center; gap:28px; }
.mast-nav a{ text-decoration:none; white-space:nowrap; color:var(--muted); font:700 0.8125rem/1 var(--nav); letter-spacing:0.08em; text-transform:uppercase; }
.mast .button{ font-family:var(--nav); font-weight:700; }
.mast-nav a[aria-current="page"]{ color:var(--accent); }
@media (hover:hover) and (pointer:fine){ .mast-nav a:hover{ color:var(--ink); } }
.mast{ border-bottom:1px solid var(--line); }

/* ------- Page head ------- */
.head{ padding:clamp(48px, 8vw, 120px) var(--pad) clamp(40px, 5vw, 80px); }
.head h1{ font-size:var(--step-head); max-width:17ch; }
.head .lede, .split-text .lede{ color:var(--ink); }
.head .lede{ margin-top:28px; }
.lede{ font-size:var(--step-lead); line-height:1.42; max-width:38ch; }
.label{ display:flex; align-items:center; gap:12px; color:var(--muted); margin-bottom:22px; }
.label::before{ content:""; width:28px; height:2px; background:var(--accent); flex:none; }
.crumbs{ color:var(--muted); margin-bottom:22px; }
.crumbs a{ color:var(--accent); text-decoration:none; }

/* ------- Document: margin index + reading column ------- */
.doc{ display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); column-gap:var(--m); padding:0 var(--pad); align-items:start; }
.doc-aside{ grid-column:1 / 4; position:sticky; top:24px; }
.doc-body{ grid-column:5 / 13; max-width:820px; min-width:0; }

.index ol{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line-strong); }
.index a{
  display:flex; align-items:center; gap:0; padding:13px 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--muted); font-weight:500;
  transition:color var(--t-hover) ease;
}
.index a::before{ content:""; width:0; height:2px; background:var(--accent); margin-right:0; transition:width var(--t-ui) var(--ease-out), margin-right var(--t-ui) var(--ease-out); }
.index a[aria-current="true"]{ color:var(--ink); }
.index a[aria-current="true"]::before{ width:18px; margin-right:12px; }
.index .count{ margin-left:auto; }
@media (hover:hover) and (pointer:fine){ .index a:hover{ color:var(--ink); } }
.aside-note{ margin-top:40px; font-size:var(--step-small); color:var(--muted); max-width:30ch; }
.aside-note b{ color:var(--ink); }
.aside-note p + p{ margin-top:10px; }

.part{ scroll-margin-top:24px; }
.part + .part{ margin-top:var(--gap); }
.part-h{ display:grid; grid-template-columns:3.25rem minmax(0, 1fr); align-items:baseline; font-size:var(--step-part); padding-top:18px; border-top:1px solid var(--line-strong); margin-bottom:12px; }
.part-n{ color:var(--accent); font-variant-numeric:lining-nums; }

/* Numbered entries with a hairline above each, instead of boxed cards. */
.entry{ display:grid; grid-template-columns:3.25rem minmax(0, 1fr); padding:26px 0 30px; border-top:1px solid var(--line-strong); scroll-margin-top:24px; }
.entry > *{ grid-column:2; }
.entry > .entry-n{ grid-column:1; grid-row:1; padding-top:0.55em; color:var(--muted); }
.entry h3{ font-family:var(--display); font-weight:500; font-size:var(--step-title); line-height:1.2; letter-spacing:-0.02em; }
.entry p{ margin-top:12px; max-width:62ch; color:var(--muted); }
.entry p + p{ margin-top:10px; }

/* Prose for guides and legal text. */
.prose h2{ font-family:var(--display); font-weight:700; font-size:var(--step-part); letter-spacing:-0.04em; line-height:1; margin:var(--gap) 0 24px; }
.prose > h2:first-child{ margin-top:0; }
.prose p, .prose li{ max-width:66ch; }
.prose p + p{ margin-top:14px; }

/* ------- Figures: dark plate with the homepage's caption bar ------- */
.plate{ background:var(--field-1); color:var(--field-1-ink); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.plate svg{ width:100%; height:auto; }
.plate figcaption{
  display:flex; align-items:center; justify-content:space-between; gap:8px 16px; flex-wrap:wrap; min-height:56px; padding:12px 20px;
  background:var(--surface); color:var(--ink); font:500 0.75rem/1.5 var(--mono); letter-spacing:0.08em; text-transform:uppercase;
}
.plate figcaption span:last-child{ color:var(--muted); text-align:right; }
.plate text{ font-family:var(--mono); }

/* ------- Figures in a row, split by rules ------- */
.figures{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); }
.figures > div{ padding:22px 24px 24px 0; }
.figures > div + div{ padding-left:24px; border-left:1px solid var(--line); }
.fig-label{ display:block; color:var(--muted); }
.fig-value{ display:block; margin-top:10px; font-family:var(--display); font-weight:700; font-size:clamp(1.75rem, 1.3rem + 1.3vw, 2.625rem); line-height:1; letter-spacing:-0.01em; font-variant-numeric:lining-nums tabular-nums; }
.fig-value small{ font-family:var(--mono); font-size:0.75rem; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-left:6px; }

/* ------- Steps: mono numerals in cyan, no circles ------- */
.steps{ list-style:none; margin:0; padding:0; counter-reset:step; }
.steps > li{ counter-increment:step; display:grid; grid-template-columns:3.25rem minmax(0, 1fr); padding:20px 0 22px; border-top:1px solid var(--line-strong); }
.steps > li::before{ content:counter(step, decimal-leading-zero); font:500 0.8125rem/1 var(--mono); letter-spacing:0.12em; padding-top:0.45em; color:var(--accent); }
.steps > li > *{ grid-column:2; }
.steps > li > b{ display:block; font-weight:500; }
.steps b + span{ color:var(--muted); }

/* ------- Forms ------- */
.form-sheet{ background:var(--sheet); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(22px, 3vw, 40px); }
.field + .field{ margin-top:22px; }
.field-label{ display:block; color:var(--muted); margin-bottom:8px; }
.field-hint{ display:block; font-size:var(--step-small); color:var(--muted); margin-top:6px; }
.input{
  display:block; width:100%; min-height:52px; margin:0; padding:12px 14px; border:1px solid var(--line-strong); border-radius:var(--radius);
  background:var(--bg); color:var(--ink); font:400 1rem/1.4 var(--text);
  transition:border-color var(--t-hover) ease, box-shadow var(--t-hover) ease;
}
textarea.input{ min-height:168px; resize:vertical; line-height:1.55; }
select.input{
  appearance:none; -webkit-appearance:none; padding-right:44px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23eaf1ff' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center;
}
.input::placeholder{ color:color-mix(in srgb, var(--muted) 70%, transparent); }
@media (hover:hover) and (pointer:fine){ .input:hover{ border-color:rgba(232,238,246,.36); } }
.input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(74,144,217,.18); }
.input:user-invalid{ border-color:var(--bad); }
.input:user-invalid:focus{ box-shadow:0 0 0 3px rgba(255,92,116,.2); }
.check{ display:flex; gap:12px; align-items:flex-start; font-size:var(--step-small); color:var(--muted); cursor:pointer; }
.check input{ width:20px; height:20px; margin:1px 0 0; flex:none; accent-color:var(--accent); }
.form-sheet .button{ width:100%; margin-top:28px; }
.status{ margin-top:14px; font-size:var(--step-small); min-height:1.5em; }
.status.ok{ color:var(--ok); }
.status.err{ color:var(--bad); }
.done{ border-top:2px solid var(--accent); padding-top:20px; }
.done h2{ font-family:var(--display); font-weight:500; font-size:var(--step-title); line-height:1.2; }
.done p{ margin-top:10px; color:var(--muted); }
.honey{ display:none; }

/* ------- Two columns: words left, the thing to use right ------- */
.split{ display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); column-gap:var(--m); padding:clamp(48px, 8vw, 120px) var(--pad) 0; align-items:start; }
.split-text{ grid-column:1 / 6; }
.split-text h1{ font-size:var(--step-head); max-width:12ch; }
.split-text .lede{ margin-top:28px; }
.split-side{ grid-column:7 / 13; }
.ways{ margin:56px 0 0; border-top:1px solid var(--line-strong); }
.ways > div{ display:grid; grid-template-columns:7.5rem minmax(0, 1fr); gap:4px 16px; padding:16px 0 18px; border-bottom:1px solid var(--line); }
.ways dt{ font-size:var(--step-small); color:var(--muted); padding-top:0.2em; }
.ways dd{ margin:0; }
.ways dd span{ display:block; font-size:var(--step-small); color:var(--muted); margin-top:2px; }
.pair{ display:grid; grid-template-columns:1fr 1fr; gap:22px 16px; }
.pair + .field{ margin-top:22px; }
@media (max-width: 1000px){
  .split-text, .split-side{ grid-column:1 / -1; }
  .split-side{ margin-top:48px; }
}
@media (max-width: 560px){ .pair{ grid-template-columns:minmax(0, 1fr); } .ways > div{ grid-template-columns:minmax(0, 1fr); } }

/* ------- Tables (bed sizes, legal) ------- */
.table{ width:100%; border-collapse:collapse; font-size:var(--step-small); }
.table th{ text-align:left; font-weight:500; color:var(--muted); padding:0 16px 12px 0; border-bottom:1px solid var(--line-strong); vertical-align:bottom; }
.table td{ padding:14px 16px 14px 0; border-bottom:1px solid var(--line); vertical-align:middle; }
.table td.n{ font-variant-numeric:tabular-nums; white-space:nowrap; }

/* ------- Printer guides ------- */
.guide-top{ display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); column-gap:var(--m); padding:clamp(40px, 6vw, 96px) var(--pad) 0; align-items:start; }
.guide-intro{ grid-column:1 / 7; }
.guide-intro h1{ font-size:clamp(2.25rem, 1.3rem + 2.8vw, 4rem); max-width:15ch; }
.guide-lede{ margin-top:28px; max-width:34ch; font-size:var(--step-lead); line-height:1.42; }
.guide-more{ margin-top:18px; max-width:58ch; color:var(--muted); }
.guide-lede b{ font-weight:600; font-variant-numeric:tabular-nums; }
.guide-cta{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; margin-top:36px; }
.guide-cta p{ font-size:var(--step-small); color:var(--muted); max-width:44ch; }
.guide-plate{ grid-column:8 / 13; position:sticky; top:24px; }

/* A section: heading in the left margin, held while its body scrolls. */
.sect{ display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); column-gap:var(--m); padding:0 var(--pad); margin-top:var(--gap); }
.sect-h{ grid-column:1 / 5; align-self:start; position:sticky; top:24px; font-size:clamp(1.75rem, 1.3rem + 1.4vw, 2.75rem); max-width:11ch; padding-right:24px; }
.sect-body{ grid-column:5 / 13; max-width:820px; min-width:0; }
.sect-note{ margin-top:24px; }
/* Dimensions read best on one line, so the two size columns get the room. */
.figures.specs{ grid-template-columns:minmax(0, 5fr) minmax(0, 5fr) minmax(0, 3fr); }
.figures.specs .fig-value{ white-space:nowrap; font-size:clamp(1.5rem, 1.05rem + 1.05vw, 2.25rem); }
.figures.specs .fig-value .x{ color:var(--muted); font-size:0.7em; margin:0 0.16em; }

/* Hub: every bed drawn to one scale, corners aligned. */
.head.with-plate{ display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); column-gap:var(--m); align-items:end; }
.head.with-plate > div{ grid-column:1 / 7; }
.head.with-plate > .plate{ grid-column:8 / 13; }
@media (max-width: 1000px){
  .head.with-plate > div, .head.with-plate > .plate{ grid-column:1 / -1; }
  .head.with-plate > .plate{ margin-top:40px; }
}
@media (max-width: 760px){
  .figures.specs{ grid-template-columns:minmax(0, 1fr); }
  .figures.specs .fig-value{ font-size:1.5rem; }
}
.sect-body > .entry:first-child, .sect-body > .steps > li:first-child{ border-top-color:var(--ink); }

.tips{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:40px; }
.tip{ padding:20px 0 30px; border-top:1px solid var(--line-strong); }
.tips .tip:nth-child(-n + 2){ border-top-color:var(--ink); }
.tip h3{ font-family:var(--display); font-weight:500; font-size:var(--step-title); line-height:1.2; letter-spacing:-0.02em; }
.tip p{ color:var(--muted); }
.tip p{ margin-top:10px; }

.related{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:36px 32px; border-top:1px solid var(--ink); padding-top:20px; }
.related h3{ font-size:var(--step-small); font-weight:500; color:var(--muted); margin-bottom:10px; }
.related ul{ list-style:none; margin:0; padding:0; }
.related li + li{ margin-top:6px; }
.related-more{ margin-top:36px; }

/* Bed sizes hub */
.beds-table{ padding:0 var(--pad); }
.beds-table .table{ font-size:1rem; }
.beds-table thead th{ border-bottom-color:var(--ink); }
.beds-table td.fp{ width:64px; color:var(--muted); padding-top:10px; padding-bottom:10px; }
.beds-table td.printer{ font-weight:500; }
.beds-table td.go{ text-align:right; white-space:nowrap; }
.beds-table td a{ text-decoration-color:color-mix(in srgb, currentColor 35%, transparent); }
@media (hover:hover) and (pointer:fine){
  .beds-table tbody tr{ transition:background-color var(--t-hover) ease; }
  .beds-table tbody tr:hover{ background:color-mix(in srgb, var(--surface) 70%, transparent); }
  .beds-table tbody tr:hover td.fp{ color:var(--ink); }
}
.foot-print rect:last-child{ transition:fill var(--t-hover) ease; }
.table-note{ margin-top:20px; max-width:72ch; font-size:var(--step-small); color:var(--muted); }

@media (max-width: 1000px){
  .guide-intro, .guide-plate{ grid-column:1 / -1; }
  .guide-plate{ position:relative; top:0; margin-top:48px; }
  .sect-h{ grid-column:1 / -1; position:static; max-width:20ch; margin-bottom:24px; }
  .sect-body{ grid-column:1 / -1; }
}
@media (max-width: 760px){
  .guide-top, .sect, .beds-table{ padding-left:20px; padding-right:20px; }
  .guide-cta .button{ width:100%; white-space:normal; text-align:center; line-height:1.25; padding:14px 20px; }
  .tips, .related{ grid-template-columns:minmax(0, 1fr); }
  .tips .tip:nth-child(2){ border-top-color:var(--line-strong); }
  .related{ gap:24px; }
  /* Table rows become blocks so no column hides off-screen. */
  .beds-table thead{ display:none; }
  .beds-table table, .beds-table tbody, .beds-table tr{ display:block; width:100%; }
  .beds-table tr{ display:grid; grid-template-columns:56px minmax(0, 1fr); column-gap:12px; padding:14px 0; border-bottom:1px solid var(--line); }
  .beds-table td{ display:block; padding:0; border:0; }
  .beds-table td.fp{ grid-row:1 / 5; width:auto; padding:2px 0 0; }
  .beds-table td.n{ display:flex; justify-content:space-between; gap:12px; font-size:var(--step-small); padding-top:4px; }
  .beds-table td.n::before{ content:attr(data-label); color:var(--muted); }
  .beds-table td.go{ text-align:left; padding-top:8px; font-size:var(--step-small); }
}

/* ------- Legal text ------- */
.legal{ font-size:1.0625rem; }
.legal .updated{ font-size:var(--step-small); color:var(--muted); font-variant-numeric:tabular-nums; }
.legal h2{
  font-family:var(--display); font-weight:500; font-size:var(--step-title); line-height:1.2; letter-spacing:-0.02em;
  margin:56px 0 16px; padding-top:22px; border-top:1px solid var(--line-strong); scroll-margin-top:24px;
}
.legal .updated + h2{ margin-top:32px; }
.legal h3{ font-size:1.0625rem; font-weight:600; margin:28px 0 8px; scroll-margin-top:24px; }
.legal p, .legal li{ max-width:68ch; }
.legal p + p{ margin-top:12px; }
.legal ul{ margin:12px 0; padding-left:1.25em; }
.legal li + li{ margin-top:6px; }
.legal li::marker{ color:var(--muted); }
.legal table{ width:100%; border-collapse:collapse; font-size:var(--step-small); margin:20px 0 24px; }
.legal th{ text-align:left; font-weight:500; color:var(--muted); padding:0 16px 10px 0; border-bottom:1px solid var(--line-strong); vertical-align:bottom; }
.legal td{ padding:12px 16px 12px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.legal td:first-child{ color:var(--ink); font-weight:500; }
@media (max-width: 640px){
  table[data-stack], table[data-stack] tbody, table[data-stack] tr, table[data-stack] td{ display:block; width:100%; }
  table[data-stack] tr:has(> th){ display:none; }
  table[data-stack] tr{ padding:14px 0; border-bottom:1px solid var(--line); }
  table[data-stack] td{ padding:3px 0; border:0; }
  table[data-stack] td[data-label]:not(:first-child)::before{ content:attr(data-label); display:block; margin-top:8px; font-size:12px; color:var(--muted); }
}

/* ------- Footer: the homepage's closing line, then the menu ------- */
.foot{
  display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); column-gap:var(--m); margin-top:var(--gap);
  padding:clamp(64px, 9vw, 128px) var(--pad) 28px; background:var(--field-1); color:var(--field-1-ink); border-top:1px solid var(--line);
}
.foot-close{ grid-column:1 / 8; }
.foot-line{ font-size:var(--step-head); max-width:13ch; color:var(--ink); }
.foot-close .button{ margin-top:40px; }
.foot-nav{ grid-column:9 / 13; display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding-top:10px; }
.foot-nav a{ font-size:var(--step-lead); font-weight:500; text-decoration:none; transition:transform var(--t-hover) var(--ease-out), color var(--t-hover) ease; }
@media (hover:hover) and (pointer:fine){
  .foot-nav:hover a{ color:var(--muted); }
  .foot-nav a:hover{ color:var(--accent); transform:translateX(12px); }
}
.foot-lang{ margin-left:auto; }
.foot-legal{
  grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; margin-top:clamp(64px, 8vw, 120px); padding:20px 0 0;
  border-top:1px solid var(--line); color:var(--muted);
}

/* ------- Motion ------- */
@media (prefers-reduced-motion: no-preference){
  .js [data-rise]{ opacity:0; transform:translateY(16px); animation:rise 760ms var(--ease-out) forwards; animation-delay:calc(var(--i, 0) * 80ms + 60ms); }
}
@keyframes rise{ to{ opacity:1; transform:none; } }

/* ------- Narrower screens ------- */
@media (max-width: 1000px){
  .doc-aside{ position:static; grid-column:1 / -1; margin-bottom:56px; }
  .doc-body{ grid-column:1 / -1; }
  .foot-close{ grid-column:1 / -1; }
  .foot-nav{ grid-column:1 / -1; margin-top:56px; }
}
@media (max-width: 760px){
  .mast{ grid-template-columns:1fr auto; padding:16px 20px; }
  .mast-nav{ grid-row:2; grid-column:1 / -1; justify-content:space-between; gap:12px; padding-top:12px; border-top:1px solid var(--line); font-size:15px; }
  .mast-nav a{ min-height:32px; display:flex; align-items:center; }
  .head{ padding:40px 20px 40px; }
  .doc{ padding:0 20px; }
  .entry, .steps > li, .part-h{ grid-template-columns:2.5rem minmax(0, 1fr); }
  .figures{ grid-template-columns:minmax(0, 1fr); }
  .figures > div{ padding:16px 0 18px; display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
  .figures > div + div{ padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .fig-value{ margin-top:0; font-size:1.625rem; text-align:right; }
  .foot{ padding:64px 20px 24px; }
  .foot .button{ width:100%; }
  .foot-lang{ margin-left:0; flex-basis:100%; margin-top:12px; }
}

/* Footer links read as a menu, not as body links. */
.foot-nav a{ color:var(--ink); }
.foot-legal a{ color:var(--muted); }
.foot-lang{ text-transform:none; letter-spacing:0; }
