/* =====================================================================
   Most Energy — A3 design
   Consolidated from the prototype inline styles (external/source/*.dc.html).
   Breakpoints mirror the prototype JS switches:
     desk  >= 860px   (sticky / pinned effects on, desktop hero)
     wide  >= 1080px  (full nav; below it the burger menu)
     pin   >= 1080px wide AND >= 700px tall (homepage balancing timeline)
   Values using var(--p) are driven by js/a3/scroll-fx.js on [data-progress].
   ===================================================================== */

/* ---------- Fonts (self-hosted, latin + cyrillic; preloaded in components/head.html) ----------
   Onest and IBM Plex Mono, SIL Open Font License 1.1 — see static/fonts/a3/OFL-*.txt */
/* IBM Plex Mono 400 — cyrillic */
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/a3/ibm-plex-mono-400-cyrillic.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* IBM Plex Mono 400 — latin */
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/a3/ibm-plex-mono-400-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* IBM Plex Mono 500 — cyrillic */
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(../fonts/a3/ibm-plex-mono-500-cyrillic.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* IBM Plex Mono 500 — latin */
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(../fonts/a3/ibm-plex-mono-500-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Onest 300 600 — cyrillic */
@font-face {
    font-family: 'Onest';
    font-style: normal;
    font-weight: 300 600;
    font-display: swap;
    src: url(../fonts/a3/onest-cyrillic.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Onest 300 600 — latin */
@font-face {
    font-family: 'Onest';
    font-style: normal;
    font-weight: 300 600;
    font-display: swap;
    src: url(../fonts/a3/onest-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    --a3-red: #A02B2D;
    --a3-red-hover: #861F21;
    --a3-gold: #B68936;
    --a3-gold-light: #E9C98A;
    --a3-ink: #1E2022;
    --a3-ink-deep: #0E0F10;
    --a3-body: #56595C;
    --a3-rich: #3E4244;
    --a3-muted: #95989A;
    --a3-line: #E4E2DD;
    --a3-line-mid: #DDDAD4;
    --a3-line-strong: #C9C6BF;
    --a3-border: #D6D4CF;
    --a3-bg-alt: #F5F4F1;
    --a3-placeholder: #F0EEEA;
    --a3-row-hover: #FAF9F7;
    --a3-green: #3E7A4E;
    --a3-chip-bg: #F4EBDA;
    --a3-chip-ink: #7A5A1E;
    --a3-rail: 1320px;
    --a3-pad: 32px;
    --a3-sans: 'Onest', system-ui, sans-serif;
    --a3-mono: 'IBM Plex Mono', monospace;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: #fff;
    font-family: var(--a3-sans);
    color: var(--a3-body);
    -webkit-font-smoothing: antialiased;
}
a { color: var(--a3-red); text-decoration: none; transition: color .3s, background-color .3s, border-color .3s, box-shadow .3s; }
a:hover { color: var(--a3-ink); }
::selection { background: var(--a3-red); color: #fff; }
input, textarea, select, button { font: inherit; border-radius: 0; }
img { max-width: 100%; }
[hidden] { display: none !important; }

.a3-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: clip;
    background: #fff;
}
.a3-main { flex: 1; }

/* ---------- Intro + parallax start state (CSS, so the first paint is already final) ----------
   [data-intro="ms"] fades/blurs in once, from the moment the element is painted — no JS, so nothing
   flashes when the deferred scripts run late on long pages. The delays below cover every value the
   templates use (0, 80, 220, 320, 900 and the hero words 100 + i*80). */
@keyframes a3-intro {
    from { opacity: 0; transform: translateY(.35em); filter: blur(14px); }
}
[data-intro] { animation: a3-intro 1.1s cubic-bezier(.2, .7, .2, 1) backwards; }
[data-intro="80"] { animation-delay: 80ms; }
[data-intro="100"] { animation-delay: 100ms; }
[data-intro="180"] { animation-delay: 180ms; }
[data-intro="220"] { animation-delay: 220ms; }
[data-intro="260"] { animation-delay: 260ms; }
[data-intro="320"] { animation-delay: 320ms; }
[data-intro="340"] { animation-delay: 340ms; }
[data-intro="420"] { animation-delay: 420ms; }
[data-intro="500"] { animation-delay: 500ms; }
[data-intro="580"] { animation-delay: 580ms; }
[data-intro="660"] { animation-delay: 660ms; }
[data-intro="740"] { animation-delay: 740ms; }
[data-intro="820"] { animation-delay: 820ms; }
[data-intro="900"] { animation-delay: 900ms; }
/* scroll-fx.js sets translate3d(…) scale(1.12) on scroll; start from the same scale so it doesn't jump. */
[data-parallax] { transform: scale(1.12); }

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

/* ---------- Layout primitives ---------- */
.a3-rail { max-width: var(--a3-rail); margin: 0 auto; padding-left: var(--a3-pad); padding-right: var(--a3-pad); }
.a3-section { max-width: var(--a3-rail); margin: 0 auto; padding: 120px var(--a3-pad); }

/* ---------- Typography primitives ---------- */
.a3-kicker {
    margin: 0 0 20px;
    font: 500 12px/1 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--a3-red);
}
.a3-kicker--gold { color: var(--a3-gold-light); }
.a3-kicker--tight { margin-bottom: 16px; }

.a3-h2 {
    margin: 0;
    font-weight: 500;
    font-size: clamp(34px, 3.6vw, 52px);
    line-height: 1.08;
    letter-spacing: -.03em;
    color: var(--a3-ink);
}
.a3-h2--balance { text-wrap: balance; }
.a3-h2--light { color: #fff; }

.a3-num { font: 500 12px/1 var(--a3-mono); color: var(--a3-muted); }
.a3-meta { font: 400 12px/1 var(--a3-mono); color: var(--a3-muted); }

.a3-more {
    font-size: 14px;
    font-weight: 500;
    color: var(--a3-red);
    display: flex;
    gap: 8px;
    align-items: center;
}
.a3-more i { font-size: 12px; }

.a3-link-arrow { font-weight: 500; display: inline-flex; gap: 8px; align-items: center; }
.a3-link-arrow i { font-size: 12px; }

/* Rich text from CKEditor */
.a3-rich > :first-child { margin-top: 0; }
.a3-rich > :last-child { margin-bottom: 0; }
.a3-rich img { height: auto; }
.a3-rich table { border-collapse: collapse; width: 100%; margin: 1.5em 0; font-size: .92em; }
.a3-rich th, .a3-rich td { border: 1px solid var(--a3-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.a3-rich th { background: var(--a3-bg-alt); color: var(--a3-ink); font-weight: 500; }
.a3-rich h2, .a3-rich h3 { color: var(--a3-ink); font-weight: 500; letter-spacing: -.02em; line-height: 1.2; }
.a3-rich blockquote { margin: 1.5em 0; padding-left: 20px; border-left: 2px solid var(--a3-gold); }

/* ---------- Buttons ---------- */
.a3-btn {
    display: inline-flex;
    gap: 12px;
    align-items: center;
    padding: 16px 24px;
    border: 0;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .3s, color .3s, border-color .3s;
}
.a3-btn i { font-size: 13px; }
.a3-btn--red { background: var(--a3-red); color: #fff; }
.a3-btn--red:hover { background: var(--a3-red-hover); color: #fff; }
.a3-btn--ink { background: var(--a3-ink); color: #fff; }
.a3-btn--ink:hover { background: var(--a3-red); color: #fff; }
.a3-btn--outline { border: 1px solid var(--a3-ink); color: var(--a3-ink); background: transparent; }
.a3-btn--outline:hover { background: var(--a3-ink); color: #fff; }
.a3-btn--ghost { border: 1px solid var(--a3-border); color: var(--a3-ink); background: transparent; }
.a3-btn--ghost:hover { border-color: var(--a3-ink); color: var(--a3-ink); }

/* Small, CMS-style buttons (44px) */
.a3-sbtn {
    height: 44px;
    padding: 0 18px;
    border: 1px solid var(--a3-border);
    background: #fff;
    color: var(--a3-ink);
    cursor: pointer;
    display: inline-flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    transition: background-color .3s, color .3s, border-color .3s;
}
.a3-sbtn:hover { border-color: var(--a3-ink); color: var(--a3-ink); }
.a3-sbtn--primary { border: 0; background: var(--a3-red); color: #fff; font-weight: 500; }
.a3-sbtn--primary:hover { background: var(--a3-red-hover); color: #fff; }
.a3-sbtn[disabled] { opacity: .5; cursor: default; }

.a3-textbtn {
    border: 0;
    background: none;
    padding: 0;
    font-weight: 500;
    font-size: 15px;
    color: var(--a3-red);
    cursor: pointer;
    display: inline-flex;
    gap: 8px;
    align-items: center;
    transition: color .3s;
}
.a3-textbtn:hover { color: var(--a3-ink); }

/* ---------- Media: image64 + multiply overlay ---------- */
.a3-media { position: relative; overflow: hidden; background: var(--a3-placeholder); }
.a3-cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; }
.a3-multiply {
    position: absolute;
    inset: 0;
    background: url(../images/a3/1920x1212a.png) center/cover;
    mix-blend-mode: multiply;
    opacity: .45;
    pointer-events: none;
}

/* ---------- Forms (shared) ---------- */
.a3-field {
    display: grid;
    gap: 8px;
    font: 500 12px/1 var(--a3-mono);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--a3-ink);
}
.a3-input {
    width: 100%;
    height: 52px;
    padding: 0 16px;
    border: 1px solid var(--a3-line-strong);
    border-radius: 0;
    background: #fff;
    color: var(--a3-ink);
    font: 400 16px/1.4 var(--a3-sans);
    letter-spacing: 0;
    text-transform: none;
    outline: none;
    transition: border-color .3s;
}
.a3-input:focus { border-color: var(--a3-gold); }
textarea.a3-input { height: auto; padding: 14px 16px; line-height: 1.5; resize: vertical; }
select.a3-input { padding: 0 12px; }
.a3-input.is-invalid { border-color: var(--a3-red); }
.a3-field__error {
    font: 400 13px/1.3 var(--a3-sans);
    letter-spacing: 0;
    text-transform: none;
    color: var(--a3-red);
    display: flex;
    gap: 6px;
    align-items: center;
}

/* =====================================================================
   Header / navbar
   ===================================================================== */
.a3-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 50;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 1px 0 rgba(0, 0, 0, .08);
}
.a3-stripe { height: 7px; background: url(../images/a3/background12.png) center/100% 100% no-repeat; }
.a3-stripe--footer { height: 16px; }
.a3-stripe--thin { height: 5px; }

.a3-header__bar {
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: 18px var(--a3-pad);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}
.a3-header__logo { display: flex; }
.a3-header__logo img { height: 60px; display: block; }

.a3-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 15px;
    font-weight: 500;
    white-space: nowrap;
}
.a3-nav__link { color: var(--a3-ink); padding: 8px 10px; box-shadow: inset 0 -2px 0 transparent; }
.a3-nav__link:hover { color: var(--a3-red); }
.a3-nav__link.is-active { color: var(--a3-red); box-shadow: inset 0 -2px 0 var(--a3-red); }

.a3-lang { display: flex; gap: 2px; padding: 0 10px; font: 500 12px/1 var(--a3-mono); }
.a3-lang__opt { padding: 8px 4px; color: var(--a3-muted); }
.a3-lang__opt:hover { color: var(--a3-ink); }
.a3-lang__opt.is-current { color: var(--a3-ink); }
.a3-lang__sep { color: var(--a3-line-strong); padding: 8px 0; }

.a3-account {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-left: 14px;
    border-left: 1px solid var(--a3-line);
    font: 500 12px/1 var(--a3-mono);
    color: var(--a3-ink);
}
.a3-account > i { color: var(--a3-muted); }
.a3-account form { margin: 0; display: flex; }
.a3-account__chip {
    font: 500 10px/1 var(--a3-mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 5px 7px;
    background: var(--a3-chip-bg);
    color: var(--a3-chip-ink);
}
.a3-logout {
    border: 0;
    background: none;
    padding: 8px 4px;
    font: inherit;
    color: var(--a3-muted);
    cursor: pointer;
    transition: color .3s;
}
.a3-logout:hover { color: var(--a3-red); }

.a3-header__cta { padding: 12px 20px; background: var(--a3-red); color: #fff; font-weight: 500; }
.a3-header__cta:hover { background: var(--a3-red-hover); color: #fff; }

.a3-header__compact { display: none; gap: 8px; align-items: center; }
.a3-iconbtn {
    height: 44px;
    min-width: 44px;
    padding: 0 12px;
    border: 1px solid var(--a3-border);
    background: #fff;
    color: var(--a3-ink);
    font: 500 12px/1 var(--a3-mono);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.a3-iconbtn:hover { color: var(--a3-ink); border-color: var(--a3-ink); }
.a3-iconbtn--burger { width: 44px; padding: 0; font-size: 18px; }

.a3-mobile-menu {
    display: none;
    background: #fff;
    border-top: 1px solid var(--a3-line);
    padding: 8px var(--a3-pad) 24px;
    flex-direction: column;
    font-size: 20px;
    font-weight: 500;
    max-height: calc(100vh - 88px);
    overflow-y: auto;
}
.a3-header.is-open .a3-mobile-menu { display: flex; }
.a3-mobile-menu__link { padding: 14px 0; border-bottom: 1px solid var(--a3-line); color: var(--a3-ink); }
.a3-mobile-menu__link.is-active { color: var(--a3-red); }
.a3-mobile-menu__account {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 0 0;
    font: 500 13px/1 var(--a3-mono);
    color: var(--a3-ink);
}
.a3-mobile-menu__account > span { display: flex; gap: 10px; align-items: center; }
.a3-mobile-menu__account > span > i { color: var(--a3-muted); }
.a3-mobile-menu__account form { margin: 0; }
.a3-mobile-menu__account .a3-logout { color: var(--a3-red); padding: 12px 0; }
.a3-mobile-menu__cta { margin-top: 20px; padding: 16px 20px; background: var(--a3-red); color: #fff; text-align: center; }
.a3-mobile-menu__cta:hover { background: var(--a3-red-hover); color: #fff; }

@media (max-width: 1079.98px) {
    .a3-header .a3-nav { display: none; }
    .a3-header__compact { display: flex; }
}
@media (min-width: 1080px) {
    .a3-header.is-open .a3-mobile-menu { display: none; }
}

/* =====================================================================
   Footer, go-to-top, contact band
   ===================================================================== */
.a3-footer { background: #C9C9C9 url(../images/a3/1920x1212a.png) center/cover; }
.a3-footer__bar {
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: 44px var(--a3-pad);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    font-size: 14px;
    color: var(--a3-ink);
}
.a3-footer__logo { height: 48px; display: block; }
.a3-footer__nav { display: flex; gap: 24px; flex-wrap: wrap; }
.a3-footer__nav a, .a3-footer__copy a { color: var(--a3-ink); }
.a3-footer__nav a:hover, .a3-footer__copy a:hover { color: var(--a3-red); }
.a3-footer__copy { color: var(--a3-ink); }

.a3-totop {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 60;
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 0;
    background: var(--a3-ink);
    color: #fff;
    font-size: 16px;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity .4s, transform .4s, background .3s, color .3s;
}
.a3-totop.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.a3-totop:hover { background: var(--a3-gold); color: var(--a3-ink); }

.a3-band { background: var(--a3-bg-alt); }
.a3-band__inner {
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: 96px var(--a3-pad);
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 40px;
    flex-wrap: wrap;
}
.a3-band__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* =====================================================================
   Homepage
   ===================================================================== */

/* ---------- Pinned hero (desk >= 860) ---------- */
.a3-hero { height: calc(var(--vh, 100vh) * 3); position: relative; }
.a3-hero__stage {
    position: sticky;
    top: 0;
    height: calc(var(--vh, 100vh) * 1);
    min-height: 620px;
    overflow: hidden;
    background: #fff;
    --q: clamp(0, calc((var(--p, 0) - .12) * 1.6), 1);
    --h: clamp(0, calc((var(--p, 0) - .5) * 2.8), 1);
}
.a3-hero__clip {
    position: absolute;
    inset: 0;
    clip-path: inset(calc(var(--q) * 50%) calc(var(--q) * 40%) calc(var(--q) * 4%) calc(var(--q) * 4%));
}
.a3-hero__zoom { position: absolute; inset: 0; transform: scale(calc(1.12 - var(--q) * .12)); }
.a3-hero__shade {
    position: absolute;
    inset: 0;
    background: var(--a3-ink-deep);
    opacity: calc(.5 - var(--q) * .5);
    pointer-events: none;
}
.a3-hero__title-wrap {
    position: absolute;
    left: 4%;
    right: 4%;
    bottom: 12%;
    pointer-events: none;
    opacity: calc(1 - var(--q) * 2.6);
}
.a3-hero__kicker {
    margin: 0 0 28px;
    font: 500 12px/1 var(--a3-mono);
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #fff;
    display: flex;
    gap: 12px;
    align-items: center;
}
.a3-hero__kicker-rule { width: 28px; height: 1px; background: var(--a3-gold); flex: none; }
.a3-hero__h1 {
    margin: 0;
    font-weight: 500;
    font-size: clamp(52px, 7.4vw, 128px);
    line-height: 1.02;
    letter-spacing: -.04em;
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    column-gap: .24em;
    max-width: 1300px;
}
.a3-hero--bg .a3-hero__h1 { font-size: clamp(44px, 6.2vw, 108px); }
.a3-hero__lift { display: inline-block; transform: translateY(calc(var(--q) * var(--lift, 0px))); }
.a3-hero__w { display: inline-block; color: #fff; }
.a3-hero__w.is-accent { color: var(--a3-gold-light); }
.a3-hero__scroll {
    position: absolute;
    right: 4%;
    bottom: 5%;
    display: flex;
    gap: 12px;
    align-items: center;
    font: 500 11px/1 var(--a3-mono);
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #fff;
    opacity: calc(1 - var(--q) * 5);
    pointer-events: none;
}
.a3-hero__h2-wrap { position: absolute; left: 4%; top: max(104px, 15%); width: 54%; pointer-events: none; }
.a3-hero__h2 {
    margin: 0;
    font-weight: 500;
    font-size: clamp(36px, 4.4vw, 68px);
    line-height: 1.04;
    letter-spacing: -.035em;
    color: var(--a3-ink);
    display: flex;
    flex-wrap: wrap;
    column-gap: .24em;
}
.a3-hero--bg .a3-hero__h2 { font-size: clamp(32px, 3.7vw, 58px); }
.a3-hero__w2 {
    --x: clamp(0, calc(var(--h) * 4 - var(--off, 0)), 1);
    opacity: var(--x);
    transform: translateY(calc((1 - var(--x)) * .5em));
    display: inline-block;
    color: var(--a3-ink);
}
.a3-hero__w2.is-accent { color: var(--a3-red); }
.a3-hero__aside {
    position: absolute;
    right: 4%;
    top: max(112px, 17%);
    width: 32%;
    max-width: 440px;
    opacity: clamp(0, calc(var(--h) * 2 - .8), 1);
    transform: translateY(calc((1 - var(--h)) * 30px));
}
.a3-hero__lead {
    margin: 0 0 28px;
    font-size: clamp(16px, 1.3vw, 19px);
    line-height: 1.55;
    color: var(--a3-body);
    text-wrap: pretty;
}
.a3-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.a3-hero__img2 {
    position: absolute;
    left: 61.5%;
    right: 4%;
    top: 50%;
    bottom: 28.5%;
    overflow: hidden;
    background: var(--a3-placeholder);
    opacity: var(--q);
    transform: translateX(calc((1 - var(--q)) * 60vw));
}
.a3-hero__tile {
    position: absolute;
    left: 61.5%;
    right: 4%;
    top: 73.5%;
    bottom: 4%;
    background: var(--a3-red);
    color: #fff;
    padding: clamp(16px, 1.6vw, 26px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    opacity: var(--q);
    transform: translateX(calc((1 - var(--q)) * 70vw));
}
.a3-hero__tile:hover { background: var(--a3-red-hover); color: #fff; }
.a3-hero__tile-k { font: 500 11px/1 var(--a3-mono); letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
.a3-hero__tile-t {
    font-size: clamp(17px, 1.5vw, 24px);
    line-height: 1.25;
    font-weight: 500;
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 16px;
}
.a3-hero__tile-t i { font-size: 15px; }

/* ---------- Mobile hero (< 860) ---------- */
.a3-hero-m { padding: 120px 24px 48px; }
.a3-hero-m__kicker {
    margin: 0 0 20px;
    font: 500 11px/1.4 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--a3-red);
}
.a3-hero-m__h1 {
    margin: 0 0 24px;
    font-weight: 500;
    font-size: clamp(36px, 9.4vw, 54px);
    line-height: 1.04;
    letter-spacing: -.035em;
    color: var(--a3-ink);
    display: flex;
    flex-wrap: wrap;
    column-gap: .24em;
}
.a3-hero-m__h1 > span { display: inline-block; color: var(--a3-ink); }
.a3-hero-m__h1 > span.is-accent { color: var(--a3-red); }
.a3-hero-m__lead { margin: 0 0 28px; font-size: 17px; line-height: 1.55; }
.a3-hero-m__media { margin-top: 40px; display: grid; gap: 10px; }
.a3-hero-m__img { height: 56vw; }
.a3-hero-m__tile {
    background: var(--a3-red);
    color: #fff;
    padding: 20px;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 500;
    display: flex;
    justify-content: space-between;
    gap: 12px;
}
.a3-hero-m__tile:hover { background: var(--a3-red-hover); color: #fff; }

.a3-hero-m { display: none; }
@media (max-width: 859.98px) {
    .a3-hero { display: none; }
    .a3-hero-m { display: block; }
}

/* ---------- Services (home) ---------- */
.a3-split {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: 64px;
    align-items: start;
}
.a3-split__intro { position: sticky; top: 120px; }
.a3-split__intro .a3-h2 { margin-bottom: 24px; text-wrap: balance; }
.a3-intro-p { margin: 0 0 32px; max-width: 420px; font-size: 17px; line-height: 1.6; }

.a3-svc-list { display: flex; flex-direction: column; border-bottom: 1px solid var(--a3-line); }
.a3-svc-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 200px);
    gap: 28px;
    padding: 36px 0;
    border-top: 1px solid var(--a3-line);
    color: inherit;
}
.a3-svc-row:hover { color: inherit; }
.a3-svc-row h3 {
    margin: 14px 0 12px;
    font-weight: 500;
    font-size: 26px;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: var(--a3-ink);
}
.a3-svc-row p { margin: 0 0 18px; font-size: 16px; line-height: 1.6; text-wrap: pretty; }
.a3-svc-row__img { height: 180px; }

/* ---------- Balancing: pinned timeline (wide + tall) ---------- */
.a3-bal { height: calc(var(--vh, 100vh) * 3.2); position: relative; background: var(--a3-bg-alt); }
.a3-bal__stage {
    position: sticky;
    top: 0;
    height: calc(var(--vh, 100vh) * 1);
    min-height: 620px;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}
.a3-bal__visual { position: relative; overflow: hidden; background: var(--a3-ink); }
.a3-bal__img {
    position: absolute;
    inset: 0;
    opacity: clamp(0, calc((var(--p, 0) - var(--in, 0)) * 12), 1);
    transform: scale(calc(1.14 - clamp(0, calc((var(--p, 0) - var(--in, 0)) * 2.4), 1) * .14));
}
.a3-bal__shade { position: absolute; inset: 0; background: rgba(14, 15, 16, .5); pointer-events: none; }
.a3-bal__captions {
    position: absolute;
    left: clamp(24px, 3vw, 48px);
    right: clamp(24px, 3vw, 48px);
    bottom: clamp(32px, 6vh, 64px);
    height: 220px;
    color: #fff;
    pointer-events: none;
}
.a3-bal__caption {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 16px;
    transition: opacity .5s, transform .6s;
}
.a3-bal__big { font: 400 clamp(72px, 8vw, 128px)/.85 var(--a3-sans); letter-spacing: -.05em; }
.a3-bal__cap-t { font-size: clamp(20px, 1.8vw, 26px); line-height: 1.25; font-weight: 500; max-width: 380px; }
.a3-bal__content {
    padding: clamp(96px, 13vh, 132px) clamp(28px, 4vw, 72px) clamp(24px, 4vh, 48px);
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 3.4vh, 36px);
    min-width: 0;
}
.a3-bal__h2 {
    margin: 0 0 14px;
    font-weight: 500;
    font-size: clamp(30px, 3.2vw, 48px);
    line-height: 1.06;
    letter-spacing: -.03em;
    color: var(--a3-ink);
}
.a3-bal__p { margin: 0; font-size: 16px; line-height: 1.55; max-width: 540px; text-wrap: pretty; }
.a3-bal__all { margin-top: auto; }

.a3-timeline { display: flex; flex-direction: column; max-width: 620px; }
.a3-tl {
    --on: clamp(0, calc((var(--p, 0) - var(--at, 0)) * 16), 1);
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 24px;
    color: inherit;
}
.a3-tl:hover { color: inherit; }
.a3-tl__rail { position: relative; display: flex; justify-content: center; }
.a3-tl__dot {
    position: relative;
    z-index: 1;
    margin-top: 6px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--a3-line-strong);
}
.a3-tl__dot::after {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    background: var(--a3-gold);
    opacity: var(--on);
    box-shadow: 0 0 0 calc(var(--on) * 6px) rgba(182, 137, 54, .18);
}
.a3-tl__line { position: absolute; top: 24px; bottom: -6px; left: 8px; width: 2px; background: #DDDAD3; }
.a3-tl__line::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--a3-gold);
    transform-origin: top;
    transform: scaleY(clamp(0, calc((var(--p, 0) - var(--a0, 0)) * var(--k, 1)), 1));
}
.a3-tl__body { padding: 0 0 clamp(20px, 3.6vh, 36px); opacity: calc(.38 + var(--on) * .62); }
.a3-tl__body h3 {
    margin: 10px 0 8px;
    font-weight: 500;
    font-size: clamp(20px, 1.8vw, 26px);
    line-height: 1.2;
    letter-spacing: -.02em;
    color: var(--a3-ink);
}
.a3-tl__body p { margin: 0 0 10px; font-size: 16px; line-height: 1.5; text-wrap: pretty; }

/* ---------- Balancing: flat list (narrow or short screens) ---------- */
.a3-bal-flat { background: var(--a3-bg-alt); padding: 80px 24px; }
.a3-bal-flat__inner { max-width: var(--a3-rail); margin: 0 auto; }
.a3-bal-flat__h2 {
    margin: 0 0 12px;
    font-weight: 500;
    font-size: 34px;
    line-height: 1.06;
    letter-spacing: -.03em;
    color: var(--a3-ink);
}
.a3-bal-flat__p { margin: 0 0 32px; font-size: 16px; line-height: 1.55; }
.a3-bal-flat__list { display: grid; gap: 32px; }
.a3-bal-flat__item { display: grid; gap: 16px; color: inherit; }
.a3-bal-flat__item:hover { color: inherit; }
.a3-bal-flat__img { height: 52vw; max-height: 480px; }
.a3-bal-flat__item h3 { margin: 8px 0 6px; font-weight: 500; font-size: 22px; color: var(--a3-ink); }
.a3-bal-flat__item p { margin: 0; font-size: 16px; line-height: 1.5; }
.a3-bal-flat__all { margin-top: 32px; }

.a3-bal { display: none; }
@media (min-width: 1080px) and (min-height: 700px) {
    .a3-bal { display: block; }
    .a3-bal-flat { display: none; }
}
.a3-bal-flat.a3-bal-flat--always { display: block; }
.a3-bal-admin { background: var(--a3-bg-alt); padding-top: 24px; }
.a3-bal-admin .a3-adminbar { margin-top: 0; }

/* ---------- News (home) ---------- */
.a3-news { padding-bottom: 0; }
.a3-news__head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 32px;
    flex-wrap: wrap;
    margin-bottom: 48px;
}
.a3-news__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 40px;
    border-top: 1px solid var(--a3-ink);
    padding-top: 32px;
}
.a3-news-card { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 20px; color: inherit; }
.a3-news-card:hover { color: inherit; }
.a3-news-card h3 { margin: 10px 0 8px; font-weight: 500; font-size: 20px; line-height: 1.25; color: var(--a3-ink); }
.a3-news-card p { margin: 0 0 12px; font-size: 15px; line-height: 1.55; }

.a3-datechip { border: 1px solid var(--a3-ink); padding: 12px 0; text-align: center; height: fit-content; }
.a3-datechip__d { font-size: 28px; font-weight: 500; color: var(--a3-ink); line-height: 1; }
.a3-datechip__m { margin-top: 6px; font: 500 11px/1 var(--a3-mono); text-transform: uppercase; letter-spacing: .08em; }
.a3-datechip--lg { padding: 14px 0; }
.a3-datechip--lg .a3-datechip__d { font-size: 34px; }
.a3-datechip--lg .a3-datechip__m { margin-top: 8px; }

/* ---------- About us ---------- */
.a3-about { position: relative; overflow: hidden; background: var(--a3-ink); }
.a3-about__bg { position: absolute; inset: -8% 0; filter: grayscale(1); }
.a3-about__scrim { position: absolute; inset: 0; background: rgba(14, 15, 16, .8); pointer-events: none; }
.a3-about__inner {
    position: relative;
    width: 100%;
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: clamp(96px, 12vh, 128px) var(--a3-pad) clamp(72px, 10vh, 104px);
    color: #fff;
}
.a3-about__top {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: 32px 64px;
    align-items: start;
    padding-bottom: clamp(48px, 7vh, 72px);
}
.a3-about__desc { font-size: 18px; line-height: 1.7; color: rgba(255, 255, 255, .9); max-width: 640px; text-wrap: pretty; }
.a3-about__desc strong, .a3-about__desc b, .a3-article__body strong, .a3-article__body b { color: #fff; }
.a3-about__desc a, .a3-article__body a { color: var(--a3-gold-light); }
.a3-about__articles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
    border-top: 1px solid rgba(233, 201, 138, .45);
}
.a3-article {
    padding: clamp(32px, 4vh, 44px) clamp(0px, 3vw, 48px) 0 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}
@media (min-width: 860px) {
    .a3-article + .a3-article { padding-left: clamp(0px, 3vw, 48px); border-left: 1px solid rgba(255, 255, 255, .14); }
}
.a3-article__icon {
    width: 48px;
    height: 48px;
    border: 1px solid var(--a3-gold);
    color: var(--a3-gold-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}
.a3-article h3 {
    margin: 6px 0 14px;
    font-weight: 500;
    font-size: clamp(24px, 2.2vw, 32px);
    line-height: 1.12;
    letter-spacing: -.025em;
    color: #fff;
}
.a3-article__body { font-size: 16px; line-height: 1.65; color: rgba(255, 255, 255, .85); max-width: 520px; text-wrap: pretty; }
.a3-article__body ul { padding-left: 1.2em; }

/* ---------- Licences ---------- */
.a3-lic { background: var(--a3-bg-alt); }
.a3-lic__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: 56px 80px;
    align-items: start;
}
.a3-lic__h2 { margin-bottom: 56px; max-width: 680px; text-wrap: balance; }
.a3-lic__table { border-top: 1px solid var(--a3-ink); }
.a3-lic__row {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 24px;
    padding: 26px 0;
    border-bottom: 1px solid var(--a3-line-mid);
    align-items: baseline;
}
.a3-lic__name { font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; color: var(--a3-ink); }
.a3-lic__no { font: 500 14px/1 var(--a3-mono); color: var(--a3-ink); }
.a3-lic__date { font: 400 14px/1 var(--a3-mono); }
@media (max-width: 599.98px) {
    .a3-lic__row { grid-template-columns: minmax(0, 1fr) auto; row-gap: 12px; }
    .a3-lic__name { grid-column: 1 / -1; }
}
.a3-lic__fig { margin: 0; display: flex; flex-direction: column; gap: 20px; max-width: 420px; justify-self: center; width: 100%; }
.a3-lic__scan {
    padding: 0;
    border: 1px solid #E3E3E3;
    background: #fff;
    box-shadow: 0 2px #E5E5E5;
    cursor: zoom-in;
    display: block;
    position: relative;
    overflow: hidden;
    transition: box-shadow .3s;
}
.a3-lic__scan:hover { box-shadow: 0 2px var(--a3-red); }
.a3-lic__scan img { display: block; width: 100%; height: auto; }
.a3-lic__cap { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.a3-lic__cap-t { font: 500 12px/1.5 var(--a3-mono); color: var(--a3-ink); }

.a3-lightbox {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(0, 0, 0, .85);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    cursor: zoom-out;
}
.a3-lightbox img { max-height: 92vh; max-width: 100%; display: block; background: #fff; }
.a3-lightbox__close {
    position: fixed;
    top: 20px;
    right: 24px;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(255, 255, 255, .4);
    background: none;
    color: #fff;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

/* ---------- Contacts (home) ---------- */
.a3-contact {
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: 120px var(--a3-pad) 80px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: 64px;
}
.a3-contact .a3-h2 { margin-bottom: 40px; }
.a3-phone-big { display: block; font-size: clamp(28px, 3vw, 44px); letter-spacing: -.02em; color: var(--a3-ink); margin-bottom: 8px; }
.a3-phone-big:hover { color: var(--a3-red); }
.a3-email-big { display: block; font-size: clamp(20px, 2vw, 28px); letter-spacing: -.01em; color: var(--a3-body); margin-bottom: 40px; overflow-wrap: anywhere; }
.a3-email-big:hover { color: var(--a3-red); }
.a3-dl { border-top: 1px solid var(--a3-ink); }
.a3-dl__row {
    padding: 20px 0;
    border-bottom: 1px solid var(--a3-line);
    display: grid;
    grid-template-columns: minmax(100px, 140px) minmax(0, 1fr);
    gap: 20px;
}
.a3-dl__k { font: 500 12px/1.5 var(--a3-mono); text-transform: uppercase; letter-spacing: .08em; }
.a3-dl__k--red { color: var(--a3-red); }
.a3-dl__v { font-size: 16px; line-height: 1.5; color: var(--a3-ink); }
.a3-contact__more { margin-top: 28px; }
.a3-mapcol { display: flex; flex-direction: column; gap: 14px; min-height: 420px; }
.a3-mapcol__label { font: 500 12px/1 var(--a3-mono); text-transform: uppercase; letter-spacing: .1em; color: var(--a3-ink); }
.a3-map { flex: 1; width: 100%; min-height: 400px; border: 0; filter: grayscale(1) contrast(1.05); display: block; }

/* =====================================================================
   Admin affordances on public pages
   ===================================================================== */
.a3-adminbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 28px;
    padding: 12px 14px;
    border: 1px dashed var(--a3-line-strong);
    background: #fff;
    font-size: 14px;
    color: var(--a3-ink);
}
.a3-adminbar__label {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-right: 6px;
    font: 500 11px/1 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--a3-muted);
}
.a3-adminbar__btn {
    height: 36px;
    max-width: 100%;
    padding: 0 12px;
    border: 1px solid var(--a3-border);
    background: #fff;
    color: var(--a3-ink);
    font-size: 14px;
    cursor: pointer;
    display: inline-flex;
    gap: 8px;
    align-items: center;
    transition: border-color .3s, color .3s;
}
.a3-adminbar__btn:hover { border-color: var(--a3-ink); color: var(--a3-ink); }
.a3-adminbar__btn > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px; }
.a3-adminbar__btn .a3-num { color: var(--a3-muted); }
.a3-adminbar--dark { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .3); color: #fff; }
.a3-adminbar--dark .a3-adminbar__btn { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35); }
.a3-adminbar--dark .a3-adminbar__btn:hover { border-color: #fff; color: #fff; }

/* ---------- Modal ---------- */
.a3-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    background: rgba(0, 0, 0, .5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.a3-modal__panel {
    background: #fff;
    width: 100%;
    max-width: 880px;
    max-height: 86vh;
    overflow: auto;
    display: flex;
    flex-direction: column;
}
.a3-modal__panel--wide { max-width: 1040px; }
.a3-modal__head {
    padding: 20px 24px;
    border-bottom: 1px solid var(--a3-line);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}
.a3-modal__title { margin: 0; font-weight: 500; font-size: 20px; color: var(--a3-ink); }
.a3-modal__x { border: 0; background: none; font-size: 24px; line-height: 1; color: var(--a3-muted); cursor: pointer; }
.a3-modal__x:hover { color: var(--a3-ink); }
.a3-modal__body { padding: 24px; }
.a3-modal__foot {
    padding: 16px 24px;
    border-top: 1px solid var(--a3-line);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    position: sticky;
    bottom: 0;
    background: #fff;
}
.a3-modal__status { margin: 0 auto 0 0; align-self: center; font-size: 14px; color: var(--a3-red); }

.a3-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.a3-pick {
    text-align: left;
    border: 1px solid var(--a3-line);
    background: #fff;
    padding: 0;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    transition: border-color .3s;
}
.a3-pick:hover { border-color: var(--a3-ink); }
.a3-pick.is-current { border-color: var(--a3-red); }
.a3-pick__thumb { aspect-ratio: 16/9; width: 100%; background: var(--a3-placeholder) center/cover no-repeat; }
.a3-pick__title { padding: 12px; font-size: 14px; font-weight: 500; color: var(--a3-ink); line-height: 1.3; }
.a3-pick__state { padding: 0 12px 12px; font: 500 11px/1 var(--a3-mono); color: var(--a3-red); min-height: 23px; }
.a3-picker__empty { margin: 0; font-size: 16px; color: var(--a3-ink); }

/* ---------- BG / EN tabs ---------- */
.a3-tabs { display: flex; border-bottom: 1px solid var(--a3-ink); margin-bottom: 28px; }
.a3-tab {
    height: 48px;
    padding: 0 22px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--a3-ink);
    font-weight: 500;
    cursor: pointer;
    display: flex;
    gap: 10px;
    align-items: center;
}
.a3-tab.is-active { background: var(--a3-ink); color: #fff; }
.a3-tab__code { font: 500 11px/1 var(--a3-mono); opacity: .7; }
.a3-tab__err { width: 8px; height: 8px; border-radius: 50%; background: #E0625F; }

/* ---------- CKEditor skin ---------- */
.a3-ck {
    --ck-border-radius: 0;
    --ck-color-focus-border: #B68936;
    --ck-font-face: 'Onest', sans-serif;
    --ck-color-toolbar-background: #F5F4F1;
    --ck-color-button-on-color: #A02B2D;
    --ck-color-button-on-background: #F4EBDA;
    font-size: 16px;
    line-height: 1.6;
    color: var(--a3-ink);
}
.a3-ck .ck-editor__editable { min-height: 240px; }
.a3-ck.is-invalid { --ck-color-base-border: #A02B2D; }

/* =====================================================================
   Admin shell (components/admin-shell.html)
   ===================================================================== */
.a3-admin { min-height: 100vh; background: #fff; }
.a3-admin__top { position: sticky; top: 0; z-index: 40; background: #fff; border-bottom: 1px solid var(--a3-line); }
.a3-admin__bar {
    height: 60px;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.a3-admin__brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
.a3-admin__brand img { height: 30px; display: block; }
.a3-admin__area {
    font: 500 11px/1 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--a3-muted);
    padding-left: 14px;
    border-left: 1px solid var(--a3-line);
}
.a3-admin__tools { display: flex; align-items: center; gap: 18px; font-size: 14px; white-space: nowrap; }
.a3-admin__tools .a3-lang { padding: 0; }
.a3-admin__link { color: var(--a3-ink); display: flex; gap: 8px; align-items: center; }
.a3-admin__link:hover { color: var(--a3-red); }
.a3-admin__user { display: flex; gap: 8px; align-items: center; color: var(--a3-ink); }
.a3-admin__user > i { color: var(--a3-muted); }
.a3-admin__logout-form { margin: 0; }
.a3-admin__logout {
    height: 36px;
    padding: 0 14px;
    border: 1px solid var(--a3-border);
    background: #fff;
    color: var(--a3-ink);
    cursor: pointer;
    transition: border-color .3s;
}
.a3-admin__logout:hover { border-color: var(--a3-ink); }
.a3-admin__body { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: calc(100vh - 65px); }
.a3-admin__side {
    background: var(--a3-bg-alt);
    padding: 28px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-right: 1px solid var(--a3-line);
}
.a3-admin__group { display: flex; flex-direction: column; gap: 2px; margin-bottom: 22px; }
.a3-admin__glabel {
    padding: 0 12px 10px;
    font: 500 11px/1 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--a3-muted);
}
.a3-admin__nav {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 11px 12px;
    font-size: 15px;
    font-weight: 500;
    white-space: nowrap;
    color: var(--a3-ink);
}
.a3-admin__nav > i { width: 16px; text-align: center; color: var(--a3-muted); }
.a3-admin__nav:hover { color: var(--a3-red); }
.a3-admin__nav.is-active { color: var(--a3-red); background: #fff; }
.a3-admin__nav.is-active > i { color: var(--a3-red); }
.a3-admin__main { min-width: 0; padding: clamp(24px, 3vw, 48px); max-width: 1180px; width: 100%; }

@media (max-width: 899.98px) {
    .a3-admin__body { grid-template-columns: minmax(0, 1fr); }
    .a3-admin__side { flex-direction: row; padding: 10px 12px; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--a3-line); }
    .a3-admin__group { flex-direction: row; margin-bottom: 0; }
    .a3-admin__glabel { display: none; }
    .a3-admin__bar { padding: 0 16px; }
}
@media (max-width: 699.98px) {
    .a3-admin__user, .a3-admin__link > span, .a3-admin__area { display: none; }
    .a3-admin__tools { gap: 12px; }
}

/* ===== [AGENT-A] Public lists/details, contacts, errors — insert rules above the closing marker ===== */
/* ---------- Page head (isList / isDetail) ---------- */
.a3-pagehead { max-width: var(--a3-rail); margin: 0 auto; padding: clamp(140px, 18vh, 190px) var(--a3-pad) 56px; }
.a3-pagehead--detail { padding-bottom: 48px; }
.a3-crumbs {
    margin: 0 0 28px;
    font: 500 12px/1 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.a3-crumbs a { color: var(--a3-muted); }
.a3-crumbs a:hover { color: var(--a3-ink); }
.a3-crumbs__sep { color: var(--a3-line-strong); }
.a3-crumbs .a3-crumbs__cur { color: var(--a3-red); }
.a3-crumbs a.a3-crumbs__cur:hover { color: var(--a3-ink); }
.a3-pagehead__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: 32px 64px;
    align-items: end;
    padding-bottom: 48px;
    border-bottom: 1px solid var(--a3-ink);
}
.a3-pagehead--detail .a3-pagehead__grid { padding-bottom: 0; border-bottom: 0; }
.a3-pagehead__h1 {
    margin: 0;
    font-weight: 500;
    font-size: clamp(52px, 7vw, 112px);
    line-height: .98;
    letter-spacing: -.045em;
    color: var(--a3-ink);
    overflow-wrap: anywhere;
}
.a3-pagehead__h1--detail { font-size: clamp(40px, 5vw, 80px); line-height: 1.02; letter-spacing: -.04em; text-wrap: balance; overflow-wrap: normal; }
.a3-pagehead__lead { margin: 0; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; max-width: 520px; text-wrap: pretty; }
.a3-pagehead__date {
    margin: 0 0 12px;
    font: 400 13px/1 var(--a3-mono);
    color: var(--a3-muted);
    display: flex;
    gap: 8px;
    align-items: center;
}
.a3-listbody { max-width: var(--a3-rail); margin: 0 auto; padding: 0 var(--a3-pad) 120px; }
.a3-listbody--market { padding-bottom: 96px; }

/* ---------- Services: stacked sticky panels ---------- */
.a3-svc-panel {
    position: sticky;
    top: calc(96px + var(--i, 0) * 24px);
    z-index: calc(var(--i, 0) + 1);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
    gap: 32px 56px;
    padding: 40px 0 48px;
    background: #fff;
    border-bottom: 1px solid var(--a3-line);
    color: inherit;
}
.a3-svc-panel:hover, .a3-mkt-panel:hover, .a3-bcard:hover, .a3-newsrow:hover { color: inherit; }
.a3-svc-panel__img { min-height: clamp(260px, 46vh, 480px); }
.a3-panel__body { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.a3-panel__h2 {
    margin: 20px 0;
    font-weight: 500;
    font-size: clamp(30px, 3.2vw, 48px);
    line-height: 1.06;
    letter-spacing: -.03em;
    color: var(--a3-ink);
    text-wrap: balance;
}
.a3-panel__p { margin: 0; font-size: 17px; line-height: 1.6; max-width: 480px; text-wrap: pretty; }
.a3-panel__p--wide { max-width: 520px; }
.a3-panel__btn { align-self: flex-start; font-size: 15px; }
.a3-svc-panel:hover .a3-panel__btn, .a3-mkt-panel:hover .a3-panel__btn { background: var(--a3-red); }

/* ---------- Balancing: 3-column grid ---------- */
.a3-bgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 64px 32px; }
.a3-bcard { display: flex; flex-direction: column; gap: 20px; color: inherit; }
.a3-bcard__img { aspect-ratio: 4 / 3; }
.a3-bcard__head { display: flex; gap: 16px; align-items: baseline; border-top: 1px solid var(--a3-ink); padding-top: 16px; }
.a3-bcard__n { font: 500 12px/1 var(--a3-mono); color: var(--a3-red); }
.a3-bcard h2 { margin: 0; font-weight: 500; font-size: 22px; line-height: 1.25; letter-spacing: -.015em; color: var(--a3-ink); }
.a3-bcard p { margin: 0; font-size: 15px; line-height: 1.55; text-wrap: pretty; }
.a3-bcard .a3-more { margin-top: auto; }

/* ---------- Market: panels + pinned chart ---------- */
.a3-mkt-panel {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
    gap: 32px 56px;
    padding: 0 0 48px;
    border-bottom: 1px solid var(--a3-line);
    margin-bottom: 48px;
    color: inherit;
}
.a3-mkt-panel__img { min-height: clamp(260px, 40vh, 440px); }

.a3-chart { height: calc(var(--vh, 100vh) * 2.6); position: relative; background: var(--a3-bg-alt); }
.a3-chart__stage {
    position: sticky;
    top: 0;
    min-height: calc(var(--vh, 100vh) * 1);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: 40px 64px;
    align-items: center;
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: clamp(96px, 13vh, 132px) var(--a3-pad) 48px;
}
.a3-chart__h2 {
    margin: 0 0 40px;
    font-weight: 500;
    font-size: clamp(30px, 3.2vw, 48px);
    line-height: 1.06;
    letter-spacing: -.03em;
    color: var(--a3-ink);
}
.a3-chart__steps { position: relative; min-height: 200px; }
.a3-chart__step { position: absolute; inset: 0; transition: opacity .5s, transform .6s; }
.a3-chart__step h3 { margin: 12px 0 10px; font-weight: 500; font-size: 24px; color: var(--a3-ink); display: flex; gap: 12px; align-items: center; }
.a3-chart__swatch { width: 14px; height: 14px; flex: none; }
.a3-chart__step p { margin: 0; font-size: 17px; line-height: 1.6; max-width: 460px; text-wrap: pretty; }
.a3-chart__box { background: #fff; padding: clamp(16px, 2vw, 28px); min-width: 0; }
.a3-chart__box svg { width: 100%; height: auto; display: block; overflow: visible; font-family: var(--a3-mono); }
.a3-legend { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 16px; font-size: 13px; color: var(--a3-ink); }
.a3-legend > span { display: flex; gap: 8px; align-items: center; }
.a3-legend__sw { width: 18px; flex: none; }

/* ---------- News: rows with a date chip ---------- */
.a3-newsrow {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr) minmax(0, 220px);
    gap: 32px;
    align-items: start;
    padding: 36px 0;
    border-bottom: 1px solid var(--a3-line);
    color: inherit;
}
.a3-newsrow h2 { margin: 12px 0 10px; font-weight: 500; font-size: 26px; line-height: 1.2; letter-spacing: -.02em; color: var(--a3-ink); }
.a3-newsrow p { margin: 0; font-size: 16px; line-height: 1.6; }
.a3-newsrow > .a3-more { justify-self: end; }
.a3-empty { padding: 72px 0; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.a3-empty > i { font-size: 28px; color: var(--a3-line-strong); }
.a3-empty > p { margin: 0; font-size: 20px; color: var(--a3-ink); }

/* ---------- Detail: image, rich content, aside ---------- */
.a3-detail-hero-wrap { max-width: var(--a3-rail); margin: 0 auto; padding: 0 var(--a3-pad); }
.a3-detail-hero { aspect-ratio: 21 / 8; min-height: 260px; }
.a3-detail-hero__par { position: absolute; inset: -10% 0; }
.a3-detail-body {
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: 72px var(--a3-pad) 120px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 56px 80px;
    align-items: start;
}
.a3-detail-content { grid-column: span 2; font-size: 18px; line-height: 1.75; color: var(--a3-rich); max-width: 760px; text-wrap: pretty; min-width: 0; overflow-wrap: break-word; }
.a3-detail-content table { display: block; overflow-x: auto; }
.a3-aside { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 40px; min-width: 0; }
.a3-aside__list { border-top: 1px solid var(--a3-ink); }
.a3-aside__item {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) 14px;
    gap: 12px;
    align-items: baseline;
    padding: 16px 0;
    border-bottom: 1px solid var(--a3-line);
    color: var(--a3-ink);
    font-size: 16px;
    line-height: 1.35;
}
.a3-aside__item:hover { color: var(--a3-red); }
.a3-aside__back { display: inline-flex; gap: 8px; align-items: center; margin-top: 20px; font-weight: 500; font-size: 15px; }
.a3-aside__contact { background: var(--a3-ink); color: #fff; padding: 28px; }
.a3-aside__phone { display: block; color: #fff; font-size: 24px; letter-spacing: -.01em; margin-bottom: 6px; }
.a3-aside__mail { display: block; color: rgba(255, 255, 255, .85); font-size: 16px; overflow-wrap: anywhere; }
.a3-aside__phone:hover, .a3-aside__mail:hover { color: var(--a3-gold-light); }

/* ---------- Contacts ---------- */
.a3-contacts {
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: 0 var(--a3-pad) 120px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: 64px;
}
.a3-contacts__col { display: flex; flex-direction: column; gap: 48px; min-width: 0; }
.a3-email-big--flush { margin-bottom: 0; }
.a3-contacts__fax { margin: 16px 0 0; font: 400 14px/1.5 var(--a3-mono); }
.a3-office { display: flex; flex-direction: column; gap: 14px; border-top: 1px solid var(--a3-ink); padding-top: 20px; }
.a3-office__title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    min-height: 36px;
    font: 500 12px/1 var(--a3-mono);
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--a3-red);
}
.a3-office__title .a3-adminbar__btn { font-family: var(--a3-sans); text-transform: none; letter-spacing: 0; }
.a3-office__addr { font-size: 18px; line-height: 1.5; color: var(--a3-ink); }
.a3-office__map { width: 100%; height: 340px; border: 0; filter: grayscale(1) contrast(1.05); display: block; }
.a3-formbox { background: var(--a3-bg-alt); padding: clamp(28px, 3.4vw, 48px); align-self: start; }
.a3-formbox h2 { margin: 0 0 8px; font-weight: 500; font-size: clamp(26px, 2.4vw, 34px); letter-spacing: -.02em; color: var(--a3-ink); }
.a3-formbox__p { margin: 0 0 32px; font-size: 16px; line-height: 1.55; }
.a3-form { display: grid; gap: 20px; }
.a3-form__submit { justify-self: start; height: 56px; padding: 0 28px; font-size: 15px; }
.a3-form__submit[disabled] { opacity: .6; cursor: default; }
.a3-sent { padding: 24px; background: #fff; display: flex; gap: 14px; align-items: center; color: var(--a3-ink); }
.a3-sent > i { color: var(--a3-gold); font-size: 20px; }

/* ---------- Errors ---------- */
.a3-error {
    max-width: var(--a3-rail);
    margin: 0 auto;
    padding: clamp(160px, 22vh, 220px) var(--a3-pad) 140px;
    min-height: 80vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.a3-error__kicker { margin-bottom: 28px; }
.a3-error__code { margin: 0; font-weight: 500; font-size: clamp(96px, 16vw, 240px); line-height: .85; letter-spacing: -.06em; color: var(--a3-ink); }
.a3-error__title { margin: 0 0 16px; font-weight: 500; font-size: clamp(26px, 2.4vw, 34px); line-height: 1.15; letter-spacing: -.02em; color: var(--a3-ink); }
.a3-error__body { margin: 0; font-size: 18px; line-height: 1.55; max-width: 480px; text-wrap: pretty; }
.a3-error__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 40px; }
/* 404: illustration in place of the big code; the code moves above the title, smaller */
.a3-error__grid { align-items: center; }
.a3-error__figure { margin: 0; }
.a3-error__figure img { display: block; width: 100%; height: auto; }
.a3-error__code--sm { margin-bottom: 20px; font-size: clamp(64px, 7vw, 112px); }

/* ---------- Admin content list on public list pages (Admin-A3 list) ---------- */
.a3-cmslist { max-width: var(--a3-rail); margin: 0 auto 72px; padding: 0 var(--a3-pad); }
.a3-cmslist__head { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
.a3-cmslist__title { margin: 0; font-weight: 500; font-size: clamp(30px, 3vw, 40px); letter-spacing: -.03em; color: var(--a3-ink); }
.a3-cmslist__tools { display: flex; gap: 10px; flex-wrap: wrap; }
.a3-search { position: relative; display: block; }
.a3-search > i { position: absolute; left: 14px; top: 15px; color: var(--a3-muted); font-size: 13px; }
.a3-search > input {
    height: 44px;
    width: 220px;
    max-width: 100%;
    padding: 0 14px 0 36px;
    border: 1px solid var(--a3-line-strong);
    color: var(--a3-ink);
    background: #fff;
    outline: none;
    transition: border-color .3s;
}
.a3-search > input:focus { border-color: var(--a3-gold); }
.a3-cmslist__table { border-top: 1px solid var(--a3-ink); }
.a3-cmslist__row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 84px;
    gap: 20px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid var(--a3-line);
}
.a3-cmslist__row:not(.a3-cmslist__row--head):hover { background: var(--a3-row-hover); }
.a3-cmslist__row--head { padding: 12px 0; font: 500 11px/1 var(--a3-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--a3-muted); }
.a3-cmslist__thumb {
    position: relative;
    width: 72px;
    height: 48px;
    overflow: hidden;
    background: var(--a3-placeholder);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--a3-line-strong);
}
.a3-cmslist__main { min-width: 0; color: inherit; display: block; }
.a3-cmslist__main:hover { color: inherit; }
.a3-cmslist__main:hover .a3-cmslist__name { color: var(--a3-red); }
.a3-cmslist__name { display: block; font-size: 16px; font-weight: 500; color: var(--a3-ink); transition: color .3s; }
.a3-cmslist__sub { display: block; margin-top: 4px; font-size: 13px; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.a3-cmslist__acts { display: flex; gap: 6px; justify-content: flex-end; }
.a3-cmslist__empty { padding: 48px 0; margin: 0; font-size: 16px; color: var(--a3-ink); }
.a3-iconlink {
    width: 36px;
    height: 36px;
    border: 1px solid var(--a3-border);
    color: var(--a3-ink);
    display: flex;
    align-items: center;
    justify-content: center;
}
.a3-iconlink:hover { border-color: var(--a3-ink); color: var(--a3-ink); }

/* ---------- Responsive / reduced motion ---------- */
@media (max-width: 859.98px) {
    .a3-pagehead { padding-top: 120px; }
    .a3-svc-panel { position: relative; top: auto; }
    .a3-detail-content { grid-column: auto; }
    .a3-aside { position: relative; top: auto; }
    .a3-listbody, .a3-contacts, .a3-detail-body { padding-bottom: 88px; }
    .a3-detail-body { padding-top: 48px; }
    .a3-cmslist__row { grid-template-columns: 56px minmax(0, 1fr) 84px; gap: 14px; }
    .a3-cmslist__thumb { width: 56px; }
}
@media (max-width: 599.98px) {
    .a3-newsrow { grid-template-columns: 64px minmax(0, 1fr); gap: 20px; }
    .a3-newsrow > .a3-more { display: none; }
    .a3-newsrow h2 { font-size: 22px; }
    .a3-search, .a3-search > input { width: 100%; }
    .a3-cmslist__tools { width: 100%; }
}
/* Chart unpinned on mobile and for reduced motion: show its end state and stack the captions. */
@media (max-width: 859.98px), (prefers-reduced-motion: reduce) {
    .a3-chart { height: auto; --p: 1 !important; }
    .a3-chart__stage { position: relative; min-height: 0; }
    .a3-chart__steps { min-height: 0; }
    .a3-chart__step { position: relative !important; inset: auto; opacity: 1 !important; transform: none !important; margin-bottom: 32px; }
}
/* ===== [/AGENT-A] ===== */

/* ===== [AGENT-B] Login, customer documents, document upload — insert rules above the closing marker ===== */
/* ---------- Login (authentication/login.html) ---------- */
.a3-login { min-height: 100vh; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); background: #fff; }
.a3-login__photo { position: relative; min-height: 280px; background: var(--a3-ink); overflow: hidden; }
.a3-login__scrim { position: absolute; inset: 0; background: rgba(14, 15, 16, .62); pointer-events: none; }
.a3-login__copy {
    position: absolute;
    left: clamp(24px, 4vw, 56px);
    right: clamp(24px, 4vw, 56px);
    bottom: clamp(24px, 6vh, 56px);
    color: #fff;
    pointer-events: none;
}
.a3-login__copy .a3-kicker { margin-bottom: 14px; }
.a3-login__copy-t { margin: 0; font-weight: 500; font-size: clamp(28px, 3vw, 44px); line-height: 1.08; letter-spacing: -.03em; max-width: 460px; }
.a3-login__side { display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 6vw, 96px); }
.a3-login__top { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 56px; max-width: 420px; }
.a3-login__top .a3-lang { padding: 0; }
.a3-login__logo { height: 44px; display: block; }
.a3-login__h1 { margin: 0 0 10px; font-weight: 500; font-size: 40px; letter-spacing: -.03em; color: var(--a3-ink); }
.a3-login__p { margin: 0 0 36px; font-size: 16px; line-height: 1.5; }
.a3-login__form { display: grid; gap: 20px; max-width: 420px; }
.a3-input-icon { position: relative; display: block; }
.a3-input-icon > i { position: absolute; left: 16px; top: 18px; color: var(--a3-muted); pointer-events: none; }
.a3-input-icon > .a3-input { padding-left: 42px; }
.a3-login__err { margin: 0; color: var(--a3-red); font-size: 14px; display: flex; gap: 8px; align-items: center; }
.a3-login__submit {
    height: 56px;
    border: 0;
    border-radius: 0;
    background: var(--a3-red);
    color: #fff;
    font-weight: 500;
    font-size: 16px;
    cursor: pointer;
    transition: background-color .3s;
}
.a3-login__submit:hover { background: var(--a3-red-hover); }

/* ---------- Documents (document/index.html) ---------- */
.a3-docs-head { max-width: var(--a3-rail); margin: 0 auto; padding: clamp(140px, 18vh, 190px) var(--a3-pad) 56px; }
.a3-docs-crumbs {
    margin: 0 0 28px;
    font: 500 12px/1 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.a3-docs-crumbs a { color: var(--a3-muted); }
.a3-docs-crumbs a:hover { color: var(--a3-ink); }
.a3-docs-crumbs__sep { color: var(--a3-line-strong); }
.a3-docs-crumbs__cur { color: var(--a3-red); }
.a3-docs-head__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: 32px 64px;
    align-items: end;
    padding-bottom: 48px;
    border-bottom: 1px solid var(--a3-ink);
}
.a3-docs-head h1 { margin: 0; font-weight: 500; font-size: clamp(52px, 7vw, 112px); line-height: .98; letter-spacing: -.045em; color: var(--a3-ink); }
.a3-docs-head__lead { margin: 0; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; max-width: 520px; text-wrap: pretty; }

.a3-docs { --cols: minmax(0, 1fr) 96px 150px 80px 140px; max-width: var(--a3-rail); margin: 0 auto; padding: 0 var(--a3-pad) 120px; }
.a3-docs--admin { --cols: minmax(0, 1fr) 96px 150px 80px 196px; }
.a3-docs__bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.a3-docs__search {
    flex: 1 1 280px;
    max-width: 420px;
    height: 48px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 16px;
    border: 1px solid var(--a3-line-strong);
    background: #fff;
    transition: border-color .3s;
}
.a3-docs__search:focus-within { border-color: var(--a3-gold); }
.a3-docs__search > i { color: var(--a3-muted); }
.a3-docs__search input { flex: 1; min-width: 0; border: 0; outline: none; background: none; color: var(--a3-ink); font-size: 15px; }
.a3-docs__tools { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.a3-segs { display: flex; border: 1px solid var(--a3-line-strong); }
.a3-seg { height: 46px; padding: 0 16px; border: 0; border-radius: 0; background: #fff; color: var(--a3-ink); font: 500 12px/1 var(--a3-mono); cursor: pointer; }
.a3-seg.is-active { background: var(--a3-ink); color: #fff; }
.a3-docs__count { font: 400 13px/1 var(--a3-mono); color: var(--a3-muted); }
.a3-docs__empty { padding: 56px 0; border-top: 1px solid var(--a3-ink); font-size: 18px; color: var(--a3-ink); }

.a3-docs__year { margin-bottom: 48px; }
.a3-docs__yhead { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 12px; border-bottom: 1px solid var(--a3-ink); }
.a3-docs__y { font-weight: 500; font-size: 28px; letter-spacing: -.02em; color: var(--a3-ink); }
.a3-docs__ycount { font: 400 12px/1 var(--a3-mono); color: var(--a3-muted); }
.a3-docs__row {
    display: grid;
    grid-template-columns: var(--cols);
    gap: 12px 24px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--a3-line);
    transition: background-color .2s;
}
.a3-docs__row:not(.a3-docs__row--head):hover { background: var(--a3-row-hover); }
.a3-docs__row--head { padding: 14px 0; font: 500 11px/1 var(--a3-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--a3-muted); }
.a3-docs__name { display: flex; gap: 14px; align-items: center; min-width: 0; }
.a3-docs__name > i { font-size: 20px; width: 20px; flex: none; color: var(--a3-body); }
.a3-docs__name > i.is-pdf { color: var(--a3-red); }
.a3-docs__name > i.is-xls { color: var(--a3-green); }
.a3-docs__text { min-width: 0; }
.a3-docs__file { display: block; color: var(--a3-ink); font-size: 16px; line-height: 1.35; overflow-wrap: anywhere; }
.a3-docs__meta { display: none; margin-top: 6px; font: 400 12px/1.4 var(--a3-mono); color: var(--a3-muted); }
.a3-docs__src { font: 500 11px/1 var(--a3-mono); color: var(--a3-body); }
.a3-docs__date { font: 400 13px/1.4 var(--a3-mono); }
.a3-docs__size { font: 400 13px/1 var(--a3-mono); text-align: right; }
.a3-docs__actions { display: flex; gap: 8px; justify-content: flex-end; }
.a3-docs__dl {
    height: 44px;
    padding: 0 16px;
    border: 1px solid var(--a3-ink);
    color: var(--a3-ink);
    font-weight: 500;
    font-size: 14px;
    display: flex;
    gap: 10px;
    align-items: center;
    white-space: nowrap;
}
.a3-docs__dl:hover { background: var(--a3-ink); color: #fff; }
.a3-docs__del {
    width: 44px;
    height: 44px;
    border: 1px solid var(--a3-border);
    background: #fff;
    color: var(--a3-red);
    cursor: pointer;
    transition: border-color .3s;
}
.a3-docs__del:hover { border-color: var(--a3-red); }
.a3-modal__panel--narrow { max-width: 480px; }
.a3-docs__confirm { margin: 0; font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }

@media (max-width: 859.98px) {
    .a3-docs, .a3-docs--admin { --cols: minmax(0, 1fr) auto; }
    .a3-docs__row--head, .a3-docs__src, .a3-docs__date, .a3-docs__row > .a3-docs__size, .a3-docs__dl-label { display: none; }
    .a3-docs__meta { display: block; }
    .a3-docs__search { max-width: none; }
}

/* ---------- Document upload (document/upload.html) ---------- */
.a3-up__crumbs {
    margin: 0 0 12px;
    font: 500 12px/1 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    display: flex;
    gap: 8px;
}
.a3-up__crumbs a { color: var(--a3-muted); }
.a3-up__crumbs a:hover { color: var(--a3-ink); }
.a3-up__crumbs > span:not(.a3-up__cur) { color: var(--a3-line-strong); }
.a3-up__cur { color: var(--a3-red); }
.a3-up__head { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; margin-bottom: 32px; }
.a3-up__h1 { margin: 0; font-weight: 500; font-size: clamp(30px, 3vw, 40px); letter-spacing: -.03em; color: var(--a3-ink); }
.a3-up__actions { display: flex; gap: 10px; }

.a3-drop {
    border: 1.5px dashed var(--a3-line-strong);
    background: #FAFAF8;
    padding: 28px;
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    gap: 20px;
    align-items: center;
    transition: background .3s, border-color .3s;
}
.a3-drop.is-drag { border-color: var(--a3-red); background: #FBF3F3; }
.a3-drop.is-invalid { border-color: var(--a3-red); }
.a3-drop__pick { display: flex; gap: 16px; align-items: center; }
.a3-drop__pick > i { font-size: 32px; color: var(--a3-red); }
.a3-drop__t { margin: 0 0 4px; font-size: 16px; color: var(--a3-ink); }
.a3-drop__choose { font-size: 14px; font-weight: 500; color: var(--a3-red); cursor: pointer; position: relative; }
.a3-drop__choose:hover { color: var(--a3-ink); }
.a3-drop__choose:focus-within { outline: 2px solid var(--a3-gold); outline-offset: 2px; }
.a3-drop__input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.a3-drop__side { display: flex; gap: 10px; justify-content: flex-end; align-items: center; flex-wrap: wrap; }
.a3-drop__pending { font-size: 14px; color: var(--a3-ink); overflow-wrap: anywhere; }
.a3-drop__src { display: block; }
.a3-drop__select { height: 44px; width: auto; min-width: 160px; font: 500 13px/1 var(--a3-mono); }
.a3-up__errors { display: grid; gap: 8px; margin-bottom: 20px; }
.a3-up__files { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--a3-ink); }
.a3-up__files:empty { display: none; }
.a3-up__file {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid var(--a3-line);
    font-size: 15px;
    color: var(--a3-ink);
}
.a3-up__fname { min-width: 0; overflow-wrap: anywhere; }
.a3-up__fmeta { font: 400 12px/1.4 var(--a3-mono); color: var(--a3-muted); white-space: nowrap; }
.a3-up__file.is-busy { opacity: .6; }
.a3-up__file.is-done .a3-up__fmeta::after { content: " \2713"; color: var(--a3-green); }
.a3-up__file.is-failed { color: var(--a3-red); }
.a3-up__file.is-failed .a3-up__fmeta::after { content: " \2715"; color: var(--a3-red); }
/* ===== [/AGENT-B] ===== */

/* ===== [AGENT-C] CMS forms (genericForm, createOrUpdate, office, about-article) — insert rules above the closing marker ===== */
.a3-cms { margin: 0; }
.a3-cms__crumb {
    margin: 0 0 12px;
    font: 500 12px/1 var(--a3-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.a3-cms__crumb a { color: var(--a3-muted); }
.a3-cms__crumb a:hover { color: var(--a3-ink); }
.a3-cms__crumb-sep { color: var(--a3-line-strong); }
.a3-cms__crumb-cur { color: var(--a3-red); }
.a3-cms__head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 32px;
}
.a3-cms__title {
    margin: 0;
    font-weight: 500;
    font-size: clamp(28px, 2.8vw, 38px);
    line-height: 1.12;
    letter-spacing: -.03em;
    color: var(--a3-ink);
    max-width: 720px;
}
.a3-cms__actions { display: flex; gap: 10px; }
.a3-cms__actions .a3-sbtn { height: 48px; padding: 0 20px; }
.a3-cms__actions .a3-sbtn--primary { padding: 0 24px; }
.a3-cms__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: start; }
@media (min-width: 1100px) {
    .a3-cms__grid { grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); }
}
.a3-cms__main { min-width: 0; }
.a3-cms__panel { display: flex; flex-direction: column; gap: 24px; }
.a3-cms__group { display: grid; gap: 8px; min-width: 0; }
.a3-label {
    font: 500 12px/1 var(--a3-mono);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--a3-ink);
}
.a3-field__row { display: flex; justify-content: space-between; gap: 12px; }
.a3-field__count { color: var(--a3-muted); }
.a3-input--lg { font-size: 17px; }
textarea.a3-input--mono { font: 400 12px/1.4 var(--a3-mono); padding: 12px; }
.a3-ck textarea.a3-input { min-height: 240px; }
.a3-cms__aside { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.a3-cms__card { border: 1px solid var(--a3-line); padding: 20px; display: grid; gap: 14px; }
.a3-cms__preview {
    aspect-ratio: 4/3;
    position: relative;
    overflow: hidden;
    background: var(--a3-placeholder);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--a3-line-strong);
    font-size: 28px;
}
.a3-cms__file {
    position: relative;
    height: 44px;
    border: 1px solid var(--a3-ink);
    color: var(--a3-ink);
    font-weight: 500;
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color .3s, color .3s;
}
.a3-cms__file:hover { background: var(--a3-ink); color: #fff; }
.a3-cms__file:focus-within { outline: 2px solid var(--a3-gold); outline-offset: 2px; }
/* Kept focusable (not display:none) so the browser can report `required` on it. */
.a3-cms__file-input { position: absolute; left: 50%; bottom: 0; width: 1px; height: 1px; opacity: 0; }
.a3-cms__filename { font: 400 12px/1.4 var(--a3-mono); color: var(--a3-ink); overflow-wrap: anywhere; }
.a3-cms__filename:empty { display: none; }
.a3-cms__map { width: 100%; height: 200px; border: 0; filter: grayscale(1); display: block; background: var(--a3-placeholder); }
.a3-cms__hint { margin: 0; font-size: 13px; line-height: 1.5; color: var(--a3-muted); }
/* ===== [/AGENT-C] ===== */

/* =====================================================================
   Mobile + reduced motion
   ===================================================================== */
@media (max-width: 859.98px) {
    :root { --a3-pad: 24px; }
    .a3-section { padding-top: 88px; padding-bottom: 88px; }
    .a3-split__intro { position: relative; top: auto; }
    .a3-contact { padding-top: 88px; }
}
@media (max-width: 479.98px) {
    :root { --a3-pad: 16px; }
    .a3-svc-row { grid-template-columns: minmax(0, 1fr); }
    .a3-svc-row__img { order: -1; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    /* Hero: show the composed end state in one screen instead of pinning. */
    .a3-hero { height: auto; --p: 1; }
    .a3-hero__stage { position: relative; }
    /* Balancing: always the flat list. */
    .a3-bal { display: none !important; }
    .a3-bal-flat { display: block !important; }
    [data-intro] { animation: none; }
    [data-parallax] { transform: none; }
}
