/* Северин и партнёры — «Кодекс»: сайт как набранный юридический документ.
   Бумага, графит, жёлтый маркер. Hairline-линейки, § -нумерация, поле для примечаний.
   Mobile-first. Маркер (#E8EE6A) — только заливка под тёмным текстом, никогда цвет текста. */

:root {
  --paper: #F4F2EC;
  --sheet: #FBFAF6;
  --paper-2: #EDEAE0;
  --paper-3: #E3DFD2;
  --ink: #1F2124;
  --ink-2: #2A2D31;
  --slate: #5E6670;
  --marker: #E8EE6A;
  --rule: #D8D4C8;
  --rule-strong: #B9B4A4;
  --on-ink: #F4F2EC;
  --on-ink-muted: #B7BBC0;

  --font-display: "Spectral", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
  --font-body: "Inter Tight", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, "Courier New", monospace;

  --fs-mono: .75rem;
  --fs-small: .875rem;
  --fs-body: 1.0625rem;
  --fs-lead: clamp(1.1875rem, 1.05rem + .55vw, 1.4rem);
  --fs-h3: clamp(1.35rem, 1.15rem + .8vw, 1.8rem);
  --fs-h2: clamp(2rem, 1.3rem + 2.7vw, 3.5rem);
  --fs-h1: clamp(2.2rem, 1rem + 3.5vw, 4.4rem);

  --gut: clamp(16px, 3.4vw, 44px);
  --rail: 208px;
  --hdr: 60px;
  --strip: 34px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --radius: 2px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 var(--fs-body)/1.62 var(--font-body); font-feature-settings: "kern", "liga", "calt";
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden; overflow-wrap: break-word;
}
[hidden] { display: none !important; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration-color: var(--rule-strong); text-underline-offset: .22em; text-decoration-thickness: 1px; }
a:hover { text-decoration-color: var(--ink); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
::selection { background: var(--marker); color: var(--ink); }
[id] { scroll-margin-top: calc(var(--hdr) + var(--strip) + 24px); }
@media (min-width: 1100px) { [id] { scroll-margin-top: calc(var(--hdr) + 28px); } }

:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; box-shadow: 0 0 0 6px var(--marker); border-radius: 1px; }
.on-ink :focus-visible, .foot :focus-visible { outline-color: var(--on-ink); box-shadow: 0 0 0 6px rgba(232, 238, 106, .55); }

.skip { position: absolute; left: 12px; top: -80px; z-index: 200; background: var(--ink); color: var(--on-ink); padding: 12px 16px; text-decoration: none; }
.skip:focus { top: 8px; }
.vh { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- utilities / type ---------- */
.mono { font-family: var(--font-mono); font-size: var(--fs-mono); letter-spacing: .04em; }
.kicker { font: 500 var(--fs-mono)/1.4 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.slate { color: var(--slate); }
.display { font-family: var(--font-display); font-weight: 300; letter-spacing: -.015em; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 300; letter-spacing: -.012em; text-wrap: balance; }
h3 { font-weight: 400; font-size: var(--fs-h3); line-height: 1.2; }
h4 { font: 500 var(--fs-mono)/1.4 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
p { text-wrap: pretty; }
.lead { font-family: var(--font-display); font-weight: 300; font-size: var(--fs-lead); line-height: 1.5; letter-spacing: -.005em; }

/* marker: highlighter stroke; sweeps in when scrolled into view */
.mk {
  color: var(--ink);
  background: linear-gradient(var(--marker), var(--marker)) no-repeat 0 90% / 100% .5em;
  padding: 0 .1em; margin: 0 -.1em;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.js .mk[data-sweep] { transition: background-size 1s cubic-bezier(.6, 0, .2, 1) var(--d, 0s); }
.js .mk[data-sweep]:not(.is-on) { background-size: 0 .5em; }
@media (prefers-reduced-motion: reduce) {
  .js .mk[data-sweep], .js .mk[data-sweep]:not(.is-on) { transition: none; background-size: 100% .5em; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- header ---------- */
.hdr { position: sticky; top: 0; z-index: 50; background: rgba(244, 242, 236, .94); -webkit-backdrop-filter: saturate(1.2) blur(10px); backdrop-filter: saturate(1.2) blur(10px); border-bottom: 1px solid var(--rule); transition: box-shadow .3s; }
.hdr.is-stuck { box-shadow: 0 1px 0 var(--rule), 0 10px 30px -22px rgba(31, 33, 36, .5); }
.hdr__bar { display: flex; align-items: center; gap: 14px; min-height: var(--hdr); padding-inline: var(--gut); max-width: 1440px; margin: 0 auto; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; min-width: 0; min-height: 44px; }
.brand__mk { flex: none; display: grid; place-items: center; width: 34px; height: 34px; background: var(--marker); color: var(--ink); font: 300 25px/1 var(--font-display); padding-bottom: 2px; }
.brand__t { display: block; line-height: 1.05; min-width: 0; }
.brand__n { display: block; font: 400 1.35rem/1.05 var(--font-display); letter-spacing: -.01em; white-space: nowrap; }
.brand__n i { font-weight: 300; color: var(--slate); }
.brand__s { display: block; margin-top: 4px; font: 500 .625rem/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); white-space: nowrap; }

.nav { display: flex; gap: 2px; }
.nav a { display: inline-flex; align-items: baseline; gap: .5em; min-height: 44px; align-items: center; padding: 0 12px; font-size: .9375rem; font-weight: 450; text-decoration: none; border-radius: var(--radius); white-space: nowrap; }
.nav a .mono { color: var(--slate); font-size: .6875rem; }
.nav a:hover { background: var(--paper-2); }
.nav a[aria-current="page"] { background: var(--marker); }
.nav a[aria-current="page"] .mono { color: var(--ink); }

.hdr .hdr__call { display: none; }
.burger { display: none; }

/* no-JS: the nav scrolls as a row under the header; with JS below 1040px it becomes a drop-down */
@media (max-width: 1039px) {
  .hdr__bar { flex-wrap: wrap; row-gap: 0; }
  .nav { order: 5; flex: 1 0 100%; overflow-x: auto; margin: 0 calc(var(--gut) * -1); padding: 0 calc(var(--gut) - 12px); border-top: 1px solid var(--rule); scrollbar-width: none; }
  .nav::-webkit-scrollbar { display: none; }
  .js .burger { display: inline-grid; place-items: center; width: 44px; height: 44px; margin-right: -10px; background: none; border: 0; }
  .js .nav { display: none; flex-direction: column; gap: 0; padding: 6px var(--gut) 14px; margin: 0 calc(var(--gut) * -1); background: var(--paper); overflow: visible; }
  .js .nav.is-open { display: flex; }
  .js .nav a { min-height: 52px; font: 300 1.5rem/1 var(--font-display); border-bottom: 1px solid var(--rule); padding: 0 2px; }
  .js .nav a .mono { font-size: .75rem; min-width: 2.4em; }
}
.burger svg { width: 24px; height: 24px; }
.burger .b2 { display: none; }
.burger[aria-expanded="true"] .b1 { display: none; }
.burger[aria-expanded="true"] .b2 { display: block; }
@media (min-width: 1040px) {
  .hdr .hdr__call { display: inline-flex; }
  .nav a { padding: 0 10px; }
}
@media (min-width: 1040px) and (max-width: 1279px) { .nav a .mono { display: none; } .brand__s { display: none; } }

/* section progress: replaces the contents rail on small screens */
.strip { display: block; border-top: 1px solid var(--rule); }
.strip__in { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; height: var(--strip); padding-inline: var(--gut); max-width: 1440px; margin: 0 auto; font: 500 .6875rem/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.strip__no { background: var(--marker); color: var(--ink); padding: 3px 6px; }
.strip__t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.strip__bar { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--ink); transform: scaleX(var(--p, 0)); transform-origin: 0 50%; }
@media (min-width: 1100px) { .strip { display: none; } }
@media (min-width: 1040px) { .js .nav { display: flex; } }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .6em; min-height: 48px; padding: 0 20px; border: 1px solid var(--ink); border-radius: var(--radius); background: transparent; color: var(--ink); font: 500 .9375rem/1.2 var(--font-body); text-decoration: none; letter-spacing: .005em; transition: background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease); }
.btn:hover { background: var(--ink); color: var(--on-ink); }
.btn--ink { background: var(--ink); color: var(--on-ink); }
.btn--ink:hover { background: var(--ink-2); }
.btn--marker { background: var(--marker); }
.btn--marker:hover { background: var(--ink); color: var(--on-ink); }
.btn--sm { min-height: 44px; padding: 0 14px; font-size: .875rem; }
.btn svg { width: 18px; height: 18px; flex: none; }
.btn small { display: block; font: 500 .6875rem/1.1 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; opacity: .8; }
.btn__two { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-align: left; }
.link { display: inline-flex; align-items: center; gap: .5em; min-height: 44px; font-weight: 500; text-decoration: none; border-bottom: 1px solid var(--ink); padding: 0; align-self: flex-start; }
.link::after { content: "→"; transition: transform .25s var(--ease); }
.link:hover::after { transform: translateX(4px); }
.chan { display: flex; flex-wrap: wrap; gap: 8px; }
.chan .btn { flex: 1 1 0; min-width: 0; }

/* ---------- layout: contents rail + 12-column sheet with margin notes ---------- */
.wrap { width: 100%; max-width: 1440px; margin: 0 auto; padding-inline: var(--gut); }
.doc { max-width: 1440px; margin: 0 auto; padding-inline: var(--gut); }
.main { min-width: 0; }
@media (min-width: 1100px) {
  .doc { display: grid; grid-template-columns: var(--rail) minmax(0, 1fr); column-gap: clamp(32px, 4vw, 64px); }
}

.rail { display: none; }
@media (min-width: 1100px) {
  .rail { display: block; position: sticky; top: calc(var(--hdr) + 28px); align-self: start; padding: 28px 0 24px; max-height: calc(100vh - var(--hdr) - 40px); overflow: auto; }
  .rail__t { font: 500 var(--fs-mono)/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); margin-bottom: 16px; }
  .rail__l { position: relative; border-left: 1px solid var(--rule-strong); }
  .rail__l a { position: relative; display: grid; grid-template-columns: 3.5em 1fr; align-items: baseline; align-content: center; min-height: 44px; gap: 4px; padding: 9px 0 9px 14px; text-decoration: none; font-size: .9375rem; line-height: 1.25; color: var(--slate); transition: color .2s; }
  .rail__l a .mono { font-size: .6875rem; color: var(--slate); }
  .rail__l a:hover { color: var(--ink); }
  .rail__l a::before { content: ""; position: absolute; left: -1px; top: 4px; bottom: 4px; width: 3px; background: var(--marker); transform: scaleY(0); transform-origin: 50% 0; transition: transform .35s var(--ease); }
  .rail__l a[aria-current="true"] { color: var(--ink); font-weight: 600; }
  .rail__l a[aria-current="true"]::before { transform: scaleY(1); }
  .rail__l a[aria-current="true"] .mono { background: var(--marker); color: var(--ink); padding: 1px 4px; margin: -1px 0; justify-self: start; }
  .rail__l .sub a { padding-left: 28px; font-size: .875rem; }
  .rail__f { margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--rule-strong); font-size: .8125rem; line-height: 1.5; color: var(--slate); }
  .rail__f a { display: inline-flex; min-height: 44px; align-items: center; font-weight: 600; color: var(--ink); }
}

.sec { position: relative; padding-block: clamp(56px, 8vw, 116px) 0; border-top: 1px solid var(--rule); margin-top: clamp(56px, 8vw, 116px); padding-top: clamp(20px, 3vw, 36px); }
.sec--first { border-top: 0; margin-top: 0; padding-top: clamp(20px, 3vw, 40px); }
.sec__head { display: grid; gap: 14px; margin-bottom: clamp(28px, 4vw, 52px); }
.sec__no { justify-self: start; font: 500 .8125rem/1 var(--font-mono); letter-spacing: .06em; background: var(--marker); padding: 5px 8px; }
.sec__head h2 { font-size: var(--fs-h2); line-height: 1.06; max-width: 20ch; }
.sec__head--wide h2 { max-width: 26ch; }

.row { display: grid; gap: 20px 0; margin-bottom: clamp(24px, 3vw, 40px); }
.row > * { min-width: 0; }
@media (min-width: 1100px) {
  .row { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(16px, 2vw, 28px); align-items: start; }
  .row__main { grid-column: 1 / span 8; }
  .row__note { grid-column: 10 / span 3; }
  .row--wide > * { grid-column: 1 / -1; }
  .row--split > :first-child { grid-column: 1 / span 7; }
  .row--split > :last-child { grid-column: 8 / -1; }
}

/* margin notes: registry numbers, sources, disclaimers */
.note { font-size: .8125rem; line-height: 1.55; color: var(--slate); border-top: 1px solid var(--ink); padding-top: 10px; }
.note > * + * { margin-top: .6em; }
.note__k { display: block; font: 500 .6875rem/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin-bottom: 8px; }
.note b { color: var(--ink); font-weight: 600; }
.note .mono { color: var(--ink); }
@media (max-width: 1099px) { .note { border-top: 0; border-left: 3px solid var(--marker); padding: 2px 0 2px 12px; } }

/* numbered paragraphs, as in a statute */
.paras { display: grid; gap: 18px; }
.para { position: relative; padding-left: 4.2rem; max-width: 62ch; }
.para .pn { position: absolute; left: 0; top: .35em; font: 500 var(--fs-mono)/1 var(--font-mono); letter-spacing: .02em; color: var(--slate); }
.para--lead { font-family: var(--font-display); font-weight: 300; font-size: var(--fs-lead); line-height: 1.5; max-width: 40ch; }
.para--lead .pn { top: .5em; }
@media (max-width: 479px) { .para { padding-left: 3.4rem; } }

/* ---------- hero (typeset statement) ---------- */
.hero { position: relative; padding-bottom: clamp(36px, 5vw, 64px); overflow: hidden; }
.hero__sect { position: absolute; right: -2vw; top: -1rem; z-index: 0; font: 200 clamp(13rem, 38vw, 42rem)/1 var(--font-display); color: transparent; -webkit-text-stroke: 1px var(--rule-strong); opacity: .55; pointer-events: none; user-select: none; }
.hero > *:not(.hero__sect) { position: relative; z-index: 1; }
.hero__meta { display: flex; flex-wrap: wrap; gap: 6px 22px; font: 500 .6875rem/1.5 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.hero__meta b { color: var(--ink); font-weight: 500; }
.ruler { height: 14px; margin: 12px 0 clamp(20px, 3vw, 36px); background:
  repeating-linear-gradient(to right, var(--rule-strong) 0 1px, transparent 1px 10px) bottom / 100% 6px no-repeat,
  repeating-linear-gradient(to right, var(--ink) 0 1px, transparent 1px 100px) bottom / 100% 14px no-repeat; opacity: .75; }
.hero h1 { font-size: var(--fs-h1); line-height: 1.05; letter-spacing: -.02em; max-width: 22em; }
.hero__grid { display: grid; gap: 28px; margin-top: clamp(24px, 3.4vw, 44px); }
.hero__lead { max-width: 36rem; }
.hero__lead p { font-size: var(--fs-lead); line-height: 1.5; font-family: var(--font-display); font-weight: 300; }
.hero__cta { display: grid; gap: 10px; margin-top: 26px; }
.hero__duty { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; width: 100%; padding: 14px 20px 15px; text-align: left; }
.hero__duty .num { font: 500 clamp(1.45rem, 1.2rem + 1vw, 1.85rem)/1.15 var(--font-mono); letter-spacing: .01em; white-space: nowrap; }
.hero__duty .cap { font: 500 .6875rem/1.3 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; }
@media (min-width: 1100px) {
  .hero__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(16px, 2vw, 28px); align-items: start; }
  .hero__lead { grid-column: 1 / span 7; }
  .reg { grid-column: 9 / span 4; }
}

/* registry card: the advocate's details in the margin of the first screen */
.reg { background: var(--sheet); border: 1px solid var(--ink); font-size: .875rem; }
.reg__h { display: flex; justify-content: space-between; gap: 10px; padding: 9px 14px; background: var(--ink); color: var(--on-ink); font: 500 .6875rem/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.reg dl { display: grid; }
.reg dl > div { display: grid; grid-template-columns: 6.6rem 1fr; gap: 10px; padding: 9px 14px; border-top: 1px solid var(--rule); }
.reg dl > div:first-child { border-top: 0; }
.reg dt { font: 500 .6875rem/1.55 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.reg dd { line-height: 1.4; }
.reg dd b { font-weight: 600; }
.reg__f { padding: 9px 14px; border-top: 1px solid var(--rule); font: 500 .6875rem/1.45 var(--font-mono); letter-spacing: .03em; color: var(--slate); background: var(--paper-2); }
@media (max-width: 479px) { .reg dl > div { grid-template-columns: 1fr; gap: 1px; } }

/* "what do you need now" — three entry points under the statement */
.entry { display: grid; border-top: 1px solid var(--ink); margin-top: clamp(36px, 5vw, 64px); }
.entry a { position: relative; display: grid; grid-template-columns: 3rem 1fr auto; align-items: baseline; gap: 4px 10px; padding: 18px 0; border-bottom: 1px solid var(--rule-strong); text-decoration: none; transition: background .25s, padding .3s var(--ease); }
.entry a:hover { background: var(--paper-2); padding-inline: 12px; }
.entry .mono { color: var(--slate); }
.entry b { display: block; font: 400 clamp(1.25rem, 1.05rem + .8vw, 1.65rem)/1.2 var(--font-display); }
.entry span.d { grid-column: 2; font-size: .9375rem; color: var(--slate); }
.entry .go { grid-row: 1; grid-column: 3; transition: transform .25s var(--ease); }
.entry a:hover .go { transform: translateX(4px); }
.entry a.is-urgent b span { background: linear-gradient(var(--marker), var(--marker)) no-repeat 0 90% / 100% .5em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
@media (min-width: 900px) {
  .entry { grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
  .entry a { grid-template-columns: 1fr auto; align-content: start; padding: 20px 22px 22px 0; border-bottom: 0; border-right: 1px solid var(--rule-strong); margin-right: 22px; }
  .entry a:last-child { border-right: 0; margin-right: 0; }
  .entry a:hover { padding-inline: 0 22px; background: transparent; }
  .entry .mono { grid-column: 1 / -1; margin-bottom: 8px; }
  .entry b { grid-column: 1; }
  .entry span.d { grid-column: 1 / -1; margin-top: 6px; }
  .entry .go { grid-row: 2; }
}

/* facts: neutral counters (years, advocates, languages, publications) */
.facts { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule-strong); }
.facts > div { padding: 20px 14px 20px 0; border-bottom: 1px solid var(--rule); }
.facts > div:nth-child(2n) { padding-left: 14px; border-left: 1px solid var(--rule); }
.facts > div:nth-last-child(-n+2) { border-bottom: 0; }
.facts__n { display: block; font: 200 clamp(2.8rem, 2rem + 3.4vw, 4.6rem)/1 var(--font-display); letter-spacing: -.03em; font-variant-numeric: lining-nums tabular-nums; }
.facts__l { display: block; margin-top: 8px; font: 500 .6875rem/1.45 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
@media (min-width: 760px) {
  .facts { grid-template-columns: repeat(4, 1fr); }
  .facts > div { border-bottom: 0; padding: 22px 16px 22px 18px; border-left: 1px solid var(--rule); }
  .facts > div:first-child { padding-left: 0; border-left: 0; }
  .facts > div:nth-child(2n) { padding-left: 18px; }
}

/* ---------- procedure (порядок работы) ---------- */
.proc { counter-reset: p; display: grid; border-top: 1px solid var(--ink); }
.proc li { counter-increment: p; display: grid; grid-template-columns: 3.4rem 1fr; gap: 6px 0; padding: 20px 0 22px; border-bottom: 1px solid var(--rule-strong); }
.proc li::before { content: counter(p, decimal-leading-zero); grid-row: 1 / span 2; font: 200 2.2rem/1 var(--font-display); color: var(--slate); font-variant-numeric: lining-nums; }
.proc .t3 { font: 400 1.35rem/1.2 var(--font-display); }
.proc p { color: var(--ink-2); max-width: 54ch; }
.proc .ref { font: 500 .6875rem/1.4 var(--font-mono); letter-spacing: .05em; color: var(--slate); text-transform: uppercase; margin-top: 4px; display: block; }
@media (min-width: 640px) { .proc li { grid-template-columns: 4.6rem 14rem 1fr; align-items: baseline; } .proc li::before { grid-row: auto; font-size: 2.6rem; } .proc li > :last-child { grid-column: 3; } }

/* ---------- figures in thin "карточка дела" frames ---------- */
.fig { max-width: 420px; }
.fig__frame { position: relative; background: var(--sheet); border: 1px solid var(--ink); padding: 8px; }
.fig__frame::before, .fig__frame::after { content: ""; position: absolute; width: 14px; height: 14px; border: 1px solid var(--ink); background: var(--paper); }
.fig__frame::before { top: -7px; left: -7px; border-width: 0 1px 1px 0; }
.fig__frame::after { bottom: -7px; right: -7px; border-width: 1px 0 0 1px; }
.fig img { width: 100%; height: auto; filter: grayscale(.88) sepia(.1) contrast(1.03); }
.fig figcaption { margin-top: 12px; font-size: .75rem; line-height: 1.5; color: var(--slate); }
.fig figcaption .mono { color: var(--ink); margin-right: 6px; }
@media (max-width: 1099px) { .fig--note { max-width: 320px; } }

/* secrecy band with a still of stone columns */
.band { position: relative; margin-block: clamp(36px, 5vw, 64px); background: var(--ink); color: var(--on-ink); overflow: hidden; isolation: isolate; }
.band img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 70%; filter: grayscale(1) contrast(1.05) brightness(.75); z-index: -2; }
.band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(31, 33, 36, .92) 0%, rgba(31, 33, 36, .72) 55%, rgba(31, 33, 36, .35) 100%); }
.band__in { padding: clamp(28px, 5vw, 64px); display: grid; gap: 18px; min-height: clamp(260px, 30vw, 380px); align-content: end; }
.band .sec__no { background: var(--marker); color: var(--ink); }
.band p.display { font-size: clamp(1.6rem, 1.1rem + 2.2vw, 2.9rem); line-height: 1.12; max-width: 24ch; font-weight: 300; }
.band p.small { max-width: 52ch; color: var(--on-ink-muted); font-size: .9375rem; }

/* ---------- practices ledger ---------- */
.ledger { border-top: 1px solid var(--ink); counter-reset: l; }
.art { border-bottom: 1px solid var(--rule-strong); }
.art__a { position: relative; display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); gap: 4px 10px; padding: 20px 0; text-decoration: none; transition: background .25s, padding .3s var(--ease); }
.art__a:hover { background: var(--paper-2); padding-inline: 12px; }
.art__no { font: 500 var(--fs-mono)/1.9 var(--font-mono); color: var(--slate); }
.art__t { font: 400 clamp(1.3rem, 1.1rem + .85vw, 1.7rem)/1.18 var(--font-display); }
.art__d { grid-column: 2; color: var(--ink-2); font-size: .9688rem; max-width: 60ch; }
.art__n { grid-column: 2; font: 500 .6875rem/1.45 var(--font-mono); letter-spacing: .04em; color: var(--slate); text-transform: uppercase; }
.art__p { grid-column: 2 / -1; margin-top: 6px; font: 500 .8125rem/1.5 var(--font-mono); white-space: nowrap; justify-self: start; }
.art__go { display: none; }
.art__t span { background: linear-gradient(var(--marker), var(--marker)) no-repeat 0 92% / 0 .46em; transition: background-size .5s var(--ease); }
.art__a:hover .art__t span, .art__a:focus-visible .art__t span { background-size: 100% .46em; }
@media (min-width: 900px) {
  .art__a { grid-template-columns: 3.4rem minmax(0, 1.05fr) minmax(0, 1.25fr) 9.5rem 1.6rem; align-items: baseline; gap: 0 20px; padding: 24px 0; }
  .art__d { grid-column: 3; grid-row: 1; font-size: .9375rem; }
  .art__n { grid-column: 3; grid-row: 2; margin-top: 8px; }
  .art__p { grid-column: 4; grid-row: 1; justify-self: start; margin-top: 0; }
  .art__go { display: block; grid-column: 5; grid-row: 1; transition: transform .25s var(--ease); }
  .art__a:hover .art__go { transform: translateX(4px); }
}

/* ---------- deadline calculator: the result is set as a statute paragraph ---------- */
.calc { background: var(--sheet); border: 1px solid var(--ink); display: grid; }
.calc__form { padding: clamp(18px, 3vw, 32px); display: grid; gap: 18px; align-content: start; border-bottom: 1px solid var(--rule-strong); }
.calc__out { padding: clamp(18px, 3vw, 36px); background: var(--paper-2); }
.field { display: grid; gap: 7px; }
.field > label, .field > .lbl, .legend { font: 500 .6875rem/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.input, .select, .textarea { width: 100%; min-height: 48px; padding: 10px 14px; background: var(--paper); border: 1px solid var(--rule-strong); border-radius: var(--radius); color: var(--ink); font-size: 1rem; appearance: none; -webkit-appearance: none; transition: border-color .2s, background .2s; }
.input:hover, .select:hover, .textarea:hover { border-color: var(--ink); }
.input:focus, .select:focus, .textarea:focus { border-color: var(--ink); background: #fff; }
.select { background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
.textarea { min-height: 96px; resize: vertical; line-height: 1.5; }
.field__hint { font-size: .8125rem; color: var(--slate); }
.stamp { font: 500 .6875rem/1.55 var(--font-mono); letter-spacing: .03em; color: var(--slate); text-transform: uppercase; }
.stamp b { color: var(--ink); font-weight: 500; }

.statute { counter-reset: s; }
.statute__t { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; margin-bottom: 14px; font: 500 .6875rem/1.4 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.statute__t b { color: var(--ink); font-weight: 500; }
.statute h3 { font: 400 clamp(1.35rem, 1.1rem + 1vw, 1.9rem)/1.2 var(--font-display); margin-bottom: 16px; }
.statute ol { display: grid; gap: 12px; }
.statute li { position: relative; padding-left: 2.4rem; font: 300 clamp(1.1rem, 1rem + .4vw, 1.3rem)/1.5 var(--font-display); }
.statute li::before { counter-increment: s; content: counter(s) "."; position: absolute; left: 0; top: .2em; font: 500 .8125rem/1.4 var(--font-mono); color: var(--slate); }
.statute .date { font-weight: 500; white-space: nowrap; }
.calc__how { display: grid; gap: 6px; padding-top: 14px; border-top: 1px solid var(--rule); font-size: .8125rem; line-height: 1.5; color: var(--slate); }
.calc__how li { position: relative; padding-left: 1.2rem; }
.calc__how li::before { content: "—"; position: absolute; left: 0; }
.calc__act { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-top: 22px; }
.calc__stamp { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--rule-strong); }
@media (min-width: 900px) {
  .calc { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .calc__form { border-bottom: 0; border-right: 1px solid var(--rule-strong); }
}

/* ---------- the signature: «Обыск в офисе — кто что делает» ---------- */
.memo { background: var(--sheet); border: 1px solid var(--ink); position: relative; }
.memo__bar { display: grid; }
.roles__tabs { display: none; }
.js .roles__tabs { display: grid; grid-template-columns: repeat(2, 1fr); }
.roles__tabs [role="tab"] { position: relative; min-height: 64px; padding: 10px 16px; text-align: left; background: transparent; border: 0; border-right: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); color: var(--ink); display: grid; align-content: center; gap: 3px; transition: background .25s; }
.roles__tabs [role="tab"]:nth-child(2n) { border-right: 0; }
.roles__tabs [role="tab"]:nth-last-child(-n+2) { border-bottom: 0; }
.roles__tabs .t { font: 400 1.25rem/1.15 var(--font-display); }
.roles__tabs .s { font: 500 .625rem/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.roles__tabs [role="tab"]:hover { background: var(--paper-2); }
.roles__tabs [role="tab"][aria-selected="true"] { background: var(--ink); color: var(--on-ink); }
.roles__tabs [role="tab"][aria-selected="true"] .s { color: var(--marker); }
.roles__tabs [role="tab"][aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--marker); }
.roles__tabs [role="tab"]:focus-visible { outline-offset: -4px; box-shadow: inset 0 0 0 6px var(--marker); outline-color: var(--ink); }
.roles__tabs [role="tab"][aria-selected="true"]:focus-visible { outline-color: var(--on-ink); }
.memo__tools { display: none; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 12px clamp(14px, 2.4vw, 24px); border-bottom: 1px solid var(--ink); background: var(--paper-2); }
.js .memo__tools { display: flex; }
.memo__tools .grow { flex: 1 1 auto; }
@media (max-width: 599px) { .memo__tools .btn { flex: 1 1 calc(50% - 6px); } .memo__tools .btn[data-timer-start], .memo__tools .btn[data-copy-link] { flex-basis: 100%; } .memo__tools .grow { display: none; } }
.memo__call { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 14px clamp(14px, 2.4vw, 24px); background: var(--marker); border: 0; border-bottom: 1px solid var(--ink); text-decoration: none; width: 100%; text-align: left; transition: background .25s, color .25s; }
.memo__call:hover { background: var(--ink); color: var(--on-ink); }
.memo__call .cap { font: 500 .6875rem/1.3 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; }
.memo__call .num { font: 500 clamp(1.3rem, 1.1rem + 1vw, 1.7rem)/1.15 var(--font-mono); }
.timer { font: 500 .8125rem/1.3 var(--font-mono); letter-spacing: .02em; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.timer b { background: var(--marker); padding: 2px 6px; font-weight: 500; }

.panel { padding: clamp(18px, 3vw, 40px); display: grid; gap: 28px; }
.panel[hidden] { display: none; }
.panel + .panel { border-top: 1px solid var(--ink); }
.panel__head { display: grid; gap: 8px; padding-bottom: 18px; border-bottom: 1px solid var(--rule-strong); }
.panel__head h3 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); font-weight: 300; }
.panel__head p { color: var(--slate); max-width: 52ch; }
.panel__prog { display: flex; align-items: center; gap: 12px; margin-top: 4px; font: 500 .75rem/1 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; }
.panel__prog .bar { position: relative; flex: 1; max-width: 220px; height: 6px; background: var(--paper-3); }
.panel__prog .bar i { position: absolute; inset: 0; background: var(--marker); box-shadow: inset 0 0 0 1px var(--ink); transform: scaleX(var(--p, 0)); transform-origin: 0 50%; transition: transform .4s var(--ease); }
.panel__print { display: none; }
.panel__body { display: grid; gap: 30px; }
.phase { margin-bottom: 8px; }
.phase + .phase { margin-top: 26px; }
.phase__t { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; font: 500 .6875rem/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.phase__t::after { content: ""; flex: 1; height: 1px; background: var(--rule-strong); }
.panel { counter-reset: st; }
.step { counter-increment: st; border-bottom: 1px solid var(--rule); }
.step:last-child { border-bottom: 0; }
.step label { position: relative; display: grid; grid-template-columns: 28px 1fr; gap: 6px 14px; padding: 14px 0; min-height: 56px; cursor: pointer; align-items: start; }
.step input { appearance: none; -webkit-appearance: none; width: 26px; height: 26px; margin: 2px 0 0; border: 1.5px solid var(--ink); border-radius: var(--radius); background: var(--paper); display: grid; place-items: center; cursor: pointer; transition: background .2s; }
.step input::after { content: ""; width: 12px; height: 7px; border: solid var(--ink); border-width: 0 0 2.5px 2.5px; transform: rotate(-48deg) scale(0); margin-top: -3px; transition: transform .2s var(--ease); }
.step input:checked { background: var(--marker); }
.step input:checked::after { transform: rotate(-48deg) scale(1); }
.step input:focus-visible { outline-offset: 2px; }
.step__b { display: block; }
.step__b::before { content: counter(st, decimal-leading-zero); display: inline-block; margin-right: .7em; font: 500 .75rem/1 var(--font-mono); letter-spacing: .04em; color: var(--slate); vertical-align: .08em; }
.step__ref { grid-column: 2; font: 500 .6875rem/1.4 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--slate); }
.step input:checked ~ .step__b { color: var(--slate); }
.say, .dont { padding: clamp(16px, 2.4vw, 26px); }
.say { background: var(--ink); color: var(--on-ink); }
.say h4 { color: var(--marker); margin-bottom: 14px; }
.say ul { display: grid; gap: 14px; }
.say li { position: relative; padding-left: 1.4rem; font: italic 300 1.2rem/1.4 var(--font-display); }
.say li::before { content: "«"; position: absolute; left: 0; top: 0; color: var(--marker); font-style: normal; }
.dont { border: 1px solid var(--rule-strong); }
.dont h4 { margin-bottom: 12px; }
.dont ul { display: grid; gap: 10px; }
.dont li { position: relative; padding-left: 1.3rem; font-size: .9688rem; line-height: 1.5; }
.dont li::before { content: "—"; position: absolute; left: 0; color: var(--slate); }
.adv { padding: 16px 0 0; border-top: 1px solid var(--rule-strong); }
.adv h4 { margin-bottom: 8px; color: var(--slate); }
.adv p { font-size: .9375rem; max-width: 46ch; }
.memo__foot { padding: 14px clamp(14px, 2.4vw, 24px); border-top: 1px solid var(--ink); background: var(--paper-2); display: grid; gap: 6px; }
@media (min-width: 900px) {
  .roles__tabs, .js .roles__tabs { grid-template-columns: repeat(4, 1fr); }
  .roles__tabs [role="tab"], .roles__tabs [role="tab"]:nth-child(2n) { border-bottom: 0; border-right: 1px solid var(--rule-strong); min-height: 76px; padding: 12px 20px; }
  .roles__tabs [role="tab"]:last-child { border-right: 0; }
  .roles__tabs .t { font-size: 1.45rem; }
  .memo__bar { grid-template-columns: 1fr; }
  .panel__body { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
  .panel__side { position: sticky; top: calc(var(--hdr) + 20px); display: grid; gap: 18px; }
  .memo__call { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 20px; }
}
.panel__side { display: grid; gap: 18px; }
@media (min-width: 900px) { .panel__side { position: sticky; top: calc(var(--hdr) + 20px); } }

/* ---------- team: "карточка дела" ---------- */
.cases { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 236px), 1fr)); gap: 16px; }
.case { position: relative; display: grid; grid-template-rows: auto auto 1fr; background: var(--sheet); border: 1px solid var(--ink); transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.case::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 5px; background: var(--marker); transform: scaleX(0); transform-origin: 0 50%; transition: transform .45s var(--ease); }
.case:hover { transform: translateY(-3px); box-shadow: 0 18px 30px -24px rgba(31, 33, 36, .55); }
.case:hover::before { transform: scaleX(1); }
.case__h { display: flex; justify-content: space-between; gap: 8px; padding: 8px 14px; border-bottom: 1px solid var(--ink); font: 500 .625rem/1.4 var(--font-mono); letter-spacing: .09em; text-transform: uppercase; color: var(--slate); }
.case__mono { display: grid; place-items: center; height: 96px; border-bottom: 1px solid var(--rule); font: 200 3.4rem/1 var(--font-display); letter-spacing: -.02em; background: var(--paper-2); color: var(--ink); }
@media (min-width: 640px) { .case__mono { height: 124px; font-size: 4.4rem; } }
.case__b { padding: 16px 14px 18px; display: grid; gap: 4px; align-content: start; }
.case__b h3 { font-size: 1.35rem; line-height: 1.15; }
.case__r { font-size: .9063rem; color: var(--slate); margin-bottom: 8px; }
.case dl { display: grid; gap: 5px; margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--rule); font: 500 .6875rem/1.5 var(--font-mono); letter-spacing: .02em; }
.case dt { display: inline; color: var(--slate); }
.case dd { display: inline; }
.case dd.mkd { background: linear-gradient(var(--marker), var(--marker)) no-repeat 0 90% / 100% .5em; }

/* ---------- fees: «от …» with dotted leaders ---------- */
.fees { border-top: 1px solid var(--ink); }
.fee { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.fee__t { flex: 0 1 auto; }
.fee__s { flex: 1 0 100%; margin-top: 2px; font-size: .8125rem; color: var(--slate); }
.fee__l { flex: 1 1 18px; min-width: 18px; height: 0; align-self: baseline; border-bottom: 1px dotted var(--slate); margin-bottom: .1em; }
.fee__p { flex: none; font: 500 .9063rem/1.4 var(--font-mono); white-space: nowrap; }
.fee__p small { font-size: inherit; }
@media (max-width: 599px) {
  .fee { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 14px; }
  .fee__l { display: none; }
  .fee__p { grid-column: 2; grid-row: 1; white-space: normal; text-align: right; max-width: 8.5rem; }
  .fee__s { grid-column: 1 / -1; }
}
.factors { display: grid; gap: 8px; margin-top: 22px; }
.factors li { position: relative; padding-left: 1.5rem; font-size: .9688rem; }
.factors li::before { content: "§"; position: absolute; left: 0; font: 500 .8125rem/1.8 var(--font-mono); color: var(--slate); }
.legalnote { margin-top: 22px; padding: 14px 16px; border: 1px solid var(--rule-strong); background: var(--sheet); font-size: .875rem; line-height: 1.55; color: var(--ink-2); display: grid; gap: 6px; }

/* ---------- contacts, schematic map, live badge ---------- */
.contact { display: grid; gap: 36px; }
.addr { display: grid; gap: 20px; }
.addr dl { display: grid; border-top: 1px solid var(--ink); }
.addr dl > div { display: grid; grid-template-columns: 6.4rem 1fr; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--rule); }
.addr dt { font: 500 .6875rem/1.7 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--slate); }
.addr dd { line-height: 1.45; }
.addr .phone { font: 500 clamp(1.15rem, 1rem + .6vw, 1.35rem)/1.2 var(--font-mono); white-space: nowrap; text-decoration: none; display: inline-flex; min-height: 44px; align-items: center; border-bottom: 1px solid var(--ink); }
.badge { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 14px; border: 1px solid var(--ink); border-radius: 999px; font: 500 .75rem/1.3 var(--font-mono); letter-spacing: .03em; background: var(--sheet); }
.badge i { width: 10px; height: 10px; border-radius: 50%; background: var(--slate); flex: none; }
.badge[data-state="open"] i { background: var(--marker); box-shadow: 0 0 0 1.5px var(--ink); }
.badge[data-state="closed"] i { background: transparent; box-shadow: inset 0 0 0 1.5px var(--slate); }
.map { background: var(--paper-2); border: 1px solid var(--ink); }
.map svg { width: 100%; height: auto; aspect-ratio: 5 / 4; }
@media (min-width: 600px) { .map svg { aspect-ratio: 640 / 430; } }
.map text { font-family: var(--font-mono); letter-spacing: .04em; }
.map__f { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; padding: 12px 14px; border-top: 1px solid var(--ink); background: var(--sheet); }
.map__f span { font: 500 .6875rem/1.4 var(--font-mono); letter-spacing: .04em; color: var(--slate); text-transform: uppercase; }
@media (min-width: 960px) {
  .contact { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 4vw, 64px); align-items: start; }
}

.form { display: grid; gap: 18px; padding: clamp(18px, 3vw, 30px); background: var(--sheet); border: 1px solid var(--ink); }
.form__t { font: 400 1.5rem/1.2 var(--font-display); }
.seg { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.seg label { position: relative; display: block; }
.seg input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.seg span { display: grid; place-items: center; min-height: 46px; padding: 0 10px; border: 1px solid var(--rule-strong); border-radius: var(--radius); background: var(--paper); font-size: .9063rem; font-weight: 500; transition: background .2s, color .2s, border-color .2s; }
.seg input:checked + span { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.seg input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 3px; box-shadow: 0 0 0 6px var(--marker); }
@media (min-width: 480px) { .seg { grid-template-columns: repeat(4, 1fr); } }
.consent { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; font-size: .875rem; line-height: 1.5; color: var(--ink-2); cursor: pointer; }
.consent input { appearance: none; -webkit-appearance: none; width: 26px; height: 26px; margin: 0; border: 1.5px solid var(--ink); border-radius: var(--radius); background: var(--paper); display: grid; place-items: center; cursor: pointer; }
.consent input::after { content: ""; width: 12px; height: 7px; border: solid var(--ink); border-width: 0 0 2.5px 2.5px; transform: rotate(-48deg) scale(0); margin-top: -3px; transition: transform .2s var(--ease); }
.consent input:checked { background: var(--marker); }
.consent input:checked::after { transform: rotate(-48deg) scale(1); }
.consent a { font-weight: 600; }
.form__warn { padding: 10px 12px; background: var(--paper-2); border-left: 3px solid var(--marker); font-size: .875rem; line-height: 1.45; }
.form__count { justify-self: end; font: 500 .6875rem/1 var(--font-mono); color: var(--slate); }

/* ---------- footer ---------- */
.foot { margin-top: clamp(64px, 9vw, 130px); background: var(--ink); color: var(--on-ink); padding: clamp(40px, 6vw, 80px) 0 calc(28px + env(safe-area-inset-bottom)); }
.foot a { text-decoration-color: rgba(244, 242, 236, .4); }
.foot a:hover { text-decoration-color: var(--on-ink); }
.foot__g { display: grid; gap: 36px; }
.foot h4 { color: var(--on-ink-muted); margin-bottom: 14px; }
.foot .brand__n i { color: var(--on-ink-muted); }
.foot .brand__s { color: var(--on-ink-muted); }
.foot__big { margin-top: 18px; max-width: 30ch; font: 300 1.4rem/1.3 var(--font-display); color: var(--on-ink); }
.foot dl { display: grid; gap: 10px; font-size: .9063rem; }
.foot dl > div { display: grid; grid-template-columns: 7.4rem 1fr; gap: 10px; }
.foot dt { font: 500 .6875rem/1.8 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--on-ink-muted); }
.foot ul { display: grid; gap: 2px; }
.foot dd a { display: inline-flex; min-height: 44px; align-items: center; }
.foot li a { display: inline-flex; min-height: 44px; align-items: center; text-decoration: none; font-size: .9688rem; }
.foot li a:hover { text-decoration: underline; }
.foot__legal { margin-top: 36px; padding-top: 20px; border-top: 1px solid rgba(244, 242, 236, .18); display: grid; gap: 8px; font-size: .8125rem; line-height: 1.55; color: var(--on-ink-muted); }
.foot__legal a { display: inline-flex; min-height: 44px; align-items: center; color: var(--on-ink); }
@media (min-width: 900px) { .foot__g { grid-template-columns: 1.1fr 1.3fr .7fr; gap: 48px; } }

/* ---------- mobile sticky contact bar + toast ---------- */
.mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; display: grid; grid-template-columns: 1.5fr 1fr; gap: 8px; padding: 8px var(--gut) calc(8px + env(safe-area-inset-bottom)); background: rgba(244, 242, 236, .96); border-top: 1px solid var(--ink); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.mbar .btn { min-height: 48px; padding: 0 10px; font-size: .875rem; }
.mbar .btn__two { align-items: center; text-align: center; }
body { padding-bottom: 72px; }
@media (min-width: 900px) { .mbar { display: none; } body { padding-bottom: 0; } }
.toast { position: fixed; left: 50%; bottom: 92px; z-index: 90; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; padding: 12px 18px; background: var(--ink); color: var(--on-ink); font: 500 .8125rem/1.3 var(--font-mono); letter-spacing: .02em; transition: opacity .3s, transform .3s var(--ease); max-width: calc(100vw - 32px); }
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.toast b { background: var(--marker); color: var(--ink); padding: 1px 5px; font-weight: 500; }
@media (min-width: 900px) { .toast { bottom: 28px; } }

/* ---------- legal pages (privacy, consent) ---------- */
.legal { padding-bottom: 20px; }
.legal__text { max-width: 780px; }
.legal h1 { font-size: clamp(2rem, 1.2rem + 3.4vw, 3.6rem); line-height: 1.06; margin: 16px 0 14px; }
.legal__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 18px 0 28px; padding: 12px 0; border-block: 1px solid var(--rule-strong); }
.clauses { counter-reset: c; display: grid; gap: 28px; margin-top: 30px; }
.clauses > li { counter-increment: c; counter-reset: cc; position: relative; padding-left: 3.2rem; }
.clauses > li::before { content: counter(c) "."; position: absolute; left: 0; top: .15em; font: 500 .9375rem/1.4 var(--font-mono); }
.clauses h2 { font: 400 clamp(1.3rem, 1.1rem + .8vw, 1.7rem)/1.25 var(--font-display); margin-bottom: 10px; }
.clauses p, .clauses ul { margin-top: 10px; }
.clauses .sub { display: grid; gap: 10px; }
.clauses .sub > li { counter-increment: cc; position: relative; padding-left: 2.6rem; }
.clauses .sub > li::before { content: counter(c) "." counter(cc); position: absolute; left: -.4rem; top: .35em; font: 500 .75rem/1.4 var(--font-mono); color: var(--slate); }
.clauses ul.dash > li { position: relative; padding-left: 1.6rem; margin-top: 4px; }
.clauses ul.dash > li::before { content: "—"; position: absolute; left: 0; color: var(--slate); }
.legal .demo-note { margin-top: 36px; padding: 14px 16px; background: var(--sheet); border: 1px solid var(--rule-strong); border-left: 3px solid var(--marker); font-size: .875rem; }
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; font: 500 .6875rem/1.4 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.crumbs a { display: inline-flex; min-height: 44px; min-width: 44px; align-items: center; }

/* ---------- print: the role memo is a one-page handout ---------- */
@media print {
  @page { size: A4; margin: 14mm; }
  html, body { background: #fff !important; color: #000; }
  body { padding: 0 !important; overflow: visible; }
  .nx-ribbon, .hdr, .rail, .mbar, .foot, .skip, .toast, .nx-dialog, .strip { display: none !important; }
  .doc { display: block; padding: 0; }
  a { text-decoration: none; }
  .mk { background: none; }
  html[data-print] .main > *:not(#obysk), html[data-print] .sec:not(#obysk) { display: none !important; }
  html[data-print] #obysk .sec__head, html[data-print] #obysk .row:not(.row--memo), html[data-print] .memo__bar, html[data-print] .memo__tools, html[data-print] .memo__call { display: none !important; }
  html[data-print] #obysk { border: 0; margin: 0; padding: 0; }
  html[data-print] .memo { border: 0; background: #fff; }
  html[data-print] .panel { padding: 0; gap: 14px; break-after: page; page-break-after: always; }
  html[data-print] .panel:last-of-type { break-after: auto; page-break-after: auto; }
  html[data-print="one"] .panel[hidden] { display: none !important; }
  html[data-print="one"] .panel { break-after: auto; page-break-after: auto; }
  html[data-print] .dont li { font-size: 9.5pt; }
  html[data-print="all"] .panel[hidden] { display: grid !important; }
  html[data-print] .panel__print { display: block; padding-bottom: 12px; border-bottom: 2px solid #000; margin-bottom: 4px; }
  .panel__print .pp1 { font: 500 9pt/1.4 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
  .panel__print .pp2 { font: 300 22pt/1.15 var(--font-display); margin: 4px 0; }
  .panel__print .pp3 { font: 500 14pt/1.3 var(--font-mono); margin-top: 6px; }
  html[data-print] .panel__body { display: block; }
  html[data-print] .panel__side { position: static; margin-top: 12px; }
  html[data-print] .say { background: #fff; color: #000; border: 1.5px solid #000; }
  html[data-print] .say h4 { color: #000; }
  html[data-print] .say li::before { color: #000; }
  html[data-print] .step label { padding: 6px 0; min-height: 0; }
  html[data-print] .step input { border: 1.5px solid #000; background: #fff !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html[data-print] .step { break-inside: avoid; }
  html[data-print] .panel__prog, html[data-print] .panel__head { display: none; }
  html[data-print] .panel__side { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: start; }
  html[data-print] .say, html[data-print] .dont { padding: 8px 10px; }
  html[data-print] .say li { font-size: 10pt; }
  html[data-print] .phase + .phase { margin-top: 10px; }
  html[data-print] .step__ref { font-size: 7pt; }
  html[data-print] .memo__foot { display: grid !important; border: 0; border-top: 1px solid #000; background: #fff; margin-top: 8px; padding: 8px 0 0; }
  .panel, .say, .dont, .step { font-size: 9.5pt; line-height: 1.4; }
  html[data-print] .step label { padding: 4px 0; }
  html[data-print] .step input { width: 18px; height: 18px; }
  html[data-print] .step label { grid-template-columns: 22px 1fr; gap: 2px 8px; }
  html[data-print] .memo__foot .stamp { font-size: 7pt; }
}

/* =====================================================================
   SUBPAGES: practices, search, team, fees (same system, appended)
   ===================================================================== */
.hero__sect--n { font-size: clamp(9rem, 27vw, 31rem); right: -1vw; top: -.5rem; letter-spacing: -.04em; }
.hero--sub .hero__lead p + p { margin-top: 1em; }
@media (min-width: 1100px) { .hero--sub .hero__lead { grid-column: 1 / span 6; } .hero--sub .reg { grid-column: 8 / span 5; } .hero--sub .reg dl > div { grid-template-columns: 7.4rem 1fr; } }
.hero--sub .hero__cta { grid-template-columns: 1fr; }
.hero__links { display: flex; flex-wrap: wrap; gap: 4px 22px; margin-top: 18px; }
.sh { display: flex; align-items: baseline; gap: 12px; margin: clamp(30px, 4vw, 46px) 0 14px; font: 400 clamp(1.3rem, 1.1rem + .9vw, 1.75rem)/1.2 var(--font-display); letter-spacing: -.01em; }
.sh .mono { flex: none; color: var(--slate); }
.sh:first-child { margin-top: 0; }
.tag { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: 1px solid var(--rule-strong); border-radius: var(--radius); background: var(--paper); font: 500 .75rem/1.2 var(--font-mono); letter-spacing: .02em; text-decoration: none; transition: background .2s, border-color .2s; }
a.tag:hover { background: var(--marker); border-color: var(--ink); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; }
.k { font: 500 .6875rem/1.3 var(--font-mono); letter-spacing: .09em; text-transform: uppercase; color: var(--slate); }

/* practice article head: outlined numeral, title, norms, price */
.ahead { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 clamp(14px, 3vw, 36px); align-items: end; margin-bottom: clamp(24px, 3.4vw, 44px); }
.ahead__no { font: 200 clamp(4.5rem, 2.8rem + 8vw, 9.5rem)/.82 var(--font-display); color: transparent; -webkit-text-stroke: 1px var(--ink); letter-spacing: -.045em; font-variant-numeric: lining-nums; padding-bottom: .04em; }
.ahead__t { display: grid; gap: 12px; min-width: 0; }
.ahead__t h2 { font-size: var(--fs-h2); line-height: 1.06; max-width: 22ch; }
.ahead__norms { font: 500 .75rem/1.5 var(--font-mono); letter-spacing: .04em; color: var(--slate); text-transform: uppercase; }
.ahead__p { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--ink); }
.ahead__p .mk { font: 500 1.125rem/1.4 var(--font-mono); white-space: nowrap; }
.ahead__p .btn { margin-left: auto; }
@media (max-width: 479px) { .ahead { grid-template-columns: 1fr; gap: 10px; } .ahead__no { font-size: 4.5rem; } .ahead__p .btn { margin-left: 0; } }

/* stages: what the advocate does, documents, timing */
.stages { counter-reset: sg; border-top: 1px solid var(--ink); }
.stage { counter-increment: sg; display: grid; gap: 8px 0; padding: 20px 0 22px; border-bottom: 1px solid var(--rule-strong); }
.stage__h { display: grid; grid-template-columns: 2.4rem minmax(0, 1fr); gap: 0 8px; align-items: baseline; }
.stage__h::before { content: counter(sg, decimal-leading-zero); font: 500 var(--fs-mono)/1.4 var(--font-mono); color: var(--slate); }
.stage__h b { font: 400 clamp(1.15rem, 1.05rem + .45vw, 1.35rem)/1.25 var(--font-display); }
.stage__h .k { grid-column: 2; margin-top: 4px; }
.stage__b, .stage__m { padding-left: 2.4rem; }
.stage__b p { max-width: 60ch; color: var(--ink-2); }
.stage__m { display: grid; gap: 0; margin-top: 4px; }
.stage__m > div { display: grid; grid-template-columns: 5.6rem minmax(0, 1fr); gap: 10px; padding: 7px 0; border-top: 1px solid var(--rule); font-size: .875rem; line-height: 1.5; }
.stage__m dt { font: 500 .6875rem/1.7 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--slate); }
@media (min-width: 700px) {
  .stage { grid-template-columns: 13.5rem minmax(0, 1fr); gap: 8px 26px; }
  .stage__h { grid-column: 1; grid-row: 1 / span 2; align-self: start; }
  .stage__b, .stage__m { padding-left: 0; grid-column: 2; }
}

.pricebox { display: grid; margin-top: 26px; background: var(--sheet); border: 1px solid var(--ink); }
.pricebox__p { display: grid; gap: 8px; align-content: start; padding: 20px; background: var(--paper-2); border-bottom: 1px solid var(--ink); }
.pricebox__n { font: 200 clamp(2rem, 1.4rem + 1.9vw, 2.9rem)/1.05 var(--font-display); letter-spacing: -.025em; font-variant-numeric: lining-nums; white-space: nowrap; }
.pricebox__n .mk { padding: 0 .08em; }
.pricebox__f { padding: 20px; }
.pricebox__f .factors { margin-top: 10px; }
.pricebox__l { padding: 12px 20px; border-top: 1px solid var(--rule-strong); font-size: .8125rem; line-height: 1.5; color: var(--slate); }
.pricebox__l b { color: var(--ink); font-weight: 600; }
.pricebox .fees { border-top: 0; }
.pricebox .fee { padding-inline: 20px; }
.pricebox .fee:last-child { border-bottom: 0; }
@media (min-width: 700px) {
  .pricebox { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
  .pricebox__p { border-bottom: 0; border-right: 1px solid var(--ink); }
  .pricebox__l { grid-column: 1 / -1; }
  .pricebox--full { grid-template-columns: 1fr; }
}
.cats { display: grid; gap: 9px; margin-top: 4px; }
.cats li { position: relative; padding-left: 1.3rem; color: var(--ink); line-height: 1.45; }
.cats li::before { content: "—"; position: absolute; left: 0; color: var(--slate); }
.note .cats { margin-top: 0; }
.note + .note { margin-top: 22px; }
.note .btn { margin-top: 10px; }
.cta-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }

/* search page: three documents + one question */
.trio { display: grid; gap: 16px; }
.dcard { position: relative; display: grid; align-content: start; background: var(--sheet); border: 1px solid var(--ink); }
.dcard__h { display: flex; justify-content: space-between; gap: 8px; padding: 8px 14px; border-bottom: 1px solid var(--ink); font: 500 .625rem/1.4 var(--font-mono); letter-spacing: .09em; text-transform: uppercase; color: var(--slate); }
.dcard__b { display: grid; gap: 12px; align-content: start; padding: 18px 16px 22px; }
.dcard__n { font: 200 3.6rem/.9 var(--font-display); letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1px var(--ink); font-variant-numeric: lining-nums; }
.dcard__b h3 { font-size: clamp(1.35rem, 1.15rem + .7vw, 1.65rem); line-height: 1.18; }
.dcard__b ul { display: grid; gap: 8px; font-size: .9688rem; }
.dcard__b li { position: relative; padding-left: 1.3rem; line-height: 1.45; }
.dcard__b li::before { content: "—"; position: absolute; left: 0; color: var(--slate); }
.dcard__ref { padding-top: 10px; border-top: 1px solid var(--rule); font: 500 .6875rem/1.5 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--slate); }
@media (min-width: 860px) { .trio { grid-template-columns: repeat(3, minmax(0, 1fr)); } .trio--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ask { display: grid; gap: 8px; margin-top: 16px; padding: clamp(16px, 2.6vw, 28px); background: var(--marker); color: var(--ink); border: 1px solid var(--ink); }
.ask__q { font: 400 clamp(1.3rem, 1.1rem + .9vw, 1.85rem)/1.2 var(--font-display); }
.ask p { max-width: 70ch; }
.ask .k { color: var(--ink); }

/* comparison table (stacks into cards on phones) */
.cmp-wrap { border: 1px solid var(--ink); background: var(--sheet); }
.cmp { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.cmp th, .cmp td { text-align: left; vertical-align: top; padding: 13px 16px; border-bottom: 1px solid var(--rule); }
.cmp thead th { background: var(--ink); color: var(--on-ink); font: 500 .6875rem/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; border-bottom: 0; }
.cmp tbody th { width: 9.5rem; font: 500 .6875rem/1.6 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--slate); background: var(--paper-2); }
.cmp tbody tr:last-child th, .cmp tbody tr:last-child td { border-bottom: 0; }
.cmp td .ref { display: block; margin-top: 5px; font: 500 .6875rem/1.45 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--slate); }
@media (max-width: 759px) {
  .cmp, .cmp tbody, .cmp tr, .cmp th, .cmp td { display: block; width: 100%; }
  .cmp thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .cmp tr { border-bottom: 1px solid var(--ink); }
  .cmp tbody tr:last-child { border-bottom: 0; }
  .cmp tbody th { width: auto; padding: 10px 16px; border-bottom: 1px solid var(--rule); }
  .cmp td { padding: 9px 16px; border: 0; }
  .cmp td::before { content: attr(data-l); display: block; margin-bottom: 2px; font: 500 .625rem/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
}

/* timeline lines: who does what */
.who { display: grid; gap: 8px; }
.who p { max-width: 58ch; }
.who .k { display: inline-block; min-width: 5.6rem; margin-right: 10px; padding: 1px 6px; text-align: center; color: var(--ink); border: 1px solid var(--ink); }
.who .adv { padding: 0; border: 0; color: var(--ink-2); }
.who .adv .k { background: var(--marker); }

/* preparation checklist */
.prep { counter-reset: st; background: var(--sheet); border: 1px solid var(--ink); }
.prep__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 14px clamp(14px, 2.4vw, 24px); border-bottom: 1px solid var(--ink); background: var(--paper-2); }
.prep__bar .panel__prog { margin: 0; flex: 1 1 260px; }
.prep__body { padding: clamp(8px, 2vw, 22px) clamp(14px, 2.4vw, 28px) clamp(12px, 2vw, 22px); display: grid; }
.prep__foot { padding: 14px clamp(14px, 2.4vw, 24px); border-top: 1px solid var(--ink); background: var(--paper-2); display: grid; gap: 6px; }
.prep .phase + .phase { margin-top: 18px; }
.prep .btn[hidden] { display: none; }
@media (min-width: 900px) { .prep__body { grid-template-columns: 1fr 1fr; column-gap: clamp(28px, 4vw, 56px); } .prep__body .phase { align-self: start; } .prep .phase + .phase { margin-top: 0; } }
.js .prep__js { display: flex; }
.prep__js { display: none; flex-wrap: wrap; gap: 8px; }

/* questions and answers */
.faq { border-top: 1px solid var(--ink); }
.faq details { border-bottom: 1px solid var(--rule-strong); }
.faq summary { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr) 28px; gap: 4px 10px; align-items: baseline; min-height: 56px; padding: 16px 0; cursor: pointer; list-style: none; transition: background .2s, padding .3s var(--ease); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { background: var(--paper-2); padding-inline: 10px; }
.faq .qn { font: 500 var(--fs-mono)/1.9 var(--font-mono); color: var(--slate); }
.faq .q { font: 400 clamp(1.15rem, 1.05rem + .5vw, 1.4rem)/1.28 var(--font-display); }
.faq .pm { position: relative; width: 18px; height: 18px; align-self: center; justify-self: end; }
.faq .pm::before, .faq .pm::after { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 1.5px; background: var(--ink); transition: transform .3s var(--ease); }
.faq .pm::after { transform: rotate(90deg); }
.faq details[open] .pm::after { transform: rotate(0); }
.faq details[open] summary .q span { background: linear-gradient(var(--marker), var(--marker)) no-repeat 0 92% / 100% .46em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.faq .a { padding: 0 0 24px calc(2.6rem + 10px); max-width: calc(64ch + 2.6rem); display: grid; gap: 10px; }
.faq .a .ref { font: 500 .6875rem/1.45 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--slate); }
.faq__tools { display: none; margin-bottom: 14px; }
.js .faq__tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
@media (max-width: 479px) { .faq summary { grid-template-columns: 2.1rem minmax(0, 1fr) 24px; } .faq .a { padding-left: calc(2.1rem + 10px); } }

/* team: filter chips, matrix, dossiers, publications, specialists */
.chips { display: none; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.js .chips { display: flex; }
.chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; background: var(--paper); border: 1px solid var(--ink); border-radius: var(--radius); font: 500 .875rem/1.2 var(--font-body); transition: background .2s, color .2s; }
.chip:hover { background: var(--paper-2); }
.chip[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); }
.chip .mono { color: inherit; opacity: .75; }
.chips__out { margin: 0 0 20px; font: 500 .6875rem/1.4 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }

.matrix-wrap { position: relative; overflow-x: auto; border: 1px solid var(--ink); background: var(--sheet); -webkit-overflow-scrolling: touch; }
.matrix-wrap:focus-visible { outline-offset: -3px; }
.matrix { width: 100%; min-width: 780px; border-collapse: collapse; font-size: .9375rem; }
.matrix th, .matrix td { padding: 0; text-align: center; border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule); transition: background .15s; }
.matrix tr > :last-child { border-right: 0; }
.matrix tbody tr:last-child > * { border-bottom: 0; }
.matrix thead th { padding: 8px 2px 10px; background: var(--paper-2); border-bottom: 1px solid var(--ink); vertical-align: bottom; }
.matrix thead th:first-child { text-align: left; padding-left: 16px; font: 500 .6875rem/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); vertical-align: middle; }
.matrix thead th a { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 5px; min-height: 64px; padding: 0 3px; text-decoration: none; font: 500 .625rem/1.25 var(--font-mono); letter-spacing: .03em; text-transform: uppercase; color: var(--slate); }
.matrix thead th a b { font: 400 1.3rem/1 var(--font-display); letter-spacing: 0; color: var(--ink); text-transform: none; font-variant-numeric: lining-nums; }
.matrix thead th a:hover b { background: var(--marker); }
.matrix tbody th { position: sticky; left: 0; z-index: 1; min-width: 200px; padding: 0; text-align: left; background: var(--sheet); font-weight: 400; }
.matrix tbody th a { display: flex; flex-direction: column; justify-content: center; min-height: 56px; padding: 8px 14px 8px 16px; text-decoration: none; line-height: 1.25; }
.matrix tbody th a b { font-weight: 600; }
.matrix tbody th a:hover b { text-decoration: underline; }
.matrix tbody th small { display: block; margin-top: 2px; font: 500 .625rem/1.3 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.dot { display: inline-block; width: 16px; height: 16px; margin: 15px 0 13px; background: var(--marker); box-shadow: inset 0 0 0 1.5px var(--ink); }
.dash { display: inline-block; width: 10px; height: 1px; margin: 22px 0; background: var(--rule-strong); }
.matrix .is-hl { background: var(--paper-2); }
.matrix tbody th.is-hl { background: var(--paper-2); }
.matrix tr.is-dim > * { opacity: .38; }
.matrix tr.is-dim th { opacity: .6; }

.dosl { display: grid; gap: 18px; }
.dos { position: relative; display: grid; background: var(--sheet); border: 1px solid var(--ink); }
.dos::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 5px; background: var(--marker); transform: scaleX(0); transform-origin: 0 50%; transition: transform .45s var(--ease); }
.dos:hover::before, .dos:target::before { transform: scaleX(1); }
.dos__side { display: grid; grid-template-rows: auto 1fr; border-bottom: 1px solid var(--ink); }
.dos__side .case__h { border-bottom: 1px solid var(--ink); }
.dos__mono { display: grid; place-items: center; min-height: 96px; background: var(--paper-2); font: 200 3.6rem/1 var(--font-display); letter-spacing: -.03em; }
.dos__main { display: grid; gap: 14px; align-content: start; padding: 20px 18px 24px; min-width: 0; }
.dos__main h3 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); line-height: 1.12; }
.dos__role { margin-top: -8px; color: var(--slate); }
.dos__txt { max-width: 56ch; color: var(--ink-2); }
.dos__dl { display: grid; border-top: 1px solid var(--rule-strong); }
.dos__dl > div { display: grid; grid-template-columns: 7.6rem minmax(0, 1fr); gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--rule); font-size: .9375rem; line-height: 1.45; }
.dos__dl dt { font: 500 .6875rem/1.75 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--slate); }
.dos__pub { font: 500 .75rem/1.6 var(--font-mono); letter-spacing: .02em; color: var(--ink-2); }
.dos__pub a { text-decoration-color: var(--ink); }
.dos[hidden] { display: none; }
@media (min-width: 760px) {
  .dos { grid-template-columns: 210px minmax(0, 1fr); }
  .dos__side { border-bottom: 0; border-right: 1px solid var(--ink); }
  .dos__mono { font-size: 6.2rem; min-height: 0; }
  .dos__main { padding: 26px 28px 28px; }
}
@media (max-width: 479px) { .dos__dl > div { grid-template-columns: 1fr; gap: 1px; } }

.pubs { border-top: 1px solid var(--ink); }
.pubgrp__h { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 14px; padding: 14px 0 10px; border-bottom: 1px solid var(--ink); }
.pubgrp__h h3 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); }
.pubgrp + .pubgrp .pubgrp__h { margin-top: 30px; border-top: 1px solid var(--ink); }
.pub { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); gap: 3px 10px; padding: 14px 0; border-bottom: 1px solid var(--rule-strong); }
.pub__n { font: 500 var(--fs-mono)/1.9 var(--font-mono); color: var(--slate); }
.pub__t { font: 400 clamp(1.05rem, 1rem + .3vw, 1.2rem)/1.35 var(--font-display); }
.pub__m { grid-column: 2; font: 500 .6875rem/1.5 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--slate); }
@media (min-width: 900px) { .pub { grid-template-columns: 3.2rem minmax(0, 1fr) 14rem; align-items: baseline; gap: 0 20px; } .pub__m { grid-column: 3; text-align: right; } }
.band--lib img { object-position: 50% 40%; }

/* fees page */
.fees + .phase__t { margin-top: 34px; }
.opts { display: grid; }
.opt { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 14px; padding: 4px 0; border-bottom: 1px solid var(--rule); }
.opt__c { position: relative; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; align-items: start; min-height: 52px; padding: 11px 0; cursor: pointer; line-height: 1.4; }
.opt__c input { appearance: none; -webkit-appearance: none; width: 26px; height: 26px; margin: 0; border: 1.5px solid var(--ink); border-radius: var(--radius); background: var(--paper); display: grid; place-items: center; cursor: pointer; transition: background .2s; }
.opt__c input::after { content: ""; width: 12px; height: 7px; border: solid var(--ink); border-width: 0 0 2.5px 2.5px; transform: rotate(-48deg) scale(0); margin-top: -3px; transition: transform .2s var(--ease); }
.opt__c input:checked { background: var(--marker); }
.opt__c input:checked::after { transform: rotate(-48deg) scale(1); }
.opt__c small { display: block; margin-top: 1px; font-size: .8125rem; color: var(--slate); }
.opt__p { font: 500 .8125rem/1.4 var(--font-mono); white-space: nowrap; text-align: right; }
.opt__q { grid-column: 1 / -1; display: none; align-items: center; gap: 10px; padding: 0 0 10px 38px; font: 500 .6875rem/1.3 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.opt.is-on .opt__q { display: flex; }
.opt__q input { width: 72px; min-height: 44px; padding: 6px 10px; text-align: center; background: var(--paper); border: 1px solid var(--rule-strong); border-radius: var(--radius); font: 500 1rem var(--font-mono); color: var(--ink); }
.opt__q input:focus { border-color: var(--ink); background: #fff; }
.est .calc__form { gap: 14px; }
.est__rows { display: grid; gap: 5px; margin-top: 8px; font: 400 .9375rem/1.45 var(--font-body); color: var(--ink-2); }
.est__rows span { position: relative; padding-left: 1.2rem; }
.est__rows span::before { content: "—"; position: absolute; left: 0; color: var(--slate); }
.est__sticky { display: grid; gap: 0; align-content: start; }
@media (min-width: 900px) { .est__sticky { position: sticky; top: calc(var(--hdr) + 24px); } }
.est__tot { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-top: 4px; }
@media (max-width: 479px) { .opt { grid-template-columns: 1fr; } .opt__p { text-align: left; padding: 0 0 10px 38px; white-space: normal; } }
@media (min-width: 900px) { .est.calc { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.fx { border-top: 1px solid var(--ink); counter-reset: fx; }
.fx li { counter-increment: fx; display: grid; gap: 4px 0; padding: 16px 0 18px; border-bottom: 1px solid var(--rule-strong); }
.fx li::before { content: counter(fx, decimal-leading-zero); font: 500 var(--fs-mono)/1.4 var(--font-mono); color: var(--slate); }
.fx b { font: 400 clamp(1.15rem, 1.05rem + .45vw, 1.35rem)/1.25 var(--font-display); }
.fx p { color: var(--ink-2); max-width: 56ch; }
@media (min-width: 760px) { .fx li { grid-template-columns: 3rem minmax(0, 15rem) minmax(0, 1fr); gap: 0 22px; align-items: baseline; } }
.legalnote--big { padding: clamp(16px, 2.6vw, 28px); gap: 10px; font-size: .9688rem; border-color: var(--ink); }
.legalnote--big p { max-width: 70ch; }
.legalnote--big b { font-weight: 600; background: linear-gradient(var(--marker), var(--marker)) no-repeat 0 92% / 100% .46em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.addr--sub { margin-bottom: 0; }

/* print: preparation list as one sheet */
@media print {
  html[data-print] #obysk .hero { display: none !important; }
  html[data-print="prep"] #obysk { display: none !important; }
  html[data-print="prep"] .main > .sec#podgotovka { display: block !important; border: 0; margin: 0; padding: 0; }
  html[data-print="prep"] #podgotovka .sec__head .lead, html[data-print="prep"] #podgotovka .row:not(.row--prep), html[data-print="prep"] .prep__bar, html[data-print="prep"] .prep__js { display: none !important; }
  html[data-print="prep"] #podgotovka .sec__head { display: block; margin-bottom: 8px; }
  html[data-print="prep"] .prep { border: 0; background: #fff; }
  html[data-print="prep"] .prep__body { display: block; padding: 0; }
  html[data-print="prep"] .prep .step label { padding: 5px 0; min-height: 0; }
  html[data-print="prep"] .prep .step input { width: 18px; height: 18px; border: 1.5px solid #000; background: #fff !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html[data-print="prep"] .prep .step { break-inside: avoid; font-size: 9.5pt; line-height: 1.4; }
  html[data-print="prep"] .prep__foot { display: grid !important; border: 0; border-top: 1px solid #000; background: #fff; }
}
