/* Reusable primitives. Brand values live only in tokens.css. */
.ak-system {color:var(--ak-ink);background:var(--ak-paper);font:400 var(--ak-text-body)/var(--ak-leading-body) var(--ak-font-body);font-synthesis:none}
.ak-system *, .ak-system *::before, .ak-system *::after {box-sizing:border-box}
.ak-system :is(h1,h2,h3,h4,p,figure) {margin:0}
.ak-system :is(h1,h2,h3,h4) {font-family:var(--ak-font-heading);font-weight:var(--ak-weight-heading);line-height:var(--ak-leading-heading);letter-spacing:var(--ak-tracking-heading);text-wrap:balance}
.ak-system h1 {font-size:var(--ak-text-h1)}
.ak-system h2 {font-size:var(--ak-text-h2)}
.ak-system h3 {font-size:var(--ak-text-h3)}
.ak-system img {display:block;max-width:100%;height:auto}
.ak-system button,.ak-system input,.ak-system select,.ak-system textarea {font:inherit}
.ak-system button,.ak-system a,.ak-system input,.ak-system textarea,.ak-system select { -webkit-tap-highlight-color:transparent }
.ak-system a {color:inherit;text-underline-offset:5px}
.ak-system :focus-visible {outline:3px solid var(--ak-focus);outline-offset:4px}
.ak-dark :focus-visible {outline-color:var(--ak-signal-on-dark)}
.ak-container {width:min(calc(100% - var(--ak-gutter)*2),var(--ak-container));margin-inline:auto}
.ak-section {padding-block:var(--ak-section)}
.ak-dark {background:var(--ak-ink);color:var(--ak-paper)}
.ak-eyebrow {font-size:var(--ak-text-meta);line-height:1.5;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.ak-lead {font-size:var(--ak-text-lead);line-height:1.5;max-width:52ch}
.ak-muted {color:var(--ak-muted)}
.ak-dark .ak-muted {color:var(--ak-inverse-muted)}
.ak-wordmark {display:inline-flex;gap:14px;align-items:center;text-decoration:none;font:var(--ak-weight-heading) 1.125rem/1.1 var(--ak-font-heading);letter-spacing:-.04em}
.ak-mark {display:grid;flex:none;width:40px;height:40px;place-items:center;border-radius:var(--ak-radius);background:var(--ak-signal);color:var(--ak-signal-ink);font:var(--ak-weight-heading) 1.125rem/1 var(--ak-font-heading);letter-spacing:-.08em}
.ak-mark::before {content:"АК";transform:translateX(-.03em)}
/* Original VSP wordmark. Its artwork keeps its own brand colours. */
.ak-brand {display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 20px;min-width:0;max-width:100%;color:var(--ak-paper);text-decoration:none}
.ak-system .ak-brand {color:var(--ak-paper)}

/* Motion is an enhancement: content is visible until motion.js observes it. */
.ak-nav-link {position:relative}
.ak-nav-link::after {position:absolute;right:0;bottom:5px;left:0;height:1px;background:currentColor;content:"";transform:scaleX(0);transform-origin:left;transition:transform var(--ak-motion-base) var(--ak-ease)}
.ak-nav-link:focus-visible::after {transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){
  .ak-nav-link:hover::after {transform:scaleX(1)}
}
@media(prefers-reduced-motion:no-preference){
  .ak-system .ak-button {transition:background var(--ak-motion-fast) var(--ak-ease),border-color var(--ak-motion-fast) var(--ak-ease),transform var(--ak-motion-base) var(--ak-ease)}
  .ak-system .ak-button::after,.ak-button>[aria-hidden="true"],.ak-link>[aria-hidden="true"] {transition:transform var(--ak-motion-base) var(--ak-ease)}
  .ak-button:focus-visible::after,.ak-button:focus-visible>[aria-hidden="true"],.ak-link:focus-visible>[aria-hidden="true"] {transform:translate(3px,-2px)}
  .ak-system .ak-button:active:not(:disabled) {transform:translateY(1px)}
  [data-ak-reveal].ak-reveal--pending:not(:focus-within) {opacity:0}
  [data-ak-reveal].ak-reveal--enter {animation:ak-reveal var(--ak-motion-reveal) var(--ak-ease) var(--ak-reveal-delay,0ms) both}
  [data-ak-reveal]:focus-within {opacity:1;animation:none}
  .ak-dialog[open] {animation:ak-dialog-enter var(--ak-motion-base) var(--ak-ease)}
  .ak-dialog[open]::backdrop {animation:ak-backdrop-enter var(--ak-motion-fast) ease-out}
  @media(hover:hover) and (pointer:fine){
    .ak-system .ak-button:hover:not(:disabled) {transform:translateY(-2px)}
    .ak-system .ak-button:active:not(:disabled) {transform:translateY(1px)}
    .ak-button:hover::after,.ak-button:hover>[aria-hidden="true"],.ak-link:hover>[aria-hidden="true"] {transform:translate(3px,-2px)}
  }
}
@keyframes ak-reveal {from{opacity:0;transform:translateY(var(--ak-motion-distance))}to{opacity:1;transform:none}}
@keyframes ak-dialog-enter {from{opacity:0}to{opacity:1}}
@keyframes ak-backdrop-enter {from{opacity:0}to{opacity:1}}
@media print{[data-ak-reveal]{opacity:1!important;transform:none!important;animation:none!important}}
.ak-brand .ak-brand__logo {display:block;width:clamp(190px,20vw,270px);max-width:100%;height:auto;flex:0 1 auto}
.ak-brand__signature {font:400 1rem/1.35 var(--ak-font-body);letter-spacing:0;color:inherit}
.ak-brand--plaque {padding:16px;background:var(--ak-ink);border-radius:var(--ak-radius);color:var(--ak-paper)}
@media(max-width:560px){.ak-brand .ak-brand__logo{width:210px}.ak-brand__signature{font-size:.875rem}}
.ak-button {display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:var(--ak-control-height);padding:14px 24px;border:1px solid transparent;border-radius:var(--ak-radius);background:var(--ak-signal);color:var(--ak-signal-ink)!important;font-weight:500;text-decoration:none;cursor:pointer;transition:background var(--ak-motion-fast) var(--ak-ease),border-color var(--ak-motion-fast) var(--ak-ease)}
.ak-button:hover {background:var(--ak-signal-hover)}
.ak-button:active {background:var(--ak-signal-hover);border-color:var(--ak-ink)}
.ak-button--secondary {background:transparent;color:var(--ak-ink)!important;border-color:var(--ak-control-line)}
.ak-button--secondary:hover {background:var(--ak-surface)}
.ak-button--dark {background:var(--ak-ink);color:var(--ak-paper)!important}
.ak-button--dark:hover {background:var(--ak-inverse-line)}
.ak-button:disabled {background:var(--ak-surface);color:var(--ak-muted)!important;cursor:not-allowed;border-color:var(--ak-line)}
.ak-link {display:inline-flex;align-items:center;gap:12px;min-height:44px;text-decoration:underline;text-decoration-thickness:1px;font-weight:500}
.ak-tag {display:inline-flex;align-items:center;min-height:32px;padding:4px 10px;border:var(--ak-border);border-radius:var(--ak-radius);font-size:var(--ak-text-small);line-height:1.4}
.ak-tag--signal {border-color:transparent;background:var(--ak-signal);color:var(--ak-signal-ink)}
.ak-tag--success {border-color:var(--ak-success);color:var(--ak-success)}
.ak-card {border:var(--ak-border);border-radius:var(--ak-radius);padding:var(--ak-space-6);background:var(--ak-white)}
.ak-field {display:grid;gap:8px}
.ak-field label {font-size:var(--ak-text-small);font-weight:500}
.ak-field :is(input,select,textarea) {width:100%;min-height:var(--ak-control-height);padding:14px 16px;border:1px solid var(--ak-control-line);border-radius:var(--ak-radius);background:var(--ak-white);color:var(--ak-ink)}
.ak-field textarea {min-height:120px;resize:vertical}
.ak-field input::placeholder,.ak-field textarea::placeholder {color:var(--ak-muted);opacity:1}
.ak-field [aria-invalid=true] {border:2px solid var(--ak-error)}
.ak-field__hint {font-size:var(--ak-text-small);line-height:1.5;color:var(--ak-muted)}
.ak-field__error {font-size:var(--ak-text-small);color:var(--ak-error);line-height:1.5}
.ak-check {display:flex;gap:12px;align-items:flex-start;min-height:44px;font-size:var(--ak-text-small);line-height:1.5;cursor:pointer}
.ak-check input {width:20px;height:20px;flex:none;margin:1px 0 0;accent-color:var(--ak-ink)}
.ak-accordion {border-top:var(--ak-border)}
.ak-accordion details {border-bottom:var(--ak-border)}
.ak-accordion summary {display:flex;gap:24px;align-items:center;justify-content:space-between;min-height:76px;padding:20px 0;font:var(--ak-weight-heading) 1.125rem/1.4 var(--ak-font-heading);cursor:pointer;list-style:none}
.ak-accordion summary::-webkit-details-marker {display:none}
.ak-accordion summary::after {content:'+';font:400 1.75rem/1 var(--ak-font-body)}
.ak-accordion details[open] summary::after {content:'−'}
.ak-accordion details>p {max-width:65ch;padding:0 40px 24px 0;color:var(--ak-muted)}
.ak-icon {width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:square;stroke-linejoin:miter;flex:none}
/* The transparent final value reserves width and remains readable to assistive tools. */
.ak-counter {display:inline-grid;font-variant-numeric:tabular-nums}
.ak-counter>[data-ak-count-value],.ak-counter>.ak-counter__final {grid-area:1/1;color:inherit;font:inherit;letter-spacing:inherit}
.ak-counter>.ak-counter__final {opacity:0}
@media print{.ak-counter>.ak-counter__final {opacity:1}.ak-counter>[data-ak-count-value] {visibility:hidden}}
@media(prefers-reduced-motion:reduce){.ak-system *, .ak-system *::before, .ak-system *::after {scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* Native single-choice cards. */
.ak-choice {position:relative;display:flex;align-items:flex-start;gap:var(--ak-space-4);min-width:0;min-height:104px;padding:var(--ak-space-5);border:1px solid var(--ak-control-line);border-radius:var(--ak-radius);background:var(--ak-white);color:var(--ak-ink);cursor:pointer;transition:border-color var(--ak-motion-fast) var(--ak-ease),background var(--ak-motion-fast) var(--ak-ease)}
.ak-choice:hover {border-color:var(--ak-signal)}
.ak-choice:has(input:checked) {border-color:var(--ak-signal);box-shadow:inset 0 0 0 1px var(--ak-signal);background:var(--ak-surface)}
.ak-choice:has(input:focus-visible) {outline:3px solid var(--ak-focus);outline-offset:4px}
.ak-choice input {width:20px;height:20px;flex:none;margin:3px 0 0;accent-color:var(--ak-signal)}
.ak-choice__text {display:grid;gap:var(--ak-space-2);min-width:0;line-height:1.4}
.ak-choice__text strong {font-weight:500}
.ak-choice__text small {font-size:var(--ak-text-small);color:var(--ak-muted);line-height:1.5}
.ak-choice--dark {background:var(--ak-ink);color:var(--ak-paper);border-color:var(--ak-inverse-line)}
.ak-choice--dark small {color:var(--ak-inverse-muted)}
.ak-choice--dark:has(input:checked) {background:var(--ak-signal);color:var(--ak-signal-ink)}
.ak-choice--dark:has(input:checked) small {color:inherit}
.ak-choice--dark input {accent-color:var(--ak-signal-ink)}
.ak-choice--dark:has(input:checked) input {accent-color:var(--ak-ink)}
.ak-notice {padding:var(--ak-space-4) var(--ak-space-5);border-left:3px solid var(--ak-signal);background:var(--ak-surface);font-size:var(--ak-text-small);line-height:1.6}

/* Accessible modal surface for substantial secondary content. */
.ak-system.ak-dialog-open {overflow:hidden}
.ak-dialog {width:min(760px,calc(100% - var(--ak-gutter)*2));max-height:calc(100dvh - var(--ak-gutter)*2);margin:auto;padding:0;border:0;border-radius:var(--ak-radius);background:var(--ak-paper);color:var(--ak-ink);box-shadow:0 24px 72px #0006}
.ak-dialog[open] {display:grid;grid-template-rows:auto minmax(0,1fr)}
.ak-dialog::backdrop {background:#191b1dcc;backdrop-filter:blur(3px)}
.ak-dialog__header {display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 32px;border-bottom:var(--ak-border);background:var(--ak-paper)}
.ak-dialog__header h2 {font-size:clamp(1.75rem,4vw,2.5rem)}
.ak-dialog__close {display:grid;width:48px;height:48px;flex:none;place-items:center;padding:0;border:1px solid var(--ak-control-line);border-radius:var(--ak-radius);background:transparent;color:var(--ak-ink);font-size:28px;line-height:1;cursor:pointer}
.ak-dialog__close:hover {background:var(--ak-surface)}
.ak-dialog__body {min-height:0;overflow-y:auto;padding:32px;font-size:16px;line-height:1.65;overscroll-behavior:contain}
.ak-dialog__body>* {max-width:68ch}
.ak-dialog__body>:first-child {margin-top:0}
.ak-dialog__body>:last-child {margin-bottom:0}
.ak-dialog__body h3 {margin:32px 0 12px;font-size:1.125rem}
.ak-dialog__body p {margin:0 0 16px}
.ak-dialog__body :is(ul,ol) {display:grid;gap:8px;margin:0 0 20px;padding-left:24px}
.ak-dialog__meta {color:var(--ak-muted);font-size:var(--ak-text-small)}
@media(max-width:560px){
.ak-dialog {width:100%;max-width:none;max-height:calc(100dvh - 16px);margin:16px 0 0;border-radius:var(--ak-radius) var(--ak-radius) 0 0;align-self:end}
.ak-dialog__header {padding:20px var(--ak-gutter)}
.ak-dialog__header h2 {font-size:1.75rem}
.ak-dialog__body {padding:24px var(--ak-gutter) 40px}
.ak-dialog__close {width:44px;height:44px}
}
