/* Altaviator components — uses tokens.css custom properties. Prefix: av- */

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-text); font-size: 17px; line-height: 28px; color: var(--ink); background: var(--surface); -webkit-font-smoothing: antialiased; }
::selection { background: var(--selection); color: var(--ink); }
:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.av-mono { font-family: var(--font-mono); }
.av-container { max-width: var(--container-width); margin: 0 auto; padding: 0 var(--space-6); }
@media (max-width: 640px) { .av-container { padding: 0 var(--space-4); } }

/* Button */
.av-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 48px; padding: var(--space-3) var(--space-5); border-radius: var(--radius-md); border: 1.5px solid transparent; font: 500 15px/20px var(--font-text); letter-spacing: .01em; text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s, transform .15s; white-space: nowrap; }
.av-btn--primary { background: var(--action); color: var(--on-action); }
.av-btn--primary:hover { background: var(--action-hover); }
.av-btn--secondary { background: transparent; color: var(--action); border-color: var(--action); }
.av-btn--secondary:hover { background: var(--blue-50); color: var(--action-hover); border-color: var(--action-hover); }
.av-btn--ghost { background: transparent; color: var(--action); padding-left: var(--space-2); padding-right: var(--space-2); }
.av-btn--ghost:hover { color: var(--action-hover); text-decoration: underline; text-underline-offset: 3px; }
.av-btn--inverse { background: var(--surface); color: var(--navy); }
.av-btn--inverse:hover { background: var(--blue-50); }
.av-btn--sm { min-height: 40px; padding: var(--space-2) var(--space-4); }
.av-btn--lg { min-height: 56px; padding: var(--space-4) var(--space-6); font-size: 17px; }
.av-btn svg { width: 18px; height: 18px; flex: none; }
.av-btn:active { transform: translateY(1px); }

/* Language switch */
.av-lang { display: inline-flex; padding: 3px; border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface); }
.av-lang a { min-width: 40px; padding: 4px 10px; border-radius: var(--radius-pill); font: 500 13px/18px var(--font-text); letter-spacing: .04em; text-align: center; color: var(--ink-muted); text-decoration: none; }
.av-lang a:hover { color: var(--ink); }
.av-lang a[aria-current="true"] { background: var(--blue-100); color: var(--blue-800); }

/* Header */
.av-header { position: sticky; top: 0; z-index: 10; background: rgba(255,255,255,.92); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid transparent; transition: box-shadow .2s, border-color .2s; }
.av-header.is-scrolled { border-bottom-color: var(--border); box-shadow: var(--shadow-sm); }
.av-header__bar { display: flex; align-items: center; gap: var(--space-6); height: var(--header-height); }
.av-header.is-scrolled .av-header__bar { height: 60px; }
.av-header__logo { display: block; flex: none; line-height: 0; }
.av-header__logo img { height: 30px; width: auto; }
.av-nav { display: flex; gap: var(--space-1); margin: 0 auto; padding: 0; list-style: none; }
.av-nav > li { position: relative; }
.av-nav a, .av-nav button { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 0; border-radius: var(--radius-md); background: none; font: 500 15px/20px var(--font-text); color: var(--ink); text-decoration: none; cursor: pointer; }
.av-nav a:hover, .av-nav button:hover { background: var(--blue-50); color: var(--blue-800); }
.av-nav a[aria-current="page"] { color: var(--action); }
.av-nav__soon { font: 400 11px/14px var(--font-mono); color: var(--ink-subtle); }
.av-nav svg { width: 14px; height: 14px; }
.av-nav button svg { transition: transform .15s; }
.av-nav .has-sub.is-open > button svg, .av-nav .has-sub:hover > button svg { transform: rotate(180deg); }
.av-nav button.is-current { color: var(--action); }
.av-dropdown { display: none; z-index: 20; }
.av-nav .has-sub:hover > .av-dropdown, .av-nav .has-sub:focus-within > .av-dropdown, .av-nav .has-sub.is-open > .av-dropdown { display: block; }
.av-dropdown::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.av-dropdown a[aria-current="page"] { background: var(--blue-50); }
.av-dropdown { position: absolute; top: calc(100% + 8px); left: 0; min-width: 300px; padding: var(--space-2); margin: 0; list-style: none; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.av-dropdown a { display: grid; grid-template-columns: 36px 1fr; gap: 2px 12px; width: 100%; padding: 10px 12px; }
.av-dropdown__icon { grid-row: span 2; display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--blue-50); color: var(--brand); }
.av-dropdown__icon svg { width: 20px; height: 20px; }
.av-dropdown small { font: 400 13px/18px var(--font-text); color: var(--ink-muted); }
.av-header__end { display: flex; align-items: center; gap: var(--space-4); flex: none; }
.av-burger { display: none; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); color: var(--ink); cursor: pointer; }
.av-burger svg { width: 22px; height: 22px; }
@media (max-width: 1023px) {
  .av-nav, .av-header__end .av-lang { display: none; }
  .av-burger { display: inline-grid; place-items: center; }
  .av-header__bar { gap: var(--space-3); justify-content: space-between; }
  .av-header__end { gap: var(--space-2); }
}
@media (max-width: 480px) { .av-header__end .av-btn { display: none; } .av-header__logo img { height: 26px; } }

/* Section heading */
.av-heading { max-width: 720px; }
.av-heading--center { margin: 0 auto; text-align: center; }
.av-overline { display: block; margin: 0 0 var(--space-3); font: 500 12px/16px var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: var(--action); }
.av-heading h2 { margin: 0; font: 700 34px/40px var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: balance; }
.av-heading p { margin: var(--space-4) 0 0; font: 400 20px/32px var(--font-text); color: var(--ink-muted); }
@media (max-width: 640px) { .av-heading h2 { font-size: 28px; line-height: 34px; } .av-heading p { font-size: 18px; line-height: 28px; } }

/* Art frame (illustration / photo placeholder) */
.av-art { position: relative; display: block; overflow: hidden; background: var(--tint); border-radius: var(--radius-lg); aspect-ratio: 16 / 10; }
.av-art svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.av-art .grid { stroke: var(--blue-100); stroke-width: 1; fill: none; }
.av-art .line { stroke: var(--navy); stroke-width: 1.5; fill: none; stroke-linejoin: round; stroke-linecap: round; }
.av-art .line-soft { stroke: var(--slate-400); stroke-width: 1; fill: none; }
.av-art .line-brand { stroke: var(--brand); stroke-width: 1.5; fill: none; stroke-linejoin: round; }
.av-art .fill-brand { fill: var(--brand); }
.av-art .fill-roof { fill: var(--blue-100); }
.av-art .fill-roof2 { fill: var(--blue-200); }
.av-art .fill-white { fill: var(--surface); }
.av-art .fill-tree { fill: var(--blue-200); opacity: .7; }
.av-art .fill-glass { fill: var(--blue-200); }
.av-art .dash { stroke: var(--slate-400); stroke-width: 1; stroke-dasharray: 4 4; fill: none; }
.av-art .dim { stroke: var(--signal); stroke-width: 1.5; fill: none; }
.av-art .dim-fill { fill: var(--signal); }
.av-art .scan { stroke: var(--signal); stroke-width: 2; }
.av-art .scan-band { fill: var(--signal); opacity: .10; }
.av-art .label { font: 700 13px/1 var(--font-mono); fill: var(--navy); }
.av-art .label-sm { font: 400 11px/1 var(--font-mono); fill: var(--ink-muted); }
.av-art .pill { fill: var(--signal); }

/* Viewfinder */
.av-vf { position: relative; padding: 14px; }
.av-vf__corner { position: absolute; width: 22px; height: 22px; border: 2px solid var(--brand); }
.av-vf__corner--tl { top: 0; left: 0; border-right: 0; border-bottom: 0; border-top-left-radius: 6px; }
.av-vf__corner--tr { top: 0; right: 0; border-left: 0; border-bottom: 0; border-top-right-radius: 6px; }
.av-vf__corner--bl { bottom: 0; left: 0; border-right: 0; border-top: 0; border-bottom-left-radius: 6px; }
.av-vf__corner--br { bottom: 0; right: 0; border-left: 0; border-top: 0; border-bottom-right-radius: 6px; }
.av-vf__readout { position: absolute; left: 30px; right: 30px; bottom: 26px; display: flex; justify-content: space-between; gap: var(--space-3); pointer-events: none; }
.av-vf__readout span { padding: 3px 8px; border-radius: var(--radius-sm); background: rgba(11,26,46,.78); color: var(--ink-inverse); font: 400 13px/18px var(--font-mono); letter-spacing: .02em; }
.av-vf__rec { position: absolute; top: 28px; left: 30px; display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border-radius: var(--radius-sm); background: rgba(255,255,255,.88); color: var(--navy); font: 700 12px/16px var(--font-mono); }
.av-vf__rec::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--signal); }

/* Service card */
.av-service { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; transition: box-shadow .2s, border-color .2s, transform .2s; }
.av-service:hover { box-shadow: var(--shadow-md); border-color: var(--blue-200); transform: translateY(-2px); }
.av-service .av-art { border-radius: 0; }
.av-service__body { display: flex; flex-direction: column; flex: 1; padding: var(--space-5); }
.av-service__num { font: 400 13px/18px var(--font-mono); color: var(--ink-muted); }
.av-service h3 { margin: var(--space-2) 0 0; font: 500 26px/32px var(--font-display); color: var(--ink); }
.av-service p { margin: var(--space-3) 0 0; font: 400 15px/24px var(--font-text); color: var(--ink-muted); }
.av-service ul { margin: var(--space-4) 0 0; padding: 0; list-style: none; font: 400 15px/24px var(--font-text); }
.av-service li { display: flex; gap: var(--space-2); padding: 4px 0; }
.av-service li svg { flex: none; width: 18px; height: 18px; margin-top: 3px; color: var(--brand); }
.av-service__meta { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-4); margin-top: auto; padding-top: var(--space-5); border-top: 1px solid var(--border); }
.av-service__body > ul + .av-service__meta, .av-service__body > p + .av-service__meta { margin-top: var(--space-5); }
.av-service__price { font: 400 13px/18px var(--font-text); color: var(--ink-muted); }
.av-service__price b { display: block; font: 700 24px/28px var(--font-mono); color: var(--ink); }

/* Stats (facts in numbers) */
.av-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); margin: 0; padding: 0; list-style: none; }
.av-stats li { padding-top: var(--space-4); border-top: 2px solid var(--brand); }
.av-stats b { display: block; font: 700 32px/36px var(--font-mono); color: var(--ink); }
.av-stats span { display: block; margin-top: var(--space-2); font: 400 15px/24px var(--font-text); color: var(--ink-muted); }
@media (max-width: 900px) { .av-stats { grid-template-columns: repeat(2, 1fr); } }

/* Process steps */
.av-steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-6); margin: 0; padding: 0; list-style: none; counter-reset: step; }
.av-steps__path { position: absolute; left: 24px; right: 24px; top: 24px; height: 2px; background-image: linear-gradient(90deg, var(--blue-300) 50%, transparent 50%); background-size: 10px 2px; }
.av-steps li { position: relative; }
.av-steps__dot { position: relative; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--surface); border: 2px solid var(--brand); color: var(--brand); font: 700 16px/1 var(--font-mono); }
.av-steps li:last-child .av-steps__dot { background: var(--action); border-color: var(--action); color: var(--on-action); }
.av-steps h4 { margin: var(--space-4) 0 0; font: 500 20px/28px var(--font-display); }
.av-steps p { margin: var(--space-2) 0 0; font: 400 15px/24px var(--font-text); color: var(--ink-muted); }
@media (max-width: 900px) {
  .av-steps { grid-template-columns: 1fr; gap: var(--space-5); }
  .av-steps__path { left: 23px; right: auto; top: 24px; bottom: 24px; width: 2px; height: auto; background-image: linear-gradient(180deg, var(--blue-300) 50%, transparent 50%); background-size: 2px 10px; }
  .av-steps li { display: grid; grid-template-columns: 48px 1fr; column-gap: var(--space-4); }
  .av-steps h4 { margin-top: 10px; }
  .av-steps p { grid-column: 2; }
}

/* FAQ */
.av-faq { border-top: 1px solid var(--border); }
.av-faq details { border-bottom: 1px solid var(--border); }
.av-faq summary { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding: var(--space-5) 0; font: 500 20px/28px var(--font-display); color: var(--ink); cursor: pointer; list-style: none; }
.av-faq summary::-webkit-details-marker { display: none; }
.av-faq summary::after { content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--blue-50) no-repeat center / 14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%230376B6' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); transition: transform .2s; }
.av-faq details[open] summary::after { transform: rotate(45deg); }
.av-faq details > div { padding: 0 var(--space-8) var(--space-5) 0; color: var(--ink-muted); }
.av-faq details > div p { margin: 0; }

/* Form fields */
.av-field { display: flex; flex-direction: column; gap: 6px; }
.av-field label, .av-field legend { font: 500 15px/20px var(--font-text); color: var(--ink); }
.av-field__opt { font-weight: 400; color: var(--ink-muted); }
.av-input { width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface); font: 400 17px/24px var(--font-text); color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.av-input::placeholder { color: var(--ink-subtle); }
.av-input:hover { border-color: var(--slate-500); }
.av-input:focus { outline: none; border-color: var(--action); box-shadow: 0 0 0 3px var(--blue-100); }
textarea.av-input { min-height: 140px; resize: vertical; }
select.av-input { appearance: none; padding-right: 40px; background: var(--surface) no-repeat right 14px center / 14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 5l5 5 5-5' fill='none' stroke='%230B1A2E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.av-field__hint { font: 400 13px/18px var(--font-text); color: var(--ink-muted); }
.av-field.is-invalid .av-input { border-color: var(--danger); }
.av-field.is-invalid .av-input:focus { box-shadow: 0 0 0 3px var(--danger-tint); }
.av-field__error { display: flex; align-items: center; gap: 6px; font: 500 13px/18px var(--font-text); color: var(--danger); }
.av-field__error svg { width: 16px; height: 16px; flex: none; }
.av-check { display: grid; grid-template-columns: 22px 1fr; gap: var(--space-3); align-items: start; font: 400 15px/22px var(--font-text); color: var(--ink-muted); }
.av-check input { width: 22px; height: 22px; margin: 0; accent-color: var(--action); }
.av-check a { color: var(--link); }
.av-form { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
.av-form .is-wide { grid-column: 1 / -1; }
@media (max-width: 640px) { .av-form { grid-template-columns: 1fr; } }

/* Alert */
.av-alert { display: grid; grid-template-columns: 24px 1fr; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-radius: var(--radius-md); font: 400 15px/24px var(--font-text); color: var(--ink); }
.av-alert svg { width: 24px; height: 24px; }
.av-alert b { display: block; font-weight: 500; }
.av-alert--success { background: var(--success-tint); }
.av-alert--success svg, .av-alert--success b { color: var(--success); }
.av-alert--danger { background: var(--danger-tint); }
.av-alert--danger svg, .av-alert--danger b { color: var(--danger); }

/* Radar background */
.av-radar { position: absolute; pointer-events: none; }
.av-radar .ring { fill: none; stroke: var(--blue-200); stroke-width: 1; }
.av-radar .ray { stroke: var(--blue-100); stroke-width: 1; }
.av-radar .tick { stroke: var(--blue-200); stroke-width: 1; }
.av-radar .sweep { fill: var(--brand); opacity: .08; }
.av-radar .blip { fill: var(--brand); }
.av-radar .blip-sig { fill: var(--signal); }
.av-radar--inverse .ring { stroke: var(--blue-800); }
.av-radar--inverse .ray, .av-radar--inverse .tick { stroke: var(--blue-900); }
.av-radar--inverse .sweep { opacity: .14; }

/* CTA band */
.av-cta { position: relative; overflow: hidden; padding: var(--space-10) 0; background: var(--surface-inverse); color: var(--ink-inverse); }
.av-cta .av-radar { right: -160px; top: 50%; width: 720px; height: 720px; transform: translateY(-50%); }
.av-cta__inner { position: relative; max-width: 640px; }
.av-cta .av-overline { color: var(--brand); }
.av-cta h2 { margin: 0; font: 700 44px/50px var(--font-display); letter-spacing: -.015em; text-wrap: balance; }
.av-cta p { margin: var(--space-4) 0 var(--space-6); font: 400 20px/32px var(--font-text); color: var(--ink-inverse-muted); }
.av-cta__mail { display: inline-block; margin-left: var(--space-5); font: 400 16px/24px var(--font-mono); color: var(--ink-inverse-muted); }
@media (max-width: 640px) { .av-cta { padding: var(--space-8) 0; } .av-cta h2 { font-size: 32px; line-height: 38px; } .av-cta__mail { display: block; margin: var(--space-4) 0 0; } }

/* Footer */
.av-footer { padding: var(--space-8) 0 var(--space-6); background: var(--surface-inverse); color: var(--ink-inverse-muted); font: 400 15px/24px var(--font-text); border-top: 1px solid var(--blue-900); }
.av-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: var(--space-6); }
.av-footer__brand img { height: 28px; }
.av-footer__brand p { max-width: 300px; margin: var(--space-4) 0 0; }
.av-footer h4 { margin: 0 0 var(--space-3); font: 500 12px/16px var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-inverse); }
.av-footer ul { margin: 0; padding: 0; list-style: none; }
.av-footer li { padding: 3px 0; }
.av-footer a { color: var(--ink-inverse-muted); text-decoration: none; }
.av-footer a:hover { color: var(--ink-inverse); text-decoration: underline; text-underline-offset: 3px; }
.av-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--blue-900); font-size: 13px; }
.av-footer .av-lang { background: transparent; border-color: var(--blue-800); }
.av-footer .av-lang a { color: var(--ink-inverse-muted); }
.av-footer .av-lang a[aria-current="true"] { background: var(--blue-800); color: var(--ink-inverse); }
@media (max-width: 900px) { .av-footer__grid { grid-template-columns: 1fr 1fr; } .av-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 480px) { .av-footer__bottom { flex-direction: column; align-items: flex-start; } }

/* Article sidebar (blog) */
.av-sidebar { display: flex; flex-direction: column; gap: var(--space-5); width: 100%; max-width: var(--sidebar-width); }
.av-toc { padding: var(--space-5); border-radius: var(--radius-lg); background: var(--surface-tint); }
.av-toc h4, .av-sidebar__block h4 { margin: 0 0 var(--space-3); font: 500 12px/16px var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.av-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.av-toc li { counter-increment: toc; }
.av-toc a { display: grid; grid-template-columns: 24px 1fr; padding: 6px 10px; margin: 0 -10px; border-radius: var(--radius-sm); font: 400 15px/22px var(--font-text); color: var(--ink-muted); text-decoration: none; }
.av-toc a::before { content: counter(toc, decimal-leading-zero); font: 400 12px/22px var(--font-mono); color: var(--ink-muted); }
.av-toc a:hover { color: var(--ink); }
.av-toc a[aria-current="true"] { background: var(--blue-100); color: var(--blue-800); font-weight: 500; }
.av-tags { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.av-tags a { display: inline-block; padding: 4px 12px; border: 1px solid var(--border); border-radius: var(--radius-pill); font: 400 13px/18px var(--font-text); color: var(--ink-muted); text-decoration: none; }
.av-tags a:hover { border-color: var(--blue-200); color: var(--action); }
.av-sidecta { padding: var(--space-5); border: 1px solid var(--blue-200); border-radius: var(--radius-lg); background: var(--surface); }
.av-sidecta h4 { margin: 0; font: 500 20px/28px var(--font-display); color: var(--ink); text-transform: none; letter-spacing: 0; }
.av-sidecta p { margin: var(--space-2) 0 var(--space-4); font: 400 15px/24px var(--font-text); color: var(--ink-muted); }

/* Article navigation (sidebar, two levels) */
.av-artnav { padding: var(--space-5); border-radius: var(--radius-lg); background: var(--surface-tint); }
.av-artnav > h4 { margin: 0 0 var(--space-3); font: 500 12px/16px var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.av-artnav ul, .av-artnav ol { margin: 0; padding: 0; list-style: none; }
.av-artnav > ul > li + li { margin-top: 2px; }
.av-artnav__link, .av-artnav summary { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); padding: 8px 10px; margin: 0 -10px; border-radius: var(--radius-md); font: 500 15px/22px var(--font-text); color: var(--ink); text-decoration: none; cursor: pointer; }
.av-artnav summary { list-style: none; }
.av-artnav summary::-webkit-details-marker { display: none; }
.av-artnav summary svg { flex: none; width: 16px; height: 16px; margin-top: 3px; color: var(--ink-muted); transition: transform .15s; }
.av-artnav details[open] > summary svg { transform: rotate(180deg); }
.av-artnav__link:hover, .av-artnav summary:hover { background: var(--blue-50); color: var(--blue-800); }
.av-artnav__link[aria-current="page"], .av-artnav__group.is-current > summary { color: var(--blue-800); }
.av-artnav details > ol { margin: 4px 0 8px; padding-left: 12px; border-left: 1px solid var(--blue-200); }
.av-artnav details > ol a { display: grid; grid-template-columns: 26px 1fr; padding: 5px 10px; margin-left: 2px; border-radius: var(--radius-sm); font: 400 14px/20px var(--font-text); color: var(--ink-muted); text-decoration: none; }
.av-artnav details > ol a:hover { color: var(--ink); background: var(--blue-50); }
.av-artnav details > ol a[aria-current="true"] { background: var(--blue-100); color: var(--blue-800); font-weight: 500; }
.av-artnav__num { font: 400 12px/20px var(--font-mono); color: var(--ink-muted); }

/* Breadcrumbs */
.av-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 0; list-style: none; font: 400 14px/20px var(--font-text); color: var(--ink-muted); }
.av-crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--slate-400); }
.av-crumbs a { color: var(--ink-muted); text-decoration: none; }
.av-crumbs a:hover { color: var(--link); text-decoration: underline; text-underline-offset: 3px; }
.av-crumbs [aria-current] { color: var(--ink); }

/* Callout */
.av-callout { display: grid; grid-template-columns: 24px 1fr; gap: var(--space-3); margin: var(--space-6) 0; padding: var(--space-4) var(--space-5); border-radius: var(--radius-md); background: var(--surface-tint); font: 400 16px/26px var(--font-text); color: var(--ink); }
.av-callout__icon svg { width: 22px; height: 22px; margin-top: 2px; color: var(--brand); }
.av-callout b { display: block; font-weight: 500; }
.av-callout p { margin: 4px 0 0; }
.av-callout--tip { background: var(--green-50); }
.av-callout--tip .av-callout__icon svg { color: var(--success); }
.av-callout--warning { background: var(--orange-50); }
.av-callout--warning .av-callout__icon svg { color: var(--signal); }

/* Timeline */
.av-timeline { margin: 0; padding: 0; list-style: none; }
.av-timeline__step { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--space-5); }
.av-timeline__rail { position: relative; display: flex; justify-content: center; }
.av-timeline__rail::after { content: ""; position: absolute; top: 56px; bottom: -8px; left: 50%; width: 2px; margin-left: -1px; background-image: linear-gradient(180deg, var(--blue-300) 50%, transparent 50%); background-size: 2px 10px; }
.av-timeline__step.is-last .av-timeline__rail::after { display: none; }
.av-timeline__dot { position: relative; z-index: 1; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--surface); border: 2px solid var(--brand); color: var(--brand); font: 700 18px/1 var(--font-mono); }
.av-timeline__step.is-last .av-timeline__dot { background: var(--action); border-color: var(--action); color: var(--on-action); }
.av-timeline__card { margin-bottom: var(--space-6); padding: var(--space-5) var(--space-6); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.av-timeline__meta { display: inline-block; padding: 2px 10px; border-radius: var(--radius-pill); background: var(--blue-50); font: 400 13px/20px var(--font-mono); color: var(--blue-800); }
.av-timeline h3 { margin: var(--space-3) 0 0; font: 500 26px/32px var(--font-display); color: var(--ink); }
.av-timeline p { margin: var(--space-2) 0 0; font: 400 17px/28px var(--font-text); color: var(--ink-muted); }
.av-timeline ul { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: var(--space-4) 0 0; padding: 0; list-style: none; font: 400 15px/24px var(--font-text); }
.av-timeline li li, .av-timeline ul li { display: flex; gap: 8px; }
.av-timeline ul svg { flex: none; width: 18px; height: 18px; margin-top: 3px; color: var(--brand); }
@media (max-width: 640px) { .av-timeline__step { grid-template-columns: 44px minmax(0, 1fr); gap: var(--space-3); } .av-timeline__dot { width: 44px; height: 44px; font-size: 15px; } .av-timeline__rail::after { top: 44px; } .av-timeline__card { padding: var(--space-4); } .av-timeline h3 { font-size: 22px; line-height: 28px; } }

/* PriceBox */
.av-pricebox { display: flex; flex-direction: column; padding: var(--space-6); border: 1px solid var(--blue-200); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-md); }
.av-pricebox__label { font: 500 12px/16px var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.av-pricebox__price { margin-top: var(--space-2); font: 700 40px/44px var(--font-mono); color: var(--ink); }
.av-pricebox__note { margin-top: var(--space-1); font: 400 14px/20px var(--font-text); color: var(--ink-muted); }
.av-pricebox ul { margin: var(--space-5) 0 0; padding: var(--space-5) 0 0; border-top: 1px solid var(--border); list-style: none; font: 400 15px/24px var(--font-text); }
.av-pricebox li { display: flex; gap: 8px; padding: 4px 0; }
.av-pricebox li svg { flex: none; width: 18px; height: 18px; margin-top: 3px; color: var(--brand); }
.av-pricebox__btn { margin-top: var(--space-5); width: 100%; }
.av-pricebox__small { margin-top: var(--space-3); font: 400 13px/18px var(--font-text); color: var(--ink-muted); text-align: center; }

/* Prose (articles, legal pages) */
.av-prose { max-width: var(--content-width); font: 400 17px/28px var(--font-text); color: var(--ink); }
.av-prose > * + * { margin-top: var(--space-4); }
.av-prose h2 { margin: var(--space-8) 0 0; font: 700 28px/34px var(--font-display); letter-spacing: -.01em; scroll-margin-top: 88px; }
.av-prose h3 { margin: var(--space-6) 0 0; font: 500 20px/28px var(--font-display); }
.av-prose p, .av-prose ul, .av-prose ol { margin-bottom: 0; }
.av-prose ul, .av-prose ol { padding-left: 24px; }
.av-prose li + li { margin-top: 6px; }
.av-prose li::marker { color: var(--brand); }
.av-prose a { color: var(--link); text-underline-offset: 3px; }
.av-prose strong { font-weight: 500; }
.av-prose code, .av-prose .av-mono { font: 400 15px/24px var(--font-mono); }
.av-prose table { width: 100%; border-collapse: collapse; font: 400 15px/24px var(--font-text); }
.av-prose th { padding: 10px 12px; background: var(--surface-sunken); font-weight: 500; text-align: left; }
.av-prose td { padding: 10px 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
.av-prose td.num { font-family: var(--font-mono); white-space: nowrap; }
.av-prose figure { margin: var(--space-6) 0 0; }
.av-prose figcaption { margin-top: var(--space-2); font: 400 13px/18px var(--font-text); color: var(--ink-muted); }


/* Small-screen fixes */
.av-vf__readout span { white-space: nowrap; }
@media (max-width: 640px) {
  .av-vf__readout { left: 22px; right: 22px; bottom: 20px; gap: 6px; }
  .av-vf__readout span { padding: 2px 6px; font-size: 11px; line-height: 16px; }
  .av-vf__readout span:nth-child(3) { display: none; }
  .av-vf__rec { top: 22px; left: 22px; }
  .av-radar .blip, .av-radar .blip-sig { display: none; }
}
@media (max-width: 1023px) { .av-sidebar { max-width: none; } }

/* Mobile menu (burger panel) */
.av-mnav { display: none; }
@media (max-width: 1023px) {
  .av-header.is-menu-open .av-mnav { display: block; max-height: calc(100vh - 72px); overflow-y: auto; padding: var(--space-4) var(--space-4) var(--space-6); border-top: 1px solid var(--border); background: var(--surface); }
  .av-header.is-menu-open { background: var(--surface); box-shadow: var(--shadow-md); }
}
.av-mnav__list { margin: 0; padding: 0; list-style: none; }
.av-mnav__list > li { border-bottom: 1px solid var(--border); }
.av-mnav__link { display: block; padding: 14px 0; font: 500 18px/24px var(--font-text); color: var(--ink); text-decoration: none; }
.av-mnav__link[aria-current="page"] { color: var(--action); }
.av-mnav__group { padding: 14px 0 10px; }
.av-mnav__label { display: block; margin-bottom: 6px; font: 500 12px/16px var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.av-mnav__group ul { margin: 0; padding: 0; list-style: none; }
.av-mnav__group a { display: flex; align-items: center; gap: 12px; padding: 8px 0; font: 500 16px/22px var(--font-text); color: var(--ink); text-decoration: none; }
.av-mnav__group a[aria-current="page"] { color: var(--action); }
.av-mnav__group .av-dropdown__icon { width: 32px; height: 32px; }
.av-mnav__end { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin-top: var(--space-5); }
.av-mnav__cta { width: 100%; }

/* Announcement strip above the header */
.av-announce { background: var(--surface-inverse); color: var(--ink-inverse); }
.av-announce__inner { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 40px; padding-top: 8px; padding-bottom: 8px; }
.av-announce__icon { display: inline-grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--signal); color: var(--on-signal); }
.av-announce__icon svg { width: 14px; height: 14px; }
.av-announce p { margin: 0; font: 400 14px/20px var(--font-text); color: var(--ink-inverse); text-align: center; }
.av-announce a { color: var(--blue-300); font-weight: 500; text-underline-offset: 3px; white-space: nowrap; }
.av-announce a:hover { color: var(--ink-inverse); }
@media (max-width: 640px) { .av-announce__inner { justify-content: flex-start; align-items: flex-start; } .av-announce__icon { margin-top: -2px; } .av-announce p { text-align: left; font-size: 13px; line-height: 19px; } }

/* Cookie notice (necessary cookies only) */
.av-cookie { position: sticky; bottom: 16px; z-index: 40; display: flex; justify-content: center; padding: 0 var(--space-4); margin: 0 0 var(--space-5); pointer-events: none; }
.av-cookie__card { display: flex; align-items: center; gap: var(--space-4); width: 100%; max-width: 760px; padding: 12px 12px 12px 18px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-md); pointer-events: auto; }
.av-cookie__icon { display: inline-grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--blue-50); color: var(--brand); }
.av-cookie__icon svg { width: 20px; height: 20px; }
.av-cookie p { flex: 1; margin: 0; font: 400 15px/22px var(--font-text); color: var(--ink); }
.av-cookie a { color: var(--link); text-underline-offset: 3px; }
.av-cookie__ok { flex: none; min-width: 72px; }
@media (max-width: 640px) { .av-cookie__card { flex-wrap: wrap; padding: 14px; } .av-cookie p { flex-basis: calc(100% - 52px); font-size: 14px; line-height: 20px; } .av-cookie__ok { width: 100%; } }

/* Pilot portrait */
.av-pilot { display: block; overflow: hidden; border-radius: var(--radius-lg); }
.av-pilot--head { border-radius: 50%; }
.av-pilot svg{display:block;width:100%;height:auto}
.av-pilot .pl-bg{fill:var(--tint)}
.av-pilot .pl-grid path{stroke:var(--blue-100);stroke-width:1;fill:none}
.av-pilot .pl-ring circle{fill:none;stroke:var(--blue-200);stroke-width:1}
.av-pilot .pl-path{fill:none;stroke:var(--blue-300);stroke-width:2;stroke-dasharray:6 6}
.av-pilot .pl-line{fill:none;stroke:var(--navy);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.av-pilot .pl-rotor{fill:var(--blue-100);stroke:var(--navy);stroke-width:2}
.av-pilot .pl-drone{fill:var(--brand);stroke:var(--navy);stroke-width:2}
.av-pilot .pl-jacket{fill:var(--blue-800);stroke:var(--navy);stroke-width:3;stroke-linejoin:round}
.av-pilot .pl-shirt{fill:var(--white);stroke:var(--navy);stroke-width:2.5;stroke-linejoin:round}
.av-pilot .pl-collar{fill:var(--blue-900);stroke:var(--navy);stroke-width:2.5;stroke-linejoin:round}
.av-pilot .pl-skin{fill:var(--white);stroke:var(--navy);stroke-width:3;stroke-linejoin:round}
.av-pilot .pl-stubble{fill:url(#pl-stub)}
.av-pilot .pl-dot{fill:var(--slate-400);opacity:.75}
.av-pilot .pl-cap{fill:var(--brand);stroke:var(--navy);stroke-width:3;stroke-linejoin:round}
.av-pilot .pl-capline{fill:none;stroke:var(--blue-700);stroke-width:2;stroke-linecap:round}
.av-pilot .pl-capbtn{fill:var(--blue-700);stroke:var(--navy);stroke-width:2}
.av-pilot .pl-patch{fill:var(--white);stroke:var(--navy);stroke-width:2}
.av-pilot .pl-patchmark{fill:none;stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.av-pilot .pl-brim{fill:var(--blue-700);stroke:var(--navy);stroke-width:3;stroke-linejoin:round}
.av-pilot .pl-temple{fill:none;stroke:var(--navy);stroke-width:3;stroke-linecap:round}
.av-pilot .pl-lens{fill:var(--navy);stroke:var(--slate-500);stroke-width:2.5;stroke-linejoin:round}
.av-pilot .pl-shine{fill:none;stroke:var(--blue-300);stroke-width:2.5;stroke-linecap:round;opacity:.8}
.av-pilot .pl-mouth{fill:none;stroke:var(--navy);stroke-width:3;stroke-linecap:round}
.av-pilot .pl-antenna{fill:none;stroke:var(--slate-500);stroke-width:7;stroke-linecap:round}
.av-pilot .pl-screen{fill:var(--navy)}
.av-pilot .pl-screen-in{fill:var(--blue-200)}
.av-pilot .pl-screen-roof{fill:var(--white);stroke:var(--navy);stroke-width:1.5;stroke-linejoin:round}
.av-pilot .pl-ctrl{fill:var(--slate-600);stroke:var(--navy);stroke-width:3}
.av-pilot .pl-stick{fill:var(--slate-300);stroke:var(--navy);stroke-width:2}
.av-pilot .pl-stickdot{fill:var(--navy)}
.av-pilot .pl-mark{fill:var(--white)}
.av-pilot .pl-thin{stroke-width:1.75;opacity:.6}
.av-pilot .pl-sleeve{fill:var(--blue-800);stroke:var(--navy);stroke-width:3;stroke-linejoin:round}

/* Tech page illustrations (404, maintenance) */
.av-techart{display:block}
.av-techart svg{display:block;width:100%;height:auto}
.av-techart .ls-grid path{stroke:var(--blue-100);stroke-width:1;fill:none}
.av-techart .ls-num{font:700 220px/1 var(--font-display);fill:var(--navy)}
.av-techart .ls-scope{fill:var(--surface);stroke:var(--navy);stroke-width:14}
.av-techart .ls-ring{fill:none;stroke:var(--blue-200);stroke-width:1.5}
.av-techart .ls-cross{stroke:var(--blue-200);stroke-width:1.5}
.av-techart .ls-sweep{fill:var(--brand);opacity:.14}
.av-techart .ls-center{fill:var(--brand)}
.av-techart .ls-q{font:700 30px/1 var(--font-mono);fill:var(--signal)}
.av-techart .ls-path{fill:none;stroke:var(--blue-300);stroke-width:2.5;stroke-dasharray:7 7;stroke-linecap:round}
.av-techart .ls-line{fill:none;stroke:var(--navy);stroke-width:2.5;stroke-linecap:round}
.av-techart .ls-rotor{fill:var(--blue-100);stroke:var(--navy);stroke-width:2}
.av-techart .ls-drone{fill:var(--brand);stroke:var(--navy);stroke-width:2.5}
.av-techart .ls-pill{fill:var(--signal)}
.av-techart .ls-pilltext{font:700 11px/1 var(--font-mono);fill:var(--on-signal);letter-spacing:.04em}
.av-techart .ls-readbg{fill:var(--navy)}
.av-techart .ls-read{font:400 12px/1 var(--font-mono);fill:var(--ink-inverse);letter-spacing:.03em}
.av-techart .pf-bench{fill:var(--slate-200);stroke:var(--navy);stroke-width:2.5}
.av-techart .pf-arm{stroke:var(--navy);stroke-width:6;stroke-linecap:round}
.av-techart .pf-cam{fill:var(--navy)}
.av-techart .pf-motor{fill:var(--slate-500);stroke:var(--navy);stroke-width:2}
.av-techart .pf-wrench{fill:var(--slate-300);stroke:var(--navy);stroke-width:2.5;stroke-linejoin:round}
.av-techart .pf-batt{fill:var(--surface);stroke:var(--navy);stroke-width:2.5}
.av-techart .pf-battcap{fill:var(--navy)}
.av-techart .pf-cell{fill:var(--brand)}
.av-techart .pf-cell--blink{fill:var(--blue-200)}
.av-techart .pf-card{fill:var(--surface);stroke:var(--border);stroke-width:1.5}
.av-techart .pf-title{font:700 12px/1 var(--font-mono);fill:var(--ink);letter-spacing:.06em}
.av-techart .pf-rule{stroke:var(--border);stroke-width:1.5}
.av-techart .pf-box{fill:var(--surface);stroke:var(--slate-400);stroke-width:1.5}
.av-techart .pf-box--ok{fill:var(--brand);stroke:var(--brand)}
.av-techart .pf-tick{fill:none;stroke:var(--white);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.av-techart .pf-item{font:400 14px/1 var(--font-text);fill:var(--ink)}
.av-techart .pf-pct{font:700 13px/1 var(--font-mono);fill:var(--action)}
.av-techart .pf-bar{fill:var(--blue-50);stroke:var(--blue-200);stroke-width:1}
.av-techart .pf-barfill{fill:var(--signal)}
.av-techart .pf-leg{fill:none;stroke:var(--navy);stroke-width:4;stroke-linecap:round}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
