/* ANDPRO Wave A — shared shell and compact home. G15/G16 contract, G20 dependency. */
html.ap-wave-a-v1 {
  --ap-wa-canvas: #eef1f6;
  --ap-wa-surface: #ffffff;
  --ap-wa-soft: #eef1ff;
  --ap-wa-ink: #172238;
  --ap-wa-muted: #5a6b7a;
  --ap-wa-line: #dfe3f1;
  --ap-wa-brand: #4d57c7;
  --ap-wa-brand-hover: #3f48b3;
  --ap-wa-amber: #f6c15f;
  --ap-wa-green: #2f7a65;
  --ap-wa-radius-control: 10px;
  --ap-wa-radius-card: 16px;
  --ap-wa-shadow: 0 8px 22px rgba(34, 36, 102, .05);
  color: var(--ap-wa-ink);
  background: var(--ap-wa-canvas);
}

html.ap-wave-a-v1 .ap-wave-a-header .header__cont {
  background: var(--ap-wa-surface);
  border-bottom: 1px solid var(--ap-wa-line);
  box-shadow: none;
}

html.ap-wave-a-v1 .ap-wave-a-header .header__row {
  min-height: 74px;
  gap: 16px;
}

html.ap-wave-a-v1 .ap-wave-a-header .header__logo-link {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
}

html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-catalog {
  min-height: 46px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #fff;
  background: var(--ap-wa-brand);
  border: 1px solid var(--ap-wa-brand);
  border-radius: var(--ap-wa-radius-control);
  font-weight: 700;
  box-shadow: none;
}

html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-catalog:hover {
  color: #fff;
  background: var(--ap-wa-brand-hover);
  border-color: var(--ap-wa-brand-hover);
}

html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-search {
  min-width: 0;
}

html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-search input {
  min-height: 46px;
  color: var(--ap-wa-ink);
  background: var(--ap-wa-soft);
  border-color: var(--ap-wa-line);
  border-radius: var(--ap-wa-radius-control);
}

html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-search input:focus {
  border-color: var(--ap-wa-brand);
  box-shadow: 0 0 0 3px rgba(87, 95, 207, .18);
}

html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-tools {
  gap: 4px;
}

html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-tools .header-btn,
html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-tools .call-btn {
  min-width: 46px;
  min-height: 46px;
  border-radius: var(--ap-wa-radius-control);
}

html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-tools .header-btn:hover,
html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-tools .call-btn:hover {
  background-color: var(--ap-wa-soft);
}

html.ap-wave-a-v1 .content-block > .container {
  max-width: 1280px;
}

html.ap-wave-a-v1 .ap-wave-a-home {
  margin: 0 auto 40px;
  overflow: hidden;
  color: var(--ap-wa-ink);
  background: var(--ap-wa-surface);
  border: 1px solid var(--ap-wa-line);
  border-radius: var(--ap-wa-radius-card);
  box-shadow: var(--ap-wa-shadow);
}

html.ap-wave-a-v1 .ap-wave-a-home h1,
html.ap-wave-a-v1 .ap-wave-a-home h2,
html.ap-wave-a-v1 .ap-wave-a-home h3,
html.ap-wave-a-v1 .ap-wave-a-home p {
  margin-top: 0;
}

html.ap-wave-a-v1 .ap-wave-a-home h1 {
  margin-bottom: 20px;
  color: var(--ap-wa-ink);
  font-size: 40px;
  line-height: 48px;
  letter-spacing: -.025em;
  font-weight: 700;
}

html.ap-wave-a-v1 .ap-wave-a-home h2 {
  margin-bottom: 12px;
  color: var(--ap-wa-ink);
  font-size: clamp(26px, 2.2vw, 32px);
  line-height: 1.25;
  letter-spacing: -.02em;
  font-weight: 700;
}

html.ap-wave-a-v1 .ap-wave-a-home h3 {
  margin-bottom: 10px;
  color: var(--ap-wa-ink);
  font-size: 20px;
  line-height: 1.35;
  font-weight: 700;
}

html.ap-wave-a-v1 .ap-wave-a-eyebrow {
  display: block;
  margin-bottom: 12px;
  color: var(--ap-wa-brand);
  font-size: 12px;
  line-height: 18px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

html.ap-wave-a-v1 .ap-wave-a-hero {
  --ap-wa-hero-ink: #ffffff;
  --ap-wa-hero-muted: #c4c8e4;
  --ap-wa-hero-caption: #aab0d6;
  --ap-wa-hero-dark: #161b3d;
  --ap-wa-action-focus: var(--ap-wa-amber);
  --ap-attention-focus: var(--ap-wa-amber);
  padding: 36px 48px;
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(340px, .97fr);
  gap: 40px;
  align-items: center;
  background: radial-gradient(120% 140% at 85% 30%, #2a2f6e 0%, var(--ap-wa-hero-dark) 55%, #11152e 100%);
}

html.ap-wave-a-v1 .ap-wave-a-hero__copy > p {
  max-width: 65ch;
  margin-bottom: 26px;
  color: var(--ap-wa-muted);
  font-size: 17px;
  line-height: 1.65;
}

html.ap-wave-a-v1 .ap-wave-a-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

html.ap-wave-a-v1 .ap-wave-a-action {
  min-width: 46px;
  min-height: 46px;
  padding: 11px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ap-wa-ink);
  background: var(--ap-wa-surface);
  border: 1px solid var(--ap-wa-line);
  border-radius: var(--ap-wa-radius-control);
  font-size: 15px;
  line-height: 22px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  transition: color .14s ease, background-color .14s ease, border-color .14s ease, transform .08s ease;
}

html.ap-wave-a-v1 .ap-wave-a-action--primary {
  color: #fff;
  background: var(--ap-wa-brand);
  border-color: var(--ap-wa-brand);
}

html.ap-wave-a-v1 .ap-wave-a-action--primary:hover {
  color: #fff;
  background: var(--ap-wa-brand-hover);
  border-color: var(--ap-wa-brand-hover);
}

html.ap-wave-a-v1 .ap-wave-a-action--secondary:hover {
  color: var(--ap-wa-brand-hover);
  background: var(--ap-wa-soft);
  border-color: var(--ap-wa-brand);
}

html.ap-wave-a-v1 .ap-wave-a-action--commercial {
  color: var(--ap-wa-ink);
  background: var(--ap-wa-amber);
  border-color: var(--ap-wa-amber);
}

html.ap-wave-a-v1 .ap-wave-a-action--commercial:hover {
  color: var(--ap-wa-ink);
  border-color: var(--ap-wa-ink);
}

html.ap-wave-a-v1 .ap-wave-a-action:active {
  transform: translateY(1px);
}

html.ap-wave-a-v1 .ap-wave-a-action:focus-visible,
html.ap-wave-a-v1 .ap-wave-a-text-link:focus-visible,
html.ap-wave-a-v1 .ap-wave-a-config-links a:focus-visible,
html.ap-wave-a-v1 .ap-wave-a-trust a:focus-visible {
  outline: 3px solid var(--ap-wa-action-focus, #0b70e0) !important;
  outline-offset: 3px !important;
}

html.ap-wave-a-v1 .ap-wave-a-facts {
  margin: 28px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  color: var(--ap-wa-muted);
  font-size: 13px;
  line-height: 20px;
  font-weight: 600;
  list-style: none;
}

html.ap-wave-a-v1 .ap-wave-a-facts li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

html.ap-wave-a-v1 .ap-wave-a-facts li::before {
  width: 9px;
  height: 9px;
  content: '';
  flex: 0 0 auto;
  background: var(--ap-wa-green);
  border-radius: 50%;
}

html.ap-wave-a-v1 .ap-wave-a-hero__media {
  margin: 0;
  overflow: hidden;
  background: var(--ap-wa-canvas);
  border-radius: var(--ap-wa-radius-card);
  box-shadow: var(--ap-wa-shadow);
}

html.ap-wave-a-v1 .ap-wave-a-hero__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 1.35;
  display: block;
  object-fit: cover;
}

html.ap-wave-a-v1 .ap-wave-a-hero__media figcaption {
  padding: 12px 16px;
  color: var(--ap-wa-muted);
  background: var(--ap-wa-surface);
  border-top: 1px solid var(--ap-wa-line);
  font-size: 12px;
  line-height: 18px;
}

html.ap-wave-a-v1 .ap-wave-a-section {
  padding: 44px 48px;
}

html.ap-wave-a-v1 .ap-wave-a-section__heading {
  margin-bottom: 28px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
}

html.ap-wave-a-v1 .ap-wave-a-section__heading > div {
  max-width: 720px;
}

html.ap-wave-a-v1 .ap-wave-a-section__heading p,
html.ap-wave-a-v1 .ap-wave-a-config-card p,
html.ap-wave-a-v1 .ap-wave-a-commercial p,
html.ap-wave-a-v1 .ap-wave-a-trust__intro p {
  color: var(--ap-wa-muted);
  font-size: 15px;
  line-height: 1.6;
}

html.ap-wave-a-v1 .ap-wave-a-text-link {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  color: var(--ap-wa-brand-hover);
  font-size: 14px;
  line-height: 20px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}

html.ap-wave-a-v1 .ap-wave-a-config-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

html.ap-wave-a-v1 .ap-wave-a-config-card {
  min-width: 0;
  min-height: 270px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: var(--ap-wa-surface);
  border: 1px solid var(--ap-wa-line);
  border-radius: var(--ap-wa-radius-card);
}

html.ap-wave-a-v1 .ap-wave-a-config-card p {
  flex: 1;
}

html.ap-wave-a-v1 .ap-wave-a-config-card__index {
  margin-bottom: 24px;
  color: var(--ap-wa-muted);
  font-size: 12px;
  line-height: 16px;
  font-weight: 800;
  letter-spacing: .08em;
}

html.ap-wave-a-v1 .ap-wave-a-disclosure {
  margin-top: 18px;
  background: var(--ap-wa-soft);
  border: 1px solid var(--ap-wa-line);
  border-radius: var(--ap-wa-radius-card);
}

html.ap-wave-a-v1 .ap-wave-a-disclosure summary {
  min-height: 52px;
  padding: 13px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--ap-wa-ink);
  font-size: 14px;
  line-height: 20px;
  font-weight: 700;
  cursor: pointer;
}

html.ap-wave-a-v1 .ap-wave-a-disclosure > summary:focus-visible {
  outline: 3px solid #0b70e0;
  outline-offset: 3px;
}

html.ap-wave-a-v1 .ap-wave-a-disclosure summary::-webkit-details-marker {
  display: none;
}

html.ap-wave-a-v1 .ap-wave-a-disclosure[open] summary span {
  transform: rotate(180deg);
}

html.ap-wave-a-v1 .ap-wave-a-config-links {
  padding: 0 18px 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px 20px;
}

html.ap-wave-a-v1 .ap-wave-a-config-links a {
  min-height: 46px;
  padding: 8px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--ap-wa-ink);
  border-bottom: 1px solid var(--ap-wa-line);
  font-size: 13px;
  line-height: 18px;
  text-decoration: none;
}

html.ap-wave-a-v1 .ap-wave-a-config-links a:hover {
  color: var(--ap-wa-brand-hover);
}

html.ap-wave-a-v1 .ap-wave-a-commercial {
  margin-top: 24px;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  color: #fff;
  background: var(--ap-wa-ink);
  border-radius: var(--ap-wa-radius-card);
}

html.ap-wave-a-v1 .ap-wave-a-commercial strong {
  display: block;
  margin-bottom: 4px;
  font-size: 17px;
  line-height: 24px;
}

html.ap-wave-a-v1 .ap-wave-a-commercial p {
  margin-bottom: 0;
  color: var(--ap-wa-line);
}

html.ap-wave-a-v1 .ap-wave-a-trust {
  padding: 52px 48px;
  display: grid;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
  gap: 56px;
  color: #fff;
  background: var(--ap-wa-ink);
}

html.ap-wave-a-v1 .ap-wave-a-trust h2,
html.ap-wave-a-v1 .ap-wave-a-trust .ap-wave-a-eyebrow {
  color: #fff;
}

html.ap-wave-a-v1 .ap-wave-a-trust__intro p {
  color: var(--ap-wa-line);
}

html.ap-wave-a-v1 .ap-wave-a-trust .ap-wave-a-text-link,
html.ap-wave-a-v1 .ap-wave-a-trust a {
  color: #fff;
}

html.ap-wave-a-v1 .ap-wave-a-trust__grid {
  margin: 0;
  display: grid;
}

html.ap-wave-a-v1 .ap-wave-a-trust__grid > div {
  padding: 18px 0;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 22px;
  border-top: 1px solid rgba(255, 255, 255, .16);
}

html.ap-wave-a-v1 .ap-wave-a-trust__grid > div:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

html.ap-wave-a-v1 .ap-wave-a-trust dt {
  color: var(--ap-wa-amber);
  font-size: 13px;
  line-height: 20px;
  font-weight: 700;
}

html.ap-wave-a-v1 .ap-wave-a-trust dd {
  margin: 0;
  display: grid;
  gap: 5px;
}

html.ap-wave-a-v1 .ap-wave-a-trust dd strong {
  font-size: 14px;
  line-height: 21px;
}

html.ap-wave-a-v1 .ap-wave-a-trust dd span,
html.ap-wave-a-v1 .ap-wave-a-trust dd a {
  color: var(--ap-wa-line);
  font-size: 13px;
  line-height: 20px;
}

html.ap-wave-a-v1 .ap-wave-a-trust dd > a,
html.ap-wave-a-v1 .ap-wave-a-trust__links a {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  text-decoration: underline;
  text-underline-offset: 3px;
}

html.ap-wave-a-v1 .ap-wave-a-trust__links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
}

html.ap-wave-a-v1 .ap-wave-a-footer .subscribe-block {
  padding-top: 24px;
  padding-bottom: 24px;
  background: var(--ap-wa-canvas);
  border-top: 1px solid var(--ap-wa-line);
  box-shadow: none;
}

html.ap-wave-a-v1 .ap-wave-a-footer .subscribe-block input,
html.ap-wave-a-v1 .ap-wave-a-footer .subscribe-block button {
  min-height: 46px;
  border-radius: var(--ap-wa-radius-control);
}

html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main {
  color: var(--ap-wa-line);
  background: var(--ap-wa-ink);
}

html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__grid {
  padding-top: 38px;
  padding-bottom: 34px;
  display: grid;
  grid-template-columns: 1.35fr repeat(4, minmax(0, 1fr));
  gap: 28px;
}

html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__col {
  width: auto;
  margin: 0;
}

html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__link,
html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__menu a,
html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__menu button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
}

html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__header {
  color: #fff;
  font-weight: 700;
}

html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__row.--two {
  padding-top: 22px;
  padding-bottom: 30px;
  border-top: 1px solid rgba(255, 255, 255, .14);
}

html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-bottom {
  background: var(--ap-wa-ink);
  border-top: 1px solid rgba(255, 255, 255, .14);
}

html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-bottom__link {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 1024px) {
  html.ap-wave-a-v1 .ap-wave-a-hero {
    padding: 36px;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }

  html.ap-wave-a-v1 .ap-wave-a-section,
  html.ap-wave-a-v1 .ap-wave-a-trust {
    padding-left: 36px;
    padding-right: 36px;
  }

  html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  html.ap-wave-a-v1 .ap-wave-a-header .header__row {
    min-height: 68px;
    gap: 8px;
  }

  html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-catalog,
  html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-tools .compare,
  html.ap-wave-a-v1 .ap-wave-a-header .ap-wave-a-tools .delay {
    display: none;
  }

  html.ap-wave-a-v1 .ap-wave-a-home {
    margin-bottom: 24px;
    border-inline: 0;
    border-radius: 0;
  }

  html.ap-wave-a-v1 .ap-wave-a-hero {
    padding: 24px 20px;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  html.ap-wave-a-v1 .ap-wave-a-hero__copy {
    order: 1;
  }

  html.ap-wave-a-v1 .ap-wave-a-hero__media {
    order: 2;
  }

  html.ap-wave-a-v1 .ap-wave-a-home h1 {
    font-size: 32px;
    line-height: 40px;
  }

  html.ap-wave-a-v1 .ap-wave-a-home h2 {
    font-size: 26px;
  }

  html.ap-wave-a-v1 .ap-wave-a-actions,
  html.ap-wave-a-v1 .ap-wave-a-actions .ap-wave-a-action {
    width: 100%;
  }

  html.ap-wave-a-v1 .ap-wave-a-section {
    padding: 34px 18px;
  }

  html.ap-wave-a-v1 .ap-wave-a-section__heading {
    display: block;
  }

  html.ap-wave-a-v1 .ap-wave-a-config-grid,
  html.ap-wave-a-v1 .ap-wave-a-config-links,
  html.ap-wave-a-v1 .ap-wave-a-trust {
    grid-template-columns: 1fr;
  }

  html.ap-wave-a-v1 .ap-wave-a-config-card {
    min-height: 0;
  }

  html.ap-wave-a-v1 .ap-wave-a-commercial {
    padding: 22px;
    align-items: stretch;
    flex-direction: column;
  }

  html.ap-wave-a-v1 .ap-wave-a-trust {
    padding: 38px 18px;
    gap: 24px;
  }

  html.ap-wave-a-v1 .ap-wave-a-trust__grid > div {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 24px 18px;
  }

  html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__col.--first {
    grid-column: 1 / -1;
  }
}

@media (max-width: 420px) {
  html.ap-wave-a-v1 .ap-wave-a-facts {
    display: grid;
  }

  html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__grid {
    grid-template-columns: 1fr;
  }

  html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__col.--first {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ap-wave-a-v1 .ap-wave-a-action {
    transition: none;
  }
}


/* ANDPRO-STRICT-CLOSURE-SHELL-FOOTER-V1 */
html.ap-wave-a-v1 :is(.header,.ap-wave-a-header) :is(a,button,summary,[role="button"],[role="link"],input,select,textarea):focus-visible,
html.ap-wave-a-v1 .ap-wave-a-footer :is(a,button,summary):focus-visible{outline:3px solid #0b70e0!important;outline-offset:3px!important}
html.ap-wave-a-v1 .ap-wave-a-footer__group{border:0;margin:0;padding:0;min-width:0}
html.ap-wave-a-v1 .ap-wave-a-footer__summary{display:none;color:#fff;font-weight:700}
html.ap-wave-a-v1 .ap-wave-a-footer__group:not([open])>.nwfooter-main__menu{display:flex}
@media(max-width:767px){
 html.ap-wave-a-v1 .ap-wave-a-header{height:68px;max-height:68px}
 html.ap-wave-a-v1 .ap-wave-a-header .header__cont{box-sizing:border-box;height:68px;padding:0}
 html.ap-wave-a-v1 .ap-wave-a-header .header__row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;min-height:67px;height:67px;gap:10px}
 html.ap-wave-a-v1 .ap-wave-a-header .header__search-block{display:none}
 html.ap-wave-a-v1 .ap-wave-a-header .header__rightbox{max-width:none;margin:0;justify-content:flex-end}
 html.ap-wave-a-v1 .ap-wave-a-header .header__rightbox .call-btn{display:none}
 html.ap-wave-a-v1 .ap-wave-a-header .header__menu-btn,
 html.ap-wave-a-v1 .ap-wave-a-header .header__logo-link,
 html.ap-wave-a-v1 .ap-wave-a-header .header-btn.basket{min-width:46px;min-height:46px}
html.ap-wave-a-v1 .ap-wave-a-footer .subscribe-block{padding:18px 0}
 html.ap-wave-a-v1 .ap-wave-a-footer :is(.footer-subscribe,.nwfooter-subscribe){padding:16px 0}
 html.ap-wave-a-v1 .ap-wave-a-footer :is(.footer-subscribe__icon,.nwfooter-subscribe__icon){display:none}
 html.ap-wave-a-v1 .ap-wave-a-footer :is(.footer-subscribe__title,.nwfooter-subscribe__title){padding-left:0;margin-bottom:10px;font-size:16px}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main{padding:0}
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__grid{display:grid;grid-template-columns:1fr;gap:8px;padding:22px 0}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__col.--first[hidden]{display:none}
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__mobile-brand{padding:4px 4px 12px}
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__summary{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 4px;cursor:pointer;list-style:none}
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__summary::-webkit-details-marker{display:none}
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__summary::after{content:'+';font-size:24px;font-weight:400}
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__group[open]>.ap-wave-a-footer__summary::after{content:'−'}
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__group:not([open])>.nwfooter-main__menu{display:none}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__menu{margin:0 0 8px;padding:0 4px}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__row.--two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:14px 0 18px}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__row.--two .nwfooter-main__col{width:auto;min-width:0}
 html.ap-wave-a-v1 .ap-wave-a-footer :is(.nwfooter-main__accept,.nwfooter-main__soc){display:flex;flex-wrap:wrap;margin:0}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-bottom{padding:14px 0}
}

/* ANDPRO-STRICT-100-FOOTER-COMPACTION-V1 */
html.ap-wave-a-v1 :is(.nwheader-cart,.nwheader-search) .--clear-btn{min-width:46px;width:46px;height:46px;min-height:46px}
html.ap-wave-a-v1 .ap-wave-a-footer .subscribe-block{display:none}
html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__grid{padding-top:24px;padding-bottom:22px;gap:20px}
html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__text{margin:10px 0 6px;font-size:13px;line-height:20px}
html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-address{font-size:13px;line-height:20px}
html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__menu{margin:0}
html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__menu>li:nth-child(n+4){display:none}
html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__row.--two{display:none}
html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-bottom{padding:6px 0}
@media(max-width:767px){
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__grid{padding:18px 0;gap:6px}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__col.--first{display:block;grid-column:1/-1;padding:0 4px 10px}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__logo{max-width:158px}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__text{margin:8px 0 4px}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-bottom{padding:8px 0}
}

/* Exact home-title hook stays deterministic at the tablet boundary as well. */
html.ap-attention-v1.ap-wave-a-v1 .content-block .ap-wave-a-home h1{font-size:40px;line-height:48px}
@media(max-width:767px){html.ap-attention-v1.ap-wave-a-v1 .content-block .ap-wave-a-home h1{font-size:32px;line-height:40px}}


/* ANDPRO-G38-FOOTER-ACTUAL-OWNER-COMPACTION-V1 */
html.ap-wave-a-v1 .ap-wave-a-footer :is(.footer-subscribe,.nwfooter-subscribe,.subscribe-block){display:none}
@media(min-width:768px){
 html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__grid{padding:11px 0;gap:12px}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__text{display:none}
 html.ap-wave-a-v1 .ap-wave-a-footer .nwfooter-main__menu>li:nth-child(n+3){display:none}
}


/* ===== Пачка 2, 15.09.2026. ВРЕМЕННОЕ МЕСТО: по смыслу правила принадлежат
   header-footer.css и файлу фильтра, но те входят в восемь целей Пакета 6
   и трогать их нельзя до его выпуска. После выпуска перенести по месту.

   F210 — кнопка связи закрывала кнопку подвала «Настройки cookie»:
   до правки перекрыта на 5 адресах из 6 при 1280. Вариант с отступом подвала
   промерен и отброшен — он не менял ничего. После подъёма до bottom:96px
   в репетиции 0 перекрытий на 10 семействах, и сам лаунчер не закрыл собой
   ни одного другого элемента.

   F215 — липкая полоса действий открытого фильтра (fixed, 390x73) прятала
   заголовки групп фильтра в фокусе: 7 скрытых остановок из 35 при 390.
   Панель .catalog-filter сама прокручиваемая, поэтому отступ ей нужен свой. ===== */
.andpro-contact-launcher{bottom:96px}
.catalog-filter{scroll-padding-bottom:85px}
/* F210-fix1: подъём кнопки связи нужен только настольным ширинам. На 390 px
   он давал обратный эффект — закрывал 5 элементов вместо 2, включая корзину
   и оформление. Замерено на живом Prod: 1280 — было 3, стало 1; 390 — было 2,
   с подъёмом стало 5. Возвращаем телефону исходные 24px. */
@media (max-width:430px){.andpro-contact-launcher{bottom:24px}}

/* ===== Пачка 3, 15.09.2026. Проверено стендом: 9 адресов x 5 ширин под
   интервалами 1.4.12, ухудшений 0, изменились три ячейки и все в плюс.

   F205 — заголовок страницы переливался за главный блок на узких экранах:
   /configurator-cctv/ 320 — перелив 54→0, 360 — 14→0 (по три прогона на замер).

   F208 — блок «Подбор и сопровождение» на /catalog/ переливался ниже 443px:
   320 — 123→21 (закрывается частично), 390 — 53→0, 412 — 31→0.
   Из четырёх промеренных вариантов взят самый узкий: вмешательство в сетку
   давало тот же результат, а вариант «одна колонка» вводил новое срезание. ===== */
#pagetitle{overflow-wrap:anywhere}
@media (max-width:442px){
  .ap-category-responsibility li,
  .ap-category-responsibility li *{overflow-wrap:anywhere;min-width:0}
}

/* ===== F198, 15.09.2026. Подпись выбранной сортировки обрезалась на узких
   экранах, и шесть вариантов из восьми становились неразличимы.
   Причина не в блоке сортировки: ряд .catalog-row — сетка с жёсткими
   колонками 172px 106px, и блоку доставалось 172 из 290 при любых правках
   внутри него. Три варианта с flex-wrap промерены и дали ноль изменений.
   Измерено на живом Prod под интервалами 1.4.12, ширина подписи:
   320 — 50→166, 360 — 90→206, 390 — 120→236 (там читается целиком).
   На 320 и 360 остаётся частично: самый длинный вариант не помещается
   в 290px физически, полное лечение — укоротить подписи вариантов.
   Сторож: 7 адресов x 6 ширин, ухудшений 0, липкий стек не изменился. ===== */
@media (max-width:480px){
  .catalog-row{grid-template-columns:minmax(0,1fr)!important}
}

/* ===== ПАЧКА 5 — 15.09.2026 =====
   F191: единственный выход из тупика KVM — ссылка «спросите инженера» белым
         по розовому: контраст 1.14 при норме 4.5. Цвет задан инлайном из JS,
         перебивается только !important. #b3261e на #fdecea = 5.72.
   F202/F203/F204: сетки конфигураторов Wi-Fi, RAID и виртуализации назначают
         дорожку по содержимому (386/347/333 px в контейнере 290 px), панель
         выезжает за main. Лечится переводом дорожки в minmax(0,1fr).
         Остаток Wi-Fi на 320/360 — flex-строка предупреждения без переноса.
   Репетиция: 3 адреса x 5 ширин x 4 варианта. переливMain 42/81/28 -> 0,
         заКраем 32/37/53 -> 0, срезанных не добавилось ни в одной ячейке.
   Сторож: каждый селектор встречается ровно на одной странице (18 адресов). ===== */
.cfgkvm-err a{color:#b3261e !important}
@media (max-width:480px){
  .cfgraid-grid,.cfgwifi-grid,.apvm__layout{grid-template-columns:minmax(0,1fr)!important}
  .cfgwifi-warnline{flex-wrap:wrap}
  .cfgwifi-warnline>*{min-width:0}
}


/* ===== ПАЧКА 6 — 15.09.2026 =====
   F207 (переформулирована замером): на карточке ПРОДАННОГО товара span.card-stock
   держит «Продано.» и кнопку «Подобрать замену?» в одной строке (white-space:nowrap).
   На 320 под интервалами 1.4.12 правый край кнопки оказывается на 327 px при экране 320 —
   кнопка уходит ЗА КРАЙ экрана (WCAG 1.4.10). Сама кнопка при этом не обрезана:
   прежняя формулировка «кнопка обрезается» замером не подтвердилась.
   Репетиция: бокс 252/293 -> 252/252, правый край кнопки 327 -> 267, заКраем 2 -> 0.
   Контроль на товаре В НАЛИЧИИ: ни одна из 5 ширин не изменилась. ===== */
@media (max-width:430px){
  .itempage-content__pricebox .card-stock{white-space:normal}
}


/* ===== ПАЧКА 7 — контраст, 15.09.2026 =====
   Сплошная проверка WCAG 1.4.3 по 15 семействам, Chromium 1280, три одинаковых прогона.
   Все правки — только цвет, ни одного изменения раскладки.
   ВАЖНО о префиксе html: blog-hub.min.css и ещё шесть таблиц грузятся ПОЗЖЕ этого файла,
   поэтому равная специфичность с !important проигрывает по порядку. Префикс html даёт +1
   к специфичности и выигрывает независимо от позиции в каскаде. Проверено замером.
   F219 крошка текущей страницы в блоге: 1.77 -> 4.83. В блоге ей ошибочно назначен
        токен ГРАНИЦЫ --andpro-blog-border-muted через !important; на остальном сайте
        тот же узел имеет rgb(107,114,128). Лечение — вернуть норму сайта.
   F221 три типа текста блога (12 узлов): 4.22 -> 4.64 через сам токен --andpro-blog-muted.
   F223 дата публикации и изменения статьи: 2.67 на белом и 2.51 на #f4f7fb -> 4.95 и 4.61.
   F220 зачёркнутая старая цена в карточке каталога: 2.92 -> 4.60.
   F222 счётчики в чипах фильтра брендов: обычный 3.99 -> 4.60;
        активный 3.77 -> 4.64 затемнением подложки-пилюли с alpha .22 до .12.
        ВНИМАНИЕ: :not(.is-active) обязателен — без него белый счётчик активного чипа
        становится серым на фиолетовом и падает до 1.13. Поймано репетицией.
   Репетиция: 10 адресов, ДО/ПОСЛЕ. Нарушений 3/2/1/1/2 -> 0/0/0/0/0,
        на шести чистых адресах ни одного нового. ===== */
html:root{--andpro-blog-muted:#697684}
html .breadcrumb .breadcrumb-item a,
html .breadcrumb .breadcrumb-item span{color:#6b7280 !important}
html .blog-page__date{color:#67717e !important}
html .catalog-card__price mark{color:#6d7682 !important}
html .ap-brands-type-chip:not(.is-active) span{color:#666c7c !important}
html .ap-brands-type-chip.is-active span{background-color:rgba(255,255,255,0.12) !important}


/* ===== ПАЧКА 11 — F176, кольцо фокуса на тёмной полосе шапки =====
   Кольцо #0b70e0 на фоне .header-top #2f3286 даёт контраст 2.294 при норме 3
   (WCAG 1.4.11, индикатор фокуса). Восемь управляющих элементов на КАЖДОЙ
   странице сайта: Конфигураторы, Услуги, Реестр Минпромторга, Блог, телефон,
   Перезвонить, Войти, Регистрация. Белое кольцо на том же фоне даёт 10.9.
   ВАЖНО о :is вместо :where. На страницах каталога, фильтров и карточки товара
   подключается andpro-wave-b-catalog-filter-pdp.css с правилом
   html.ap-wave-b-v1 :is(a,button,...):focus-visible{outline-color:#0b70e0 !important}
   специфичностью (0,3,1). Вариант с :where даёт (0,2,1) и ПРОИГРЫВАЕТ — проверено
   замером: на главной работал, в каталоге нет. :is поднимает до (0,4,1) и выигрывает
   независимо от порядка загрузки таблиц.
   Репетиция с выдержкой 500 мс на остановку (кольцо анимируется переходом,
   без выдержки числа плавают): главная, каталог, оформление, листинг МФУ,
   карточка товара — во всех 8..11 нарушений -> 0. ===== */
html.ap-attention-v1 .header-top :is(a,button,input,select,textarea,summary,[role="button"],[role="link"],[tabindex]):focus-visible{outline-color:#ffffff !important}


/* ===== ПАЧКА 12 — F187, «меньше движения» не работало на странице брендов =====
   /info/brands/ — единственное семейство из 53, где при prefers-reduced-motion: reduce
   движение оставалось: максимум перехода 160 мс против 0.01 мс на остальных 52.
   Причина — правило brands-ui.min.css: .ap-brands-directory .sert-item>a
   {transition:border-color .16s,box-shadow .16s,transform .16s!important}
   специфичностью (0,3,1). Оба глобальных правила контракта «меньше движения»
   имеют (0,1,1) и при равном !important проигрывают по специфичности.
   Наше правило даёт (0,3,2) и выигрывает.
   Замер: бренды 160 мс -> 0.01 мс; главная и каталог 0.01 -> 0.01 без изменений. ===== */
@media (prefers-reduced-motion: reduce){
  html.ap-attention-v1 .ap-brands-directory .sert-item>a{transition:none !important;animation:none !important}
}


/* ===== ПАЧКА 13 — F193, невидимый фокус тумблеров в пяти конфигураторах =====
   Тумблер собран стандартно: настоящий input скрыт (0x0, opacity 0), рисуется
   соседний span.<преф>-toggle__track. Кольцо фокуса приходило на элемент нулевой
   площади, то есть в никуда. Замер: попиксельно 0 изменённых пикселей на пяти
   страницах против 330 на трёх, где строка переноса фокуса есть.
   Строка-эталон уже работает в /configurator-network/, -memory/, -disks/:
   .cfgnet-toggle input:focus-visible + .cfgnet-toggle__track{outline:2px solid var(--b)}
   Здесь она же, дословно, для пяти недостающих префиксов. Цвет #575fcf — это
   вычисленное значение var(--b) на эталонных страницах, взято ради совпадения
   с уже работающим поведением, а не подобрано.
   Замер после правила: у всех пяти обводка 0px -> 2px solid rgb(87,95,207);
   у трёх эталонных не изменилось ничего. Контраст кольца на белом фоне 5.33 при норме 3. ===== */
.cfgups-toggle input:focus-visible + .cfgups-toggle__track,
.cfgcctv-toggle input:focus-visible + .cfgcctv-toggle__track,
.cfgkvm-toggle input:focus-visible + .cfgkvm-toggle__track,
.cfgpwr-toggle input:focus-visible + .cfgpwr-toggle__track,
.cfgrk-toggle input:focus-visible + .cfgrk-toggle__track{outline:2px solid #575fcf !important;outline-offset:2px !important}


/* ===== ПАЧКА 15 — F185, печатная вёрстка =====
   До этого во всём сайте был ровно ОДИН блок @media print — пряталась плавающая
   кнопка связи. На бумагу уходили шапка, подвал, баннер согласия, 83 кнопки,
   20 каруселей и 21 карточка рекомендаций по макету шириной 1280 px.
   Приёмка велась по ГОТОВОМУ PDF (A4, поля 12 мм), а не по окну браузера —
   в печати ширина считается по листу, и замер окна вводит в заблуждение.
   Листов ДО -> ПОСЛЕ и вес файла:
     оформление заказа   2 -> 1 лист,  195 -> 58 КБ
     доставка           14 -> 12,     2036 -> 529 КБ
     карточка товара     3 -> 3,       726 -> 393 КБ
     раздел каталога     3 -> 3,       375 -> 210 КБ
     статья блога        2 -> 2,       978 -> 633 КБ
   Ни на одном адресе число листов не выросло.
   ОТБРОШЕНО ЗАМЕРОМ, не предположением:
   1) display:block на контейнерах ломал сетку листинга: раздел каталога
      печатался на 9 листов вместо 3. Оставлена только нормализация ширины.
   2) Печать адресов ссылок через ::after добавляла по листу карточке и блогу.
      Полезно, но платится бумагой — снято.
   3) Показ всего [hidden] мог раскрыть служебные состояния — снято как рискованное. ===== */
@media print{
  @page{margin:12mm}
  html,body{width:auto !important;min-width:0 !important;margin:0 !important;padding:0 !important;
    background:#fff !important;color:#000 !important;font-size:11pt !important}
  *{box-shadow:none !important;text-shadow:none !important;animation:none !important;transition:none !important}
  header,footer,nav,
  .header-top,.header,.nwheader-mobile,.nwheader-cat,.nwheader-cart,.nwfooter-main,.nwfooter-bottom,
  #andpro-consent,.andpro-consent-settings,.andpro-contact-launcher,.andpro-skip-link,
  .card-btn,.cf-button,.call-back-button,.catalog-card__bar,.catalog-card__btn-group,
  .itempage-dopitem,.tns-outer,.tns-nav,.tns-controls,
  .andpro-compare-bar,.emptycart-modal,.form-box--subscribe,.footer-subscribe{
    display:none !important}
  main,.content-block,.container,.wrapper,.itempage-container{
    width:auto !important;max-width:none !important;margin:0 !important;padding:0 !important;
    float:none !important}
  img{max-width:60mm !important;height:auto !important}
  h1{font-size:16pt !important}
  h2{font-size:13pt !important}
  h3{font-size:12pt !important}
  table,figure,.itempage-content__pricebox,.ap-spec-row,li{break-inside:avoid;page-break-inside:avoid}
  h1,h2,h3{break-after:avoid;page-break-after:avoid}
  details[class*=disclosure]>*,details[class*=article]>*{display:block !important}
  details>summary{list-style:none}
  .ap-article-full-disclosure__body{display:block !important;max-height:none !important;overflow:visible !important}
  body,main,.container,.wrapper{overflow:visible !important}
  .slider_next,.slider_prev,[class*=slider_next],[class*=slider_prev]{display:none !important}
}


/* ===== ПАЧКА 16 — F186, подсказки допустимых диапазонов в калькуляторах =====
   Под каждым полем ввода в калькуляторах 1С и виртуализации стоит серая строка —
   ЕДИНСТВЕННОЕ место, где названы границы ввода: «От 5 до 500», «От 1 до 300»,
   «Без memory overcommit», «Без файловых архивов». Кто её не прочитал — введёт
   значение вне диапазона и унесёт неверный расчёт числа серверов, ядер и дисков.
   Источник: .ap1c small{color:#7b8795;font-size:11.5px} в /configurator-1c/style.css
   и .apvm small{color:#7b8795;font-size:12px} в /configurator-virtualization/style.css.
   11.5px и 12px обычного начертания крупным текстом не считаются, порог 4.5.
   Замер на живом Prod: 6 узлов (2 + 4), контраст 3.6574 -> 5.5289. Размер и
   начертание не трогаются, меняется только цвет. ===== */
html .ap1c small,html .apvm small{color:#5d6a78 !important}


/* ===== ПАЧКА 17 — F208, последний остаток на корне каталога =====
   Пачка 3 закрыла F208 на 390 и 412, но на 320 оставался перелив 21 px,
   и в реестре он был честно записан как «частично». Регрессионный набор
   вытащил его обратно, и причина найдена точно: в секциях ap-quick-selection
   и ap-related-section карточка A.ap-quick-card имеет ширину 252 при содержимом 306,
   а внутри неё STRONG с текстом «Телекоммуникационное оборудование» — 214 px поля
   против 288 px содержимого. Под интервалами WCAG 1.4.12 слово «Телекоммуникационное»
   просто не помещается и распирает карточку.
   Дорожка сетки здесь НИ ПРИ ЧЁМ: она уже 252px, то есть в одну колонку.
   Попытка чинить дорожку и min-width не изменила ничего — проверено замером,
   оба варианта дали те же 21 px.
   Замер: /catalog/@320 переливMain 21 -> 0, срезанных не добавилось;
   на 360, 390 и 430 было 0 и осталось 0. ===== */
@media (max-width:360px){
  .ap-quick-card,.ap-related-card,
  .ap-quick-card *,.ap-related-card *{overflow-wrap:anywhere;min-width:0}
}


/* ===== ПАКЕТ 19 — ночная смена 16.09.2026 =====
   F225. На мобильных у разделов каталога НЕТ заголовка первого уровня.
   Правило andpro-wave-b-catalog-filter-pdp.css
   html.ap-wave-b-v1 .content-block__head div:has(> h1){display:none} при max-width:719px
   убирает обёртку h1 целиком. Замер: на /catalog/, /catalog/network/, /catalog/orgtekhnika/mfu/
   и на фильтр-странице при 390 видимых h1 — НОЛЬ, размер узла 0x0. На 768 и 1280 — 48 px.
   Название раздела на телефоне остаётся только в хлебной крошке шрифтом 13 px.
   display:none убирает узел и из дерева доступности: у страницы нет заголовка вовсе.
   Лечение сохраняет ВИД без изменений: обёртка возвращается в поток как визуально скрытая,
   поэтому заголовок есть для скринридера и поисковика, а на экране ничего не появляется.
   Замер ДО/ПОСЛЕ на четырёх адресах и двух ширинах: h1 0 -> 1 на 390; высота шапки блока
   и высота страницы НЕ изменились нигде (72/72, 79/79, 2841/2841, 22945/22945, 3760/3760).
   Карточка товара исключена через :not(:has(.itempage-container)) — у неё свой мобильный
   заголовок, и без исключения получилось бы два h1.

   F226. Подписи и пояснения в десяти конфигураторах не добирают контраст.
   Токен --mut2 = #7a8a99 даёт 3.55 на белом и 3.45 на #fbfcfe при норме 4.5
   (размеры 11.5-12.5 px обычного начертания). Замер: 424 узла на десяти конфигураторах.
   Значение НЕ подбиралось: три конфигуратора сайта (power, server, pc) уже используют
   #5c6b7a, который даёт 5.47 и 5.33. Берём эталон самого сайта.
   Токен используется ТОЛЬКО для color (4-6 использований на страницу, ни одного фона),
   поэтому затемнение безопасно. Замер ДО/ПОСЛЕ: узлов со старым цветом -> 0 на каждом. ===== */
@media (max-width:719px){
  html.ap-wave-b-v1 main:not(:has(.itempage-container)) .content-block__head div:has(> h1){
    display:block !important;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}
}
html .cfgmem,html .cfgdsk,html .cfgcctv,html .cfgkvm,html .cfgups,
html .cfgrk,html .cfgsks,html .cfgwifi,html .cfgraid,html .cfgnet{--mut2:#5c6b7a !important}


/* ===== ПАКЕТ 20 — подписи полей на личных страницах сотрудников =====
   .ap-staff-side-title («Телефон», «E-mail», «Направление») — rgb(114,118,139) на белом
   даёт 4.49 при норме 4.5. Промах на 0.01, но это подписи контактных данных
   на девяти страницах, по три на каждой. #6f7388 даёт 4.68.
   Замер ДО/ПОСЛЕ на живом Prod: нарушений 3 -> 0. ===== */
html .ap-staff-side-title{color:#6f7388 !important}


/* ===== ПАКЕТ 21 — 16.09.2026 =====
   F226 расширение: конфигуратор СХД пропущен в пакете 19.
   Обёртка .cfgstor определяет --mut2:#7a8a99 (3.55 на белом при норме 4.5).
   Приводим к тому же эталону #5c6b7a, что и остальные десять.
   Найдено вторым широким обходом: 34 новых семейства, замечаний всего 2, оба здесь.
   На /configurator-1c/ токен уже перекрыт пакетом 19 — правка не нужна.
   Замер: узлов со старым цветом 1 -> 0.

   F229. Многоточие пагинации в блоге — контраст 4.40 на фоне #f7f9fc.
   Победившее правило blog-hub.css:
   .andpro-blog-hub-next .pagination .pagination__elipse{color:var(--andpro-blog-muted)!important}
   имеет специфичность (0,3,1). Прошлая попытка через html .pagination__elipse дала (0,1,1)
   и проигрывала — проверено замером, цвет не менялся. Здесь (0,3,2), выигрывает.
   Замер: /blog/server/ нарушений 1 -> 0; /blog/ и /blog/cpu/ были 0 и остались 0. ===== */
html .cfgstor{--mut2:#5c6b7a !important}
html .andpro-blog-hub-next .pagination .pagination__elipse{color:#667280 !important}

/* ===== ПАКЕТ 22 — F231. Счётчики подкатегорий на странице поиска.
   .catalog-subcat.--search-results .catalog-subcat__quant = rgb(179,188,205)
   на фоне rgb(247,248,255) даёт контраст 1.80 при норме 4.5 (15px).
   #5f6a80 на том же фоне = 5.14. Правило сужено классом --search-results:
   в обычных разделах каталога счётчики синие rgb(87,95,207), они норму
   проходят и НЕ трогаются — проверено замером до и после.
   Замер репетиции: /catalog/?q=принтер нарушений 1 -> 0 на 320 и 1280;
   /catalog/orgtekhnika/ и /catalog/servers/ цвет не изменился. ===== */
html .catalog-subcat.--search-results .catalog-subcat__quant{color:#5f6a80 !important}

/* ===== ПАКЕТ 23 — F233. Кнопка «Показать товары» в открытой панели фильтров.
   .filter-btn.--mobile закрытая — белая на сиреневом, контраст 5.99, норма ок.
   При открытии добавляется класс --active и текст становится rgb(52,58,146)
   на том же фоне rgb(77,87,199): контраст 1.62 при норме 4.5 для 15px/700.
   Это главная кнопка подтверждения фильтра на узких ширинах.
   #ffffff на том же фоне = 5.99 — возвращаем кнопке её же исходный цвет.
   Замер репетиции, настоящий клик, 320 и 390: printers 1 -> 0,
   network/switch 1 -> 0, закрытое состояние не изменилось. ===== */
html .filter-btn.--mobile.--active{color:#ffffff !important}

/* ===== ПАКЕТ 24 — F234. Прокручиваемые ряды получают фокус, но не показывают его.
   На 390 и уже .apc-statbar__row и .catalog-head__filters прокручиваются вбок,
   поэтому браузер делает их focusable: Tab на них останавливается. Кольца нет —
   outline:none 0px, box-shadow:none. Нарушение 2.4.7: остановка клавиатуры без
   видимого индикатора. Найдено обходом Tab по карточке товара на 390.
   Цвет кольца #575fcf — тот же, что уже используется сайтом и пачкой 13.
   На 1280 ряды не прокручиваются и фокус не принимают: замер до и после
   показал outline none в обоих случаях, то есть на десктопе правка не видна.
   Замер репетиции: карточка и раздел, 390 — кольцо появилось на обоих рядах. ===== */
html .apc-statbar__row:focus-visible,
html .catalog-head__filters:focus-visible{outline:2px solid #575fcf !important;outline-offset:2px !important}

/* ===== ПАКЕТ 25 — F235. Страница 404 без заголовка в структуре.
   В разметке 404 есть <h1>Страница не найдена</h1>, но контейнер
   .content-block__head стоит display:none на ВСЕХ ширинах (320, 390, 768, 1280),
   поэтому h1 выброшен из дерева доступности: скринридер не получает заголовка
   вовсе, видимых заголовков на странице ноль. Это 1.3.1 и 2.4.6.
   Признак страницы: хлебные крошки внутри головы ПУСТЫЕ (ul.breadcrumb:empty),
   на остальных страницах они заполнены — проверено на разделе, карточке,
   /help/delivery/ и главной.
   Возвращаем заголовок в структуру, НЕ меняя вид: голова становится
   визуально скрытой (clip), а не display:none. Замер репетиции: на 404
   h1 в дереве 0 -> 1, высота main 580 (390) и 695 (1280) не изменилась;
   на четырёх контрольных страницах все числа до и после совпали. ===== */
html main.content-block .content-block__head:has(> ul.breadcrumb:empty):not(:has(#pagetitle)){
display:block !important;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}

/* ===== ПАКЕТ 26 — F236. Плейсхолдеры полей: #c4c4c4 по всему сайту.
   Поиск в шапке: rgb(196,196,196) на фоне rgb(238,241,255) = контраст 1.55.
   Форма входа (e-mail и пароль): то же на белом = 1.74. Норма 4.5 (15-16px).
   Плейсхолдер — это подсказка, что вводить; при таком контрасте её не видно
   на светлом экране и на солнце. Замер: 6 страниц x 2 ширины, нарушений 10.
   #5f6a80 даёт 4.83 на фоне поиска и 5.44 на белом — запас к норме везде.
   opacity:1 добавлена намеренно: Firefox по умолчанию приглушает плейсхолдер,
   и без неё расчётный контраст там не достигается.
   Замер репетиции с тем же пробником: нарушений 10 -> 0. ===== */
html input::placeholder,
html textarea::placeholder{color:#5f6a80 !important;opacity:1 !important}

/* ===== ПАКЕТ 27 — F237. Заголовки карточек блога теряют текст при увеличенных
   интервалах (WCAG 1.4.12 «Интервалы в тексте»).
   .mainpage-blog__title зажат жёсткой высотой 72px с -webkit-line-clamp:3.
   При штатных настройках текст помещается. Если пользователь увеличивает
   межстрочный и межбуквенный интервал (line-height 1.5, letter-spacing 0.12em,
   word-spacing 0.16em) — часть заголовков перестаёт помещаться и обрезается:
   на 320 обрезано 8 из 10, на 390 — 3, на 1280 — 8. Это потеря контента.
   Лечение: снять жёсткую высоту, но оставить min-height 72px, чтобы карточки
   сохранили одинаковую высоту в обычном режиме.
   Замер репетиции, три ширины, с интервалами и без:
     без интервалов — высоты 72 и ДО и ПОСЛЕ, обрезаний 0 (вид не меняется);
     с интервалами — обрезано 8 -> 0 (320), 3 -> 0 (390), 8 -> 0 (1280),
     высоты растут до 72-102, горизонтальная прокрутка не появляется.
   Вариант без min-height отвергнут: он ломал одинаковую высоту карточек
   (51, 102, 77 вместо ровных 72) даже при обычных настройках. ===== */
html body .mainpage-blog__title{-webkit-line-clamp:unset !important;display:block !important;
overflow:visible !important;max-height:none !important;height:auto !important;min-height:72px !important}

/* ===== ПАКЕТ 28 — F238. Липкая панель карточки прячет ЦЕНУ на телефоне.
   На карточке товара «под заказ» внизу экрана висит .itempage-stickybar.
   Её ширина 320, отступы 12 слева и 78 справа — на содержимое остаётся 230.
   Кнопка .itempage-stickybar__buy имеет flex:0 0 auto и ширину 245, то есть
   не сжимается и одна съедает всю строку. Блоку .itempage-stickybar__meta
   с ценой достаётся НОЛЬ пикселей: цена 212 829 ₽ не видна вообще.
   Замер ДО: 320 — цена 0x24 при содержимом 80; 390 — 48 из 80; подпись
   «Продано. Подобрать замену?» 0 и 48 при содержимом 275. Оба обрезаны.
   Лечение: разрешить кнопке сжиматься и переносить подпись по строкам,
   дать блоку цены гарантированный минимум 96px.
   Замер ПОСЛЕ на двух карточках «под заказ», ширины 320/390/768/1280:
     320 — цена 108x24 без обрезания, подпись 108x45 без обрезания,
           кнопка 115x63 без обрезания, панель 67 -> 92, гориз 0;
     390 — цена 148x24, подпись 148x45, кнопка 145x63, панель 67 -> 92;
     768 — все числа ДО и ПОСЛЕ совпали (правило ограничено 430);
     1280 — панели нет вовсе; на карточке «в наличии» панели нет. ===== */
@media (max-width:430px){
html .itempage-stickybar__meta{flex:1 1 auto !important;min-width:96px !important}
html .itempage-stickybar__buy{flex:0 1 auto !important;min-width:0 !important;white-space:normal !important;line-height:1.15 !important}
html .itempage-stickybar__stock{white-space:normal !important;overflow:visible !important;line-height:1.25 !important;overflow-wrap:anywhere !important}
}

/* ANDPRO-P29-F240 — алфавит брендов: читаемая буква под курсором */
html .ap-brands-az__link:hover,
html .ap-brands-az__link:focus-visible,
html .ap-brands-az__link:active{color:#ffffff !important}

/* ANDPRO-P30-F241 — читаемая ссылка под курсором в контенте */
html main a:hover:not(.cf-button):not([class*="button"]):not([class*="btn"]):not([class*="action"]):not(.ap-brands-az__link):not(.ap-wave-a-trust *):not(.ap-wave-a-cta *):not([class*="--dark"] *):not([class*="buy"]):not(.catalog-head__filters *):not(.itempage-info__tab-link),
html main a:active:not(.cf-button):not([class*="button"]):not([class*="btn"]):not([class*="action"]):not(.ap-brands-az__link):not(.ap-wave-a-trust *):not(.ap-wave-a-cta *):not([class*="--dark"] *):not([class*="buy"]):not(.catalog-head__filters *):not(.itempage-info__tab-link){color:#3d45b0 !important}
html .lk-history__item:hover .lk-history__title,
html .lk-historder__item:hover .lk-historder__title,
html .lk-subscribe-item__item:hover .lk-history__title{color:#3d45b0 !important}

/* ANDPRO-P31-F242 — подпись на тёмной плашке при наведении */
html main a.cfgnet-prod__buy:hover,html main a.cfgnet-prod__buy:active,
html main a.cfgups-prod__buy:hover,html main a.cfgups-prod__buy:active,
html main .catalog-head__filters li a:hover,
html main .catalog-head__filters li a:active{color:#ffffff !important}

/* ANDPRO-P32-F245 — кнопка помощи не накрывает «Оформить» на телефоне */
@media (max-width:430px){
html body:has(.ap-checkout-mobile-bar) .andpro-contact-launcher{bottom:90px !important}}

/* ANDPRO-P33-F246 — активная вкладка карточки под курсором */
html main a.itempage-info__tab-link.--active:hover,
html main a.itempage-info__tab-link.--active:active{color:#ffffff !important}
/* ANDPRO-P33-F247 — старая цена: контраст крупного жирного текста */
html main .itempage-content__oldprice{color:#7d8da0 !important}

/* ANDPRO-P36-LK — пакет 36, 18.09.2026 */
/* F276 подписи и значения в истории заказов: контраст был 2.29 при норме 4.5 */
html .lk-historder__caption,
html .lk-historder__totalcaption,
html .lk-historder__value.--arj{color:#5b768d !important}
/* F277 статус «Оплачен»: был 4.19 */
html .lk-historder__value.--success{color:#30824a !important}
/* F278 инициалы в аватаре кабинета: был 4.26 */
html .ap-lk2__avatar{color:#656b79 !important}
/* F279 кнопка «Удалить» в профилях: была 4.13 */
html .lk-profiles__btn.--delete{color:#d1313d !important}
/* F280 подсказка о прокрутке вкладок кабинета. Класс x-scroll навешивается скриптом
   только когда полоса не помещается, поэтому на широких экранах правило не действует. */
html ul.page-side.x-scroll{
  background-image:
    linear-gradient(to right,#ffffff 30%,rgba(255,255,255,0)),
    linear-gradient(to left,#ffffff 30%,rgba(255,255,255,0)),
    radial-gradient(farthest-side at 0 50%,rgba(37,50,77,.16),rgba(37,50,77,0)),
    radial-gradient(farthest-side at 100% 50%,rgba(37,50,77,.16),rgba(37,50,77,0));
  background-position:left center,right center,left center,right center;
  background-repeat:no-repeat;
  background-size:30px 100%,30px 100%,14px 100%,14px 100%;
  background-attachment:local,local,scroll,scroll;
}

/* ANDPRO-P38-LK-NAV — пакет 38, 18.09.2026 */
/* F281: полоса фильтров истории заказов прокручивается (overflow-x: scroll),
   но признака этого нет. Класс x-scroll ей не навешивается, поэтому правило
   пакета 36 не действует. Подсказка самогасится: белые градиенты приклеены
   к содержимому и накрывают тени, когда прокручивать нечего. */
html ul.lk-history__nav{
  background-image:
    linear-gradient(to right,#ffffff 30%,rgba(255,255,255,0)),
    linear-gradient(to left,#ffffff 30%,rgba(255,255,255,0)),
    radial-gradient(farthest-side at 0 50%,rgba(37,50,77,.16),rgba(37,50,77,0)),
    radial-gradient(farthest-side at 100% 50%,rgba(37,50,77,.16),rgba(37,50,77,0));
  background-position:left center,right center,left center,right center;
  background-repeat:no-repeat;
  background-size:30px 100%,30px 100%,14px 100%,14px 100%;
  background-attachment:local,local,scroll,scroll;
}

/* ANDPRO-P42-QUICKORDER-CSV — пакет 42, 19.09.2026 */
/* F116: фокус уходит на поле выбора файла 1x1 px, спрятанное обрезкой, и кольцо
   рисовать негде. Показываем кольцо на ВИДИМОЙ метке «CSV», пока поле в фокусе.
   Замер 19.09: было `0px none`, стало `3px solid rgb(11,112,224)` в chromium и webkit. */
body:has(#quick_order_csv:focus-visible) label[for="quick_order_csv"]{
  outline:3px solid #0b70e0 !important;
  outline-offset:3px !important;
}


/* ANDPRO-P43-FAQ-ZNAK — пакет 43, 19.09.2026: знак в кружке FAQ рисуется геометрией, а не глифом шрифта */
.ap-blog-faq details>summary::before,
html.andpro-article-modern-page .ap-article-faq details>summary::before,
.andpro-article-modern .ap-article-faq details>summary::before,
.ap-service-faq .ap-service-faq-item>summary::before,
.ap-faq .ap-faq-item>summary::before,
.ap-services-faq .ap-services-faq-item>summary::before{
  content:"" !important;
  background-image:linear-gradient(#303fcd,#303fcd),linear-gradient(#303fcd,#303fcd) !important;
  background-size:8px 2px,2px 8px !important;
  background-position:center center,center center !important;
  background-repeat:no-repeat !important;
  background-color:#eef1ff !important;
}
.ap-blog-faq details[open]>summary::before,
html.andpro-article-modern-page .ap-article-faq details[open]>summary::before,
.andpro-article-modern .ap-article-faq details[open]>summary::before,
.ap-service-faq .ap-service-faq-item[open]>summary::before,
.ap-faq .ap-faq-item[open]>summary::before,
.ap-services-faq .ap-services-faq-item[open]>summary::before{
  content:"" !important;
  background-size:8px 2px,0 0 !important;
}

/* ANDPRO-P43-PDP-BUYBLOCK — пакет 43: рамка блока покупки уравнивается с соседними, кнопка на всю ширину, зазоры равны */
@media (min-width:768px){
  html.ap-wave-b-v1 [data-ap-wave-b-owner="pdp"] .itempage-content__buyblock .card-btn.--buy{
    width:100% !important;
  }
}
@media (min-width:901px){
  html.ap-wave-b-v1 [data-ap-wave-b-owner="pdp"] .itempage-content__buyblock{
    max-width:none !important;
  }
  html.ap-wave-b-v1 [data-ap-wave-b-owner="pdp"] .ap-invoice-btn{
    margin-top:10px !important;
  }
}

/* ANDPRO-P44-PLOSKIE-RAMKI — пакет 44, 19.09.2026: четыре вложенные рамки сведены к двум, тени сняты */
.ap-company-hero,.ap-req-hero,.ap-clients-hero,.ap-staff-hero,.ap-jobs-hero,
.ap-cert-hero,.ap-contract-hero,.ap-doc-hero,.ap-editorial-hero,.ap-official-hero,
.ap-news-hero,.ap-delivery-hero,.ap-payment-hero,.ap-warranty-hero,.ap-registry-hero,
.ap-trace-hero,.contacts-hero,.ap-services-hero{
  border:0 !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.ap-company-hero__side,.ap-req-hero__side,.ap-clients-hero__side,.ap-staff-hero__side,
.ap-jobs-hero__side,.ap-cert-hero__side,.ap-contract-hero__side,.ap-doc-hero__side,
.ap-editorial-hero__side,.ap-official-hero__side,.ap-news-hero__side,.ap-delivery-hero__side,
.ap-payment-hero__side,.ap-warranty-hero__side,.ap-registry-hero__side,.ap-trace-hero__side,
.ap-help-hero__side,.ap-consent-hero__side,.ap-faq-hero__side,.contacts-hero__side,
.ap-services-hero__side{
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  padding:0 !important;
}
.ap-side-block,.ap-services-side-block,
.ap-help-hero__side .ap-side-block,.ap-consent-hero__side .ap-side-block,
.ap-faq-hero .ap-side-block,.ap-faq-hero__side .ap-side-block{
  box-shadow:none !important;
}
html.ap-attention-v1 .andpro-registry .ap-harmony-section{
  box-shadow:none !important;
}

/* ANDPRO-P45-PLOSKIE-RAMKI-DOBOR — пакет 45, 19.09.2026: остаток заготовки hero — панели и секции без теней */
[class*="-hero__main"],[class*="-hero__content"],[class*="-hero__side"]{
  box-shadow:none !important;
}
.ap-harmony-section{
  box-shadow:none !important;
}
.ap-return-hero,.ap-help-hero,.ap-consent-hero,.ap-faq-hero{
  border:0 !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.ap-return-hero__side,.ap-return-hero__side--actions{
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  padding:0 !important;
}

/* ANDPRO-P46-OSIROTEVSHAYA-POLOSA — пакет 46, 19.09.2026: декоративная полоса 6px была верхней кромкой снятой рамки */
[class*="-hero__side"]::before{
  display:none !important;
}

/* ANDPRO-P47-OBREZKA-UGLOV — пакет 47, 19.09.2026: боковая колонка без фона продолжала обрезать содержимое по радиусу 18px */
[class*="-hero__side"]{
  overflow:visible !important;
  border-radius:0 !important;
}

/* ANDPRO-P48-FAQ-I-KOLONKA-NARROW — F305: only the two audited page families.
 * P43 still owns shared FAQ marks; do not use attribute selectors here. */
.andpro-faq-page .ap-faq .ap-faq-item>summary::before,
.andpro-services-page .ap-services-faq .ap-services-faq-item>summary::before{
  content:"" !important;
  background-image:linear-gradient(#303fcd,#303fcd),linear-gradient(#303fcd,#303fcd) !important;
  background-size:8px 2px,2px 8px !important;
  background-position:center center,center center !important;
  background-repeat:no-repeat !important;
  background-color:#eef1ff !important;
}
.andpro-faq-page .ap-faq .ap-faq-item[open]>summary::before,
.andpro-services-page .ap-services-faq .ap-services-faq-item[open]>summary::before{
  content:"" !important;
  background-size:8px 2px,0 0 !important;
}
.andpro-faq-page .ap-faq-hero__side>*,
.andpro-services-page .ap-services-hero__side>*{
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.andpro-faq-page .ap-faq-hero__side>*+*,
.andpro-services-page .ap-services-hero__side>*+*{
  margin-top:10px !important;
}
.andpro-faq-page .ap-faq-hero__side>.ap-side-block,
.andpro-services-page .ap-services-hero__side>.ap-services-side-block{
  border-width:1px !important;
  border-style:solid !important;
  padding-bottom:22px !important;
}

/* ANDPRO-P49-KARTOCHKI-KOLONKI — пакет 49, 19.09.2026: цвет рамки из палитры и внутренние отступы карточек боковой колонки */
.ap-side-block,.ap-services-side-block,
.ap-side-block:last-child,.ap-services-side-block:last-child{
  border-color:#dfe6f1 !important;
  padding:22px !important;
}

/* ANDPRO-P50-STATYA-RAMKI — пакет 50, 19.09.2026: полосы во всю ширину статьи без рамок и теней, оттенки линий сведены к одному */
.article-page__row,
.article-page__lead,
.ap-article-responsibility,
.ap-article-full-disclosure,
.mainpage-blog__slider-container{
  border:0 !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.article-side__card,
.article-side__link,
.article-side__button,
.blog-page__date,
.ap-article-preview,
.article-page__cover{
  border-color:#dfe6f1 !important;
  box-shadow:none !important;
}

/* ANDPRO-P51-LINII-I-SIROTA — пакет 51, 19.09.2026: полоса, осиротевшая после пакета 50, и нейтральные линии к одному цвету */
.ap-article-responsibility::before{
  display:none !important;
}
.cfgsrv-prod,.cfgsrv-chip,
.blog-page__card,
.andpro-consent__inner,
.contacts-trust__item{
  border-color:#dfe6f1 !important;
}
.abh-route-grid>*{
  border-left-width:1px !important;
  border-left-style:solid !important;
  border-color:#dfe6f1 !important;
}

/* ANDPRO-P52-STRELKI-KARUSELI — пакет 52, 19.09.2026: стрелки перенесены с заголовка карточки на её обложку */
.slider_prev,.slider_next{
  top:95px !important;
}
@media (max-width:480px){
  .slider_prev,.slider_next{
    top:69px !important;
  }
}

/* ANDPRO-P53-TENI-KARTOCHEK — пакет 53, 19.09.2026: карточки контента без теней */
.ap-card,.ap-related-card,.ap-contact-card,.ap-faq-item,.ap-trust-point,
.ap-process-card,.ap-help-card,.ap-note,.ap-warning,.ap-metric,.ap-meta,.ap-trust,
.ap-doc-card,.ap-check-card,.ap-table-wrap,.ap-badge,
.ap-staff-article-card,.ap-staff-card,.ap-staff-fact-card,.ap-staff-link-card,.ap-staff-section,
.contacts-card,.contacts-trust__item,.contacts-map-card,.contacts-question,
.ap-side-block,.ap-services-side-block,.ap-harmony-card,.ap-info-card,.blog-page__card,
.ap-services-disclosure__body,.ap-wave-a-disclosure,.ap-article-preview{
  box-shadow:none !important;
}

/* ANDPRO-P54-STATYA-VNESHNYAYA-RAMKA — пакет 54, 19.09.2026: внешняя рамка вокруг всей статьи и рамки вокруг каждого раздела */
.andpro-article-modern .article-page__content details.ap-article-full-disclosure,
details.ap-article-full-disclosure{
  border:0 !important;
  box-shadow:none !important;
}
.ap-article-section,
.andpro-article-modern .ap-article-section{
  border:0 !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* ANDPRO-P55-PLITKI-I-PEREKLYUCHATEL — пакет 55, 19.09.2026: плитки «Что разобрано в статье» получают рамку, переключатель статьи — вид кнопки */
.ap-topic-grid__item{
  border:1px solid #dfe6f1 !important;
  border-radius:10px !important;
  background:#fff !important;
  padding:16px 18px !important;
}
.ap-article-full-disclosure>summary{
  justify-content:flex-start !important;
  gap:12px !important;
  padding:12px 16px !important;
  background:#f6f8fd !important;
  border:1px solid #dfe6f1 !important;
  border-radius:10px !important;
}
.ap-article-full-disclosure>summary::after{
  content:"" !important;
  flex:0 0 22px !important;
  width:22px !important;
  height:22px !important;
  border-radius:50% !important;
  background-color:#eef1ff !important;
  background-image:linear-gradient(#303fcd,#303fcd),linear-gradient(#303fcd,#303fcd) !important;
  background-size:9px 2px,2px 9px !important;
  background-position:center center,center center !important;
  background-repeat:no-repeat !important;
}
.ap-article-full-disclosure[open]>summary::after{
  background-size:9px 2px,0 0 !important;
}

/* ANDPRO-P56-EDINYY-PEREKLYUCHATEL — пакет 56, 19.09.2026: один вид у всех крупных раскрывающихся блоков сайта */
.abh-composition-disclosure>summary,
.ap-services-disclosure>summary,
.ap-company-disclosure>summary,
.ap-catalog-more-products>summary,
.ap-catalog-guide-disclosure>summary,
.ap-wave-a-disclosure>summary,
.ap-article-full-disclosure>summary{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  padding:12px 16px !important;
  background:#f6f8fd !important;
  border:1px solid #dfe6f1 !important;
  border-radius:10px !important;
  cursor:pointer !important;
  list-style:none !important;
}
.abh-composition-disclosure>summary::-webkit-details-marker,
.ap-services-disclosure>summary::-webkit-details-marker,
.ap-company-disclosure>summary::-webkit-details-marker,
.ap-catalog-more-products>summary::-webkit-details-marker,
.ap-catalog-guide-disclosure>summary::-webkit-details-marker,
.ap-wave-a-disclosure>summary::-webkit-details-marker,
.ap-article-full-disclosure>summary::-webkit-details-marker{
  display:none !important;
}
.abh-composition-disclosure>summary::after,
.ap-services-disclosure>summary::after,
.ap-company-disclosure>summary::after,
.ap-catalog-more-products>summary::after,
.ap-catalog-guide-disclosure>summary::after,
.ap-article-full-disclosure>summary::after{
  content:"" !important;
  order:-1 !important;
  flex:0 0 22px !important;
  width:22px !important;
  height:22px !important;
  margin:0 !important;
  border-radius:50% !important;
  background-color:#eef1ff !important;
  background-image:linear-gradient(#303fcd,#303fcd),linear-gradient(#303fcd,#303fcd) !important;
  background-size:9px 2px,2px 9px !important;
  background-position:center center,center center !important;
  background-repeat:no-repeat !important;
}
.abh-composition-disclosure[open]>summary::after,
.ap-services-disclosure[open]>summary::after,
.ap-company-disclosure[open]>summary::after,
.ap-catalog-more-products[open]>summary::after,
.ap-catalog-guide-disclosure[open]>summary::after,
.ap-article-full-disclosure[open]>summary::after{
  background-size:9px 2px,0 0 !important;
}

/* ANDPRO-P57-ZNAK-SLEVA-V-STATYE — пакет 57, 19.09.2026: в вопросах статьи знак переезжает влево и получает общий вид */
.ap-article-section>details>summary{
  position:relative !important;
  padding-left:44px !important;
  padding-right:18px !important;
}
.ap-article-section>details>summary::before{
  content:"" !important;
  position:absolute !important;
  left:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:22px !important;
  height:22px !important;
  border-radius:50% !important;
  background-color:#eef1ff !important;
  background-image:linear-gradient(#303fcd,#303fcd),linear-gradient(#303fcd,#303fcd) !important;
  background-size:9px 2px,2px 9px !important;
  background-position:center center,center center !important;
  background-repeat:no-repeat !important;
}
.ap-article-section>details[open]>summary::before{
  background-size:9px 2px,0 0 !important;
}
.ap-article-section>details>summary::after{
  display:none !important;
}

/* ANDPRO-P58-POLOCHKI — пакет 58, 19.09.2026: линии сверху и снизу у раскрывающихся блоков лишние, рамки кнопки достаточно */
.abh-composition-disclosure,
.ap-catalog-more-products,
.ap-catalog-guide-disclosure,
.ap-services-disclosure,
.ap-company-disclosure,
.ap-wave-a-disclosure,
.ap-article-full-disclosure{
  border-top:0 !important;
  border-bottom:0 !important;
}

/* ANDPRO-P59-LID-I-DATA — пакет 59, 19.09.2026: лид статьи — акцентная линия вместо плашки, дата — просто текст */
.ap-article-preview.apa-lead,
.article-page__lead .ap-article-preview{
  background:transparent !important;
  border:0 !important;
  border-left:3px solid #4d57c7 !important;
  border-radius:0 !important;
  padding:2px 0 2px 20px !important;
}
.article-page__lead{
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
}
.blog-page__date{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
}
.article-page__row{
  background:transparent !important;
  border-radius:0 !important;
}

/* ANDPRO-P60-PODVAL-NA-TELEFONE — пакет 60, 19.09.2026: раскрывашки подвала на узком экране — общий знак слева */
@media (max-width:767px){
  .nwfooter-main__col.--s-menu>summary{
    justify-content:flex-start !important;
    gap:12px !important;
  }
  .nwfooter-main__col.--s-menu>summary::after{
    content:"" !important;
    order:-1 !important;
    flex:0 0 22px !important;
    width:22px !important;
    height:22px !important;
    border-radius:50% !important;
    background-color:rgba(255,255,255,.14) !important;
    background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff) !important;
    background-size:9px 2px,2px 9px !important;
    background-position:center center,center center !important;
    background-repeat:no-repeat !important;
  }
  .nwfooter-main__col.--s-menu[open]>summary::after{
    background-size:9px 2px,0 0 !important;
  }
}

/* ANDPRO-P70-F305-DOBOR — 19.09.2026, добор после сужения P48 */
.andpro-faq-page .ap-faq-item>summary::before{content:"" !important;background-image:linear-gradient(#303fcd,#303fcd),linear-gradient(#303fcd,#303fcd) !important;background-size:8px 2px,2px 8px !important;background-position:center center,center center !important;background-repeat:no-repeat !important;background-color:#eef1ff !important}
.andpro-faq-page .ap-faq-item[open]>summary::before{content:"" !important;background-size:8px 2px,0 0 !important}
.ap-delivery-hero__side>*+*,.ap-return-hero__side>*+*{margin-top:8px !important}
.ap-delivery-hero__side>.ap-side-block,.ap-return-hero__side>.ap-side-block{border-bottom:1px solid #dfe6f1 !important}

/* ANDPRO-F308-MOBILE-FOOTER-SUMMARY-GEOMETRY-V1
   Four footer disclosure indicators are geometry, not font glyphs. */
@media (max-width:767px){
  html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__summary::after{
    content:"" !important;
    flex:0 0 22px;
    width:22px;
    height:22px;
    font-size:0;
    background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor);
    background-repeat:no-repeat;
    background-position:center center,center center;
    background-size:10px 2px,2px 10px;
  }
  html.ap-wave-a-v1 .ap-wave-a-footer .ap-wave-a-footer__group[open]>.ap-wave-a-footer__summary::after{
    content:"" !important;
    background-size:10px 2px,0 0;
  }
}

/* ANDPRO-F182-MAP-FOCUS-V1: class is set by f182-map-focus.js. */
.contacts-map-card.ap-map-focus {
  outline: 3px solid #0b70e0 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(11, 112, 224, .28) !important;
}

@media (forced-colors: active) {
  .contacts-map-card.ap-map-focus {
    outline-color: CanvasText !important;
    box-shadow: none !important;
  }
}

/* ANDPRO-P56-DOBOR-KONTRAST-PODPISI - dobor k paketu 56, 20.09.2026:
   podlozhka #f6f8fd na summary uvela seruyu podpis za porog WCAG AA
   (4.368 pri norme 4.5). Zatemnyaem tolko tekst: 4.560.
   Fon paketa 56 i token --andpro-blog-muted NE trogaem. */
.abh-composition-disclosure > summary span { color: #667381 !important; }

/* ANDPRO-P1-MOBILE-SEARCH-RESTORE-V1 */
@media(max-width:767px){
 html.ap-wave-a-v1 .ap-wave-a-header{height:auto;max-height:none}
 html.ap-wave-a-v1 .ap-wave-a-header .header__cont{height:auto}
 html.ap-wave-a-v1 .ap-wave-a-header .header__row{height:auto;padding-bottom:12px}
 html.ap-wave-a-v1 .ap-wave-a-header .header__search-block{display:block;grid-column:1/-1;grid-row:2;width:100%;padding:0 12px;box-sizing:border-box}
}
/* F-BC: единые хлебные крошки на всех страницах (разделы, листинги, фильтры, карточки, блог) */
html.ap-wave-a-v1 body ul.breadcrumb{margin:0 0 12px !important;padding:16px 0 0 !important;gap:6px !important;font-size:13px !important;line-height:20px !important;color:#4b5563 !important}
html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item{min-height:0 !important;height:auto !important;font-size:13px !important;font-weight:500 !important;color:#4b5563 !important}
html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item > a,html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item > span{height:auto !important;min-height:0 !important;line-height:20px !important;padding:2px 0 !important;font-size:13px !important;font-weight:500 !important;color:#4b5563 !important}
html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item > a:hover{color:#343a92 !important}
html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item.--active > a,html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item.--active > span,html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item:last-child > a,html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item:last-child > span{font-weight:600 !important;color:#1f2937 !important}
html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item + .breadcrumb-item::before{color:#9ca3af !important;font-weight:400 !important;margin:0 6px 0 0 !important;padding:0 !important}
html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item{padding:0 !important;margin:0 !important}
@media (max-width:767px){html.ap-wave-a-v1 body ul.breadcrumb{padding-top:12px !important}html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item > a,html.ap-wave-a-v1 body ul.breadcrumb .breadcrumb-item > span{padding:12px 0 !important;margin:-10px 0 !important}}
/* F-CART-ROWS: строки корзины не сжимаются (наложение при 5+ товарах на десктопе) */
html body .nwheader-cart__item-box > .nwheader-cart-item{flex-shrink:0 !important}

/* Home first screen, 16.10.2026: local palette and compact consent only on home. */
html.ap-wave-a-v1 .ap-wave-a-hero h1 { color: var(--ap-wa-hero-ink); }
html.ap-wave-a-v1 .ap-wave-a-hero__copy > p { color: var(--ap-wa-hero-muted); }
html.ap-wave-a-v1 .ap-wave-a-hero .ap-wave-a-eyebrow { color: var(--ap-wa-amber); }
html.ap-wave-a-v1 .ap-wave-a-hero .ap-wave-a-action--primary {
  color: var(--ap-wa-hero-dark);
  background: var(--ap-wa-amber);
  border-color: var(--ap-wa-amber);
}
html.ap-wave-a-v1 .ap-wave-a-hero .ap-wave-a-action--primary:hover {
  background: #ffd180;
  border-color: #ffd180;
}
html.ap-wave-a-v1 .ap-wave-a-hero .ap-wave-a-action--secondary {
  color: var(--ap-wa-hero-ink);
  background: transparent;
  border-color: rgba(255, 255, 255, .45);
}
html.ap-wave-a-v1 .ap-wave-a-hero .ap-wave-a-action--secondary:hover {
  background: rgba(255, 255, 255, .1);
  border-color: var(--ap-wa-hero-ink);
}
html.ap-wave-a-v1 .ap-wave-a-hero .ap-wave-a-facts { color: #d7daf0; }
html.ap-wave-a-v1 .ap-wave-a-hero .ap-wave-a-facts li::before { background: var(--ap-wa-amber); }
html.ap-wave-a-v1 .ap-wave-a-hero__media figcaption {
  color: var(--ap-wa-hero-caption);
  background: #1d2250;
  border-color: transparent;
}
html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent { padding: 0 0 12px; }
html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__inner {
  padding: 10px 16px;
  gap: 16px;
}
html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__text {
  font-size: 13px;
  line-height: 1.35;
}
html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__button {
  padding: 7px 14px;
  font-size: 13px;
}
@media (max-width: 767px) {
  html.ap-attention-v1.ap-wave-a-v1 .content-block .ap-wave-a-home .ap-wave-a-hero h1,
  html.ap-wave-a-v1 .ap-wave-a-hero h1 {
    margin-bottom: 16px;
    font-size: 28px;
    line-height: 1.2;
  }
  html.ap-wave-a-v1 .ap-wave-a-hero__copy > p {
    margin-bottom: 16px;
    font-size: 15px;
    line-height: 1.5;
  }
}

/* Home consent R3: compact notice on phones, preserving both choices and policy link. */
@media (max-width: 767px) {
  html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent {
    bottom: max(10px, env(safe-area-inset-bottom));
    padding: 0;
  }
  html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__inner {
    display: block;
    padding: 4px 8px;
  }
  html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__full {
    display: none;
  }
  html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__compact[hidden] {
    display: inline;
  }
  html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__text {
    font-size: 12px;
    line-height: 16px;
  }
  html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 4px;
  }
  html.ap-wave-a-v1:has(.ap-wave-a-home) #andpro-consent .andpro-consent__button {
    min-height: 44px;
    padding: 4px 8px;
    font-size: 12px;
    line-height: 16px;
  }
}
