/* AST brand fonts */
@font-face {
  font-family: "Cygre";
  src: url("/assets/fonts/brand/cygre/Cygre-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Cygre";
  src: url("/assets/fonts/brand/cygre/Cygre-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Cygre";
  src: url("/assets/fonts/brand/cygre/Cygre-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Bounded";
  src: url("/assets/fonts/brand/bounded/Bounded-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Bounded";
  src: url("/assets/fonts/brand/bounded/Bounded-Black.ttf") format("truetype");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* /AST brand fonts */

:root {
    --ast-blue: #3A75FF;
    --ast-turquoise: #34FFE6;
    --ast-gray: #DADADA;
    --ast-dark-gray: #706F6F;
    --ast-black: #000000;
    --ast-white: #FFFFFF;
    --font-main: "Cygre", "Segoe UI Variable Text", "Segoe UI", Tahoma, sans-serif;
    --font-heading: "Bounded", "Cygre", "Segoe UI Variable Text", sans-serif;
    --bg: #f4f7fb;
    --bg-soft: #eaf0f8;
    --surface: #ffffff;
    --surface-strong: #10233e;
    --surface-dark: #0d1b2f;
    --text: #17304b;
    --text-muted: #5b6f86;
    --text-on-dark: #f7fbff;
    --line: #d7e0eb;
    --primary: #3A75FF;
    --primary-strong: #245EE8;
    --accent: #34FFE6;
    --success: #0c8f65;
    --warning: #a85e12;
    --warning-soft: #fff2dd;
    --danger: #c43b41;
    --danger-soft: #ffe8ea;
    --shadow: 0 18px 48px rgba(16, 35, 62, 0.12);
    --radius-xl: 28px;
    --radius-lg: 22px;
    --radius-md: 16px;
    --radius-sm: 12px;
    --shell: min(1200px, calc(100vw - 32px));
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-main);
    background:
        radial-gradient(circle at top right, rgba(58, 117, 255, 0.14), transparent 34%),
        linear-gradient(180deg, #f7fafe 0%, var(--bg) 24%, #eef3f9 100%);
    color: var(--text);
    overflow-x: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

.shell {
    width: var(--shell);
    margin: 0 auto;
}

.skip-link {
    position: absolute;
    left: 16px;
    top: -48px;
    z-index: 50;
    padding: 12px 16px;
    border-radius: 999px;
    background: var(--surface-dark);
    color: var(--text-on-dark);
    transition: top 0.2s ease;
}

.skip-link:focus {
    top: 16px;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 700;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}

.button:hover,
.button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(58, 117, 255, 0.16);
}

.button--primary {
    background: linear-gradient(135deg, var(--primary), #3c87ec);
    color: var(--text-on-dark);
}

.button--secondary {
    background: var(--surface);
    border-color: rgba(58, 117, 255, 0.22);
    color: var(--primary-strong);
}

.button--ghost {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(23, 48, 75, 0.12);
    color: var(--text);
}

.section--dark .button--ghost,
.page-intro--article .button--ghost,
.page-intro--not-found .button--ghost {
    color: var(--text-on-dark);
    border-color: rgba(255, 255, 255, 0.18);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 30;
    backdrop-filter: blur(18px);
    background: rgba(247, 250, 254, 0.86);
    border-bottom: 1px solid rgba(23, 48, 75, 0.08);
}

.site-header__top {
    border-bottom: 1px solid rgba(23, 48, 75, 0.08);
    background: rgba(13, 27, 47, 0.92);
    color: rgba(247, 251, 255, 0.85);
    font-size: 0.92rem;
}.site-header__top-inner,
.site-header__main,
.site-banner__inner,
.section__head,
.site-footer__bottom,
.split-callout,
.article-meta,
.tariff-card__top,
.tariff-card__actions,
.story-card__meta,
.notice-card__meta,
.site-form__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.site-header__top-inner,
.site-header__main {
    min-height: 54px;
}.site-header__status,
.site-header__links,
.site-nav ul,
.hero__actions,
.hero__highlights,
.section__head,
.tariff-card__features,
.site-footer__list,
.steps-list,
.map-placeholder__grid ul {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    padding: 0;
    margin: 0;
    list-style: none;
}

.site-header__links a {
    color: rgba(247, 251, 255, 0.92);
}

.site-header__main {
    min-height: 82px;
}

.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.site-logo__mark {
    width: clamp(56px, 4.6vw, 64px);
    height: auto;
    flex: 0 0 auto;
    border-radius: 18px;
    box-shadow:
        0 16px 32px rgba(11, 74, 159, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.site-logo__text {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.site-logo__text strong {
    font-size: 1.24rem;
    letter-spacing: 0.02em;
}

.site-logo__text small {
    color: var(--text-muted);
    font-size: 0.9rem;
    max-width: 26rem;
}

.site-header__panel {
    display: flex;
    align-items: center;
    gap: 26px;
}

.site-nav ul {
    gap: 10px;
}

.site-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 999px;
    color: var(--text-muted);
    font-weight: 700;
}

.site-nav a.is-active,
.site-nav a:hover,
.site-nav a:focus-visible {
    background: rgba(58, 117, 255, 0.12);
    color: var(--primary-strong);
}

.site-menu-toggle {
    display: none;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid rgba(23, 48, 75, 0.12);
    border-radius: 999px;
    background: var(--surface);
}

.site-menu-toggle span:not(.site-menu-toggle__label) {
    display: block;
    width: 16px;
    height: 2px;
    border-radius: 999px;
    background: var(--surface-dark);
}

.site-banner {
    border-bottom: 1px solid rgba(23, 48, 75, 0.08);
}

.site-banner__inner {
    padding: 14px 0;
    font-weight: 600;
}

.site-banner a {
    font-weight: 800;
}

.site-banner-is-maintenance {
    background: var(--warning-soft);
}

.site-banner-is-incident {
    background: var(--danger-soft);
}

.site-banner-is-important {
    background: rgba(58, 117, 255, 0.12);
}

.site-main {
    display: grid;
    gap: 40px;
    padding-bottom: 64px;
}

.hero {
    padding: 48px 0 10px;
}.cards-grid,
.application-layout,
.contact-layout,
.article-layout,
.site-footer__grid,
.info-grid,
.contact-card-grid {
    display: grid;
    gap: 24px;
}
.hero__content,
.hero__aside,
.page-intro__panel,
.tariff-card,
.service-card,
.story-card,
.notice-card,
.info-card,
.document-card,
.map-placeholder,
.article-body,
.article-sidebar,
.not-found,
.site-form {
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow);
}

.hero__content {
    position: relative;
    padding: clamp(28px, 6vw, 58px);
    background:
        linear-gradient(135deg, rgba(58, 117, 255, 0.96), rgba(12, 35, 67, 0.96)),
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.16), transparent 40%);
    color: var(--text-on-dark);
    overflow: hidden;
}

.hero__content::after {
    content: "";
    position: absolute;
    right: -40px;
    bottom: -60px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
}.section__kicker,
.page-intro__kicker {
    margin: 0 0 14px;
    color: inherit;
    font-size: 0.88rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 800;
}

.hero h1,
.page-intro h1,
.section__head h2,
.not-found h1 {
    margin: 0;
    font-size: clamp(2.2rem, 4vw, 4.4rem);
    line-height: 1.03;
    letter-spacing: -0.03em;
}

.hero__lead,
.page-intro__lead {
    margin: 18px 0 0;
    max-width: 48rem;
    font-size: 1.08rem;
    line-height: 1.7;
    color: inherit;
    opacity: 0.94;
}

.hero__actions,
.hero__highlights {
    margin-top: 26px;
}

.hero__highlights li {
    position: relative;
    padding-left: 18px;
    font-size: 0.98rem;
}

.hero__highlights li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
}

.hero__aside {
    display: grid;
    gap: 18px;
    background: transparent;
    box-shadow: none;
}.info-card,
.document-card,
.service-card,
.story-card,
.notice-card,
.article-body,
.article-sidebar,
.site-form,
.map-placeholder,
.not-found {
    padding: 24px;
}
.tariff-card__audience,
.service-card__lead,
.document-card__meta,
.article-sidebar__item span,
.field__error,
.site-footer__text,
.site-footer__bottom,
.info-card p,
.story-card p,
.notice-card p,
.article-body p {
    color: var(--text-muted);
}.tariff-card h3,
.service-card h2,
.service-card h3,
.story-card h3,
.notice-card h3,
.document-card h2,
.info-card h2,
.article-sidebar h2 {
    font-size: 1.35rem;
    line-height: 1.2;
}


.section {
    display: grid;
    gap: 24px;
}

.section--soft {
    padding: 28px 0;
    background: linear-gradient(180deg, rgba(234, 240, 248, 0.55), rgba(255, 255, 255, 0));
}

.section--dark {
    padding: 36px 0 44px;
    background: linear-gradient(160deg, #0d1b2f, #17304b 65%, #0d1b2f);
    color: var(--text-on-dark);
}

.section__head {
    align-items: end;
}

.section__head h2 {
    font-size: clamp(1.8rem, 2vw, 2.7rem);
}

.section__head--light .section__kicker,
.section__head--light h2 {
    color: var(--text-on-dark);
}

.section__link {
    font-weight: 800;
    color: var(--primary-strong);
}

.cards-grid--tariffs {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
}.cards-grid--services,
.cards-grid--stories,
.cards-grid--notices,
.cards-grid--documents,
.info-grid,
.contact-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.tariff-card {
    position: relative;
    display: grid;
    gap: 18px;
    overflow: hidden;
}

.tariff-card.is-popular {
    background: linear-gradient(180deg, rgba(58, 117, 255, 0.06), var(--surface));
    border: 1px solid rgba(58, 117, 255, 0.16);
}

.tariff-card__badge {
    position: absolute;
    top: 18px;
    right: 18px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(58, 117, 255, 0.12);
    color: var(--primary-strong);
    font-size: 0.82rem;
    font-weight: 800;
}

.tariff-card__speed {
    color: var(--primary-strong);
    font-size: 1.2rem;
}

.tariff-card__price {
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: -0.03em;
}

.tariff-card__features {
    gap: 12px;
}

.tariff-card__features li,
.service-card li,
.steps-list li {
    position: relative;
    padding-left: 18px;
}

.tariff-card__features li::before,
.service-card li::before,
.steps-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.56em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--primary);
}

.service-card,
.story-card,
.notice-card,
.info-card,
.document-card {
    display: grid;
    gap: 14px;
}

.service-card--full {
    align-content: start;
}

.notice-card__type,
.document-card__badge,
.selection-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    font-weight: 800;
    width: fit-content;
}

.selection-chip,
.document-card__badge {
    background: rgba(58, 117, 255, 0.1);
    color: var(--primary-strong);
}

.notice-card.is-incident {
    border: 1px solid rgba(196, 59, 65, 0.18);
}

.notice-card.is-incident .notice-card__type {
    background: rgba(196, 59, 65, 0.12);
    color: var(--danger);
}

.notice-card.is-maintenance .notice-card__type {
    background: rgba(168, 94, 18, 0.14);
    color: var(--warning);
}

.notice-card.is-important .notice-card__type {
    background: rgba(58, 117, 255, 0.12);
    color: var(--primary-strong);
}

.notice-card.is-promo .notice-card__type {
    background: rgba(12, 143, 101, 0.14);
    color: var(--success);
}

.story-card__link,
.section__link {
    font-weight: 800;
}

.split-callout {
    padding: 28px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(58, 117, 255, 0.1), rgba(255, 141, 42, 0.08));
    box-shadow: var(--shadow);
}

.advantage-card {
    padding: 24px;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.advantage-card h3,
.advantage-card p {
    color: var(--text-on-dark);
}


.page-intro {
    padding: 26px 0 0;
}

.page-intro__panel {
    padding: 32px;
}

.page-intro__panel,
.page-intro--article .article-hero,
.page-intro--not-found .not-found {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(234, 240, 248, 0.92));
}

.page-intro--article .article-hero,
.page-intro--not-found .not-found {
    padding: 32px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.page-intro--not-found .not-found {
    display: grid;
    gap: 16px;
    justify-items: start;
}

.not-found__code {
    font-size: clamp(3.4rem, 8vw, 6rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    color: var(--primary-strong);
}

.article-hero,
.application-layout,
.contact-layout,
.article-layout {
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
}

.article-body p {
    margin: 0 0 18px;
    line-height: 1.78;
    font-size: 1.02rem;
}

.article-sidebar__list {
    display: grid;
    gap: 14px;
}

.article-sidebar__item {
    display: grid;
    gap: 6px;
    padding: 14px;
    border-radius: var(--radius-sm);
    background: var(--bg-soft);
}

.contact-layout__main,
.application-layout__form {
    display: grid;
    gap: 24px;
}

.map-placeholder__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: 24px;
    align-items: start;
}

.site-form {
    display: grid;
    gap: 18px;
}

.field {
    display: grid;
    gap: 8px;
}

.field span,
.checkbox span {
    font-weight: 700;
}

.field input,
.field select,
.field textarea {
    width: 100%;
    min-height: 52px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--text);
}

.field textarea {
    min-height: 140px;
    resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.site-menu-toggle:focus-visible,
.button:focus-visible,
.site-nav a:focus-visible {
    outline: 2px solid rgba(58, 117, 255, 0.35);
    outline-offset: 2px;
}

.checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.checkbox input {
    width: 18px;
    height: 18px;
    margin-top: 3px;
}

.field__error {
    font-size: 0.92rem;
    color: var(--danger);
}

.notice-success {
    padding: 18px 20px;
    border-radius: var(--radius-md);
    background: rgba(12, 143, 101, 0.12);
    color: #0a6f50;
    font-weight: 700;
}

.site-form__actions {
    align-items: center;
}

.site-form__actions p {
    margin: 0;
    max-width: 30rem;
    color: var(--text-muted);
    font-size: 0.96rem;
}

.site-footer {
    padding: 56px 0 28px;
    background: var(--surface-dark);
    color: var(--text-on-dark);
}

.site-footer__grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.site-logo--footer .site-logo__text small,
.site-footer__text,
.site-footer__bottom,
.site-footer__list li {
    color: rgba(247, 251, 255, 0.74);
}

.site-footer h2 {
    margin: 0 0 14px;
    font-size: 1rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-footer__list {
    display: grid;
    gap: 10px;
}

.site-footer__bottom {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.92rem;
}

@media (max-width: 1024px) {    .article-hero,
    .application-layout,
    .contact-layout,
    .article-layout,
    .map-placeholder__grid {
        grid-template-columns: 1fr;
    }


    .site-header__main {
        min-height: 78px;
    }
}

@media (max-width: 920px) {
    .site-menu-toggle {
        display: inline-flex;
    }

    .site-header__panel {
        position: absolute;
        top: calc(100% + 8px);
        left: 16px;
        right: 16px;
        display: none;
        flex-direction: column;
        align-items: stretch;
        padding: 18px;
        border: 1px solid rgba(23, 48, 75, 0.1);
        border-radius: var(--radius-lg);
        background: rgba(255, 255, 255, 0.98);
        box-shadow: var(--shadow);
    }

    .site-header[data-menu-open="true"] .site-header__panel {
        display: flex;
    }

    .site-nav ul {
        flex-direction: column;
        gap: 6px;
    }

    .site-header__cta {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .site-header__top-inner,
    .site-header__links,
    .site-header__status,
    .site-banner__inner,
    .section__head,
    .site-footer__bottom,
    .split-callout,
    .site-form__actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .hero {
        padding-top: 24px;
    }

    .hero__content,
    .page-intro__panel {
        padding: 26px;
    }

}

@media (max-width: 480px) {
    :root {
    --ast-blue: #3A75FF;
    --ast-turquoise: #34FFE6;
    --ast-gray: #DADADA;
    --ast-dark-gray: #706F6F;
    --ast-black: #000000;
    --ast-white: #FFFFFF;
        --shell: min(100vw - 20px, 100%);
    }

    .site-header__top {
        font-size: 0.84rem;
    }

    .site-header__main {
        min-height: 72px;
    }

    .site-logo__text strong {
        font-size: 1.1rem;
    }

    .site-logo__text small {
        font-size: 0.82rem;
    }

    .hero h1,
    .page-intro h1,
    .not-found h1 {
        font-size: clamp(1.9rem, 11vw, 2.8rem);
    }

    .button {
        width: 100%;
    }

    .hero__actions,
    .split-callout__actions {
        width: 100%;
    }    .tariff-card,
    .service-card,
    .story-card,
    .notice-card,
    .info-card,
    .document-card,
    .site-form,
    .map-placeholder,
    .article-sidebar,
    .article-body,
    .not-found {
        padding: 20px;
    }
}

/* Portal Provider Redesign */

:root {
    --ast-blue: #3A75FF;
    --ast-turquoise: #34FFE6;
    --ast-gray: #DADADA;
    --ast-dark-gray: #706F6F;
    --ast-black: #000000;
    --ast-white: #FFFFFF;
    --bg: #eef3f8;
    --bg-soft: #f6f9fc;
    --surface: #ffffff;
    --surface-dark: #122238;
    --surface-ink: #0b1829;
    --text: #16293d;
    --text-muted: #586c82;
    --text-on-dark: #f7fbff;
    --line: #d8e2ee;
    --primary: #3A75FF;
    --primary-strong: #245EE8;
    --accent: #34FFE6;
    --accent-strong: #20D8C5;
    --success: #11715d;
    --warning: #9d661a;
    --warning-soft: #fff4e1;
    --danger: #bb4045;
    --danger-soft: #fdebec;
    --shadow: 0 16px 44px rgba(10, 24, 41, 0.08);
    --shadow-soft: 0 10px 24px rgba(10, 24, 41, 0.06);
    --radius-xl: 28px;
    --radius-lg: 22px;
    --radius-md: 16px;
    --radius-sm: 12px;
    --shell: min(1760px, calc(100% - 32px));
}

body {
    background:
        radial-gradient(circle at top right, rgba(58, 117, 255, 0.08), transparent 26%),
        linear-gradient(180deg, #f7fafd 0%, #eef3f8 44%, #edf2f7 100%);
    color: var(--text);
}

.shell {
    width: var(--shell);
}

.button {
    min-height: 46px;
    padding: 0 20px;
    border-radius: 14px;
    font-size: 0.95rem;
    font-weight: 700;
    box-shadow: none;
}

.button:hover,
.button:focus-visible {
    transform: translateY(-1px);
    box-shadow: var(--shadow-soft);
}

.button--primary {
    background: linear-gradient(180deg, #3A75FF, #3A75FF);
    color: var(--text-on-dark);
}

.button--secondary {
    background: #ffffff;
    border-color: rgba(58, 117, 255, 0.18);
    color: var(--primary-strong);
}

.button--ghost,
.button--utility {
    background: #f4f8fc;
    border-color: var(--line);
    color: var(--text);
}

.button--cta {
    background: linear-gradient(180deg, #f08b2f, #df6d0d);
    color: #fff;
}

.site-main {
    gap: clamp(28px, 2.6vw, 56px);
    padding-bottom: 72px;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(239, 244, 249, 0.94);
    border-bottom: 1px solid rgba(22, 41, 61, 0.08);
    backdrop-filter: blur(16px);
}

.site-header__top {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    background: linear-gradient(180deg, rgba(11, 24, 41, 0.98), rgba(18, 34, 56, 0.98));
    color: rgba(247, 251, 255, 0.9);
}

.site-header__top-inner {
    min-height: 48px;
}

.site-header__status,
.site-header__links {
    gap: 18px;
}

.site-header__status span:first-child {
    color: #fff;
    font-weight: 700;
}

.site-header__links a {
    color: rgba(247, 251, 255, 0.88);
}

.site-header__main {
    min-height: 86px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: 24px;
    align-items: center;
}

.site-logo {
    gap: 16px;
}

.site-logo__mark {
    width: clamp(56px, 4.8vw, 68px);
}

.site-logo__text {
    max-width: 17rem;
}

.site-logo__text small {
    display: block;
    color: var(--text-muted);
    font-size: 0.86rem;
    line-height: 1.45;
}

.site-nav {
    min-width: 0;
}

.site-nav ul {
    justify-content: center;
    gap: 8px;
    flex-wrap: nowrap;
}

.site-nav a {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--text-muted);
    font-size: 0.95rem;
    font-weight: 700;
}

.site-nav a.is-active,
.site-nav a:hover,
.site-nav a:focus-visible {
    border-color: rgba(58, 117, 255, 0.12);
    background: rgba(58, 117, 255, 0.08);
    color: var(--primary-strong);
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.site-header__cta {
    white-space: nowrap;
}

.site-menu-toggle {
    display: none;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    color: var(--text);
}

.site-menu-toggle span:not(.site-menu-toggle__label) {
    width: 16px;
    height: 2px;
    background: var(--surface-dark);
}

.site-header__panel {
    display: none;
    margin: 0 0 16px;
    padding: 18px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: var(--shadow);
}

.site-header[data-menu-open="true"] .site-header__panel {
    display: grid;
    gap: 16px;
}

.site-mobile-nav ul,
.site-header__panel-actions {
    display: grid;
    gap: 10px;
}

.site-mobile-nav a {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 12px;
    background: #f6f9fc;
    color: var(--text);
    font-weight: 700;
}

.site-mobile-nav a.is-active {
    background: rgba(58, 117, 255, 0.08);
    color: var(--primary-strong);
}

.site-header__panel-actions .button {
    width: 100%;
}

.site-banner {
    border-bottom: 1px solid rgba(22, 41, 61, 0.08);
}

.site-banner__inner {
    padding: 14px 0;
    font-size: 0.95rem;
    font-weight: 700;
}

.portal-home {
    display: grid;
    gap: clamp(24px, 2.2vw, 40px);
    padding-top: 12px;
}

.portal-section {
    display: grid;
}

.portal-section--compact {
    padding-top: 4px;
}

.portal-panel {
    display: grid;
    gap: 22px;
    padding: clamp(18px, 1.9vw, 30px);
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: var(--radius-lg);
    background: #ffffff;
    box-shadow: var(--shadow);
}

.portal-shortcuts {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.portal-shortcut {
    display: grid;
    gap: 8px;
    min-height: 104px;
    padding: 18px 20px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(246, 249, 252, 0.92), rgba(255, 255, 255, 1)),
        #fff;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.portal-shortcut:hover,
.portal-shortcut:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(58, 117, 255, 0.2);
    box-shadow: var(--shadow-soft);
}

.portal-shortcut__caption {
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-shortcut strong {
    font-size: 1.04rem;
    line-height: 1.25;
}

.portal-hero {
    grid-template-columns: minmax(0, 1.28fr) minmax(420px, 0.92fr);
    align-items: stretch;
    gap: clamp(22px, 2vw, 34px);
}

.portal-hero__content {
    position: relative;
    display: grid;
    align-content: start;
    gap: 20px;
    padding: clamp(24px, 3vw, 44px);
    border-radius: var(--radius-lg);
    background:
        linear-gradient(135deg, #11253f 0%, #17395f 48%, #3A75FF 100%);
    color: var(--text-on-dark);
    overflow: hidden;
}

.portal-hero__content::after {
    content: "";
    position: absolute;
    right: -30px;
    bottom: -40px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
}

.portal-eyebrow {
    margin: 0;
    color: inherit;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.portal-hero h1,
.portal-panel__head h2 {
    margin: 0;
    letter-spacing: -0.03em;
}

.portal-hero h1 {
    font-size: clamp(2.5rem, 4.5vw, 5.3rem);
    line-height: 0.98;
}

.portal-hero__lead {
    margin: 0;
    max-width: 36rem;
    color: rgba(247, 251, 255, 0.9);
    font-size: clamp(1.05rem, 1.2vw, 1.22rem);
    line-height: 1.7;
}

.portal-hero__actions,
.portal-hero__highlights,
.portal-panel__head,
.portal-contact-band__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.portal-hero__highlights {
    padding: 0;
    margin: 0;
    list-style: none;
}

.portal-hero__highlights li {
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: rgba(247, 251, 255, 0.94);
    font-size: 0.92rem;
}

.portal-hero__aside {
    display: grid;
    align-content: start;
}

.portal-facts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.portal-fact-card {
    display: grid;
    gap: 8px;
    min-height: 150px;
    padding: 20px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff, #f6f9fc);
    box-shadow: var(--shadow-soft);
}

.portal-fact-card span,
.portal-contact-card span,
.service-card__eyebrow,
.tariff-card__specs dt {
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-fact-card strong,
.portal-contact-card strong {
    font-size: 1.28rem;
    line-height: 1.2;
}

.portal-fact-card p,
.portal-contact-card p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.55;
}

.portal-workgrid,
.portal-secondary-grid {
    display: grid;
    gap: 20px;
}

.portal-workgrid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.portal-panel--tariffs {
    grid-column: span 7;
}

.portal-panel--announcements {
    grid-column: span 3;
}

.portal-panel--news {
    grid-column: span 2;
}

.portal-secondary-grid {
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.95fr);
}

.portal-panel__head {
    justify-content: space-between;
    align-items: end;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(22, 41, 61, 0.08);
}

.portal-panel__head h2 {
    font-size: clamp(1.55rem, 1.8vw, 2.35rem);
    line-height: 1.08;
}

.portal-panel__link,
.story-card__link,
.section__link {
    color: var(--primary-strong);
    font-weight: 800;
}

.portal-tariffs-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.tariff-card {
    display: grid;
    align-content: start;
    gap: 18px;
    padding: 22px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    box-shadow: none;
}

.tariff-card.is-popular {
    border-color: rgba(237, 122, 27, 0.28);
    background: linear-gradient(180deg, rgba(255, 247, 239, 0.9), #ffffff 40%);
    box-shadow: var(--shadow-soft);
}

.tariff-card__badge {
    top: 16px;
    right: 16px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(237, 122, 27, 0.14);
    color: var(--accent-strong);
    font-size: 0.76rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tariff-card h3 {
    margin: 0;
    font-size: 1.45rem;
    line-height: 1.08;
}

.tariff-card__summary {
    margin: 0;
    color: var(--text-muted);
}

.tariff-card__specs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
}

.tariff-card__specs div {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: 14px;
    background: #f5f8fc;
}

.tariff-card__specs dd {
    margin: 0;
    color: var(--primary-strong);
    font-size: 1.14rem;
    font-weight: 900;
}

.tariff-card__audience {
    margin: 0;
    color: var(--text-muted);
}

.tariff-card__features {
    display: grid;
    gap: 10px;
}

.tariff-card__features li,
.service-card li,
.steps-list li {
    position: relative;
    padding-left: 18px;
}

.tariff-card__features li::before,
.service-card li::before,
.steps-list li::before {
    top: 0.58em;
    width: 7px;
    height: 7px;
}

.portal-feed {
    display: grid;
    gap: 14px;
}

.notice-card,
.story-card {
    display: grid;
    gap: 12px;
    padding: 18px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: 16px;
    box-shadow: none;
}

.notice-card {
    background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.portal-feed--priority .notice-card {
    padding: 20px;
}

.story-card {
    background: #fbfdff;
}

.story-card__meta,
.notice-card__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0;
    color: var(--text-muted);
    font-size: 0.8rem;
}

.notice-card__type {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 11px;
    border-radius: 999px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.notice-card.is-important {
    border-color: rgba(58, 117, 255, 0.16);
}

.notice-card.is-important .notice-card__type {
    background: rgba(58, 117, 255, 0.1);
    color: var(--primary-strong);
}

.notice-card.is-maintenance {
    border-color: rgba(157, 102, 26, 0.16);
}

.notice-card.is-maintenance .notice-card__type {
    background: rgba(157, 102, 26, 0.12);
    color: var(--warning);
}

.notice-card.is-incident {
    border-color: rgba(187, 64, 69, 0.18);
    background: linear-gradient(180deg, #ffffff, #fff7f7);
}

.notice-card.is-incident .notice-card__type {
    background: rgba(187, 64, 69, 0.12);
    color: var(--danger);
}

.notice-card.is-promo {
    border-color: rgba(17, 113, 93, 0.18);
}

.notice-card.is-promo .notice-card__type {
    background: rgba(17, 113, 93, 0.12);
    color: var(--success);
}

.story-card h3,
.notice-card h3 {
    margin: 0;
    font-size: 1.14rem;
    line-height: 1.28;
}

.story-card p,
.notice-card p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.6;
}

.portal-services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 16px;
}

.service-card--portal {
    min-height: 170px;
    align-content: start;
    padding: 18px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.service-card--portal h3 {
    margin: 0;
}

.service-card--portal p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.6;
}

.portal-advantages-grid {
    display: grid;
    gap: 14px;
}

.advantage-card--portal {
    padding: 20px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff, #f7fafd);
}

.advantage-card--portal h3 {
    margin: 0 0 10px;
    color: var(--text);
}

.advantage-card--portal p {
    margin: 0;
    color: var(--text-muted);
}

.portal-contact-band {
    display: grid;
    gap: 22px;
}

.portal-contact-band__intro {
    display: grid;
    gap: 10px;
    max-width: 52rem;
}

.portal-contact-band__intro h2 {
    margin: 0;
    font-size: clamp(1.7rem, 2vw, 2.6rem);
    line-height: 1.08;
}

.portal-contact-band__intro p:last-child {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.7;
}

.portal-contact-band__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.portal-contact-card {
    display: grid;
    gap: 8px;
    padding: 18px;
    border: 1px solid rgba(22, 41, 61, 0.08);
    border-radius: 16px;
    background: #f7fafd;
}

.section {
    gap: 24px;
}

.section__head h2 {
    font-size: clamp(1.7rem, 2vw, 2.5rem);
}

.split-callout {
    border: 1px solid rgba(22, 41, 61, 0.08);
    background: linear-gradient(135deg, rgba(58, 117, 255, 0.08), rgba(237, 122, 27, 0.08));
    box-shadow: var(--shadow);
}.page-intro__panel,
.page-intro--article .article-hero,
.page-intro--not-found .not-found,
.info-card,
.document-card,
.map-placeholder,
.article-body,
.article-sidebar,
.site-form {
    border: 1px solid rgba(22, 41, 61, 0.08);
    background: #ffffff;
    box-shadow: var(--shadow);
}

.site-footer {
    margin-top: 8px;
    padding: 46px 0 26px;
    background: linear-gradient(180deg, #0d1827, #102033);
    color: var(--text-on-dark);
}

.site-footer__grid {
    grid-template-columns: minmax(260px, 1.4fr) repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.site-footer__brand,
.site-footer__column {
    display: grid;
    align-content: start;
    gap: 14px;
}

.site-footer__brand .site-logo__text small,
.site-footer__text,
.site-footer__bottom,
.site-footer__list li {
    color: rgba(247, 251, 255, 0.72);
}

.site-footer__text {
    margin: 0;
    line-height: 1.7;
}

.site-footer h2 {
    margin: 0;
    font-size: 0.92rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(247, 251, 255, 0.9);
}

.site-footer__list {
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.site-footer a {
    color: rgba(247, 251, 255, 0.88);
}

.site-footer a:hover,
.site-footer a:focus-visible {
    color: #ffffff;
}

.site-footer__bottom {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.92rem;
}

@media (max-width: 1500px) {
    .site-header__main {
        gap: 16px;
    }

    .portal-workgrid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .portal-panel--tariffs {
        grid-column: span 12;
    }

    .portal-panel--announcements,
    .portal-panel--news {
        grid-column: span 6;
    }

    .portal-secondary-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1180px) {
    .site-header__main {
        grid-template-columns: auto 1fr auto auto;
        gap: 18px;
    }

    .site-nav ul {
        justify-content: flex-start;
    }

    .portal-hero {
        grid-template-columns: 1fr;
    }

    .portal-tariffs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-contact-band__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .site-nav,
    .site-header__actions .button--utility {
        display: none;
    }

    .site-menu-toggle {
        display: inline-flex;
    }

    .site-header__actions {
        justify-content: flex-end;
    }

    .portal-shortcuts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .portal-panel--announcements,
    .portal-panel--news {
        grid-column: span 12;
    }
}

@media (max-width: 768px) {
    .site-header__top-inner,
    .site-header__links,
    .site-header__status,
    .site-banner__inner,
    .portal-panel__head,
    .portal-contact-band__actions,
    .section__head,
    .site-footer__bottom,
    .split-callout,
    .site-form__actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .portal-shortcuts,
    .portal-tariffs-grid,
    .portal-services-grid,
    .portal-contact-band__grid {
        grid-template-columns: 1fr;
    }

    .portal-facts-grid {
        grid-template-columns: 1fr;
    }

    .portal-hero__actions {
        width: 100%;
    }

    .portal-hero__actions .button {
        flex: 1 1 100%;
    }

    .portal-hero h1 {
        font-size: clamp(2.15rem, 10vw, 3.7rem);
    }

    .site-footer__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    :root {
    --ast-blue: #3A75FF;
    --ast-turquoise: #34FFE6;
    --ast-gray: #DADADA;
    --ast-dark-gray: #706F6F;
    --ast-black: #000000;
    --ast-white: #FFFFFF;
        --shell: min(100%, calc(100vw - 20px));
    }

    .site-header__top {
        font-size: 0.82rem;
    }

    .site-header__main {
        grid-template-columns: auto auto auto;
        min-height: 74px;
        gap: 12px;
        justify-content: space-between;
    }

    .site-logo {
        min-width: 0;
    }

    .site-logo__mark {
        width: 52px;
    }

    .site-header__actions .button--cta,
    .site-header__actions .button--primary,
    .site-header__actions .button--secondary {
        min-height: 42px;
        padding: 0 14px;
        font-size: 0.9rem;
    }

    .site-menu-toggle {
        padding: 10px 12px;
    }

    .site-menu-toggle__label {
        display: none;
    }

    .portal-shortcuts {
        grid-template-columns: 1fr;
    }

    .portal-shortcut,
    .portal-fact-card,
    .tariff-card,
    .story-card,
    .notice-card,
    .service-card--portal,
    .portal-contact-card,
    .advantage-card--portal,
    .portal-panel,
    .page-intro__panel,
    .info-card,
    .document-card,
    .map-placeholder,
    .article-body,
    .article-sidebar,
    .site-form {
        padding: 18px;
    }
}

/* Managed City Network AST pass */

.site-banner {
    position: relative;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(12, 34, 61, 0.1);
    background:
        radial-gradient(circle at 12% 50%, rgba(111, 177, 255, 0.2), transparent 22%),
        linear-gradient(90deg, #0c2036 0%, #13355a 54%, #184e85 100%);
    color: #f7fbff;
}

.site-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.08) 0 2px, transparent 2px 100%),
        linear-gradient(0deg, rgba(255, 255, 255, 0.03) 0 2px, transparent 2px 100%);
    background-size: 120px 100%, 100% 100%;
    opacity: 0.12;
    pointer-events: none;
}

.site-banner__inner {
    position: relative;
    padding: 16px 0;
    gap: 18px;
}

.site-banner__inner strong {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-right: 10px;
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

.site-banner a {
    color: #dcedff;
}

.portal-home {
    gap: clamp(22px, 2.4vw, 42px);
    padding-top: 16px;
}

.portal-panel--hero {
    position: relative;
    padding: clamp(18px, 1.9vw, 28px);
    border-color: rgba(16, 64, 120, 0.12);
    background:
        radial-gradient(circle at top right, rgba(91, 153, 255, 0.2), transparent 30%),
        radial-gradient(circle at bottom left, rgba(237, 122, 27, 0.1), transparent 24%),
        linear-gradient(160deg, #081423 0%, #0f2137 42%, #16375a 100%);
    box-shadow: 0 28px 80px rgba(6, 18, 32, 0.22);
    overflow: hidden;
}

.portal-panel--hero::before,
.portal-panel--hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.portal-panel--hero::before {
    top: -160px;
    right: -100px;
    width: 360px;
    height: 360px;
    border: 1px solid rgba(143, 192, 255, 0.14);
}

.portal-panel--hero::after {
    bottom: -130px;
    left: -90px;
    width: 280px;
    height: 280px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.portal-hero {
    position: relative;
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
    gap: clamp(20px, 2vw, 34px);
    align-items: stretch;
}

.portal-hero__content {
    min-height: 100%;
    padding: clamp(28px, 3vw, 44px);
    border: 1px solid rgba(166, 206, 255, 0.14);
    background:
        linear-gradient(135deg, rgba(8, 23, 39, 0.96), rgba(18, 50, 84, 0.9)),
        radial-gradient(circle at top left, rgba(126, 180, 255, 0.15), transparent 34%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.portal-hero__content::after {
    right: -10px;
    bottom: -20px;
    width: 240px;
    height: 240px;
    background:
        radial-gradient(circle, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0));
    opacity: 0.8;
}

.portal-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 10px 14px;
    border: 1px solid rgba(163, 206, 255, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    color: rgba(247, 251, 255, 0.92);
    font-size: 0.9rem;
    font-weight: 700;
}

.portal-status-pill__signal {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #71d09d;
    box-shadow: 0 0 0 0 rgba(113, 208, 157, 0.5);
    animation: network-signal-pulse 2.6s ease-in-out infinite;
}

.portal-hero h1 {
    max-width: 16ch;
    text-wrap: balance;
}

.portal-hero__lead {
    max-width: 40rem;
    color: rgba(233, 243, 255, 0.88);
}

.portal-hero__highlights li {
    border: 1px solid rgba(185, 219, 255, 0.14);
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(12px);
}

.portal-hero__aside {
    gap: 18px;
}

.portal-network-card,
.portal-fact-card,
.network-control-card,
.tariff-card,
.notice-card,
.story-card,
.service-card--portal,
.advantage-card--portal,
.portal-contact-card,
.portal-shortcut {
    transition:
        transform 0.24s ease,
        box-shadow 0.24s ease,
        border-color 0.24s ease,
        background-color 0.24s ease;
}

.portal-network-card:hover,
.portal-fact-card:hover,
.network-control-card:hover,
.tariff-card:hover,
.notice-card:hover,
.story-card:hover,
.service-card--portal:hover,
.advantage-card--portal:hover,
.portal-contact-card:hover,
.portal-shortcut:hover,
.portal-network-card:focus-within,
.portal-fact-card:focus-within,
.network-control-card:focus-within,
.tariff-card:focus-within,
.notice-card:focus-within,
.story-card:focus-within,
.service-card--portal:focus-within,
.advantage-card--portal:focus-within,
.portal-contact-card:focus-within,
.portal-shortcut:focus-within {
    transform: translateY(-4px);
    box-shadow: 0 18px 42px rgba(10, 24, 41, 0.12);
}

.portal-network-card {
    position: relative;
    display: grid;
    gap: 18px;
    padding: 22px;
    border: 1px solid rgba(166, 206, 255, 0.14);
    border-radius: 20px;
    background:
        linear-gradient(180deg, rgba(10, 26, 44, 0.92), rgba(17, 41, 68, 0.94)),
        #0d1d30;
    color: #f7fbff;
    overflow: hidden;
}

.portal-network-card::after {
    content: "";
    position: absolute;
    inset: auto -80px -80px auto;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0));
    opacity: 0.55;
    pointer-events: none;
}

.portal-network-card__head {
    position: relative;
    display: grid;
    gap: 10px;
    z-index: 1;
}

.portal-network-card__head h2 {
    margin: 0;
    font-size: clamp(1.45rem, 2vw, 2.2rem);
    line-height: 1.08;
}

.portal-network-card__head p:last-child {
    margin: 0;
    color: rgba(225, 238, 255, 0.76);
    line-height: 1.65;
}

.portal-network-map {
    position: relative;
    min-height: 320px;
    border: 1px solid rgba(178, 217, 255, 0.1);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(8, 19, 33, 0.94), rgba(11, 26, 43, 0.98));
    overflow: hidden;
}

.portal-network-svg {
    display: block;
    width: 100%;
    height: 100%;
}

.portal-network-grid line {
    stroke: rgba(194, 220, 255, 0.08);
    stroke-width: 1;
}

.portal-network-zone {
    fill: rgba(37, 112, 198, 0.12);
    stroke: rgba(120, 186, 255, 0.18);
    stroke-width: 1.5;
}

.portal-coverage-ring {
    fill: none;
    stroke: rgba(135, 193, 255, 0.26);
    stroke-width: 1.5;
    stroke-dasharray: 8 10;
}

.portal-coverage-ring--inner {
    stroke: rgba(126, 193, 255, 0.36);
    animation: network-flow 18s linear infinite;
}

.portal-coverage-ring--outer {
    stroke: rgba(126, 193, 255, 0.18);
    animation: network-flow-reverse 26s linear infinite;
}

.portal-network-path {
    fill: none;
    stroke: rgba(90, 163, 255, 0.22);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 10 12;
    animation: network-flow 14s linear infinite;
}

.portal-network-path--fast {
    stroke: rgba(255, 160, 84, 0.42);
    stroke-dasharray: 7 10;
    animation-duration: 9s;
}

.portal-node {
    fill: #9dd0ff;
    stroke: rgba(243, 250, 255, 0.3);
    stroke-width: 2;
    opacity: 0.82;
    animation: network-node-pulse 3.4s ease-in-out infinite;
    transform-origin: center;
    transform-box: fill-box;
}

.portal-node--hub {
    fill: url(#networkGlow);
    stroke: rgba(255, 255, 255, 0.42);
    opacity: 1;
}

.portal-node--core {
    fill: #6bb3ff;
}

.portal-node--pulse {
    fill: none;
    stroke: rgba(151, 206, 255, 0.42);
    stroke-width: 2;
    opacity: 0.5;
    animation: network-ring-pulse 2.8s ease-in-out infinite;
}

.portal-network-icon rect,
.portal-network-icon path,
.portal-network-icon line {
    fill: none;
    stroke: rgba(239, 247, 255, 0.94);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.portal-network-icon--camera path {
    stroke: rgba(255, 207, 164, 0.98);
}

.portal-network-labels text {
    fill: rgba(233, 242, 255, 0.92);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.portal-network-legend {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.portal-network-legend li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(229, 241, 255, 0.82);
    line-height: 1.5;
}

.portal-network-legend span {
    flex: 0 0 auto;
    width: 28px;
    height: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(112, 180, 255, 0.2), rgba(112, 180, 255, 0.8));
}

.portal-network-legend li:nth-child(2) span {
    background: linear-gradient(90deg, rgba(255, 173, 109, 0.2), rgba(255, 173, 109, 0.84));
}

.portal-network-legend li:nth-child(3) span {
    background: linear-gradient(90deg, rgba(148, 214, 255, 0.2), rgba(148, 214, 255, 0.62));
}

.portal-fact-card {
    min-height: 0;
    border-color: rgba(58, 117, 255, 0.08);
    background:
        linear-gradient(180deg, #ffffff, #f8fbff);
}

.portal-fact-card strong {
    color: var(--primary-strong);
}

.portal-shortcuts {
    gap: 16px;
}

.portal-shortcut {
    min-height: 0;
    padding: 20px 22px;
    border-color: rgba(58, 117, 255, 0.1);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(243, 248, 255, 0.96));
}

.portal-shortcut strong {
    color: var(--surface-ink);
}

.portal-panel--network-control {
    gap: 24px;
    border-color: rgba(58, 117, 255, 0.1);
    background:
        radial-gradient(circle at top right, rgba(111, 177, 255, 0.12), transparent 26%),
        linear-gradient(180deg, #fdfefe, #f6faff);
}

.network-control-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.network-control-card {
    position: relative;
    display: grid;
    gap: 12px;
    min-height: 190px;
    padding: 22px;
    border: 1px solid rgba(58, 117, 255, 0.08);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(240, 247, 255, 0.98));
}

.network-control-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    border-radius: 18px 0 0 18px;
    background: linear-gradient(180deg, #1e6dd7, #58a7ff);
}

.network-control-card__index {
    display: inline-flex;
    width: fit-content;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(58, 117, 255, 0.08);
    color: var(--primary-strong);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.network-control-card h3 {
    margin: 0;
    font-size: 1.18rem;
    line-height: 1.24;
}

.network-control-card p,
.portal-panel__intro {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.65;
}

.portal-workgrid {
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
    align-items: start;
}

.portal-panel--tariffs {
    grid-column: auto;
}

.portal-feed-column {
    display: grid;
    gap: 20px;
}

.portal-panel--announcements,
.portal-panel--news {
    grid-column: auto;
}

.portal-panel--announcements {
    border-color: rgba(58, 117, 255, 0.12);
    background:
        linear-gradient(180deg, rgba(248, 251, 255, 0.98), rgba(240, 247, 255, 0.98));
}

.portal-panel--news {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 250, 253, 0.98));
}

.portal-panel__intro {
    max-width: 44rem;
}

.portal-feed--priority .notice-card:first-child {
    border-color: rgba(58, 117, 255, 0.22);
    background:
        radial-gradient(circle at top right, rgba(117, 178, 255, 0.16), transparent 34%),
        linear-gradient(180deg, #ffffff, #f2f8ff);
    box-shadow: 0 16px 34px rgba(16, 64, 120, 0.1);
}

.notice-card,
.story-card {
    position: relative;
}

.notice-card::before,
.story-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 18px;
    bottom: 18px;
    width: 4px;
    border-radius: 999px;
    background: rgba(58, 117, 255, 0.14);
}

.notice-card {
    padding-left: 22px;
}

.story-card {
    padding-left: 22px;
    border-color: rgba(22, 41, 61, 0.06);
    background:
        linear-gradient(180deg, rgba(251, 253, 255, 0.96), rgba(246, 249, 252, 0.96));
}

.story-card::before {
    background: rgba(22, 41, 61, 0.12);
}

.notice-card h3 a,
.story-card h3 a {
    text-decoration: none;
}

.notice-card.is-important::before {
    background: linear-gradient(180deg, #3A75FF, #6db1ff);
}

.notice-card.is-maintenance::before {
    background: linear-gradient(180deg, #bc8030, #f1bb74);
}

.notice-card.is-incident::before {
    background: linear-gradient(180deg, #c24a4f, #ff9c9f);
}

.notice-card.is-promo::before {
    background: linear-gradient(180deg, #0d8b6d, #7fddb4);
}

.portal-services-grid {
    gap: 18px;
}

.service-card--portal {
    position: relative;
    min-height: 188px;
    padding: 20px;
    border-color: rgba(58, 117, 255, 0.1);
    background:
        linear-gradient(180deg, #ffffff, #f6faff);
    overflow: hidden;
}

.service-card--portal::after {
    content: "";
    position: absolute;
    inset: auto -34px -34px auto;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    border: 1px solid rgba(58, 117, 255, 0.12);
}

.advantage-card--portal {
    border-color: rgba(58, 117, 255, 0.08);
    background:
        linear-gradient(180deg, #ffffff, #f7fafd);
}

.portal-contact-band {
    gap: 24px;
    border-color: rgba(58, 117, 255, 0.1);
    background:
        radial-gradient(circle at top right, rgba(126, 184, 255, 0.12), transparent 28%),
        linear-gradient(180deg, #fbfdff, #f4f9ff);
}

.portal-contact-card {
    border-color: rgba(58, 117, 255, 0.08);
    background:
        linear-gradient(180deg, #ffffff, #f7fbff);
}

.site-footer {
    padding-top: 38px;
    background:
        radial-gradient(circle at top right, rgba(108, 170, 255, 0.12), transparent 26%),
        linear-gradient(180deg, #08121f 0%, #0d1827 52%, #0f1d2f 100%);
}


.site-footer__grid {
    grid-template-columns: minmax(280px, 1.3fr) repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.site-footer__brand,
.site-footer__column {
    padding: 20px 0;
}

.site-footer__brand {
    padding-right: 12px;
}

.site-footer__list {
    gap: 12px;
}

.site-footer__list li {
    line-height: 1.55;
}

@keyframes network-flow {
    from {
        stroke-dashoffset: 0;
    }

    to {
        stroke-dashoffset: -180;
    }
}

@keyframes network-flow-reverse {
    from {
        stroke-dashoffset: 0;
    }

    to {
        stroke-dashoffset: 200;
    }
}

@keyframes network-node-pulse {
    0%,
    100% {
        opacity: 0.76;
        transform: scale(1);
    }

    50% {
        opacity: 1;
        transform: scale(1.08);
    }
}

@keyframes network-ring-pulse {
    0%,
    100% {
        opacity: 0.2;
        transform: scale(0.92);
    }

    50% {
        opacity: 0.6;
        transform: scale(1.04);
    }
}

@keyframes network-signal-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(113, 208, 157, 0.56);
        transform: scale(1);
    }

    50% {
        box-shadow: 0 0 0 8px rgba(113, 208, 157, 0);
        transform: scale(1.12);
    }
}

@media (max-width: 1500px) {
    .portal-hero {
        grid-template-columns: minmax(0, 1fr) minmax(380px, 0.9fr);
    }
}

@media (max-width: 1280px) {
    .portal-workgrid {
        grid-template-columns: 1fr;
    }

    .network-control-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }    .site-footer__grid {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 1180px) {
    .portal-hero {
        grid-template-columns: 1fr;
    }

    .portal-network-map {
        min-height: 280px;
    }
}

@media (max-width: 980px) {
    .network-control-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .site-banner__inner {
        align-items: flex-start;
    }

    .portal-status-pill {
        width: 100%;
        justify-content: flex-start;
    }    .portal-network-card,
    .portal-contact-band {
        padding: 20px;
    }

    .portal-network-map {
        min-height: 240px;
    }

    .portal-network-legend li {
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .portal-hero__content,
    .portal-network-card {
        padding: 20px;
    }

    .portal-network-map {
        min-height: 210px;
    }

}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .portal-network-path,
    .portal-coverage-ring,
    .portal-node,
    .portal-node--pulse,
    .portal-status-pill__signal {
        animation: none !important;
    }
}

/* AST transparent logo adjustment */
.site-logo__image {
    width: clamp(132px, 8vw, 176px);
    max-height: 54px;
    height: auto;
    object-fit: contain;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0;
}

.site-logo--footer .site-logo__image {
    width: clamp(116px, 7vw, 152px);
    max-height: 48px;
    filter: none;
}

@media (max-width: 760px) {
    .site-logo__image {
        width: 124px;
        max-height: 48px;
    }
}


/* AST compact footer after removing second hero */
.site-footer {
    padding-top: clamp(22px, 2vw, 34px) !important;
    padding-bottom: 14px !important;
}

.site-footer__grid {
    grid-template-columns: minmax(220px, 1.05fr) repeat(4, minmax(130px, 0.8fr)) !important;
    gap: clamp(16px, 2vw, 30px) !important;
    align-items: start !important;
}

.site-footer__brand,
.site-footer__column {
    padding: 0 !important;
}

.site-footer__brand {
    gap: 12px !important;
}

.site-footer__text {
    max-width: 340px !important;
    margin: 0 !important;
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
}

.site-footer__column {
    gap: 8px !important;
}

.site-footer__column h2 {
    margin: 0 0 4px !important;
    font-size: 0.76rem !important;
    letter-spacing: 0.12em !important;
}

.site-footer__list {
    gap: 7px !important;
}.site-footer__list li,
.site-footer__list a {
    font-size: 0.9rem !important;
    line-height: 1.38 !important;
}

.site-footer__bottom {
    margin-top: 14px !important;
    padding-top: 12px !important;
    font-size: 0.84rem !important;
}

@media (max-width: 1180px) {
    .site-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .site-footer__brand {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 640px) {
    .site-footer__grid {
        grid-template-columns: 1fr !important;
    }

    .site-footer__bottom {
        gap: 6px !important;
    }
}


/* AST coverage map design block */
.portal-section--coverage-check {
    margin-top: clamp(18px, 2vw, 30px);
}

.portal-coverage-check {
    display: grid;
    grid-template-columns: minmax(320px, 0.78fr) minmax(420px, 1.22fr);
    gap: clamp(18px, 2vw, 30px);
    align-items: stretch;
    padding: clamp(20px, 2vw, 30px);
    background:
        radial-gradient(circle at top right, rgba(63, 137, 222, 0.12), transparent 34%),
        linear-gradient(180deg, #ffffff, #f6faff);
}

.portal-coverage-check__content {
    display: grid;
    align-content: start;
    gap: 14px;
}

.portal-coverage-check__content h2 {
    max-width: 780px;
}

.portal-coverage-check__content p {
    max-width: 760px;
    margin: 0;
    color: var(--text-muted);
    line-height: 1.6;
}

.coverage-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    margin-top: 4px;
}

.coverage-search input {
    width: 100%;
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid rgba(58, 117, 255, 0.16);
    border-radius: 14px;
    background: #ffffff;
    color: var(--surface-ink);
    font: inherit;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.coverage-search input:focus {
    outline: 3px solid rgba(28, 103, 203, 0.16);
    border-color: rgba(28, 103, 203, 0.42);
}

.coverage-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

.coverage-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 11px;
    border: 1px solid rgba(58, 117, 255, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.84);
    color: var(--text-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.coverage-map-preview {
    display: grid;
    grid-template-rows: auto minmax(260px, 1fr) auto;
    gap: 12px;
    min-height: 390px;
    padding: 16px;
    border: 1px solid rgba(58, 117, 255, 0.12);
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(13, 31, 50, 0.98), rgba(18, 48, 80, 0.98));
    color: #f7fbff;
    overflow: hidden;
}

.coverage-map-preview__top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    color: rgba(226, 239, 255, 0.78);
    font-size: 0.84rem;
}

.coverage-map-preview__top span {
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.coverage-map-preview__top strong {
    color: #ffffff;
}

.coverage-map-preview__canvas {
    position: relative;
    min-height: 260px;
    border: 1px solid rgba(188, 221, 255, 0.12);
    border-radius: 18px;
    background:
        radial-gradient(circle at 22% 30%, rgba(80, 154, 240, 0.16), transparent 22%),
        radial-gradient(circle at 74% 60%, rgba(239, 127, 33, 0.1), transparent 24%),
        linear-gradient(180deg, rgba(7, 18, 30, 0.78), rgba(10, 28, 48, 0.92));
    overflow: hidden;
}

.coverage-grid-line {
    position: absolute;
    background: rgba(188, 221, 255, 0.08);
}

.coverage-grid-line--h1 {
    left: 0;
    right: 0;
    top: 33%;
    height: 1px;
}

.coverage-grid-line--h2 {
    left: 0;
    right: 0;
    top: 66%;
    height: 1px;
}

.coverage-grid-line--v1 {
    top: 0;
    bottom: 0;
    left: 32%;
    width: 1px;
}

.coverage-grid-line--v2 {
    top: 0;
    bottom: 0;
    left: 68%;
    width: 1px;
}

.coverage-cable {
    position: absolute;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #63a8f5, #f08a32);
    box-shadow: 0 0 18px rgba(96, 168, 245, 0.28);
    transform-origin: left center;
}

.coverage-cable--main {
    left: 9%;
    top: 51%;
    width: 82%;
    transform: rotate(-7deg);
}

.coverage-cable--north {
    left: 19%;
    top: 35%;
    width: 38%;
    transform: rotate(24deg);
    opacity: 0.74;
}

.coverage-cable--south {
    left: 48%;
    top: 63%;
    width: 34%;
    transform: rotate(18deg);
    opacity: 0.72;
}

.coverage-node {
    position: absolute;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #8ec6ff;
    border: 3px solid rgba(255, 255, 255, 0.62);
    box-shadow: 0 0 0 8px rgba(111, 177, 255, 0.1);
}

.coverage-node--core {
    left: 48%;
    top: 45%;
    width: 20px;
    height: 20px;
    background: #f08a32;
}

.coverage-node--a {
    left: 20%;
    top: 41%;
}

.coverage-node--b {
    right: 18%;
    top: 50%;
}

.coverage-node--c {
    left: 63%;
    bottom: 24%;
}

.coverage-zone {
    position: absolute;
    display: inline-flex;
    padding: 7px 10px;
    border: 1px solid rgba(188, 221, 255, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: rgba(247, 251, 255, 0.9);
    font-size: 0.8rem;
    font-weight: 800;
    backdrop-filter: blur(10px);
}

.coverage-zone--city {
    left: 12%;
    top: 16%;
}

.coverage-zone--trusovo {
    left: 13%;
    bottom: 16%;
}

.coverage-zone--lenino {
    right: 12%;
    top: 18%;
}

.coverage-zone--request {
    right: 10%;
    bottom: 14%;
}

.coverage-map-preview p {
    margin: 0;
    color: rgba(226, 239, 255, 0.74);
    font-size: 0.9rem;
    line-height: 1.5;
}

@media (max-width: 1080px) {
    .portal-coverage-check {
        grid-template-columns: 1fr;
    }

    .coverage-map-preview {
        min-height: 330px;
    }
}

@media (max-width: 640px) {
    .portal-coverage-check {
        padding: 18px;
    }

    .coverage-search {
        grid-template-columns: 1fr;
    }

    .coverage-search .button {
        width: 100%;
    }

    .coverage-map-preview {
        min-height: 300px;
        padding: 12px;
    }

    .coverage-map-preview__top {
        align-items: flex-start;
        flex-direction: column;
    }

    .coverage-zone {
        font-size: 0.72rem;
        padding: 6px 8px;
    }
}

/* AST public homepage */
:root {
    --ast-blue: #3A75FF;
    --ast-turquoise: #34FFE6;
    --ast-gray: #DADADA;
    --ast-dark-gray: #706F6F;
    --ast-black: #000000;
    --ast-white: #FFFFFF;
    --ast-theme-ink: #132235;
    --ast-theme-ink-soft: #24384f;
    --ast-theme-muted: #5f7084;
    --ast-theme-page: #f1f4f7;
    --ast-theme-page-2: #e9eef4;
    --ast-theme-card: #f8fafc;
    --ast-theme-card-2: #eef3f7;
    --ast-theme-border: rgba(31, 53, 78, 0.13);
    --ast-theme-blue: #1769c7;
    --ast-theme-orange: #34ffe6;
}

.site-body {
    background: var(--ast-theme-page);
}

.site-header__top {
    background: #142235;
}

.site-header__main,
.site-header__panel {
    background: rgba(246, 248, 251, 0.94);
}

.site-banner {
    background: #e8eef5;
    border-top: 1px solid rgba(31, 53, 78, 0.08);
    border-bottom: 1px solid rgba(31, 53, 78, 0.10);
    color: #24384f;
}

.site-banner__inner {
    min-height: 42px;
    padding-block: 8px;
    font-size: 0.88rem;
}

.site-banner strong,
.site-banner .site-banner__badge,
.site-banner [class*="badge"],
.site-banner a {
    color: #174f91;
    font-weight: 800;
}

.ast-home {
    --ast-surface: var(--ast-theme-card);
    --ast-surface-2: var(--ast-theme-card-2);
    --ast-border: var(--ast-theme-border);
    --ast-text: var(--ast-theme-ink);
    --ast-muted: var(--ast-theme-muted);
    --ast-blue: var(--ast-theme-blue);
    --ast-gap: clamp(12px, 0.9vw, 18px);
    --ast-section-gap: clamp(18px, 1.7vw, 30px);
    --ast-radius: 22px;
    color: var(--ast-text);
    background:
        radial-gradient(circle at 14% 0%, rgba(23, 105, 199, 0.08), transparent 28%),
        linear-gradient(180deg, var(--ast-theme-page) 0%, var(--ast-theme-page-2) 100%);
}

.ast-shell {
    width: min(calc(100% - clamp(20px, 2.4vw, 56px)), 1920px);
    margin-inline: auto;
}

.ast-main {
    display: grid;
    gap: var(--ast-section-gap);
    padding: 0 0 clamp(28px, 4vw, 56px);
}

.ast-section {
    margin: 0;
}

.ast-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding-top: clamp(16px, 1.6vw, 26px);
    padding-bottom: clamp(14px, 1.4vw, 22px);
}

.ast-hero::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    z-index: -1;
    height: min(620px, 68vh);
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 18%, rgba(23, 105, 199, 0.10), transparent 30%),
        radial-gradient(circle at 78% 18%, rgba(19, 34, 53, 0.10), transparent 34%),
        linear-gradient(180deg, rgba(238, 243, 247, 0.92), rgba(238, 243, 247, 0));
}

.ast-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr);
    gap: var(--ast-gap);
    align-items: stretch;
}

.ast-hero__content,
.ast-card,
.ast-contact-card {
    background: linear-gradient(180deg, #f8fafc 0%, #eef3f7 100%);
    border: 1px solid var(--ast-theme-border);
    border-radius: var(--ast-radius);
    box-shadow: 0 18px 44px rgba(18, 34, 52, 0.08);
}

.ast-hero__content {
    display: grid;
    align-content: center;
    gap: clamp(9px, 0.75vw, 13px);
    min-height: clamp(285px, 23vw, 370px);
    padding: clamp(22px, 2.4vw, 40px);
}

.ast-eyebrow {
    margin: 0;
    color: var(--ast-theme-blue);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ast-hero h1 {
    max-width: 18ch;
    margin: 0;
    color: var(--ast-theme-ink);
    font-size: clamp(1.85rem, 2.62vw, 3.35rem);
    line-height: 1.01;
    letter-spacing: -0.048em;
}

.ast-hero__lead {
    max-width: 650px;
    margin: 0;
    color: var(--ast-theme-muted);
    font-size: clamp(0.98rem, 0.96vw, 1.1rem);
    line-height: 1.55;
}

.ast-hero__services {
    display: inline-flex;
    flex-wrap: wrap;
    width: fit-content;
    max-width: 100%;
    margin: 0;
    padding: 8px 11px;
    color: #31495f;
    background: rgba(255, 255, 255, 0.62);
    border: 1px solid rgba(31, 53, 78, 0.10);
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.25;
}

.ast-hero__actions,
.ast-card-actions,
.ast-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ast-hero__actions {
    margin-top: 2px;
}

.ast-hero__area {
    margin: 0;
    color: var(--ast-theme-muted);
    font-size: 0.88rem;
    line-height: 1.45;
}

.ast-card,
.ast-contact-card {
    padding: clamp(18px, 2.2vw, 30px);
}

.ast-section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 16px;
    margin-bottom: 12px;
}

.ast-section-head h2,
.ast-card h2,
.ast-contact-card h2 {
    margin: 0;
    color: var(--ast-theme-ink);
    font-size: clamp(1.32rem, 1.55vw, 2rem);
    line-height: 1.18;
}

.ast-section-head p,
.ast-card p,
.ast-contact-card p,
.ast-coverage p {
    margin: 6px 0 0;
    color: var(--ast-theme-muted);
    line-height: 1.55;
}

.ast-muted,
.ast-mini-card span,
.ast-news-item span,
.ast-service-card span,
.ast-advantage span {
    color: var(--ast-theme-muted);
}

.ast-address-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    margin-top: 14px;
}

.ast-address-form input {
    min-width: 0;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid rgba(31, 53, 78, 0.14);
    border-radius: 14px;
    background: #fff;
    color: var(--ast-theme-ink);
    font: inherit;
}

.ast-tariff-preview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.ast-mini-card,
.ast-news-item,
.ast-service-card,
.ast-advantage {
    min-width: 0;
    padding: 16px;
    background: rgba(255, 255, 255, 0.56);
    border: 1px solid rgba(31, 53, 78, 0.10);
    border-radius: 18px;
}

.ast-mini-card strong,
.ast-news-item strong,
.ast-service-card strong,
.ast-advantage strong {
    display: block;
    color: var(--ast-theme-ink);
}

.ast-news-list,
.ast-advantage-list {
    display: grid;
    gap: 10px;
}

.ast-news-item {
    display: grid;
    gap: 4px;
}

.ast-service-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ast-two-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.72fr);
    gap: var(--ast-gap);
}

.ast-two-columns--support {
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
}

.ast-coverage {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(300px, 1.12fr);
    gap: var(--ast-gap);
    align-items: stretch;
}

.ast-coverage__content,
.ast-coverage__map {
    min-width: 0;
}


.ast-text-link {
    color: var(--ast-theme-blue);
    font-weight: 800;
    text-decoration: none;
}

.ast-text-link:hover {
    text-decoration: underline;
}

@media (max-width: 1180px) {
    .ast-hero__grid,
    .ast-coverage,
    .ast-two-columns,
    .ast-two-columns--support {
        grid-template-columns: 1fr;
    }

    .ast-service-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .site-header__top {
        font-size: 0.75rem;
        line-height: 1.25;
    }

    .site-header__top-inner {
        min-height: 28px;
        padding-block: 4px;
    }

    .site-header__main,
    .site-header__panel {
        padding-block: 8px;
    }

    .site-nav a {
        padding: 6px 8px;
        font-size: 0.84rem;
        line-height: 1.15;
    }

    .site-banner__inner {
        min-height: 32px;
        padding-block: 5px;
        font-size: 0.76rem;
        line-height: 1.22;
    }

    .ast-shell {
        width: min(calc(100% - 28px), 1920px);
    }

    .ast-hero {
        padding-top: 12px;
    }

    .ast-hero h1 {
        font-size: clamp(2rem, 12vw, 3rem);
        letter-spacing: -0.055em;
    }

    .ast-hero__lead,
    .ast-section-head p,
    .ast-card p,
    .ast-contact-card p,
    .ast-coverage p {
        font-size: 0.92rem;
        line-height: 1.45;
    }

    .ast-hero__services {
        padding: 7px 9px;
        font-size: 0.78rem;
        line-height: 1.2;
    }

    .button,
    .button--primary,
    .button--secondary,
    .button--ghost,
    .button--cta {
        min-height: 40px;
        padding: 9px 12px;
        font-size: 0.9rem;
        line-height: 1.15;
    }

    .ast-hero__actions,
    .ast-card-actions,
    .ast-contact-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .ast-address-form,
    .ast-tariff-preview,
    .ast-service-row {
        grid-template-columns: 1fr;
    }

    .ast-section-head {
        display: grid;
        align-items: start;
    }

    .ast-mini-card,
    .ast-news-item,
    .ast-service-card,
    .ast-advantage {
        padding: 14px;
    }

    .site-footer {
        padding-block: 18px 14px;
    }

    .site-footer__grid {
        gap: 12px;
    }

    .site-footer h2,
    .site-footer__brand {
        font-size: 0.98rem;
        line-height: 1.15;
    }

    .site-footer p,
    .site-footer a,
    .site-footer li,
    .site-footer__text,
    .site-footer__bottom {
        font-size: 0.82rem;
        line-height: 1.32;
    }

    .site-footer__bottom {
        padding-top: 10px;
    }
}

@media (max-width: 430px) {
    .ast-shell {
        width: min(calc(100% - 22px), 1920px);
    }

    .site-header__main,
    .site-header__panel {
        padding-block: 7px;
    }

    .site-banner__inner {
        min-height: 30px;
        font-size: 0.73rem;
    }

    .ast-hero h1 {
        font-size: clamp(1.82rem, 10.8vw, 2.65rem);
        line-height: 1.02;
    }

    .ast-hero__lead,
    .ast-section-head p,
    .ast-card p,
    .ast-contact-card p,
    .ast-coverage p {
        font-size: 0.9rem;
    }

    .site-footer {
        padding-block: 16px 12px;
    }
}

@media (max-width: 760px) {
    .site-header__top {
        min-height: 0;
    }

    .site-header__top-inner {
        display: flex !important;
        min-height: 30px !important;
        padding-block: 4px !important;
        gap: 8px !important;
        align-items: center !important;
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
    }

    .site-header__status {
        display: flex !important;
        gap: 0 !important;
        min-width: 0 !important;
        font-size: 0 !important;
        line-height: 1 !important;
    }

    .site-header__status span {
        display: none !important;
    }

    .site-header__status::before {
        content: "АСТ · Анапа и район";
        display: block;
        color: rgba(255, 255, 255, 0.92);
        font-size: 0.78rem;
        font-weight: 800;
        line-height: 1.2;
        white-space: nowrap;
    }

    .site-header__links {
        display: none !important;
    }

    .site-header__main {
        min-height: 58px !important;
        padding-block: 7px !important;
        gap: 8px !important;
    }

    .site-logo__image {
        max-height: 34px !important;
        width: auto !important;
    }

    .site-header__actions {
        gap: 8px !important;
    }

    .site-header__cta {
        min-height: 40px !important;
        padding: 9px 14px !important;
        font-size: 0.88rem !important;
    }

    .site-menu-toggle {
        min-height: 44px !important;
        padding: 8px 12px !important;
    }

    .site-banner__inner {
        display: grid !important;
        grid-template-columns: auto 1fr;
        min-height: 34px !important;
        padding-block: 6px !important;
        gap: 6px 8px !important;
        align-items: center !important;
        font-size: 0.76rem !important;
        line-height: 1.22 !important;
    }

    .site-banner a {
        grid-column: 1 / -1;
        font-size: 0.76rem !important;
        line-height: 1.15 !important;
    }

    .ast-hero {
        padding-top: 10px !important;
    }

    .ast-hero__content {
        gap: 8px !important;
    }

    .ast-eyebrow {
        font-size: 0.72rem !important;
    }

    .ast-hero__lead {
        font-size: 0.9rem !important;
        line-height: 1.42 !important;
    }

    .ast-hero__area {
        font-size: 0.8rem !important;
    }

    .site-footer {
        padding-top: 18px !important;
        padding-bottom: 12px !important;
    }

    .site-footer__grid {
        gap: 12px !important;
    }

    .site-footer__brand,
    .site-footer__column {
        gap: 6px !important;
    }

    .site-footer h2 {
        margin-bottom: 4px !important;
        font-size: 0.94rem !important;
    }

    .site-footer__text,
    .site-footer__list li,
    .site-footer__list a,
    .site-footer__bottom {
        font-size: 0.78rem !important;
        line-height: 1.3 !important;
    }

    .site-footer__bottom {
        padding-top: 10px !important;
    }
}

@media (max-width: 430px) {
    .site-header__top-inner {
        min-height: 28px !important;
        padding-block: 3px !important;
    }

    .site-header__main {
        min-height: 54px !important;
        padding-block: 6px !important;
    }

    .site-logo__image {
        max-height: 30px !important;
    }

    .site-header__cta {
        min-height: 38px !important;
        padding-inline: 12px !important;
        font-size: 0.84rem !important;
    }

    .site-menu-toggle {
        min-height: 44px !important;
        padding-inline: 10px !important;
    }

    .site-banner__inner {
        min-height: 30px !important;
        padding-block: 5px !important;
        font-size: 0.72rem !important;
    }

    .ast-hero h1 {
        font-size: clamp(1.72rem, 10.2vw, 2.48rem) !important;
        line-height: 1.02 !important;
    }

    .ast-hero__services {
        font-size: 0.74rem !important;
    }
}

/* AST Yandex coverage map */
.ast-yandex-map-card {
    position: relative;
    min-height: 320px;
    overflow: hidden;
    background: #edf4fa;
    border: 1px solid rgba(31, 53, 78, 0.12);
    border-radius: 20px;
    box-shadow: 0 20px 48px rgba(18, 32, 53, 0.12);
}

.ast-yandex-map-card__frame {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 320px;
    border: 0;
}

@media (max-width: 760px) {
    .ast-yandex-map-card {
        min-height: 280px;
        border-radius: 18px;
    }

    .ast-yandex-map-card__frame {
        min-height: 280px;
    }
}

@media (max-width: 430px) {
    .ast-yandex-map-card {
        min-height: 250px;
    }

    .ast-yandex-map-card__frame {
        min-height: 250px;
    }
}


/* AST brand refresh final */
:root {
    --ast-blue: #3A75FF;
    --ast-turquoise: #34FFE6;
    --ast-gray: #DADADA;
    --ast-dark-gray: #706F6F;
    --ast-black: #000000;
    --ast-white: #FFFFFF;
    --ast-brand-blue: #3a75ff;
    --ast-brand-blue-deep: #3A75FF;
    --ast-brand-cyan: #34ffe6;
    --ast-brand-ink: #1d1d1b;
    --ast-brand-gray: #706f6f;
    --ast-brand-gray-soft: #dadada;
    --ast-brand-page: #f4faff;

    --primary: var(--ast-brand-blue);
    --primary-strong: var(--ast-brand-blue-deep);
    --accent: var(--ast-brand-cyan);
    --text: var(--ast-brand-ink);
    --text-muted: #52677f;
    --line: rgba(29, 29, 27, 0.12);
}

.site-body {
    background:
        linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
        url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center top / 680px auto repeat,
        linear-gradient(180deg, #ffffff 0%, #f4faff 44%, #edf6fb 100%);
    color: var(--ast-brand-ink);
}

.site-header {
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(18px);
}

.site-header__top {
    background: var(--ast-brand-ink);
    color: rgba(255, 255, 255, 0.92);
}

.site-header__main,
.site-header__panel {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(10px);
}

.site-logo__image {
    width: auto;
    max-height: 42px;
}

.site-banner {
    background:
        linear-gradient(90deg, rgba(58, 117, 255, 0.12), rgba(52, 255, 230, 0.14)),
        rgba(238, 251, 255, 0.90);
    border-color: rgba(58, 117, 255, 0.16);
    color: var(--ast-brand-ink);
}

.site-banner strong,
.site-banner a {
    color: var(--ast-brand-blue-deep);
}

.button--cta,
.button--primary {
    background: var(--ast-brand-blue);
    border-color: rgba(58, 117, 255, 0.72);
    color: #ffffff;
    box-shadow: 0 14px 28px rgba(58, 117, 255, 0.20);
}

.button--cta:hover,
.button--cta:focus-visible,
.button--primary:hover,
.button--primary:focus-visible {
    background: var(--ast-brand-blue-deep);
    box-shadow: 0 18px 34px rgba(58, 117, 255, 0.28);
}

.button--secondary,
.button--utility {
    background: #ffffff;
    border-color: rgba(58, 117, 255, 0.24);
    color: var(--ast-brand-blue-deep);
}

.button--ghost {
    background: rgba(255, 255, 255, 0.66);
    border-color: rgba(58, 117, 255, 0.18);
    color: var(--ast-brand-ink);
}

.site-nav a.is-active,
.site-nav a:hover,
.site-nav a:focus-visible,
.site-mobile-nav a.is-active {
    color: var(--ast-brand-blue-deep);
    background: rgba(58, 117, 255, 0.10);
    border-color: rgba(58, 117, 255, 0.18);
}

.ast-home {
    --ast-theme-ink: var(--ast-brand-ink);
    --ast-theme-muted: #52677f;
    --ast-theme-page: var(--ast-brand-page);
    --ast-theme-page-2: #edf6fb;
    --ast-theme-card: #ffffff;
    --ast-theme-card-2: #f6fbff;
    --ast-theme-border: rgba(58, 117, 255, 0.16);
    --ast-theme-blue: var(--ast-brand-blue);
    --ast-theme-orange: var(--ast-brand-cyan);
    --ast-blue: var(--ast-brand-blue);

    background:
        linear-gradient(rgba(255, 255, 255, 0.70), rgba(240, 248, 255, 0.76)),
        url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center top / 720px auto repeat;
    color: var(--ast-brand-ink);
}

.ast-eyebrow,
.page-intro__kicker,
.section__kicker,
.service-card__eyebrow,
.story-card__type,
.notice-card__type,
.document-card__type,
.tariff-card__badge {
    color: var(--ast-brand-blue-deep) !important;
    letter-spacing: 0.08em;
}

.ast-hero__content,
.ast-card,
.ast-contact-card,
.ast-coverage,
.ast-brand-hero,
.page-intro__panel,
.page-intro--article .article-hero,
.page-intro--not-found .not-found,
.info-card,
.document-card,
.service-card,
.story-card,
.notice-card,
.article-body,
.article-sidebar,
.site-form,
.tariff-card,
.map-placeholder,
.portal-contact-card,
.split-callout {
    position: relative;
    overflow: hidden;
    border-color: rgba(58, 117, 255, 0.14) !important;
    background: rgba(255, 255, 255, 0.92) !important;
    box-shadow: 0 14px 34px rgba(29, 29, 27, 0.06) !important;
    backdrop-filter: blur(4px);
}

.ast-hero__content > *,
.ast-card > *,
.ast-contact-card > *,
.page-intro__panel > *,
.info-card > *,
.document-card > *,
.service-card > *,
.story-card > *,
.notice-card > *,
.tariff-card > *,
.article-sidebar > *,
.site-form > *,
.portal-contact-card > *,
.split-callout > * {
    position: relative;
    z-index: 1;
}

.ast-hero__services {
    border-color: rgba(58, 117, 255, 0.18);
    background: rgba(255, 255, 255, 0.84);
    color: var(--ast-brand-ink);
    box-shadow: inset 0 0 0 1px rgba(52, 255, 230, 0.20);
}

.ast-brand-hero {
    display: grid;
    grid-template-rows: auto minmax(280px, 1fr);
    gap: clamp(18px, 2vw, 28px);
    min-height: clamp(430px, 33vw, 560px);
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid rgba(58, 117, 255, 0.18);
    border-radius: var(--ast-radius);
    isolation: isolate;
}

.ast-brand-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        radial-gradient(circle at 18% 20%, rgba(52, 255, 230, 0.16), transparent 28%),
        radial-gradient(circle at 84% 18%, rgba(58, 117, 255, 0.15), transparent 30%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.74), rgba(221, 246, 255, 0.74));
}

.ast-brand-hero__head {
    display: grid;
    gap: 8px;
    max-width: 560px;
}

.ast-brand-hero__head h2 {
    margin: 0;
    color: var(--ast-brand-ink);
    font-size: clamp(1.5rem, 1.8vw, 2.15rem);
    line-height: 1.1;
}

.ast-brand-hero__head p:not(.ast-eyebrow) {
    margin: 0;
    max-width: 560px;
    font-weight: 650;
    color: #405a75;
    line-height: 1.55;
}

.ast-brand-hero__scene {
    position: relative;
    min-height: 310px;
    overflow: hidden;
    border-radius: 18px;
}

.ast-brand-hero__pattern {
    position: absolute;
    inset: -8%;
    width: 116%;
    height: 116%;
    max-width: none;
    object-fit: cover;
    opacity: 0.13;
    filter: saturate(0.95);
}

.ast-brand-motion {
    position: absolute;
    inset: 0;
    width: calc(100% - clamp(88px, 12vw, 160px));
    height: 100%;
    overflow: visible;
}

.ast-brand-orbits ellipse {
    fill: none;
    stroke: rgba(58, 117, 255, 0.18);
    stroke-width: 1.45;
}

.ast-brand-links path {
    fill: none;
    stroke: url("#astBrandLine");
    stroke-width: 2.7;
    stroke-linecap: round;
    stroke-dasharray: 7 13;
    stroke-opacity: 0.68;
    animation: astBrandDash 9s linear infinite;
}

.ast-brand-packet {
    fill: var(--ast-brand-cyan);
    opacity: 0.78;
    filter: drop-shadow(0 0 9px rgba(52, 255, 230, 0.85));
}

.ast-brand-packet--two {
    fill: var(--ast-brand-blue);
}

.ast-brand-packet--three,
.ast-brand-packet--security {
    fill: #ffffff;
    stroke: var(--ast-brand-blue);
    stroke-width: 1.6;
}

.ast-brand-node-glow {
    fill: url("#astBrandNodeGlow");
    opacity: 0.46;
    animation: astBrandPulse 4.4s ease-in-out infinite;
}

.ast-brand-node {
    fill: #ffffff;
    stroke: var(--ast-brand-blue);
    stroke-width: 5.5;
    filter: drop-shadow(0 8px 16px rgba(58, 117, 255, 0.18));
}

.ast-brand-node--main,
.ast-brand-node--security {
    stroke: var(--ast-brand-cyan);
}

.ast-brand-nodes text {
    fill: var(--ast-brand-ink);
    font-size: 16px;
    font-weight: 800;
    text-anchor: middle;
}

.ast-brand-shield {
    fill: rgba(58, 117, 255, 0.12);
    stroke: var(--ast-brand-blue);
    stroke-width: 2;
    stroke-linejoin: round;
    filter: drop-shadow(0 6px 12px rgba(58, 117, 255, 0.22));
}

.ast-brand-security-node text {
    font-size: 14px;
}

.ast-brand-hero__robot {
    position: absolute;
    top: 52%;
    right: clamp(22px, 3vw, 46px);
    bottom: auto;
    width: clamp(118px, 10.5vw, 178px);
    max-height: 70%;
    object-fit: contain;
    z-index: 3;
    transform-origin: 50% 25%;
    filter:
        drop-shadow(0 20px 34px rgba(58, 117, 255, 0.22))
        drop-shadow(0 0 20px rgba(52, 255, 230, 0.20));
    animation: astBrandGuideFloat 6.4s ease-in-out infinite;
}

.ast-yandex-map-card {
    border-color: rgba(58, 117, 255, 0.18);
    background: rgba(255, 255, 255, 0.92) !important;
    box-shadow: 0 20px 50px rgba(58, 117, 255, 0.11);
}

.tariff-card.is-popular {
    border-color: rgba(52, 255, 230, 0.45) !important;
    background:
        linear-gradient(180deg, rgba(52, 255, 230, 0.10), rgba(255, 255, 255, 0.94)),
        #ffffff !important;
}

.tariff-card__badge,
.notice-card__type,
.story-card__type,
.service-card__eyebrow,
.document-card__type {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px solid rgba(58, 117, 255, 0.16);
    border-radius: 999px;
    background: rgba(58, 117, 255, 0.08);
    font-size: 0.74rem;
    font-weight: 900;
    text-transform: uppercase;
}

.tariff-card__price strong,
.not-found__code {
    color: var(--ast-brand-blue) !important;
}

.field input,
.field select,
.field textarea,
.ast-address-form input {
    border-color: rgba(58, 117, 255, 0.18) !important;
    background: rgba(255, 255, 255, 0.96) !important;
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.ast-address-form input:focus {
    border-color: rgba(58, 117, 255, 0.55) !important;
    box-shadow: 0 0 0 4px rgba(58, 117, 255, 0.12);
    outline: none;
}

.service-card,
.story-card,
.notice-card,
.document-card,
.tariff-card,
.info-card {
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.service-card:hover,
.story-card:hover,
.notice-card:hover,
.document-card:hover,
.tariff-card:hover,
.info-card:hover {
    transform: translateY(-2px);
    border-color: rgba(58, 117, 255, 0.26) !important;
    box-shadow: 0 20px 44px rgba(58, 117, 255, 0.10) !important;
}

.site-footer {
    background:
        linear-gradient(rgba(29, 29, 27, 0.94), rgba(20, 34, 53, 0.96)),
        url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 700px auto repeat !important;
}

.site-footer .site-logo__image {
    filter: brightness(0) invert(1);
}

.site-footer a {
    color: rgba(255, 255, 255, 0.88) !important;
}

.site-footer a:hover,
.site-footer a:focus-visible {
    color: var(--ast-brand-cyan) !important;
}

@keyframes astBrandDash {
    to {
        stroke-dashoffset: -126;
    }
}

@keyframes astBrandPulse {
    0%, 100% {
        opacity: 0.48;
        transform: scale(0.96);
    }
    50% {
        opacity: 0.92;
        transform: scale(1.06);
    }
}

@keyframes astBrandGuideFloat {
    0%, 100% {
        transform: translateY(-50%) rotate(-1deg);
    }
    50% {
        transform: translateY(-56%) rotate(1deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ast-brand-links path,
    .ast-brand-node-glow,
    .ast-brand-hero__robot {
        animation: none !important;
    }
}

@media (max-width: 1180px) {
    .ast-brand-hero {
        min-height: 390px;
        grid-template-rows: auto minmax(300px, 1fr);
    }

    .ast-brand-motion {
        width: calc(100% - 128px);
    }

    .ast-brand-hero__robot {
        width: clamp(108px, 14vw, 150px);
        right: 18px;
    }
}

@media (max-width: 760px) {
    .site-body {
        background:
            linear-gradient(rgba(255, 255, 255, 0.90), rgba(244, 250, 255, 0.92)),
            url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center top / 520px auto repeat,
            linear-gradient(180deg, #ffffff 0%, #f4faff 44%, #edf6fb 100%);
    }

    .ast-home {
        background:
            linear-gradient(rgba(255, 255, 255, 0.74), rgba(240, 248, 255, 0.80)),
            url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center top / 560px auto repeat;
    }

    .site-logo__image {
        max-height: 34px;
    }

    .ast-brand-hero {
        min-height: 380px;
        padding: 18px;
        padding-top: 76px;
        border-radius: 18px;
        grid-template-rows: auto minmax(260px, 1fr);
    }

    .ast-brand-hero__head p:not(.ast-eyebrow) {
        display: block;
        max-width: calc(100% - 104px);
        font-size: 0.86rem;
        line-height: 1.35;
    }

    .ast-brand-hero__scene {
        min-height: 260px;
    }

    .ast-brand-hero__pattern {
        opacity: 0.11;
    }

    .ast-brand-motion {
        width: 100%;
        transform: scale(1.08);
        transform-origin: center;
    }

    .ast-brand-hero__robot {
        top: 18px;
        right: 12px;
        width: 86px;
        animation: astBrandFloat 6s ease-in-out infinite;
    }

    .ast-brand-nodes text {
        font-size: 13px;
    }

    .ast-brand-security-node text {
        font-size: 11px;
    }

    .tariff-card__badge,
    .notice-card__type,
    .story-card__type,
    .service-card__eyebrow,
    .document-card__type {
        font-size: 0.68rem;
        padding: 5px 8px;
    }

    .service-card:hover,
    .story-card:hover,
    .notice-card:hover,
    .document-card:hover,
    .tariff-card:hover,
    .info-card:hover {
        transform: none;
    }
}

@media (max-width: 430px) {
    .site-logo__image {
        max-height: 30px !important;
    }

    .ast-brand-hero {
        min-height: 340px;
        padding-top: 68px;
        grid-template-rows: auto minmax(230px, 1fr);
    }

    .ast-brand-hero__head h2 {
        font-size: 1.16rem;
    }

    .ast-brand-hero__head p:not(.ast-eyebrow) {
        max-width: calc(100% - 88px);
        font-size: 0.8rem;
    }

    .ast-brand-hero__scene {
        min-height: 230px;
    }

    .ast-brand-motion {
        transform: scale(1.16);
    }

    .ast-brand-hero__robot {
        width: 72px;
        top: 10px;
        right: 10px;
    }
}


/* AST legal/about pages */
.legal-page {
    display: grid;
    gap: 14px;
}

.legal-page__meta {
    color: var(--text-muted);
    font-size: 0.92rem;
    margin-bottom: 8px;
}

.legal-page h2 {
    margin: 14px 0 2px;
    color: var(--ast-brand-ink);
    font-size: clamp(1.12rem, 1.35vw, 1.42rem);
    line-height: 1.25;
}

.legal-page p {
    margin: 0;
}

@media (max-width: 760px) {
    .legal-page {
        gap: 12px;
    }

    .legal-page h2 {
        font-size: 1.05rem;
    }
}

/* AST brand micro-scenes tariffs */

.page-intro__panel--with-scene {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: clamp(18px, 4vw, 36px);
    align-items: center;
}

.page-intro__content {
    min-width: 0;
}

.brand-micro-scene {
    position: relative;
    width: 100%;
    min-height: 186px;
    overflow: hidden;
    border: 1px solid rgba(58, 117, 255, .34);
    border-radius: 24px;
    background:
        radial-gradient(circle at 12% 12%, rgba(58, 117, 255, .24), transparent 30%),
        radial-gradient(circle at 88% 86%, rgba(52, 255, 230, .26), transparent 32%),
        #ffffff;
    isolation: isolate;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}

.brand-micro-scene::after {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: 20px;
    background:
        radial-gradient(circle at 20% 18%, rgba(58, 117, 255, .16), transparent 28%),
        radial-gradient(circle at 78% 82%, rgba(52, 255, 230, .18), transparent 28%);
    pointer-events: none;
    animation: astMicroSceneAura 3.8s ease-in-out infinite;
}

.brand-micro-scene__pattern {
    position: absolute;
    right: -86px;
    bottom: -104px;
    width: 260px;
    height: 260px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: .10;
    pointer-events: none;
    z-index: -1;
    animation: astMicroScenePattern 5.8s ease-in-out infinite;
}

.brand-micro-scene__tariff {
    position: absolute;
    bottom: 24px;
    width: 82px;
    min-height: 112px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 18px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 14px 10px;
}

.brand-micro-scene__tariff span {
    display: block;
    color: #3a75ff;
    font-size: 29px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.06em;
}

.brand-micro-scene__tariff small {
    display: block;
    margin-top: 8px;
    color: rgba(0, 0, 0, .64);
    font-weight: 800;
}

.brand-micro-scene__tariff b {
    display: inline-flex;
    margin-top: 12px;
    border-radius: 999px;
    background: #34ffe6;
    padding: 5px 8px;
    color: #000000;
    font-size: 11px;
}

.brand-micro-scene__tariff--100 {
    left: 22px;
    animation: astMicroTariff100 2.7s ease-in-out infinite;
}

.brand-micro-scene__tariff--active {
    left: 114px;
    bottom: 32px;
    min-height: 128px;
    background: #3a75ff;
    color: #ffffff;
    animation: astMicroTariff300 2.4s ease-in-out infinite;
}

.brand-micro-scene__tariff--active span,
.brand-micro-scene__tariff--active small {
    color: #ffffff;
}

.brand-micro-scene__tariff--500 {
    right: 22px;
    animation: astMicroTariff500 2.9s ease-in-out .18s infinite;
}

@keyframes astMicroSceneAura {
    0%, 100% { opacity: .42; transform: scale(.96); }
    50% { opacity: .92; transform: scale(1.04); }
}

@keyframes astMicroScenePattern {
    0%, 100% { opacity: .10; transform: translate3d(0, 0, 0) scale(1) rotate(0deg); }
    50% { opacity: .24; transform: translate3d(-10px, -8px, 0) scale(1.08) rotate(-2deg); }
}

@keyframes astMicroTariff100 {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(-2deg) scale(1); }
    50% { transform: translate3d(-8px, -12px, 0) rotate(-5deg) scale(1.04); }
}

@keyframes astMicroTariff300 {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); box-shadow: 0 14px 28px rgba(58, 117, 255, .18); }
    50% { transform: translate3d(0, -16px, 0) scale(1.08); box-shadow: 0 28px 54px rgba(58, 117, 255, .36); }
}

@keyframes astMicroTariff500 {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(2deg) scale(1); }
    50% { transform: translate3d(8px, -10px, 0) rotate(5deg) scale(1.035); }
}

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

@media (max-width: 980px) {
    .page-intro__panel--with-scene {
        grid-template-columns: 1fr;
    }

    .brand-micro-scene {
        max-width: 340px;
        min-height: 178px;
    }
}

@media (max-width: 520px) {
    .brand-micro-scene {
        min-height: 160px;
        border-radius: 20px;
    }

    .brand-micro-scene__tariff {
        width: 72px;
        min-height: 100px;
        bottom: 20px;
    }

    .brand-micro-scene__tariff--100 {
        left: 16px;
    }

    .brand-micro-scene__tariff--active {
        left: 98px;
    }

    .brand-micro-scene__tariff--500 {
        right: 16px;
    }
}

/* /AST brand micro-scenes tariffs */

/* AST brand micro-scenes services */

.brand-micro-scene__service-tray {
    position: absolute;
    inset: 34px 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.brand-micro-scene__service-tray span {
    display: grid;
    place-items: center;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 18px;
    background: #ffffff;
    color: #000000;
    font-weight: 900;
    box-shadow: 0 12px 24px rgba(58, 117, 255, .12);
    animation: astMicroServiceTile 3.2s ease-in-out infinite;
}

.brand-micro-scene__service-tray span:nth-child(2) {
    animation-delay: .22s;
}

.brand-micro-scene__service-tray span:nth-child(3) {
    animation-delay: .44s;
}

.brand-micro-scene__service-tray .is-active {
    background: #3a75ff;
    color: #ffffff;
    animation: astMicroServiceActive 2.5s ease-in-out infinite;
}

@keyframes astMicroServiceTile {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    35% { transform: translate3d(0, -10px, 0) scale(1.06); }
    65% { transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes astMicroServiceActive {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); box-shadow: 0 12px 24px rgba(58, 117, 255, .14); }
    50% { transform: translate3d(0, -13px, 0) scale(1.08); box-shadow: 0 26px 52px rgba(58, 117, 255, .34); }
}

/* /AST brand micro-scenes services */

/* AST brand micro-scenes contacts */

.brand-micro-scene__robot {
    position: absolute;
    left: 22px;
    bottom: 12px;
    width: 96px;
    max-height: 154px;
    object-fit: contain;
    filter: drop-shadow(0 18px 22px rgba(58, 117, 255, .22));
    animation: astMicroRobot 3s ease-in-out infinite;
    z-index: 4;
}

.brand-micro-scene__contact-card {
    position: absolute;
    right: 20px;
    top: 48px;
    width: 170px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 20px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 16px;
    animation: astMicroContactCard 2.8s ease-in-out .12s infinite;
    z-index: 5;
}

.brand-micro-scene__contact-card b {
    display: block;
    margin-bottom: 7px;
    font-size: 18px;
}

.brand-micro-scene__contact-card span {
    display: block;
    color: rgba(0, 0, 0, .64);
    font-size: 13px;
    line-height: 1.35;
}

.brand-micro-scene__contact-card i {
    display: block;
    width: 11px;
    height: 11px;
    margin-top: 13px;
    border-radius: 50%;
    background: #34ffe6;
    animation: astMicroContactStatus 1.35s ease-in-out infinite;
}

@keyframes astMicroRobot {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
    35% { transform: translate3d(0, -12px, 0) rotate(-4deg) scale(1.035); }
    68% { transform: translate3d(0, -4px, 0) rotate(2deg) scale(1.015); }
}

@keyframes astMicroContactCard {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); box-shadow: 0 15px 32px rgba(58, 117, 255, .14); }
    50% { transform: translate3d(0, -12px, 0) scale(1.04); box-shadow: 0 26px 50px rgba(58, 117, 255, .30); }
}

@keyframes astMicroContactStatus {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 5px rgba(52, 255, 230, .28); }
    50% { transform: scale(1.36); box-shadow: 0 0 0 16px rgba(52, 255, 230, .12); }
}

@media (max-width: 520px) {
    .brand-micro-scene__robot {
        width: 78px;
    }

    .brand-micro-scene__contact-card {
        right: 16px;
        width: 154px;
    }
}

/* /AST brand micro-scenes contacts */

/* AST brand micro-scenes request */

.brand-micro-scene__form-card {
    position: absolute;
    left: 28px;
    top: 34px;
    width: 188px;
    min-height: 138px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 20px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 18px;
    animation: astMicroRequestForm 3s ease-in-out infinite;
}

.brand-micro-scene__form-card strong {
    display: block;
    margin: 0 0 11px;
    color: #000000;
    font-size: 13px;
    line-height: 1.1;
    font-weight: 900;
}

.brand-micro-scene__form-card span {
    display: block;
    height: 10px;
    border-radius: 999px;
    background: rgba(58, 117, 255, .22);
    margin-bottom: 9px;
    transform-origin: left center;
}

.brand-micro-scene__form-card span:nth-of-type(1) {
    animation: astMicroRequestLine 2.4s ease-in-out infinite;
}

.brand-micro-scene__form-card span:nth-of-type(2) {
    animation: astMicroRequestLine 2.4s ease-in-out .28s infinite;
}

.brand-micro-scene__form-card .is-short {
    width: 56%;
    animation: astMicroRequestLine 2.4s ease-in-out .56s infinite;
}

.brand-micro-scene__form-card b {
    position: absolute;
    right: 15px;
    bottom: 14px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #34ffe6;
    color: #000000;
    font-style: normal;
    font-weight: 950;
    animation: astMicroRequestCheck 1.7s ease-in-out infinite;
}

.brand-micro-scene__robot-head {
    position: absolute;
    right: 22px;
    bottom: 20px;
    width: 54px;
    max-height: 72px;
    z-index: 5;
    object-fit: contain;
    filter: drop-shadow(0 12px 20px rgba(58, 117, 255, .22));
    animation: astMicroRequestHead 2.8s ease-in-out infinite;
}

@keyframes astMicroRequestForm {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(-5px, -10px, 0) scale(1.035); }
}

@keyframes astMicroRequestLine {
    0%, 100% { opacity: .42; transform: scaleX(.35); }
    45%, 70% { opacity: 1; transform: scaleX(1); }
}

@keyframes astMicroRequestCheck {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(52, 255, 230, .28); }
    50% { transform: scale(1.28); box-shadow: 0 0 0 14px rgba(52, 255, 230, .12); }
}

@keyframes astMicroRequestHead {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
    40% { transform: translate3d(0, -8px, 0) rotate(-4deg) scale(1.08); }
    70% { transform: translate3d(0, -2px, 0) rotate(2deg) scale(1.02); }
}

@media (max-width: 520px) {
    .brand-micro-scene__form-card {
        left: 18px;
        width: 174px;
    }

    .brand-micro-scene__robot-head {
        right: 18px;
        width: 46px;
        max-height: 62px;
    }
}

/* /AST brand micro-scenes request */

/* AST brand micro-scenes documents */

.brand-micro-scene__folder {
    position: absolute;
    left: 30px;
    bottom: 34px;
    width: 130px;
    height: 88px;
    border-radius: 14px 18px 18px 18px;
    background: #3a75ff;
    animation: astMicroFolder 3.2s ease-in-out infinite;
}

.brand-micro-scene__folder::before {
    content: "";
    position: absolute;
    left: 14px;
    top: -18px;
    width: 70px;
    height: 28px;
    border-radius: 13px 13px 0 0;
    background: rgba(58, 117, 255, .72);
}

.brand-micro-scene__document-card {
    position: absolute;
    right: 28px;
    top: 34px;
    width: 132px;
    min-height: 142px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 18px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 18px;
    animation: astMicroDocument 2.8s ease-in-out .14s infinite;
}

.brand-micro-scene__document-card strong {
    display: block;
    margin: 0 0 11px;
    color: #000000;
    font-size: 13px;
    line-height: 1.1;
    font-weight: 900;
}

.brand-micro-scene__document-card span {
    display: block;
    height: 10px;
    border-radius: 999px;
    background: rgba(58, 117, 255, .22);
    margin-bottom: 9px;
}

.brand-micro-scene__document-card b {
    position: absolute;
    right: 14px;
    bottom: 14px;
    border-radius: 999px;
    background: #34ffe6;
    padding: 6px 8px;
    color: #000000;
    font-size: 11px;
    font-weight: 900;
    animation: astMicroDocumentStamp 1.9s ease-in-out infinite;
}

@keyframes astMicroFolder {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
    50% { transform: translate3d(-7px, -8px, 0) rotate(-3deg) scale(1.035); }
}

@keyframes astMicroDocument {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
    50% { transform: translate3d(-14px, -11px, 0) rotate(-4deg) scale(1.045); }
}

@keyframes astMicroDocumentStamp {
    0%, 100% { transform: scale(1) rotate(0deg); }
    50% { transform: scale(1.18) rotate(-5deg); }
}

/* /AST brand micro-scenes documents */

/* AST brand micro-scenes about */

.brand-micro-scene__nameplate {
    position: absolute;
    left: 28px;
    top: 42px;
    width: 202px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 20px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 18px;
    animation: astMicroNameplate 3.6s ease-in-out infinite;
}

.brand-micro-scene__nameplate img {
    display: block;
    width: 92px;
    height: auto;
    margin-bottom: 14px;
}

.brand-micro-scene__nameplate span {
    display: block;
    color: rgba(0, 0, 0, .64);
    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
}

.brand-micro-scene__service-badge {
    position: absolute;
    right: 18px;
    bottom: 32px;
    border-radius: 999px;
    background: #34ffe6;
    padding: 7px 10px;
    color: #000000;
    font-size: 12px;
    font-weight: 900;
    animation: astMicroAboutBadge 1.9s ease-in-out infinite;
}

@keyframes astMicroNameplate {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); box-shadow: 0 15px 32px rgba(58, 117, 255, .13); }
    50% { transform: translate3d(0, -10px, 0) scale(1.035); box-shadow: 0 26px 48px rgba(58, 117, 255, .28); }
}

@keyframes astMicroAboutBadge {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(0, -5px, 0) scale(1.14); }
}

@media (max-width: 520px) {
    .brand-micro-scene__nameplate {
        left: 18px;
        width: 184px;
    }

    .brand-micro-scene__service-badge {
        right: 14px;
        bottom: 24px;
        max-width: 150px;
    }
}

/* /AST brand micro-scenes about */

/* AST brand micro-scenes legal */

.brand-micro-scene__policy-sheet,
.brand-micro-scene__contract {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 198px;
    min-height: 132px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 20px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 18px;
}

.brand-micro-scene__policy-sheet {
    animation: astMicroPolicySheet 4.2s ease-in-out infinite;
}

.brand-micro-scene__contract {
    animation: astMicroOfferContract 4s ease-in-out infinite;
}

.brand-micro-scene__policy-sheet strong,
.brand-micro-scene__contract strong {
    display: block;
    margin: 0 0 11px;
    color: #000000;
    font-size: 13px;
    line-height: 1.1;
    font-weight: 900;
}

.brand-micro-scene__policy-sheet span,
.brand-micro-scene__contract span {
    display: block;
    height: 10px;
    border-radius: 999px;
    background: rgba(58, 117, 255, .22);
    margin-bottom: 9px;
}

.brand-micro-scene__contract .is-short {
    width: 56%;
}

.brand-micro-scene__policy-sheet i {
    position: absolute;
    right: 15px;
    bottom: 14px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #34ffe6;
    color: #000000;
    font-style: normal;
    font-weight: 950;
    animation: astMicroPolicyCheck 1.7s ease-in-out infinite;
}

.brand-micro-scene__contract b {
    position: absolute;
    right: 14px;
    bottom: 14px;
    border-radius: 999px;
    background: #34ffe6;
    padding: 6px 8px;
    color: #000000;
    font-size: 11px;
    font-weight: 900;
    animation: astMicroOfferStamp 1.9s ease-in-out infinite;
}

@keyframes astMicroPolicySheet {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    50% { transform: translate(-50%, calc(-50% - 8px)) scale(1.025); }
}

@keyframes astMicroOfferContract {
    0%, 100% { transform: translate(-50%, -50%) rotate(-2deg) scale(1); }
    50% { transform: translate(-50%, calc(-50% - 8px)) rotate(2deg) scale(1.025); }
}

@keyframes astMicroPolicyCheck {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(52, 255, 230, .28); }
    50% { transform: scale(1.28); box-shadow: 0 0 0 14px rgba(52, 255, 230, .12); }
}

@keyframes astMicroOfferStamp {
    0%, 100% { transform: scale(1) rotate(0deg); }
    50% { transform: scale(1.18) rotate(-5deg); }
}

@media (max-width: 520px) {
    .brand-micro-scene__policy-sheet,
    .brand-micro-scene__contract {
        width: 176px;
    }
}

/* /AST brand micro-scenes legal */

/* AST brand micro-scenes news */

.brand-micro-scene__news-card {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 198px;
    min-height: 132px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 20px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 18px;
    animation: astMicroNewsCard 3.2s ease-in-out infinite;
}

.brand-micro-scene__news-card time {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 10px;
    border-radius: 15px;
    background: #3a75ff;
    color: #ffffff;
    font-weight: 950;
}

.brand-micro-scene__news-card strong {
    display: block;
    margin: 0 0 11px;
    color: #000000;
    font-size: 13px;
    line-height: 1.1;
    font-weight: 900;
}

.brand-micro-scene__news-card span {
    display: block;
    height: 10px;
    border-radius: 999px;
    background: rgba(58, 117, 255, .22);
    margin-bottom: 9px;
}

.brand-micro-scene__news-card .is-short {
    width: 56%;
}

.brand-micro-scene__news-chip {
    position: absolute;
    right: 28px;
    bottom: 24px;
    border-radius: 999px;
    background: #34ffe6;
    padding: 6px 8px;
    color: #000000;
    font-size: 12px;
    font-weight: 900;
    animation: astMicroNewsChip 1.8s ease-in-out .2s infinite;
}

@keyframes astMicroNewsCard {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    50% { transform: translate(-50%, calc(-50% - 10px)) scale(1.04); }
}

@keyframes astMicroNewsChip {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(0, -5px, 0) scale(1.14); }
}

@media (max-width: 520px) {
    .brand-micro-scene__news-card {
        width: 176px;
    }

    .brand-micro-scene__news-chip {
        right: 18px;
        bottom: 18px;
    }
}

/* /AST brand micro-scenes news */

/* AST brand micro-scenes notice */

.brand-micro-scene__notice-card {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 198px;
    min-height: 132px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 20px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 18px;
    animation: astMicroNoticeCard 3.2s ease-in-out infinite;
}

.brand-micro-scene__notice-card strong {
    display: block;
    margin: 0 0 11px;
    color: #000000;
    font-size: 13px;
    line-height: 1.1;
    font-weight: 900;
}

.brand-micro-scene__notice-card span {
    display: block;
    height: 10px;
    border-radius: 999px;
    background: rgba(58, 117, 255, .22);
    margin-bottom: 9px;
}

.brand-micro-scene__notice-card em {
    position: absolute;
    right: 15px;
    top: 15px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #34ffe6;
    color: #000000;
    font-style: normal;
    font-weight: 950;
    animation: astMicroNoticeMark 1.35s ease-in-out infinite;
}

@keyframes astMicroNoticeCard {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    50% { transform: translate(-50%, calc(-50% - 10px)) scale(1.04); }
}

@keyframes astMicroNoticeMark {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(52, 255, 230, .30); }
    50% { transform: scale(1.32); box-shadow: 0 0 0 15px rgba(52, 255, 230, .12); }
}

@media (max-width: 520px) {
    .brand-micro-scene__notice-card {
        width: 176px;
    }
}

/* /AST brand micro-scenes notice */

/* AST brand micro-scenes notfound */

.not-found--with-scene {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: clamp(18px, 4vw, 36px);
    align-items: center;
}

.not-found__main {
    min-width: 0;
}

.brand-micro-scene__search-card {
    position: absolute;
    right: 20px;
    bottom: 38px;
    width: 170px;
    border: 1px solid rgba(58, 117, 255, .28);
    border-radius: 20px;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 15px 32px rgba(58, 117, 255, .14);
    padding: 16px;
    animation: astMicroSearchCard 2.8s ease-in-out .12s infinite;
    z-index: 5;
}

.brand-micro-scene__search-card b {
    display: block;
    margin-bottom: 7px;
    color: #3a75ff;
    font-size: 28px;
    line-height: 1;
    font-weight: 950;
}

.brand-micro-scene__search-card span {
    display: block;
    color: rgba(0, 0, 0, .64);
    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
}

@keyframes astMicroSearchCard {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); box-shadow: 0 15px 32px rgba(58, 117, 255, .14); }
    50% { transform: translate3d(0, -12px, 0) scale(1.04); box-shadow: 0 26px 50px rgba(58, 117, 255, .30); }
}

@media (max-width: 980px) {
    .not-found--with-scene {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .brand-micro-scene__search-card {
        right: 16px;
        width: 154px;
    }
}

/* /AST brand micro-scenes notfound */

/* AST home news announcements block */

.ast-home-feed-card {
    min-width: 0;
}

.ast-home-feed {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ast-home-feed__column {
    display: grid;
    gap: 12px;
    align-content: start;
    min-width: 0;
}

.ast-home-feed__column-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.ast-home-feed__column-head strong {
    color: #2b2f38;
    font-size: 16px;
    line-height: 1.2;
}

.ast-home-feed__column-head .ast-text-link {
    white-space: nowrap;
}

.ast-news-item small {
    display: block;
    margin-bottom: 6px;
    color: rgba(32, 44, 69, .58);
    font-size: 12px;
    line-height: 1.3;
    font-weight: 800;
}

.ast-news-item--story {
    border-color: rgba(58, 117, 255, .18);
}

.ast-news-item--notice {
    border-color: rgba(52, 255, 230, .28);
}

@media (max-width: 1180px) {
    .ast-home-feed {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .ast-home-feed__column-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }
}

/* /AST home news announcements block */

/* AST home tariff preview cards */

.ast-tariff-preview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.ast-tariff-preview-card {
    position: relative;
    display: grid;
    gap: 7px;
    min-height: 150px;
    overflow: hidden;
    border: 1px solid rgba(58, 117, 255, .18);
    border-radius: 20px;
    background:
        radial-gradient(circle at 90% 10%, rgba(52, 255, 230, .18), transparent 34%),
        #ffffff;
    padding: 16px;
    color: #202c45;
    text-decoration: none;
    box-shadow: 0 12px 26px rgba(58, 117, 255, .08);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.ast-tariff-preview-card::after {
    content: "";
    position: absolute;
    right: -28px;
    bottom: -36px;
    width: 104px;
    height: 104px;
    border-radius: 36px;
    background: rgba(58, 117, 255, .08);
    transform: rotate(18deg);
}

.ast-tariff-preview-card:hover {
    transform: translateY(-3px);
    border-color: rgba(58, 117, 255, .36);
    box-shadow: 0 18px 38px rgba(58, 117, 255, .14);
}

.ast-tariff-preview-card__label {
    position: relative;
    z-index: 1;
    color: #3a75ff;
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ast-tariff-preview-card strong {
    position: relative;
    z-index: 1;
    color: #202c45;
    font-size: 17px;
    line-height: 1.15;
}

.ast-tariff-preview-card b {
    position: relative;
    z-index: 1;
    color: #3a75ff;
    font-size: clamp(22px, 2.2vw, 30px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.04em;
}

.ast-tariff-preview-card em {
    position: relative;
    z-index: 1;
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    background: rgba(52, 255, 230, .52);
    padding: 6px 9px;
    color: #202c45;
    font-size: 13px;
    line-height: 1.1;
    font-style: normal;
    font-weight: 900;
}

.ast-tariff-preview-card small {
    position: relative;
    z-index: 1;
    display: -webkit-box;
    overflow: hidden;
    color: rgba(32, 44, 69, .68);
    font-size: 13px;
    line-height: 1.35;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

@media (max-width: 1180px) {
    .ast-tariff-preview {
        grid-template-columns: repeat(3, minmax(190px, 1fr));
        overflow-x: auto;
        padding-bottom: 6px;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
    }

    .ast-tariff-preview-card {
        scroll-snap-align: start;
    }
}

@media (max-width: 720px) {
    .ast-tariff-preview {
        display: flex;
        gap: 12px;
        margin-right: -16px;
        padding-right: 16px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    .ast-tariff-preview-card {
        flex: 0 0 min(82vw, 280px);
        min-height: 142px;
    }
}

@media (max-width: 420px) {
    .ast-tariff-preview-card {
        flex-basis: 86vw;
        padding: 15px;
    }
}

/* /AST home tariff preview cards */

/* AST home stack layout */

.ast-home {
    --ast-gap: 12px;
    --ast-section-gap: 12px;
}

.ast-home .ast-hero {
    padding-bottom: var(--ast-section-gap) !important;
}

.ast-home .ast-main {
    gap: var(--ast-section-gap) !important;
    padding-top: 0 !important;
    padding-bottom: var(--ast-section-gap) !important;
}

.ast-home .ast-section {
    margin: 0 !important;
}

.site-main:has(.ast-home) {
    padding-bottom: 0 !important;
}

.ast-section--home-stack {
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.ast-home-stack {
    display: grid;
    gap: var(--ast-section-gap) !important;
    margin: 0 !important;
}

.ast-home-stack-card {
    margin: 0 !important;
    min-height: auto !important;
}

.ast-home-stack-card .ast-section-head {
    margin-bottom: 10px !important;
}

.ast-home-stack-card .ast-tariff-preview,
.ast-home-stack-card .ast-service-row,
.ast-home-stack-card .ast-home-feed,
.ast-home-stack-card .ast-news-list {
    gap: 10px !important;
}

.ast-home-stack-card .ast-card-actions {
    margin-top: 10px !important;
}

.ast-home-stack .ast-tariff-preview {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ast-home-stack .ast-service-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ast-home-stack .ast-home-feed {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ast-home-stack-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--ast-section-gap) !important;
    align-items: center;
}

.ast-home-stack-contact .ast-card-actions {
    margin-top: 0 !important;
}

.ast-home + .site-footer,
.ast-home + footer,
.site-main:has(.ast-home) + .site-footer,
.site-main:has(.ast-home) + footer {
    margin-top: 0 !important;
}

@media (max-width: 980px) {
    .ast-home {
        --ast-gap: 10px;
        --ast-section-gap: 10px;
    }

    .ast-home-stack .ast-home-feed {
        grid-template-columns: 1fr;
    }

    .ast-home-stack-contact {
        grid-template-columns: 1fr;
    }

    .ast-home-stack-contact .ast-card-actions {
        margin-top: 10px !important;
    }
}

@media (max-width: 720px) {
    .ast-home-stack .ast-tariff-preview {
        display: flex;
    }

    .ast-home-stack .ast-service-row {
        grid-template-columns: 1fr;
    }
}

/* /AST home stack layout */

/* AST dark header footer pattern */

.site-header__top,
.site-footer {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        linear-gradient(rgba(29, 29, 27, 0.94), rgba(20, 34, 53, 0.96)),
        #101d2d !important;
}

.site-header__top::before,
.site-footer::before {
    content: "";
    position: absolute;
    inset: -80px;
    z-index: -1;
    pointer-events: none;
    background-image: url("/assets/img/brand/pattern/ast-pattern-brand-light.svg");
    background-repeat: repeat;
    background-size: 700px auto;
    background-position: -120px -90px;
    opacity: 0.56;
    transform: rotate(-2deg) scale(1.03);
    transform-origin: center;
}

.site-header__top::before {
    background-position: -160px -120px;
    opacity: 0.50;
}

.site-footer::before {
    background-position: -110px -80px;
    opacity: 0.58;
}

.site-header__top > *,
.site-footer > * {
    position: relative;
    z-index: 1;
}

/* /AST dark header footer pattern */

/* AST header logo lockup */

.site-header__main-inner,
.site-header__main .ast-shell,
.site-header__main .site-header__inner {
    display: flex;
    align-items: center;
}

.site-header__main .site-logo {
    display: inline-flex !important;
    flex-direction: column;
    align-items: flex-start !important;
    justify-content: center;
    gap: 2px;
    flex: 0 0 auto;
    margin-right: clamp(18px, 2.4vw, 34px);
    text-decoration: none;
}

.site-header__main .site-logo__image {
    display: block !important;
    width: auto !important;
    height: 32px !important;
    max-width: 138px !important;
    object-fit: contain;
}

.site-header__main .site-logo__tagline {
    display: block;
    max-width: 176px;
    font-size: 7px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.045em;
    color: rgba(29, 29, 27, 0.60);
    white-space: nowrap;
}

.site-header__main .site-nav {
    margin-left: 0;
}

@media (max-width: 900px) {
    .site-header__main .site-logo {
        margin-right: 14px;
    }

    .site-header__main .site-logo__image {
        height: 28px !important;
        max-width: 122px !important;
    }

    .site-header__main .site-logo__tagline {
        max-width: 150px;
        font-size: 6px;
        letter-spacing: 0.03em;
    }
}

/* /AST header logo lockup */

/* AST global header refresh */
.site-header {
  background: #ffffff;
  border-bottom: 1px solid rgba(22, 41, 61, 0.1);
  box-shadow: 0 6px 22px rgba(13, 27, 47, 0.05);
  backdrop-filter: none;
}

.site-header__top {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  color: rgba(247, 251, 255, 0.82);
}

.site-header__top::before {
  opacity: 0.16;
}

.site-header__top-inner {
  min-height: 42px;
  gap: 16px;
}

.site-header__status span:first-child {
  color: #ffffff;
}

.site-header__status span:last-child {
  color: rgba(52, 255, 230, 0.86);
}

.site-header__links {
  gap: 22px;
}

.site-header__links a {
  color: rgba(247, 251, 255, 0.86);
  font-weight: 700;
  transition: color 0.18s ease;
}

.site-header__links a:hover,
.site-header__links a:focus-visible {
  color: #34ffe6;
}

.site-header__main {
  min-height: 78px;
}

.site-nav a {
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.site-nav a.is-active {
  border-color: rgba(58, 117, 255, 0.16);
  background: rgba(58, 117, 255, 0.1);
  color: var(--primary-strong);
}

.site-nav a:hover,
.site-nav a:focus-visible {
  border-color: rgba(58, 117, 255, 0.14);
  background: rgba(58, 117, 255, 0.07);
  color: var(--primary-strong);
}

.site-banner {
  border-bottom: 1px solid rgba(22, 41, 61, 0.08);
  background: linear-gradient(180deg, rgba(58, 117, 255, 0.07), rgba(52, 255, 230, 0.06));
}

.site-banner__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 0;
  color: var(--ast-brand-ink, #1d1d1b);
}

.site-banner__inner strong {
  color: var(--primary-strong);
}

.site-banner__inner a {
  flex: 0 0 auto;
  color: var(--primary-strong);
  font-weight: 800;
  white-space: nowrap;
}

/* Compress the nav on smaller desktops before it can collide */
@media (max-width: 1520px) {
  .site-nav ul {
    gap: 2px;
  }

  .site-nav a {
    padding: 0 11px;
    font-size: 0.9rem;
  }

  .site-header__main {
    gap: 16px;
  }
}

/* Switch to the mobile menu before the full nav ever collides with the actions */
@media (max-width: 1400px) {
  .site-nav,
  .site-header__actions .button--utility {
    display: none;
  }

  .site-menu-toggle {
    display: inline-flex;
  }
}

/* Mobile header (<=767px): only the logo and the menu toggle share the top row.
   The utility/CTA actions still live inside the slide-out panel, so keeping them
   in the top row here is redundant and used to force ~407px of fixed content
   (logo + CTA + toggle) that overflowed the narrow shell. Reduce the row to a
   clean two-column layout so the toggle stays fully inside the viewport. */
@media (max-width: 767px) {
  .site-header__actions {
    display: none;
  }

  .site-header__main {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
  }

  .site-menu-toggle {
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
  }
}
/* /AST global header refresh */

/* AST official logo lockup */
.site-header__main .site-logo--official-lockup {
  min-width: 180px;
}

.site-header__main .site-logo--official-lockup .site-logo__image {
  width: 180px;
  height: auto;
  max-height: 62px;
  object-fit: contain;
}

@media (max-width: 640px) {
  .site-header__main .site-logo--official-lockup {
    min-width: 142px;
  }

  .site-header__main .site-logo--official-lockup .site-logo__image {
    width: 142px;
    max-height: 50px;
  }
}

/* AST brand typography */
body,
button,
input,
select,
textarea {
  font-family: var(--font-main);
}

h1,
h2,
h3,
.ast-section__title,
.ast-page-title {
  font-family: var(--font-main);
  font-weight: 700;
  letter-spacing: -0.025em;
}

.ast-hero h1,
.ast-brand-hero__head h2 {
  font-family: var(--font-heading);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.ast-eyebrow,
.button,
.site-nav__link,
.ast-hero__services {
  font-family: var(--font-main);
  font-weight: 600;
}

/* /AST brand typography */

/* AST scroll reveal motion */
@media (prefers-reduced-motion: no-preference) {
  .site-body.ast-scroll-reveal-ready .ast-scroll-reveal {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition:
      opacity 0.55s ease,
      transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ast-reveal-delay, 0ms);
    will-change: opacity, transform;
  }

  .site-body.ast-scroll-reveal-ready .ast-scroll-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ast-scroll-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* /AST scroll reveal motion */

/* AST footer brand polish */
.site-footer {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  margin-top: 0;
  padding: 56px 0 22px;
  background:
    radial-gradient(circle at 82% 18%, rgba(52, 255, 230, 0.16), transparent 28%),
    radial-gradient(circle at 12% 4%, rgba(58, 117, 255, 0.28), transparent 32%),
    linear-gradient(135deg, #06142c 0%, #0d244f 52%, #102f68 100%);
  color: rgba(255, 255, 255, 0.82);
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: -16% -8%;
  z-index: -2;
  pointer-events: none;
  background:
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 520px auto repeat;
  opacity: 0.10;
  transform: rotate(-3deg);
}

.site-footer::after {
  content: "";
  position: absolute;
  inset: auto 8% -140px auto;
  z-index: -1;
  width: min(440px, 70vw);
  height: min(440px, 70vw);
  border-radius: 999px;
  pointer-events: none;
  background: radial-gradient(circle, rgba(52, 255, 230, 0.18), transparent 64%);
}

.site-footer > * {
  position: relative;
  z-index: 1;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.25fr) repeat(4, minmax(150px, 1fr));
  gap: 28px;
  align-items: start;
}

.site-footer__brand,
.site-footer__column {
  min-width: 0;
}

.site-footer__brand {
  max-width: 360px;
}

.site-footer .site-logo--footer {
  display: inline-flex;
  margin-bottom: 18px;
}

.site-footer .site-logo__image {
  width: 190px;
  height: auto;
  filter: drop-shadow(0 18px 34px rgba(0, 0, 0, 0.28));
}

.site-footer__text {
  max-width: 340px;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.65;
}

.site-footer h2 {
  margin: 0 0 14px;
  color: #ffffff;
  font-size: 0.96rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.site-footer__list {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer__list li,
.site-footer__list a {
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.45;
}

.site-footer a {
  text-decoration: none;
  transition:
    color 0.18s ease,
    opacity 0.18s ease;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: #34FFE6;
}

.site-footer__bottom {
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin-top: 34px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.56);
  font-size: 0.9rem;
}

@media (max-width: 1100px) {
  .site-footer__grid {
    grid-template-columns: minmax(240px, 1fr) repeat(2, minmax(160px, 1fr));
  }
}

@media (max-width: 720px) {
  .site-footer {
    padding: 42px 0 22px;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .site-footer__brand {
    max-width: none;
  }

  .site-footer__bottom {
    flex-direction: column;
  }
}
/* /AST footer brand polish */

/* AST public redesign components */
.ast-redesign-page {
  --ast-redesign-blue: #3A75FF;
  --ast-redesign-cyan: #34FFE6;
  --ast-redesign-ink: #1d1d1b;
  --ast-redesign-ink-soft: #405266;
  --ast-redesign-muted: #68798c;
  --ast-redesign-line: rgba(29, 29, 27, 0.12);
  --ast-redesign-line-strong: rgba(58, 117, 255, 0.24);
  --ast-redesign-page: #f4faff;
  --ast-redesign-soft: #eef7fb;
  --ast-redesign-surface: #ffffff;
  --ast-redesign-dark: #07142d;
  --ast-redesign-dark-2: #10285a;
  --ast-redesign-shadow: 0 20px 52px rgba(7, 20, 45, 0.10);
  --ast-redesign-shadow-soft: 0 12px 30px rgba(7, 20, 45, 0.07);
  --ast-redesign-radius: 20px;
  --ast-redesign-radius-sm: 12px;
  position: relative;
  overflow-x: hidden;
  color: var(--ast-redesign-ink);
  background: #ffffff;
}

html:has(.ast-redesign-page),
body:has(.ast-redesign-page) {
  overflow-x: hidden;
}

body:has(.ast-redesign-page) .site-header {
  overflow-x: clip;
}

.ast-redesign-container {
  width: min(1520px, calc(100% - clamp(32px, 7vw, 112px)));
  margin-inline: auto;
}

.ast-redesign-page h1,
.ast-redesign-page h2,
.ast-redesign-page h3,
.ast-redesign-page p {
  margin-top: 0;
}

.ast-redesign-page h2 {
  margin-bottom: 0;
  font-size: 2rem;
  line-height: 1.16;
  letter-spacing: 0;
}

.ast-redesign-page h3 {
  margin-bottom: 0;
  font-size: 1.12rem;
  line-height: 1.28;
  letter-spacing: 0;
}

.ast-redesign-page p {
  color: var(--ast-redesign-muted);
  line-height: 1.62;
}

.ast-redesign-page .button {
  border-radius: var(--ast-redesign-radius-sm);
}

.ast-redesign-kicker {
  margin-bottom: 8px;
  color: var(--ast-redesign-blue);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
}

.ast-redesign-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 0;
  background:
    radial-gradient(circle at 84% 22%, rgba(52, 255, 230, 0.16), transparent 28%),
    linear-gradient(118deg, rgba(255, 255, 255, 0.94), rgba(238, 247, 251, 0.94)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 760px auto repeat,
    #ffffff;
}

.ast-redesign-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 12% 22%, rgba(58, 117, 255, 0.14), transparent 28%),
    url("/assets/img/brand/pattern/ast-gradient-brand.svg") right top / 980px auto no-repeat;
  opacity: 0.46;
}

.ast-redesign-hero--dark {
  background:
    radial-gradient(circle at 82% 18%, rgba(52, 255, 230, 0.20), transparent 30%),
    linear-gradient(135deg, var(--ast-redesign-dark) 0%, #0a1f48 52%, #123778 100%);
}

.ast-redesign-hero--dark::before {
  background:
    radial-gradient(circle at 18% 12%, rgba(58, 117, 255, 0.28), transparent 32%),
    url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 720px auto repeat;
  opacity: 0.14;
}

.ast-redesign-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(460px, 1.08fr);
  gap: 56px;
  align-items: center;
  min-height: 560px;
  padding: 72px 0;
}

.ast-redesign-hero__content {
  position: relative;
  z-index: 2;
  display: grid;
  align-content: center;
  gap: 16px;
  min-width: 0;
  max-width: 690px;
}

.ast-redesign-hero h1 {
  max-width: 14ch;
  margin-bottom: 0;
  color: var(--ast-redesign-ink);
  font-family: var(--font-heading);
  font-size: 4.25rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.04;
}

.ast-redesign-hero--dark h1,
.ast-redesign-hero--dark .ast-redesign-kicker {
  color: #ffffff;
}

.ast-redesign-hero__lead {
  max-width: 680px;
  margin-bottom: 0;
  color: var(--ast-redesign-ink-soft);
  font-size: 1.16rem;
}

.ast-redesign-hero--dark .ast-redesign-hero__lead {
  color: rgba(255, 255, 255, 0.74);
}

.ast-redesign-hero__chips,
.ast-redesign-hero__actions,
.ast-redesign-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.ast-redesign-hero__chips {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ast-redesign-chip {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 12px;
  border: 1px solid rgba(58, 117, 255, 0.18);
  border-radius: 999px;
  background: rgba(58, 117, 255, 0.08);
  color: var(--ast-redesign-blue);
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.2;
}

.ast-redesign-hero--dark .ast-redesign-chip {
  border-color: rgba(52, 255, 230, 0.26);
  background: rgba(52, 255, 230, 0.09);
  color: var(--ast-redesign-cyan);
}

.ast-redesign-hero__visual {
  position: relative;
  z-index: 1;
  min-height: 500px;
  border-radius: 26px;
  overflow: hidden;
  background:
    radial-gradient(circle at 64% 36%, rgba(52, 255, 230, 0.18), transparent 32%),
    radial-gradient(circle at 24% 18%, rgba(58, 117, 255, 0.16), transparent 34%),
    linear-gradient(150deg, rgba(255, 255, 255, 0.48), rgba(238, 247, 251, 0.64));
  box-shadow: inset 0 0 0 1px rgba(58, 117, 255, 0.10);
}

.ast-redesign-hero--dark .ast-redesign-hero__visual {
  background:
    radial-gradient(circle at 46% 32%, rgba(52, 255, 230, 0.22), transparent 34%),
    linear-gradient(150deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10);
}

.ast-redesign-hero__visual::before {
  content: "";
  position: absolute;
  inset: -20%;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 460px auto repeat;
  opacity: 0.08;
  transform: rotate(-4deg);
}

.ast-redesign-hero__robot {
  position: absolute;
  right: 3%;
  bottom: -8px;
  z-index: 2;
  width: min(350px, 58%);
  filter: drop-shadow(0 24px 40px rgba(7, 20, 45, 0.24));
}

.ast-redesign-hero__robot--small {
  right: 7%;
  bottom: 32px;
  width: min(220px, 42%);
}

.ast-redesign-business-visual,
.ast-redesign-coverage-visual,
.ast-redesign-payment-visual,
.ast-redesign-promo-visual,
.ast-redesign-careers-visual,
.ast-redesign-speedtest-visual,
.ast-redesign-hero-stack {
  position: absolute;
  z-index: 2;
}

.ast-redesign-business-visual {
  inset: 58px auto auto 44px;
  display: grid;
  gap: 18px;
  width: min(330px, 70%);
}

.ast-redesign-business-visual__panel,
.ast-redesign-careers-visual,
.ast-redesign-hero-stack,
.ast-redesign-payment-visual,
.ast-redesign-promo-visual {
  display: grid;
  gap: 10px;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.14);
  box-shadow: 0 18px 38px rgba(7, 20, 45, 0.16);
  backdrop-filter: blur(12px);
}

.ast-redesign-business-visual__panel span,
.ast-redesign-careers-visual span,
.ast-redesign-hero-stack span {
  display: block;
  min-height: 30px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
}

.ast-redesign-business-visual__panel span {
  padding: 7px 12px;
  color: var(--ast-redesign-ink);
  font-weight: 800;
}

.ast-redesign-business-visual__signal {
  display: flex;
  gap: 8px;
  align-items: end;
  height: 72px;
}

.ast-redesign-business-visual__signal i {
  width: 32px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--ast-redesign-cyan), var(--ast-redesign-blue));
}

.ast-redesign-business-visual__signal i:nth-child(1) {
  height: 38px;
}

.ast-redesign-business-visual__signal i:nth-child(2) {
  height: 56px;
}

.ast-redesign-business-visual__signal i:nth-child(3) {
  height: 72px;
}

.ast-redesign-coverage-visual {
  inset: 54px 48px 42px;
}

.ast-redesign-coverage-visual__map {
  position: relative;
  height: 300px;
  border: 1px solid rgba(58, 117, 255, 0.16);
  border-radius: 18px;
  background:
    linear-gradient(90deg, rgba(58, 117, 255, 0.10) 1px, transparent 1px),
    linear-gradient(180deg, rgba(58, 117, 255, 0.10) 1px, transparent 1px),
    rgba(255, 255, 255, 0.62);
  background-size: 42px 42px;
}

.ast-redesign-coverage-visual__node,
.ast-redesign-coverage-visual__line {
  position: absolute;
  display: block;
}

.ast-redesign-coverage-visual__node {
  width: 18px;
  height: 18px;
  border: 4px solid #ffffff;
  border-radius: 999px;
  background: var(--ast-redesign-blue);
  box-shadow: 0 0 0 8px rgba(58, 117, 255, 0.12);
}

.ast-redesign-coverage-visual__node--one {
  left: 18%;
  top: 28%;
}

.ast-redesign-coverage-visual__node--two {
  left: 56%;
  top: 44%;
}

.ast-redesign-coverage-visual__node--three {
  left: 76%;
  top: 18%;
  background: var(--ast-redesign-cyan);
}

.ast-redesign-coverage-visual__line {
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ast-redesign-blue), var(--ast-redesign-cyan));
  transform-origin: left center;
}

.ast-redesign-coverage-visual__line--one {
  left: 22%;
  top: 34%;
  width: 38%;
  transform: rotate(14deg);
}

.ast-redesign-coverage-visual__line--two {
  left: 58%;
  top: 44%;
  width: 22%;
  transform: rotate(-42deg);
}

.ast-redesign-coverage-visual__status {
  display: inline-flex;
  margin-top: 14px;
  padding: 9px 14px;
  border-radius: 999px;
  background: var(--ast-redesign-blue);
  color: #ffffff;
  font-weight: 800;
}

.ast-redesign-payment-visual,
.ast-redesign-promo-visual {
  left: 46px;
  top: 62px;
  width: min(360px, 72%);
  color: var(--ast-redesign-ink);
  background: rgba(255, 255, 255, 0.78);
}

.ast-redesign-payment-visual strong,
.ast-redesign-promo-visual strong {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  font-weight: 400;
}

.ast-redesign-payment-visual span,
.ast-redesign-promo-visual span {
  color: var(--ast-redesign-blue);
  font-size: 0.82rem;
  font-weight: 800;
}

.ast-redesign-payment-visual i,
.ast-redesign-promo-visual i {
  display: block;
  width: 72%;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ast-redesign-blue), var(--ast-redesign-cyan));
}

.ast-redesign-careers-visual {
  left: 46px;
  top: 58px;
  width: min(340px, 70%);
}

.ast-redesign-careers-visual span {
  padding: 8px 12px;
  color: var(--ast-redesign-ink);
  font-weight: 800;
}

.ast-redesign-hero-stack {
  left: 46px;
  top: 58px;
  width: min(380px, 72%);
}

.ast-redesign-hero-stack span {
  background: rgba(255, 255, 255, 0.86);
}

.ast-redesign-speedtest-visual {
  inset: 44px;
  display: grid;
  place-items: center;
  gap: 18px;
}

.ast-redesign-speedtest-visual__gauge,
.ast-redesign-speedtest__dial {
  position: relative;
  display: grid;
  place-items: center;
  width: 260px;
  aspect-ratio: 1;
  border-radius: 999px;
  background:
    conic-gradient(from -90deg, var(--ast-redesign-cyan) 0 24%, rgba(255, 255, 255, 0.16) 24% 100%),
    rgba(255, 255, 255, 0.08);
}

.ast-redesign-speedtest-visual__gauge::after,
.ast-redesign-speedtest__dial::after {
  content: "";
  width: 72%;
  aspect-ratio: 1;
  border-radius: inherit;
  background: var(--ast-redesign-dark);
}

.ast-redesign-speedtest-visual__gauge span,
.ast-redesign-speedtest__dial span {
  position: absolute;
  z-index: 2;
  width: 48%;
  height: 4px;
  border-radius: 999px;
  background: var(--ast-redesign-cyan);
  transform: rotate(-28deg);
  transform-origin: 88% center;
}

.ast-redesign-speedtest-visual__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.ast-redesign-speedtest-visual__labels span {
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.10);
  color: rgba(255, 255, 255, 0.78);
  font-weight: 800;
}

.ast-redesign-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 58px 0;
  background: #ffffff;
}

.ast-redesign-section--soft {
  background:
    linear-gradient(rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.84)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 720px auto repeat,
    var(--ast-redesign-soft);
}

.ast-redesign-section--dark {
  color: #ffffff;
  background:
    radial-gradient(circle at 82% 18%, rgba(52, 255, 230, 0.16), transparent 30%),
    radial-gradient(circle at 12% 26%, rgba(58, 117, 255, 0.24), transparent 34%),
    linear-gradient(135deg, var(--ast-redesign-dark) 0%, #0a1f48 58%, #123778 100%);
}

.ast-redesign-section--dark::before,
.ast-redesign-section--coverage-map::before,
.ast-redesign-section--promotions-list::before,
.ast-redesign-section--careers-editorial::before,
.ast-redesign-section--payment-methods::before,
.ast-redesign-section--faq-workspace::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}

.ast-redesign-section--dark::before {
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 760px auto repeat;
  opacity: 0.08;
}

.ast-redesign-section--coverage-map {
  background:
    linear-gradient(118deg, rgba(255, 255, 255, 0.88), rgba(230, 246, 255, 0.92)),
    var(--ast-redesign-page);
}

.ast-redesign-section--coverage-map::before {
  background:
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 820px auto repeat,
    url("/assets/img/brand/pattern/ast-gradient-brand.svg") right top / 1080px auto no-repeat;
  opacity: 0.44;
}

.ast-redesign-section--promotions-list {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(239, 248, 255, 0.94)),
    var(--ast-redesign-page);
}

.ast-redesign-section--promotions-list::before {
  background:
    url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") right center / 720px auto repeat,
    url("/assets/img/brand/pattern/ast-gradient-brand.svg") left top / 940px auto no-repeat;
  opacity: 0.10;
}

.ast-redesign-section--careers-editorial {
  background:
    linear-gradient(120deg, #ffffff 0%, #f8fbff 54%, #eef9fb 100%);
}

.ast-redesign-section--careers-editorial::before {
  background: url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 760px auto repeat;
  opacity: 0.32;
}

.ast-redesign-section--payment-methods::before,
.ast-redesign-section--faq-workspace::before {
  background: url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 760px auto repeat;
  opacity: 0.24;
}

.ast-redesign-section--payment-methods {
  background: linear-gradient(180deg, #ffffff 0%, #f4faff 100%);
}

.ast-redesign-section--faq-workspace {
  background:
    linear-gradient(180deg, rgba(244, 250, 255, 0.94), rgba(255, 255, 255, 0.96)),
    var(--ast-redesign-page);
}

.ast-redesign-section--speedtest-panel {
  padding-block: 74px;
}

.ast-redesign-section--cta-strip {
  padding-block: 70px;
}

.ast-redesign-section > .ast-redesign-container {
  position: relative;
  z-index: 1;
}

.ast-redesign-section__head {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(280px, 0.5fr);
  gap: 34px;
  align-items: end;
  margin-bottom: 30px;
}

.ast-redesign-section__head h2 {
  max-width: 780px;
}

.ast-redesign-section__head p:last-child {
  max-width: 730px;
  margin-bottom: 0;
}

.ast-redesign-grid {
  display: grid;
  gap: 22px;
}

.ast-redesign-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ast-redesign-grid--stack {
  grid-template-columns: 1fr;
}

.ast-redesign-card,
.ast-redesign-empty {
  position: relative;
  min-width: 0;
  padding: 26px;
  border: 1px solid var(--ast-redesign-line);
  border-radius: var(--ast-redesign-radius);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--ast-redesign-shadow-soft);
}

.ast-redesign-card--accent {
  border-color: var(--ast-redesign-line-strong);
  background:
    radial-gradient(circle at 92% 8%, rgba(52, 255, 230, 0.22), transparent 34%),
    linear-gradient(180deg, #ffffff, #f2f8ff);
}

.ast-redesign-card--compact {
  padding: 20px;
}

.ast-redesign-card--scenario {
  display: grid;
  align-content: start;
  gap: 16px;
}

.ast-redesign-card__eyebrow {
  margin-bottom: 0;
  color: var(--ast-redesign-blue);
  font-size: 0.82rem;
  font-weight: 800;
}

.ast-redesign-card__icon {
  display: inline-block;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(58, 117, 255, 0.14), rgba(52, 255, 230, 0.22)),
    #ffffff;
  box-shadow: inset 0 0 0 1px rgba(58, 117, 255, 0.16);
}

.ast-redesign-card h3,
.ast-redesign-empty h3 {
  color: var(--ast-redesign-ink);
}

.ast-redesign-card p,
.ast-redesign-empty p {
  margin-bottom: 0;
}

.ast-redesign-card .button {
  justify-self: start;
  margin-top: 4px;
}

.ast-redesign-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  color: var(--ast-redesign-muted);
  line-height: 1.5;
  list-style: none;
}

.ast-redesign-list li {
  position: relative;
  min-width: 0;
}

.ast-redesign-list--checked li {
  padding-left: 28px;
}

.ast-redesign-list--checked li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.18em;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--ast-redesign-blue), var(--ast-redesign-cyan));
}

.ast-redesign-list--checked li::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 0.48em;
  width: 6px;
  height: 3px;
  border-left: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(-45deg);
}

.ast-redesign-list--steps {
  counter-reset: ast-redesign-list-step;
}

.ast-redesign-list--steps li {
  counter-increment: ast-redesign-list-step;
  padding-left: 36px;
}

.ast-redesign-list--steps li::before {
  content: counter(ast-redesign-list-step);
  position: absolute;
  left: 0;
  top: -2px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--ast-redesign-blue);
  color: #ffffff;
  font-size: 0.78rem;
  font-weight: 800;
}

.ast-redesign-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
  counter-reset: ast-redesign-step;
  list-style: none;
}

.ast-redesign-steps li {
  counter-increment: ast-redesign-step;
  position: relative;
  min-width: 0;
  padding: 58px 22px 22px;
  border: 1px solid var(--ast-redesign-line);
  border-radius: var(--ast-redesign-radius);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--ast-redesign-shadow-soft);
}

.ast-redesign-steps li::before {
  content: counter(ast-redesign-step);
  position: absolute;
  left: 22px;
  top: 20px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: var(--ast-redesign-blue);
  color: #ffffff;
  font-weight: 800;
}

.ast-redesign-steps p {
  margin-bottom: 0;
}

.ast-redesign-steps--compact {
  grid-template-columns: 1fr;
}

.ast-redesign-steps--compact li {
  padding: 52px 20px 18px;
}

.ast-redesign-split {
  display: grid;
  grid-template-columns: minmax(320px, 0.64fr) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}

.ast-redesign-split > :first-child {
  max-width: 680px;
}

.ast-redesign-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 34px;
  align-items: center;
  padding: 34px;
  border: 1px solid var(--ast-redesign-line-strong);
  border-radius: 24px;
  background:
    radial-gradient(circle at 88% 18%, rgba(52, 255, 230, 0.22), transparent 28%),
    linear-gradient(135deg, #ffffff 0%, #eef7ff 100%);
  box-shadow: var(--ast-redesign-shadow);
}

.ast-redesign-cta--dark {
  border-color: rgba(255, 255, 255, 0.14);
  background:
    radial-gradient(circle at 84% 20%, rgba(52, 255, 230, 0.16), transparent 30%),
    linear-gradient(135deg, var(--ast-redesign-dark) 0%, #0d2554 100%);
  color: #ffffff;
}

.ast-redesign-section--cta-strip .ast-redesign-cta {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.ast-redesign-cta h2 {
  max-width: 820px;
  color: inherit;
}

.ast-redesign-cta p {
  margin-bottom: 0;
}

.ast-redesign-cta--dark p {
  color: rgba(255, 255, 255, 0.74);
}

.ast-redesign-section--dark h2,
.ast-redesign-section--dark h3 {
  color: #ffffff;
}

.ast-redesign-section--dark p,
.ast-redesign-section--dark .ast-redesign-list {
  color: rgba(255, 255, 255, 0.74);
}

.ast-redesign-section--dark .ast-redesign-kicker {
  color: var(--ast-redesign-cyan);
}

.ast-redesign-section--dark .ast-redesign-steps li {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: none;
}

.ast-redesign-cta__contact a {
  color: inherit;
  font-weight: 800;
}

.ast-redesign-stat {
  display: grid;
  gap: 4px;
  padding: 18px;
  border: 1px solid var(--ast-redesign-line);
  border-radius: var(--ast-redesign-radius-sm);
  background: #ffffff;
}

.ast-redesign-stat strong {
  color: var(--ast-redesign-blue);
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 400;
}

.ast-redesign-coverage {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.65fr);
  gap: 24px;
  align-items: stretch;
}

.ast-redesign-coverage__map-card {
  position: relative;
  min-height: 580px;
  overflow: hidden;
  border: 1px solid var(--ast-redesign-line);
  border-radius: 24px;
  background:
    linear-gradient(90deg, rgba(58, 117, 255, 0.08) 1px, transparent 1px),
    linear-gradient(180deg, rgba(58, 117, 255, 0.08) 1px, transparent 1px),
    linear-gradient(135deg, #ffffff, #eef7ff);
  background-size: 62px 62px, 62px 62px, auto;
  box-shadow: var(--ast-redesign-shadow);
}

.ast-redesign-coverage__map {
  position: absolute;
  inset: 24px;
}

.ast-redesign-coverage__ring,
.ast-redesign-coverage__point,
.ast-redesign-coverage__route {
  position: absolute;
  display: block;
}

.ast-redesign-coverage__ring {
  border: 1px solid rgba(58, 117, 255, 0.18);
  border-radius: 999px;
}

.ast-redesign-coverage__ring--one {
  left: 8%;
  top: 8%;
  width: 280px;
  height: 280px;
}

.ast-redesign-coverage__ring--two {
  right: 8%;
  bottom: 10%;
  width: 340px;
  height: 340px;
}

.ast-redesign-coverage__point {
  width: 18px;
  height: 18px;
  border: 4px solid #ffffff;
  border-radius: 999px;
  background: var(--ast-redesign-blue);
  box-shadow: 0 0 0 9px rgba(58, 117, 255, 0.12);
}

.ast-redesign-coverage__point--one {
  left: 18%;
  top: 34%;
}

.ast-redesign-coverage__point--two {
  left: 50%;
  top: 52%;
}

.ast-redesign-coverage__point--three {
  right: 18%;
  top: 28%;
  background: var(--ast-redesign-cyan);
}

.ast-redesign-coverage__route {
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ast-redesign-blue), var(--ast-redesign-cyan));
  transform-origin: left center;
}

.ast-redesign-coverage__route--one {
  left: 21%;
  top: 38%;
  width: 32%;
  transform: rotate(22deg);
}

.ast-redesign-coverage__route--two {
  left: 52%;
  top: 53%;
  width: 32%;
  transform: rotate(-32deg);
}

.ast-redesign-coverage__map-copy {
  position: absolute;
  left: 34px;
  right: auto;
  bottom: 34px;
  max-width: 560px;
  padding: 26px;
  border: 1px solid rgba(58, 117, 255, 0.18);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(12px);
}

.ast-redesign-coverage__map-copy p:last-child {
  margin-bottom: 0;
}

.ast-redesign-coverage__notes {
  display: grid;
  align-content: center;
  gap: 18px;
}

.ast-redesign-card--coverage {
  min-height: 190px;
}

.ast-redesign-faq {
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  gap: 44px;
  align-items: start;
}

.ast-redesign-faq__nav {
  position: sticky;
  top: 118px;
  display: grid;
  gap: 10px;
}

.ast-redesign-faq__nav a {
  padding: 14px 16px;
  border: 1px solid var(--ast-redesign-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.86);
  color: var(--ast-redesign-ink);
  font-weight: 800;
}

.ast-redesign-faq__nav a:hover,
.ast-redesign-faq__nav a:focus-visible {
  border-color: var(--ast-redesign-line-strong);
  color: var(--ast-redesign-blue);
}

.ast-redesign-faq__groups {
  display: grid;
  gap: 20px;
}

.ast-redesign-faq__group {
  padding: 30px;
  border: 1px solid var(--ast-redesign-line);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--ast-redesign-shadow-soft);
}

.ast-redesign-faq__group header {
  margin-bottom: 16px;
}

.ast-redesign-faq__item {
  border-top: 1px solid var(--ast-redesign-line);
}

.ast-redesign-faq__item h3 {
  margin: 0;
}

.ast-redesign-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 60px;
  padding: 16px 0;
  border: 0;
  background: transparent;
  color: var(--ast-redesign-ink);
  text-align: left;
  font-weight: 800;
}

.ast-redesign-faq__question:hover,
.ast-redesign-faq__question:focus-visible {
  color: var(--ast-redesign-blue);
}

.ast-redesign-faq__icon {
  position: relative;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(58, 117, 255, 0.10);
}

.ast-redesign-faq__icon::before,
.ast-redesign-faq__icon::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 13px;
  width: 12px;
  height: 2px;
  border-radius: 999px;
  background: var(--ast-redesign-blue);
}

.ast-redesign-faq__icon::after {
  transform: rotate(90deg);
}

.ast-redesign-faq__question[aria-expanded="true"] .ast-redesign-faq__icon::after {
  transform: rotate(0deg);
}

.ast-redesign-faq__panel {
  padding: 0 42px 18px 0;
}

.ast-redesign-faq__panel[hidden] {
  display: none;
}

.ast-redesign-faq__panel p {
  margin-bottom: 0;
}

.ast-redesign-promos,
.ast-redesign-careers {
  display: grid;
  gap: 18px;
}

.ast-redesign-promos {
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.85fr);
  align-items: stretch;
}

.ast-redesign-promo-card,
.ast-redesign-career-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
}

.ast-redesign-promo-card {
  grid-template-columns: 1fr;
  align-content: space-between;
}

.ast-redesign-promo-card--featured {
  min-height: 420px;
  padding: 34px;
}

.ast-redesign-promo-card__content,
.ast-redesign-career-card > div:first-child {
  display: grid;
  gap: 12px;
}

.ast-redesign-career-card {
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.82fr) auto;
}

.ast-redesign-empty {
  display: grid;
  gap: 12px;
  justify-items: start;
}

.ast-redesign-speedtest {
  display: grid;
  grid-template-columns: minmax(420px, 0.8fr) minmax(0, 1fr);
  gap: 56px;
  align-items: center;
}

.ast-redesign-speedtest__meter {
  display: grid;
  justify-items: center;
  gap: 18px;
  min-height: 520px;
  padding: 36px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 24px;
  background:
    radial-gradient(circle at 50% 28%, rgba(52, 255, 230, 0.14), transparent 34%),
    linear-gradient(135deg, var(--ast-redesign-dark), #0e2a5d);
  box-shadow: var(--ast-redesign-shadow);
}

.ast-redesign-speedtest__dial {
  width: 330px;
}

.ast-redesign-speedtest__devices {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.ast-redesign-speedtest__devices span {
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.10);
  color: rgba(255, 255, 255, 0.78);
  font-weight: 800;
}

.ast-redesign-speedtest__content {
  min-width: 0;
}

.ast-redesign-speedtest__content h2 {
  max-width: 680px;
  margin-bottom: 18px;
}

.ast-redesign-editorial {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.08fr);
  gap: 56px;
  align-items: start;
}

.ast-redesign-editorial .ast-redesign-section__head {
  display: block;
  margin-bottom: 0;
}

.ast-redesign-editorial .ast-redesign-section__head h2 {
  max-width: 560px;
  font-size: 2.35rem;
}

.ast-redesign-editorial .ast-redesign-grid {
  align-self: stretch;
}

.ast-redesign-payment-methods {
  grid-template-columns: minmax(0, 1.8fr) minmax(300px, 0.85fr);
  align-items: stretch;
}

.ast-redesign-payment-card--primary {
  grid-row: span 2;
  display: grid;
  align-content: start;
  min-height: 360px;
  padding: 36px;
}

@media (prefers-reduced-motion: no-preference) {
  .ast-redesign-hero__robot,
  .ast-redesign-business-visual,
  .ast-redesign-payment-visual,
  .ast-redesign-promo-visual,
  .ast-redesign-careers-visual {
    animation: ast-redesign-drift 7s ease-in-out infinite;
  }

  .ast-redesign-coverage__point,
  .ast-redesign-coverage-visual__node {
    animation: ast-redesign-soft-pulse 3.8s ease-in-out infinite;
  }

  .site-body.ast-scroll-reveal-ready .ast-redesign-page .ast-scroll-reveal[data-reveal="fade-in"] {
    transform: none;
  }

  .site-body.ast-scroll-reveal-ready .ast-redesign-page .ast-scroll-reveal[data-reveal="scale-soft"] {
    transform: scale(0.985);
  }

  .site-body.ast-scroll-reveal-ready .ast-redesign-page .ast-scroll-reveal[data-reveal="line"] {
    transform: scaleX(0.94);
    transform-origin: left center;
  }

  .site-body.ast-scroll-reveal-ready .ast-redesign-page .ast-scroll-reveal.is-visible[data-reveal="fade-in"],
  .site-body.ast-scroll-reveal-ready .ast-redesign-page .ast-scroll-reveal.is-visible[data-reveal="scale-soft"],
  .site-body.ast-scroll-reveal-ready .ast-redesign-page .ast-scroll-reveal.is-visible[data-reveal="line"] {
    transform: none;
  }
}

@keyframes ast-redesign-drift {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }

  50% {
    transform: translate3d(0, -8px, 0);
  }
}

@keyframes ast-redesign-soft-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 9px rgba(58, 117, 255, 0.12);
  }

  50% {
    box-shadow: 0 0 0 14px rgba(52, 255, 230, 0.10);
  }
}

@media (max-width: 1100px) {
  .ast-redesign-page h2 {
    font-size: 1.75rem;
  }

  .ast-redesign-hero__inner,
  .ast-redesign-section__head,
  .ast-redesign-split,
  .ast-redesign-coverage,
  .ast-redesign-faq,
  .ast-redesign-speedtest,
  .ast-redesign-editorial {
    grid-template-columns: 1fr;
  }

  .ast-redesign-hero__inner {
    min-height: 0;
    gap: 34px;
    padding: 52px 0;
  }

  .ast-redesign-hero__visual {
    min-height: 360px;
  }

  .ast-redesign-grid--3,
  .ast-redesign-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ast-redesign-faq__nav {
    position: static;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ast-redesign-promos,
  .ast-redesign-payment-methods {
    grid-template-columns: 1fr;
  }

  .ast-redesign-payment-card--primary {
    grid-row: auto;
    min-height: 0;
  }

  .ast-redesign-career-card {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.82fr);
  }

  .ast-redesign-career-card .button {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .ast-redesign-page h2 {
    font-size: 1.52rem;
  }

  .ast-redesign-hero {
    padding-top: 0;
  }

  .ast-redesign-hero__inner {
    padding: 40px 0;
  }

  .ast-redesign-hero__content {
    max-width: none;
  }

  .ast-redesign-hero h1 {
    max-width: none;
    font-size: 2.35rem;
  }

  .ast-redesign-hero__lead {
    font-size: 1rem;
  }

  .ast-redesign-hero__visual {
    min-height: 280px;
  }

  .ast-redesign-section {
    padding: 42px 0;
  }

  .ast-redesign-grid--3,
  .ast-redesign-steps,
  .ast-redesign-promo-card,
  .ast-redesign-career-card,
  .ast-redesign-cta {
    grid-template-columns: 1fr;
  }

  .ast-redesign-card,
  .ast-redesign-empty {
    padding: 20px;
  }

  .ast-redesign-cta {
    padding: 22px;
  }

  .ast-redesign-section--cta-strip .ast-redesign-cta {
    padding: 0;
  }

  .ast-redesign-actions,
  .ast-redesign-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .ast-redesign-faq__nav {
    grid-template-columns: 1fr;
  }

  .ast-redesign-faq__group {
    padding: 18px;
  }

  .ast-redesign-faq__question {
    min-height: 58px;
    padding: 14px 0;
  }

  .ast-redesign-faq__panel {
    padding-right: 0;
  }

  .ast-redesign-coverage__map-card {
    min-height: 430px;
  }

  .ast-redesign-coverage__map-copy {
    left: 16px;
    right: 16px;
    bottom: 16px;
    padding: 18px;
  }

  .ast-redesign-speedtest__meter {
    min-height: 360px;
  }

  .ast-redesign-speedtest__dial {
    width: 230px;
  }
}

@media (max-width: 420px) {
  .ast-redesign-hero h1 {
    font-size: 2rem;
  }

  .ast-redesign-hero__visual {
    min-height: 220px;
  }

  .ast-redesign-hero__robot {
    right: 4%;
    width: 58%;
  }

  .ast-redesign-business-visual,
  .ast-redesign-payment-visual,
  .ast-redesign-promo-visual,
  .ast-redesign-careers-visual,
  .ast-redesign-hero-stack {
    left: 16px;
    top: 22px;
    width: 68%;
  }

  .ast-redesign-coverage-visual {
    inset: 20px 16px;
  }

  .ast-redesign-speedtest-visual {
    inset: 20px 12px;
  }

  .ast-redesign-speedtest-visual__gauge {
    width: 180px;
  }
}
/* /AST public redesign components */

/* AST business page by Claude */
/* One unified content shell for every section (hero + all light sections + dark CTA).
   Reuses the site-wide --shell variable, so business content aligns with the header,
   footer and future reference pages. Full-width backgrounds stay; only content is
   constrained to this shared width. */
.ast-redesign-page--business .ast-redesign-container {
  width: var(--shell);
}

/* Reuse the home page background system (.site-body): same faint brand pattern,
   same 680px scale and white veil, so the light part matches home exactly. */
.ast-redesign-page--business {
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center top / 680px auto repeat,
    linear-gradient(180deg, #ffffff 0%, #f4faff 44%, #edf6fb 100%);
}

.ast-business-strip-section,
.ast-business-solutions-section,
.ast-business-included-section,
.ast-business-why-section,
.ast-business-steps-section {
  background: transparent;
}

/* Seamless dark CTA -> footer: drop the light gap (same approach as the home page) */
.site-main:has(.ast-redesign-page--business) { padding-bottom: 0; }
.site-main:has(.ast-redesign-page--business) + .site-footer,
.site-main:has(.ast-redesign-page--business) + footer { margin-top: 0; }

/* Tighter vertical rhythm + stronger body contrast */
.ast-redesign-page--business .ast-redesign-section {
  padding: 27px 0;
}

.ast-redesign-page--business .ast-redesign-section__head {
  margin-bottom: 13px;
}

.ast-redesign-page--business .ast-redesign-section p {
  color: var(--ast-redesign-ink-soft);
  font-size: 1.02rem;
}

/* 1. Hero: wider, more integrated scene, same title scale */
.ast-redesign-page--business .ast-redesign-hero h1 {
  max-width: 20ch;
  font-size: clamp(2.85rem, 4vw, 4.1rem);
}

.ast-redesign-page--business .ast-redesign-hero__inner {
  min-height: 420px;
  padding: 46px 0;
}

.ast-redesign-page--business .ast-redesign-hero__visual {
  min-height: 420px;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.ast-redesign-page--business .ast-redesign-hero__visual::before {
  opacity: 0.05;
}

.ast-redesign-page--business .ast-redesign-hero__robot {
  right: 2%;
  bottom: 0;
  width: min(310px, 54%);
}

.ast-redesign-page--business .ast-redesign-business-visual {
  inset: 44px auto auto 24px;
  width: min(300px, 60%);
  background: rgba(255, 255, 255, 0.08);
}

/* 2. Benefits strip */
.ast-business-strip-section {
  padding: 16px 0;
  border-bottom: 1px solid var(--ast-redesign-line);
}

.ast-business-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ast-business-strip__item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  min-width: 0;
  padding: 2px 34px;
  border-left: 1px solid var(--ast-redesign-line);
}

.ast-business-strip__item:first-child {
  padding-left: 0;
  border-left: 0;
}

.ast-business-strip__mark {
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  margin-top: 6px;
  border-radius: 4px;
  background: linear-gradient(135deg, var(--ast-redesign-blue), var(--ast-redesign-cyan));
}

.ast-business-strip__item h3 {
  margin-bottom: 3px;
  font-size: 1.05rem;
}

.ast-business-strip__item p {
  margin-bottom: 0;
  font-size: 0.95rem;
  line-height: 1.5;
}

/* 3. Solutions for objects */
.ast-business-solutions {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: 20px;
}

.ast-business-solution {
  display: grid;
  align-content: start;
  gap: 14px;
  min-width: 0;
  padding: 22px 28px;
  border: 1px solid var(--ast-redesign-line);
  border-radius: var(--ast-redesign-radius);
  background: var(--ast-redesign-surface);
  box-shadow: var(--ast-redesign-shadow-soft);
}

.ast-business-solution__body {
  display: grid;
  gap: 12px;
}

.ast-business-solution--lead {
  grid-row: span 2;
  align-content: space-between;
  border-color: var(--ast-redesign-line-strong);
  background:
    radial-gradient(circle at 94% 4%, rgba(52, 255, 230, 0.16), transparent 42%),
    linear-gradient(155deg, #ffffff, #eef5ff);
}

.ast-business-solution h3 {
  font-size: 1.24rem;
}

.ast-business-solution--lead h3 {
  font-size: 1.55rem;
  font-family: var(--font-heading);
  font-weight: 400;
}

.ast-business-solution__lead {
  margin-bottom: 0;
  color: var(--ast-redesign-ink-soft);
}

.ast-business-solution__list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ast-business-solution__list li {
  position: relative;
  min-width: 0;
  padding-left: 22px;
  color: var(--ast-redesign-ink-soft);
  font-size: 0.98rem;
  line-height: 1.5;
}

.ast-business-solution__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ast-redesign-blue);
}

.ast-business-solution--lead .ast-business-solution__list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 24px;
}

/* Compact flow diagram inside the lead card (fills empty space with useful info) */
.ast-business-flow {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
  margin-top: 4px;
  padding-top: 16px;
  border-top: 1px dashed var(--ast-redesign-line-strong);
}

.ast-business-flow__node {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 9px 15px;
  border: 1px solid rgba(58, 117, 255, 0.18);
  border-radius: 10px;
  background: rgba(58, 117, 255, 0.07);
  color: var(--ast-redesign-ink);
  font-size: 0.9rem;
  font-weight: 700;
}

.ast-business-flow__node:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -14px;
  top: 50%;
  width: 12px;
  height: 8px;
  background: var(--ast-redesign-blue);
  clip-path: polygon(0 35%, 55% 35%, 55% 8%, 100% 50%, 55% 92%, 55% 65%, 0 65%);
  opacity: 0.55;
  transform: translateY(-50%);
}

/* 4. What is included */
.ast-business-included {
  display: grid;
  grid-template-columns: minmax(0, 0.64fr) minmax(0, 1.36fr);
  gap: 40px;
  align-items: start;
}

.ast-business-included__intro {
  display: grid;
  gap: 14px;
  align-content: start;
  max-width: 400px;
}

.ast-business-included__intro .button {
  justify-self: start;
  margin-top: 4px;
}

.ast-business-included__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ast-business-included__row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 14px;
  align-items: baseline;
  min-width: 0;
  padding: 12px 0;
  border-top: 1px solid var(--ast-redesign-line);
}

.ast-business-included__dot {
  grid-row: 1 / 3;
  align-self: start;
  width: 10px;
  height: 10px;
  margin-top: 7px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ast-redesign-blue), var(--ast-redesign-cyan));
}

.ast-business-included__row h3 {
  margin: 0;
  font-size: 1.1rem;
}

.ast-business-included__row p {
  grid-column: 2;
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
}

/* 5. Why AST — single horizontal trust band, no cards */
.ast-business-trust {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border: 1px solid var(--ast-redesign-line);
  border-radius: var(--ast-redesign-radius);
  background: var(--ast-redesign-surface);
  box-shadow: var(--ast-redesign-shadow-soft);
  list-style: none;
  counter-reset: ast-business-trust;
}

/* /biznesu «Почему АСТ»: когда в блоке ровно две карточки, они занимают всю
   ширину контейнера двумя равными колонками. Правило стоит до media-запросов
   .ast-business-trust ниже, поэтому на ≤1100px и ≤760px базовые колонки
   (2 → 1) по-прежнему выигрывают по порядку следования. */
.ast-business-trust--pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ast-business-trust__item {
  counter-increment: ast-business-trust;
  display: grid;
  gap: 8px;
  align-content: start;
  min-width: 0;
  padding: 24px 28px;
  border-left: 1px solid var(--ast-redesign-line);
}

.ast-business-trust__item:first-child {
  border-left: 0;
}

.ast-business-trust__num {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1;
  color: var(--ast-redesign-blue);
}

.ast-business-trust__num::before {
  content: counter(ast-business-trust, decimal-leading-zero);
}

.ast-business-trust__item h3 {
  font-size: 1.1rem;
}

.ast-business-trust__item p {
  margin-bottom: 0;
  font-size: 0.96rem;
}

/* 6. Connection steps — compact timeline */
.ast-business-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: ast-business-tl;
}

.ast-business-timeline::before {
  content: "";
  position: absolute;
  top: 25px;
  left: 16.6%;
  right: 16.6%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ast-redesign-blue), var(--ast-redesign-cyan));
  opacity: 0.72;
}

.ast-business-timeline__item {
  counter-increment: ast-business-tl;
  position: relative;
  display: grid;
  gap: 8px;
  justify-items: center;
  min-width: 0;
  padding-top: 60px;
  text-align: center;
}

.ast-business-timeline__item::before {
  content: counter(ast-business-tl, decimal-leading-zero);
  position: absolute;
  top: 0;
  left: 50%;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ast-redesign-blue), var(--ast-redesign-cyan));
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 1.1rem;
  box-shadow: 0 0 0 6px rgba(58, 117, 255, 0.12);
  transform: translateX(-50%);
}

.ast-business-timeline__item h3 {
  margin: 0;
  font-size: 1.16rem;
}

.ast-business-timeline__item p {
  max-width: 36ch;
  margin: 0;
  font-size: 0.98rem;
  color: var(--ast-redesign-ink);
}

/* 7. Final CTA — denser, wider, no inner frame */
.ast-business-cta-section {
  padding: 30px 0;
}

.ast-business-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 380px);
  gap: 24px;
  align-items: center;
}

.ast-business-cta__content {
  display: grid;
  gap: 14px;
  max-width: 820px;
}

.ast-business-cta__content h2 {
  color: #ffffff;
}

.ast-business-cta__content p {
  margin-bottom: 2px;
  color: rgba(255, 255, 255, 0.76);
}

.ast-business-cta__visual {
  position: relative;
  display: grid;
  place-items: center start;
  min-height: 180px;
}

.ast-business-cta__visual::before {
  content: "";
  position: absolute;
  inset: 0 6% 0 -14%;
  z-index: 0;
  background:
    radial-gradient(circle at 60% 46%, rgba(52, 255, 230, 0.2), transparent 62%),
    linear-gradient(90deg, transparent 0%, rgba(52, 255, 230, 0.3) 42%, rgba(52, 255, 230, 0.08) 74%, transparent 96%) center / 100% 2px no-repeat;
}

.ast-business-cta__robot {
  position: relative;
  z-index: 1;
  width: min(230px, 82%);
  height: auto;
  filter: drop-shadow(0 18px 34px rgba(7, 20, 45, 0.4));
}

@media (max-width: 1100px) {
  .ast-business-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 0;
  }

  .ast-business-strip__item:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }

  .ast-business-solutions {
    grid-template-columns: 1fr;
  }

  .ast-business-solution--lead {
    grid-row: auto;
  }

  .ast-business-included {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .ast-business-included__intro {
    max-width: none;
  }

  .ast-business-trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ast-business-trust__item:nth-child(odd) {
    border-left: 0;
  }

  .ast-business-trust__item:nth-child(n + 3) {
    border-top: 1px solid var(--ast-redesign-line);
  }

  .ast-business-cta {
    grid-template-columns: 1fr;
  }

  .ast-business-cta__visual {
    order: -1;
    min-height: 140px;
  }
}

@media (max-width: 760px) {
  .ast-business-strip {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ast-business-included__list {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .ast-business-solution--lead .ast-business-solution__list {
    grid-template-columns: 1fr;
  }

  .ast-business-trust {
    grid-template-columns: 1fr;
    border: 0;
    background: transparent;
  }

  .ast-business-trust__item {
    padding: 20px 0;
    border-left: 0;
    border-top: 1px solid var(--ast-redesign-line);
  }

  .ast-business-trust__item:first-child {
    padding-top: 0;
    border-top: 0;
  }

  /* Timeline becomes a vertical line */
  .ast-business-timeline {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .ast-business-timeline::before {
    top: 0;
    bottom: 0;
    left: 22px;
    right: auto;
    width: 2px;
    height: auto;
  }

  .ast-business-timeline__item {
    justify-items: start;
    padding: 0 0 24px 62px;
    text-align: left;
  }

  .ast-business-timeline__item:last-child {
    padding-bottom: 0;
  }

  .ast-business-timeline__item::before {
    top: 0;
    left: 0;
    transform: none;
  }

  .ast-business-timeline__item p {
    max-width: none;
  }

  .ast-business-solution {
    padding: 24px;
  }
}
/* Business robot motion */
.ast-business-hero-shell {
  position: relative;
}

.ast-business-hero-fx {
  position: absolute;
  inset: 0;
  z-index: 3;
  overflow: hidden;
  pointer-events: none;
}

.ast-business-hero-fx__glow,
.ast-business-hero-fx__wave {
  position: absolute;
  left: 78%;
  top: 23%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.ast-business-hero-fx__glow {
  width: 210px;
  height: 210px;
  background: radial-gradient(circle, rgba(52, 255, 230, 0.28), rgba(58, 117, 255, 0.14) 46%, transparent 68%);
  opacity: 0.5;
}

.ast-business-hero-fx__wave {
  width: 30px;
  height: 30px;
  border: 2px solid rgba(52, 255, 230, 0.7);
  opacity: 0;
}

.ast-business-cta__visual::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 57%;
  top: 40%;
  width: 26px;
  height: 26px;
  border: 2px solid rgba(58, 117, 255, 0.6);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0.4);
  opacity: 0;
}

@media (prefers-reduced-motion: no-preference) {
  .ast-redesign-page--business .ast-redesign-hero__robot { --fx: 2px; --fy: -10px; --fr: 1.2deg; animation: ast-business-float 4.2s ease-in-out infinite; will-change: transform, filter; }
  .ast-redesign-page--business .ast-redesign-business-visual__signal i { animation: ast-business-node 2.1s ease-in-out infinite; }
  .ast-redesign-page--business .ast-redesign-business-visual__signal i:nth-child(1) { animation-delay: -0.5s; }
  .ast-redesign-page--business .ast-redesign-business-visual__signal i:nth-child(2) { animation-delay: -0.3s; }
  .ast-redesign-page--business .ast-redesign-business-visual__signal i:nth-child(3) { animation-delay: -0.1s; }
  .ast-business-hero-fx__glow { animation: ast-business-glow 2.9s ease-in-out infinite; }
  .ast-business-hero-fx__wave { animation: ast-business-ping 2s ease-out infinite; }
  .ast-business-hero-fx__wave--1 { animation-delay: -0.2s; }
  .ast-business-hero-fx__wave--2 { animation-delay: -1.2s; }
  .ast-redesign-page--business .ast-business-cta__robot { animation: ast-business-cta-float 5.5s ease-in-out infinite; will-change: transform; }
  .ast-business-cta__visual::after { animation: ast-business-ping 2.8s ease-out infinite; }
}

@keyframes ast-business-float {
  0%, 100% { transform: translate(0, 0) rotate(0deg); filter: drop-shadow(0 18px 28px rgba(7, 20, 45, 0.36)); }
  50% { transform: translate(var(--fx, 2px), var(--fy, -10px)) rotate(var(--fr, 1.2deg)); filter: drop-shadow(0 31px 46px rgba(7, 20, 45, 0.2)); }
}
@keyframes ast-business-node {
  0%, 100% { opacity: 0.4; transform: scaleY(0.8); }
  50% { opacity: 1; transform: scaleY(1.06); }
}
@keyframes ast-business-glow {
  0%, 100% { opacity: 0.34; transform: translate(-50%, -50%) scale(0.95); }
  50% { opacity: 0.85; transform: translate(-50%, -50%) scale(1.12); }
}
@keyframes ast-business-ping {
  0% { transform: translate(-50%, -50%) scale(0.35); opacity: 0; }
  14% { opacity: 0.78; }
  100% { transform: translate(-50%, -50%) scale(1.9); opacity: 0; }
}

@keyframes ast-business-cta-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@media (max-width: 760px) {
  .ast-redesign-page--business .ast-redesign-hero__robot { --fx: 1px; --fy: -6px; --fr: 0.6deg; }
  .ast-business-hero-fx__glow { width: 150px; height: 150px; left: 78%; top: 72%; }
  .ast-business-hero-fx__wave { left: 80%; top: 74%; animation-duration: 2.2s; }
  .ast-business-hero-fx__wave--2 { display: none; }
}
/* /AST business page by Claude */

/* AST home reference refresh */
/* Home aligned to the accepted /biznesu reference: same shell, same surfaces,
   same dark hero system, same tokens, same density. Light sections stay
   transparent and sit on the shared .site-body pattern field (no per-section
   bands), so the whole page reads as one design system. */
.ast-home--reference {
  --hp-blue: #3a75ff;
  --hp-blue-strong: #245ee8;
  --hp-cyan: #34ffe6;
  --hp-ink: #1d1d1b;
  --hp-ink-soft: #364c61;
  --hp-muted: #516173;
  --hp-line: rgba(29, 29, 27, 0.12);
  --hp-line-strong: rgba(58, 117, 255, 0.24);
  --hp-surface: #ffffff;
  --hp-radius: 20px;
  --hp-radius-sm: 12px;
  --hp-shadow: 0 20px 52px rgba(7, 20, 45, 0.10);
  --hp-shadow-soft: 0 12px 30px rgba(7, 20, 45, 0.07);
  --hp-dark: #07142d;
  position: relative;
  overflow-x: hidden;
  color: var(--hp-ink);
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-hp-shell {
  width: var(--shell);
  margin-inline: auto;
}
/* Match the accepted /biznesu behaviour: clip page-level horizontal overflow so
   the shared header controls never produce a horizontal scrollbar on mobile. */
html:has(.ast-home--reference),
body:has(.ast-home--reference) {
  overflow-x: hidden;
}
/* CTA section is dark and touches footer — remove site-main bottom padding */
.site-main:has(.ast-home--reference) { padding-bottom: 0; }
.site-main:has(.ast-home--reference) + .site-footer,
.site-main:has(.ast-home--reference) + footer { margin-top: 0; }
.ast-home--reference h1,
.ast-home--reference h2,
.ast-home--reference h3 {
  color: var(--hp-ink);
  letter-spacing: 0;
}
.ast-home--reference p {
  color: var(--hp-ink-soft);
  line-height: 1.6;
}
.ast-hp-kicker {
  margin: 0 0 4px;
  color: var(--hp-blue);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
}

.ast-hp-section {
  position: relative;
  padding: 8px 0;
}
.ast-hp-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 22px;
  align-items: end;
  margin-bottom: 8px;
}
.ast-hp-head h2 {
  margin: 0;
  font-size: clamp(1.6rem, 2.3vw, 2rem);
  line-height: 1.16;
}
.ast-hp-head p {
  max-width: 38ch;
  margin: 0;
  color: var(--hp-ink-soft);
  font-size: 1rem;
}
.ast-hp-head p:last-child {
  grid-column: 2;
  text-align: right;
}
.ast-hp-link {
  align-self: center;
  color: var(--hp-blue-strong);
  font-weight: 800;
  white-space: nowrap;
}
.ast-hp-link::after {
  content: " →";
}
.ast-hp-link:hover,
.ast-hp-link:focus-visible {
  color: var(--hp-blue);
}
.ast-hp-muted {
  color: var(--hp-muted);
}
/* Guard: cards must be able to shrink below their content min-width so a single
   grid column never forces the shell wider than the viewport (no h-overflow). */
.ast-hp-coverage__form,
.ast-hp-tariff,
.ast-hp-feed__col,
.ast-hp-service {
  min-width: 0;
}

/* ---------- Hero (matches business dark hero height + weight) ---------- */
.ast-hp-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #ffffff;
  background:
    radial-gradient(circle at 82% 18%, rgba(52, 255, 230, 0.20), transparent 30%),
    linear-gradient(135deg, var(--hp-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-hp-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 18% 12%, rgba(58, 117, 255, 0.28), transparent 32%),
    url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 720px auto repeat;
  opacity: 0.14;
}

/* Slightly denser pattern + glow on the right, calmer under the text on the left */
.ast-hp-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(circle at 74% 42%, rgba(52, 255, 230, 0.12), transparent 46%);
  pointer-events: none;
}
.ast-hp-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.96fr) minmax(430px, 1.04fr);
  gap: 44px;
  align-items: center;
  min-height: 480px;
  padding: 58px 0;
}
.ast-hp-hero__content {
  display: grid;
  gap: 13px;
  align-content: center;
  max-width: 700px;
}
.ast-hp-hero .ast-hp-kicker {
  color: var(--hp-cyan);
}
.ast-hp-hero h1 {
  max-width: 26ch;
  margin: 0;
  color: #ffffff;
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: clamp(2.55rem, 3.5vw, 3.85rem);
  line-height: 1.04;
}
.ast-hp-hero .ast-hp-hero__lead {
  max-width: 54ch;
  margin: 0;
  color: rgba(218, 236, 255, 0.97);
  font-size: 1.1rem;
}
.ast-hp-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
}
.ast-hp-hero__chips li {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 13px;
  border: 1px solid rgba(52, 255, 230, 0.26);
  border-radius: 999px;
  background: rgba(52, 255, 230, 0.09);
  color: var(--hp-cyan);
  font-size: 0.86rem;
  font-weight: 800;
}
.ast-hp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}
.ast-hp-hero .ast-hp-hero__area {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.92rem;
  font-weight: 700;
}

/* Hero scene: brand network animation left, robot right */
.ast-hp-hero__scene {
  position: relative;
  min-height: 460px;
  height: 100%;
}
.ast-hp-hero__scene .ast-brand-motion {
  transform: translateX(clamp(-70px, -4.2vw, -40px));
}
/* Dark hero overrides for global ast-brand-* tokens */
.ast-hp-hero .ast-brand-orbits ellipse {
  stroke: rgba(120, 170, 255, 0.40);
}
.ast-hp-hero .ast-brand-nodes text {
  fill: rgba(255, 255, 255, 0.96);
  font-size: 16px;
  paint-order: stroke fill;
  stroke: rgba(5, 16, 40, 0.56);
  stroke-width: 3.5px;
  stroke-linejoin: round;
}
.ast-hp-hero__robot {
  position: absolute;
  right: clamp(8px, 1.5vw, 22px);
  top: 50%;
  z-index: 3;
  width: clamp(110px, 11vw, 162px);
  transform: translateY(-52%);
  filter: drop-shadow(0 20px 36px rgba(3, 10, 26, 0.48));
}
.ast-hp-hero__wave {
  position: absolute;
  left: 80%;
  top: 30%;
  width: 30px;
  height: 30px;
  border: 2px solid rgba(52, 255, 230, 0.65);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  z-index: 3;
}

/* ---------- Benefits strip — compact cards ---------- */
.ast-hp-strip-section {
  padding: 12px 0;
}
.ast-hp-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ast-hp-strip__item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  min-width: 0;
  padding: 16px 18px;
  border: 1px solid var(--hp-line);
  border-radius: var(--hp-radius-sm);
  background: var(--hp-surface);
  box-shadow: var(--hp-shadow-soft);
}
.ast-hp-strip__item:first-child {
  padding-left: 18px;
  border-left: 1px solid var(--hp-line);
}
.ast-hp-strip__mark {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  margin-top: 7px;
  border-radius: 3px;
  background: linear-gradient(135deg, var(--hp-blue), var(--hp-cyan));
}
.ast-hp-strip__item h3 {
  margin: 0 0 3px;
  font-size: 1rem;
}
.ast-hp-strip__item p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
}

/* ---------- Address + map ---------- */
.ast-hp-coverage {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  overflow: hidden;
  border: 1px solid var(--hp-line);
  border-radius: var(--hp-radius);
  background: var(--hp-surface);
  box-shadow: var(--hp-shadow);
}
.ast-hp-coverage__form {
  display: grid;
  align-content: center;
  gap: 16px;
  padding: clamp(22px, 2.3vw, 36px);
}
.ast-hp-coverage__form h2 {
  margin: 0;
  font-size: clamp(1.5rem, 2vw, 1.9rem);
}
.ast-hp-address {
  display: flex;
  gap: 10px;
  margin-top: 4px;
}
.ast-hp-address input {
  flex: 1 1 auto;
  min-width: 0;
  height: 50px;
  padding: 0 16px;
  border: 1px solid var(--hp-line);
  border-radius: var(--hp-radius-sm);
  background: #f7fafe;
  font: inherit;
  color: var(--hp-ink);
}
.ast-hp-address input:focus-visible {
  outline: 2px solid var(--hp-blue);
  outline-offset: 1px;
  border-color: var(--hp-blue);
}
.ast-hp-coverage__note {
  margin: 0;
  color: var(--hp-muted);
  font-size: 0.9rem;
}
.ast-hp-coverage__map {
  position: relative;
  min-height: 300px;
  background: #eaf1f8;
}
.ast-hp-coverage__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ---------- Tariffs ---------- */
.ast-hp-tariffs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
.ast-hp-tariff {
  position: relative;
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 26px 26px 24px;
  border: 1px solid var(--hp-line);
  border-radius: var(--hp-radius);
  background: var(--hp-surface);
  box-shadow: var(--hp-shadow-soft);
}
.ast-hp-tariff--featured {
  border-color: var(--hp-line-strong);
  background:
    radial-gradient(circle at 94% 4%, rgba(52, 255, 230, 0.16), transparent 42%),
    linear-gradient(155deg, #ffffff, #eef5ff);
  box-shadow: var(--hp-shadow);
}
.ast-hp-tariff__badge {
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 4px 11px;
  border-radius: 999px;
  background: var(--hp-blue);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}
.ast-hp-tariff__label {
  color: var(--hp-muted);
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
}
.ast-hp-tariff__name {
  font-family: var(--font-heading);
  font-size: 1.34rem;
  font-weight: 400;
  color: var(--hp-ink);
}
.ast-hp-tariff__speed {
  margin-top: 2px;
  color: var(--hp-blue-strong);
  font-size: 1.9rem;
  font-weight: 800;
  line-height: 1.05;
}
.ast-hp-tariff__price {
  color: var(--hp-ink);
  font-size: 1.05rem;
  font-weight: 800;
}
.ast-hp-tariff__audience {
  margin: 6px 0 14px;
  font-size: 0.95rem;
}
.ast-hp-tariff .button {
  justify-self: stretch;
  margin-top: auto;
  text-align: center;
}

/* ---------- News + announcements ---------- */
.ast-hp-feed {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.ast-hp-feed__col {
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 28px 30px;
  border: 1px solid var(--hp-line);
  border-radius: var(--hp-radius);
  background: var(--hp-surface);
  box-shadow: var(--hp-shadow-soft);
}
.ast-hp-feed__col--notice {
  border-color: var(--hp-line-strong);
  background:
    linear-gradient(180deg, rgba(58, 117, 255, 0.06), rgba(52, 255, 230, 0.05)),
    var(--hp-surface);
}
.ast-hp-feed__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--hp-line);
}
.ast-hp-feed__head strong {
  font-size: 1.15rem;
  color: var(--hp-ink);
}
.ast-hp-post {
  display: grid;
  gap: 4px;
  padding: 14px 0;
  border-top: 1px solid var(--hp-line);
}
.ast-hp-post:first-of-type {
  border-top: 0;
}
.ast-hp-post small {
  color: var(--hp-blue-strong);
  font-size: 0.84rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.01em;
}
.ast-hp-post strong {
  color: var(--hp-ink);
  font-size: 1.06rem;
  line-height: 1.3;
}
.ast-hp-post span {
  color: var(--hp-ink-soft);
  font-size: 0.95rem;
  line-height: 1.5;
}
.ast-hp-post--notice strong {
  padding-left: 14px;
  border-left: 3px solid var(--hp-blue);
}
.ast-hp-post:hover strong,
.ast-hp-post:focus-visible strong {
  color: var(--hp-blue-strong);
}

/* ---------- Services ---------- */
.ast-hp-services {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 20px;
}
.ast-hp-service {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 26px 28px;
  border: 1px solid var(--hp-line);
  border-radius: var(--hp-radius);
  background: var(--hp-surface);
  box-shadow: var(--hp-shadow-soft);
}
.ast-hp-service--lead {
  grid-row: auto;
  align-content: start;
  border-color: var(--hp-line-strong);
  background:
    radial-gradient(circle at 92% 8%, rgba(52, 255, 230, 0.16), transparent 44%),
    linear-gradient(150deg, #ffffff, #eef5ff);
}
.ast-hp-service__tag {
  color: var(--hp-blue-strong);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}
.ast-hp-service strong {
  font-size: 1.2rem;
  color: var(--hp-ink);
}
.ast-hp-service--lead strong {
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: 2rem;
}
.ast-hp-service__text {
  color: var(--hp-ink-soft);
  font-size: 0.98rem;
  line-height: 1.5;
}
.ast-hp-service__more {
  margin-top: 2px;
  color: var(--hp-blue-strong);
  font-size: 0.92rem;
  font-weight: 800;
}
.ast-hp-service:hover {
  border-color: var(--hp-line-strong);
}

/* ---------- Trust band ---------- */
.ast-hp-trust {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border: 1px solid var(--hp-line);
  border-radius: var(--hp-radius);
  background: var(--hp-surface);
  box-shadow: var(--hp-shadow-soft);
  list-style: none;
  counter-reset: hp-trust;
}
.ast-hp-trust__item {
  counter-increment: hp-trust;
  display: grid;
  gap: 8px;
  align-content: start;
  min-width: 0;
  padding: 24px 28px;
  border-left: 1px solid var(--hp-line);
}
.ast-hp-trust__item:first-child {
  border-left: 0;
}
.ast-hp-trust__num {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1;
  color: var(--hp-blue);
}
.ast-hp-trust__num::before {
  content: counter(hp-trust, decimal-leading-zero);
}
.ast-hp-trust__item h3 {
  margin: 0;
  font-size: 1.1rem;
}
.ast-hp-trust__item p {
  margin: 0;
  color: var(--hp-ink-soft);
  font-size: 0.96rem;
}

/* ---------- Final dark CTA — flush to footer ---------- */
.ast-hp-cta-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 30px 0;
  color: #fff;
  background:
    radial-gradient(circle at 84% 22%, rgba(52, 255, 230, 0.16), transparent 30%),
    radial-gradient(circle at 12% 30%, rgba(58, 117, 255, 0.24), transparent 34%),
    linear-gradient(135deg, var(--hp-dark) 0%, #0a1f48 58%, #123778 100%);
}
.ast-hp-cta-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 620px auto repeat;
  opacity: 0.1;
}
.ast-hp-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 360px);
  gap: 24px;
  align-items: center;
}
.ast-hp-cta__content {
  display: grid;
  gap: 12px;
  max-width: 820px;
}
.ast-hp-cta__content h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.6rem, 2.2vw, 2.1rem);
}
.ast-hp-cta__content p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
}
.ast-hp-cta__content .ast-hp-kicker {
  color: var(--hp-cyan);
}
.ast-hp-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}
.ast-hp-cta__visual {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 180px;
}
.ast-hp-cta__visual::before {
  content: "";
  position: absolute;
  inset: 6% 4%;
  background: radial-gradient(circle at 55% 45%, rgba(52, 255, 230, 0.2), transparent 62%);
}
.ast-hp-cta__robot {
  position: relative;
  z-index: 1;
  width: min(220px, 78%);
  filter: drop-shadow(0 18px 34px rgba(7, 20, 45, 0.42));
}

.ast-hp-trust-section {
  position: relative;
  padding-bottom: 0;
}

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: no-preference) {
  .ast-hp-hero__robot {
    animation: ast-hp-float 4.3s ease-in-out infinite;
    will-change: transform, filter;
  }
  .ast-hp-hero__wave {
    animation: ast-hp-ping 2s ease-out infinite;
  }
  .ast-hp-hero__wave--2 {
    animation-delay: -1s;
  }
  .ast-hp-cta__robot {
    animation: ast-hp-cta-float 5.6s ease-in-out infinite;
    will-change: transform;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ast-hp-hero .ast-brand-packets,
  .ast-hp-hero__wave {
    display: none;
  }
}
@keyframes ast-hp-float {
  0%, 100% { transform: translateY(-52%) translate(0, 0) rotate(0deg); filter: drop-shadow(0 20px 32px rgba(7, 20, 45, 0.4)); }
  50% { transform: translateY(-52%) translate(-2px, -9px) rotate(-1deg); filter: drop-shadow(0 30px 44px rgba(7, 20, 45, 0.26)); }
}
@keyframes ast-hp-ping {
  0% { transform: translate(-50%, -50%) scale(0.35); opacity: 0; }
  16% { opacity: 0.62; }
  100% { transform: translate(-50%, -50%) scale(1.9); opacity: 0; }
}
@keyframes ast-hp-cta-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .ast-hp-hero__inner {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    gap: 24px;
  }
  .ast-hp-hero__scene {
    min-height: 320px;
  }
  .ast-hp-hero__scene .ast-brand-motion {
    transform: translateX(-20px);
  }
  .ast-hp-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .ast-hp-services {
    grid-template-columns: minmax(0, 1fr);
  }
  .ast-hp-service--lead {
    grid-row: auto;
  }
  .ast-hp-trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ast-hp-trust__item:nth-child(odd) {
    border-left: 0;
  }
  .ast-hp-trust__item:nth-child(n + 3) {
    border-top: 1px solid var(--hp-line);
  }
  .ast-hp-cta {
    grid-template-columns: minmax(0, 1fr);
  }
  .ast-hp-cta__visual {
    order: -1;
    min-height: 140px;
  }
}
@media (max-width: 760px) {
  .ast-hp-hero__scene .ast-brand-motion {
    transform: none;
  }
  .ast-hp-head {
    grid-template-columns: 1fr;
  }
  .ast-hp-head p:last-child {
    grid-column: 1;
    text-align: left;
  }
  .ast-hp-coverage,
  .ast-hp-tariffs,
  .ast-hp-feed {
    grid-template-columns: minmax(0, 1fr);
  }
  .ast-hp-strip {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  .ast-hp-trust {
    grid-template-columns: minmax(0, 1fr);
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .ast-hp-trust__item {
    padding: 18px 0;
    border-left: 0;
    border-top: 1px solid var(--hp-line);
  }
  .ast-hp-trust__item:first-child {
    padding-top: 0;
    border-top: 0;
  }
  .ast-hp-hero__robot {
    width: clamp(90px, 24vw, 140px);
    right: 2%;
  }
  .ast-hp-hero__actions .button,
  .ast-hp-cta__actions .button {
    flex: 1 1 auto;
  }
}
@media (max-width: 420px) {
  .ast-hp-hero__scene {
    min-height: 280px;
  }
}
/* /AST home reference refresh */

/* AST inner FAQ reference */

/* Variables + wrapper with home-identical light pattern background */
.ast-faq {
  --ast-redesign-blue: #3a75ff;
  --ast-redesign-ink: #1d1d1b;
  --ast-redesign-ink-soft: #405266;
  --ast-redesign-muted: #68798c;
  --ast-redesign-line: rgba(29, 29, 27, 0.12);
  --ast-redesign-line-strong: rgba(58, 117, 255, 0.24);
  --ast-redesign-shadow-soft: 0 12px 30px rgba(7, 20, 45, 0.07);
  --faq-blue: #3a75ff;
  --faq-cyan: #34ffe6;
  --faq-dark: #050e28;
  --faq-ink: #0d1a2d;
  --faq-ink-soft: #516173;
  --faq-line: rgba(58, 117, 255, 0.13);
  position: relative;
  overflow-x: hidden;
  color: var(--faq-ink);
  /* exact home pattern stack — one layer covers cats + main */
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-faq h1, .ast-faq h2, .ast-faq h3, .ast-faq p { margin-top: 0; }
.ast-faq h2 { margin-bottom: 0; font-size: 1.9rem; line-height: 1.18; letter-spacing: 0; }
.ast-faq h3 { margin-bottom: 0; font-size: 1.1rem; line-height: 1.28; letter-spacing: 0; }

/* CTA dark section touches footer — same trick as home */
.site-main:has(.ast-faq) { padding-bottom: 0; }
.site-main:has(.ast-faq) + .site-footer,
.site-main:has(.ast-faq) + footer { margin-top: 0; }

.ast-faq-shell {
  width: min(1760px, calc(100% - 32px));
  margin-inline: auto;
}

/* Kicker */
.ast-faq-kicker {
  margin: 0 0 6px;
  color: var(--faq-blue);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ast-faq-kicker--cyan { color: var(--faq-cyan); }

/* ── HERO ── */
.ast-faq-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52, 255, 230, 0.20), transparent 32%),
    linear-gradient(135deg, var(--faq-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-faq-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14;
  pointer-events: none;
}

.ast-faq-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  gap: clamp(20px, 3vw, 44px);
  align-items: center;
  min-height: 420px;
  padding: clamp(44px, 5.5vw, 68px) 0;
}

.ast-faq-hero__content {
  display: grid;
  gap: 16px;
  align-content: center;
  z-index: 2;
}
.ast-faq-hero h1 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.2rem, 4.6vw, 3.7rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.02em;
}
.ast-faq-hero__lead {
  max-width: 44ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 1.07rem;
  line-height: 1.56;
}

.ast-faq-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.ast-faq-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 13px;
  border: 1px solid rgba(52, 255, 230, 0.28);
  border-radius: 999px;
  background: rgba(52, 255, 230, 0.09);
  color: var(--faq-cyan);
  font-size: 0.84rem;
  font-weight: 800;
  text-decoration: none;
  transition: background 0.18s, border-color 0.18s;
}
.ast-faq-chip:hover { background: rgba(52, 255, 230, 0.16); border-color: rgba(52, 255, 230, 0.50); }

.ast-faq-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* ── SCENE PANEL ── */
.ast-faq-hero__scene {
  position: relative;
  min-height: 370px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background:
    radial-gradient(circle at 70% 26%, rgba(52, 255, 230, 0.18), transparent 38%),
    radial-gradient(circle at 22% 72%, rgba(58, 117, 255, 0.22), transparent 36%),
    rgba(10, 22, 58, 0.82);
  box-shadow: 0 24px 60px rgba(7, 20, 45, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.10);
  z-index: 1;
}

.ast-faq-scene__bg {
  position: absolute;
  inset: -10%;
  background-repeat: repeat;
  background-size: 300px auto;
  opacity: 0.10;
  pointer-events: none;
  animation: astFaqBg 7s ease-in-out infinite;
}

.ast-faq-scene__robot {
  position: absolute;
  left: 14px;
  bottom: 0;
  width: clamp(100px, 16%, 150px);
  filter: drop-shadow(0 16px 26px rgba(52, 255, 230, 0.28));
  animation: astFaqRobot 3.6s ease-in-out infinite;
  z-index: 3;
}

.ast-faq-scene__board {
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: clamp(110px, 18%, 165px);
  right: 14px;
  display: grid;
  gap: 10px;
  align-content: center;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  z-index: 2;
}

.ast-faq-scene__board-head {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 4px;
}
.ast-faq-scene__win-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ast-faq-scene__win-dot--r { background: rgba(255, 95, 86, 0.75); }
.ast-faq-scene__win-dot--g { background: rgba(52, 255, 230, 0.75); }
.ast-faq-scene__board-label {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.70rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

/* Question rows — cycle active via shared keyframe + stagger */
.ast-faq-scene__row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.10);
  animation: astFaqRowOn 8s ease-in-out infinite;
}
.ast-faq-scene__row--1 { animation-delay: 0s; }
.ast-faq-scene__row--2 { animation-delay: 2.67s; }
.ast-faq-scene__row--3 { animation-delay: 5.33s; }

.ast-faq-scene__bullet {
  flex-shrink: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.30);
  animation: astFaqBulletOn 8s ease-in-out infinite;
}
.ast-faq-scene__row--1 .ast-faq-scene__bullet { animation-delay: 0s; }
.ast-faq-scene__row--2 .ast-faq-scene__bullet { animation-delay: 2.67s; }
.ast-faq-scene__row--3 .ast-faq-scene__bullet { animation-delay: 5.33s; }

.ast-faq-scene__qline {
  flex: 1;
  height: 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.28);
}
.ast-faq-scene__qline--xs { flex: 0 0 40%; }

/* Answer card */
.ast-faq-scene__answer {
  margin-top: 6px;
  padding: 13px 14px;
  border: 1px solid rgba(52, 255, 230, 0.38);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.13);
  animation: astFaqAnswer 2.8s ease-in-out 0.4s infinite;
}
.ast-faq-scene__answer strong {
  display: block;
  margin-bottom: 8px;
  color: rgba(52, 255, 230, 0.94);
  font-size: 0.70rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.ast-faq-scene__answer span {
  display: block;
  height: 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.34);
  margin-bottom: 6px;
}
.ast-faq-scene__ans-short {
  width: 54%;
  height: 7px;
  display: block;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.20);
}

/* Keyframes */
@keyframes astFaqBg {
  0%, 100% { opacity: 0.10; transform: scale(1) rotate(0deg); }
  50%       { opacity: 0.16; transform: scale(1.06) rotate(-1.5deg); }
}
@keyframes astFaqRobot {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
  40%       { transform: translate3d(0, -10px, 0) rotate(-3deg) scale(1.04); }
  70%       { transform: translate3d(0, -3px, 0) rotate(2deg); }
}
@keyframes astFaqRowOn {
  0%, 26%   { background: rgba(52, 255, 230, 0.22); border-color: rgba(52, 255, 230, 0.65); }
  32%, 100% { background: rgba(255, 255, 255, 0.10); border-color: rgba(255, 255, 255, 0.16); }
}
@keyframes astFaqBulletOn {
  0%, 26%   { background: #34ffe6; box-shadow: 0 0 0 4px rgba(52, 255, 230, 0.32); }
  32%, 100% { background: rgba(255, 255, 255, 0.30); box-shadow: none; }
}
@keyframes astFaqAnswer {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50%       { transform: translate3d(0, -5px, 0) scale(1.02); }
}

/* ── FAQ WORKSPACE ── */
.ast-faq-main { padding: 14px 0 24px; }
.ast-faq-workspace {
  display: grid;
  grid-template-columns: minmax(0, 24fr) minmax(0, 76fr);
  gap: clamp(20px, 2.5vw, 36px);
  align-items: start;
}

/* Left nav */
.ast-faq-nav {
  position: sticky;
  top: 108px;
  display: grid;
  gap: 6px;
}
.ast-faq-nav__link {
  display: block;
  padding: 10px 14px;
  border: 1px solid rgba(58, 117, 255, 0.12);
  border-radius: 11px;
  background: #ffffff;
  color: var(--faq-ink);
  font-size: 0.88rem;
  font-weight: 800;
  text-decoration: none;
  transition: border-color 0.16s, color 0.16s;
}
.ast-faq-nav__link:hover,
.ast-faq-nav__link:focus-visible {
  border-color: rgba(58, 117, 255, 0.36);
  color: var(--faq-blue);
  outline: 2px solid rgba(58, 117, 255, 0.36);
  outline-offset: 2px;
}
.ast-faq-nav__meta {
  margin: 4px 0 0;
  padding: 0 14px;
  color: var(--faq-ink-soft);
  font-size: 0.76rem;
}

/* Right content */
.ast-faq-content { display: grid; gap: 12px; }

/* Accordion density overrides */
.ast-faq-group.ast-redesign-faq__group { padding: 20px 22px; }
.ast-faq-group .ast-faq-group__hd { margin-bottom: 8px; }
.ast-faq-group .ast-faq-group__hd h2 { font-size: 1.35rem; line-height: 1.2; }
.ast-faq-group .ast-redesign-faq__question { min-height: 50px; padding: 11px 0; font-size: 1rem; }
.ast-faq-group .ast-redesign-faq__panel { padding-bottom: 14px; }
.ast-faq-group .ast-redesign-faq__panel p { font-size: 0.94rem; color: #405266; line-height: 1.55; }
.ast-faq-group .ast-redesign-faq__item { border-top-color: rgba(58, 117, 255, 0.10); }

/* ── DARK CTA ── */
.ast-faq-cta {
  background:
    radial-gradient(circle at 80% 18%, rgba(52, 255, 230, 0.18), transparent 34%),
    linear-gradient(135deg, var(--faq-dark) 0%, #0b1e46 60%, #112f6a 100%);
  padding: clamp(28px, 4vw, 48px) 0;
}
.ast-faq-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(20px, 3vw, 44px);
  align-items: center;
}
.ast-faq-cta__text { display: grid; gap: 10px; }
.ast-faq-cta__text h2 {
  max-width: 22ch;
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.35rem, 2.4vw, 1.9rem);
  font-weight: 400;
}
.ast-faq-cta__text p {
  max-width: 48ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.70);
  line-height: 1.54;
}
.ast-faq-cta__actions {
  display: flex;
  flex-direction: row;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

/* Reduced motion — static scene must be legible */
@media (prefers-reduced-motion: reduce) {
  .ast-faq-scene__robot,
  .ast-faq-scene__row,
  .ast-faq-scene__bullet,
  .ast-faq-scene__answer,
  .ast-faq-scene__bg { animation: none !important; }
  .ast-faq-scene__row--1 {
    background: rgba(52, 255, 230, 0.22);
    border-color: rgba(52, 255, 230, 0.65);
  }
  .ast-faq-scene__row--1 .ast-faq-scene__bullet { background: #34ffe6; }
}

/* Responsive */
@media (max-width: 1100px) {
  .ast-faq-hero__inner { grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr); }
}
@media (max-width: 900px) {
  .ast-faq-hero__inner { grid-template-columns: minmax(0, 1fr); }
  .ast-faq-hero__scene { max-height: 240px; min-height: 180px; }
  .ast-faq-workspace { grid-template-columns: minmax(0, 1fr); }
  .ast-faq-nav { position: static; }
}
@media (max-width: 640px) {
  .ast-faq-hero__scene { display: none; }
  .ast-faq-cta__inner { grid-template-columns: minmax(0, 1fr); }
  .ast-faq-cta__actions { flex-direction: column; }
}

/* /AST inner FAQ reference */

/* AST inner payment reference */

/* Variables + wrapper */
.ast-pay {
  --pay-blue: #3a75ff;
  --pay-cyan: #34ffe6;
  --pay-dark: #050e28;
  --pay-ink: #0d1a2d;
  --pay-ink-soft: #516173;
  --pay-line: rgba(58, 117, 255, 0.13);
  position: relative;
  overflow-x: hidden;
  color: var(--pay-ink);
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-pay h1, .ast-pay h2, .ast-pay h3, .ast-pay p { margin-top: 0; }
.ast-pay h2 { margin-bottom: 0; font-size: 1.9rem; line-height: 1.18; letter-spacing: 0; }
.ast-pay h3 { margin-bottom: 0; font-size: 1.1rem; line-height: 1.28; }

/* Footer gap */
.site-main:has(.ast-pay) { padding-bottom: 0; }
.site-main:has(.ast-pay) + .site-footer,
.site-main:has(.ast-pay) + footer { margin-top: 0; }

.ast-pay-shell {
  width: min(1760px, calc(100% - 32px));
  margin-inline: auto;
}

/* Kicker */
.ast-pay-kicker {
  margin: 0 0 6px;
  color: var(--pay-blue);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ast-pay-kicker--cyan { color: var(--pay-cyan); }

/* Chip (decorative, static in hero) */
.ast-pay-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ast-pay-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 13px;
  border: 1px solid rgba(52, 255, 230, 0.28);
  border-radius: 999px;
  background: rgba(52, 255, 230, 0.09);
  color: var(--pay-cyan);
  font-size: 0.84rem;
  font-weight: 800;
}

/* ── HERO ── */
.ast-pay-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52, 255, 230, 0.18), transparent 32%),
    linear-gradient(135deg, var(--pay-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-pay-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14;
  pointer-events: none;
}
.ast-pay-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  gap: clamp(20px, 3vw, 44px);
  align-items: center;
  min-height: 420px;
  padding: clamp(44px, 5.5vw, 68px) 0;
}
.ast-pay-hero__content {
  display: grid;
  gap: 16px;
  align-content: center;
  z-index: 2;
}
.ast-pay-hero h1 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.2rem, 4.2vw, 3.4rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.02em;
}
.ast-pay-hero__lead {
  max-width: 44ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 1.07rem;
  line-height: 1.56;
}
.ast-pay-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* button--ghost-dark for dark backgrounds */
.button--ghost-dark {
  border-color: rgba(255, 255, 255, 0.36);
  color: rgba(255, 255, 255, 0.88);
  background: transparent;
}
.button--ghost-dark:hover { border-color: rgba(255, 255, 255, 0.64); background: rgba(255, 255, 255, 0.08); }

/* ── PAYMENT SCENE ── */
.ast-pay-hero__scene {
  position: relative;
  min-height: 370px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background:
    radial-gradient(circle at 70% 24%, rgba(52, 255, 230, 0.16), transparent 36%),
    radial-gradient(circle at 24% 72%, rgba(58, 117, 255, 0.20), transparent 34%),
    rgba(10, 22, 58, 0.84);
  box-shadow: 0 24px 60px rgba(7, 20, 45, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.10);
  z-index: 1;
}
.ast-pay-scene__bg {
  position: absolute;
  inset: -10%;
  background-repeat: repeat;
  background-size: 300px auto;
  opacity: 0.10;
  pointer-events: none;
  animation: astPayBg 7s ease-in-out infinite;
}
.ast-pay-scene__robot {
  position: absolute;
  left: 12px;
  bottom: 0;
  width: clamp(90px, 15%, 136px);
  filter: drop-shadow(0 14px 24px rgba(52, 255, 230, 0.26));
  animation: astPayRobot 4s ease-in-out infinite;
  z-index: 3;
}

/* Payment card */
.ast-pay-scene__card {
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: clamp(100px, 17%, 154px);
  right: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  z-index: 2;
}
.ast-pay-scene__card-head {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 4px;
}
.ast-pay-scene__win-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ast-pay-scene__win-dot--r { background: rgba(255, 95, 86, 0.75); }
.ast-pay-scene__win-dot--g { background: rgba(52, 255, 230, 0.75); }
.ast-pay-scene__card-label {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.70rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

/* Data rows */
.ast-pay-scene__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 9px 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
}
.ast-pay-scene__row-label {
  color: rgba(255, 255, 255, 0.50);
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.ast-pay-scene__row-val {
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: .06em;
}
.ast-pay-scene__row--account { animation: astPayRowAccount 8s ease-in-out infinite; }
.ast-pay-scene__row--amount  { animation: astPayRowAmount  8s ease-in-out infinite; }

/* Pay button */
.ast-pay-scene__pay-btn {
  padding: 9px 12px;
  border-radius: 10px;
  background: rgba(52, 255, 230, 0.18);
  border: 1px solid rgba(52, 255, 230, 0.32);
  color: var(--pay-cyan);
  font-size: 0.80rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-align: center;
  animation: astPayBtn 8s ease-in-out infinite;
}

/* Progress bar */
.ast-pay-scene__progress {
  display: flex;
  flex-direction: column;
  gap: 5px;
  opacity: 0;
  animation: astPayProgressWrap 8s ease-in-out infinite;
}
.ast-pay-scene__progress-track {
  height: 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  overflow: hidden;
}
.ast-pay-scene__progress-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--pay-blue), var(--pay-cyan));
  width: 0;
  animation: astPayProgressFill 8s ease-in-out infinite;
}
.ast-pay-scene__progress-label {
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Confirmation */
.ast-pay-scene__confirm {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 12px;
  border: 1px solid rgba(52, 255, 230, 0.40);
  border-radius: 10px;
  background: rgba(52, 255, 230, 0.10);
  opacity: 0;
  animation: astPayConfirm 8s ease-in-out infinite;
}
.ast-pay-scene__confirm-icon {
  color: var(--pay-cyan);
  font-size: 1.1rem;
  font-weight: 900;
  line-height: 1;
}
.ast-pay-scene__confirm-text {
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.80rem;
  font-weight: 800;
}

/* ── KEYFRAMES ── (8s cycle) */
@keyframes astPayBg {
  0%, 100% { opacity: 0.10; transform: scale(1); }
  50%       { opacity: 0.16; transform: scale(1.05) rotate(-1deg); }
}
@keyframes astPayRobot {
  0%, 100% { transform: translate3d(0, 0, 0); }
  40%       { transform: translate3d(0, -9px, 0) rotate(-2.5deg) scale(1.04); }
  70%       { transform: translate3d(0, -3px, 0) rotate(1.5deg); }
}

/* Account row: lit 0-19% (~1.5s), dim after */
@keyframes astPayRowAccount {
  0%, 19%   { background: rgba(52, 255, 230, 0.20); border-color: rgba(52, 255, 230, 0.55); }
  24%, 100% { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.14); }
}
/* Amount row: lit 19-38% (1.5s-3s) */
@keyframes astPayRowAmount {
  0%, 18%   { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.14); }
  19%, 37%  { background: rgba(52, 255, 230, 0.20); border-color: rgba(52, 255, 230, 0.55); }
  43%, 100% { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.14); }
}
/* Button: activates 19-50%, clicks 38-50% */
@keyframes astPayBtn {
  0%, 18%   { background: rgba(52, 255, 230, 0.18); border-color: rgba(52, 255, 230, 0.32); transform: scale(1); }
  19%, 37%  { background: rgba(52, 255, 230, 0.32); border-color: rgba(52, 255, 230, 0.68); transform: scale(1); }
  44%        { background: rgba(58, 117, 255, 0.50); border-color: rgba(58, 117, 255, 0.70); transform: scale(0.95); }
  50%, 100% { background: rgba(52, 255, 230, 0.18); border-color: rgba(52, 255, 230, 0.32); transform: scale(1); }
}
/* Progress wrap: visible 50-75% (4s-6s) */
@keyframes astPayProgressWrap {
  0%, 48%   { opacity: 0; }
  50%        { opacity: 1; }
  74%        { opacity: 1; }
  76%, 100% { opacity: 0; }
}
/* Progress fill: 0→100% during 50-74% */
@keyframes astPayProgressFill {
  0%, 49%   { width: 0; }
  50%        { width: 0; }
  74%        { width: 100%; }
  100%       { width: 0; }
}
/* Confirmation: appears 75-93% (6s-7.5s) */
@keyframes astPayConfirm {
  0%, 73%   { opacity: 0; transform: translateY(4px); }
  76%        { opacity: 1; transform: translateY(0); }
  90%        { opacity: 1; transform: translateY(0); }
  95%, 100% { opacity: 0; transform: translateY(-2px); }
}

/* ── MAIN PAYMENT BLOCK ── */
.ast-pay-main { padding: 14px 0 18px; }
.ast-pay-main__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(24px, 3.5vw, 56px);
  align-items: start;
  padding: clamp(24px, 3vw, 40px) clamp(22px, 3vw, 40px);
  background: #ffffff;
  border: 1px solid rgba(58, 117, 255, 0.11);
  border-radius: 20px;
  box-shadow: 0 8px 32px rgba(7, 20, 45, 0.07);
}
.ast-pay-main__text {
  display: grid;
  gap: 12px;
  align-content: start;
}
.ast-pay-main__text h2 { font-size: 1.75rem; }
.ast-pay-main__text p { color: var(--pay-ink-soft); line-height: 1.55; }

.ast-pay-steps { display: grid; gap: 14px; }
.ast-pay-step {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 16px;
  background: rgba(58, 117, 255, 0.04);
  border: 1px solid rgba(58, 117, 255, 0.10);
  border-radius: 12px;
}
.ast-pay-step__num {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--pay-blue);
  color: #ffffff;
  font-size: 0.78rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ast-pay-step__body { display: grid; gap: 3px; }
.ast-pay-step__body strong { font-size: 0.94rem; color: var(--pay-ink); }
.ast-pay-step__body p { margin: 0; font-size: 0.84rem; color: var(--pay-ink-soft); line-height: 1.45; }

/* ── CHECKLIST ── */
.ast-pay-checklist { padding: 14px 0 16px; }
.ast-pay-checklist__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: clamp(20px, 3vw, 48px);
  align-items: start;
  padding: clamp(20px, 2.5vw, 32px) clamp(22px, 3vw, 40px);
  background: #ffffff;
  border: 1px solid rgba(58, 117, 255, 0.11);
  border-radius: 20px;
  box-shadow: 0 8px 32px rgba(7, 20, 45, 0.07);
}
.ast-pay-checklist__hd { display: grid; gap: 4px; }
.ast-pay-checklist__hd h2 { font-size: 1.5rem; }
.ast-pay-checklist__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.ast-pay-checklist__list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.95rem;
  color: var(--pay-ink-soft);
  line-height: 1.5;
}
.ast-pay-checklist__list li::before {
  content: "";
  flex-shrink: 0;
  width: 7px;
  height: 7px;
  margin-top: 7px;
  border-radius: 50%;
  background: var(--pay-blue);
}

/* ── DOCS ── */
.ast-pay-docs { padding: 14px 0 16px; }
.ast-pay-docs__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.ast-pay-doc {
  padding: 20px 22px;
  background: #ffffff;
  border: 1px solid rgba(58, 117, 255, 0.11);
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(7, 20, 45, 0.06);
  display: grid;
  gap: 6px;
}
.ast-pay-doc h3 { font-size: 1rem; font-weight: 800; }
.ast-pay-doc p { font-size: 0.88rem; color: var(--pay-ink-soft); line-height: 1.5; }
.ast-pay-doc__link {
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--pay-blue);
  text-decoration: none;
}
.ast-pay-doc__link:hover { text-decoration: underline; }

/* ── ISSUE PANEL ── */
.ast-pay-issue { padding: 14px 0 16px; }
.ast-pay-issue__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(20px, 3vw, 44px);
  align-items: center;
  padding: clamp(22px, 3vw, 36px) clamp(22px, 3vw, 40px);
  background:
    radial-gradient(circle at 92% 50%, rgba(52, 255, 230, 0.10), transparent 44%),
    rgba(58, 117, 255, 0.05);
  border: 1px solid rgba(58, 117, 255, 0.18);
  border-radius: 20px;
}
.ast-pay-issue__text { display: grid; gap: 8px; }
.ast-pay-issue__text h2 { font-size: 1.6rem; }
.ast-pay-issue__text p { max-width: 52ch; color: var(--pay-ink-soft); line-height: 1.54; }
.ast-pay-issue__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  white-space: nowrap;
}
/* Secondary button on light-blue panel — needs ink text + visible border */
.ast-pay-issue__ghost {
  color: var(--pay-ink) !important;
  border-color: rgba(58, 117, 255, 0.36) !important;
  background: rgba(58, 117, 255, 0.04);
}
.ast-pay-issue__ghost:hover,
.ast-pay-issue__ghost:focus-visible {
  border-color: rgba(58, 117, 255, 0.64) !important;
  background: rgba(58, 117, 255, 0.10);
  outline: 2px solid rgba(58, 117, 255, 0.36);
  outline-offset: 2px;
}

/* ── DARK CTA ── */
.ast-pay-cta {
  background:
    radial-gradient(circle at 80% 18%, rgba(52, 255, 230, 0.18), transparent 34%),
    linear-gradient(135deg, var(--pay-dark) 0%, #0b1e46 60%, #112f6a 100%);
  padding: clamp(28px, 4vw, 48px) 0;
}
.ast-pay-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(20px, 3vw, 44px);
  align-items: center;
}
.ast-pay-cta__text { display: grid; gap: 10px; }
.ast-pay-cta__text h2 {
  max-width: 26ch;
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.35rem, 2.4vw, 1.9rem);
  font-weight: 400;
}
.ast-pay-cta__text p { max-width: 48ch; margin: 0; color: rgba(255, 255, 255, 0.70); line-height: 1.54; }
.ast-pay-cta__actions {
  display: flex;
  flex-direction: row;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

/* ── REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce) {
  .ast-pay-scene__bg,
  .ast-pay-scene__robot,
  .ast-pay-scene__row--account,
  .ast-pay-scene__row--amount,
  .ast-pay-scene__pay-btn,
  .ast-pay-scene__progress,
  .ast-pay-scene__progress-fill,
  .ast-pay-scene__confirm { animation: none !important; }

  .ast-pay-scene__row--account { background: rgba(52, 255, 230, 0.14); border-color: rgba(52, 255, 230, 0.40); }
  .ast-pay-scene__row--amount  { background: rgba(52, 255, 230, 0.14); border-color: rgba(52, 255, 230, 0.40); }
  .ast-pay-scene__pay-btn { background: rgba(52, 255, 230, 0.24); border-color: rgba(52, 255, 230, 0.55); }
  .ast-pay-scene__progress { opacity: 1; }
  .ast-pay-scene__progress-fill { width: 100%; }
  .ast-pay-scene__confirm { opacity: 1; transform: none; }
}

/* ── RESPONSIVE ── */
@media (max-width: 1100px) {
  .ast-pay-hero__inner { grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr); }
}
@media (max-width: 900px) {
  .ast-pay-hero__inner { grid-template-columns: minmax(0, 1fr); }
  .ast-pay-hero__scene { max-height: 240px; min-height: 180px; }
  .ast-pay-main__inner { grid-template-columns: minmax(0, 1fr); }
  .ast-pay-checklist__inner { grid-template-columns: minmax(0, 1fr); }
  .ast-pay-issue__inner { grid-template-columns: minmax(0, 1fr); }
  .ast-pay-issue__actions { flex-direction: row; flex-wrap: wrap; }
  .ast-pay-cta__inner { grid-template-columns: minmax(0, 1fr); }
  .ast-pay-cta__actions { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .ast-pay-hero__scene { display: none; }
  .ast-pay-docs__grid { grid-template-columns: minmax(0, 1fr); }
  .ast-pay-cta__actions { flex-direction: column; }
}

/* /AST inner payment reference */

/* AST inner promotions reference */
.ast-promo {
  --promo-dark: #050e28;
  --promo-blue: #3a75ff;
  --promo-cyan: #34ffe6;
  --promo-ink: #172a4d;
  --promo-muted: #4a5f85;
  --promo-border: rgba(58,117,255,0.16);
}
.ast-promo-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
/* dark CTA flush to footer — no light pattern strip */
.site-main:has(.ast-promo) { padding-bottom: 0; }
.site-main:has(.ast-promo) + .site-footer,
.site-main:has(.ast-promo) + footer { margin-top: 0; }
.ast-promo-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--promo-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-promo-kicker--cyan { color: var(--promo-cyan); }
.ast-promo-chip {
  display: inline-block; font-size: .72rem; font-weight: 600; padding: .26rem .74rem;
  border-radius: 100px; background: rgba(52,255,230,0.12);
  border: 1px solid rgba(52,255,230,0.3); color: var(--promo-cyan);
}

/* hero */
.ast-promo-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--promo-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-promo-hero::before {
  content: ""; position: absolute; inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14; pointer-events: none;
}
.ast-promo-hero__inner {
  position: relative; display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(440px, 1.18fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center;
  min-height: 430px; padding: clamp(40px, 5vw, 60px) 0;
}
.ast-promo-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-promo-hero h1 {
  margin: 0; color: #fff; font-size: clamp(2.4rem, 3.8vw, 3.7rem);
  font-family: var(--font-heading); font-weight: 400; line-height: 1.04; letter-spacing: 0;
}
.ast-promo-hero__lead {
  max-width: 42ch; margin: 0; color: rgba(255,255,255,0.86);
  font-size: 1.1rem; line-height: 1.55;
}
.ast-promo-hero__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ast-promo-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* offer carousel micro-scene */
.ast-promo-hero__scene {
  position: relative; height: 400px; display: flex;
  align-items: center; justify-content: center; z-index: 1;
}
.ast-promo-scene { position: relative; width: min(560px, 100%); height: 400px; }
.ast-promo-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }

/* deck: other offers waiting behind the active card */
.ast-promo-deck { position: absolute; right: 40px; top: 44px; z-index: 3; }
.ast-promo-deck__card {
  position: absolute; display: flex; align-items: flex-start; width: 248px; height: 150px;
  padding: 12px 16px; border-radius: 16px; transform-origin: bottom right;
  background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.18); backdrop-filter: blur(3px);
}
.ast-promo-deck__card--b1 { right: 26px; top: 22px; transform: rotate(-4deg); animation: astPromoDeck1 7s ease-in-out infinite; }
.ast-promo-deck__card--b2 { right: 52px; top: 6px; transform: rotate(-8deg); opacity: .7; animation: astPromoDeck2 7s ease-in-out infinite; }
.ast-promo-deck__aud {
  font-size: .62rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: #a9c6ff; padding: 3px 9px; border-radius: 100px; background: rgba(58,117,255,0.28);
}

/* active offer card — the one clear object being chosen */
.ast-promo-offer {
  position: absolute; right: 12px; top: 62px; width: 288px; z-index: 4;
  background: #fff; border-radius: 18px; padding: 18px 20px;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.16);
  animation: astPromoOffer 7s ease-in-out infinite;
}
.ast-promo-offer__top { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.ast-promo-offer__status {
  font-size: .68rem; font-weight: 700; padding: 3px 10px; border-radius: 100px;
  background: rgba(52,255,230,0.16); color: #14776a; border: 1px solid rgba(52,255,230,0.4);
}
.ast-promo-offer__aud { font-size: .72rem; color: var(--promo-muted); }
.ast-promo-offer__title { display: block; font-size: 1.2rem; font-weight: 700; color: var(--promo-ink); margin-bottom: 12px; line-height: 1.2; }
.ast-promo-offer__perks { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.ast-promo-offer__perk { font-size: .82rem; color: #2f4368; padding-left: 1.4em; position: relative; opacity: 0; transform: translateX(-6px); }
.ast-promo-offer__perk::before { content: "✓"; position: absolute; left: 0; color: var(--promo-blue); font-weight: 700; }
.ast-promo-offer__perk--1 { animation: astPromoPerk1 7s ease-in-out infinite; }
.ast-promo-offer__perk--2 { animation: astPromoPerk2 7s ease-in-out infinite; }
.ast-promo-offer__term {
  display: inline-block; font-size: .72rem; font-weight: 600; color: var(--promo-blue);
  padding: 4px 10px; border-radius: 8px; margin-bottom: 12px;
  background: rgba(58,117,255,0.08); border: 1px solid rgba(58,117,255,0.18);
  opacity: 0; transform: translateY(4px); animation: astPromoTerm 7s ease-in-out infinite;
}
.ast-promo-offer__cta {
  padding: 10px 14px; border-radius: 10px; background: var(--promo-blue); color: #fff;
  font-size: .82rem; font-weight: 700; text-align: center;
  box-shadow: 0 6px 16px rgba(58,117,255,0.28); animation: astPromoOfferCta 7s ease-in-out infinite;
}
/* traveling indicator: robot → chosen offer */
.ast-promo-spark {
  position: absolute; left: 150px; top: 220px; width: 12px; height: 12px; border-radius: 50%;
  background: var(--promo-cyan); box-shadow: 0 0 12px 3px rgba(52,255,230,0.7);
  opacity: 0; z-index: 5; animation: astPromoSpark 7s ease-in-out infinite;
}
/* official robot, bringing an offer forward */
.ast-promo-scene__robot {
  position: absolute; left: 8px; bottom: 4px; height: 262px; width: auto; object-fit: contain;
  z-index: 4; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.32));
  transform-origin: bottom center; animation: astPromoRobot 7s ease-in-out infinite;
}
@keyframes astPromoOffer {
  0% { transform: translateX(14px) scale(0.96); opacity: 0; }
  8%,86% { transform: translateX(0) scale(1); opacity: 1; }
  96%,100% { transform: translateX(14px) scale(0.96); opacity: 0; }
}
@keyframes astPromoPerk1 { 0%,20% { opacity: 0; transform: translateX(-6px); } 28%,90% { opacity: 1; transform: translateX(0); } 100% { opacity: 0; transform: translateX(-6px); } }
@keyframes astPromoPerk2 { 0%,28% { opacity: 0; transform: translateX(-6px); } 36%,90% { opacity: 1; transform: translateX(0); } 100% { opacity: 0; transform: translateX(-6px); } }
@keyframes astPromoTerm { 0%,44% { opacity: 0; transform: translateY(4px); } 52%,90% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(4px); } }
@keyframes astPromoOfferCta {
  0%,58% { box-shadow: 0 6px 16px rgba(58,117,255,0.28); transform: scale(1); }
  66%,78% { box-shadow: 0 10px 26px rgba(58,117,255,0.6); transform: scale(1.035); }
  86%,100% { box-shadow: 0 6px 16px rgba(58,117,255,0.28); transform: scale(1); }
}
@keyframes astPromoSpark {
  0%,10% { opacity: 0; left: 150px; top: 220px; }
  16% { opacity: 1; left: 150px; top: 220px; }
  26% { opacity: 1; left: 250px; top: 150px; }
  32%,100% { opacity: 0; left: 250px; top: 150px; }
}
@keyframes astPromoRobot {
  0%,8% { transform: rotate(0deg) translateY(0); }
  18% { transform: rotate(3deg) translateY(-3px); }
  30%,58% { transform: rotate(1.5deg) translateY(-2px); }
  80% { transform: rotate(-1.5deg) translateY(-4px); }
  92%,100% { transform: rotate(0deg) translateY(0); }
}
@keyframes astPromoDeck1 {
  0%,86% { transform: rotate(-4deg) translate(0,0); }
  94% { transform: rotate(-2deg) translate(-8px,4px); }
  100% { transform: rotate(-4deg) translate(0,0); }
}
@keyframes astPromoDeck2 {
  0%,86% { transform: rotate(-8deg) translate(0,0); opacity: .7; }
  94% { transform: rotate(-5deg) translate(-6px,3px); opacity: .85; }
  100% { transform: rotate(-8deg) translate(0,0); opacity: .7; }
}

/* offers list */
.ast-promo-list { padding: 30px 0 20px; }
.ast-promo-list__hd { margin-bottom: 12px; }
.ast-promo-list__hd h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700; letter-spacing: normal; line-height: 1.16; color: var(--promo-ink); margin: .1rem 0 .35rem; }
.ast-promo-list__hd p { color: var(--promo-muted); max-width: 56ch; margin: 0; font-size: .98rem; }
.ast-promo-empty { padding: 40px 24px; text-align: center; background: #fff; border: 1px solid var(--promo-border); border-radius: 14px; }
.ast-promo-empty h3 { color: var(--promo-ink); margin: 0 0 .4rem; }
.ast-promo-empty p { color: var(--promo-muted); margin: 0 0 1.25rem; }
/* count-driven grid — auto-fit collapses empty tracks (no phantom right gap) */
.ast-promo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; width: 100%; }
.ast-promo-grid[data-promo-count="1"] { grid-template-columns: minmax(0, 780px); }
.ast-promo-grid[data-promo-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-promo-grid[data-promo-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ast-promo-grid[data-promo-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-promo-card {
  background: #fff; border: 1px solid var(--promo-border); border-radius: 14px;
  padding: 24px 26px; display: flex; flex-direction: column; gap: 12px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-promo-card--featured { border-color: rgba(58,117,255,0.32); box-shadow: 0 6px 26px rgba(58,117,255,0.1); }
.ast-promo-card__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ast-promo-card h3 { font-size: 1.16rem; font-weight: 600; color: var(--promo-ink); line-height: 1.32; margin: 0; }
.ast-promo-card > p { color: #3f5478; font-size: .97rem; margin: 0; line-height: 1.55; }
.ast-promo-card .button { margin-top: auto; align-self: flex-start; }
.ast-promo-card__conds { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 7px; }
.ast-promo-card__conds li { font-size: .92rem; color: #3f5478; padding-left: 1.4em; position: relative; line-height: 1.45; }
.ast-promo-card__conds li::before { content: "✓"; position: absolute; left: 0; color: var(--promo-blue); font-weight: 700; }
.ast-promo-badge {
  font-size: .7rem; font-weight: 700; padding: 3px 10px; border-radius: 100px;
  background: rgba(52,255,230,0.12); color: #14776a; border: 1px solid rgba(52,255,230,0.32);
}
.ast-promo-badge--primary { background: rgba(58,117,255,0.09); color: var(--promo-blue); border-color: rgba(58,117,255,0.26); }
.ast-promo-audience { font-size: .74rem; color: var(--promo-muted); }

/* conditions notice */
.ast-promo-notice { padding: 18px 0; }
.ast-promo-notice__inner {
  display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr); gap: 28px; align-items: center;
  background: #fff; border: 1px solid var(--promo-border); border-radius: 14px; padding: 22px 26px;
}
.ast-promo-notice__text h2 { font-size: clamp(1.15rem, 1.8vw, 1.4rem); font-family: var(--font-main); font-weight: 700; letter-spacing: normal; color: var(--promo-ink); margin: .1rem 0 .4rem; line-height: 1.16; }
.ast-promo-notice__sub { color: var(--promo-muted); font-size: .92rem; margin: 0; }
.ast-promo-notice__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; }
.ast-promo-notice__list li { font-size: .93rem; color: #2f4368; padding-left: 1.4em; position: relative; line-height: 1.42; }
.ast-promo-notice__list li::before { content: "✓"; position: absolute; left: 0; color: var(--promo-blue); font-weight: 700; }

/* 3-step timeline */
.ast-promo-tl { padding: 16px 0; }
.ast-promo-tl__row {
  position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: promo-tl;
}
.ast-promo-tl__row::before {
  content: ""; position: absolute; top: 27px; left: 16.6%; right: 16.6%; height: 3px;
  border-radius: 999px; background: linear-gradient(90deg, var(--promo-blue), var(--promo-cyan)); opacity: 0.72;
}
.ast-promo-tl__item {
  counter-increment: promo-tl; position: relative; display: grid; gap: 7px;
  justify-items: center; text-align: center; padding-top: 62px; min-width: 0;
}
.ast-promo-tl__item::before {
  content: counter(promo-tl, decimal-leading-zero); position: absolute; top: 0; left: 50%;
  transform: translateX(-50%); display: grid; place-items: center; width: 54px; height: 54px;
  border-radius: 50%; background: linear-gradient(135deg, var(--promo-blue), var(--promo-cyan));
  color: #fff; font-family: var(--font-heading); font-size: 1.1rem; box-shadow: 0 0 0 6px rgba(58,117,255,0.12);
}
.ast-promo-tl__item h3 { font-size: 1.08rem; font-weight: 600; color: var(--promo-ink); margin: 0; }
.ast-promo-tl__item p { font-size: .92rem; color: #3f5478; margin: 0; max-width: 30ch; line-height: 1.45; }

/* dark CTA — touches footer */
.ast-promo-cta { background: var(--promo-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-promo-cta::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.ast-promo-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-promo-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; letter-spacing: normal; color: #fff; margin: .1rem 0 .4rem; max-width: 34ch; line-height: 1.18; }
.ast-promo-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-promo-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* responsive */
@media (max-width: 1023px) {
  .ast-promo-hero__inner { grid-template-columns: 1fr; }
  .ast-promo-hero__scene { height: 320px; }
  .ast-promo-scene { width: min(520px, 100%); height: 320px; }
  .ast-promo-offer { top: 40px; }
  .ast-promo-deck { top: 24px; }
  .ast-promo-scene__robot { height: 224px; }
  .ast-promo-notice__inner { grid-template-columns: 1fr; gap: 16px; }
  .ast-promo-notice__list { grid-template-columns: 1fr; }
  .ast-promo-tl__row { grid-template-columns: 1fr; gap: 14px; }
  .ast-promo-tl__row::before { display: none; }
  .ast-promo-tl__item { justify-items: start; text-align: left; padding-top: 0; padding-left: 68px; min-height: 54px; }
  .ast-promo-tl__item::before { left: 0; transform: none; top: 0; }
}
@media (max-width: 767px) {
  .ast-promo-list { padding: 24px 0 16px; }
  .ast-promo-hero__scene { height: 292px; }
  .ast-promo-scene { width: 330px; height: 292px; }
  .ast-promo-offer { width: 236px; right: 0; top: 30px; padding: 15px 16px; }
  .ast-promo-offer__title { font-size: 1.08rem; }
  .ast-promo-deck { right: 10px; top: 18px; }
  .ast-promo-deck__card { width: 208px; height: 132px; }
  .ast-promo-scene__robot { height: 176px; left: 0; }
  .ast-promo-spark { left: 104px; }
  .ast-promo-grid,
  .ast-promo-grid[data-promo-count="1"],
  .ast-promo-grid[data-promo-count="2"],
  .ast-promo-grid[data-promo-count="3"],
  .ast-promo-grid[data-promo-count="4"] { grid-template-columns: 1fr; }
  .ast-promo-notice__inner { padding: 18px 20px; }
  .ast-promo-cta { padding: 40px 0; margin-top: 14px; }
  .ast-promo-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-promo-notice { padding: 14px 0; }
  .ast-promo-tl { padding: 12px 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ast-promo-offer, .ast-promo-offer__cta, .ast-promo-scene__robot,
  .ast-promo-spark, .ast-promo-deck__card--b1, .ast-promo-deck__card--b2 { animation: none !important; }
  .ast-promo-offer { opacity: 1 !important; transform: none !important; }
  .ast-promo-spark { opacity: 0 !important; }
  .ast-promo-offer__perk--1, .ast-promo-offer__perk--2 { animation: none !important; opacity: 1 !important; transform: none !important; }
  .ast-promo-offer__term { animation: none !important; opacity: 1 !important; transform: none !important; }
}
/* /AST inner promotions reference */

/* AST inner careers reference */
.ast-careers {
  --careers-dark: #050e28;
  --careers-blue: #3a75ff;
  --careers-cyan: #34ffe6;
  --careers-ink: #172a4d;
  --careers-muted: #4a5f85;
  --careers-border: rgba(58,117,255,0.16);
  position: relative;
  overflow-x: hidden;
  /* one continuous light surface for the whole page (same stack as /oplata, /faq).
     The dark hero and dark CTA paint their own opaque backgrounds over it, so the
     pattern reads as a single uninterrupted field behind every light section. */
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-careers-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
/* dark CTA flush to footer — no light pattern strip */
.site-main:has(.ast-careers) { padding-bottom: 0; }
.site-main:has(.ast-careers) + .site-footer,
.site-main:has(.ast-careers) + footer { margin-top: 0; }
/* Light sections stay transparent so the single .ast-careers surface shows through
   continuously — only real cards/panels keep their own opaque background. */
.ast-careers-benefits,
.ast-careers-jobs,
.ast-careers-req,
.ast-careers-tl,
.ast-careers-contact {
  background: transparent;
}
.ast-careers-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--careers-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-careers-kicker--cyan { color: var(--careers-cyan); }
.ast-careers-chip {
  display: inline-block; font-size: .72rem; font-weight: 600; padding: .26rem .74rem;
  border-radius: 100px; background: rgba(52,255,230,0.12);
  border: 1px solid rgba(52,255,230,0.3); color: var(--careers-cyan);
}
.ast-careers-head { margin-bottom: 12px; }
.ast-careers-head h2 {
  font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700;
  letter-spacing: normal; line-height: 1.16; color: var(--careers-ink); margin: .1rem 0 .35rem;
}
.ast-careers-head p { color: var(--careers-muted); max-width: 56ch; margin: 0; font-size: .98rem; }

/* hero */
.ast-careers-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--careers-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-careers-hero::before {
  content: ""; position: absolute; inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14; pointer-events: none;
}
.ast-careers-hero__inner {
  position: relative; display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(430px, 1.14fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center;
  min-height: 440px; padding: clamp(38px, 4.6vw, 56px) 0;
}
.ast-careers-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-careers-hero h1 {
  margin: 0; color: #fff; font-size: clamp(2.4rem, 3.8vw, 3.6rem);
  font-family: var(--font-heading); font-weight: 400; line-height: 1.04; letter-spacing: 0;
}
.ast-careers-hero__lead {
  max-width: 42ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.1rem; line-height: 1.55;
}
.ast-careers-hero__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ast-careers-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* candidate micro-scene */
.ast-careers-hero__scene {
  position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1;
}
.ast-careers-scene { position: relative; width: min(560px, 100%); height: 400px; }
.ast-careers-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }
.ast-careers-scene__card {
  position: absolute; right: 10px; top: 40px; width: 320px;
  background: #fff; border-radius: 18px; padding: 18px 20px; z-index: 4;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.16);
  animation: astCareersCard 7s ease-in-out infinite;
}
.ast-careers-scene__switch { display: flex; gap: 6px; margin-bottom: 12px; }
.ast-careers-scene__dir {
  flex: 1; text-align: center; font-size: .68rem; font-weight: 700; padding: 6px 4px;
  border-radius: 100px; background: rgba(58,117,255,0.08); color: var(--careers-muted);
  border: 1px solid transparent;
}
.ast-careers-scene__dir--1 { animation: astCareersDir1 7s ease-in-out infinite; }
.ast-careers-scene__dir--2 { animation: astCareersDir2 7s ease-in-out infinite; }
.ast-careers-scene__dir--3 { animation: astCareersDir3 7s ease-in-out infinite; }
.ast-careers-scene__title {
  display: block; font-size: 1.04rem; font-weight: 600; color: var(--careers-ink); margin-bottom: 12px;
}
.ast-careers-scene__field {
  display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 9px;
  background: rgba(58,117,255,0.06); border: 1px solid rgba(58,117,255,0.14); margin-bottom: 9px;
}
.ast-careers-scene__label { font-size: .72rem; font-weight: 700; color: var(--careers-muted); flex-shrink: 0; }
.ast-careers-scene__value { font-size: .82rem; color: var(--careers-ink); }
.ast-careers-scene__field--exp .ast-careers-scene__value {
  opacity: 0; transform: translateX(-6px); animation: astCareersExp 7s ease-in-out infinite;
}
.ast-careers-scene__field--contact .ast-careers-scene__value { flex: 1; }
.ast-careers-scene__ok {
  font-size: .82rem; font-weight: 700; color: #14776a; opacity: 0; transform: scale(0.6);
  animation: astCareersOk 7s ease-in-out infinite;
}
.ast-careers-scene__send {
  margin-top: 3px; padding: 10px 14px; border-radius: 10px; background: var(--careers-blue); color: #fff;
  font-size: .82rem; font-weight: 700; text-align: center;
  box-shadow: 0 6px 16px rgba(58,117,255,0.28); animation: astCareersSend 7s ease-in-out infinite;
}
.ast-careers-scene__status {
  display: block; margin-top: 9px; text-align: center; font-size: .72rem; font-weight: 600; color: #14776a;
  opacity: 0; animation: astCareersStatus 7s ease-in-out infinite;
}
.ast-careers-scene__spark {
  position: absolute; left: 150px; top: 120px; width: 12px; height: 12px; border-radius: 50%;
  background: var(--careers-cyan); box-shadow: 0 0 12px 3px rgba(52,255,230,0.7);
  opacity: 0; z-index: 5; animation: astCareersSpark 7s ease-in-out infinite;
}
.ast-careers-scene__robot {
  position: absolute; left: 12px; bottom: 2px; height: 264px; width: auto; object-fit: contain;
  z-index: 4; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.32));
  transform-origin: bottom center; animation: astCareersRobot 7s ease-in-out infinite;
}
.ast-careers-scene__robot-signal {
  position: absolute; left: 120px; bottom: 214px; width: 16px; height: 16px; border-radius: 50%;
  background: rgba(52,255,230,0.5); opacity: 0; z-index: 5; animation: astCareersSignal 7s ease-in-out infinite;
}
@keyframes astCareersCard {
  0% { transform: translateY(6px) scale(0.985); box-shadow: 0 18px 44px rgba(5,14,40,0.42), 0 0 0 1px rgba(58,117,255,0.14); }
  10%,88% { transform: translateY(0) scale(1); box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.28); }
  100% { transform: translateY(6px) scale(0.985); box-shadow: 0 18px 44px rgba(5,14,40,0.42), 0 0 0 1px rgba(58,117,255,0.14); }
}
@keyframes astCareersDir1 {
  0%,4% { background: rgba(58,117,255,0.08); color: var(--careers-muted); border-color: transparent; }
  8%,40% { background: var(--careers-blue); color: #fff; border-color: var(--careers-blue); }
  46%,100% { background: rgba(58,117,255,0.08); color: var(--careers-muted); border-color: transparent; }
}
@keyframes astCareersDir2 {
  0%,44% { background: rgba(58,117,255,0.08); color: var(--careers-muted); border-color: transparent; }
  50%,68% { background: var(--careers-blue); color: #fff; border-color: var(--careers-blue); }
  74%,100% { background: rgba(58,117,255,0.08); color: var(--careers-muted); border-color: transparent; }
}
@keyframes astCareersDir3 {
  0%,72% { background: rgba(58,117,255,0.08); color: var(--careers-muted); border-color: transparent; }
  78%,94% { background: var(--careers-blue); color: #fff; border-color: var(--careers-blue); }
  98%,100% { background: rgba(58,117,255,0.08); color: var(--careers-muted); border-color: transparent; }
}
@keyframes astCareersExp { 0%,20% { opacity: 0; transform: translateX(-6px); } 28%,100% { opacity: 1; transform: translateX(0); } }
@keyframes astCareersSpark {
  0%,30% { opacity: 0; left: 150px; top: 96px; }
  36% { opacity: 1; left: 150px; top: 96px; }
  46% { opacity: 1; left: 150px; top: 150px; }
  56% { opacity: 1; left: 150px; top: 196px; }
  62%,100% { opacity: 0; left: 150px; top: 236px; }
}
@keyframes astCareersOk { 0%,50% { opacity: 0; transform: scale(0.6); } 58%,100% { opacity: 1; transform: scale(1); } }
@keyframes astCareersSend {
  0%,62% { box-shadow: 0 6px 16px rgba(58,117,255,0.28); transform: scale(1); }
  70%,80% { box-shadow: 0 10px 26px rgba(58,117,255,0.6); transform: scale(1.035); }
  88%,100% { box-shadow: 0 6px 16px rgba(58,117,255,0.28); transform: scale(1); }
}
@keyframes astCareersStatus { 0%,80% { opacity: 0; } 86%,100% { opacity: 1; } }
@keyframes astCareersRobot {
  0%,8% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(3deg) translateY(-3px); }
  50%,60% { transform: rotate(1.5deg) translateY(-2px); }
  74% { transform: rotate(-2deg) translateY(-5px); }
  86%,100% { transform: rotate(0deg) translateY(0); }
}
@keyframes astCareersSignal {
  0%,68% { opacity: 0; transform: scale(0.5); }
  74% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 4px rgba(52,255,230,0.24); }
  82%,100% { opacity: 0; transform: scale(1.5); box-shadow: 0 0 0 12px rgba(52,255,230,0); }
}

/* benefits */
.ast-careers-benefits { padding: 30px 0 18px; }
.ast-careers-benefits__grid {
  list-style: none; padding: 0; margin: 0; display: grid; gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ast-careers-benefit {
  display: flex; gap: 12px; align-items: flex-start; background: #fff;
  border: 1px solid var(--careers-border); border-radius: 14px; padding: 18px 20px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-careers-benefit__mark {
  flex-shrink: 0; width: 12px; height: 12px; margin-top: 5px; border-radius: 4px;
  background: linear-gradient(135deg, var(--careers-blue), var(--careers-cyan));
  box-shadow: 0 0 0 5px rgba(58,117,255,0.1);
}
.ast-careers-benefit h3 { font-size: 1rem; font-weight: 700; color: var(--careers-ink); margin: 0 0 .25rem; line-height: 1.25; }
.ast-careers-benefit p { font-size: .9rem; color: var(--careers-muted); margin: 0; line-height: 1.45; }

/* open positions */
.ast-careers-jobs { padding: 16px 0 20px; }
.ast-careers-empty { padding: 40px 24px; text-align: center; background: #fff; border: 1px solid var(--careers-border); border-radius: 14px; }
.ast-careers-empty h3 { color: var(--careers-ink); margin: 0 0 .4rem; }
.ast-careers-empty p { color: var(--careers-muted); margin: 0 0 1.25rem; }
.ast-careers-jobs__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 20px; width: 100%; }
.ast-careers-jobs__grid[data-careers-count="1"] { grid-template-columns: minmax(0, 780px); }
.ast-careers-jobs__grid[data-careers-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-careers-jobs__grid[data-careers-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-careers-card {
  background: #fff; border: 1px solid var(--careers-border); border-radius: 14px;
  padding: 24px 26px; display: flex; flex-direction: column; gap: 10px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-careers-card--featured { border-color: rgba(58,117,255,0.32); box-shadow: 0 6px 26px rgba(58,117,255,0.1); }
.ast-careers-card--muted { opacity: 0.72; }
.ast-careers-card__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ast-careers-badge {
  font-size: .7rem; font-weight: 700; padding: 3px 10px; border-radius: 100px;
  background: rgba(52,255,230,0.12); color: #14776a; border: 1px solid rgba(52,255,230,0.32);
}
.ast-careers-badge--muted { background: rgba(74,95,133,0.1); color: var(--careers-muted); border-color: rgba(74,95,133,0.24); }
.ast-careers-card__meta { font-size: .74rem; color: var(--careers-muted); }
.ast-careers-card h3 { font-size: 1.16rem; font-weight: 600; color: var(--careers-ink); line-height: 1.3; margin: .1rem 0 0; }
.ast-careers-card__where { font-size: .82rem; color: var(--careers-muted); margin: 0; }
.ast-careers-card__summary { color: #3f5478; font-size: .95rem; margin: 0; line-height: 1.5; }
.ast-careers-card__block { display: grid; gap: 5px; }
.ast-careers-card__label { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--careers-muted); }
.ast-careers-card__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 5px; }
.ast-careers-card__list li { font-size: .9rem; color: #3f5478; padding-left: 1.3em; position: relative; line-height: 1.42; }
.ast-careers-card__list li::before { content: "•"; position: absolute; left: 0; color: var(--careers-blue); font-weight: 700; }
.ast-careers-card__list--check li::before { content: "✓"; }
.ast-careers-card .button { margin-top: auto; align-self: flex-start; }
.ast-careers-card__closed { margin-top: auto; font-size: .84rem; font-weight: 600; color: var(--careers-muted); }

/* what matters — compact panel */
.ast-careers-req { padding: 16px 0; }
.ast-careers-req__inner {
  display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr); gap: 28px; align-items: center;
  background: #fff; border: 1px solid var(--careers-border); border-radius: 14px; padding: 22px 26px;
}
.ast-careers-req__text h2 { font-size: clamp(1.15rem, 1.8vw, 1.4rem); font-family: var(--font-main); font-weight: 700; color: var(--careers-ink); margin: .1rem 0 .4rem; line-height: 1.16; }
.ast-careers-req__text p { color: var(--careers-muted); font-size: .92rem; margin: 0; }
.ast-careers-req__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; }
.ast-careers-req__list li { font-size: .93rem; color: #2f4368; padding-left: 1.4em; position: relative; line-height: 1.42; }
.ast-careers-req__list li::before { content: "✓"; position: absolute; left: 0; color: var(--careers-blue); font-weight: 700; }

/* timeline */
.ast-careers-tl { padding: 16px 0; }
.ast-careers-tl__row {
  position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: careers-tl;
}
.ast-careers-tl__row::before {
  content: ""; position: absolute; top: 27px; left: 16.6%; right: 16.6%; height: 3px;
  border-radius: 999px; background: linear-gradient(90deg, var(--careers-blue), var(--careers-cyan)); opacity: 0.72;
}
.ast-careers-tl__item {
  counter-increment: careers-tl; position: relative; display: grid; gap: 7px;
  justify-items: center; text-align: center; padding-top: 62px; min-width: 0;
}
.ast-careers-tl__item::before {
  content: counter(careers-tl, decimal-leading-zero); position: absolute; top: 0; left: 50%;
  transform: translateX(-50%); display: grid; place-items: center; width: 54px; height: 54px;
  border-radius: 50%; background: linear-gradient(135deg, var(--careers-blue), var(--careers-cyan));
  color: #fff; font-family: var(--font-heading); font-size: 1.1rem; box-shadow: 0 0 0 6px rgba(58,117,255,0.12);
}
.ast-careers-tl__item h3 { font-size: 1.08rem; font-weight: 600; color: var(--careers-ink); margin: 0; }
.ast-careers-tl__item p { font-size: .92rem; color: #3f5478; margin: 0; max-width: 30ch; line-height: 1.45; }

/* contact panel */
.ast-careers-contact { padding: 16px 0 20px; }
.ast-careers-contact__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  background: linear-gradient(120deg, rgba(58,117,255,0.06), rgba(52,255,230,0.05));
  border: 1px solid rgba(58,117,255,0.16); border-radius: 14px; padding: 22px 30px;
}
.ast-careers-contact__text h2 { font-size: clamp(1.1rem, 1.6vw, 1.35rem); font-family: var(--font-main); font-weight: 700; color: var(--careers-ink); margin: .1rem 0 .35rem; max-width: 44ch; line-height: 1.16; }
.ast-careers-contact__text p { color: #3f5478; font-size: .93rem; margin: 0; max-width: 52ch; }
.ast-careers-contact__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* dark CTA — touches footer */
.ast-careers-cta { background: var(--careers-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-careers-cta::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.ast-careers-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-careers-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 34ch; line-height: 1.18; }
.ast-careers-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-careers-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* responsive */
@media (max-width: 1023px) {
  .ast-careers-hero__inner { grid-template-columns: 1fr; }
  .ast-careers-hero__scene { height: 340px; }
  .ast-careers-scene { width: min(520px, 100%); height: 340px; }
  .ast-careers-scene__card { top: 30px; }
  .ast-careers-scene__robot { height: 232px; }
  .ast-careers-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-careers-req__inner { grid-template-columns: 1fr; gap: 16px; }
  .ast-careers-req__list { grid-template-columns: 1fr; }
  .ast-careers-tl__row { grid-template-columns: 1fr; gap: 14px; }
  .ast-careers-tl__row::before { display: none; }
  .ast-careers-tl__item { justify-items: start; text-align: left; padding-top: 0; padding-left: 68px; min-height: 54px; }
  .ast-careers-tl__item::before { left: 0; transform: none; top: 0; }
}
@media (max-width: 767px) {
  .ast-careers-benefits { padding: 24px 0 14px; }
  .ast-careers-benefits__grid { grid-template-columns: 1fr; }
  .ast-careers-hero__scene { height: 300px; }
  .ast-careers-scene { width: 320px; height: 300px; }
  .ast-careers-scene__card { width: 250px; right: 0; top: 22px; padding: 15px 16px; }
  .ast-careers-scene__robot { height: 176px; left: 0; }
  .ast-careers-scene__spark { left: 118px; }
  .ast-careers-scene__robot-signal { left: 96px; }
  .ast-careers-jobs__grid,
  .ast-careers-jobs__grid[data-careers-count="1"],
  .ast-careers-jobs__grid[data-careers-count="2"],
  .ast-careers-jobs__grid[data-careers-count="4"] { grid-template-columns: 1fr; }
  .ast-careers-req__inner { padding: 18px 20px; }
  .ast-careers-contact__inner { padding: 18px 20px; flex-direction: column; align-items: flex-start; }
  .ast-careers-cta { padding: 40px 0; margin-top: 14px; }
  .ast-careers-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-careers-req { padding: 14px 0; }
  .ast-careers-tl { padding: 12px 0; }
  .ast-careers-contact { padding: 12px 0 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .ast-careers-scene__card, .ast-careers-scene__send, .ast-careers-scene__robot,
  .ast-careers-scene__spark, .ast-careers-scene__robot-signal,
  .ast-careers-scene__dir--1, .ast-careers-scene__dir--2, .ast-careers-scene__dir--3 { animation: none !important; }
  .ast-careers-scene__spark, .ast-careers-scene__robot-signal { opacity: 0 !important; }
  .ast-careers-scene__dir--1 { background: var(--careers-blue) !important; color: #fff !important; border-color: var(--careers-blue) !important; }
  .ast-careers-scene__field--exp .ast-careers-scene__value { animation: none !important; opacity: 1 !important; transform: none !important; }
  .ast-careers-scene__ok { animation: none !important; opacity: 1 !important; transform: none !important; }
  .ast-careers-scene__status { animation: none !important; opacity: 1 !important; }
}
/* /AST inner careers reference */

/* AST inner coverage reference */
/* root wrapper is .ast-coverage-page (not bare .ast-coverage) to avoid the legacy
   .ast-coverage grid component defined earlier in this file. */
.ast-coverage-page {
  --cov-dark: #050e28;
  --cov-blue: #3a75ff;
  --cov-cyan: #34ffe6;
  --cov-ink: #172a4d;
  --cov-muted: #4a5f85;
  --cov-body: #3f5478;
  --cov-green: #14776a;
  --cov-gray: #706f6f;
  --cov-gray-soft: #dadada;
  --cov-border: rgba(58,117,255,0.16);
  position: relative;
  overflow-x: hidden;
  /* one continuous light surface for the whole page (same stack as /faq, /oplata, /vakansii).
     The dark hero and dark CTA paint their own opaque backgrounds over it, so the pattern
     reads as a single uninterrupted field behind every light section. */
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-coverage-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
/* dark CTA flush to footer — no light pattern strip */
.site-main:has(.ast-coverage-page) { padding-bottom: 0; }
.site-main:has(.ast-coverage-page) + .site-footer,
.site-main:has(.ast-coverage-page) + footer { margin-top: 0; }
/* Light sections stay transparent so the single .ast-coverage-page surface shows through —
   only real cards/panels keep their own opaque background. */
.ast-coverage-check,
.ast-coverage-statuses,
.ast-coverage-zones,
.ast-coverage-tl,
.ast-coverage-notes,
.ast-coverage-contact { background: transparent; }

.ast-coverage-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--cov-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-coverage-kicker--cyan { color: var(--cov-cyan); }
.ast-coverage-head { margin-bottom: 14px; }
.ast-coverage-head h2 {
  font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700;
  letter-spacing: normal; line-height: 1.16; color: var(--cov-ink); margin: .1rem 0 .35rem;
}
.ast-coverage-head p { color: var(--cov-muted); max-width: 56ch; margin: 0; font-size: .98rem; }

/* ── hero ── */
.ast-coverage-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--cov-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-coverage-hero::before {
  content: ""; position: absolute; inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14; pointer-events: none;
}
.ast-coverage-hero__inner {
  position: relative; display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(430px, 1.1fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center;
  min-height: 440px; padding: clamp(38px, 4.6vw, 56px) 0;
}
.ast-coverage-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-coverage-hero h1 {
  margin: 0; color: #fff; font-size: clamp(2.3rem, 3.6vw, 3.4rem);
  font-family: var(--font-heading); font-weight: 400; line-height: 1.05; letter-spacing: 0;
}
.ast-coverage-hero__lead {
  max-width: 46ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.08rem; line-height: 1.55;
}
.ast-coverage-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── hero micro-scene: address → node → route → status ── */
.ast-coverage-hero__scene {
  position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1;
}
.ast-coverage-scene { position: relative; width: min(560px, 100%); height: 400px; }
.ast-coverage-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }

.ast-coverage-scene__map {
  position: absolute; left: 50%; top: 26px; transform: translateX(-50%);
  width: 300px; height: 220px; z-index: 2;
  filter: drop-shadow(0 18px 30px rgba(5,14,40,0.4));
}
.ast-coverage-map__grid rect {
  fill: rgba(255,255,255,0.05); stroke: rgba(120,170,255,0.28); stroke-width: 1.4;
}
.ast-coverage-map__route {
  stroke: var(--cov-cyan);
  stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 280; stroke-dashoffset: 280;
  filter: drop-shadow(0 0 5px rgba(52,255,230,0.6));
  animation: astCovDraw 7s ease-in-out infinite;
}
.ast-coverage-map__node-ring {
  fill: none; stroke: var(--cov-cyan); stroke-width: 2; opacity: .5;
  transform-origin: 56px 148px; animation: astCovNodePulse 7s ease-in-out infinite;
}
.ast-coverage-map__node-dot { fill: var(--cov-cyan); }
.ast-coverage-map__house path {
  fill: rgba(58,117,255,0.9); stroke: #fff; stroke-width: 1.4;
  opacity: .4; transform-origin: 240px 60px; animation: astCovHouse 7s ease-in-out infinite;
}
.ast-coverage-map__marker {
  fill: #fff; opacity: 0;
  offset-path: path("M56 148 L56 102 L151 102 L151 60 L240 60");
  offset-distance: 0%;
  filter: drop-shadow(0 0 6px rgba(255,255,255,0.9));
  animation: astCovMarker 7s ease-in-out infinite;
}

.ast-coverage-scene__card {
  position: absolute; right: 4px; bottom: 4px; width: 258px;
  background: #fff; border-radius: 16px; padding: 15px 17px; z-index: 4;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.18);
}
.ast-coverage-scene__title { display: block; font-size: .98rem; font-weight: 700; color: var(--cov-ink); margin-bottom: 11px; }
.ast-coverage-scene__field {
  display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 9px;
  background: rgba(58,117,255,0.06); border: 1px solid rgba(58,117,255,0.14); margin-bottom: 8px;
}
.ast-coverage-scene__label { font-size: .68rem; font-weight: 700; color: var(--cov-muted); flex-shrink: 0; }
.ast-coverage-scene__value { font-size: .78rem; color: var(--cov-ink); }
.ast-coverage-scene__value--addr { opacity: 0; transform: translateX(-6px); animation: astCovAddr 7s ease-in-out infinite; }
.ast-coverage-scene__value--node { opacity: 0; color: var(--cov-green); font-weight: 700; animation: astCovNode 7s ease-in-out infinite; }
.ast-coverage-scene__route { display: flex; align-items: center; gap: 8px; margin: 2px 0 9px; }
.ast-coverage-scene__route-bar { flex: 1; height: 6px; border-radius: 999px; background: rgba(58,117,255,0.12); overflow: hidden; }
.ast-coverage-scene__route-bar i {
  display: block; height: 100%; width: 0; border-radius: 999px;
  background: linear-gradient(90deg, var(--cov-blue), var(--cov-cyan)); animation: astCovRoute 7s ease-in-out infinite;
}
.ast-coverage-scene__route-label { font-size: .68rem; font-weight: 600; color: var(--cov-muted); flex-shrink: 0; opacity: 0; animation: astCovRouteLabel 7s ease-in-out infinite; }
.ast-coverage-scene__status {
  margin-top: 2px; padding: 9px 12px; border-radius: 10px; text-align: center;
  font-size: .82rem; font-weight: 700; color: #fff; opacity: 0; transform: scale(.94);
  background: linear-gradient(120deg, #0f9d84, #14776a);
  box-shadow: 0 6px 16px rgba(20,119,106,0.34); animation: astCovStatus 7s ease-in-out infinite;
}
.ast-coverage-scene__robot {
  position: absolute; left: 6px; bottom: 0; height: 210px; width: auto; object-fit: contain;
  z-index: 3; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.32));
  transform-origin: bottom center; animation: astCovRobot 7s ease-in-out infinite;
}
.ast-coverage-scene__signal {
  position: absolute; left: 96px; bottom: 176px; width: 16px; height: 16px; border-radius: 50%;
  background: rgba(52,255,230,0.5); opacity: 0; z-index: 5; animation: astCovSignal 7s ease-in-out infinite;
}
@keyframes astCovDraw { 0%,30% { stroke-dashoffset: 280; } 56%,100% { stroke-dashoffset: 0; } }
@keyframes astCovNodePulse {
  0%,18% { transform: scale(.6); opacity: 0; }
  24% { transform: scale(1); opacity: .9; }
  34%,100% { transform: scale(1.3); opacity: 0; }
}
@keyframes astCovHouse { 0%,58% { opacity: .35; transform: scale(1); } 66%,100% { opacity: 1; transform: scale(1.08); } }
@keyframes astCovMarker {
  0%,32% { opacity: 0; offset-distance: 0%; }
  36% { opacity: 1; offset-distance: 0%; }
  55% { opacity: 1; offset-distance: 100%; }
  60%,100% { opacity: 0; offset-distance: 100%; }
}
@keyframes astCovAddr { 0%,8% { opacity: 0; transform: translateX(-6px); } 16%,100% { opacity: 1; transform: translateX(0); } }
@keyframes astCovNode { 0%,22% { opacity: 0; } 30%,100% { opacity: 1; } }
@keyframes astCovRoute { 0%,34% { width: 0; } 56%,100% { width: 100%; } }
@keyframes astCovRouteLabel { 0%,50% { opacity: 0; } 58%,100% { opacity: 1; } }
@keyframes astCovStatus { 0%,60% { opacity: 0; transform: scale(.94); } 70%,100% { opacity: 1; transform: scale(1); } }
@keyframes astCovRobot {
  0%,10% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(2.5deg) translateY(-3px); }
  60% { transform: rotate(1deg) translateY(-2px); }
  72% { transform: rotate(-2deg) translateY(-4px); }
  86%,100% { transform: rotate(0deg) translateY(0); }
}
@keyframes astCovSignal {
  0%,64% { opacity: 0; transform: scale(.5); }
  72% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 4px rgba(52,255,230,0.24); }
  82%,100% { opacity: 0; transform: scale(1.5); box-shadow: 0 0 0 12px rgba(52,255,230,0); }
}

/* ── address check panel ── */
.ast-coverage-check { padding: 30px 0 18px; scroll-margin-top: 90px; }
.ast-coverage-check__panel {
  background: #fff; border: 1px solid var(--cov-border); border-radius: 18px;
  padding: clamp(20px, 3vw, 30px); box-shadow: 0 6px 26px rgba(58,117,255,0.08);
}
.ast-coverage-check__intro h2 {
  font-size: clamp(1.4rem, 2.2vw, 1.85rem); font-family: var(--font-main); font-weight: 700;
  color: var(--cov-ink); margin: .1rem 0 .4rem; line-height: 1.16;
}
.ast-coverage-check__intro p { color: var(--cov-muted); margin: 0 0 18px; max-width: 62ch; font-size: .98rem; }
.ast-coverage-check__form {
  display: grid; grid-template-columns: 1.3fr 1.3fr .8fr auto; gap: 14px; align-items: end;
}
.ast-coverage-field { display: grid; gap: 6px; min-width: 0; }
.ast-coverage-field label { font-size: .78rem; font-weight: 700; color: var(--cov-ink); }
.ast-coverage-field input {
  width: 100%; box-sizing: border-box; font: inherit; font-size: .95rem; color: var(--cov-ink);
  padding: 11px 13px; border-radius: 11px; border: 1px solid rgba(58,117,255,0.24);
  background: #fbfdff; transition: border-color .15s ease, box-shadow .15s ease;
}
.ast-coverage-field input::placeholder { color: #98a7c4; }
.ast-coverage-field input:focus-visible {
  outline: none; border-color: var(--cov-blue); box-shadow: 0 0 0 3px rgba(58,117,255,0.18);
}
.ast-coverage-check__actions { display: flex; }
.ast-coverage-check__actions .button { width: 100%; white-space: nowrap; }
.ast-coverage-check__hint { margin: 14px 0 0; font-size: .84rem; color: var(--cov-muted); line-height: 1.5; }

.ast-coverage-check__result {
  margin-top: 16px; padding: 16px 18px; border-radius: 13px;
  border: 1px solid rgba(58,117,255,0.2); background: rgba(58,117,255,0.05);
}
.ast-coverage-check__result:focus-visible { outline: 2px solid var(--cov-blue); outline-offset: 2px; }
.ast-coverage-check__result[data-state="uncertain"] { border-color: rgba(58,117,255,0.28); background: rgba(58,117,255,0.07); }
.ast-coverage-result__title { margin: 0 0 .3rem; font-size: 1.02rem; font-weight: 700; color: var(--cov-ink); }
.ast-coverage-result__text { margin: 0; font-size: .92rem; color: var(--cov-body); line-height: 1.5; }
.ast-coverage-result__mark {
  display: inline-block; width: 26px; height: 26px; border-radius: 50%; margin-bottom: 8px;
  background: radial-gradient(circle at 50% 50%, var(--cov-cyan), var(--cov-blue));
  box-shadow: 0 0 0 5px rgba(58,117,255,0.12);
}
.ast-coverage-result__spinner {
  display: inline-block; width: 22px; height: 22px; margin-bottom: 8px; border-radius: 50%;
  border: 3px solid rgba(58,117,255,0.22); border-top-color: var(--cov-blue);
  animation: astCovSpin .7s linear infinite;
}
.ast-coverage-result__actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 12px; }
@keyframes astCovSpin { to { transform: rotate(360deg); } }

/* ── А. statuses ── */
.ast-coverage-statuses { padding: 20px 0 12px; }
.ast-coverage-statuses__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ast-coverage-status {
  background: #fff; border: 1px solid var(--cov-border); border-radius: 14px; padding: 20px 22px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05); display: flex; flex-direction: column; gap: 8px;
}
.ast-coverage-status__mark { width: 34px; height: 34px; border-radius: 10px; margin-bottom: 2px; }
.ast-coverage-status--available .ast-coverage-status__mark { background: linear-gradient(135deg, #0f9d84, var(--cov-cyan)); box-shadow: 0 0 0 5px rgba(52,255,230,0.14); }
.ast-coverage-status--check .ast-coverage-status__mark { background: linear-gradient(135deg, var(--cov-blue), var(--cov-cyan)); box-shadow: 0 0 0 5px rgba(58,117,255,0.12); }
.ast-coverage-status--outside .ast-coverage-status__mark { background: linear-gradient(135deg, var(--cov-gray), var(--cov-gray-soft)); box-shadow: 0 0 0 5px rgba(112,111,111,0.14); }
.ast-coverage-status h3 { font-size: 1.08rem; font-weight: 700; color: var(--cov-ink); margin: 0; line-height: 1.25; }
.ast-coverage-status__text { font-size: .93rem; color: var(--cov-body); margin: 0; line-height: 1.45; }
.ast-coverage-status__next {
  font-size: .86rem; color: var(--cov-muted); margin: auto 0 0; padding-top: 8px;
  border-top: 1px solid rgba(58,117,255,0.12); line-height: 1.45;
}

/* ── Б. territories ── */
.ast-coverage-zones { padding: 20px 0 12px; }
.ast-coverage-zones__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 18px; width: 100%; }
.ast-coverage-zones__grid[data-coverage-count="1"] { grid-template-columns: minmax(0, 640px); }
.ast-coverage-zones__grid[data-coverage-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-coverage-zones__grid[data-coverage-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-coverage-zone {
  background: #fff; border: 1px solid var(--cov-border); border-radius: 14px; padding: 22px 24px;
  display: flex; flex-direction: column; gap: 9px; box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-coverage-zone__status {
  align-self: flex-start; font-size: .7rem; font-weight: 700; padding: 3px 11px; border-radius: 100px;
  background: rgba(58,117,255,0.1); color: var(--cov-blue); border: 1px solid rgba(58,117,255,0.24);
}
.ast-coverage-zone__status--available { background: rgba(52,255,230,0.14); color: var(--cov-green); border-color: rgba(52,255,230,0.34); }
.ast-coverage-zone__status--outside { background: rgba(112,111,111,0.1); color: var(--cov-gray); border-color: rgba(112,111,111,0.32); }
.ast-coverage-zone h3 { font-size: 1.16rem; font-weight: 600; color: var(--cov-ink); margin: .1rem 0 0; line-height: 1.3; }
.ast-coverage-zone p { font-size: .93rem; color: var(--cov-body); margin: 0; line-height: 1.48; }
.ast-coverage-zone .button { margin-top: auto; align-self: flex-start; }

/* ── В. timeline ── */
.ast-coverage-tl { padding: 20px 0 12px; }
.ast-coverage-tl__row {
  position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: cov-tl;
}
.ast-coverage-tl__row::before {
  content: ""; position: absolute; top: 27px; left: 12.5%; right: 12.5%; height: 3px;
  border-radius: 999px; background: linear-gradient(90deg, var(--cov-blue), var(--cov-cyan)); opacity: 0.72;
}
.ast-coverage-tl__item {
  counter-increment: cov-tl; position: relative; display: grid; gap: 6px;
  justify-items: center; text-align: center; padding-top: 62px; min-width: 0;
}
.ast-coverage-tl__item::before {
  content: counter(cov-tl, decimal-leading-zero); position: absolute; top: 0; left: 50%;
  transform: translateX(-50%); display: grid; place-items: center; width: 54px; height: 54px;
  border-radius: 50%; background: linear-gradient(135deg, var(--cov-blue), var(--cov-cyan));
  color: #fff; font-family: var(--font-heading); font-size: 1.1rem; box-shadow: 0 0 0 6px rgba(58,117,255,0.12);
}
.ast-coverage-tl__item h3 { font-size: 1.04rem; font-weight: 600; color: var(--cov-ink); margin: 0; }
.ast-coverage-tl__item p { font-size: .9rem; color: var(--cov-body); margin: 0; max-width: 26ch; line-height: 1.45; }

/* ── Г. info panel ── */
.ast-coverage-notes { padding: 20px 0 12px; }
.ast-coverage-notes__inner {
  display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.6fr); gap: 26px; align-items: start;
  background: linear-gradient(120deg, rgba(58,117,255,0.06), rgba(52,255,230,0.05));
  border: 1px solid rgba(58,117,255,0.16); border-radius: 16px; padding: 24px 28px;
}
.ast-coverage-notes__head h2 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); font-family: var(--font-main); font-weight: 700; color: var(--cov-ink); margin: .1rem 0 0; line-height: 1.16; }
.ast-coverage-notes__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.ast-coverage-notes__list h3 { font-size: 1rem; font-weight: 700; color: var(--cov-ink); margin: 0 0 .2rem; }
.ast-coverage-notes__list p { font-size: .93rem; color: var(--cov-body); margin: 0; line-height: 1.5; }

/* ── Д. contact panel ── */
.ast-coverage-contact { padding: 16px 0 20px; }
.ast-coverage-contact__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  background: #fff; border: 1px solid var(--cov-border); border-radius: 16px; padding: 24px 30px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-coverage-contact__text h2 { font-size: clamp(1.15rem, 1.7vw, 1.4rem); font-family: var(--font-main); font-weight: 700; color: var(--cov-ink); margin: .1rem 0 .35rem; max-width: 40ch; line-height: 1.16; }
.ast-coverage-contact__text p { color: var(--cov-body); font-size: .93rem; margin: 0; max-width: 54ch; }
.ast-coverage-contact__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── dark CTA — touches footer ── */
.ast-coverage-cta { background: var(--cov-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-coverage-cta::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.ast-coverage-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-coverage-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 30ch; line-height: 1.18; }
.ast-coverage-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-coverage-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── responsive ── */
@media (max-width: 1023px) {
  .ast-coverage-hero__inner { grid-template-columns: 1fr; }
  .ast-coverage-hero__scene { height: 350px; }
  .ast-coverage-scene { width: min(520px, 100%); height: 350px; }
  .ast-coverage-scene__robot { height: 188px; }
  .ast-coverage-statuses__grid { grid-template-columns: 1fr; }
  .ast-coverage-tl__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-coverage-tl__row::before { display: none; }
  .ast-coverage-notes__inner { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 767px) {
  .ast-coverage-check__form { grid-template-columns: 1fr; gap: 12px; }
  .ast-coverage-check__actions .button { width: 100%; }
  .ast-coverage-hero__scene { height: 320px; }
  .ast-coverage-scene { width: 300px; height: 320px; }
  .ast-coverage-scene__map { width: 244px; top: 14px; }
  .ast-coverage-scene__card { width: 210px; right: 0; bottom: 0; padding: 12px 13px; }
  .ast-coverage-scene__title { font-size: .88rem; margin-bottom: 8px; }
  .ast-coverage-scene__robot { height: 138px; left: 0; }
  .ast-coverage-scene__signal { left: 74px; bottom: 118px; }
  .ast-coverage-zones__grid,
  .ast-coverage-zones__grid[data-coverage-count="1"],
  .ast-coverage-zones__grid[data-coverage-count="2"],
  .ast-coverage-zones__grid[data-coverage-count="4"] { grid-template-columns: 1fr; }
  .ast-coverage-tl__row { grid-template-columns: 1fr; gap: 14px; }
  .ast-coverage-tl__item { justify-items: start; text-align: left; padding-top: 0; padding-left: 68px; min-height: 54px; }
  .ast-coverage-tl__item::before { left: 0; transform: none; top: 0; }
  .ast-coverage-contact__inner { padding: 18px 20px; flex-direction: column; align-items: flex-start; }
  .ast-coverage-cta { padding: 40px 0; margin-top: 14px; }
  .ast-coverage-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-coverage-notes__inner { padding: 20px 20px; }
  .ast-coverage-check { padding: 24px 0 14px; }
}
@media (max-width: 360px) {
  .ast-coverage-scene { width: 264px; }
  .ast-coverage-scene__map { width: 212px; }
  .ast-coverage-scene__card { width: 188px; }
}

/* ── reduced motion — freeze to a clear resolved state ── */
@media (prefers-reduced-motion: reduce) {
  .ast-coverage-map__route,
  .ast-coverage-map__node-ring,
  .ast-coverage-map__house path,
  .ast-coverage-map__marker,
  .ast-coverage-scene__value--addr,
  .ast-coverage-scene__value--node,
  .ast-coverage-scene__route-bar i,
  .ast-coverage-scene__route-label,
  .ast-coverage-scene__status,
  .ast-coverage-scene__robot,
  .ast-coverage-scene__signal { animation: none !important; }
  .ast-coverage-map__route { stroke-dashoffset: 0 !important; }
  .ast-coverage-map__node-ring { opacity: .5 !important; transform: scale(1) !important; }
  .ast-coverage-map__house path { opacity: 1 !important; transform: scale(1) !important; }
  .ast-coverage-map__marker { opacity: 0 !important; }
  .ast-coverage-scene__value--addr { opacity: 1 !important; transform: none !important; }
  .ast-coverage-scene__value--node { opacity: 1 !important; }
  .ast-coverage-scene__route-bar i { width: 100% !important; }
  .ast-coverage-scene__route-label { opacity: 1 !important; }
  .ast-coverage-scene__status { opacity: 1 !important; transform: none !important; }
  .ast-coverage-result__spinner { animation: none !important; }
}
/* /AST inner coverage reference */

/* AST inner speedtest reference */
/* root wrapper is .ast-speedtest-page; namespace .ast-speedtest-* (no legacy collision). */
.ast-speedtest-page {
  --st-dark: #050e28;
  --st-blue: #3a75ff;
  --st-cyan: #34ffe6;
  --st-ink: #172a4d;
  --st-muted: #4a5f85;
  --st-body: #3f5478;
  --st-gray: #706f6f;
  --st-gray-soft: #dadada;
  --st-border: rgba(58,117,255,0.16);
  position: relative;
  overflow-x: hidden;
  /* one continuous light surface (same stack as /faq, /oplata, /vakansii, /zona-pokrytiya) */
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-speedtest-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-speedtest-page) { padding-bottom: 0; }
.site-main:has(.ast-speedtest-page) + .site-footer,
.site-main:has(.ast-speedtest-page) + footer { margin-top: 0; }
.ast-speedtest-panel,
.ast-speedtest-metrics,
.ast-speedtest-accuracy,
.ast-speedtest-factors,
.ast-speedtest-tl,
.ast-speedtest-contact { background: transparent; }

.ast-speedtest-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--st-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-speedtest-kicker--cyan { color: var(--st-cyan); }
.ast-speedtest-head { margin-bottom: 14px; }
.ast-speedtest-head h2 {
  font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700;
  letter-spacing: normal; line-height: 1.16; color: var(--st-ink); margin: .1rem 0 .35rem;
}
.ast-speedtest-head p { color: var(--st-muted); max-width: 56ch; margin: 0; font-size: .98rem; }

/* ── hero ── */
.ast-speedtest-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--st-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-speedtest-hero::before {
  content: ""; position: absolute; inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14; pointer-events: none;
}
.ast-speedtest-hero__inner {
  position: relative; display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(430px, 1.1fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center;
  min-height: 440px; padding: clamp(38px, 4.6vw, 56px) 0;
}
.ast-speedtest-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-speedtest-hero h1 {
  margin: 0; color: #fff; font-size: clamp(2.3rem, 3.6vw, 3.4rem);
  font-family: var(--font-heading); font-weight: 400; line-height: 1.05; letter-spacing: 0;
}
.ast-speedtest-hero__lead {
  max-width: 46ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.08rem; line-height: 1.55;
}
.ast-speedtest-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── hero micro-scene: устройство ⇄ узел АСТ · Ping → Download → Upload → Готово ── */
.ast-speedtest-hero__scene { position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-speedtest-scene { position: relative; width: min(560px, 100%); height: 400px; }
.ast-speedtest-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }

/* network stage — крупные устройство и узел на «экране» */
.ast-speedtest-stage {
  position: absolute; right: 8px; top: 2px; width: 300px; height: 178px; z-index: 2;
  border-radius: 18px; overflow: hidden;
  background: linear-gradient(160deg, rgba(58,117,255,0.16), rgba(5,14,40,0.08));
  border: 1px solid rgba(120,170,255,0.24); box-shadow: 0 22px 48px rgba(5,14,40,0.42);
}
.ast-speedtest-net { position: absolute; inset: 6px 6px 14px; width: calc(100% - 12px); height: calc(100% - 20px); }
.ast-speedtest-net .net-wire { stroke: rgba(120,170,255,0.5); stroke-width: 2.6; stroke-linecap: round; stroke-dasharray: 104; stroke-dashoffset: 104; animation: astStWire 7.5s ease-in-out infinite; }
.ast-speedtest-net .o-screen { fill: rgba(58,117,255,0.2); stroke: #d5e6ff; stroke-width: 2.4; stroke-linejoin: round; }
.ast-speedtest-net .o-screen-in { fill: rgba(52,255,230,0.14); stroke: rgba(52,255,230,0.5); stroke-width: 1.4; }
.ast-speedtest-net .o-base { fill: rgba(58,117,255,0.2); stroke: #d5e6ff; stroke-width: 2.4; stroke-linejoin: round; }
.ast-speedtest-net .o-node { fill: rgba(58,117,255,0.2); stroke: #d5e6ff; stroke-width: 2.4; stroke-linejoin: round; }
.ast-speedtest-net .o-slot { stroke: rgba(213,230,255,0.7); stroke-width: 2.2; stroke-linecap: round; }
.ast-speedtest-net .o-ind { fill: var(--st-cyan); }
.ast-speedtest-net .o-ind--2 { animation: astStInd 7.5s ease-in-out infinite; }
.ast-speedtest-net .net-ping { fill: var(--st-blue); opacity: 0; filter: drop-shadow(0 0 6px rgba(58,117,255,0.9)); animation: astStPing 7.5s ease-in-out infinite; }
.ast-speedtest-net .net-dl { fill: var(--st-cyan); opacity: 0; filter: drop-shadow(0 0 5px rgba(52,255,230,0.85)); }
.ast-speedtest-net .net-dl--1 { animation: astStDl1 7.5s ease-in-out infinite; }
.ast-speedtest-net .net-dl--2 { animation: astStDl2 7.5s ease-in-out infinite; }
.ast-speedtest-net .net-ul { fill: var(--st-blue); opacity: 0; filter: drop-shadow(0 0 5px rgba(58,117,255,0.85)); }
.ast-speedtest-net .net-ul--1 { animation: astStUl1 7.5s ease-in-out infinite; }
.ast-speedtest-net .net-ul--2 { animation: astStUl2 7.5s ease-in-out infinite; }
.ast-speedtest-net__tag {
  position: absolute; font-size: .62rem; font-weight: 700; letter-spacing: .04em; color: #cfe0ff;
  background: rgba(5,14,40,0.42); border: 1px solid rgba(120,170,255,0.3); padding: 1px 8px; border-radius: 100px;
}
.ast-speedtest-net__tag--you { left: 20px; bottom: 12px; }
.ast-speedtest-net__tag--ast { right: 20px; top: 14px; color: #bff6ee; border-color: rgba(52,255,230,0.4); }

/* result panel */
.ast-speedtest-scene__card {
  position: absolute; right: 8px; bottom: 6px; width: 270px;
  background: #fff; border-radius: 16px; padding: 15px 17px; z-index: 4;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.18);
}
.ast-speedtest-scene__card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 11px; }
.ast-speedtest-scene__title { font-size: 1rem; font-weight: 700; color: var(--st-ink); }
.ast-speedtest-scene__demo {
  font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--st-gray); background: rgba(112,111,111,0.12); border: 1px solid rgba(112,111,111,0.28);
  padding: 2px 7px; border-radius: 100px;
}
.ast-speedtest-scene__row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  padding: 8px 11px; border-radius: 9px; margin-bottom: 7px;
  background: rgba(58,117,255,0.06); border: 1px solid rgba(58,117,255,0.14);
}
.ast-speedtest-scene__lbl { font-size: .74rem; font-weight: 700; color: var(--st-muted); }
.ast-speedtest-scene__val { font-size: .96rem; font-weight: 700; color: var(--st-ink); }
.ast-speedtest-scene__val i { font-size: .66rem; font-weight: 600; color: var(--st-muted); font-style: normal; }
/* rows: blue while active, cyan when done; values appear once their phase completes */
.ast-speedtest-scene__row--ping { animation: astStRowPing 7.5s ease-in-out infinite; }
.ast-speedtest-scene__row--dl { animation: astStRowDl 7.5s ease-in-out infinite; }
.ast-speedtest-scene__row--ul { animation: astStRowUl 7.5s ease-in-out infinite; }
.ast-speedtest-scene__row--ping .ast-speedtest-scene__val { animation: astStValPing 7.5s ease-in-out infinite; }
.ast-speedtest-scene__row--dl .ast-speedtest-scene__val { animation: astStValDl 7.5s ease-in-out infinite; }
.ast-speedtest-scene__row--ul .ast-speedtest-scene__val { animation: astStValUl 7.5s ease-in-out infinite; }
.ast-speedtest-scene__status {
  position: relative; height: 1.9em; margin-top: 2px; border-radius: 10px;
  background: rgba(58,117,255,0.1); border: 1px solid rgba(58,117,255,0.22);
  animation: astStStatusBox 7.5s ease-in-out infinite;
}
.ast-speedtest-scene__status .st-phase {
  position: absolute; inset: 0; display: grid; place-items: center;
  font-size: .8rem; font-weight: 700; color: var(--st-ink); opacity: 0;
}
.st-phase--1 { animation: astStPhase1 7.5s ease-in-out infinite; }
.st-phase--2 { animation: astStPhase2 7.5s ease-in-out infinite; }
.st-phase--3 { animation: astStPhase3 7.5s ease-in-out infinite; }
.st-phase--4 { animation: astStPhase4 7.5s ease-in-out infinite; }
.st-phase--5 { animation: astStPhase5 7.5s ease-in-out infinite; }
.ast-speedtest-scene__robot {
  position: absolute; left: 0; bottom: 0; height: 250px; width: auto; object-fit: contain;
  z-index: 3; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.34));
  transform-origin: bottom center; animation: astStRobot 7.5s ease-in-out infinite;
}
.ast-speedtest-scene__signal {
  position: absolute; left: 92px; bottom: 210px; width: 16px; height: 16px; border-radius: 50%;
  background: rgba(52,255,230,0.55); opacity: 0; z-index: 5; animation: astStSignal 7.5s ease-in-out infinite;
}
@keyframes astStWire { 0% { stroke-dashoffset: 104; } 14%,100% { stroke-dashoffset: 0; } }
@keyframes astStInd { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
/* Ping — устройство → узел → обратно */
@keyframes astStPing {
  0%,14% { opacity: 0; transform: translate(108px,88px); }
  16% { opacity: 1; transform: translate(108px,88px); }
  24% { opacity: 1; transform: translate(210px,88px); }
  25% { opacity: 1; transform: translate(210px,88px); }
  33% { opacity: 1; transform: translate(108px,88px); }
  35%,100% { opacity: 0; transform: translate(108px,88px); }
}
/* Download — узел АСТ → устройство (стрелки ◄) */
@keyframes astStDl1 {
  0%,37% { opacity: 0; transform: translate(210px,88px); }
  40% { opacity: 1; transform: translate(210px,88px); }
  51% { opacity: 1; transform: translate(108px,88px); }
  54%,100% { opacity: 0; transform: translate(108px,88px); }
}
@keyframes astStDl2 {
  0%,42% { opacity: 0; transform: translate(210px,88px); }
  45% { opacity: 1; transform: translate(210px,88px); }
  55% { opacity: 1; transform: translate(108px,88px); }
  58%,100% { opacity: 0; transform: translate(108px,88px); }
}
/* Upload — устройство → узел АСТ (стрелки ►) */
@keyframes astStUl1 {
  0%,59% { opacity: 0; transform: translate(108px,88px); }
  62% { opacity: 1; transform: translate(108px,88px); }
  73% { opacity: 1; transform: translate(210px,88px); }
  76%,100% { opacity: 0; transform: translate(210px,88px); }
}
@keyframes astStUl2 {
  0%,64% { opacity: 0; transform: translate(108px,88px); }
  67% { opacity: 1; transform: translate(108px,88px); }
  77% { opacity: 1; transform: translate(210px,88px); }
  80%,100% { opacity: 0; transform: translate(210px,88px); }
}
@keyframes astStRowPing {
  0%,14% { border-color: rgba(58,117,255,0.14); background: rgba(58,117,255,0.06); }
  18%,33% { border-color: var(--st-blue); background: rgba(58,117,255,0.16); }
  37%,100% { border-color: rgba(52,255,230,0.42); background: rgba(52,255,230,0.1); }
}
@keyframes astStRowDl {
  0%,37% { border-color: rgba(58,117,255,0.14); background: rgba(58,117,255,0.06); }
  40%,55% { border-color: var(--st-blue); background: rgba(58,117,255,0.16); }
  59%,100% { border-color: rgba(52,255,230,0.42); background: rgba(52,255,230,0.1); }
}
@keyframes astStRowUl {
  0%,59% { border-color: rgba(58,117,255,0.14); background: rgba(58,117,255,0.06); }
  62%,77% { border-color: var(--st-blue); background: rgba(58,117,255,0.16); }
  81%,100% { border-color: rgba(52,255,230,0.42); background: rgba(52,255,230,0.1); }
}
@keyframes astStValPing { 0%,28% { opacity: .28; } 34%,100% { opacity: 1; } }
@keyframes astStValDl { 0%,52% { opacity: .28; } 58%,100% { opacity: 1; } }
@keyframes astStValUl { 0%,76% { opacity: .28; } 82%,100% { opacity: 1; } }
@keyframes astStStatusBox {
  0%,78% { background: rgba(58,117,255,0.1); border-color: rgba(58,117,255,0.22); }
  84%,100% { background: rgba(52,255,230,0.16); border-color: rgba(52,255,230,0.42); }
}
@keyframes astStPhase1 { 0%,12% { opacity: 1; } 15%,100% { opacity: 0; } }
@keyframes astStPhase2 { 0%,15% { opacity: 0; } 18%,33% { opacity: 1; } 36%,100% { opacity: 0; } }
@keyframes astStPhase3 { 0%,36% { opacity: 0; } 39%,55% { opacity: 1; } 58%,100% { opacity: 0; } }
@keyframes astStPhase4 { 0%,58% { opacity: 0; } 61%,77% { opacity: 1; } 80%,100% { opacity: 0; } }
@keyframes astStPhase5 { 0%,80% { opacity: 0; } 84%,100% { opacity: 1; } }
@keyframes astStRobot {
  0% { transform: rotate(0deg) translateY(0); }
  10% { transform: rotate(-3deg) translateY(-2px); }
  24% { transform: rotate(2deg) translateY(-3px); }
  45% { transform: rotate(1deg) translateY(-2px); }
  68% { transform: rotate(-1deg) translateY(-2px); }
  86% { transform: rotate(3deg) translateY(-4px); }
  95%,100% { transform: rotate(0deg) translateY(0); }
}
@keyframes astStSignal {
  0%,4% { opacity: 0; transform: scale(.5); }
  8% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 4px rgba(52,255,230,0.24); }
  14% { opacity: 0; transform: scale(1.4); box-shadow: 0 0 0 10px rgba(52,255,230,0); }
  80% { opacity: 0; transform: scale(.5); }
  86% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 4px rgba(52,255,230,0.24); }
  94%,100% { opacity: 0; transform: scale(1.5); box-shadow: 0 0 0 12px rgba(52,255,230,0); }
}

/* ── main test panel ── */
.ast-speedtest-panel { padding: 30px 0 18px; scroll-margin-top: 90px; }
.ast-speedtest-tool {
  background: #fff; border: 1px solid var(--st-border); border-radius: 18px;
  padding: clamp(20px, 3vw, 30px); box-shadow: 0 6px 26px rgba(58,117,255,0.08);
}
.ast-speedtest-tool__intro h2 {
  font-size: clamp(1.4rem, 2.2vw, 1.85rem); font-family: var(--font-main); font-weight: 700;
  color: var(--st-ink); margin: .1rem 0 .4rem; line-height: 1.16;
}
.ast-speedtest-tool__intro p { color: var(--st-muted); margin: 0 0 18px; max-width: 64ch; font-size: .98rem; }
.ast-speedtest-gauges { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ast-speedtest-gauge {
  display: grid; gap: 6px; padding: 18px 20px; border-radius: 13px;
  background: #fbfdff; border: 1px solid rgba(58,117,255,0.16); position: relative;
  border-top: 3px solid var(--st-gray-soft);
}
.ast-speedtest-gauge__label { font-size: .78rem; font-weight: 700; color: var(--st-muted); }
.ast-speedtest-gauge__value { font-size: 1.7rem; font-weight: 800; color: var(--st-ink); font-family: var(--font-main); line-height: 1; }
.ast-speedtest-gauge__unit { font-size: .8rem; font-weight: 600; color: var(--st-muted); font-family: var(--font-main); }
.ast-speedtest-gauge__state {
  font-size: .72rem; font-weight: 700; color: var(--st-gray);
  display: inline-flex; align-items: center; gap: 6px;
}
.ast-speedtest-gauge__state::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--st-gray-soft); flex-shrink: 0;
}
/* neutral / waiting / not-yet-available */
.ast-speedtest-gauge[data-state="idle"],
.ast-speedtest-gauge[data-state="soon"] { border-top-color: var(--st-gray-soft); }
.ast-speedtest-gauge--soon .ast-speedtest-gauge__value { color: var(--st-gray); }
/* active phase — blue */
.ast-speedtest-gauge[data-state="active"] { border-top-color: var(--st-blue); box-shadow: 0 6px 20px rgba(58,117,255,0.14); }
.ast-speedtest-gauge[data-state="active"] .ast-speedtest-gauge__state { color: var(--st-blue); }
.ast-speedtest-gauge[data-state="active"] .ast-speedtest-gauge__state::before { background: var(--st-blue); animation: astStPulse 1s ease-in-out infinite; }
/* completed — cyan accent, dark ink text */
.ast-speedtest-gauge[data-state="done"] { border-top-color: var(--st-cyan); box-shadow: 0 6px 20px rgba(52,255,230,0.18); }
.ast-speedtest-gauge[data-state="done"] .ast-speedtest-gauge__state { color: var(--st-ink); }
.ast-speedtest-gauge[data-state="done"] .ast-speedtest-gauge__state::before { background: var(--st-cyan); box-shadow: 0 0 0 3px rgba(52,255,230,0.22); }
@keyframes astStPulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .4; transform: scale(1.4); } }

.ast-speedtest-tool__foot { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 18px; }
.ast-speedtest-tool__foot .button[disabled] { opacity: .6; cursor: progress; }
.ast-speedtest-status { margin: 0; font-size: .92rem; color: var(--st-body); line-height: 1.5; flex: 1; min-width: 220px; }
.ast-speedtest-tool__note { margin: 14px 0 0; font-size: .84rem; color: var(--st-muted); line-height: 1.5; }

/* ── А. metrics ── */
.ast-speedtest-metrics { padding: 20px 0 12px; }
.ast-speedtest-metrics__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ast-speedtest-metric {
  background: #fff; border: 1px solid var(--st-border); border-radius: 14px; padding: 20px 22px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05); display: flex; flex-direction: column; gap: 7px;
}
.ast-speedtest-metric__mark { width: 34px; height: 34px; border-radius: 10px; margin-bottom: 2px; background: linear-gradient(135deg, var(--st-blue), var(--st-cyan)); box-shadow: 0 0 0 5px rgba(58,117,255,0.1); }
.ast-speedtest-metric__tag { font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--st-blue); }
.ast-speedtest-metric h3 { font-size: 1.1rem; font-weight: 700; color: var(--st-ink); margin: 0; }
.ast-speedtest-metric p { font-size: .93rem; color: var(--st-body); margin: 0; line-height: 1.48; }

/* ── Б. accuracy ── */
.ast-speedtest-accuracy { padding: 20px 0 12px; }
.ast-speedtest-accuracy__inner {
  display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr); gap: 26px; align-items: center;
  background: #fff; border: 1px solid var(--st-border); border-radius: 16px; padding: 24px 28px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-speedtest-accuracy__text h2 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); font-family: var(--font-main); font-weight: 700; color: var(--st-ink); margin: .1rem 0 .35rem; line-height: 1.16; }
.ast-speedtest-accuracy__text p { color: var(--st-muted); font-size: .93rem; margin: 0; }
.ast-speedtest-accuracy__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; }
.ast-speedtest-accuracy__list li { font-size: .93rem; color: #2f4368; padding-left: 1.5em; position: relative; line-height: 1.42; }
.ast-speedtest-accuracy__list li::before { content: "✓"; position: absolute; left: 0; color: var(--st-blue); font-weight: 700; }

/* ── В. factors ── */
.ast-speedtest-factors { padding: 20px 0 12px; }
.ast-speedtest-factors__inner {
  display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.6fr); gap: 26px; align-items: start;
  background: linear-gradient(120deg, rgba(58,117,255,0.06), rgba(52,255,230,0.05));
  border: 1px solid rgba(58,117,255,0.16); border-radius: 16px; padding: 24px 28px;
}
.ast-speedtest-factors__head h2 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); font-family: var(--font-main); font-weight: 700; color: var(--st-ink); margin: .1rem 0 0; line-height: 1.16; }
.ast-speedtest-factors__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 9px 22px; }
.ast-speedtest-factors__list li { font-size: .92rem; color: var(--st-body); padding-left: 1.3em; position: relative; line-height: 1.42; }
.ast-speedtest-factors__list li::before { content: "•"; position: absolute; left: 0; color: var(--st-blue); font-weight: 700; }

/* ── Г. troubleshooting timeline ── */
.ast-speedtest-tl { padding: 20px 0 12px; }
.ast-speedtest-tl__row {
  position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: st-tl;
}
.ast-speedtest-tl__row::before {
  content: ""; position: absolute; top: 27px; left: 16.6%; right: 16.6%; height: 3px;
  border-radius: 999px; background: linear-gradient(90deg, var(--st-blue), var(--st-cyan)); opacity: 0.72;
}
.ast-speedtest-tl__item {
  counter-increment: st-tl; position: relative; display: grid; gap: 6px;
  justify-items: center; text-align: center; padding-top: 62px; min-width: 0;
}
.ast-speedtest-tl__item::before {
  content: counter(st-tl, decimal-leading-zero); position: absolute; top: 0; left: 50%;
  transform: translateX(-50%); display: grid; place-items: center; width: 54px; height: 54px;
  border-radius: 50%; background: linear-gradient(135deg, var(--st-blue), var(--st-cyan));
  color: #fff; font-family: var(--font-heading); font-size: 1.1rem; box-shadow: 0 0 0 6px rgba(58,117,255,0.12);
}
.ast-speedtest-tl__item h3 { font-size: 1.04rem; font-weight: 600; color: var(--st-ink); margin: 0; }
.ast-speedtest-tl__item p { font-size: .9rem; color: var(--st-body); margin: 0; max-width: 30ch; line-height: 1.45; }

/* ── Д. contact panel ── */
.ast-speedtest-contact { padding: 16px 0 20px; }
.ast-speedtest-contact__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  background: #fff; border: 1px solid var(--st-border); border-radius: 16px; padding: 24px 30px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-speedtest-contact__text h2 { font-size: clamp(1.15rem, 1.7vw, 1.4rem); font-family: var(--font-main); font-weight: 700; color: var(--st-ink); margin: .1rem 0 .35rem; max-width: 40ch; line-height: 1.16; }
.ast-speedtest-contact__text p { color: var(--st-body); font-size: .93rem; margin: 0; max-width: 54ch; }
.ast-speedtest-contact__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── dark CTA — touches footer ── */
.ast-speedtest-cta { background: var(--st-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-speedtest-cta::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.ast-speedtest-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-speedtest-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 30ch; line-height: 1.18; }
.ast-speedtest-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-speedtest-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── responsive ── */
@media (max-width: 1023px) {
  .ast-speedtest-hero__inner { grid-template-columns: 1fr; }
  .ast-speedtest-hero__scene { height: 360px; }
  .ast-speedtest-scene { width: min(520px, 100%); height: 360px; }
  .ast-speedtest-stage { top: 4px; width: 292px; height: 176px; }
  .ast-speedtest-scene__robot { height: 214px; }
  .ast-speedtest-metrics__grid { grid-template-columns: 1fr; }
  .ast-speedtest-accuracy__inner { grid-template-columns: 1fr; gap: 16px; }
  .ast-speedtest-accuracy__list { grid-template-columns: 1fr; }
  .ast-speedtest-factors__inner { grid-template-columns: 1fr; gap: 16px; }
  .ast-speedtest-tl__row { grid-template-columns: 1fr; gap: 14px; }
  .ast-speedtest-tl__row::before { display: none; }
  .ast-speedtest-tl__item { justify-items: start; text-align: left; padding-top: 0; padding-left: 68px; min-height: 54px; }
  .ast-speedtest-tl__item::before { left: 0; transform: none; top: 0; }
}
@media (max-width: 767px) {
  .ast-speedtest-gauges { grid-template-columns: 1fr; }
  .ast-speedtest-hero__scene { height: 350px; }
  .ast-speedtest-scene { width: 300px; height: 350px; }
  .ast-speedtest-stage { top: 4px; left: 6px; right: auto; width: 224px; height: 112px; }
  .ast-speedtest-net__tag--you { left: 12px; bottom: 8px; }
  .ast-speedtest-net__tag--ast { right: 12px; top: 8px; }
  .ast-speedtest-scene__card { width: 214px; right: 0; bottom: 0; padding: 13px 14px; }
  .ast-speedtest-scene__title { font-size: .92rem; }
  .ast-speedtest-scene__robot { height: 132px; left: 0; }
  .ast-speedtest-scene__signal { left: 66px; bottom: 116px; }
  .ast-speedtest-factors__list { grid-template-columns: 1fr; }
  .ast-speedtest-tool__foot { flex-direction: column; align-items: stretch; }
  .ast-speedtest-tool__foot .button { width: 100%; }
  .ast-speedtest-status { min-width: 0; }
  .ast-speedtest-contact__inner { padding: 18px 20px; flex-direction: column; align-items: flex-start; }
  .ast-speedtest-cta { padding: 40px 0; margin-top: 14px; }
  .ast-speedtest-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-speedtest-panel { padding: 24px 0 14px; }
}
@media (max-width: 360px) {
  .ast-speedtest-scene { width: 264px; }
  .ast-speedtest-stage { width: 200px; height: 104px; }
  .ast-speedtest-scene__card { width: 182px; }
  .ast-speedtest-scene__robot { height: 116px; }
}

/* ── reduced motion — freeze to a clear resolved state ── */
@media (prefers-reduced-motion: reduce) {
  .ast-speedtest-net .net-wire,
  .ast-speedtest-net .net-ping, .ast-speedtest-net .net-dl, .ast-speedtest-net .net-ul,
  .ast-speedtest-net .o-ind--2,
  .ast-speedtest-scene__row--ping, .ast-speedtest-scene__row--dl, .ast-speedtest-scene__row--ul,
  .ast-speedtest-scene__row--ping .ast-speedtest-scene__val,
  .ast-speedtest-scene__row--dl .ast-speedtest-scene__val,
  .ast-speedtest-scene__row--ul .ast-speedtest-scene__val,
  .ast-speedtest-scene__status, .st-phase,
  .ast-speedtest-scene__robot, .ast-speedtest-scene__signal,
  .ast-speedtest-gauge[data-state="active"] .ast-speedtest-gauge__state::before { animation: none !important; }
  /* fully assembled result frame: устройство + узел + wire + все значения + «Готово» */
  .ast-speedtest-net .net-wire { stroke-dashoffset: 0 !important; }
  .ast-speedtest-net .net-ping, .ast-speedtest-net .net-dl, .ast-speedtest-net .net-ul { opacity: 0 !important; }
  .ast-speedtest-scene__row--ping .ast-speedtest-scene__val,
  .ast-speedtest-scene__row--dl .ast-speedtest-scene__val,
  .ast-speedtest-scene__row--ul .ast-speedtest-scene__val { opacity: 1 !important; }
  .ast-speedtest-scene__status { background: rgba(52,255,230,0.16) !important; border-color: rgba(52,255,230,0.42) !important; }
  .st-phase--1, .st-phase--2, .st-phase--3, .st-phase--4 { opacity: 0 !important; }
  .st-phase--5 { opacity: 1 !important; }
}
/* /AST inner speedtest reference */

/* AST inner services reference */
/* root wrapper is .ast-services-page; namespace .ast-services-* (no legacy collision). */
.ast-services-page {
  --sv-dark: #050e28;
  --sv-blue: #3a75ff;
  --sv-cyan: #34ffe6;
  --sv-ink: #172a4d;
  --sv-muted: #4a5f85;
  --sv-body: #3f5478;
  --sv-border: rgba(58,117,255,0.16);
  position: relative;
  overflow-x: hidden;
  /* one continuous light surface (same stack as accepted inner pages) */
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-services-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-services-page) { padding-bottom: 0; }
.site-main:has(.ast-services-page) + .site-footer,
.site-main:has(.ast-services-page) + footer { margin-top: 0; }
.ast-services-catalog,
.ast-services-choose,
.ast-services-work,
.ast-services-tl,
.ast-services-contact { background: transparent; }

.ast-services-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--sv-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-services-kicker--cyan { color: var(--sv-cyan); }
.ast-services-head { margin-bottom: 14px; }
.ast-services-head h2 {
  font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700;
  letter-spacing: normal; line-height: 1.16; color: var(--sv-ink); margin: .1rem 0 .35rem;
}
.ast-services-head p { color: var(--sv-muted); max-width: 60ch; margin: 0; font-size: .98rem; }

/* ── hero ── */
.ast-services-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--sv-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-services-hero::before {
  content: ""; position: absolute; inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14; pointer-events: none;
}
.ast-services-hero__inner {
  position: relative; display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(430px, 1.1fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center;
  min-height: 440px; padding: clamp(38px, 4.6vw, 56px) 0;
}
.ast-services-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-services-hero h1 {
  margin: 0; color: #fff; font-size: clamp(2.3rem, 3.6vw, 3.4rem);
  font-family: var(--font-heading); font-weight: 400; line-height: 1.05; letter-spacing: 0;
}
.ast-services-hero__lead {
  max-width: 46ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.08rem; line-height: 1.55;
}
.ast-services-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── hero micro-scene: задача → выбранная услуга → предметный объект → решение подобрано ── */
.ast-services-hero__scene { position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-services-scene { position: relative; width: min(560px, 100%); height: 400px; }
.ast-services-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }

/* object stage — большой предметный объект «на экране», меняется по фазам */
.ast-services-stage {
  position: absolute; right: 14px; top: 4px; width: 254px; height: 184px; z-index: 2;
  border-radius: 18px; overflow: hidden;
  background: linear-gradient(160deg, rgba(58,117,255,0.16), rgba(5,14,40,0.08));
  border: 1px solid rgba(120,170,255,0.24);
  box-shadow: 0 22px 48px rgba(5,14,40,0.42);
}
.ast-services-obj {
  position: absolute; inset: 12px; width: calc(100% - 24px); height: calc(100% - 24px);
  opacity: 0; transform-origin: center; transform: scale(.9);
}
.ast-services-obj--home { animation: astSvcObj1 8s ease-in-out infinite; }
.ast-services-obj--wifi { animation: astSvcObj2 8s ease-in-out infinite; }
.ast-services-obj--biz  { animation: astSvcObj3 8s ease-in-out infinite; }
.ast-services-obj--cam  { animation: astSvcObj4 8s ease-in-out infinite; }
.ast-services-obj .o-fill { fill: rgba(58,117,255,0.22); stroke: #d5e6ff; stroke-width: 2.4; stroke-linejoin: round; }
.ast-services-obj .o-acc { stroke: var(--sv-cyan); stroke-width: 2.4; stroke-linecap: round; }
.ast-services-obj .o-acc-fill { fill: var(--sv-cyan); }
.ast-services-obj .o-line, .ast-services-obj .o-link { stroke: var(--sv-cyan); stroke-width: 2.4; stroke-linecap: round; }
.ast-services-obj .o-dot { fill: var(--sv-cyan); filter: drop-shadow(0 0 5px rgba(52,255,230,0.85)); }
.ast-services-obj .o-wave { stroke: var(--sv-cyan); stroke-width: 2.6; stroke-linecap: round; opacity: .5; animation: astSvcWave 2s ease-in-out infinite; }
.ast-services-obj .o-wave--2 { animation-delay: .18s; }
.ast-services-obj .o-wave--3 { animation-delay: .36s; }
.ast-services-stage__signal {
  position: absolute; left: 50%; bottom: 8px; width: 14px; height: 14px; border-radius: 50%;
  background: rgba(52,255,230,0.65); opacity: 0; z-index: 6; transform: translateX(-50%);
  animation: astSvcStageSignal 2s ease-in-out infinite;
}

/* selection card */
.ast-services-scene__card {
  position: absolute; right: 6px; bottom: 6px; width: 270px;
  background: #fff; border-radius: 16px; padding: 16px 18px; z-index: 4;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.18);
}
.ast-services-scene__title { display: block; font-size: 1rem; font-weight: 700; color: var(--sv-ink); margin-bottom: 12px; }
.ast-services-scene__switch { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-bottom: 12px; }
.ast-services-scene__chip {
  text-align: center; font-size: .72rem; font-weight: 700; padding: 7px 4px; border-radius: 100px;
  background: rgba(58,117,255,0.08); color: var(--sv-muted); border: 1px solid transparent;
}
.ast-services-scene__chip--1 { animation: astSvcChip1 8s ease-in-out infinite; }
.ast-services-scene__chip--2 { animation: astSvcChip2 8s ease-in-out infinite; }
.ast-services-scene__chip--3 { animation: astSvcChip3 8s ease-in-out infinite; }
.ast-services-scene__chip--4 { animation: astSvcChip4 8s ease-in-out infinite; }
.ast-services-scene__pick {
  display: flex; align-items: center; gap: 8px; padding: 9px 11px; border-radius: 10px;
  background: rgba(58,117,255,0.06); border: 1px solid rgba(58,117,255,0.14); margin-bottom: 10px;
}
.ast-services-scene__pick-label { font-size: .7rem; font-weight: 700; color: var(--sv-muted); flex-shrink: 0; }
.ast-services-scene__pick-values { position: relative; flex: 1; height: 1.1em; }
.ast-services-scene__pick-value {
  position: absolute; left: 0; top: 0; font-size: .86rem; font-weight: 700; color: var(--sv-ink);
  font-style: normal; white-space: nowrap; opacity: 0;
}
.ast-services-scene__pick-value--1 { opacity: 1; animation: astSvcVal1 8s ease-in-out infinite; }
.ast-services-scene__pick-value--2 { animation: astSvcVal2 8s ease-in-out infinite; }
.ast-services-scene__pick-value--3 { animation: astSvcVal3 8s ease-in-out infinite; }
.ast-services-scene__pick-value--4 { animation: astSvcVal4 8s ease-in-out infinite; }
.ast-services-scene__status {
  padding: 10px 12px; border-radius: 10px; text-align: center; font-size: .84rem; font-weight: 700;
  color: var(--sv-ink); background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.4);
  opacity: 0; animation: astSvcStatus 2s ease-in-out infinite;
}
.ast-services-scene__robot {
  position: absolute; left: 0; bottom: 0; height: 252px; width: auto; object-fit: contain;
  z-index: 3; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.34));
  transform-origin: bottom center; animation: astSvcRobot 8s ease-in-out infinite;
}
@keyframes astSvcObj1 { 0% { opacity: 0; transform: scale(.9); } 4%,22% { opacity: 1; transform: scale(1); } 26%,100% { opacity: 0; transform: scale(.94); } }
@keyframes astSvcObj2 { 0%,26% { opacity: 0; transform: scale(.9); } 30%,47% { opacity: 1; transform: scale(1); } 51%,100% { opacity: 0; transform: scale(.94); } }
@keyframes astSvcObj3 { 0%,51% { opacity: 0; transform: scale(.9); } 55%,72% { opacity: 1; transform: scale(1); } 76%,100% { opacity: 0; transform: scale(.94); } }
@keyframes astSvcObj4 { 0%,76% { opacity: 0; transform: scale(.9); } 80%,96% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(.94); } }
@keyframes astSvcWave { 0%,100% { opacity: .35; } 50% { opacity: .9; } }
@keyframes astSvcChip1 { 0%,2% { background: rgba(58,117,255,0.08); color: var(--sv-muted); border-color: transparent; } 6%,22% { background: var(--sv-blue); color: #fff; border-color: var(--sv-blue); } 26%,100% { background: rgba(58,117,255,0.08); color: var(--sv-muted); border-color: transparent; } }
@keyframes astSvcChip2 { 0%,26% { background: rgba(58,117,255,0.08); color: var(--sv-muted); border-color: transparent; } 30%,47% { background: var(--sv-blue); color: #fff; border-color: var(--sv-blue); } 51%,100% { background: rgba(58,117,255,0.08); color: var(--sv-muted); border-color: transparent; } }
@keyframes astSvcChip3 { 0%,51% { background: rgba(58,117,255,0.08); color: var(--sv-muted); border-color: transparent; } 55%,72% { background: var(--sv-blue); color: #fff; border-color: var(--sv-blue); } 76%,100% { background: rgba(58,117,255,0.08); color: var(--sv-muted); border-color: transparent; } }
@keyframes astSvcChip4 { 0%,76% { background: rgba(58,117,255,0.08); color: var(--sv-muted); border-color: transparent; } 80%,96% { background: var(--sv-blue); color: #fff; border-color: var(--sv-blue); } 100% { background: rgba(58,117,255,0.08); color: var(--sv-muted); border-color: transparent; } }
@keyframes astSvcVal1 { 0%,22% { opacity: 1; } 25%,97% { opacity: 0; } 100% { opacity: 1; } }
@keyframes astSvcVal2 { 0%,26% { opacity: 0; } 30%,47% { opacity: 1; } 51%,100% { opacity: 0; } }
@keyframes astSvcVal3 { 0%,51% { opacity: 0; } 55%,72% { opacity: 1; } 76%,100% { opacity: 0; } }
@keyframes astSvcVal4 { 0%,76% { opacity: 0; } 80%,96% { opacity: 1; } 100% { opacity: 0; } }
@keyframes astSvcStatus { 0%,26% { opacity: 0; } 48%,74% { opacity: 1; } 100% { opacity: 0; } }
@keyframes astSvcRobot {
  0%,6% { transform: rotate(0deg) translateY(0); }
  22% { transform: rotate(3deg) translateY(-3px); }
  50% { transform: rotate(2deg) translateY(-2px); }
  74% { transform: rotate(3deg) translateY(-3px); }
  90%,100% { transform: rotate(0deg) translateY(0); }
}
@keyframes astSvcStageSignal {
  0%,20% { opacity: 0; transform: translateX(-50%) translateY(26px) scale(.5); }
  45% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); box-shadow: 0 0 0 4px rgba(52,255,230,0.22); }
  70%,100% { opacity: 0; transform: translateX(-50%) translateY(-10px) scale(1.4); box-shadow: 0 0 0 12px rgba(52,255,230,0); }
}

/* ── catalog ── */
.ast-services-catalog { padding: 30px 0 14px; scroll-margin-top: 90px; }
/* Явные колонки вместо auto-fit: при шести услугах auto-fit давал на
   широком экране пять карточек в ряду и одну во втором. Ступени 1 → 2 → 3
   не зависят от числа карточек, поэтому каталог остаётся симметричным
   и при дальнейшем изменении состава услуг. */
.ast-services-catalog__grid {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; width: 100%;
}
@media (min-width: 700px) {
  .ast-services-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .ast-services-catalog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Малые каталоги: отдельные правила не дают одиночной карточке остаться
   с пустыми треками справа. Их приоритет выше общей сетки — так и задумано. */
.ast-services-catalog__grid[data-services-count="1"] { grid-template-columns: minmax(0, 720px); }
.ast-services-catalog__grid[data-services-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-services-catalog__grid[data-services-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-services-card {
  background: #fff; border: 1px solid var(--sv-border); border-radius: 14px;
  padding: 24px 26px; display: flex; flex-direction: column; gap: 9px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-services-card__audience {
  align-self: flex-start; font-size: .7rem; font-weight: 700; padding: 3px 11px; border-radius: 100px;
  background: rgba(52,255,230,0.12); color: var(--sv-ink); border: 1px solid rgba(52,255,230,0.32);
}
.ast-services-card h3 { font-size: 1.18rem; font-weight: 600; color: var(--sv-ink); line-height: 1.3; margin: .1rem 0 0; }
.ast-services-card__excerpt { color: var(--sv-body); font-size: .95rem; margin: 0; line-height: 1.5; }
.ast-services-card__key { font-size: .9rem; font-weight: 700; color: var(--sv-blue); margin: 0; line-height: 1.4; }
.ast-services-card__block { display: grid; gap: 5px; margin-top: 2px; }
.ast-services-card__label { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sv-muted); }
.ast-services-card__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 5px; }
.ast-services-card__list li { font-size: .9rem; color: var(--sv-body); padding-left: 1.3em; position: relative; line-height: 1.42; }
.ast-services-card__list li::before { content: "✓"; position: absolute; left: 0; color: var(--sv-blue); font-weight: 700; }
.ast-services-card .button { margin-top: auto; align-self: flex-start; }

/* ── А. how to choose ── */
.ast-services-choose { padding: 20px 0 12px; }
.ast-services-choose__grid {
  position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: sv-ch;
}
.ast-services-choose__item {
  counter-increment: sv-ch; position: relative; background: #fff; border: 1px solid var(--sv-border);
  border-radius: 14px; padding: 22px 24px 20px; box-shadow: 0 2px 14px rgba(58,117,255,0.05);
  display: grid; gap: 6px; padding-top: 72px;
}
.ast-services-choose__item::before {
  content: counter(sv-ch, decimal-leading-zero); position: absolute; top: 20px; left: 24px;
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  background: linear-gradient(135deg, var(--sv-blue), var(--sv-cyan)); color: #fff;
  font-family: var(--font-heading); font-size: .95rem; box-shadow: 0 0 0 5px rgba(58,117,255,0.1);
}
.ast-services-choose__item h3 { font-size: 1.08rem; font-weight: 600; color: var(--sv-ink); margin: 0; }
.ast-services-choose__item p { font-size: .93rem; color: var(--sv-body); margin: 0; line-height: 1.48; }

/* ── Б+В. work + combine ── */
.ast-services-work { padding: 20px 0 12px; }
.ast-services-work__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.ast-services-work__panel {
  background: #fff; border: 1px solid var(--sv-border); border-radius: 16px; padding: 24px 28px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-services-work__panel h2 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); font-family: var(--font-main); font-weight: 700; color: var(--sv-ink); margin: .1rem 0 .6rem; line-height: 1.16; }
.ast-services-work__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.ast-services-work__list li { font-size: .95rem; color: var(--sv-body); padding-left: 1.5em; position: relative; line-height: 1.42; }
.ast-services-work__list li::before { content: "✓"; position: absolute; left: 0; color: var(--sv-blue); font-weight: 700; }
.ast-services-combine {
  background: linear-gradient(120deg, rgba(58,117,255,0.06), rgba(52,255,230,0.05));
  border: 1px solid rgba(58,117,255,0.16); border-radius: 16px; padding: 24px 28px;
}
.ast-services-combine h2 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); font-family: var(--font-main); font-weight: 700; color: var(--sv-ink); margin: .1rem 0 .5rem; line-height: 1.16; }
.ast-services-combine__text { color: var(--sv-body); font-size: .93rem; margin: 0 0 .8rem; line-height: 1.5; }
.ast-services-combine__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ast-services-combine__list li { font-size: .92rem; color: var(--sv-ink); padding-left: 1.3em; position: relative; line-height: 1.4; }
.ast-services-combine__list li::before { content: "•"; position: absolute; left: 0; color: var(--sv-blue); font-weight: 700; }

/* ── Г. timeline ── */
.ast-services-tl { padding: 20px 0 12px; }
.ast-services-tl__row {
  position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: sv-tl;
}
.ast-services-tl__row::before {
  content: ""; position: absolute; top: 27px; left: 12.5%; right: 12.5%; height: 3px;
  border-radius: 999px; background: linear-gradient(90deg, var(--sv-blue), var(--sv-cyan)); opacity: 0.72;
}
.ast-services-tl__item {
  counter-increment: sv-tl; position: relative; display: grid; gap: 6px;
  justify-items: center; text-align: center; padding-top: 62px; min-width: 0;
}
.ast-services-tl__item::before {
  content: counter(sv-tl, decimal-leading-zero); position: absolute; top: 0; left: 50%;
  transform: translateX(-50%); display: grid; place-items: center; width: 54px; height: 54px;
  border-radius: 50%; background: linear-gradient(135deg, var(--sv-blue), var(--sv-cyan));
  color: #fff; font-family: var(--font-heading); font-size: 1.1rem; box-shadow: 0 0 0 6px rgba(58,117,255,0.12);
}
.ast-services-tl__item h3 { font-size: 1.02rem; font-weight: 600; color: var(--sv-ink); margin: 0; }
.ast-services-tl__item p { font-size: .9rem; color: var(--sv-body); margin: 0; max-width: 26ch; line-height: 1.45; }

/* ── Д. contact panel ── */
.ast-services-contact { padding: 16px 0 20px; }
.ast-services-contact__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  background: #fff; border: 1px solid var(--sv-border); border-radius: 16px; padding: 24px 30px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-services-contact__text h2 { font-size: clamp(1.15rem, 1.7vw, 1.4rem); font-family: var(--font-main); font-weight: 700; color: var(--sv-ink); margin: .1rem 0 .35rem; max-width: 40ch; line-height: 1.16; }
.ast-services-contact__text p { color: var(--sv-body); font-size: .93rem; margin: 0; max-width: 54ch; }
.ast-services-contact__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── dark CTA — touches footer ── */
.ast-services-cta { background: var(--sv-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-services-cta::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.ast-services-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-services-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 32ch; line-height: 1.18; }
.ast-services-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-services-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── responsive ── */
@media (max-width: 1023px) {
  .ast-services-hero__inner { grid-template-columns: 1fr; }
  .ast-services-hero__scene { height: 360px; }
  .ast-services-scene { width: min(520px, 100%); height: 360px; }
  .ast-services-stage { top: 6px; width: 246px; height: 176px; }
  .ast-services-scene__robot { height: 214px; }
  .ast-services-choose__grid { grid-template-columns: 1fr; }
  .ast-services-work__grid { grid-template-columns: 1fr; }
  .ast-services-tl__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-services-tl__row::before { display: none; }
}
@media (max-width: 767px) {
  .ast-services-hero__scene { height: 340px; }
  .ast-services-scene { width: 300px; height: 340px; }
  .ast-services-stage { top: 6px; left: 6px; right: auto; width: 182px; height: 122px; }
  .ast-services-scene__card { width: 210px; right: 0; bottom: 0; padding: 13px 14px; }
  .ast-services-scene__title { font-size: .9rem; margin-bottom: 9px; }
  .ast-services-scene__switch { gap: 6px; margin-bottom: 9px; }
  .ast-services-scene__chip { font-size: .68rem; padding: 6px 3px; }
  .ast-services-scene__robot { height: 132px; left: 0; }
  .ast-services-catalog__grid,
  .ast-services-catalog__grid[data-services-count="1"],
  .ast-services-catalog__grid[data-services-count="2"],
  .ast-services-catalog__grid[data-services-count="4"] { grid-template-columns: 1fr; }
  .ast-services-tl__row { grid-template-columns: 1fr; gap: 14px; }
  .ast-services-tl__item { justify-items: start; text-align: left; padding-top: 0; padding-left: 68px; min-height: 54px; }
  .ast-services-tl__item::before { left: 0; transform: none; top: 0; }
  .ast-services-contact__inner { padding: 18px 20px; flex-direction: column; align-items: flex-start; }
  .ast-services-cta { padding: 40px 0; margin-top: 14px; }
  .ast-services-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-services-catalog { padding: 24px 0 12px; }
}
@media (max-width: 360px) {
  .ast-services-scene { width: 264px; }
  .ast-services-stage { width: 160px; height: 112px; }
  .ast-services-scene__card { width: 178px; }
  .ast-services-scene__robot { height: 116px; }
}

/* ── reduced motion — freeze to a clear resolved state ── */
@media (prefers-reduced-motion: reduce) {
  .ast-services-obj--home, .ast-services-obj--wifi, .ast-services-obj--biz, .ast-services-obj--cam,
  .ast-services-obj .o-wave, .ast-services-stage__signal,
  .ast-services-scene__chip--1, .ast-services-scene__chip--2,
  .ast-services-scene__chip--3, .ast-services-scene__chip--4,
  .ast-services-scene__pick-value--1, .ast-services-scene__pick-value--2,
  .ast-services-scene__pick-value--3, .ast-services-scene__pick-value--4,
  .ast-services-scene__status, .ast-services-scene__robot { animation: none !important; }
  /* one fully assembled phase: домашний интернет */
  .ast-services-obj--home { opacity: 1 !important; transform: scale(1) !important; }
  .ast-services-obj--wifi, .ast-services-obj--biz, .ast-services-obj--cam { opacity: 0 !important; }
  .ast-services-obj .o-wave { opacity: .7 !important; }
  .ast-services-stage__signal { opacity: 0 !important; }
  .ast-services-scene__chip--1 { background: var(--sv-blue) !important; color: #fff !important; border-color: var(--sv-blue) !important; }
  .ast-services-scene__pick-value--1 { opacity: 1 !important; }
  .ast-services-scene__pick-value--2, .ast-services-scene__pick-value--3, .ast-services-scene__pick-value--4 { opacity: 0 !important; }
  .ast-services-scene__status { opacity: 1 !important; }
}
/* /AST inner services reference */

/* AST inner tariffs reference */
/* root wrapper is .ast-tariffs-page; namespace .ast-tariffs-* (no legacy collision with .ast-tariff-preview). */
.ast-tariffs-page {
  --tf-dark: #050e28;
  --tf-blue: #3a75ff;
  --tf-cyan: #34ffe6;
  --tf-ink: #172a4d;
  --tf-muted: #4a5f85;
  --tf-body: #3f5478;
  --tf-gray: #706f6f;
  --tf-border: rgba(58,117,255,0.16);
  position: relative;
  overflow-x: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-tariffs-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-tariffs-page) { padding-bottom: 0; }
.site-main:has(.ast-tariffs-page) + .site-footer,
.site-main:has(.ast-tariffs-page) + footer { margin-top: 0; }
.ast-tariffs-catalog,
.ast-tariffs-choose,
.ast-tariffs-panels,
.ast-tariffs-tl,
.ast-tariffs-note,
.ast-tariffs-contact { background: transparent; }

.ast-tariffs-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--tf-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-tariffs-kicker--cyan { color: var(--tf-cyan); }
.ast-tariffs-head { margin-bottom: 14px; }
.ast-tariffs-head h2 {
  font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700;
  letter-spacing: normal; line-height: 1.16; color: var(--tf-ink); margin: .1rem 0 .35rem;
}
.ast-tariffs-head p { color: var(--tf-muted); max-width: 62ch; margin: 0; font-size: .98rem; }

/* ── hero ── */
.ast-tariffs-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--tf-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-tariffs-hero::before {
  content: ""; position: absolute; inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14; pointer-events: none;
}
.ast-tariffs-hero__inner {
  position: relative; display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(430px, 1.1fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center;
  min-height: 440px; padding: clamp(38px, 4.6vw, 56px) 0;
}
.ast-tariffs-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-tariffs-hero h1 {
  margin: 0; color: #fff; font-size: clamp(2.3rem, 3.6vw, 3.4rem);
  font-family: var(--font-heading); font-weight: 400; line-height: 1.05; letter-spacing: 0;
}
.ast-tariffs-hero__lead {
  max-width: 46ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.08rem; line-height: 1.55;
}
.ast-tariffs-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── hero micro-scene (демо): задача → скорость → тариф подобран ── */
.ast-tariffs-hero__scene { position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-tariffs-scene { position: relative; width: min(560px, 100%); height: 400px; }
.ast-tariffs-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }
.ast-tariffs-stage {
  position: absolute; right: 14px; top: 4px; width: 254px; height: 176px; z-index: 2;
  border-radius: 18px; overflow: hidden;
  background: linear-gradient(160deg, rgba(58,117,255,0.16), rgba(5,14,40,0.08));
  border: 1px solid rgba(120,170,255,0.24); box-shadow: 0 22px 48px rgba(5,14,40,0.42);
}
.ast-tariffs-obj { position: absolute; inset: 12px; width: calc(100% - 24px); height: calc(100% - 24px); opacity: 0; transform-origin: center; transform: scale(.9); }
.ast-tariffs-obj--1 { animation: astTfObj1 7.5s ease-in-out infinite; }
.ast-tariffs-obj--2 { animation: astTfObj2 7.5s ease-in-out infinite; }
.ast-tariffs-obj--3 { animation: astTfObj3 7.5s ease-in-out infinite; }
.ast-tariffs-obj .o-fill { fill: rgba(58,117,255,0.22); stroke: #d5e6ff; stroke-width: 2.4; stroke-linejoin: round; }
.ast-tariffs-obj .o-acc { fill: none; stroke: var(--tf-cyan); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.ast-tariffs-obj .o-base { fill: rgba(58,117,255,0.22); stroke: #d5e6ff; stroke-width: 2.2; stroke-linejoin: round; }
.ast-tariffs-obj .o-dot { fill: var(--tf-cyan); filter: drop-shadow(0 0 5px rgba(52,255,230,0.85)); }
.ast-tariffs-obj .o-wave { fill: none; stroke: var(--tf-cyan); stroke-width: 2.6; stroke-linecap: round; opacity: .5; animation: astTfWave 2.5s ease-in-out infinite; }
.ast-tariffs-obj .o-wave--2 { animation-delay: .2s; }
.ast-tariffs-stage__signal {
  position: absolute; left: 50%; bottom: 8px; width: 14px; height: 14px; border-radius: 50%;
  background: rgba(52,255,230,0.65); opacity: 0; z-index: 6; transform: translateX(-50%);
  animation: astTfSignal 2.5s ease-in-out infinite;
}
.ast-tariffs-scene__card {
  position: absolute; right: 6px; bottom: 6px; width: 268px;
  background: #fff; border-radius: 16px; padding: 16px 18px; z-index: 4;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.18);
}
.ast-tariffs-scene__card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ast-tariffs-scene__title { font-size: 1rem; font-weight: 700; color: var(--tf-ink); }
/* speed line: fixed geometry across all three phases; digits reduced ~11% (2rem → 1.78rem);
   number + unit share a bottom baseline; 14px gap to the task label below (no negative margins). */
.ast-tariffs-scene__speed { display: flex; align-items: flex-end; gap: 9px; height: 1.78rem; margin: 2px 0 14px; }
.ast-tariffs-scene__num { position: relative; display: inline-block; height: 1.78rem; width: 3.3em; flex-shrink: 0; }
.ast-tariffs-scene__num-v {
  position: absolute; left: 0; bottom: 0; font-style: normal; font-family: var(--font-main);
  font-size: 1.78rem; font-weight: 800; line-height: 1; color: var(--tf-ink); opacity: 0;
}
.ast-tariffs-scene__num-v--1 { opacity: 1; animation: astTfNum1 7.5s ease-in-out infinite; }
.ast-tariffs-scene__num-v--2 { animation: astTfNum2 7.5s ease-in-out infinite; }
.ast-tariffs-scene__num-v--3 { animation: astTfNum3 7.5s ease-in-out infinite; }
.ast-tariffs-scene__unit { font-size: .82rem; font-weight: 700; line-height: 1; color: var(--tf-muted); padding-bottom: 0.15rem; }
.ast-tariffs-scene__task { position: relative; height: 1.15em; margin-bottom: 10px; }
.ast-tariffs-scene__task-v {
  position: absolute; left: 0; top: 0; font-style: normal; white-space: nowrap;
  font-size: .84rem; font-weight: 600; color: var(--tf-body); opacity: 0;
}
.ast-tariffs-scene__task-v--1 { opacity: 1; animation: astTfNum1 7.5s ease-in-out infinite; }
.ast-tariffs-scene__task-v--2 { animation: astTfNum2 7.5s ease-in-out infinite; }
.ast-tariffs-scene__task-v--3 { animation: astTfNum3 7.5s ease-in-out infinite; }
.ast-tariffs-scene__status {
  padding: 9px 12px; border-radius: 10px; text-align: center; font-size: .82rem; font-weight: 700;
  color: var(--tf-ink); background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.4);
  opacity: 0; animation: astTfStatus 2.5s ease-in-out infinite;
}
.ast-tariffs-scene__robot {
  position: absolute; left: 0; bottom: 0; height: 250px; width: auto; object-fit: contain;
  z-index: 3; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.34));
  transform-origin: bottom center; animation: astTfRobot 7.5s ease-in-out infinite;
}
@keyframes astTfObj1 { 0% { opacity: 0; transform: scale(.9); } 4%,30% { opacity: 1; transform: scale(1); } 34%,100% { opacity: 0; transform: scale(.94); } }
@keyframes astTfObj2 { 0%,34% { opacity: 0; transform: scale(.9); } 38%,63% { opacity: 1; transform: scale(1); } 67%,100% { opacity: 0; transform: scale(.94); } }
@keyframes astTfObj3 { 0%,67% { opacity: 0; transform: scale(.9); } 71%,96% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(.94); } }
@keyframes astTfNum1 { 0%,30% { opacity: 1; } 33%,97% { opacity: 0; } 100% { opacity: 1; } }
@keyframes astTfNum2 { 0%,34% { opacity: 0; } 38%,63% { opacity: 1; } 67%,100% { opacity: 0; } }
@keyframes astTfNum3 { 0%,67% { opacity: 0; } 71%,96% { opacity: 1; } 100% { opacity: 0; } }
@keyframes astTfWave { 0%,100% { opacity: .35; } 50% { opacity: .9; } }
@keyframes astTfStatus { 0%,30% { opacity: 0; } 55%,86% { opacity: 1; } 100% { opacity: 0; } }
@keyframes astTfSignal {
  0%,22% { opacity: 0; transform: translateX(-50%) translateY(24px) scale(.5); }
  46% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); box-shadow: 0 0 0 4px rgba(52,255,230,0.22); }
  70%,100% { opacity: 0; transform: translateX(-50%) translateY(-10px) scale(1.4); box-shadow: 0 0 0 12px rgba(52,255,230,0); }
}
@keyframes astTfRobot {
  0%,6% { transform: rotate(0deg) translateY(0); }
  22% { transform: rotate(2.5deg) translateY(-3px); }
  50% { transform: rotate(1deg) translateY(-2px); }
  75% { transform: rotate(-2deg) translateY(-3px); }
  90%,100% { transform: rotate(0deg) translateY(0); }
}

/* ── catalog ── */
.ast-tariffs-catalog { padding: 30px 0 14px; scroll-margin-top: 90px; }
.ast-tariffs-catalog__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; width: 100%;
}
.ast-tariffs-catalog__grid[data-tariffs-count="1"] { grid-template-columns: minmax(0, 680px); }
.ast-tariffs-catalog__grid[data-tariffs-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-tariffs-catalog__grid[data-tariffs-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-tariffs-card {
  background: #fff; border: 1px solid var(--tf-border); border-radius: 14px;
  padding: 24px 26px; display: flex; flex-direction: column; gap: 10px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-tariffs-card--popular { border-color: rgba(58,117,255,0.4); box-shadow: 0 6px 26px rgba(58,117,255,0.12); }
.ast-tariffs-card__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.ast-tariffs-card__eyebrow { font-size: 1.16rem; font-weight: 700; color: var(--tf-ink); line-height: 1.25; }
.ast-tariffs-card__badge {
  font-size: .68rem; font-weight: 700; letter-spacing: .04em; padding: 3px 10px; border-radius: 100px;
  background: linear-gradient(120deg, var(--tf-blue), var(--tf-cyan)); color: #fff; white-space: nowrap;
}
.ast-tariffs-card__summary { color: var(--tf-body); font-size: .95rem; margin: 0; line-height: 1.5; }
.ast-tariffs-card__spec {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 2px 0;
  padding: 10px 12px; border-radius: 10px; background: rgba(58,117,255,0.06); border: 1px solid rgba(58,117,255,0.14);
}
.ast-tariffs-card__spec dt { font-size: .78rem; font-weight: 700; color: var(--tf-muted); margin: 0; }
.ast-tariffs-card__spec dd { font-size: .9rem; font-weight: 700; color: var(--tf-blue); margin: 0; text-align: right; }
.ast-tariffs-card__audience { font-size: .88rem; color: var(--tf-muted); margin: 0; line-height: 1.45; }
.ast-tariffs-card__features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.ast-tariffs-card__features li { font-size: .9rem; color: var(--tf-body); padding-left: 1.3em; position: relative; line-height: 1.42; }
.ast-tariffs-card__features li::before { content: "✓"; position: absolute; left: 0; color: var(--tf-blue); font-weight: 700; }
.ast-tariffs-card .button { margin-top: auto; align-self: flex-start; }

/* ── А. how to choose speed ── */
.ast-tariffs-choose { padding: 20px 0 12px; }
.ast-tariffs-choose__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ast-tariffs-choose__item {
  background: #fff; border: 1px solid var(--tf-border); border-radius: 14px; padding: 20px 22px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05); display: flex; flex-direction: column; gap: 7px;
}
.ast-tariffs-choose__mark { width: 32px; height: 32px; border-radius: 9px; margin-bottom: 2px; background: linear-gradient(135deg, var(--tf-blue), var(--tf-cyan)); box-shadow: 0 0 0 5px rgba(58,117,255,0.1); }
.ast-tariffs-choose__item h3 { font-size: 1.04rem; font-weight: 700; color: var(--tf-ink); margin: 0; line-height: 1.25; }
.ast-tariffs-choose__item p { font-size: .92rem; color: var(--tf-body); margin: 0; line-height: 1.46; }

/* ── Б+В. panels ── */
.ast-tariffs-panels { padding: 20px 0 12px; }
.ast-tariffs-panels__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.ast-tariffs-panel {
  background: #fff; border: 1px solid var(--tf-border); border-radius: 16px; padding: 24px 28px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-tariffs-panel h2 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); font-family: var(--font-main); font-weight: 700; color: var(--tf-ink); margin: .1rem 0 .6rem; line-height: 1.16; }
.ast-tariffs-panel__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.ast-tariffs-panel__list li { font-size: .93rem; color: var(--tf-body); padding-left: 1.4em; position: relative; line-height: 1.42; }
.ast-tariffs-panel__list--dot li::before { content: "•"; position: absolute; left: 0; color: var(--tf-blue); font-weight: 700; }
.ast-tariffs-panel__list--check li::before { content: "✓"; position: absolute; left: 0; color: var(--tf-blue); font-weight: 700; }

/* ── Г. timeline ── */
.ast-tariffs-tl { padding: 20px 0 12px; }
.ast-tariffs-tl__row {
  position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: tf-tl;
}
.ast-tariffs-tl__row::before {
  content: ""; position: absolute; top: 27px; left: 12.5%; right: 12.5%; height: 3px;
  border-radius: 999px; background: linear-gradient(90deg, var(--tf-blue), var(--tf-cyan)); opacity: 0.72;
}
.ast-tariffs-tl__item {
  counter-increment: tf-tl; position: relative; display: grid; gap: 6px;
  justify-items: center; text-align: center; padding-top: 62px; min-width: 0;
}
.ast-tariffs-tl__item::before {
  content: counter(tf-tl, decimal-leading-zero); position: absolute; top: 0; left: 50%;
  transform: translateX(-50%); display: grid; place-items: center; width: 54px; height: 54px;
  border-radius: 50%; background: linear-gradient(135deg, var(--tf-blue), var(--tf-cyan));
  color: #fff; font-family: var(--font-heading); font-size: 1.1rem; box-shadow: 0 0 0 6px rgba(58,117,255,0.12);
}
.ast-tariffs-tl__item h3 { font-size: 1.02rem; font-weight: 600; color: var(--tf-ink); margin: 0; }
.ast-tariffs-tl__item p { font-size: .9rem; color: var(--tf-body); margin: 0; max-width: 26ch; line-height: 1.45; }

/* ── Д. note panel ── */
.ast-tariffs-note { padding: 20px 0 12px; }
.ast-tariffs-note__inner {
  display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.9fr); gap: 26px; align-items: start;
  background: linear-gradient(120deg, rgba(58,117,255,0.06), rgba(52,255,230,0.05));
  border: 1px solid rgba(58,117,255,0.16); border-radius: 16px; padding: 24px 28px;
}
.ast-tariffs-note__head h2 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); font-family: var(--font-main); font-weight: 700; color: var(--tf-ink); margin: .1rem 0 0; line-height: 1.16; }
.ast-tariffs-note__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ast-tariffs-note__list h3 { font-size: 1rem; font-weight: 700; color: var(--tf-ink); margin: 0 0 .2rem; }
.ast-tariffs-note__list p { font-size: .9rem; color: var(--tf-body); margin: 0; line-height: 1.48; }

/* ── Е. contact panel ── */
.ast-tariffs-contact { padding: 16px 0 20px; }
.ast-tariffs-contact__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  background: #fff; border: 1px solid var(--tf-border); border-radius: 16px; padding: 24px 30px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-tariffs-contact__text h2 { font-size: clamp(1.15rem, 1.7vw, 1.4rem); font-family: var(--font-main); font-weight: 700; color: var(--tf-ink); margin: .1rem 0 .35rem; max-width: 40ch; line-height: 1.16; }
.ast-tariffs-contact__text p { color: var(--tf-body); font-size: .93rem; margin: 0; max-width: 54ch; }
.ast-tariffs-contact__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── Ж. dark CTA — touches footer ── */
.ast-tariffs-cta { background: var(--tf-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-tariffs-cta::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.ast-tariffs-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-tariffs-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 32ch; line-height: 1.18; }
.ast-tariffs-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 50ch; }
.ast-tariffs-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── responsive ── */
@media (max-width: 1023px) {
  .ast-tariffs-hero__inner { grid-template-columns: 1fr; }
  .ast-tariffs-hero__scene { height: 360px; }
  .ast-tariffs-scene { width: min(520px, 100%); height: 360px; }
  .ast-tariffs-scene__robot { height: 214px; }
  .ast-tariffs-choose__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-tariffs-panels__grid { grid-template-columns: 1fr; }
  .ast-tariffs-note__inner { grid-template-columns: 1fr; gap: 16px; }
  .ast-tariffs-note__list { grid-template-columns: 1fr; }
  .ast-tariffs-tl__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-tariffs-tl__row::before { display: none; }
}
@media (max-width: 767px) {
  .ast-tariffs-hero__scene { height: 340px; }
  .ast-tariffs-scene { width: 300px; height: 340px; }
  .ast-tariffs-stage { top: 4px; left: 6px; right: auto; width: 182px; height: 122px; }
  .ast-tariffs-scene__card { width: 210px; right: 0; bottom: 0; padding: 13px 14px; }
  .ast-tariffs-scene__title { font-size: .9rem; }
  .ast-tariffs-scene__speed { height: 1.5rem; }
  .ast-tariffs-scene__num { height: 1.5rem; }
  .ast-tariffs-scene__num-v { font-size: 1.5rem; }
  .ast-tariffs-scene__robot { height: 132px; left: 0; }
  .ast-tariffs-catalog__grid,
  .ast-tariffs-catalog__grid[data-tariffs-count="1"],
  .ast-tariffs-catalog__grid[data-tariffs-count="2"],
  .ast-tariffs-catalog__grid[data-tariffs-count="4"] { grid-template-columns: 1fr; }
  .ast-tariffs-choose__grid { grid-template-columns: 1fr; }
  .ast-tariffs-tl__row { grid-template-columns: 1fr; gap: 14px; }
  .ast-tariffs-tl__item { justify-items: start; text-align: left; padding-top: 0; padding-left: 68px; min-height: 54px; }
  .ast-tariffs-tl__item::before { left: 0; transform: none; top: 0; }
  .ast-tariffs-contact__inner { padding: 18px 20px; flex-direction: column; align-items: flex-start; }
  .ast-tariffs-cta { padding: 40px 0; margin-top: 14px; }
  .ast-tariffs-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-tariffs-catalog { padding: 24px 0 12px; }
}
@media (max-width: 360px) {
  .ast-tariffs-scene { width: 264px; }
  .ast-tariffs-stage { width: 160px; height: 108px; }
  .ast-tariffs-scene__card { width: 186px; }
  .ast-tariffs-scene__robot { height: 116px; }
}

/* ── reduced motion — freeze to a clear resolved state ── */
@media (prefers-reduced-motion: reduce) {
  .ast-tariffs-obj--1, .ast-tariffs-obj--2, .ast-tariffs-obj--3,
  .ast-tariffs-obj .o-wave, .ast-tariffs-stage__signal,
  .ast-tariffs-scene__num-v--1, .ast-tariffs-scene__num-v--2, .ast-tariffs-scene__num-v--3,
  .ast-tariffs-scene__task-v--1, .ast-tariffs-scene__task-v--2, .ast-tariffs-scene__task-v--3,
  .ast-tariffs-scene__status, .ast-tariffs-scene__robot { animation: none !important; }
  /* one fully assembled phase */
  .ast-tariffs-obj--1 { opacity: 1 !important; transform: scale(1) !important; }
  .ast-tariffs-obj--2, .ast-tariffs-obj--3 { opacity: 0 !important; }
  .ast-tariffs-obj .o-wave { opacity: .7 !important; }
  .ast-tariffs-stage__signal { opacity: 0 !important; }
  .ast-tariffs-scene__num-v--1, .ast-tariffs-scene__task-v--1 { opacity: 1 !important; }
  .ast-tariffs-scene__num-v--2, .ast-tariffs-scene__num-v--3,
  .ast-tariffs-scene__task-v--2, .ast-tariffs-scene__task-v--3 { opacity: 0 !important; }
  .ast-tariffs-scene__status { opacity: 1 !important; }
}
/* /AST inner tariffs reference */

/* AST inner contacts reference */
/* root wrapper .ast-contacts-page; namespace .ast-contacts-* */
.ast-contacts-page {
  --ct-dark: #050e28;
  --ct-blue: #3a75ff;
  --ct-cyan: #34ffe6;
  --ct-ink: #172a4d;
  --ct-muted: #4a5f85;
  --ct-body: #3f5478;
  --ct-border: rgba(58,117,255,0.16);
  position: relative; overflow-x: hidden;
  background:
    linear-gradient(rgba(255,255,255,0.88), rgba(244,250,255,0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-contacts-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-contacts-page) { padding-bottom: 0; }
.site-main:has(.ast-contacts-page) + .site-footer,
.site-main:has(.ast-contacts-page) + footer { margin-top: 0; }
.ast-contacts-methods, .ast-contacts-office, .ast-contacts-subs { background: transparent; }
.ast-contacts-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--ct-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-contacts-kicker--cyan { color: var(--ct-cyan); }
.ast-contacts-chip {
  display: inline-block; font-size: .72rem; font-weight: 600; padding: .26rem .74rem;
  border-radius: 100px; background: rgba(52,255,230,0.12);
  border: 1px solid rgba(52,255,230,0.3); color: var(--ct-cyan);
}
.ast-contacts-head { margin-bottom: 14px; }
.ast-contacts-head h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700; letter-spacing: normal; line-height: 1.16; color: var(--ct-ink); margin: .1rem 0 .35rem; }
.ast-contacts-head p { color: var(--ct-muted); max-width: 60ch; margin: 0; font-size: .98rem; }

/* hero */
.ast-contacts-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--ct-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-contacts-hero::before {
  content: ""; position: absolute; inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14; pointer-events: none;
}
.ast-contacts-hero__inner {
  position: relative; display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(430px, 1.14fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center;
  min-height: 430px; padding: clamp(40px, 5vw, 60px) 0;
}
.ast-contacts-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-contacts-hero h1 {
  margin: 0; color: #fff; font-size: clamp(2.4rem, 3.8vw, 3.7rem);
  font-family: var(--font-heading); font-weight: 400; line-height: 1.04; letter-spacing: 0;
}
.ast-contacts-hero__lead { max-width: 44ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.1rem; line-height: 1.55; }
.ast-contacts-hero__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ast-contacts-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* channels micro-scene */
.ast-contacts-hero__scene { position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-contacts-scene { position: relative; width: min(560px, 100%); height: 400px; }
.ast-contacts-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }
.ast-contacts-scene__card {
  position: absolute; right: 12px; top: 56px; width: 300px; z-index: 4;
  background: #fff; border-radius: 18px; padding: 18px 20px;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.16);
  animation: astCtCard 7s ease-in-out infinite;
}
.ast-contacts-scene__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.ast-contacts-scene__title { font-size: 1.04rem; font-weight: 700; color: var(--ct-ink); }
.ast-contacts-scene__status { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 700; color: #14776a; }
.ast-contacts-scene__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ct-cyan); box-shadow: 0 0 0 0 rgba(52,255,230,0.5); animation: astCtDot 2.2s ease-in-out infinite; }
.ast-contacts-scene__list { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ast-contacts-scene__row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: rgba(58,117,255,0.05); border: 1px solid rgba(58,117,255,0.12); }
.ast-contacts-scene__row--1 { animation: astCtRow1 7s ease-in-out infinite; }
.ast-contacts-scene__row--2 { animation: astCtRow2 7s ease-in-out infinite; }
.ast-contacts-scene__row--3 { animation: astCtRow3 7s ease-in-out infinite; }
.ast-contacts-scene__ico { width: 22px; height: 22px; flex-shrink: 0; color: var(--ct-blue); }
.ast-contacts-scene__ico svg { width: 100%; height: 100%; display: block; }
.ast-contacts-scene__ico .i-stroke { stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.ast-contacts-scene__label { flex: 1; font-size: .9rem; font-weight: 600; color: var(--ct-ink); }
.ast-contacts-scene__cta {
  padding: 10px 14px; border-radius: 10px; background: var(--ct-blue); color: #fff;
  font-size: .82rem; font-weight: 700; text-align: center;
  box-shadow: 0 6px 16px rgba(58,117,255,0.28); animation: astCtCta 7s ease-in-out infinite;
}
.ast-contacts-scene__spark {
  position: absolute; left: 150px; top: 200px; width: 12px; height: 12px; border-radius: 50%;
  background: var(--ct-cyan); box-shadow: 0 0 12px 3px rgba(52,255,230,0.7); opacity: 0; z-index: 5;
  animation: astCtSpark 7s ease-in-out infinite;
}
.ast-contacts-scene__robot {
  position: absolute; left: 6px; bottom: 4px; height: 262px; width: auto; object-fit: contain;
  z-index: 4; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.32));
  transform-origin: bottom center; animation: astCtRobot 7s ease-in-out infinite;
}
@keyframes astCtCard { 0% { transform: translateY(6px) scale(0.99); } 8%,92% { transform: translateY(0) scale(1); } 100% { transform: translateY(6px) scale(0.99); } }
@keyframes astCtDot { 0%,100% { box-shadow: 0 0 0 0 rgba(52,255,230,0.5); } 50% { box-shadow: 0 0 0 6px rgba(52,255,230,0); } }
@keyframes astCtRow1 { 0%,4% { background: rgba(58,117,255,0.05); border-color: rgba(58,117,255,0.12); } 10%,28% { background: rgba(58,117,255,0.12); border-color: rgba(58,117,255,0.4); } 34%,100% { background: rgba(58,117,255,0.05); border-color: rgba(58,117,255,0.12); } }
@keyframes astCtRow2 { 0%,34% { background: rgba(58,117,255,0.05); border-color: rgba(58,117,255,0.12); } 40%,58% { background: rgba(58,117,255,0.12); border-color: rgba(58,117,255,0.4); } 64%,100% { background: rgba(58,117,255,0.05); border-color: rgba(58,117,255,0.12); } }
@keyframes astCtRow3 { 0%,64% { background: rgba(58,117,255,0.05); border-color: rgba(58,117,255,0.12); } 70%,88% { background: rgba(58,117,255,0.12); border-color: rgba(58,117,255,0.4); } 94%,100% { background: rgba(58,117,255,0.05); border-color: rgba(58,117,255,0.12); } }
@keyframes astCtCta {
  0%,74% { box-shadow: 0 6px 16px rgba(58,117,255,0.28); transform: scale(1); }
  82%,90% { box-shadow: 0 10px 26px rgba(58,117,255,0.6); transform: scale(1.03); }
  96%,100% { box-shadow: 0 6px 16px rgba(58,117,255,0.28); transform: scale(1); }
}
@keyframes astCtSpark {
  0% { opacity: 0; left: 120px; top: 250px; }
  6% { opacity: 1; left: 120px; top: 250px; }
  14% { opacity: 1; left: 236px; top: 150px; }
  20%,100% { opacity: 0; left: 236px; top: 150px; }
}
@keyframes astCtRobot {
  0%,6% { transform: rotate(0deg) translateY(0); }
  16% { transform: rotate(2.5deg) translateY(-3px); }
  46% { transform: rotate(1deg) translateY(-2px); }
  74% { transform: rotate(-2deg) translateY(-3px); }
  90%,100% { transform: rotate(0deg) translateY(0); }
}

/* ways to reach us */
.ast-contacts-methods { padding: 30px 0 12px; }
.ast-contacts-methods__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ast-contacts-method {
  background: #fff; border: 1px solid var(--ct-border); border-radius: 14px; padding: 22px 24px;
  display: flex; flex-direction: column; gap: 8px; box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-contacts-method__kicker { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ct-muted); margin: 0; }
.ast-contacts-method h3 { font-size: 1.16rem; font-weight: 700; color: var(--ct-ink); margin: 0; line-height: 1.25; }
.ast-contacts-method__lines { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ast-contacts-method__lines a { font-size: 1.02rem; font-weight: 600; color: var(--ct-blue); text-decoration: none; }
.ast-contacts-method__lines a:hover { text-decoration: underline; }
.ast-contacts-method__note { font-size: .9rem; color: var(--ct-body); margin: auto 0 0; line-height: 1.45; }

/* office + address */
.ast-contacts-office { padding: 16px 0 12px; }
.ast-contacts-office__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.ast-contacts-panel { background: #fff; border: 1px solid var(--ct-border); border-radius: 16px; padding: 24px 26px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-contacts-panel h2 { font-size: clamp(1.2rem, 1.8vw, 1.45rem); font-family: var(--font-main); font-weight: 700; color: var(--ct-ink); margin: .1rem 0 .6rem; line-height: 1.16; }
.ast-contacts-hours { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ast-contacts-hours li { display: flex; justify-content: space-between; gap: 14px; padding-bottom: 8px; border-bottom: 1px solid rgba(58,117,255,0.1); }
.ast-contacts-hours li:last-child { border-bottom: 0; padding-bottom: 0; }
.ast-contacts-hours__label { font-size: .93rem; font-weight: 600; color: var(--ct-ink); }
.ast-contacts-hours__value { font-size: .9rem; color: var(--ct-muted); text-align: right; }
.ast-contacts-panel__lead { font-size: 1rem; color: var(--ct-ink); margin: 0 0 .5rem; line-height: 1.5; }
.ast-contacts-panel__sub { font-size: .92rem; color: var(--ct-body); margin: 0 0 1rem; line-height: 1.5; }
.ast-contacts-panel__actions { display: flex; gap: .6rem; flex-wrap: wrap; }

/* subscriber quick links */
.ast-contacts-subs { padding: 16px 0 12px; }
.ast-contacts-subs__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ast-contacts-link {
  display: flex; flex-direction: column; gap: 6px; text-decoration: none;
  background: #fff; border: 1px solid var(--ct-border); border-radius: 14px; padding: 18px 20px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ast-contacts-link:hover { transform: translateY(-2px); border-color: rgba(58,117,255,0.34); box-shadow: 0 8px 26px rgba(58,117,255,0.12); }
.ast-contacts-link strong { font-size: 1.02rem; color: var(--ct-ink); }
.ast-contacts-link span { font-size: .88rem; color: var(--ct-body); line-height: 1.42; }

/* dark CTA */
.ast-contacts-cta { background: var(--ct-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-contacts-cta::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.ast-contacts-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-contacts-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 34ch; line-height: 1.18; }
.ast-contacts-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-contacts-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* responsive */
@media (max-width: 1023px) {
  .ast-contacts-hero__inner { grid-template-columns: 1fr; }
  .ast-contacts-hero__scene { height: 340px; }
  .ast-contacts-scene { width: min(520px, 100%); height: 340px; }
  .ast-contacts-scene__robot { height: 226px; }
  .ast-contacts-methods__grid { grid-template-columns: 1fr; }
  .ast-contacts-office__grid { grid-template-columns: 1fr; }
  .ast-contacts-subs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ast-contacts-methods { padding: 24px 0 10px; }
  .ast-contacts-hero__scene { height: 300px; }
  .ast-contacts-scene { width: 320px; height: 300px; }
  .ast-contacts-scene__card { width: 244px; right: 0; top: 34px; padding: 15px 16px; }
  .ast-contacts-scene__robot { height: 178px; left: 0; }
  .ast-contacts-scene__spark { left: 104px; }
  .ast-contacts-subs__grid { grid-template-columns: 1fr; }
  .ast-contacts-cta { padding: 40px 0; margin-top: 14px; }
  .ast-contacts-cta__inner { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .ast-contacts-scene__card, .ast-contacts-scene__cta, .ast-contacts-scene__robot,
  .ast-contacts-scene__spark, .ast-contacts-scene__dot,
  .ast-contacts-scene__row--1, .ast-contacts-scene__row--2, .ast-contacts-scene__row--3 { animation: none !important; }
  .ast-contacts-scene__spark { opacity: 0 !important; }
  .ast-contacts-scene__row--1 { background: rgba(58,117,255,0.12) !important; border-color: rgba(58,117,255,0.4) !important; }
}
/* /AST inner contacts reference */

/* AST inner about reference */
/* root wrapper .ast-about-page; namespace .ast-about-*; brand-profile scene, no robot */
.ast-about-page {
  --ab-dark: #050e28;
  --ab-blue: #3a75ff;
  --ab-cyan: #34ffe6;
  --ab-ink: #172a4d;
  --ab-muted: #4a5f85;
  --ab-body: #3f5478;
  --ab-border: rgba(58,117,255,0.16);
  position: relative; overflow-x: hidden;
  background:
    linear-gradient(rgba(255,255,255,0.88), rgba(244,250,255,0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-about-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-about-page) { padding-bottom: 0; }
.site-main:has(.ast-about-page) + .site-footer,
.site-main:has(.ast-about-page) + footer { margin-top: 0; }
.ast-about-intro, .ast-about-services, .ast-about-audiences, .ast-about-geo, .ast-about-principles, .ast-about-links { background: transparent; }
.ast-about-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--ab-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-about-kicker--cyan { color: var(--ab-cyan); }
.ast-about-chip {
  display: inline-block; font-size: .72rem; font-weight: 600; padding: .26rem .74rem;
  border-radius: 100px; background: rgba(52,255,230,0.12);
  border: 1px solid rgba(52,255,230,0.3); color: var(--ab-cyan);
}
.ast-about-head { margin-bottom: 14px; }
.ast-about-head h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700; letter-spacing: normal; line-height: 1.16; color: var(--ab-ink); margin: .1rem 0 .35rem; }
.ast-about-head p { color: var(--ab-muted); max-width: 60ch; margin: 0; font-size: .98rem; }

/* hero */
.ast-about-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--ab-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-about-hero::before {
  content: ""; position: absolute; inset: 0;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
  opacity: 0.14; pointer-events: none;
}
.ast-about-hero__inner {
  position: relative; display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center;
  min-height: 430px; padding: clamp(40px, 5vw, 60px) 0;
}
.ast-about-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-about-hero h1 {
  margin: 0; color: #fff; font-size: clamp(2.3rem, 3.7vw, 3.6rem);
  font-family: var(--font-heading); font-weight: 400; line-height: 1.04; letter-spacing: 0;
}
.ast-about-hero__lead { max-width: 46ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.08rem; line-height: 1.55; }
.ast-about-hero__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ast-about-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* brand-profile micro-scene (no robot) */
.ast-about-hero__scene { position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-about-scene { position: relative; width: min(520px, 100%); height: 400px; }
.ast-about-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }
.ast-about-scene__card {
  position: absolute; inset: 40px 8px 40px auto; right: 8px; width: min(360px, 100%);
  background: #fff; border-radius: 20px; padding: 24px 26px; z-index: 3;
  display: flex; flex-direction: column; gap: 14px;
  box-shadow: 0 28px 64px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.16);
  animation: astAbCard 7s ease-in-out infinite;
}
.ast-about-scene__brand { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid rgba(58,117,255,0.12); }
.ast-about-scene__logo { height: 34px; width: auto; filter: none; }
.ast-about-scene__geo { font-size: .68rem; font-weight: 700; color: var(--ab-blue); background: rgba(58,117,255,0.08); border: 1px solid rgba(58,117,255,0.2); border-radius: 100px; padding: 4px 10px; opacity: 0; animation: astAbGeo 7s ease-in-out infinite; }
.ast-about-scene__dirs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ast-about-scene__dir { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: rgba(58,117,255,0.05); border: 1px solid rgba(58,117,255,0.12); opacity: 0; transform: translateX(-8px); }
.ast-about-scene__dir--1 { animation: astAbDir1 7s ease-in-out infinite; }
.ast-about-scene__dir--2 { animation: astAbDir2 7s ease-in-out infinite; }
.ast-about-scene__dir--3 { animation: astAbDir3 7s ease-in-out infinite; }
.ast-about-scene__ico { width: 24px; height: 24px; flex-shrink: 0; color: var(--ab-blue); }
.ast-about-scene__ico svg { width: 100%; height: 100%; display: block; }
.ast-about-scene__ico .i-stroke { stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.ast-about-scene__ico .i-fill { fill: currentColor; }
.ast-about-scene__label { font-size: .95rem; font-weight: 600; color: var(--ab-ink); }
.ast-about-scene__status {
  margin-top: 2px; padding: 11px 14px; border-radius: 12px; text-align: center;
  font-size: .9rem; font-weight: 700; color: var(--ab-ink);
  background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.4);
  opacity: 0; transform: translateY(6px); animation: astAbStatus 7s ease-in-out infinite;
}
@keyframes astAbCard { 0% { transform: translateY(8px) scale(0.98); opacity: 0; } 8%,94% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(8px) scale(0.98); opacity: 0; } }
@keyframes astAbDir1 { 0%,10% { opacity: 0; transform: translateX(-8px); } 18%,94% { opacity: 1; transform: translateX(0); } 100% { opacity: 0; } }
@keyframes astAbDir2 { 0%,22% { opacity: 0; transform: translateX(-8px); } 30%,94% { opacity: 1; transform: translateX(0); } 100% { opacity: 0; } }
@keyframes astAbDir3 { 0%,34% { opacity: 0; transform: translateX(-8px); } 42%,94% { opacity: 1; transform: translateX(0); } 100% { opacity: 0; } }
@keyframes astAbGeo { 0%,50% { opacity: 0; } 58%,94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes astAbStatus { 0%,62% { opacity: 0; transform: translateY(6px); } 70%,94% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(6px); } }

/* who we are */
.ast-about-intro { padding: 30px 0 12px; }
.ast-about-intro__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 26px; align-items: start; }
.ast-about-intro__text h2 { font-size: clamp(1.5rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: var(--ab-ink); margin: .1rem 0 .5rem; line-height: 1.16; }
.ast-about-intro__text p { color: var(--ab-body); font-size: 1rem; margin: 0; line-height: 1.6; max-width: 52ch; }
.ast-about-intro__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ast-about-intro__facts li { background: #fff; border: 1px solid var(--ab-border); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 3px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-about-intro__facts strong { font-size: .98rem; color: var(--ab-ink); }
.ast-about-intro__facts span { font-size: .9rem; color: var(--ab-body); line-height: 1.45; }

/* what we do */
.ast-about-services { padding: 18px 0 12px; }
.ast-about-services__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ast-about-card { background: #fff; border: 1px solid var(--ab-border); border-radius: 14px; padding: 20px 22px; display: flex; flex-direction: column; gap: 8px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-about-card__mark { width: 34px; height: 34px; border-radius: 10px; background: linear-gradient(135deg, var(--ab-blue), var(--ab-cyan)); box-shadow: 0 0 0 5px rgba(58,117,255,0.1); }
.ast-about-card h3 { font-size: 1.06rem; font-weight: 700; color: var(--ab-ink); margin: 0; line-height: 1.28; }
.ast-about-card p { font-size: .92rem; color: var(--ab-body); margin: 0; line-height: 1.46; }

/* who we work for */
.ast-about-audiences { padding: 18px 0 12px; }
.ast-about-audiences__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ast-about-aud { background: #fff; border: 1px solid var(--ab-border); border-radius: 16px; padding: 22px 24px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-about-aud h3 { font-size: 1.16rem; font-weight: 700; color: var(--ab-ink); margin: 0 0 .35rem; }
.ast-about-aud p { font-size: .93rem; color: var(--ab-body); margin: 0; line-height: 1.5; }

/* geography */
.ast-about-geo { padding: 18px 0 12px; }
.ast-about-geo__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 26px; align-items: center; background: linear-gradient(120deg, rgba(58,117,255,0.06), rgba(52,255,230,0.05)); border: 1px solid rgba(58,117,255,0.16); border-radius: 18px; padding: 26px 30px; }
.ast-about-geo__text h2 { font-size: clamp(1.3rem, 2vw, 1.6rem); font-family: var(--font-main); font-weight: 700; color: var(--ab-ink); margin: .1rem 0 .5rem; line-height: 1.16; }
.ast-about-geo__text p { color: var(--ab-body); font-size: .96rem; margin: 0 0 1rem; max-width: 44ch; line-height: 1.5; }
.ast-about-geo__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; }
.ast-about-geo__list li { position: relative; padding-left: 1.5em; font-size: .95rem; color: var(--ab-ink); line-height: 1.4; }
.ast-about-geo__list li::before { content: ""; position: absolute; left: 0; top: .35em; width: 10px; height: 10px; border-radius: 50%; background: var(--ab-blue); box-shadow: 0 0 0 4px rgba(58,117,255,0.14); }

/* principles */
.ast-about-principles { padding: 18px 0 12px; }
.ast-about-principles__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ast-about-principle { background: #fff; border: 1px solid var(--ab-border); border-radius: 14px; padding: 20px 24px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-about-principle h3 { font-size: 1.08rem; font-weight: 700; color: var(--ab-ink); margin: 0 0 .3rem; line-height: 1.3; }
.ast-about-principle p { font-size: .93rem; color: var(--ab-body); margin: 0; line-height: 1.5; }

/* related links */
.ast-about-links { padding: 18px 0 12px; }
.ast-about-links__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ast-about-link { display: flex; flex-direction: column; gap: 5px; text-decoration: none; background: #fff; border: 1px solid var(--ab-border); border-radius: 14px; padding: 18px 20px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ast-about-link:hover { transform: translateY(-2px); border-color: rgba(58,117,255,0.34); box-shadow: 0 8px 26px rgba(58,117,255,0.12); }
.ast-about-link strong { font-size: 1.02rem; color: var(--ab-ink); }
.ast-about-link span { font-size: .88rem; color: var(--ab-body); line-height: 1.42; }

/* dark CTA */
.ast-about-cta { background: var(--ab-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-about-cta::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.ast-about-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-about-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 34ch; line-height: 1.18; }
.ast-about-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-about-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* responsive */
@media (max-width: 1023px) {
  .ast-about-hero__inner { grid-template-columns: 1fr; }
  .ast-about-hero__scene { height: 360px; }
  .ast-about-scene { width: min(460px, 100%); height: 360px; }
  .ast-about-scene__card { inset: 24px 0 24px 0; right: auto; width: 100%; }
  .ast-about-intro__grid { grid-template-columns: 1fr; }
  .ast-about-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-about-audiences__grid { grid-template-columns: 1fr; }
  .ast-about-geo__inner { grid-template-columns: 1fr; }
  .ast-about-principles__grid { grid-template-columns: 1fr; }
  .ast-about-links__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ast-about-intro { padding: 24px 0 10px; }
  .ast-about-hero__scene { height: 330px; }
  .ast-about-scene { width: 100%; height: 330px; }
  .ast-about-scene__card { inset: 16px 0 16px 0; padding: 18px 18px; }
  .ast-about-services__grid { grid-template-columns: 1fr; }
  .ast-about-geo__list { grid-template-columns: 1fr; }
  .ast-about-links__grid { grid-template-columns: 1fr; }
  .ast-about-cta { padding: 40px 0; margin-top: 14px; }
  .ast-about-cta__inner { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .ast-about-scene__card, .ast-about-scene__geo, .ast-about-scene__status,
  .ast-about-scene__dir--1, .ast-about-scene__dir--2, .ast-about-scene__dir--3 { animation: none !important; }
  .ast-about-scene__card { opacity: 1 !important; transform: none !important; }
  .ast-about-scene__dir--1, .ast-about-scene__dir--2, .ast-about-scene__dir--3 { opacity: 1 !important; transform: none !important; }
  .ast-about-scene__geo, .ast-about-scene__status { opacity: 1 !important; transform: none !important; }
}
/* /AST inner about reference */

/* AST news listing and detail reference */
/* wrappers .ast-news-index / .ast-news-detail; namespace .ast-news-*; NOT the old .story-card/.article-* (those stay for /obyavleniya) */
.ast-news-index, .ast-news-detail {
  --nw-dark: #050e28;
  --nw-blue: #3a75ff;
  --nw-cyan: #34ffe6;
  --nw-ink: #172a4d;
  --nw-muted: #4a5f85;
  --nw-body: #3f5478;
  --nw-border: rgba(58,117,255,0.16);
  position: relative; overflow-x: hidden;
  background:
    linear-gradient(rgba(255,255,255,0.88), rgba(244,250,255,0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-news-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-news-index) , .site-main:has(.ast-news-detail) { padding-bottom: 0; }
.site-main:has(.ast-news-index) + .site-footer, .site-main:has(.ast-news-index) + footer,
.site-main:has(.ast-news-detail) + .site-footer, .site-main:has(.ast-news-detail) + footer { margin-top: 0; }
.ast-news-feed, .ast-news-related, .ast-news-article-wrap { background: transparent; }
.ast-news-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--nw-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-news-kicker--cyan { color: var(--nw-cyan); }
.ast-news-chip {
  display: inline-block; font-size: .72rem; font-weight: 600; padding: .26rem .74rem;
  border-radius: 100px; background: rgba(52,255,230,0.12); border: 1px solid rgba(52,255,230,0.3); color: var(--nw-cyan);
}
.ast-news-head { margin-bottom: 14px; }
.ast-news-head h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700; letter-spacing: normal; line-height: 1.16; color: var(--nw-ink); margin: .1rem 0 .35rem; }
.ast-news-head p { color: var(--nw-muted); max-width: 60ch; margin: 0; font-size: .98rem; }

/* hero (list) */
.ast-news-hero { position: relative; overflow: hidden;
  background: radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%), linear-gradient(135deg, var(--nw-dark) 0%, #0a1f48 52%, #123778 100%); }
.ast-news-hero::before { content: ""; position: absolute; inset: 0; background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat; opacity: 0.14; pointer-events: none; }
.ast-news-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 0.88fr) minmax(430px, 1.12fr); gap: clamp(16px, 2.4vw, 36px); align-items: center; min-height: 420px; padding: clamp(40px, 5vw, 60px) 0; }
.ast-news-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-news-hero h1 { margin: 0; color: #fff; font-size: clamp(2.4rem, 3.8vw, 3.6rem); font-family: var(--font-heading); font-weight: 400; line-height: 1.04; letter-spacing: 0; }
.ast-news-hero__lead { max-width: 46ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.1rem; line-height: 1.55; }
.ast-news-hero__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ast-news-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* editorial-feed micro-scene */
.ast-news-hero__scene { position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-news-scene { position: relative; width: min(540px, 100%); height: 400px; }
.ast-news-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }
.ast-news-scene__deck { position: absolute; right: 30px; width: 300px; height: 190px; border-radius: 18px; background: rgba(255,255,255,0.09); border: 1px solid rgba(255,255,255,0.16); backdrop-filter: blur(3px); }
.ast-news-scene__deck--1 { top: 74px; right: 44px; transform: rotate(-3deg); animation: astNwDeck1 7s ease-in-out infinite; }
.ast-news-scene__deck--2 { top: 60px; right: 62px; transform: rotate(-6deg); opacity: .65; animation: astNwDeck2 7s ease-in-out infinite; }
.ast-news-scene__card { position: absolute; right: 16px; top: 88px; width: 300px; z-index: 4; background: #fff; border-radius: 18px; padding: 18px 20px; box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.16); animation: astNwCard 7s ease-in-out infinite; }
.ast-news-scene__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ast-news-scene__date { font-size: .74rem; font-weight: 700; color: var(--nw-blue); opacity: 0; animation: astNwDate 7s ease-in-out infinite; }
.ast-news-scene__bookmark { width: 18px; height: 18px; color: var(--nw-blue); opacity: 0; animation: astNwMark 7s ease-in-out infinite; }
.ast-news-scene__bookmark svg { width: 100%; height: 100%; display: block; }
.ast-news-scene__bookmark .i-stroke { stroke: currentColor; stroke-width: 1.8; fill: rgba(58,117,255,0.14); stroke-linejoin: round; }
.ast-news-scene__title { display: block; font-size: 1.02rem; font-weight: 700; color: var(--nw-ink); line-height: 1.28; margin-bottom: 8px; opacity: 0; transform: translateY(4px); animation: astNwTitle 7s ease-in-out infinite; }
.ast-news-scene__excerpt { display: block; font-size: .82rem; color: var(--nw-muted); line-height: 1.4; margin-bottom: 12px; opacity: 0; animation: astNwExc 7s ease-in-out infinite; }
.ast-news-scene__read { display: inline-block; font-size: .72rem; font-weight: 700; color: var(--nw-blue); padding: 4px 10px; border-radius: 8px; background: rgba(58,117,255,0.08); border: 1px solid rgba(58,117,255,0.18); }
.ast-news-scene__spark { position: absolute; left: 120px; top: 210px; width: 12px; height: 12px; border-radius: 50%; background: var(--nw-cyan); box-shadow: 0 0 12px 3px rgba(52,255,230,0.7); opacity: 0; z-index: 5; animation: astNwSpark 7s ease-in-out infinite; }
@keyframes astNwCard { 0% { transform: translateX(12px) scale(0.97); opacity: 0; } 8%,86% { transform: translateX(0) scale(1); opacity: 1; } 96%,100% { transform: translateX(12px) scale(0.97); opacity: 0; } }
@keyframes astNwDate { 0%,12% { opacity: 0; } 18%,90% { opacity: 1; } 100% { opacity: 0; } }
@keyframes astNwTitle { 0%,20% { opacity: 0; transform: translateY(4px); } 28%,90% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; } }
@keyframes astNwExc { 0%,32% { opacity: 0; } 40%,90% { opacity: 1; } 100% { opacity: 0; } }
@keyframes astNwMark { 0%,52% { opacity: 0; } 60%,90% { opacity: 1; } 100% { opacity: 0; } }
@keyframes astNwSpark { 0%,42% { opacity: 0; left: 120px; top: 210px; } 48% { opacity: 1; left: 120px; top: 210px; } 58% { opacity: 1; left: 250px; top: 130px; } 64%,100% { opacity: 0; left: 250px; top: 130px; } }
@keyframes astNwDeck1 { 0%,86% { transform: rotate(-3deg) translate(0,0); } 94% { transform: rotate(-1.5deg) translate(-8px,4px); } 100% { transform: rotate(-3deg) translate(0,0); } }
@keyframes astNwDeck2 { 0%,86% { transform: rotate(-6deg) translate(0,0); opacity: .65; } 94% { transform: rotate(-4deg) translate(-6px,3px); opacity: .8; } 100% { transform: rotate(-6deg) translate(0,0); opacity: .65; } }

/* feed */
.ast-news-feed { padding: 30px 0 14px; scroll-margin-top: 90px; }
.ast-news-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; width: 100%; }
.ast-news-grid[data-news-count="1"] { grid-template-columns: minmax(0, 720px); }
.ast-news-grid[data-news-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-news-grid[data-news-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ast-news-grid[data-news-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* news card */
.ast-news-card { background: #fff; border: 1px solid var(--nw-border); border-radius: 14px; padding: 22px 24px; display: flex; flex-direction: column; gap: 10px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-news-card__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ast-news-card__meta time { font-size: .82rem; font-weight: 700; color: var(--nw-blue); }
.ast-news-card__cat { font-size: .72rem; font-weight: 600; color: var(--nw-muted); padding: 2px 9px; border-radius: 100px; background: rgba(58,117,255,0.07); border: 1px solid rgba(58,117,255,0.14); }
.ast-news-card__title { margin: 0; font-size: 1.16rem; font-weight: 700; line-height: 1.3; }
.ast-news-card__title a { color: var(--nw-ink); text-decoration: none; }
.ast-news-card__title a:hover { color: var(--nw-blue); }
.ast-news-card__excerpt { margin: 0; font-size: .95rem; color: var(--nw-body); line-height: 1.55; }
.ast-news-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 4px; }
.ast-news-card__rt { font-size: .82rem; color: var(--nw-muted); }
.ast-news-card__link { font-size: .9rem; font-weight: 700; color: var(--nw-blue); text-decoration: none; }
.ast-news-card__link:hover { text-decoration: underline; }
.ast-news-card--compact { padding: 16px 18px; gap: 7px; }
.ast-news-card--compact .ast-news-card__title { font-size: 1rem; }

/* empty state */
.ast-news-empty { background: #fff; border: 1px solid var(--nw-border); border-radius: 16px; padding: 34px 30px; text-align: center; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-news-empty h3 { font-size: 1.2rem; color: var(--nw-ink); margin: 0 0 .4rem; }
.ast-news-empty p { color: var(--nw-muted); margin: 0 0 1.1rem; }
.ast-news-empty__actions { display: flex; gap: .6rem; justify-content: center; flex-wrap: wrap; }

/* detail reading hero */
.ast-news-detail-hero { position: relative; overflow: hidden; background: radial-gradient(circle at 82% 20%, rgba(52,255,230,0.16), transparent 34%), linear-gradient(135deg, var(--nw-dark) 0%, #0a1f48 60%, #10306a 100%); }
.ast-news-detail-hero::before { content: ""; position: absolute; inset: 0; background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat; opacity: 0.12; pointer-events: none; }
.ast-news-detail-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr); gap: clamp(16px, 2.4vw, 40px); align-items: center; min-height: 320px; padding: clamp(34px, 4vw, 50px) 0; }
.ast-news-detail-hero__content { display: grid; gap: 12px; align-content: center; z-index: 2; }
.ast-news-crumbs { display: flex; align-items: center; gap: 8px; font-size: .8rem; color: rgba(255,255,255,0.6); }
.ast-news-crumbs a { color: rgba(255,255,255,0.82); text-decoration: none; }
.ast-news-crumbs a:hover { color: #fff; text-decoration: underline; }
.ast-news-detail-hero h1 { margin: 0; color: #fff; font-size: clamp(1.9rem, 3vw, 2.9rem); font-family: var(--font-heading); font-weight: 400; line-height: 1.08; letter-spacing: 0; max-width: 22ch; }
.ast-news-detail-hero__meta { display: flex; gap: 16px; flex-wrap: wrap; color: rgba(255,255,255,0.7); font-size: .9rem; }
.ast-news-detail-hero__meta time { font-weight: 700; color: var(--nw-cyan); }
.ast-news-detail-hero__lead { max-width: 52ch; margin: 0; color: rgba(255,255,255,0.84); font-size: 1.04rem; line-height: 1.55; }
.ast-news-detail-hero .button { justify-self: start; margin-top: 4px; }

/* quiet reading scene */
.ast-news-detail-hero__scene { position: relative; height: 300px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-news-read-scene { position: relative; width: min(360px, 100%); height: 300px; }
.ast-news-read-scene__bg { position: absolute; inset: -10px 0; background-size: 260px; opacity: .1; pointer-events: none; }
.ast-news-read-scene__sheet { position: absolute; inset: 24px 8px 24px 8px; background: #fff; border-radius: 16px; padding: 22px 24px; display: flex; flex-direction: column; box-shadow: 0 26px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.14); animation: astNwSheet 8s ease-in-out infinite; }
.ast-news-read-scene__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.ast-news-read-scene__date { font-size: .74rem; font-weight: 700; color: var(--nw-blue); }
.ast-news-read-scene__bookmark { width: 18px; height: 18px; color: var(--nw-blue); opacity: 0; animation: astNwSheetMark 8s ease-in-out infinite; }
.ast-news-read-scene__bookmark svg { width: 100%; height: 100%; display: block; }
.ast-news-read-scene__bookmark .i-stroke { stroke: currentColor; stroke-width: 1.8; fill: rgba(58,117,255,0.14); stroke-linejoin: round; }
.ast-news-read-scene__line { display: block; height: 9px; border-radius: 5px; background: rgba(58,117,255,0.14); margin-bottom: 12px; transform-origin: left; transform: scaleX(0); }
.ast-news-read-scene__line--1 { width: 90%; animation: astNwLine 8s ease-in-out infinite; }
.ast-news-read-scene__line--2 { width: 100%; animation: astNwLine 8s ease-in-out .5s infinite; }
.ast-news-read-scene__line--3 { width: 70%; animation: astNwLine 8s ease-in-out 1s infinite; }
.ast-news-read-scene__mark { height: 22px; width: auto; margin-top: auto; opacity: .5; filter: brightness(0) saturate(100%) invert(38%) sepia(87%) saturate(1900%) hue-rotate(211deg); }
@keyframes astNwSheet { 0% { transform: translateY(8px); opacity: 0; } 10%,100% { transform: translateY(0); opacity: 1; } }
@keyframes astNwSheetMark { 0%,30% { opacity: 0; } 40%,100% { opacity: 1; } }
@keyframes astNwLine { 0%,12% { transform: scaleX(0); } 24%,100% { transform: scaleX(1); } }

/* article */
.ast-news-article-wrap { padding: 30px 0 14px; }
.ast-news-article { max-width: 820px; margin-inline: auto; }
.ast-news-article > p { font-size: 1.08rem; line-height: 1.72; color: #2b3f63; margin: 0 0 1.15rem; }
.ast-news-article > p:first-child { font-size: 1.16rem; color: var(--nw-ink); }
.ast-news-article h2 { font-size: 1.5rem; font-family: var(--font-main); font-weight: 700; color: var(--nw-ink); line-height: 1.2; margin: 1.6rem 0 .7rem; }
.ast-news-article h3 { font-size: 1.2rem; font-weight: 700; color: var(--nw-ink); margin: 1.3rem 0 .5rem; }
.ast-news-article ul, .ast-news-article ol { margin: 0 0 1.15rem; padding-left: 1.4rem; color: #2b3f63; line-height: 1.7; }
.ast-news-article li { margin-bottom: .4rem; }
.ast-news-article a:not(.button) { color: var(--nw-blue); overflow-wrap: anywhere; }
.ast-news-article blockquote { margin: 1.2rem 0; padding: 12px 20px; border-left: 3px solid var(--nw-blue); background: rgba(58,117,255,0.05); border-radius: 0 10px 10px 0; color: var(--nw-ink); }
.ast-news-article__foot { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid rgba(58,117,255,0.12); }

/* related */
.ast-news-related { padding: 18px 0 12px; }
.ast-news-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ast-news-related__grid[data-news-count="1"] { grid-template-columns: minmax(0, 420px); }
.ast-news-related__grid[data-news-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* dark CTA (shared list+detail) */
.ast-news-cta { background: var(--nw-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-news-cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%), radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%); pointer-events: none; }
.ast-news-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-news-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 34ch; line-height: 1.18; }
.ast-news-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-news-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* responsive */
@media (max-width: 1023px) {
  .ast-news-hero__inner { grid-template-columns: 1fr; }
  .ast-news-hero__scene { height: 330px; }
  .ast-news-scene { width: min(500px, 100%); height: 330px; }
  .ast-news-detail-hero__inner { grid-template-columns: 1fr; }
  .ast-news-detail-hero__scene { height: 240px; }
  .ast-news-read-scene { height: 240px; }
  .ast-news-related__grid, .ast-news-related__grid[data-news-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ast-news-feed { padding: 24px 0 10px; }
  .ast-news-hero__scene { height: 290px; }
  .ast-news-scene { width: 320px; height: 290px; }
  .ast-news-scene__card { width: 250px; right: 0; top: 60px; }
  .ast-news-scene__deck { width: 250px; }
  .ast-news-scene__deck--1 { right: 20px; } .ast-news-scene__deck--2 { right: 34px; }
  .ast-news-scene__spark { left: 90px; }
  .ast-news-grid, .ast-news-grid[data-news-count="1"], .ast-news-grid[data-news-count="2"],
  .ast-news-grid[data-news-count="3"], .ast-news-grid[data-news-count="4"] { grid-template-columns: 1fr; }
  .ast-news-related__grid, .ast-news-related__grid[data-news-count="1"], .ast-news-related__grid[data-news-count="2"] { grid-template-columns: 1fr; }
  .ast-news-article > p { font-size: 1.02rem; }
  .ast-news-cta { padding: 40px 0; margin-top: 14px; }
  .ast-news-cta__inner { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .ast-news-scene__card, .ast-news-scene__date, .ast-news-scene__title, .ast-news-scene__excerpt,
  .ast-news-scene__bookmark, .ast-news-scene__spark, .ast-news-scene__deck--1, .ast-news-scene__deck--2,
  .ast-news-read-scene__sheet, .ast-news-read-scene__bookmark, .ast-news-read-scene__line--1,
  .ast-news-read-scene__line--2, .ast-news-read-scene__line--3 { animation: none !important; }
  .ast-news-scene__card { opacity: 1 !important; transform: none !important; }
  .ast-news-scene__date, .ast-news-scene__title, .ast-news-scene__excerpt, .ast-news-scene__bookmark { opacity: 1 !important; transform: none !important; }
  .ast-news-scene__spark { opacity: 0 !important; }
  .ast-news-read-scene__sheet { opacity: 1 !important; transform: none !important; }
  .ast-news-read-scene__bookmark { opacity: 1 !important; }
  .ast-news-read-scene__line--1, .ast-news-read-scene__line--2, .ast-news-read-scene__line--3 { transform: scaleX(1) !important; }
}
/* /AST news listing and detail reference */

/* AST announcements listing and detail reference */
/* wrappers .ast-announcements-index / .ast-announcements-detail; namespace .ast-announcements-*; operational-notice identity, distinct from .ast-news-* and the old .notice-card/.article-* */
.ast-announcements-index, .ast-announcements-detail {
  --an-dark: #050e28;
  --an-blue: #3a75ff;
  --an-cyan: #34ffe6;
  --an-ink: #172a4d;
  --an-muted: #4a5f85;
  --an-body: #3f5478;
  --an-gray: #5b6b86;
  --an-border: rgba(58,117,255,0.16);
  position: relative; overflow-x: hidden;
  background:
    linear-gradient(rgba(255,255,255,0.88), rgba(244,250,255,0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-announcements-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-announcements-index), .site-main:has(.ast-announcements-detail) { padding-bottom: 0; }
.site-main:has(.ast-announcements-index) + .site-footer, .site-main:has(.ast-announcements-index) + footer,
.site-main:has(.ast-announcements-detail) + .site-footer, .site-main:has(.ast-announcements-detail) + footer { margin-top: 0; }
.ast-announcements-feed, .ast-announcements-info, .ast-announcements-diff, .ast-announcements-article-wrap, .ast-announcements-related { background: transparent; }

.ast-announcements-kicker { font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--an-blue); margin: 0 0 .5rem; font-family: var(--font-heading); }
.ast-announcements-kicker--cyan { color: var(--an-cyan); }
.ast-announcements-head { margin-bottom: 14px; }
.ast-announcements-head h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700; letter-spacing: normal; line-height: 1.16; color: var(--an-ink); margin: .1rem 0 .35rem; }
.ast-announcements-head p { color: var(--an-muted); max-width: 60ch; margin: 0; font-size: .98rem; }

/* ── hero (list) ── */
.ast-announcements-hero { position: relative; overflow: hidden;
  background: radial-gradient(circle at 80% 16%, rgba(52,255,230,0.18), transparent 32%), linear-gradient(135deg, var(--an-dark) 0%, #0a1f48 52%, #123778 100%); }
.ast-announcements-hero::before { content: ""; position: absolute; inset: 0; background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat; opacity: 0.14; pointer-events: none; }
.ast-announcements-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr); gap: clamp(16px, 2.4vw, 36px); align-items: center; min-height: 420px; padding: clamp(40px, 5vw, 60px) 0; }
.ast-announcements-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-announcements-hero h1 { margin: 0; color: #fff; font-size: clamp(2.3rem, 3.6vw, 3.4rem); font-family: var(--font-heading); font-weight: 400; line-height: 1.05; letter-spacing: 0; }
.ast-announcements-hero__lead { max-width: 46ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.08rem; line-height: 1.55; }
.ast-announcements-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── operational-notice micro-scene (no robot): one notice card + importance mark + phase-cycling real featured items + published status ── */
.ast-announcements-hero__scene { position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-announcements-scene { position: relative; width: min(540px, 100%); height: 400px; }
.ast-announcements-scene__bg { position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none; }
.ast-announcements-scene__pulse { position: absolute; right: 236px; top: 90px; width: 46px; height: 46px; border-radius: 50%; background: rgba(52,255,230,0.5); opacity: 0; z-index: 3; animation: astAnPulse 7.5s ease-in-out infinite; }
.ast-announcements-scene__card { position: absolute; right: 8px; top: 58px; width: 356px; z-index: 4; background: #fff; border-radius: 20px; padding: 23px 25px; box-shadow: 0 26px 64px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.16); animation: astAnCard 7.5s ease-in-out infinite; }
.ast-announcements-scene__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.ast-announcements-scene__mark { display: grid; place-items: center; width: 41px; height: 41px; border-radius: 50%; background: rgba(58,117,255,0.12); color: var(--an-blue); flex-shrink: 0; animation: astAnMark 7.5s ease-in-out infinite; }
.ast-announcements-scene__mark svg { width: 22px; height: 22px; display: block; }
.ast-announcements-scene__mark .i-stroke { stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.ast-announcements-scene__mark .i-dot { fill: currentColor; }
.ast-announcements-scene__status { font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--an-blue); padding: 5px 12px; border-radius: 100px; background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.42); opacity: 0; white-space: nowrap; animation: astAnStatus 7.5s ease-in-out infinite; }
.ast-announcements-scene__stack { position: relative; height: 162px; }
.ast-announcements-scene__item { position: absolute; inset: 0; opacity: 0; display: flex; flex-direction: column; gap: 9px; }
.ast-announcements-scene__item--1 { opacity: 1; animation: astAnItem1 7.5s ease-in-out infinite; }
.ast-announcements-scene__item--2 { animation: astAnItem2 7.5s ease-in-out infinite; }
.ast-announcements-scene__item--3 { animation: astAnItem3 7.5s ease-in-out infinite; }
.ast-announcements-scene__badge { align-self: flex-start; position: relative; font-size: .68rem; font-weight: 700; letter-spacing: .02em; color: var(--an-ink); padding: 3px 11px 3px 21px; border-radius: 100px; background: rgba(58,117,255,0.08); border: 1px solid rgba(58,117,255,0.22); }
.ast-announcements-scene__title { font-size: 1.06rem; font-weight: 700; color: var(--an-ink); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ast-announcements-scene__scope { font-size: .84rem; color: var(--an-muted); line-height: 1.42; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ast-announcements-scene__when { font-size: .78rem; font-weight: 700; color: var(--an-blue); margin-top: auto; }

/* type marker: colour AND shape both encode the category (never colour alone) */
.ast-announcements-badge__dot, .ast-announcements-scene__badge::before {
  content: ""; position: absolute; left: 8px; top: 50%; transform: translateY(-50%);
  width: 8px; height: 8px; border-radius: 50%; background: var(--an-blue);
}
.ast-announcements-scene__badge::before { width: 7px; height: 7px; }
.is-promo.ast-announcements-badge, .is-promo.ast-announcements-scene__badge { background: rgba(52,255,230,0.16); border-color: rgba(52,255,230,0.5); }
.is-promo .ast-announcements-badge__dot, .is-promo.ast-announcements-scene__badge::before { background: #0f8f92; border-radius: 2px; }
.is-maintenance.ast-announcements-badge, .is-info.ast-announcements-badge,
.is-maintenance.ast-announcements-scene__badge, .is-info.ast-announcements-scene__badge { background: rgba(74,95,133,0.1); border-color: rgba(74,95,133,0.26); }
.is-maintenance .ast-announcements-badge__dot, .is-info .ast-announcements-badge__dot,
.is-maintenance.ast-announcements-scene__badge::before, .is-info.ast-announcements-scene__badge::before { background: transparent; box-shadow: inset 0 0 0 2px var(--an-gray); }

@keyframes astAnCard { 0% { transform: translateY(10px) scale(0.97); opacity: 0; } 8%,100% { transform: translateY(0) scale(1); opacity: 1; } }
@keyframes astAnMark { 0%,4% { transform: scale(1); } 12% { transform: scale(1.14); } 22%,100% { transform: scale(1); } }
@keyframes astAnPulse { 0%,8% { opacity: 0; transform: scale(0.6); } 14% { opacity: .5; transform: scale(1); } 30%,100% { opacity: 0; transform: scale(1.6); } }
@keyframes astAnStatus { 0%,14% { opacity: 0; } 22%,100% { opacity: 1; } }
@keyframes astAnItem1 { 0%,28% { opacity: 1; } 33%,95% { opacity: 0; } 100% { opacity: 1; } }
@keyframes astAnItem2 { 0%,33% { opacity: 0; } 38%,60% { opacity: 1; } 65%,100% { opacity: 0; } }
@keyframes astAnItem3 { 0%,65% { opacity: 0; } 70%,95% { opacity: 1; } 100% { opacity: 0; } }

/* ── feed ── */
.ast-announcements-feed { padding: 30px 0 14px; scroll-margin-top: 90px; }
.ast-announcements-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 20px; width: 100%; }
.ast-announcements-grid[data-count="1"] { grid-template-columns: minmax(0, 720px); }
.ast-announcements-grid[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-announcements-grid[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ast-announcements-grid[data-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.ast-announcements-card { position: relative; background: #fff; border: 1px solid var(--an-border); border-radius: 14px; padding: 22px 24px 22px 26px; display: flex; flex-direction: column; gap: 11px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); overflow: hidden; }
.ast-announcements-card.is-important, .ast-announcements-card.is-incident { border-color: rgba(58,117,255,0.32); box-shadow: 0 6px 22px rgba(58,117,255,0.1); }
.ast-announcements-card__accent { position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--an-blue); opacity: 0; }
.ast-announcements-card.is-important .ast-announcements-card__accent, .ast-announcements-card.is-incident .ast-announcements-card__accent { opacity: 1; }
.ast-announcements-card__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ast-announcements-badge { position: relative; display: inline-block; font-size: .72rem; font-weight: 700; color: var(--an-ink); padding: 3px 11px 3px 22px; border-radius: 100px; background: rgba(58,117,255,0.08); border: 1px solid rgba(58,117,255,0.22); white-space: nowrap; }
.ast-announcements-card__date { font-size: .82rem; font-weight: 700; color: var(--an-blue); }
.ast-announcements-card__title { margin: 0; font-size: 1.16rem; font-weight: 700; line-height: 1.3; }
.ast-announcements-card__title a { color: var(--an-ink); text-decoration: none; }
.ast-announcements-card__title a:hover { color: var(--an-blue); }
.ast-announcements-card__excerpt { margin: 0; font-size: .95rem; color: var(--an-body); line-height: 1.55; }
.ast-announcements-card__when { font-size: .88rem; font-weight: 600; color: var(--an-body); display: flex; align-items: center; gap: 7px; }
.ast-announcements-card__when svg { width: 15px; height: 15px; color: var(--an-blue); flex-shrink: 0; }
.ast-announcements-card__when .i-stroke { stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.ast-announcements-card__foot { margin-top: auto; padding-top: 4px; }
.ast-announcements-card__link { font-size: .9rem; font-weight: 700; color: var(--an-blue); text-decoration: none; }
.ast-announcements-card__link:hover { text-decoration: underline; }

/* empty state */
.ast-announcements-empty { background: #fff; border: 1px solid var(--an-border); border-radius: 16px; padding: 34px 30px; text-align: center; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-announcements-empty h3 { font-size: 1.2rem; color: var(--an-ink); margin: 0 0 .4rem; }
.ast-announcements-empty p { color: var(--an-muted); margin: 0 0 1.1rem; }
.ast-announcements-empty__actions { display: flex; gap: .6rem; justify-content: center; flex-wrap: wrap; }

/* ── info: what gets published + what to do ── */
.ast-announcements-info { padding: 20px 0 12px; }
.ast-announcements-info__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 20px; align-items: start; }
.ast-announcements-panel { background: #fff; border: 1px solid var(--an-border); border-radius: 16px; padding: 24px 28px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-announcements-panel h2 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); font-family: var(--font-main); font-weight: 700; color: var(--an-ink); margin: .1rem 0 .7rem; line-height: 1.16; }
.ast-announcements-types { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.ast-announcements-types li { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; font-size: .93rem; color: var(--an-body); line-height: 1.45; }
.ast-announcements-types .ast-announcements-badge { margin-top: 1px; }
.ast-announcements-steps { list-style: none; padding: 0; margin: 0; counter-reset: anstep; display: grid; gap: 12px; }
.ast-announcements-steps li { position: relative; padding-left: 42px; counter-increment: anstep; font-size: .93rem; color: var(--an-body); line-height: 1.45; min-height: 30px; display: flex; align-items: center; }
.ast-announcements-steps li::before { content: counter(anstep); position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--an-blue), var(--an-cyan)); color: #fff; font-family: var(--font-heading); font-size: .9rem; }

/* difference: announcements vs news */
.ast-announcements-diff { padding: 8px 0 12px; }
.ast-announcements-diff__inner { background: #fff; border: 1px solid var(--an-border); border-radius: 16px; padding: 24px 28px; display: grid; grid-template-columns: 1fr 1fr auto; gap: 24px; align-items: center; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-announcements-diff__col h3 { font-size: 1rem; color: var(--an-ink); margin: 0 0 .35rem; display: flex; align-items: center; gap: 9px; }
.ast-announcements-diff__col p { font-size: .92rem; color: var(--an-body); margin: 0; line-height: 1.5; max-width: 44ch; }
.ast-announcements-diff__tag { font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 9px; border-radius: 100px; }
.ast-announcements-diff__tag--now { color: var(--an-blue); background: rgba(58,117,255,0.1); border: 1px solid rgba(58,117,255,0.26); }
.ast-announcements-diff__tag--news { color: var(--an-gray); background: rgba(74,95,133,0.1); border: 1px solid rgba(74,95,133,0.24); }
.ast-announcements-diff__actions { display: flex; flex-direction: column; gap: 8px; flex-shrink: 0; }

/* ── detail hero ── */
.ast-announcements-detail-hero { position: relative; overflow: hidden; background: radial-gradient(circle at 82% 20%, rgba(52,255,230,0.16), transparent 34%), linear-gradient(135deg, var(--an-dark) 0%, #0a1f48 60%, #10306a 100%); }
.ast-announcements-detail-hero::before { content: ""; position: absolute; inset: 0; background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat; opacity: 0.12; pointer-events: none; }
.ast-announcements-detail-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr); gap: clamp(16px, 2.4vw, 40px); align-items: center; min-height: 320px; padding: clamp(34px, 4vw, 50px) 0; }
.ast-announcements-detail-hero__content { display: grid; gap: 12px; align-content: center; z-index: 2; }
.ast-announcements-crumbs { display: flex; align-items: center; gap: 8px; font-size: .8rem; color: rgba(255,255,255,0.6); flex-wrap: wrap; }
.ast-announcements-crumbs a { color: rgba(255,255,255,0.82); text-decoration: none; }
.ast-announcements-crumbs a:hover { color: #fff; text-decoration: underline; }
.ast-announcements-detail-hero h1 { margin: 0; color: #fff; font-size: clamp(1.9rem, 3vw, 2.9rem); font-family: var(--font-heading); font-weight: 400; line-height: 1.08; letter-spacing: 0; max-width: 24ch; }
.ast-announcements-detail-hero__meta { display: flex; gap: 16px; flex-wrap: wrap; color: rgba(255,255,255,0.7); font-size: .9rem; }
.ast-announcements-detail-hero__meta time { font-weight: 700; color: var(--an-cyan); }
.ast-announcements-detail-hero__lead { max-width: 54ch; margin: 0; color: rgba(255,255,255,0.84); font-size: 1.04rem; line-height: 1.55; }
.ast-announcements-detail-hero .button { justify-self: start; margin-top: 4px; }

/* detail quiet notice card (static, no robot) */
.ast-announcements-detail-hero__scene { position: relative; height: 300px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-announcements-note { position: relative; width: min(360px, 100%); background: #fff; border-radius: 18px; padding: 22px 24px; box-shadow: 0 26px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.14); }
.ast-announcements-note__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.ast-announcements-note__mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(58,117,255,0.12); color: var(--an-blue); flex-shrink: 0; }
.ast-announcements-note__mark svg { width: 20px; height: 20px; display: block; }
.ast-announcements-note__mark .i-stroke { stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.ast-announcements-note__mark .i-dot { fill: currentColor; }
.ast-announcements-note__status { font-size: .66rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--an-blue); padding: 4px 11px; border-radius: 100px; background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.42); white-space: nowrap; }
.ast-announcements-note__title { font-size: 1rem; font-weight: 700; color: var(--an-ink); line-height: 1.3; margin: 0 0 8px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ast-announcements-note__when { font-size: .78rem; font-weight: 700; color: var(--an-blue); }

/* ── article body ── */
.ast-announcements-article-wrap { padding: 30px 0 14px; }
.ast-announcements-article { max-width: 820px; margin-inline: auto; }
.ast-announcements-article__badges { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.ast-announcements-article > p { font-size: 1.08rem; line-height: 1.72; color: #2b3f63; margin: 0 0 1.15rem; }
.ast-announcements-article > p:first-of-type { font-size: 1.16rem; color: var(--an-ink); }
.ast-announcements-article__foot { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid rgba(58,117,255,0.12); }

/* ── related ── */
.ast-announcements-related { padding: 18px 0 12px; }
.ast-announcements-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ast-announcements-related__grid[data-count="1"] { grid-template-columns: minmax(0, 420px); }
.ast-announcements-related__grid[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* ── dark CTA (shared list + detail) ── */
.ast-announcements-cta { background: var(--an-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-announcements-cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%), radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%); pointer-events: none; }
.ast-announcements-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-announcements-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 34ch; line-height: 1.18; }
.ast-announcements-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-announcements-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── responsive ── */
@media (max-width: 1023px) {
  .ast-announcements-hero__inner { grid-template-columns: 1fr; }
  .ast-announcements-hero__scene { height: 340px; }
  .ast-announcements-scene { width: min(500px, 100%); height: 340px; }
  .ast-announcements-info__grid { grid-template-columns: 1fr; }
  .ast-announcements-diff__inner { grid-template-columns: 1fr 1fr; }
  .ast-announcements-diff__actions { grid-column: 1 / -1; flex-direction: row; }
  .ast-announcements-detail-hero__inner { grid-template-columns: 1fr; }
  .ast-announcements-detail-hero__scene { height: 240px; justify-content: flex-start; }
  .ast-announcements-related__grid, .ast-announcements-related__grid[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ast-announcements-feed { padding: 24px 0 10px; }
  .ast-announcements-hero__scene { height: 320px; }
  .ast-announcements-scene { width: 320px; height: 320px; }
  .ast-announcements-scene__card { width: 290px; right: 50%; transform: translateX(50%); top: 40px; }
  .ast-announcements-scene__pulse { right: auto; left: 30px; top: 30px; }
  .ast-announcements-grid, .ast-announcements-grid[data-count="1"], .ast-announcements-grid[data-count="2"],
  .ast-announcements-grid[data-count="3"], .ast-announcements-grid[data-count="4"] { grid-template-columns: 1fr; }
  .ast-announcements-diff__inner { grid-template-columns: 1fr; }
  .ast-announcements-diff__actions { flex-direction: column; }
  .ast-announcements-related__grid, .ast-announcements-related__grid[data-count="1"], .ast-announcements-related__grid[data-count="2"] { grid-template-columns: 1fr; }
  .ast-announcements-article > p { font-size: 1.02rem; }
  .ast-announcements-cta { padding: 40px 0; margin-top: 14px; }
  .ast-announcements-cta__inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 360px) {
  .ast-announcements-scene { width: 288px; }
  .ast-announcements-scene__card { width: 264px; }
}

/* ── reduced motion: one fully assembled notice frame ── */
@media (prefers-reduced-motion: reduce) {
  .ast-announcements-scene__card, .ast-announcements-scene__mark, .ast-announcements-scene__pulse,
  .ast-announcements-scene__status, .ast-announcements-scene__item--1,
  .ast-announcements-scene__item--2, .ast-announcements-scene__item--3 { animation: none !important; }
  .ast-announcements-scene__card { opacity: 1 !important; transform: none !important; }
  .ast-announcements-scene__status { opacity: 1 !important; }
  .ast-announcements-scene__item--1 { opacity: 1 !important; }
  .ast-announcements-scene__item--2, .ast-announcements-scene__item--3 { opacity: 0 !important; }
  .ast-announcements-scene__pulse { opacity: 0 !important; }
}
/* /AST announcements listing and detail reference */

/* AST legal and documents reference */
/* wrappers .ast-legal-page and .ast-documents-page; namespaces ast-legal- and ast-documents-;
   document-first identity (no robot); separate from the ast-news / ast-announcements namespaces and the
   old legal-page, article, and document-card styles (those stay for other uses). */
.ast-legal-page, .ast-documents-page {
  --lg-dark: #050e28;
  --lg-blue: #3a75ff;
  --lg-cyan: #34ffe6;
  --lg-ink: #172a4d;
  --lg-muted: #4a5f85;
  --lg-body: #33456a;
  --lg-gray: #5b6b86;
  --lg-border: rgba(58,117,255,0.16);
  position: relative; overflow-x: hidden;
  background:
    linear-gradient(rgba(255,255,255,0.88), rgba(244,250,255,0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-legal-shell, .ast-documents-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-legal-page), .site-main:has(.ast-documents-page) { padding-bottom: 0; }
.site-main:has(.ast-legal-page) + .site-footer, .site-main:has(.ast-legal-page) + footer,
.site-main:has(.ast-documents-page) + .site-footer, .site-main:has(.ast-documents-page) + footer { margin-top: 0; }
.ast-legal-body, .ast-legal-cta, .ast-documents-catalog, .ast-documents-info, .ast-documents-panel-wrap { background: transparent; }
.ast-legal-kicker, .ast-documents-kicker {
  font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--lg-blue); margin: 0 0 .5rem; font-family: var(--font-heading);
}
.ast-legal-kicker--cyan, .ast-documents-kicker--cyan { color: var(--lg-cyan); }

/* ── shared hero (legal + documents) ── */
.ast-legal-hero, .ast-documents-hero { position: relative; overflow: hidden;
  background: radial-gradient(circle at 80% 16%, rgba(52,255,230,0.16), transparent 32%), linear-gradient(135deg, var(--lg-dark) 0%, #0a1f48 54%, #123778 100%); }
.ast-legal-hero::before, .ast-documents-hero::before { content: ""; position: absolute; inset: 0; background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat; opacity: 0.13; pointer-events: none; }
.ast-legal-hero__inner, .ast-documents-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr); gap: clamp(16px, 2.4vw, 40px); align-items: center; min-height: 360px; padding: clamp(36px, 4.4vw, 54px) 0; }
.ast-legal-hero__content, .ast-documents-hero__content { display: grid; gap: 13px; align-content: center; z-index: 2; }
.ast-legal-hero h1, .ast-documents-hero h1 { margin: 0; color: #fff; font-size: clamp(2.1rem, 3.2vw, 3.1rem); font-family: var(--font-heading); font-weight: 400; line-height: 1.06; letter-spacing: 0; max-width: 20ch; overflow-wrap: break-word; }
.ast-legal-hero__lead, .ast-documents-hero__lead { max-width: 48ch; margin: 0; color: rgba(255,255,255,0.86); font-size: 1.06rem; line-height: 1.55; }
.ast-legal-crumbs { display: flex; align-items: center; gap: 8px; font-size: .8rem; color: rgba(255,255,255,0.6); flex-wrap: wrap; }
.ast-legal-crumbs a { color: rgba(255,255,255,0.82); text-decoration: none; }
.ast-legal-crumbs a:hover { color: #fff; text-decoration: underline; }
.ast-legal-hero__meta { display: flex; gap: 16px; flex-wrap: wrap; color: rgba(255,255,255,0.72); font-size: .9rem; }
.ast-legal-hero__meta time { font-weight: 700; color: var(--lg-cyan); }
.ast-legal-hero__actions, .ast-documents-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 2px; }

/* ── hero scenes (document-first, no robot) ── */
.ast-legal-hero__scene, .ast-documents-hero__scene { position: relative; height: 320px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-legal-scene, .ast-documents-scene { position: relative; width: min(420px, 100%); height: 320px; }
.ast-legal-scene__bg, .ast-documents-scene__bg { position: absolute; inset: -10px 0; background-size: 260px; opacity: .1; pointer-events: none; }

/* document sheet (base for policy + offer) */
.ast-legal-doc {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 264px; min-height: 220px;
  background: #fff; border-radius: 16px; padding: 22px 24px; z-index: 3;
  box-shadow: 0 26px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.14);
  display: flex; flex-direction: column; gap: 12px; animation: astLgDoc 7.5s ease-in-out infinite;
}
.ast-legal-doc__title { height: 13px; width: 62%; border-radius: 6px; background: linear-gradient(90deg, var(--lg-blue), var(--lg-cyan)); opacity: 0; animation: astLgTitle 7.5s ease-in-out infinite; }
.ast-legal-doc__line { height: 9px; border-radius: 5px; background: rgba(58,117,255,0.16); transform: scaleX(0); transform-origin: left; }
.ast-legal-doc__line--1 { width: 100%; animation: astLgLine 7.5s ease-in-out .0s infinite; }
.ast-legal-doc__line--2 { width: 92%; animation: astLgLine 7.5s ease-in-out .0s infinite; }
.ast-legal-doc__line--3 { width: 74%; animation: astLgLine 7.5s ease-in-out .0s infinite; }
.ast-legal-scene--policy .ast-legal-doc__line--1 { animation-delay: .6s; }
.ast-legal-scene--policy .ast-legal-doc__line--2 { animation-delay: 1.1s; }
.ast-legal-scene--policy .ast-legal-doc__line--3 { animation-delay: 1.6s; }
.ast-legal-doc__tag { margin-top: auto; align-self: flex-start; font-size: .68rem; font-weight: 700; letter-spacing: .02em; color: var(--lg-ink); padding: 4px 11px; border-radius: 100px; background: rgba(58,117,255,0.08); border: 1px solid rgba(58,117,255,0.22); }

/* policy: a calm protection check */
.ast-legal-check { position: absolute; right: 20px; top: 18px; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.42); color: var(--lg-blue); opacity: 0; transform: scale(.7); animation: astLgCheck 7.5s ease-in-out infinite; z-index: 4; }
.ast-legal-check svg { width: 22px; height: 22px; }
.ast-legal-check path { stroke: currentColor; stroke-width: 2.4; fill: none; stroke-linecap: round; stroke-linejoin: round; }

/* offer: section numbers + a calm round seal */
.ast-legal-secs { display: flex; gap: 8px; }
.ast-legal-sec { font-family: var(--font-heading); font-size: .72rem; font-weight: 700; color: var(--lg-blue); width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: rgba(58,117,255,0.09); border: 1px solid rgba(58,117,255,0.2); opacity: 0; transform: translateY(5px); }
.ast-legal-sec--1 { animation: astLgSec 7.5s ease-in-out .7s infinite; }
.ast-legal-sec--2 { animation: astLgSec 7.5s ease-in-out 1.1s infinite; }
.ast-legal-sec--3 { animation: astLgSec 7.5s ease-in-out 1.5s infinite; }
.ast-legal-seal { position: absolute; right: 18px; bottom: 18px; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; color: var(--lg-blue); border: 2px solid rgba(58,117,255,0.45); background: rgba(58,117,255,0.08); font-family: var(--font-heading); font-size: .58rem; font-weight: 700; text-align: center; line-height: 1.05; opacity: 0; transform: scale(.6) rotate(-8deg); animation: astLgSeal 7.5s ease-in-out infinite; z-index: 4; }

@keyframes astLgDoc { 0% { transform: translate(-50%, calc(-50% + 10px)); opacity: 0; } 9%,100% { transform: translate(-50%, -50%); opacity: 1; } }
@keyframes astLgTitle { 0%,10% { opacity: 0; } 18%,100% { opacity: 1; } }
@keyframes astLgLine { 0%,10% { transform: scaleX(0); } 26%,92% { transform: scaleX(1); } 100% { transform: scaleX(1); } }
@keyframes astLgCheck { 0%,58% { opacity: 0; transform: scale(.7); } 66% { opacity: 1; transform: scale(1.06); } 74%,100% { opacity: 1; transform: scale(1); } }
@keyframes astLgSec { 0%,12% { opacity: 0; transform: translateY(5px); } 24%,100% { opacity: 1; transform: translateY(0); } }
@keyframes astLgSeal { 0%,60% { opacity: 0; transform: scale(.6) rotate(-8deg); } 72% { opacity: 1; transform: scale(1.05) rotate(0deg); } 80%,100% { opacity: 1; transform: scale(1) rotate(0deg); } }

/* documents scene: folder + fanned documents + one active */
.ast-documents-scene__folder { position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%); width: 210px; height: 128px; border-radius: 14px 14px 16px 16px; background: linear-gradient(160deg, rgba(58,117,255,0.22), rgba(5,14,40,0.10)); border: 1px solid rgba(120,170,255,0.28); z-index: 2; }
.ast-documents-scene__folder::before { content: ""; position: absolute; left: 16px; top: -10px; width: 78px; height: 16px; border-radius: 8px 8px 0 0; background: rgba(120,170,255,0.32); }
.ast-documents-file { position: absolute; left: 50%; bottom: 92px; width: 120px; height: 150px; border-radius: 12px; background: #fff; border: 1px solid rgba(58,117,255,0.16); box-shadow: 0 16px 34px rgba(5,14,40,0.32); transform-origin: bottom center; opacity: 0; z-index: 3; }
.ast-documents-file--1 { animation: astDocFile1 8s ease-in-out infinite; }
.ast-documents-file--2 { animation: astDocFile2 8s ease-in-out infinite; }
.ast-documents-file--3 { animation: astDocFile3 8s ease-in-out infinite; }
.ast-documents-active { position: absolute; left: 50%; bottom: 96px; transform: translateX(-50%); width: 168px; z-index: 5; background: #fff; border-radius: 14px; padding: 15px 16px; box-shadow: 0 22px 50px rgba(5,14,40,0.44), 0 0 0 1px rgba(58,117,255,0.16); display: flex; flex-direction: column; gap: 8px; animation: astDocActive 8s ease-in-out infinite; }
.ast-documents-active__type { align-self: flex-start; font-size: .62rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--lg-blue); padding: 3px 9px; border-radius: 100px; background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.4); }
.ast-documents-active__line { height: 8px; border-radius: 5px; background: rgba(58,117,255,0.16); }
.ast-documents-active__line--1 { width: 96%; } .ast-documents-active__line--2 { width: 72%; }
@keyframes astDocActive { 0% { opacity: 0; transform: translate(-50%, 10px) scale(.96); } 14%,84% { opacity: 1; transform: translate(-50%, 0) scale(1); } 96%,100% { opacity: 0; transform: translate(-50%, 10px) scale(.96); } }
@keyframes astDocFile1 { 0%,10% { opacity: 0; transform: translateX(-50%) translateY(10px) rotate(0deg); } 20%,80% { opacity: .7; transform: translateX(calc(-50% - 66px)) translateY(-6px) rotate(-9deg); } 92%,100% { opacity: 0; transform: translateX(-50%) translateY(10px) rotate(0deg); } }
@keyframes astDocFile2 { 0%,12% { opacity: 0; transform: translateX(-50%) translateY(10px) rotate(0deg); } 22%,80% { opacity: .8; transform: translateX(calc(-50% + 66px)) translateY(-4px) rotate(9deg); } 92%,100% { opacity: 0; transform: translateX(-50%) translateY(10px) rotate(0deg); } }
@keyframes astDocFile3 { 0%,8% { opacity: 0; transform: translateX(-50%) translateY(8px); } 18%,82% { opacity: .5; transform: translateX(-50%) translateY(-14px); } 92%,100% { opacity: 0; transform: translateX(-50%) translateY(8px); } }

/* ── legal reading body ── */
.ast-legal-body { padding: 28px 0 14px; }
/* article + sidebar share one grid row so their tops align directly under the hero (no auto-placement gap) */
.ast-legal-layout { display: grid; grid-template-columns: minmax(0, 960px) 300px; gap: 28px; justify-content: center; align-items: start; max-width: 1300px; margin-inline: auto; }
.ast-legal-article { grid-column: 1; grid-row: 1; min-width: 0; background: #fff; border: 1px solid var(--lg-border); border-radius: 18px; box-shadow: 0 4px 22px rgba(58,117,255,0.06); padding: clamp(20px, 3vw, 48px); }
.ast-legal-sidebar { grid-column: 2; grid-row: 1; min-width: 0; }
/* sticky lives on the inner panel (not the grid item) so it can never stretch the row or shift the article */
.ast-legal-sidebar__inner { position: sticky; top: 96px; display: grid; gap: 14px; }
.ast-legal-article__meta { font-size: .82rem; font-weight: 700; color: var(--lg-blue); margin: 0 0 1.1rem; display: inline-flex; align-items: center; gap: 8px; }
.ast-legal-article__note { font-size: .8rem; color: var(--lg-gray); margin: 0 0 1.4rem; }
.ast-legal-article h2 { scroll-margin-top: 90px; font-size: clamp(1.2rem, 1.8vw, 1.45rem); font-family: var(--font-main); font-weight: 700; color: var(--lg-ink); line-height: 1.24; margin: 1.9rem 0 .7rem; padding-top: .6rem; border-top: 1px solid rgba(58,117,255,0.12); display: flex; gap: 10px; align-items: baseline; }
.ast-legal-article h2:first-of-type { margin-top: .4rem; border-top: 0; padding-top: 0; }
.ast-legal-article h2 .ast-legal-article__num { font-family: var(--font-heading); font-weight: 700; color: var(--lg-blue); font-size: .92em; flex-shrink: 0; }
.ast-legal-article > p { font-size: 1.02rem; line-height: 1.72; color: var(--lg-body); margin: 0 0 1rem; overflow-wrap: anywhere; }
.ast-legal-article > p.is-subitem { padding-left: 1.1rem; border-left: 2px solid rgba(58,117,255,0.14); }
.ast-legal-article a:not(.button) { color: var(--lg-blue); overflow-wrap: anywhere; }

/* table of contents (native <details>, no JS) */
.ast-legal-toc { background: #fff; border: 1px solid var(--lg-border); border-radius: 14px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); overflow: hidden; }
.ast-legal-toc > summary { list-style: none; cursor: pointer; padding: 14px 18px; font-family: var(--font-heading); font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--lg-ink); display: flex; align-items: center; justify-content: space-between; }
.ast-legal-toc > summary::-webkit-details-marker { display: none; }
.ast-legal-toc > summary::after { content: "⌄"; color: var(--lg-blue); font-size: 1.1rem; line-height: 1; }
.ast-legal-toc[open] > summary::after { content: "⌃"; }
.ast-legal-toc__list { list-style: none; margin: 0; padding: 0 10px 12px; display: grid; gap: 1px; }
.ast-legal-toc__list a { display: flex; gap: 9px; align-items: baseline; padding: 7px 8px; border-radius: 8px; font-size: .86rem; line-height: 1.35; color: var(--lg-body); text-decoration: none; }
.ast-legal-toc__list a:hover { background: rgba(58,117,255,0.06); color: var(--lg-blue); }
.ast-legal-toc__list a[aria-current="true"] { background: rgba(58,117,255,0.08); color: var(--lg-blue); font-weight: 700; }
.ast-legal-toc__num { font-family: var(--font-heading); font-weight: 700; color: var(--lg-blue); flex-shrink: 0; }

/* document cross-nav */
.ast-legal-docnav { background: #fff; border: 1px solid var(--lg-border); border-radius: 14px; padding: 8px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); display: grid; gap: 2px; }
.ast-legal-docnav a { display: flex; align-items: center; gap: 9px; padding: 10px 12px; border-radius: 9px; font-size: .9rem; font-weight: 600; color: var(--lg-body); text-decoration: none; }
.ast-legal-docnav a:hover { background: rgba(58,117,255,0.06); color: var(--lg-blue); }
.ast-legal-docnav a[aria-current="page"] { background: rgba(58,117,255,0.1); color: var(--lg-blue); }
.ast-legal-docnav a[aria-current="page"]::before { content: "•"; color: var(--lg-blue); }

/* ── documents catalog ── */
.ast-documents-catalog { padding: 30px 0 14px; scroll-margin-top: 90px; }
.ast-documents-head { margin-bottom: 14px; }
.ast-documents-head h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--font-main); font-weight: 700; line-height: 1.16; color: var(--lg-ink); margin: .1rem 0 .35rem; }
.ast-documents-head p { color: var(--lg-muted); max-width: 60ch; margin: 0; font-size: .98rem; }
.ast-documents-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; width: 100%; }
.ast-documents-grid[data-count="1"] { grid-template-columns: minmax(0, 640px); }
.ast-documents-grid[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-documents-grid[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ast-documents-grid[data-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ast-documents-grid[data-count="5"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ast-documents-grid[data-count="6"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ast-documents-card { position: relative; background: #fff; border: 1px solid var(--lg-border); border-radius: 14px; padding: 22px 24px; display: flex; flex-direction: column; gap: 10px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-documents-card__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ast-documents-badge { position: relative; display: inline-block; font-size: .72rem; font-weight: 700; color: var(--lg-ink); padding: 3px 11px 3px 24px; border-radius: 100px; background: rgba(58,117,255,0.08); border: 1px solid rgba(58,117,255,0.22); white-space: nowrap; }
.ast-documents-badge::before { content: ""; position: absolute; left: 9px; top: 50%; transform: translateY(-50%); width: 9px; height: 9px; border-radius: 2px; background: var(--lg-blue); }
.ast-documents-badge.is-on_request { background: rgba(74,95,133,0.1); border-color: rgba(74,95,133,0.26); }
.ast-documents-badge.is-on_request::before { background: transparent; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--lg-gray); }
.ast-documents-card__date { font-size: .82rem; font-weight: 700; color: var(--lg-blue); }
.ast-documents-card__title { margin: 0; font-size: 1.14rem; font-weight: 700; line-height: 1.3; color: var(--lg-ink); }
.ast-documents-card__desc { margin: 0; font-size: .95rem; color: var(--lg-body); line-height: 1.55; }
.ast-documents-card__aud { font-size: .82rem; color: var(--lg-muted); display: flex; align-items: center; gap: 7px; }
.ast-documents-card__aud svg { width: 15px; height: 15px; color: var(--lg-blue); flex-shrink: 0; }
.ast-documents-card__aud .i-stroke { stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.ast-documents-card__foot { margin-top: auto; padding-top: 6px; }
.ast-documents-card__link { display: inline-flex; align-items: center; gap: 6px; font-size: .9rem; font-weight: 700; color: var(--lg-blue); text-decoration: none; }
.ast-documents-card__link:hover { text-decoration: underline; }
.ast-documents-card__link.is-on_request { color: var(--lg-gray); }
.ast-documents-empty { background: #fff; border: 1px solid var(--lg-border); border-radius: 16px; padding: 34px 30px; text-align: center; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-documents-empty h3 { font-size: 1.2rem; color: var(--lg-ink); margin: 0 0 .4rem; }
.ast-documents-empty p { color: var(--lg-muted); margin: 0 0 1.1rem; }

/* documents info blocks */
.ast-documents-info { padding: 20px 0 12px; }
.ast-documents-info__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.ast-documents-pick { background: #fff; border: 1px solid var(--lg-border); border-radius: 16px; padding: 22px 24px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-documents-pick h2, .ast-documents-steps-panel h2 { font-size: clamp(1.15rem, 1.8vw, 1.4rem); font-family: var(--font-main); font-weight: 700; color: var(--lg-ink); margin: .1rem 0 .8rem; line-height: 1.16; }
.ast-documents-pick__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ast-documents-pick__list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--lg-border); text-decoration: none; color: var(--lg-ink); font-weight: 600; font-size: .95rem; }
.ast-documents-pick__list a:hover { background: rgba(58,117,255,0.05); border-color: rgba(58,117,255,0.3); }
.ast-documents-pick__list span { color: var(--lg-blue); font-size: 1.1rem; }
.ast-documents-steps-panel { background: #fff; border: 1px solid var(--lg-border); border-radius: 16px; padding: 22px 24px; box-shadow: 0 2px 14px rgba(58,117,255,0.05); }
.ast-documents-steps { list-style: none; padding: 0; margin: 0; counter-reset: dstep; display: grid; gap: 12px; }
.ast-documents-steps li { position: relative; padding-left: 42px; counter-increment: dstep; font-size: .93rem; color: var(--lg-body); line-height: 1.45; min-height: 30px; display: flex; align-items: center; }
.ast-documents-steps li::before { content: counter(dstep); position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--lg-blue), var(--lg-cyan)); color: #fff; font-family: var(--font-heading); font-size: .9rem; }
.ast-documents-panel-wrap { padding: 8px 0 12px; }
.ast-documents-note { background: linear-gradient(120deg, rgba(58,117,255,0.06), rgba(52,255,230,0.05)); border: 1px solid rgba(58,117,255,0.16); border-radius: 16px; padding: 22px 26px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ast-documents-note div h3 { font-size: 1rem; color: var(--lg-ink); margin: 0 0 .3rem; }
.ast-documents-note div p { font-size: .9rem; color: var(--lg-body); margin: 0; line-height: 1.48; }

/* ── shared dark CTA (touches footer) ── */
.ast-legal-cta, .ast-documents-cta { background: var(--lg-dark); padding: 46px 0; position: relative; overflow: hidden; margin-top: 18px; }
.ast-legal-cta::before, .ast-documents-cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58,117,255,0.2) 0%, transparent 70%), radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52,255,230,0.08) 0%, transparent 70%); pointer-events: none; }
.ast-legal-cta__inner, .ast-documents-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.ast-legal-cta__text h2, .ast-documents-cta__text h2 { font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-family: var(--font-main); font-weight: 700; color: #fff; margin: .1rem 0 .4rem; max-width: 34ch; line-height: 1.18; }
.ast-legal-cta__text p, .ast-documents-cta__text p { color: rgba(255,255,255,0.72); font-size: .97rem; margin: 0; max-width: 48ch; }
.ast-legal-cta__actions, .ast-documents-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; flex-shrink: 0; }

/* ── responsive ── */
@media (max-width: 1023px) {
  .ast-legal-hero__inner, .ast-documents-hero__inner { grid-template-columns: minmax(0, 1fr); }
  .ast-legal-hero__scene, .ast-documents-hero__scene { height: 270px; }
  .ast-legal-scene, .ast-documents-scene { height: 270px; }
  /* single column: TOC/nav (source-first) above the article; reset explicit grid placement */
  .ast-legal-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 900px; }
  .ast-legal-sidebar { grid-column: auto; grid-row: auto; }
  .ast-legal-article { grid-column: auto; grid-row: auto; }
  .ast-legal-sidebar__inner { position: static; }
  .ast-documents-info__grid { grid-template-columns: 1fr; }
  .ast-documents-note { grid-template-columns: 1fr; gap: 14px; }
  .ast-documents-grid, .ast-documents-grid[data-count="3"], .ast-documents-grid[data-count="5"],
  .ast-documents-grid[data-count="6"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ast-documents-catalog { padding: 24px 0 10px; }
  .ast-documents-grid, .ast-documents-grid[data-count="1"], .ast-documents-grid[data-count="2"],
  .ast-documents-grid[data-count="3"], .ast-documents-grid[data-count="4"],
  .ast-documents-grid[data-count="5"], .ast-documents-grid[data-count="6"] { grid-template-columns: 1fr; }
  .ast-legal-cta, .ast-documents-cta { padding: 40px 0; margin-top: 14px; }
  .ast-legal-cta__inner, .ast-documents-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-legal-article > p { font-size: .98rem; }
}
@media (max-width: 360px) {
  .ast-legal-scene, .ast-documents-scene { width: 288px; }
  .ast-legal-doc { width: 236px; }
}

/* ── reduced motion: fully assembled static frames ── */
@media (prefers-reduced-motion: reduce) {
  .ast-legal-doc, .ast-legal-doc__title, .ast-legal-doc__line, .ast-legal-check, .ast-legal-sec, .ast-legal-seal,
  .ast-documents-active, .ast-documents-file { animation: none !important; }
  .ast-legal-doc { opacity: 1 !important; transform: translate(-50%, -50%) !important; }
  .ast-legal-doc__title { opacity: 1 !important; }
  .ast-legal-doc__line { transform: scaleX(1) !important; }
  .ast-legal-check { opacity: 1 !important; transform: scale(1) !important; }
  .ast-legal-sec { opacity: 1 !important; transform: none !important; }
  .ast-legal-seal { opacity: 1 !important; transform: scale(1) rotate(0deg) !important; }
  .ast-documents-active { opacity: 1 !important; transform: translate(-50%, 0) !important; }
  .ast-documents-file--1 { opacity: .7 !important; transform: translateX(calc(-50% - 66px)) translateY(-6px) rotate(-9deg) !important; }
  .ast-documents-file--2 { opacity: .8 !important; transform: translateX(calc(-50% + 66px)) translateY(-4px) rotate(9deg) !important; }
  .ast-documents-file--3 { opacity: 0 !important; }
}
/* /AST legal and documents reference */

/* AST subtle page transitions */

/*
 * Quiet cross-document transition for same-origin navigation.
 * Unsupported browsers keep the normal instant navigation.
 */
@view-transition {
  navigation: auto;
}

@supports (view-transition-name: ast-page) {
  main#content {
    view-transition-name: ast-page;
  }

  /*
   * Shared header, service banner and footer remain visually stable.
   * Only the page content snapshot receives the dissolve.
   */
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
    mix-blend-mode: normal;
  }

  ::view-transition-group(ast-page) {
    animation-duration: 230ms;
    animation-timing-function: cubic-bezier(.2, .7, .2, 1);
  }

  ::view-transition-old(ast-page) {
    animation: astPageFocusOut 120ms ease-in both;
    transform-origin: center top;
    mix-blend-mode: normal;
  }

  ::view-transition-new(ast-page) {
    animation: astPageFocusIn 230ms cubic-bezier(.2, .7, .2, 1) both;
    transform-origin: center top;
    mix-blend-mode: normal;
  }
}

@keyframes astPageFocusOut {
  from {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
  }

  to {
    opacity: .86;
    filter: blur(2px);
    transform: scale(.997);
  }
}

@keyframes astPageFocusIn {
  from {
    opacity: .78;
    filter: blur(3px);
    transform: scale(.992);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  @view-transition {
    navigation: none;
  }

  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-old(ast-page),
  ::view-transition-new(ast-page) {
    animation: none !important;
  }
}

/* /AST subtle page transitions */

/* Managed protected public application form */

.form-trap {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.form-security {
    display: grid;
    gap: 10px;
    padding: 16px;
    border: 1px solid rgba(22, 41, 61, 0.1);
    border-radius: var(--radius-md);
    background: var(--bg-soft);
}

.form-security__label {
    font-weight: 700;
}

.form-security .smart-captcha {
    max-width: 100%;
    min-height: 100px;
}

.notice-form-error {
    padding: 18px 20px;
    border: 1px solid rgba(58, 117, 255, 0.22);
    border-radius: var(--radius-md);
    background: rgba(58, 117, 255, 0.08);
    color: var(--text);
    font-weight: 700;
}

.checkbox a {
    color: var(--primary-strong);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Managed public email reveal */

.ast-contacts-email-reveal {
    appearance: none;
    display: inline;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    text-align: left;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    cursor: pointer;
}

.ast-contacts-email-reveal:hover {
    color: var(--primary-strong);
}

.ast-contacts-email-reveal:focus-visible {
    outline: 2px solid rgba(58, 117, 255, 0.35);
    outline-offset: 4px;
}

.ast-contacts-email-reveal:disabled {
    cursor: wait;
    opacity: 0.72;
}

/* AST inner application reference */
/* root wrapper .ast-application-page; namespace .ast-application-* .
   Only brand colours: #3A75FF, #34FFE6, #DADADA, #706F6F, black, white and
   derivatives. Positive = cyan, active = blue, neutral = grey. No red/orange/yellow. */
.ast-application-page {
  --ap-dark: #050e28;
  --ap-blue: #3a75ff;
  --ap-cyan: #34ffe6;
  --ap-ink: #172a4d;
  --ap-muted: #4a5f85;
  --ap-body: #3f5478;
  --ap-teal: #14776a;
  --ap-gray: #706f6f;
  --ap-gray-soft: #dadada;
  --ap-border: rgba(58, 117, 255, 0.16);
  position: relative;
  /* NOTE: no `overflow-x: hidden` here on purpose. The hero and the CTA clip their own
     decorative overflow, and a clip on this wrapper would turn it into a scroll container,
     which silently disables `position: sticky` on the info column. Horizontal overflow is
     verified at 320–2560px instead of being masked. */
  /* one continuous light surface; hero and CTA paint their own opaque darks over it */
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-application-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
/* dark CTA flush to footer — no light strip */
.site-main:has(.ast-application-page) { padding-bottom: 0; }
.site-main:has(.ast-application-page) + .site-footer,
.site-main:has(.ast-application-page) + footer { margin-top: 0; }
.ast-application-main { background: transparent; }

.ast-application-kicker {
  margin: 0 0 .5rem; font-family: var(--font-heading); font-size: .74rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--ap-blue);
}
.ast-application-kicker--cyan { color: var(--ap-cyan); }

/* ── hero ── */
.ast-application-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 80% 16%, rgba(52, 255, 230, 0.18), transparent 32%),
    linear-gradient(135deg, var(--ap-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-application-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .14;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
}
.ast-application-hero__inner {
  position: relative; display: grid; align-items: center;
  grid-template-columns: minmax(0, 0.95fr) minmax(420px, 1.05fr);
  gap: clamp(16px, 2.4vw, 36px); min-height: 420px; padding: clamp(36px, 4.4vw, 54px) 0;
}
.ast-application-hero__content { display: grid; gap: 14px; align-content: center; z-index: 2; }
.ast-application-hero h1 {
  margin: 0; color: #fff; font-family: var(--font-heading); font-weight: 400;
  font-size: clamp(2.2rem, 3.4vw, 3.25rem); line-height: 1.04; letter-spacing: 0;
}
.ast-application-hero__lead {
  max-width: 46ch; margin: 0; color: rgba(255, 255, 255, 0.86);
  font-size: 1.06rem; line-height: 1.55;
}
.ast-application-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── hero micro-scene: данные → проверка адреса → звонок оператора ── */
.ast-application-hero__scene {
  position: relative; height: 388px; display: flex; align-items: center;
  justify-content: center; z-index: 1;
}
.ast-application-scene { position: relative; width: min(540px, 100%); height: 388px; }
.ast-application-scene__bg {
  position: absolute; inset: -10px 0; background-size: 300px; opacity: .1; pointer-events: none;
}
.ast-application-scene__card {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 286px;
  z-index: 4; background: #fff; border-radius: 16px; padding: 16px 18px;
  box-shadow: 0 24px 60px rgba(5, 14, 40, 0.5), 0 0 0 1px rgba(58, 117, 255, 0.18);
}
.ast-application-scene__title {
  display: block; margin-bottom: 11px; font-size: .96rem; font-weight: 700; color: var(--ap-ink);
}
.ast-application-scene__row {
  display: flex; align-items: center; gap: 8px; margin-bottom: 7px; padding: 7px 10px;
  border-radius: 9px; background: rgba(58, 117, 255, 0.06);
  border: 1px solid rgba(58, 117, 255, 0.14); opacity: 0; transform: translateX(-6px);
}
.ast-application-scene__row--name  { animation: astApRow 7s ease-in-out infinite; }
.ast-application-scene__row--phone { animation: astApRow 7s ease-in-out .5s infinite; }
.ast-application-scene__row--addr  { animation: astApRow 7s ease-in-out 1s infinite; }
.ast-application-scene__label {
  flex-shrink: 0; font-size: .68rem; font-weight: 700; color: var(--ap-muted);
}
.ast-application-scene__value {
  font-size: .78rem; color: var(--ap-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ast-application-scene__check { display: flex; align-items: center; gap: 8px; margin: 10px 0 9px; }
.ast-application-scene__check-bar {
  flex: 1; height: 6px; border-radius: 999px; background: rgba(58, 117, 255, 0.12); overflow: hidden;
}
.ast-application-scene__check-bar i {
  display: block; width: 0; height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--ap-blue), var(--ap-cyan));
  animation: astApCheck 7s ease-in-out infinite;
}
.ast-application-scene__check-label {
  flex-shrink: 0; font-size: .68rem; font-weight: 700; color: var(--ap-teal); opacity: 0;
  animation: astApCheckLabel 7s ease-in-out infinite;
}
.ast-application-scene__status {
  padding: 9px 12px; border-radius: 10px; text-align: center; font-size: .82rem; font-weight: 700;
  color: #05221f; background: linear-gradient(120deg, var(--ap-cyan), #7ffff1);
  box-shadow: 0 6px 16px rgba(52, 255, 230, 0.26);
  opacity: 0; transform: scale(.94); animation: astApStatus 7s ease-in-out infinite;
}
.ast-application-scene__spark {
  position: absolute; left: 126px; top: 50%; width: 10px; height: 10px; border-radius: 50%;
  background: var(--ap-cyan); box-shadow: 0 0 10px rgba(52, 255, 230, 0.9);
  opacity: 0; z-index: 5; animation: astApSpark 7s ease-in-out infinite;
}
.ast-application-scene__robot {
  position: absolute; left: 4px; bottom: 8px; height: 210px; width: auto; object-fit: contain;
  z-index: 3; filter: drop-shadow(0 18px 28px rgba(58, 117, 255, 0.32));
  transform-origin: bottom center; animation: astApRobot 7s ease-in-out infinite;
}
.ast-application-scene__signal {
  position: absolute; left: 92px; bottom: 178px; width: 16px; height: 16px; border-radius: 50%;
  background: rgba(52, 255, 230, 0.5); opacity: 0; z-index: 5;
  animation: astApSignal 7s ease-in-out infinite;
}
@keyframes astApRow { 0%, 4% { opacity: 0; transform: translateX(-6px); } 12%, 100% { opacity: 1; transform: translateX(0); } }
@keyframes astApCheck { 0%, 34% { width: 0; } 56%, 100% { width: 100%; } }
@keyframes astApCheckLabel { 0%, 52% { opacity: 0; } 58%, 100% { opacity: 1; } }
@keyframes astApStatus { 0%, 62% { opacity: 0; transform: scale(.94); } 72%, 100% { opacity: 1; transform: scale(1); } }
@keyframes astApSpark {
  0%, 34% { opacity: 0; transform: translate(0, -50%) scale(.6); }
  38% { opacity: 1; transform: translate(0, -50%) scale(1); }
  54% { opacity: 1; transform: translate(96px, -50%) scale(1); }
  60%, 100% { opacity: 0; transform: translate(96px, -50%) scale(.6); }
}
@keyframes astApRobot {
  0%, 10% { transform: rotate(0deg) translateY(0); }
  32% { transform: rotate(2.5deg) translateY(-3px); }
  58% { transform: rotate(1deg) translateY(-2px); }
  74% { transform: rotate(-2deg) translateY(-4px); }
  88%, 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes astApSignal {
  0%, 64% { opacity: 0; transform: scale(.5); }
  72% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 4px rgba(52, 255, 230, 0.24); }
  82%, 100% { opacity: 0; transform: scale(1.5); box-shadow: 0 0 0 12px rgba(52, 255, 230, 0); }
}

/* ── main zone: form is the primary object ── */
.ast-application-main { padding: 30px 0 22px; scroll-margin-top: 90px; }
.ast-application-main__grid {
  display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(290px, 0.85fr);
  gap: clamp(18px, 2vw, 28px); align-items: start; max-width: 1360px; margin-inline: auto;
}

.ast-application-panel {
  background: #fff; border: 1px solid var(--ap-border); border-radius: 18px;
  padding: clamp(20px, 2.8vw, 32px); box-shadow: 0 6px 26px rgba(58, 117, 255, 0.08);
  display: grid; gap: 18px; min-width: 0;
}
.ast-application-panel__head { display: block; }
.ast-application-panel__head h2 {
  margin: .1rem 0 .4rem; font-family: var(--font-main); font-weight: 700;
  font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.16; color: var(--ap-ink);
}
.ast-application-panel__lead {
  margin: 0; max-width: 62ch; font-size: .98rem; line-height: 1.5; color: var(--ap-muted);
}
.ast-application-chip {
  margin: 0; padding: 9px 14px; border-radius: 999px; align-self: start; justify-self: start;
  font-size: .88rem; color: var(--ap-ink); background: rgba(58, 117, 255, 0.08);
  border: 1px solid rgba(58, 117, 255, 0.22);
}
.ast-application-chip strong { font-weight: 700; }

/* ── success state — calm, brand cyan, readable reference ── */
.ast-application-success {
  display: flex; gap: 14px; align-items: flex-start; padding: 18px 20px; border-radius: 14px;
  background: linear-gradient(120deg, rgba(52, 255, 230, 0.14), rgba(58, 117, 255, 0.06));
  border: 1px solid rgba(52, 255, 230, 0.42);
}
.ast-application-success__mark {
  flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; margin-top: 2px;
  background: radial-gradient(circle at 50% 50%, var(--ap-cyan), #0fb9a4);
  box-shadow: 0 0 0 5px rgba(52, 255, 230, 0.18);
}
.ast-application-success__body { min-width: 0; }
.ast-application-success__title {
  margin: 0; font-size: 1.08rem; font-weight: 700; color: var(--ap-ink);
}
.ast-application-success__label {
  margin: .7rem 0 .15rem; font-size: .74rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ap-muted);
}
.ast-application-success__reference {
  margin: 0 0 .5rem; font-family: var(--font-heading); font-size: clamp(1.2rem, 2.2vw, 1.6rem);
  line-height: 1.1; letter-spacing: .02em; color: var(--ap-teal); word-break: break-all;
}
.ast-application-success__text { margin: 0; font-size: .94rem; line-height: 1.5; color: var(--ap-body); }

/* ── notices (form-level errors, disabled form) — blue/grey, never red ── */
.ast-application-page .ast-application-notice,
.ast-application-page .notice-form-error {
  display: flex; gap: 14px; align-items: flex-start; padding: 16px 20px; border-radius: 14px;
  background: rgba(58, 117, 255, 0.07); border: 1px solid rgba(58, 117, 255, 0.26);
  color: var(--ap-ink); font-weight: 400;
}
.ast-application-notice__mark {
  flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; margin-top: 2px;
  background: linear-gradient(135deg, var(--ap-blue), var(--ap-cyan));
  box-shadow: 0 0 0 5px rgba(58, 117, 255, 0.12);
}
.ast-application-notice p { margin: 0; font-size: .98rem; line-height: 1.5; font-weight: 700; }
.ast-application-notice__extra { margin: .35rem 0 0 !important; font-weight: 400 !important; color: var(--ap-body); }
.ast-application-notice a { color: var(--ap-blue); font-weight: 700; text-underline-offset: 3px; }

/* ── form ── */
.ast-application-form { display: grid; gap: 20px; }
.ast-application-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.ast-application-group__title {
  display: block; width: 100%; margin: 0 0 10px; padding: 0 0 8px;
  font-size: .78rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  color: var(--ap-muted); border-bottom: 1px solid rgba(58, 117, 255, 0.14);
}
.ast-application-group__fields { display: grid; gap: 14px; }
.ast-application-group__fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.ast-application-field { display: grid; gap: 6px; min-width: 0; }
.ast-application-field__label { font-size: .82rem; font-weight: 700; color: var(--ap-ink); }
.ast-application-field input,
.ast-application-field select,
.ast-application-field textarea {
  width: 100%; max-width: 100%; box-sizing: border-box; font: inherit; font-size: .96rem;
  color: var(--ap-ink); padding: 12px 14px; border-radius: 11px;
  border: 1px solid rgba(58, 117, 255, 0.24); background: #fbfdff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ast-application-field textarea { min-height: 132px; resize: vertical; line-height: 1.5; }
.ast-application-field input::placeholder,
.ast-application-field textarea::placeholder { color: #98a7c4; }
.ast-application-field input:focus-visible,
.ast-application-field select:focus-visible,
.ast-application-field textarea:focus-visible {
  outline: none; border-color: var(--ap-blue); box-shadow: 0 0 0 3px rgba(58, 117, 255, 0.18);
}
.ast-application-field__error {
  display: block; font-size: .86rem; line-height: 1.45; font-weight: 700; color: var(--ap-blue);
  padding-left: 12px; border-left: 3px solid var(--ap-blue);
}
.ast-application-field__hint { display: block; font-size: .82rem; line-height: 1.45; color: #6b7a99; }

/* ── consent ── */
.ast-application-consent { display: grid; gap: 8px; }
.ast-application-page .ast-application-consent__row {
  display: flex; align-items: flex-start; gap: 11px; padding: 14px 16px; border-radius: 12px;
  background: rgba(58, 117, 255, 0.04); border: 1px solid rgba(58, 117, 255, 0.16);
}
.ast-application-consent__row input { width: 19px; height: 19px; margin-top: 2px; flex-shrink: 0; accent-color: var(--ap-blue); }
.ast-application-consent__row span { font-size: .92rem; line-height: 1.5; color: var(--ap-body); font-weight: 400; }
.ast-application-page .ast-application-consent__row a { color: var(--ap-blue); font-weight: 700; text-underline-offset: 3px; }

/* ── captcha — part of the form, not a technical panel ── */
.ast-application-page .form-security.ast-application-security {
  display: grid; gap: 10px; justify-items: start; padding: 16px 18px; border-radius: 12px;
  background: rgba(58, 117, 255, 0.04); border: 1px solid rgba(58, 117, 255, 0.16);
}
.ast-application-page .ast-application-security__label {
  font-size: .82rem; font-weight: 700; color: var(--ap-ink);
}
.ast-application-page .ast-application-security .smart-captcha {
  width: 100%; max-width: 100%; min-width: 0; overflow: hidden;
  /* Reserve the widget height so the form does not jump while captcha.js loads. */
  min-height: 100px;
}

/* ── submit ── */
.ast-application-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
.ast-application-actions .button { flex-shrink: 0; }
.ast-application-actions__note {
  margin: 0; flex: 1 1 260px; max-width: 46ch; font-size: .86rem; line-height: 1.5; color: var(--ap-muted);
}

/* ── compact information column ── */
.ast-application-aside { display: grid; gap: 14px; align-content: start; min-width: 0; }
.ast-application-aside__block {
  background: #fff; border: 1px solid var(--ap-border); border-radius: 16px; padding: 20px 22px;
  box-shadow: 0 2px 14px rgba(58, 117, 255, 0.05);
}
.ast-application-aside__title {
  margin: 0 0 12px; font-size: .74rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ap-blue); font-family: var(--font-heading);
}
.ast-application-aside__text { margin: 0 0 12px; font-size: .92rem; line-height: 1.5; color: var(--ap-body); }

.ast-application-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; counter-reset: ap-step; }
.ast-application-steps li { counter-increment: ap-step; position: relative; padding-left: 42px; }
.ast-application-steps li::before {
  content: counter(ap-step, decimal-leading-zero); position: absolute; left: 0; top: 0;
  display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
  background: linear-gradient(135deg, var(--ap-blue), var(--ap-cyan)); color: #fff;
  font-family: var(--font-heading); font-size: .78rem; box-shadow: 0 0 0 4px rgba(58, 117, 255, 0.1);
}
.ast-application-steps h3 { margin: 4px 0 .2rem; font-size: .98rem; font-weight: 700; line-height: 1.3; color: var(--ap-ink); }
.ast-application-steps p { margin: 0; font-size: .89rem; line-height: 1.45; color: var(--ap-body); }

.ast-application-hours { margin: 0; display: grid; gap: 10px; }
.ast-application-hours__row { display: grid; gap: 2px; }
.ast-application-hours dt { font-size: .82rem; font-weight: 700; color: var(--ap-ink); }
.ast-application-hours dd { margin: 0; font-size: .89rem; line-height: 1.45; color: var(--ap-body); }

.ast-application-aside__block--call {
  background: linear-gradient(120deg, rgba(58, 117, 255, 0.06), rgba(52, 255, 230, 0.05));
  border-color: rgba(58, 117, 255, 0.2);
}
.ast-application-phone {
  display: inline-block; font-size: 1.12rem; font-weight: 700; color: var(--ap-blue);
  text-decoration: none; word-break: break-word;
}
.ast-application-phone:hover { text-decoration: underline; text-underline-offset: 4px; }
.ast-application-phone:focus-visible { outline: 2px solid rgba(58, 117, 255, 0.4); outline-offset: 3px; border-radius: 4px; }

/* ── dark CTA — touches footer ── */
.ast-application-cta { position: relative; overflow: hidden; margin-top: 18px; padding: 46px 0; background: var(--ap-dark); }
.ast-application-cta::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 50% 90% at 82% 50%, rgba(58, 117, 255, 0.2) 0%, transparent 70%),
    radial-gradient(ellipse 36% 60% at 12% 90%, rgba(52, 255, 230, 0.08) 0%, transparent 70%);
}
.ast-application-cta__inner {
  position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 28px;
}
.ast-application-cta__text h2 {
  margin: .1rem 0 .4rem; font-family: var(--font-main); font-weight: 700;
  font-size: clamp(1.4rem, 2.3vw, 1.95rem); line-height: 1.18; color: #fff; max-width: 30ch;
}
.ast-application-cta__text p { margin: 0; font-size: .97rem; color: rgba(255, 255, 255, 0.72); max-width: 52ch; }
.ast-application-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; flex-shrink: 0; }

/* ── responsive ── */
@media (min-width: 1280px) {
  /* the form column is much taller than the info column — keep the info in view
     instead of leaving a tall empty track beside the form */
  .ast-application-aside { position: sticky; top: 88px; }
}
@media (max-width: 1279px) {
  .ast-application-main__grid { grid-template-columns: minmax(0, 1.5fr) minmax(270px, 0.9fr); }
}
@media (max-width: 1023px) {
  .ast-application-hero__inner { grid-template-columns: 1fr; min-height: 0; }
  .ast-application-hero__scene { height: 344px; }
  .ast-application-scene { width: min(500px, 100%); height: 344px; }
  .ast-application-scene__robot { height: 186px; }
  .ast-application-main__grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .ast-application-main { padding: 24px 0 18px; }
  .ast-application-hero__scene { height: 318px; }
  .ast-application-scene { width: 300px; height: 318px; }
  .ast-application-scene__card { width: 208px; right: 0; padding: 12px 13px; }
  .ast-application-scene__title { font-size: .86rem; margin-bottom: 8px; }
  .ast-application-scene__value { font-size: .72rem; }
  .ast-application-scene__robot { height: 138px; left: 0; }
  .ast-application-scene__signal { left: 72px; bottom: 118px; }
  .ast-application-scene__spark { left: 96px; }
  .ast-application-group__fields--two { grid-template-columns: 1fr; }
  .ast-application-actions { flex-direction: column; align-items: stretch; }
  .ast-application-actions .button { width: 100%; }
  .ast-application-actions__note { max-width: none; }
  .ast-application-cta { padding: 40px 0; margin-top: 14px; }
  .ast-application-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-application-cta__actions .button { flex: 1 1 auto; }
  .ast-application-success { flex-direction: column; gap: 10px; }
}
@media (max-width: 390px) {
  .ast-application-scene { width: 276px; }
  .ast-application-scene__card { width: 190px; }
  .ast-application-scene__robot { height: 124px; }
  .ast-application-scene__signal { left: 62px; bottom: 104px; }
  .ast-application-panel { padding: 18px 16px; }
  .ast-application-aside__block { padding: 18px 16px; }
}

@keyframes astApSparkNarrow {
  0%, 34% { opacity: 0; transform: translate(0, -50%) scale(.6); }
  38% { opacity: 1; transform: translate(0, -50%) scale(1); }
  54% { opacity: 1; transform: translate(48px, -50%) scale(1); }
  60%, 100% { opacity: 0; transform: translate(48px, -50%) scale(.6); }
}
@media (max-width: 767px) {
  .ast-application-scene__spark { animation-name: astApSparkNarrow; }
}

/* ── reduced motion — one fully resolved, readable frame ── */
@media (prefers-reduced-motion: reduce) {
  .ast-application-scene__row,
  .ast-application-scene__check-bar i,
  .ast-application-scene__check-label,
  .ast-application-scene__status,
  .ast-application-scene__spark,
  .ast-application-scene__robot,
  .ast-application-scene__signal { animation: none !important; }
  .ast-application-scene__row { opacity: 1 !important; transform: none !important; }
  .ast-application-scene__check-bar i { width: 100% !important; }
  .ast-application-scene__check-label { opacity: 1 !important; }
  .ast-application-scene__status { opacity: 1 !important; transform: none !important; }
  .ast-application-scene__spark { opacity: 0 !important; }
}
/* /AST inner application reference */

/* AST 404 reference */
/* root wrapper .ast-not-found-page; namespace .ast-not-found-* .
   Single full-width dark brand section between header and footer.
   Brand palette only: #3A75FF, #34FFE6, #DADADA, #706F6F, black, white and
   derived transparencies. Neutral / unavailable state = grey, active check = blue. */
.ast-not-found-page {
  --nf-dark: #050e28;
  --nf-blue: #3a75ff;
  --nf-cyan: #34ffe6;
  --nf-ink: #172a4d;
  --nf-gray: #706f6f;
  --nf-gray-soft: #dadada;
  position: relative;
}
.ast-not-found-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
/* dark section flush to footer — no light strip, no extra gap */
.site-main:has(.ast-not-found-page) { padding-bottom: 0; }
.site-main:has(.ast-not-found-page) + .site-footer,
.site-main:has(.ast-not-found-page) + footer { margin-top: 0; }

/* ── dark brand section ── */
.ast-not-found-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 78% 18%, rgba(52, 255, 230, 0.16), transparent 34%),
    radial-gradient(ellipse 46% 70% at 14% 88%, rgba(58, 117, 255, 0.20), transparent 72%),
    linear-gradient(135deg, var(--nf-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-not-found-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .13;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
}
.ast-not-found-hero__inner {
  position: relative; z-index: 1; display: grid; align-items: center;
  /* compact page: the composition stays deliberate on 1920/2560 instead of drifting apart.
     `max-width` only — the shared --shell width and its 32px gutter stay in force. */
  max-width: 1360px; margin-inline: auto;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
  gap: clamp(20px, 3vw, 48px);
  min-height: 440px; padding: clamp(44px, 5vw, 74px) 0;
}

/* ── left column ── */
.ast-not-found-hero__content { display: grid; gap: 14px; align-content: center; max-width: 720px; }
.ast-not-found-kicker {
  margin: 0; font-family: var(--font-heading); font-size: .74rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--nf-cyan);
}
.ast-not-found-hero__title {
  margin: 0; color: #fff; font-family: var(--font-heading); font-weight: 400;
  font-size: clamp(2.15rem, 3.4vw, 3.5rem); line-height: 1.04; letter-spacing: normal;
}
.ast-not-found-hero__lead {
  margin: 0; max-width: 48ch; color: rgba(255, 255, 255, 0.86);
  font-size: 1.06rem; line-height: 1.55;
}
.ast-not-found-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 2px; }

.ast-not-found-hero__links { display: grid; gap: 8px; margin-top: 6px; }
.ast-not-found-hero__links-label {
  font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.52);
}
.ast-not-found-hero__links-list {
  list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 20px;
}
.ast-not-found-hero__links-list a {
  color: rgba(255, 255, 255, 0.8); font-size: .95rem; font-weight: 600; text-decoration: none;
  border-bottom: 1px solid rgba(58, 117, 255, 0.5); padding-bottom: 2px;
  transition: color .18s ease, border-color .18s ease;
}
.ast-not-found-hero__links-list a:hover,
.ast-not-found-hero__links-list a:focus-visible { color: #fff; border-bottom-color: var(--nf-cyan); }

/* ── right micro-scene: карточка потерянной страницы → проверка лупой → метка 404 ── */
.ast-not-found-hero__scene { position: relative; display: flex; justify-content: center; }
.ast-not-found-scene {
  display: flex; align-items: flex-end; justify-content: center;
  gap: clamp(10px, 1.4vw, 26px); width: 100%;
}
.ast-not-found-scene__robot {
  flex: 0 0 auto; height: 300px; width: auto; display: block;
  filter: drop-shadow(0 18px 30px rgba(58, 117, 255, 0.34));
  transform-origin: bottom center;
  animation: astNfRobot 7.2s ease-in-out infinite;
}
.ast-not-found-scene__stage { position: relative; flex: 1 1 340px; min-width: 0; max-width: 364px; }

.ast-not-found-scene__card {
  position: relative; z-index: 2; display: grid; gap: 12px;
  background: #fff; border-radius: 18px; padding: clamp(15px, 1.6vw, 20px);
  box-shadow: 0 24px 60px rgba(5, 14, 40, 0.5), 0 0 0 1px rgba(58, 117, 255, 0.16);
  animation: astNfCard 7.2s ease-in-out infinite;
}
.ast-not-found-scene__head { display: flex; align-items: center; gap: 10px; }
.ast-not-found-scene__dots { display: inline-flex; gap: 5px; flex: 0 0 auto; }
.ast-not-found-scene__dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--nf-gray-soft); }
.ast-not-found-scene__bar {
  flex: 1 1 auto; height: 9px; border-radius: 999px;
  border: 1px dashed var(--nf-gray-soft); background: rgba(112, 111, 111, 0.05);
}
.ast-not-found-scene__code {
  margin: 2px 0 0; font-family: var(--font-heading); font-weight: 400; font-size: 3.1rem;
  line-height: 1; letter-spacing: .02em; color: var(--nf-blue);
}
.ast-not-found-scene__lines { display: grid; gap: 8px; }
.ast-not-found-scene__line {
  height: 11px; border-radius: 999px;
  border: 1px dashed var(--nf-gray-soft); background: rgba(112, 111, 111, 0.05);
}
.ast-not-found-scene__line--short { width: 62%; }
.ast-not-found-scene__badge {
  margin: 2px 0 0; display: inline-flex; align-items: center; gap: 8px; justify-self: start;
  padding: 7px 13px; border-radius: 999px;
  background: rgba(112, 111, 111, 0.08); border: 1px solid var(--nf-gray-soft);
  font-size: .78rem; font-weight: 700; color: var(--nf-gray);
  animation: astNfBadge 7.2s ease-in-out infinite;
}
.ast-not-found-scene__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--nf-gray); flex: 0 0 auto; }

/* magnifier — the single active indicator of the scene */
.ast-not-found-scene__lens {
  position: absolute; left: 44%; top: 30%; z-index: 3;
  width: 84px; height: 84px; pointer-events: none;
  animation: astNfLens 7.2s ease-in-out infinite;
}
.ast-not-found-scene__lens-glass {
  position: absolute; inset: 0; border-radius: 50%;
  border: 3px solid var(--nf-blue); background: rgba(58, 117, 255, 0.10);
  box-shadow: 0 0 0 5px rgba(58, 117, 255, 0.12), 0 10px 26px rgba(5, 14, 40, 0.28);
}
.ast-not-found-scene__lens-grip {
  position: absolute; right: -16px; bottom: -10px; width: 30px; height: 9px;
  border-radius: 999px; background: var(--nf-blue); transform: rotate(42deg);
  box-shadow: 0 6px 14px rgba(5, 14, 40, 0.32);
}

/* one action at a time: card appears → magnifier checks it → 404 is confirmed → reset */
@keyframes astNfCard {
  0%, 8%    { opacity: 0; transform: translateY(18px) scale(.985); }
  19%, 88%  { opacity: 1; transform: translateY(0) scale(1); }
  97%, 100% { opacity: 0; transform: translateY(18px) scale(.985); }
}
@keyframes astNfLens {
  0%, 21%   { opacity: 0; transform: translate(-135%, 52%) scale(.82); }
  27%       { opacity: 1; transform: translate(-98%, 36%) scale(.9); }
  41%       { opacity: 1; transform: translate(12%, 10%) scale(1.02); }
  52%, 84%  { opacity: 1; transform: translate(0, 0) scale(1); }
  94%, 100% { opacity: 0; transform: translate(-135%, 52%) scale(.82); }
}
@keyframes astNfBadge {
  0%, 55%   { opacity: 0; transform: translateY(7px) scale(.96); }
  63%, 88%  { opacity: 1; transform: translateY(0) scale(1); }
  97%, 100% { opacity: 0; transform: translateY(7px) scale(.96); }
}
@keyframes astNfRobot {
  0%, 19%   { transform: rotate(0deg) translateY(0); }
  35%       { transform: rotate(2.2deg) translateY(-3px); }
  56%       { transform: rotate(1.4deg) translateY(-2px); }
  72%       { transform: rotate(-1.4deg) translateY(-2px); }
  88%, 100% { transform: rotate(0deg) translateY(0); }
}

/* ── responsive: 320 → 2560 ── */
@media (max-width: 1279px) {
  .ast-not-found-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(330px, 0.86fr); min-height: 420px; }
  .ast-not-found-scene__robot { height: 268px; }
}
@media (max-width: 1023px) {
  .ast-not-found-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 30px; min-height: 0; }
  .ast-not-found-hero__scene { justify-content: flex-start; }
  .ast-not-found-scene { justify-content: flex-start; max-width: 560px; }
  .ast-not-found-scene__robot { height: 244px; }
  .ast-not-found-scene__stage { flex: 1 1 310px; max-width: 336px; }
}
@media (max-width: 767px) {
  .ast-not-found-hero__inner { padding: 36px 0 40px; gap: 26px; }
  .ast-not-found-hero__lead { font-size: 1rem; }
  .ast-not-found-scene { max-width: 460px; }
  .ast-not-found-scene__robot { height: 200px; }
  .ast-not-found-scene__stage { flex: 1 1 240px; max-width: 290px; }
  .ast-not-found-scene__code { font-size: 2.6rem; }
  .ast-not-found-scene__lens { width: 70px; height: 70px; }
}
@media (max-width: 560px) {
  .ast-not-found-hero__actions { display: grid; grid-template-columns: 1fr; gap: 9px; }
  .ast-not-found-hero__actions .button { width: 100%; }
}
@media (max-width: 430px) {
  .ast-not-found-scene { gap: 10px; }
  .ast-not-found-scene__robot { height: 172px; }
  .ast-not-found-scene__stage { flex: 1 1 auto; max-width: none; }
  .ast-not-found-scene__card { gap: 10px; border-radius: 15px; }
  .ast-not-found-scene__code { font-size: 2.15rem; }
  .ast-not-found-scene__line { height: 9px; }
  .ast-not-found-scene__lens { width: 58px; height: 58px; left: 42%; top: 28%; }
  .ast-not-found-scene__lens-glass { border-width: 2px; }
  .ast-not-found-scene__lens-grip { width: 22px; height: 7px; right: -11px; bottom: -7px; }
  .ast-not-found-scene__badge { font-size: .72rem; padding: 6px 11px; }
}

/* reduced motion: the fully assembled, self-explanatory frame */
@media (prefers-reduced-motion: reduce) {
  .ast-not-found-scene__card,
  .ast-not-found-scene__lens,
  .ast-not-found-scene__badge,
  .ast-not-found-scene__robot { animation: none !important; }
  .ast-not-found-scene__card,
  .ast-not-found-scene__badge { opacity: 1 !important; transform: none !important; }
  .ast-not-found-scene__lens { opacity: 1 !important; transform: none !important; }
  .ast-not-found-scene__robot { transform: none !important; }
}

/*
 * The short 404 route fills the remaining viewport with one calm dark
 * surface. The service notice keeps its normal shared appearance.
 */
body:has(.ast-not-found-page) {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
}

body:has(.ast-not-found-page) > main#content {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    background: #071a3d;
}

body:has(.ast-not-found-page) > main#content > .ast-not-found-page {
    width: 100%;
    min-height: 100%;
    flex: 1 0 auto;
    background-color: #071a3d;
}

/* /AST 404 reference */

/* AST real tariffs and Sarmat partner */

/*
 * Реальная тарифная сетка на /tarify, спецпредложение ЖК «Песчаный»
 * и компактный партнёрский блок САРМАТ на /uslugi.
 * Раскладка построена на grid и flex; :has() здесь не используется.
 * Логотип партнёра — официальный вариант для светлых поверхностей,
 * фирменные цвета сохранены и не перекрашиваются.
 */

.ast-rt-group,
.ast-rt-special,
.ast-rt-disclaimer,
.ast-sarmat {
  --rt-ink: #172a4d;
  --rt-body: #3a4f72;
  --rt-muted: #43567a;
  --rt-soft: #56698a;
  --rt-blue: #3a75ff;
  --rt-border: rgba(58, 117, 255, 0.16);
  --rt-line: rgba(58, 117, 255, 0.13);
  --rt-surface-soft: #f3f7ff;
}

/* ── группы тарифов ── */
.ast-rt-group { margin-top: 30px; scroll-margin-top: 90px; }
.ast-rt-group:first-of-type { margin-top: 18px; }
.ast-rt-group__head { margin-bottom: 16px; }
.ast-rt-group__head h3 {
  font-family: var(--font-main);
  font-size: clamp(1.2rem, 1.7vw, 1.46rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--rt-ink);
  margin: 0 0 .34rem;
}
.ast-rt-group__head p {
  margin: 0;
  max-width: 68ch;
  font-size: .97rem;
  line-height: 1.55;
  color: var(--rt-muted);
}

/* Сетка каталога: 1 → 2 → 3 → 4 колонки.
   На 1366 px ряд из трёх карточек, четыре — только на широких экранах. */
.ast-rt-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
}

/* ── карточка тарифа ── */
.ast-rt-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: 24px 26px;
  background: #fff;
  border: 1px solid var(--rt-border);
  border-radius: 14px;
  box-shadow: 0 2px 14px rgba(58, 117, 255, 0.05);
}
.ast-rt-card--popular {
  border-color: rgba(58, 117, 255, 0.42);
  box-shadow: 0 6px 26px rgba(58, 117, 255, 0.12);
}
.ast-rt-card__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.ast-rt-card__title {
  margin: 0;
  font-family: var(--font-main);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.22;
  color: var(--rt-ink);
  overflow-wrap: anywhere;
}
.ast-rt-card__badge {
  flex: none;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 100px;
  color: var(--rt-blue);
  background: rgba(58, 117, 255, 0.1);
  border: 1px solid rgba(58, 117, 255, 0.24);
}
.ast-rt-card__speed {
  margin: -2px 0 0;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--rt-blue);
}
.ast-rt-card__price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px;
  margin: 2px 0 0;
  min-width: 0;
}
.ast-rt-card__price-prefix {
  font-size: .86rem;
  font-weight: 600;
  color: var(--rt-muted);
}
.ast-rt-card__price-value {
  font-size: clamp(1.5rem, 1.9vw, 1.78rem);
  font-weight: 700;
  line-height: 1.12;
  color: var(--rt-ink);
  overflow-wrap: anywhere;
}
.ast-rt-card__price-unit {
  font-size: .95rem;
  font-weight: 600;
  color: var(--rt-muted);
}
.ast-rt-card__spec {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin: 4px 0 0;
  padding: 15px 0 0;
  border-top: 1px solid var(--rt-line);
}
.ast-rt-card__spec-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4px 14px;
  min-width: 0;
}
.ast-rt-card__spec dt {
  margin: 0;
  font-size: .89rem;
  line-height: 1.4;
  color: var(--rt-muted);
}
.ast-rt-card__spec dd {
  margin: 0;
  margin-left: auto;
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--rt-ink);
  text-align: right;
  overflow-wrap: anywhere;
}
.ast-rt-card__audience,
.ast-rt-card__note {
  margin: 2px 0 0;
  font-size: .93rem;
  line-height: 1.55;
  color: var(--rt-body);
}
.ast-rt-card__note { color: var(--rt-soft); }
.ast-rt-card .button {
  margin-top: auto;
  align-self: flex-start;
}

/* ── спецпредложение ЖК «Песчаный» ── */
.ast-rt-special {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  gap: 28px;
  margin-top: 30px;
  padding: 28px 30px;
  background: #fff;
  border: 1px solid rgba(58, 117, 255, 0.34);
  border-radius: 18px;
  box-shadow: 0 10px 34px rgba(58, 117, 255, 0.12);
  overflow: hidden;
  scroll-margin-top: 90px;
}
.ast-rt-special::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, #3a75ff 0%, #34ffe6 100%);
}
.ast-rt-special__main { min-width: 0; }
.ast-rt-special__title {
  margin: 0 0 .55rem;
  font-family: var(--font-main);
  font-size: clamp(1.28rem, 2vw, 1.62rem);
  font-weight: 700;
  line-height: 1.18;
  color: var(--rt-ink);
  overflow-wrap: anywhere;
}
/* партнёрская идентификация — в содержательной части, рядом с заголовком */
.ast-rt-special__partner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rt-line);
}
.ast-rt-special__logo {
  display: block;
  width: 154px;
  max-width: 100%;
  height: auto;
}
.ast-rt-special__partner-note {
  font-size: .88rem;
  line-height: 1.4;
  color: var(--rt-soft);
}
.ast-rt-special__lead {
  margin: 0 0 15px;
  max-width: 64ch;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--rt-body);
}
.ast-rt-special__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
}
.ast-rt-special__facts li {
  font-size: .86rem;
  font-weight: 700;
  padding: 6px 13px;
  border-radius: 100px;
  color: var(--rt-ink);
  background: rgba(52, 255, 230, 0.14);
  border: 1px solid rgba(52, 255, 230, 0.36);
}
.ast-rt-special__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 24px;
}
.ast-rt-special__list li {
  position: relative;
  padding-left: 1.4em;
  font-size: .94rem;
  line-height: 1.5;
  color: var(--rt-body);
}
.ast-rt-special__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--rt-blue);
  font-weight: 700;
}
.ast-rt-special__note {
  margin: 16px 0 0;
  font-size: .9rem;
  line-height: 1.5;
  color: var(--rt-soft);
}

/* правая панель — только коммерческое решение */
.ast-rt-special__side {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-self: start;
  min-width: 0;
  padding: 24px 24px;
  background: var(--rt-surface-soft);
  border: 1px solid var(--rt-border);
  border-radius: 14px;
}
.ast-rt-special__price {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.ast-rt-special__price-label {
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--rt-soft);
}
.ast-rt-special__price-line {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 3px;
  min-width: 0;
}
.ast-rt-special__price-value {
  font-size: clamp(1.9rem, 2.7vw, 2.35rem);
  font-weight: 700;
  line-height: 1.08;
  color: var(--rt-ink);
  overflow-wrap: anywhere;
}
.ast-rt-special__price-unit {
  font-size: 1rem;
  font-weight: 600;
  color: var(--rt-muted);
}
.ast-rt-special__price-note {
  margin-top: 2px;
  font-size: .88rem;
  line-height: 1.5;
  color: var(--rt-muted);
}
.ast-rt-special__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 18px;
  border-top: 1px solid var(--rt-line);
}
.ast-rt-special__actions .button {
  width: 100%;
  justify-content: center;
  text-align: center;
}

/* ── честные оговорки под каталогом ── */
.ast-rt-disclaimer {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
}
.ast-rt-disclaimer li {
  position: relative;
  padding-left: 1.1em;
  font-size: .9rem;
  line-height: 1.5;
  color: var(--rt-muted);
}
.ast-rt-disclaimer li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--rt-blue);
}

/* ── /uslugi: компактный партнёрский блок ── */
.ast-services-partner { background: transparent; padding: 22px 0 8px; }
.ast-sarmat {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  padding: 30px 32px;
  background: #fff;
  border: 1px solid var(--rt-border);
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(58, 117, 255, 0.07);
}
.ast-sarmat__main { min-width: 0; }
.ast-sarmat__brand {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--rt-line);
}
.ast-sarmat__logo {
  display: block;
  width: 212px;
  max-width: 100%;
  height: auto;
}
.ast-sarmat__kicker { margin: 0; }
.ast-sarmat__title {
  margin: 0 0 .5rem;
  font-family: var(--font-main);
  font-size: clamp(1.3rem, 2vw, 1.68rem);
  font-weight: 700;
  line-height: 1.18;
  color: var(--rt-ink);
}
.ast-sarmat__text {
  margin: 0 0 14px;
  max-width: 68ch;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--rt-body);
}
.ast-sarmat__roles {
  margin: 0 0 18px;
  max-width: 68ch;
  padding-left: 14px;
  border-left: 3px solid rgba(58, 117, 255, 0.32);
  font-size: .96rem;
  line-height: 1.55;
  font-weight: 600;
  color: var(--rt-ink);
}
.ast-sarmat__aside { min-width: 0; }
.ast-sarmat__list {
  list-style: none;
  margin: 0;
  padding: 20px 22px;
  background: var(--rt-surface-soft);
  border: 1px solid var(--rt-border);
  border-radius: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 22px;
}
.ast-sarmat__list li {
  position: relative;
  padding-left: 1.3em;
  font-size: .95rem;
  line-height: 1.5;
  color: var(--rt-body);
}
.ast-sarmat__list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--rt-blue);
  font-weight: 700;
}
.ast-sarmat__cta { align-self: start; justify-self: start; }

/* ── адаптив ── */
@media (min-width: 700px) {
  .ast-rt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .ast-rt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* В группе четыре тарифа: с 1600 px они укладываются в один ровный ряд,
   ниже — три карточки в ряд с переносом четвёртой. */
@media (min-width: 1600px) {
  .ast-rt-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
}
@media (min-width: 1024px) {
  /* партнёрский блок: содержание слева, перечень услуг справа */
  .ast-sarmat {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 30px;
  }
  .ast-sarmat__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}
@media (max-width: 1023px) {
  .ast-rt-special { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 24px 24px; }
}
@media (max-width: 767px) {
  .ast-rt-group { margin-top: 24px; }
  .ast-rt-grid { gap: 12px; }
  .ast-rt-card { padding: 20px 20px; }
  .ast-rt-card .button { width: 100%; }
  .ast-rt-special { padding: 22px 18px; border-radius: 16px; }
  .ast-rt-special__list { grid-template-columns: minmax(0, 1fr); }
  .ast-rt-special__side { padding: 20px 18px; gap: 18px; }
  .ast-rt-disclaimer { flex-direction: column; gap: 8px; }
  .ast-sarmat { padding: 22px 20px; }
  .ast-sarmat__list { grid-template-columns: minmax(0, 1fr); padding: 18px 18px; }
  .ast-sarmat__cta { width: 100%; justify-content: center; text-align: center; }
}
@media (max-width: 430px) {
  .ast-rt-special__logo { width: 138px; }
  .ast-sarmat__logo { width: 178px; }
}

/* /AST real tariffs and Sarmat partner */

/* AST television content page */

/*
 * /televidenie — IP-телевидение МУВИ.
 * История страницы: экран включается → появляются условные плитки каналов →
 * выбирается пакет → пакет выбран. Логотипы телеканалов, кадры передач и
 * чужие товарные знаки не используются: плитки условные, названия в сцене —
 * реальные пакеты из data-файла.
 * Раскладка — grid и flex; :has() применяется только к принятому шву
 * «тёмный CTA → footer», как на остальных публичных страницах.
 */

.ast-tv-page {
  --tv-dark: #050e28;
  --tv-blue: #3a75ff;
  --tv-cyan: #34ffe6;
  --tv-ink: #172a4d;
  --tv-muted: #43567a;
  --tv-body: #3a4f72;
  --tv-border: rgba(58,117,255,0.16);
  --tv-line: rgba(58,117,255,0.13);
  --tv-soft: #f3f7ff;
  position: relative; overflow-x: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-tv-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-tv-page) { padding-bottom: 0; }
.site-main:has(.ast-tv-page) + .site-footer,
.site-main:has(.ast-tv-page) + footer { margin-top: 0; }
.ast-tv-provider, .ast-tv-packages, .ast-tv-setup,
.ast-tv-benefits, .ast-tv-tl, .ast-tv-notes { background: transparent; }

.ast-tv-kicker {
  margin: 0 0 .5rem; font-family: var(--font-heading); font-size: .74rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--tv-blue);
}
.ast-tv-kicker--cyan { color: var(--tv-cyan); }
.ast-tv-head { margin-bottom: 16px; }
.ast-tv-head h2 {
  margin: .1rem 0 .35rem; font-family: var(--font-main); font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 700; letter-spacing: normal; line-height: 1.16; color: var(--tv-ink);
}
.ast-tv-head p { margin: 0; max-width: 64ch; font-size: .98rem; line-height: 1.55; color: var(--tv-muted); }
.ast-tv-panel-title {
  margin: .1rem 0 .35rem; font-family: var(--font-main); font-size: clamp(1.3rem, 2vw, 1.68rem);
  font-weight: 700; line-height: 1.18; color: var(--tv-ink);
}

/* ── hero ── */
.ast-tv-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 78% 18%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--tv-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-tv-hero::before {
  content: ""; position: absolute; inset: 0; opacity: .14; pointer-events: none;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
}
.ast-tv-hero__inner {
  position: relative; display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(430px, 1.08fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center; min-height: 440px; padding: clamp(38px, 4.6vw, 56px) 0;
}
.ast-tv-hero__content { display: grid; gap: 15px; align-content: center; z-index: 2; }
.ast-tv-hero h1 {
  margin: 0; color: #fff; font-family: var(--font-heading); font-weight: 400;
  font-size: clamp(2.05rem, 3.2vw, 3.05rem); letter-spacing: 0; line-height: 1.05;
}
.ast-tv-hero__lead { max-width: 48ch; margin: 0; font-size: 1.08rem; line-height: 1.55; color: rgba(255,255,255,0.86); }
.ast-tv-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── hero-сцена: экран → плитки → выбор пакета → пакет выбран ── */
.ast-tv-hero__scene { position: relative; height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-tv-scene { position: relative; width: min(560px, 100%); height: 400px; }
.ast-tv-scene__bg {
  position: absolute; inset: -10px 0; opacity: .1; pointer-events: none;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 300px auto repeat;
}
.ast-tv-screen {
  position: absolute; right: 26px; top: 0; width: 322px; height: 202px; z-index: 2;
  border-radius: 16px; overflow: hidden; border: 1px solid rgba(120,170,255,0.26);
  background: linear-gradient(160deg, rgba(58,117,255,0.18), rgba(5,14,40,0.42));
  box-shadow: 0 22px 48px rgba(5,14,40,0.42);
}
.ast-tv-screen__light {
  position: absolute; inset: 0; opacity: 0; animation: astTvLight 7.2s ease-in-out infinite;
  background: radial-gradient(circle at 50% 42%, rgba(52,255,230,0.26), transparent 62%);
}
.ast-tv-screen__grid {
  position: absolute; inset: 16px 16px 30px; display: grid; gap: 9px;
  grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr));
}
.ast-tv-tile {
  display: block; border-radius: 7px; opacity: 0; transform: scale(.9);
  background: linear-gradient(150deg, rgba(58,117,255,0.42), rgba(52,255,230,0.14));
  border: 1px solid rgba(150,195,255,0.32);
}
.ast-tv-tile--1 { animation: astTvTile 7.2s ease-in-out infinite; }
.ast-tv-tile--2 { animation: astTvTile 7.2s ease-in-out .12s infinite; }
.ast-tv-tile--3 { animation: astTvTile 7.2s ease-in-out .24s infinite; }
.ast-tv-tile--4 { animation: astTvTile 7.2s ease-in-out .36s infinite; }
.ast-tv-tile--5 { animation: astTvTile 7.2s ease-in-out .48s infinite; }
.ast-tv-tile--6 { animation: astTvTile 7.2s ease-in-out .6s infinite; }
.ast-tv-screen__play {
  position: absolute; left: 16px; bottom: 11px; width: 10px; height: 10px; border-radius: 50%;
  background: var(--tv-cyan); opacity: 0; animation: astTvPlay 2.4s ease-in-out infinite;
}
.ast-tv-screen__stand {
  position: absolute; right: 152px; top: 202px; width: 70px; height: 14px; z-index: 2;
  border-radius: 0 0 9px 9px; background: rgba(120,170,255,0.3);
}
.ast-tv-screen__stand::after {
  content: ""; position: absolute; left: -22px; right: -22px; bottom: -5px; height: 5px;
  border-radius: 999px; background: rgba(120,170,255,0.24);
}
.ast-tv-scene__card {
  position: absolute; left: 0; bottom: 0; width: 288px; padding: 16px 18px; z-index: 4;
  border-radius: 16px; background: #fff;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.18);
}
.ast-tv-scene__title { display: block; margin-bottom: 12px; font-size: 1rem; font-weight: 700; color: var(--tv-ink); }
.ast-tv-scene__chips { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-bottom: 12px; }
.ast-tv-scene__chip {
  padding: 7px 4px; border-radius: 100px; text-align: center; font-size: .72rem; font-weight: 700;
  color: var(--tv-muted); background: rgba(58,117,255,0.08); border: 1px solid transparent;
}
.ast-tv-scene__chip--1 { animation: astTvChip1 7.2s ease-in-out infinite; }
.ast-tv-scene__chip--2 { animation: astTvChip2 7.2s ease-in-out infinite; }
.ast-tv-scene__chip--3 { animation: astTvChip3 7.2s ease-in-out infinite; }
.ast-tv-scene__chip--4 { animation: astTvChip4 7.2s ease-in-out infinite; }
.ast-tv-scene__pick {
  display: flex; align-items: center; gap: 8px; margin-bottom: 10px; padding: 9px 11px;
  border-radius: 10px; background: rgba(58,117,255,0.06); border: 1px solid rgba(58,117,255,0.14);
}
.ast-tv-scene__pick-label { flex-shrink: 0; font-size: .7rem; font-weight: 700; color: var(--tv-muted); }
.ast-tv-scene__pick-values { position: relative; flex: 1; height: 1.2em; }
.ast-tv-scene__pick-value {
  position: absolute; left: 0; top: 0; font-style: normal; font-size: .95rem; font-weight: 700;
  color: var(--tv-ink); opacity: 0;
}
.ast-tv-scene__pick-value--1 { animation: astTvVal1 7.2s ease-in-out infinite; }
.ast-tv-scene__pick-value--2 { animation: astTvVal2 7.2s ease-in-out infinite; }
.ast-tv-scene__pick-value--3 { animation: astTvVal3 7.2s ease-in-out infinite; }
.ast-tv-scene__pick-value--4 { animation: astTvVal4 7.2s ease-in-out infinite; }
.ast-tv-scene__status {
  padding: 10px 12px; border-radius: 10px; text-align: center; font-size: .84rem; font-weight: 700;
  color: var(--tv-ink); background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.4);
  opacity: 0; animation: astTvStatus 7.2s ease-in-out infinite;
}
.ast-tv-scene__robot {
  position: absolute; right: 0; bottom: 0; height: 224px; width: auto; object-fit: contain; z-index: 3;
  transform-origin: bottom center; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.34));
  animation: astTvRobot 7.2s ease-in-out infinite;
}
@keyframes astTvLight { 0% { opacity: 0; } 6%,100% { opacity: 1; } }
@keyframes astTvTile { 0%,6% { opacity: 0; transform: scale(.9); } 16%,100% { opacity: 1; transform: scale(1); } }
@keyframes astTvPlay { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
@keyframes astTvChip1 {
  0%,20% { background: rgba(58,117,255,0.08); color: var(--tv-muted); border-color: transparent; }
  24%,34% { background: var(--tv-blue); color: #fff; border-color: var(--tv-blue); }
  38%,100% { background: rgba(58,117,255,0.08); color: var(--tv-muted); border-color: transparent; }
}
@keyframes astTvChip2 {
  0%,32% { background: rgba(58,117,255,0.08); color: var(--tv-muted); border-color: transparent; }
  36%,44% { background: var(--tv-blue); color: #fff; border-color: var(--tv-blue); }
  48%,100% { background: rgba(58,117,255,0.08); color: var(--tv-muted); border-color: transparent; }
}
@keyframes astTvChip3 {
  0%,42% { background: rgba(58,117,255,0.08); color: var(--tv-muted); border-color: transparent; }
  46%,54% { background: var(--tv-blue); color: #fff; border-color: var(--tv-blue); }
  58%,100% { background: rgba(58,117,255,0.08); color: var(--tv-muted); border-color: transparent; }
}
@keyframes astTvChip4 {
  0%,54% { background: rgba(58,117,255,0.08); color: var(--tv-muted); border-color: transparent; }
  58%,100% { background: var(--tv-blue); color: #fff; border-color: var(--tv-blue); }
}
@keyframes astTvVal1 { 0%,20% { opacity: 0; } 24%,34% { opacity: 1; } 38%,100% { opacity: 0; } }
@keyframes astTvVal2 { 0%,32% { opacity: 0; } 36%,44% { opacity: 1; } 48%,100% { opacity: 0; } }
@keyframes astTvVal3 { 0%,42% { opacity: 0; } 46%,54% { opacity: 1; } 58%,100% { opacity: 0; } }
@keyframes astTvVal4 { 0%,54% { opacity: 0; } 58%,100% { opacity: 1; } }
@keyframes astTvStatus { 0%,62% { opacity: 0; } 68%,100% { opacity: 1; } }
@keyframes astTvRobot {
  0%,8% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-2deg) translateY(-3px); }
  58% { transform: rotate(-3deg) translateY(-4px); }
  84%,100% { transform: rotate(0deg) translateY(0); }
}

/* ── А. роли АСТ и Moovi ── */
.ast-tv-provider { padding: 30px 0 8px; }
.ast-tv-provider__inner {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start;
  padding: 28px 30px; background: #fff; border: 1px solid var(--tv-border); border-radius: 16px;
  box-shadow: 0 4px 20px rgba(58,117,255,0.07);
}
.ast-tv-provider__text { min-width: 0; }
.ast-tv-provider__lead { margin: 0 0 18px; max-width: 60ch; font-size: 1rem; line-height: 1.6; color: var(--tv-body); }
.ast-tv-provider__roles { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; min-width: 0; }
.ast-tv-role {
  display: grid; gap: 4px; padding: 16px 18px; border-radius: 12px;
  background: var(--tv-soft); border: 1px solid var(--tv-border);
}
.ast-tv-role__party { font-size: 1rem; font-weight: 700; color: var(--tv-ink); }
.ast-tv-role__badge {
  justify-self: start; padding: 3px 11px; border-radius: 100px; font-size: .74rem; font-weight: 700;
  color: var(--tv-ink); background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.38);
}
.ast-tv-role p { margin: 4px 0 0; font-size: .93rem; line-height: 1.52; color: var(--tv-body); }

/* ── Б. пакеты ── */
.ast-tv-packages { padding: 26px 0 10px; scroll-margin-top: 90px; }
.ast-tv-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: stretch; }
.ast-tv-card {
  display: flex; flex-direction: column; gap: 11px; min-width: 0; padding: 24px 26px;
  background: #fff; border: 1px solid var(--tv-border); border-radius: 14px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-tv-card--popular { border-color: rgba(58,117,255,0.42); box-shadow: 0 6px 26px rgba(58,117,255,0.12); }
.ast-tv-card__head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.ast-tv-card__title {
  margin: 0; font-family: var(--font-main); font-size: 1.2rem; font-weight: 700; line-height: 1.22;
  color: var(--tv-ink); overflow-wrap: anywhere;
}
.ast-tv-card__badge {
  flex: none; padding: 3px 10px; border-radius: 100px; font-size: .7rem; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase; color: var(--tv-blue);
  background: rgba(58,117,255,0.1); border: 1px solid rgba(58,117,255,0.24);
}
.ast-tv-card__channels { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin: -2px 0 0; }
.ast-tv-card__channels-value { font-size: 1.34rem; font-weight: 700; line-height: 1.15; color: var(--tv-blue); }
.ast-tv-card__channels-word { font-size: .95rem; font-weight: 600; color: var(--tv-blue); }
.ast-tv-card__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px; margin: 0; min-width: 0; }
.ast-tv-card__price-value {
  font-size: clamp(1.5rem, 1.9vw, 1.78rem); font-weight: 700; line-height: 1.12;
  color: var(--tv-ink); overflow-wrap: anywhere;
}
.ast-tv-card__price-unit { font-size: .95rem; font-weight: 600; color: var(--tv-muted); }
.ast-tv-card__spec { margin: 4px 0 0; padding: 15px 0 0; border-top: 1px solid var(--tv-line); }
.ast-tv-card__spec-row { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 14px; }
.ast-tv-card__spec dt { margin: 0; font-size: .89rem; line-height: 1.4; color: var(--tv-muted); }
.ast-tv-card__spec dd { margin: 0 0 0 auto; font-size: .92rem; font-weight: 700; line-height: 1.4; color: var(--tv-ink); text-align: right; }
.ast-tv-card__summary { margin: 2px 0 0; font-size: .93rem; line-height: 1.55; color: var(--tv-body); }
.ast-tv-card .button { margin-top: auto; align-self: flex-start; }

/* ── В. установка и вход ── */
.ast-tv-setup { padding: 26px 0 10px; }
.ast-tv-setup__inner {
  padding: 28px 30px; background: #fff; border: 1px solid var(--tv-border); border-radius: 16px;
  box-shadow: 0 4px 20px rgba(58,117,255,0.07);
}
.ast-tv-setup__head { margin-bottom: 18px; }
.ast-tv-setup__head p { margin: 0; max-width: 64ch; font-size: .97rem; line-height: 1.55; color: var(--tv-muted); }
.ast-tv-setup__list {
  list-style: none; margin: 0; padding: 0; counter-reset: ast-tv-setup;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px 30px;
}
.ast-tv-setup__list li {
  counter-increment: ast-tv-setup; position: relative; display: flex; align-items: center;
  min-height: 30px; padding-left: 42px; font-size: .96rem; line-height: 1.5; color: var(--tv-body);
}
.ast-tv-setup__list li::before {
  content: counter(ast-tv-setup); position: absolute; left: 0; top: 0; display: grid; place-items: center;
  width: 30px; height: 30px; border-radius: 9px; font-family: var(--font-heading); font-size: .88rem;
  color: #fff; background: linear-gradient(135deg, var(--tv-blue), #245ee8);
}
.ast-tv-setup__note {
  margin: 18px 0 0; padding: 14px 16px; border-radius: 12px; background: var(--tv-soft);
  border: 1px solid var(--tv-border); font-size: .93rem; line-height: 1.55; color: var(--tv-muted);
}

/* ── Г. что входит ── */
.ast-tv-benefits { padding: 26px 0 10px; }
.ast-tv-benefits__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.ast-tv-benefit {
  display: grid; gap: 5px; min-width: 0; padding: 20px 22px; background: #fff;
  border: 1px solid var(--tv-border); border-radius: 14px; box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-tv-benefit__mark { width: 26px; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--tv-blue), var(--tv-cyan)); }
.ast-tv-benefit h3 { margin: 6px 0 0; font-size: 1.02rem; font-weight: 700; line-height: 1.28; color: var(--tv-ink); }
.ast-tv-benefit p { margin: 0; font-size: .93rem; line-height: 1.52; color: var(--tv-body); }

/* ── Д. этапы подключения ── */
.ast-tv-tl { padding: 26px 0 10px; }
.ast-tv-tl__row {
  list-style: none; margin: 10px 0 0; padding: 0; counter-reset: ast-tv-tl;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px;
}
.ast-tv-tl__item {
  counter-increment: ast-tv-tl; position: relative; display: grid; gap: 5px; min-width: 0;
  padding: 20px 22px 20px 66px; background: #fff; border: 1px solid var(--tv-border);
  border-radius: 14px; box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-tv-tl__item::before {
  content: counter(ast-tv-tl, decimal-leading-zero); position: absolute; left: 22px; top: 20px;
  font-family: var(--font-heading); font-size: 1.16rem; line-height: 1; color: var(--tv-blue);
}
.ast-tv-tl__item h3 { margin: 0; font-size: 1.02rem; font-weight: 700; line-height: 1.28; color: var(--tv-ink); }
.ast-tv-tl__item p { margin: 0; font-size: .93rem; line-height: 1.52; color: var(--tv-body); }

/* ── Е. честные пояснения ── */
.ast-tv-notes { padding: 26px 0 12px; }
.ast-tv-notes__inner {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 28px 30px;
  background: #fff; border: 1px solid var(--tv-border); border-radius: 16px;
  box-shadow: 0 4px 20px rgba(58,117,255,0.07);
}
.ast-tv-notes__head h2 {
  margin: .1rem 0 0; font-family: var(--font-main); font-size: clamp(1.2rem, 1.9vw, 1.5rem);
  font-weight: 700; line-height: 1.16; color: var(--tv-ink);
}
.ast-tv-notes__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.ast-tv-notes__list h3 { margin: 0 0 .2rem; font-size: 1rem; font-weight: 700; color: var(--tv-ink); }
.ast-tv-notes__list p { margin: 0; font-size: .93rem; line-height: 1.52; color: var(--tv-body); }

/* ── Ж. тёмный CTA ── */
.ast-tv-cta { position: relative; overflow: hidden; margin-top: 20px; padding: 46px 0; background: var(--tv-dark); }
.ast-tv-cta::before {
  content: ""; position: absolute; inset: 0; opacity: .12; pointer-events: none;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
}
.ast-tv-cta__inner {
  position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 28px;
}
.ast-tv-cta__text h2 {
  margin: .1rem 0 .4rem; max-width: 32ch; font-family: var(--font-main);
  font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-weight: 700; line-height: 1.18; color: #fff;
}
.ast-tv-cta__text p { margin: 0; max-width: 54ch; font-size: .97rem; line-height: 1.55; color: rgba(255,255,255,0.72); }
.ast-tv-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; flex-shrink: 0; }

/* ── адаптив ── */
@media (min-width: 700px) {
  .ast-tv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-tv-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-tv-tl__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-tv-setup__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-tv-notes__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .ast-tv-provider__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 28px; }
  .ast-tv-benefits__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ast-tv-tl__row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ast-tv-notes__inner { grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 26px; }
}
@media (min-width: 1280px) {
  .ast-tv-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  .ast-tv-hero__inner { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .ast-tv-hero__scene { height: 380px; }
}
@media (max-width: 767px) {
  .ast-tv-hero__scene { height: 350px; }
  .ast-tv-scene { width: 320px; height: 350px; }
  .ast-tv-screen { right: 0; width: 240px; height: 152px; }
  .ast-tv-screen__grid { inset: 12px 12px 24px; gap: 7px; }
  /* подставка перекрывалась карточкой выбора — на узких экранах экран
     читается по рамке и плиткам, декоративная деталь не нужна */
  .ast-tv-screen__stand { display: none; }
  .ast-tv-scene__card { width: 250px; padding: 13px 14px; }
  .ast-tv-scene__title { margin-bottom: 10px; font-size: .92rem; }
  .ast-tv-scene__robot { height: 126px; }
  .ast-tv-provider__inner, .ast-tv-setup__inner, .ast-tv-notes__inner { padding: 22px 20px; }
  .ast-tv-card { padding: 20px 20px; }
  .ast-tv-card .button { width: 100%; }
  .ast-tv-cta { margin-top: 14px; padding: 40px 0; }
  .ast-tv-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-tv-cta__actions .button { width: 100%; justify-content: center; text-align: center; }
}
@media (max-width: 430px) {
  .ast-tv-scene { width: 288px; }
  .ast-tv-screen { width: 214px; height: 136px; }
  .ast-tv-scene__card { width: 228px; }
  .ast-tv-scene__robot { height: 112px; }
  .ast-tv-hero__actions .button { width: 100%; justify-content: center; text-align: center; }
}

/* ── reduced motion: полностью собранный статичный кадр ── */
@media (prefers-reduced-motion: reduce) {
  .ast-tv-screen__light, .ast-tv-tile, .ast-tv-screen__play, .ast-tv-scene__chip,
  .ast-tv-scene__pick-value, .ast-tv-scene__status, .ast-tv-scene__robot { animation: none !important; }
  .ast-tv-screen__light, .ast-tv-screen__play, .ast-tv-scene__status { opacity: 1; }
  .ast-tv-tile { opacity: 1; transform: scale(1); }
  .ast-tv-scene__robot { transform: none; }
  /* выбран последний пакет — сцена читается без движения */
  .ast-tv-scene__chip--4 { background: var(--tv-blue); color: #fff; border-color: var(--tv-blue); }
  .ast-tv-scene__pick-value--4 { opacity: 1; }
}

/* /AST television content page */

/* AST video surveillance content page */

/*
 * /videonablyudenie — видеонаблюдение для дома, офиса и объекта.
 * История страницы: контур объекта → активируются точки камер → тянутся
 * линии сети к узлу → на экране появляются условные кадры → «Система готова».
 * Кадры абстрактные: реальных записей, лиц, номеров и логотипов производителей
 * в сцене нет. Индикатор записи — фирменный бирюзовый, без тревожной красной
 * стилистики.
 * Раскладка — grid и flex; :has() применяется только к принятому шву
 * «тёмный CTA → footer», как на остальных публичных страницах.
 */

.ast-vs-page {
  --vs-dark: #050e28;
  --vs-blue: #3a75ff;
  --vs-cyan: #34ffe6;
  --vs-ink: #172a4d;
  --vs-muted: #43567a;
  --vs-body: #3a4f72;
  --vs-border: rgba(58,117,255,0.16);
  --vs-line: rgba(58,117,255,0.13);
  --vs-soft: #f3f7ff;
  position: relative; overflow-x: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.90)),
    url("/assets/img/brand/pattern/ast-pattern-brand-light.svg") center / 680px auto repeat,
    #f7fbff;
}
.ast-vs-shell { width: min(1760px, calc(100% - 32px)); margin-inline: auto; }
.site-main:has(.ast-vs-page) { padding-bottom: 0; }
.site-main:has(.ast-vs-page) + .site-footer,
.site-main:has(.ast-vs-page) + footer { margin-top: 0; }
.ast-vs-scenarios, .ast-vs-solution, .ast-vs-benefits,
.ast-vs-tl, .ast-vs-calc, .ast-vs-notes, .ast-vs-roles { background: transparent; }

.ast-vs-kicker {
  margin: 0 0 .5rem; font-family: var(--font-heading); font-size: .74rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--vs-blue);
}
.ast-vs-kicker--cyan { color: var(--vs-cyan); }
.ast-vs-head { margin-bottom: 16px; }
.ast-vs-head h2 {
  margin: .1rem 0 .35rem; font-family: var(--font-main); font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 700; letter-spacing: normal; line-height: 1.16; color: var(--vs-ink);
}
.ast-vs-head p { margin: 0; max-width: 64ch; font-size: .98rem; line-height: 1.55; color: var(--vs-muted); }
.ast-vs-panel-title {
  margin: .1rem 0 .45rem; font-family: var(--font-main); font-size: clamp(1.3rem, 2vw, 1.68rem);
  font-weight: 700; line-height: 1.18; color: var(--vs-ink);
}

/* ── hero ── */
.ast-vs-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 76% 20%, rgba(52,255,230,0.18), transparent 32%),
    linear-gradient(135deg, var(--vs-dark) 0%, #0a1f48 52%, #123778 100%);
}
.ast-vs-hero::before {
  content: ""; position: absolute; inset: 0; opacity: .14; pointer-events: none;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
}
.ast-vs-hero__inner {
  position: relative; display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(430px, 1.08fr);
  gap: clamp(16px, 2.4vw, 36px); align-items: center; min-height: 440px; padding: clamp(38px, 4.6vw, 56px) 0;
}
.ast-vs-hero__content { display: grid; gap: 15px; align-content: center; min-width: 0; z-index: 2; }
.ast-vs-hero h1 {
  margin: 0; color: #fff; font-family: var(--font-heading); font-weight: 400;
  font-size: clamp(2rem, 3.1vw, 2.95rem); letter-spacing: 0; line-height: 1.05;
}
.ast-vs-hero__lead { max-width: 48ch; margin: 0; font-size: 1.08rem; line-height: 1.55; color: rgba(255,255,255,0.86); }
.ast-vs-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── hero-сцена ── */
.ast-vs-hero__scene { position: relative; height: 410px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.ast-vs-scene { position: relative; width: min(560px, 100%); height: 410px; }
.ast-vs-scene__bg {
  position: absolute; inset: -10px 0; opacity: .1; pointer-events: none;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 300px auto repeat;
}
.ast-vs-plan { position: absolute; left: 0; top: 0; width: 360px; height: 208px; z-index: 2; }
.vs-site {
  fill: rgba(58,117,255,0.08); stroke: rgba(150,195,255,0.5); stroke-width: 2; stroke-dasharray: 1040;
  stroke-dashoffset: 1040; animation: astVsDraw 7.2s ease-in-out infinite;
}
.vs-house {
  fill: rgba(58,117,255,0.22); stroke: #d5e6ff; stroke-width: 2.2; stroke-linejoin: round;
  stroke-dasharray: 300; stroke-dashoffset: 300; animation: astVsHouse 7.2s ease-in-out infinite;
}
.vs-house-door { stroke: rgba(213,230,255,0.75); stroke-width: 2; opacity: 0; animation: astVsDoor 7.2s ease-in-out infinite; }
.vs-link {
  stroke: var(--vs-cyan); stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 160;
  stroke-dashoffset: 160; opacity: .85;
}
.vs-link--1 { animation: astVsLink 7.2s ease-in-out infinite; }
.vs-link--2 { animation: astVsLink 7.2s ease-in-out .16s infinite; }
.vs-link--3 { animation: astVsLink 7.2s ease-in-out .32s infinite; }
.vs-cam { opacity: 0; transform-origin: center; }
.vs-cam--1 { animation: astVsCam 7.2s ease-in-out infinite; }
.vs-cam--2 { animation: astVsCam 7.2s ease-in-out .18s infinite; }
.vs-cam--3 { animation: astVsCam 7.2s ease-in-out .36s infinite; }
.vs-cam__dot { fill: var(--vs-cyan); filter: drop-shadow(0 0 6px rgba(52,255,230,0.8)); }
.vs-cam__cone { fill: rgba(52,255,230,0.22); stroke: rgba(52,255,230,0.5); stroke-width: 1.4; }
.vs-node { opacity: 0; animation: astVsNode 7.2s ease-in-out infinite; }
.vs-node__box { fill: rgba(5,14,40,0.72); stroke: #d5e6ff; stroke-width: 2; }
.vs-node__lines { stroke: var(--vs-cyan); stroke-width: 2; stroke-linecap: round; }

.ast-vs-monitor {
  position: absolute; left: 0; bottom: 0; width: 330px; padding: 15px 17px; z-index: 4;
  border-radius: 16px; background: #fff;
  box-shadow: 0 24px 60px rgba(5,14,40,0.5), 0 0 0 1px rgba(58,117,255,0.18);
}
.ast-vs-monitor__title { display: block; margin-bottom: 11px; font-size: 1rem; font-weight: 700; color: var(--vs-ink); }
.ast-vs-monitor__frames { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.ast-vs-frame {
  display: block; height: 54px; border-radius: 8px; opacity: .16; transform: scale(.97);
  background: linear-gradient(150deg, rgba(58,117,255,0.55), rgba(52,255,230,0.22));
  border: 1px solid rgba(120,170,255,0.42);
}
.ast-vs-frame--1 { animation: astVsFrame 7.2s ease-in-out infinite; }
.ast-vs-frame--2 { animation: astVsFrame 7.2s ease-in-out .14s infinite; }
.ast-vs-frame--3 { animation: astVsFrame 7.2s ease-in-out .28s infinite; }
.ast-vs-monitor__status {
  display: flex; align-items: center; gap: 9px; padding: 9px 12px; border-radius: 10px;
  background: rgba(52,255,230,0.16); border: 1px solid rgba(52,255,230,0.4);
  opacity: 0; animation: astVsStatus 7.2s ease-in-out infinite;
}
.ast-vs-monitor__rec {
  width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
  background: var(--vs-cyan); animation: astVsRec 2.4s ease-in-out infinite;
}
.ast-vs-monitor__label { font-size: .86rem; font-weight: 700; color: var(--vs-ink); }
.ast-vs-scene__robot {
  position: absolute; right: 0; bottom: 0; height: 228px; width: auto; object-fit: contain; z-index: 3;
  transform-origin: bottom center; filter: drop-shadow(0 18px 28px rgba(58,117,255,0.34));
  animation: astVsRobot 7.2s ease-in-out infinite;
}
@keyframes astVsDraw { 0% { stroke-dashoffset: 1040; } 12%,100% { stroke-dashoffset: 0; } }
@keyframes astVsHouse { 0%,4% { stroke-dashoffset: 300; } 18%,100% { stroke-dashoffset: 0; } }
@keyframes astVsDoor { 0%,16% { opacity: 0; } 24%,100% { opacity: 1; } }
@keyframes astVsCam { 0%,20% { opacity: 0; transform: scale(.7); } 30%,100% { opacity: 1; transform: scale(1); } }
@keyframes astVsLink { 0%,30% { stroke-dashoffset: 160; } 44%,100% { stroke-dashoffset: 0; } }
@keyframes astVsNode { 0%,38% { opacity: 0; } 48%,100% { opacity: 1; } }
@keyframes astVsFrame { 0%,46% { opacity: .16; transform: scale(.97); } 58%,100% { opacity: 1; transform: scale(1); } }
@keyframes astVsStatus { 0%,60% { opacity: 0; } 68%,100% { opacity: 1; } }
@keyframes astVsRec { 0%,100% { opacity: .4; } 50% { opacity: 1; } }
@keyframes astVsRobot {
  0%,10% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-2deg) translateY(-3px); }
  62% { transform: rotate(-3deg) translateY(-4px); }
  88%,100% { transform: rotate(0deg) translateY(0); }
}

/* ── А. сценарии ── */
.ast-vs-scenarios { padding: 30px 0 10px; scroll-margin-top: 90px; }
.ast-vs-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: stretch; }
.ast-vs-card {
  display: flex; flex-direction: column; gap: 9px; min-width: 0; padding: 24px 26px;
  background: #fff; border: 1px solid var(--vs-border); border-radius: 14px;
  box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-vs-card__audience {
  align-self: flex-start; padding: 3px 11px; border-radius: 100px; font-size: .7rem; font-weight: 700;
  color: var(--vs-ink); background: rgba(52,255,230,0.12); border: 1px solid rgba(52,255,230,0.32);
}
.ast-vs-card h3 {
  margin: .1rem 0 0; font-family: var(--font-main); font-size: 1.18rem; font-weight: 700;
  line-height: 1.3; color: var(--vs-ink); overflow-wrap: anywhere;
}
.ast-vs-card__summary { margin: 0; font-size: .95rem; line-height: 1.55; color: var(--vs-body); }
.ast-vs-card__block { display: grid; gap: 6px; margin-top: 4px; }
.ast-vs-card__label {
  font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--vs-muted);
}
.ast-vs-card__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ast-vs-card__list li {
  position: relative; padding-left: 1.35em; font-size: .92rem; line-height: 1.45; color: var(--vs-body);
}
.ast-vs-card__list li::before { content: "✓"; position: absolute; left: 0; color: var(--vs-blue); font-weight: 700; }
.ast-vs-card__note {
  margin: auto 0 0; padding: 12px 14px; border-radius: 10px; background: var(--vs-soft);
  border: 1px solid var(--vs-border); font-size: .88rem; line-height: 1.5; color: var(--vs-muted);
}

/* ── Б. состав решения ── */
.ast-vs-solution { padding: 26px 0 10px; }
.ast-vs-solution__grid {
  list-style: none; margin: 0; padding: 0; counter-reset: ast-vs-part;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px;
}
.ast-vs-part {
  counter-increment: ast-vs-part; position: relative; display: grid; gap: 4px; min-width: 0;
  padding: 20px 22px 20px 64px; background: #fff; border: 1px solid var(--vs-border);
  border-radius: 14px; box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-vs-part::before {
  content: counter(ast-vs-part, decimal-leading-zero); position: absolute; left: 22px; top: 20px;
  font-family: var(--font-heading); font-size: 1.1rem; line-height: 1; color: var(--vs-blue);
}
.ast-vs-part h3 { margin: 0; font-size: 1.02rem; font-weight: 700; line-height: 1.28; color: var(--vs-ink); }
.ast-vs-part p { margin: 0; font-size: .93rem; line-height: 1.52; color: var(--vs-body); }
.ast-vs-solution__note {
  margin: 16px 0 0; padding: 14px 16px; border-radius: 12px; background: var(--vs-soft);
  border: 1px solid var(--vs-border); font-size: .93rem; line-height: 1.55; color: var(--vs-muted);
}

/* ── В. задачи и преимущества ── */
.ast-vs-benefits { padding: 26px 0 10px; }
.ast-vs-benefits__inner {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 28px 30px;
  background: #fff; border: 1px solid var(--vs-border); border-radius: 16px;
  box-shadow: 0 4px 20px rgba(58,117,255,0.07);
}
.ast-vs-benefits__list {
  list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px 26px;
}
.ast-vs-benefits__list li {
  position: relative; padding-left: 1.5em; font-size: .97rem; line-height: 1.5; color: var(--vs-body);
}
.ast-vs-benefits__list li::before {
  content: ""; position: absolute; left: 0; top: .55em; width: 14px; height: 4px; border-radius: 999px;
  background: linear-gradient(90deg, var(--vs-blue), var(--vs-cyan));
}

/* ── Г. этапы работы ── */
.ast-vs-tl { padding: 26px 0 10px; }
.ast-vs-tl__row {
  list-style: none; margin: 10px 0 0; padding: 0; counter-reset: ast-vs-tl;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px;
}
.ast-vs-tl__item {
  counter-increment: ast-vs-tl; position: relative; display: grid; gap: 5px; min-width: 0;
  padding: 58px 22px 20px; background: #fff; border: 1px solid var(--vs-border);
  border-radius: 14px; box-shadow: 0 2px 14px rgba(58,117,255,0.05);
}
.ast-vs-tl__item::before {
  content: counter(ast-vs-tl, decimal-leading-zero); position: absolute; left: 22px; top: 18px;
  display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px;
  font-family: var(--font-heading); font-size: .86rem; color: #fff;
  background: linear-gradient(135deg, var(--vs-blue), #245ee8);
}
.ast-vs-tl__item h3 { margin: 0; font-size: 1.02rem; font-weight: 700; line-height: 1.28; color: var(--vs-ink); }
.ast-vs-tl__item p { margin: 0; font-size: .92rem; line-height: 1.5; color: var(--vs-body); }

/* ── Д. индивидуальный расчёт ── */
.ast-vs-calc { padding: 26px 0 10px; }
.ast-vs-calc__inner {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 28px 30px;
  background: #fff; border: 1px solid rgba(58,117,255,0.34); border-radius: 16px;
  box-shadow: 0 10px 34px rgba(58,117,255,0.12); position: relative; overflow: hidden;
}
.ast-vs-calc__inner::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 4px;
  background: linear-gradient(90deg, #3a75ff 0%, #34ffe6 100%);
}
.ast-vs-calc__text { min-width: 0; }
.ast-vs-calc__lead { margin: 0 0 18px; max-width: 58ch; font-size: 1rem; line-height: 1.6; color: var(--vs-body); }
.ast-vs-calc__factors {
  min-width: 0; padding: 20px 22px; border-radius: 12px;
  background: var(--vs-soft); border: 1px solid var(--vs-border);
}
.ast-vs-calc__label {
  display: block; margin-bottom: 10px; font-size: .72rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--vs-muted);
}
.ast-vs-calc__factors ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ast-vs-calc__factors li {
  position: relative; padding-left: 1.3em; font-size: .93rem; line-height: 1.5; color: var(--vs-body);
}
.ast-vs-calc__factors li::before { content: "•"; position: absolute; left: 0; color: var(--vs-blue); font-weight: 700; }

/* ── Е. важные пояснения ── */
.ast-vs-notes { padding: 26px 0 10px; }
.ast-vs-notes__inner {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 28px 30px;
  background: #fff; border: 1px solid var(--vs-border); border-radius: 16px;
  box-shadow: 0 4px 20px rgba(58,117,255,0.07);
}
.ast-vs-notes__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.ast-vs-notes__list h3 { margin: 0 0 .2rem; font-size: 1rem; font-weight: 700; color: var(--vs-ink); }
.ast-vs-notes__list p { margin: 0; font-size: .93rem; line-height: 1.52; color: var(--vs-body); }

/* ── Ж. роли АСТ и партнёра ── */
.ast-vs-roles { padding: 26px 0 12px; }
.ast-vs-roles__inner {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start;
  padding: 28px 30px; background: #fff; border: 1px solid var(--vs-border); border-radius: 16px;
  box-shadow: 0 4px 20px rgba(58,117,255,0.07);
}
.ast-vs-roles__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.ast-vs-roles__list li {
  position: relative; padding-left: 1.4em; font-size: .95rem; line-height: 1.5; color: var(--vs-body);
}
.ast-vs-roles__list li::before { content: "✓"; position: absolute; left: 0; color: var(--vs-blue); font-weight: 700; }
.ast-vs-partner {
  display: grid; gap: 9px; justify-items: start; min-width: 0; padding: 20px 22px;
  border-radius: 12px; background: var(--vs-soft); border: 1px solid var(--vs-border);
}
.ast-vs-partner__logo { display: block; width: 148px; max-width: 100%; height: auto; }
.ast-vs-partner h3 { margin: 4px 0 0; font-size: 1.02rem; font-weight: 700; line-height: 1.3; color: var(--vs-ink); }
.ast-vs-partner p { margin: 0; font-size: .92rem; line-height: 1.52; color: var(--vs-body); }

/* ── З. тёмный CTA ── */
.ast-vs-cta { position: relative; overflow: hidden; margin-top: 20px; padding: 46px 0; background: var(--vs-dark); }
.ast-vs-cta::before {
  content: ""; position: absolute; inset: 0; opacity: .12; pointer-events: none;
  background: url("/assets/img/brand/pattern/ast-pattern-brand-color.svg") center / 680px auto repeat;
}
.ast-vs-cta__inner {
  position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 28px;
}
.ast-vs-cta__text h2 {
  margin: .1rem 0 .4rem; max-width: 32ch; font-family: var(--font-main);
  font-size: clamp(1.4rem, 2.3vw, 1.95rem); font-weight: 700; line-height: 1.18; color: #fff;
}
.ast-vs-cta__text p { margin: 0; max-width: 54ch; font-size: .97rem; line-height: 1.55; color: rgba(255,255,255,0.72); }
.ast-vs-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; flex-shrink: 0; }

/* ── адаптив ── */
@media (min-width: 700px) {
  .ast-vs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-vs-solution__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-vs-benefits__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-vs-tl__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-vs-notes__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .ast-vs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ast-vs-solution__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ast-vs-benefits__inner { grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 28px; }
  .ast-vs-tl__row { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .ast-vs-calc__inner { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 30px; }
  .ast-vs-notes__inner { grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 26px; }
  .ast-vs-notes__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-vs-roles__inner { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 30px; }
}
@media (max-width: 1023px) {
  .ast-vs-hero__inner { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .ast-vs-hero__scene { height: 390px; }
}
@media (max-width: 767px) {
  .ast-vs-hero__scene { height: 350px; }
  .ast-vs-scene { width: 320px; height: 350px; }
  .ast-vs-plan { width: 250px; height: 145px; }
  .ast-vs-monitor { width: 262px; padding: 12px 14px; }
  .ast-vs-monitor__title { margin-bottom: 9px; font-size: .92rem; }
  .ast-vs-frame { height: 40px; }
  .ast-vs-scene__robot { height: 132px; }
  .ast-vs-card { padding: 20px 20px; }
  .ast-vs-benefits__inner, .ast-vs-calc__inner,
  .ast-vs-notes__inner, .ast-vs-roles__inner { padding: 22px 20px; }
  .ast-vs-calc__text .button { width: 100%; justify-content: center; text-align: center; }
  .ast-vs-cta { margin-top: 14px; padding: 40px 0; }
  .ast-vs-cta__inner { flex-direction: column; align-items: flex-start; }
  .ast-vs-cta__actions .button { width: 100%; justify-content: center; text-align: center; }
}
/* «Видеонаблюдение» — длинное неразрывное слово: на узких экранах H1
   масштабируется по ширине окна, чтобы слово помещалось в shell целиком
   и не переносилось внутри слова. */
@media (max-width: 520px) {
  .ast-vs-hero h1 { font-size: clamp(1.55rem, 7vw, 2rem); }
}
@media (max-width: 430px) {
  .ast-vs-scene { width: 288px; }
  .ast-vs-plan { width: 226px; height: 131px; }
  .ast-vs-monitor { width: 240px; }
  .ast-vs-frame { height: 36px; }
  .ast-vs-scene__robot { height: 116px; }
  .ast-vs-partner__logo { width: 132px; }
  .ast-vs-hero__actions .button { width: 100%; justify-content: center; text-align: center; }
}

/* ── reduced motion: полный статичный результат ── */
@media (prefers-reduced-motion: reduce) {
  .vs-site, .vs-house, .vs-house-door, .vs-cam, .vs-link, .vs-node,
  .ast-vs-frame, .ast-vs-monitor__status, .ast-vs-monitor__rec,
  .ast-vs-scene__robot { animation: none !important; }
  .vs-site, .vs-house { stroke-dashoffset: 0; }
  .vs-link { stroke-dashoffset: 0; }
  .vs-house-door, .vs-cam, .vs-node,
  .ast-vs-monitor__status, .ast-vs-monitor__rec { opacity: 1; }
  .vs-cam { transform: none; }
  .ast-vs-frame { opacity: 1; transform: scale(1); }
  .ast-vs-scene__robot { transform: none; }
}

/* /AST video surveillance content page */

/* AST company details content */
/* Публичные сведения об организации: /about, /oplata, /dokumenty.
   Одна белая непрозрачная панель + definition list. Без новых цветов,
   без таблиц, без inline-стилей; на узких экранах — одна колонка. */
.ast-about-legal,
.ast-pay-org,
.ast-documents-org { padding: 18px 0 12px; }

.ast-org-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: clamp(20px, 2.4vw, 28px) clamp(20px, 2.6vw, 32px);
  box-shadow: 0 2px 14px rgba(58, 117, 255, 0.05);
}
.ast-org-panel__head { margin-bottom: 16px; }
.ast-org-panel__head h2 {
  margin: .1rem 0 .4rem;
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(1.2rem, 1.9vw, 1.5rem);
  line-height: 1.16;
  color: var(--text);
}
.ast-org-panel__lead {
  margin: 0;
  max-width: 62ch;
  font-size: .95rem;
  line-height: 1.5;
  color: var(--text-muted);
}

.ast-org-dl { margin: 0; display: grid; gap: 2px; }
.ast-org-dl__row {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  gap: 6px 20px;
  align-items: baseline;
  padding: 10px 0;
  border-top: 1px solid var(--line);
}
.ast-org-dl__row:first-child { border-top: 0; padding-top: 0; }
.ast-org-dl--compact .ast-org-dl__row { grid-template-columns: minmax(140px, 200px) minmax(0, 1fr); }
.ast-org-dl dt {
  margin: 0;
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-muted);
}
.ast-org-dl dd {
  margin: 0;
  font-size: .98rem;
  line-height: 1.5;
  color: var(--text);
  overflow-wrap: anywhere;
}

/* Спокойное предупреждение по банковскому переводу — брендовый синий,
   без статусных красных, оранжевых и жёлтых акцентов. */
.ast-org-notice {
  margin: 18px 0 0;
  padding: 14px 18px;
  border: 1px solid rgba(58, 117, 255, 0.2);
  border-left: 3px solid var(--primary);
  border-radius: 12px;
  background: rgba(58, 117, 255, 0.05);
  font-size: .95rem;
  line-height: 1.5;
  color: var(--text);
}
.ast-org-panel__note {
  margin: 12px 0 0;
  max-width: 74ch;
  font-size: .9rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.ast-org-panel__note a { color: var(--primary-strong); }
.ast-org-panel__actions { margin-top: 18px; }
.ast-org-address { overflow-wrap: anywhere; }

@media (max-width: 767px) {
  .ast-org-dl__row,
  .ast-org-dl--compact .ast-org-dl__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    padding: 12px 0;
  }
  .ast-org-panel__actions .button {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}
/* /AST company details content */
