

/* Start:/local/templates/zetlab/template_styles.css?1791807819326105*/
/* =========================================================
   ZETLAB — Design System 2026
   Single source of truth: tokens → primitives → components.
   ========================================================= */

/* ---------- 0. Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; }
img, svg, video { display: block; max-width: 100%; height: auto; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, textarea, select { font: inherit; color: inherit; }
ul, ol { margin: 0; padding: 0; }
a { color: inherit; text-decoration: none; }
[hidden] { display: none !important; }

/* ---------- 1. Design tokens ---------- */
:root {
  /* Brand */
  --brand-600: #1d4f7a;
  --brand-700: #143c5e;
  --brand-800: #0e2f4b;
  --brand-900: #082338;
  --brand-200: #c8dced;
  --brand-100: #e8f1f9;
  --brand-50:  #f3f8fc;

  /* Accent (teal-cyan, calm) */
  --accent-500: #0fb5b1;
  --accent-600: #099693;
  --accent-100: #def6f5;

  /* Neutral palette (cool gray) */
  --ink:       #0d1a2b;
  --text:      #1f2a3a;
  --text-soft: #3b4a5e;
  --muted:     #5e6e85;
  --soft:      #8b97a7;
  --hairline:  #e6ecf3;
  --line:      #dde5ee;
  --line-strong:#c5d2e0;

  /* Surfaces */
  --bg:        #f4f7fb;
  --bg-tint:   #eef3f8;
  --surface:   #ffffff;
  --surface-2: #fafcfd;
  --surface-3: #f3f6fa;
  --overlay:   rgba(13, 26, 43, .54);

  /* Status */
  --success-500:#16a34a; --success-100:#dcfce7;
  --warning-500:#d97706; --warning-100:#fff1d6;
  --danger-500: #dc2626; --danger-100: #fde2e2;
  --info-500:   #0ea5e9; --info-100:   #e0f2fe;
  --new-500:    #7c3aed; --new-100:    #ede9fe;

  /* Radii */
  --r-xs:  6px;
  --r-sm:  8px;
  --r-md:  10px;
  --r-lg:  14px;
  --r-xl:  18px;
  --r-2xl: 22px;
  --r-pill: 999px;

  /* Shadows (tinted with brand for cohesion) */
  --shadow-xs: 0 1px 1px rgba(15, 48, 80, .04), 0 1px 2px rgba(15, 48, 80, .06);
  --shadow-sm: 0 1px 2px rgba(15, 48, 80, .06), 0 4px 12px rgba(15, 48, 80, .06);
  --shadow-md: 0 6px 18px rgba(15, 48, 80, .08), 0 1px 3px rgba(15, 48, 80, .05);
  --shadow-lg: 0 18px 36px rgba(15, 48, 80, .12), 0 4px 10px rgba(15, 48, 80, .05);
  --shadow-hi: 0 28px 60px rgba(15, 48, 80, .18);
  --ring:      0 0 0 3px rgba(29, 79, 122, .22);

  /* Type scale */
  --font-sans: "Inter", "InterVariable", -apple-system, BlinkMacSystemFont, "SF Pro Text",
               "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", "SFMono-Regular", "SF Mono", Menlo, Consolas,
               "Liberation Mono", monospace;

  --fs-12: 12px;
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-15: 15px;
  --fs-16: 16px;
  --fs-17: 17px;
  --fs-18: 18px;
  --fs-19: 19px;
  --fs-22: 22px;
  --fs-20: 20px;
  --fs-24: 24px;
  --fs-28: 28px;
  --fs-32: 32px;
  --fs-40: 40px;
  --fs-48: 48px;
  --fs-56: clamp(38px, 6vw, 56px);
  --fs-64: clamp(42px, 7vw, 64px);

  /* Spacing scale */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 20px; --s-6: 24px; --s-7: 32px; --s-8: 40px;
  --s-9: 56px; --s-10: 72px; --s-11: 96px;

  /* Motion */
  --ease: cubic-bezier(.2, .6, .2, 1);
  --motion-fast:  140ms var(--ease);
  --motion-base:  220ms var(--ease);
  --motion-slow:  360ms var(--ease);

  /* Legacy aliases (kept so existing class hooks keep working) */
  --zet-ink: var(--ink);
  --zet-text: var(--text);
  --zet-muted: var(--muted);
  --zet-blue: var(--brand-600);
  --zet-blue-dark: var(--brand-800);
  --zet-blue-soft: var(--brand-100);
  --zet-bg: var(--bg);
  --zet-surface: var(--surface);
  --zet-surface-soft: var(--surface-2);
  --zet-line: var(--line);
  --zet-line-strong: var(--line-strong);
  --zet-focus: rgba(29, 79, 122, .22);
  --zet-shadow: var(--shadow-md);
  --zet-shadow-soft: var(--shadow-sm);
  --zet-white: #fff;
  --zet-accent: var(--brand-600);

  --container: 1200px;
}

/* ---------- 24. Canonical catalog render system ---------- */
.catalog-hero,
.product-hero,
.z-block {
  width: min(var(--container), calc(100% - 32px));
  margin-right: auto;
  margin-left: auto;
}

.catalog-hero {
  margin-top: 28px;
  margin-bottom: 34px;
  padding: 34px 0 28px;
  border-bottom: 1px solid var(--hairline);
}

.catalog-hero__copy {
  max-width: 880px;
}

.catalog-hero__eyebrow,
.product-hero__eyebrow {
  display: inline-flex;
  margin-bottom: 12px;
  color: var(--brand-700);
  font-size: var(--fs-13);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.catalog-hero h1,
.product-hero h1 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.04;
  letter-spacing: 0;
}

.catalog-hero p,
.product-hero__content > p {
  max-width: 760px;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: var(--fs-18);
  line-height: 1.65;
}

.product-hero {
  display: grid;
  grid-template-columns: minmax(340px, .9fr) minmax(0, 1.1fr);
  gap: clamp(28px, 4vw, 58px);
  align-items: start;
  margin-top: 30px;
  margin-bottom: 44px;
  padding-bottom: 34px;
  border-bottom: 1px solid var(--hairline);
}

.product-hero__media {
  min-width: 0;
}

.product-hero__main-image {
  display: grid;
  min-height: 360px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, #fff, var(--surface));
  place-items: center;
}

.product-hero__main-image img {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: contain;
  padding: 18px;
}

.product-hero__main-image--empty::before,
.z-card__image--empty::before {
  content: "";
  width: 42px;
  height: 42px;
  border: 2px solid var(--brand-200);
  border-radius: 50%;
  box-shadow: inset 0 0 0 10px #fff;
}

.product-hero__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.product-hero__thumb {
  aspect-ratio: 1;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  background: #fff;
  cursor: pointer;
}

.product-hero__thumb.is-active {
  border-color: var(--brand-600);
  box-shadow: 0 0 0 2px var(--brand-100);
}

.product-hero__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-hero__content {
  padding-top: 12px;
}

.product-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}

.z-block {
  margin-top: 42px;
  margin-bottom: 42px;
}

.z-block__head {
  display: grid;
  grid-template-columns: minmax(0, .75fr) minmax(260px, .45fr);
  gap: 24px;
  align-items: end;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--hairline);
}

.z-block__head h2,
.z-block--text > h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(24px, 2.4vw, 34px);
  line-height: 1.16;
  overflow-wrap: anywhere;
  hyphens: auto;
}

.z-block__head p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.z-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 18px;
}

.z-card {
  display: grid;
  overflow: hidden;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-xs);
  transition: transform var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast);
}

.z-card[href]:hover {
  border-color: var(--brand-200);
  box-shadow: var(--shadow-sm);
}

.z-card__image {
  display: grid;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--surface);
  place-items: center;
}

.z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-card--product .z-card__image img {
  object-fit: contain;
  padding: 14px;
  background: #fff;
}

.z-card__body {
  display: grid;
  gap: 8px;
  padding: 16px;
}

.z-card__body strong {
  color: var(--ink);
  font-size: var(--fs-18);
  line-height: 1.25;
  overflow-wrap: anywhere;
  hyphens: auto;
}

.z-card__body span {
  color: var(--muted);
  font-size: var(--fs-14);
  line-height: 1.5;
}

.z-card__body em {
  color: var(--brand-700);
  font-style: normal;
  font-weight: 800;
}

.z-editor {
  max-width: 920px;
  color: var(--text);
  font-size: var(--fs-17);
  line-height: 1.72;
  overflow-wrap: anywhere;
}

.z-editor > *:first-child {
  margin-top: 0;
}

.z-editor img {
  max-width: 100%;
  height: auto;
  border-radius: var(--r-sm);
}

.z-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #fff;
}

.z-table-wrap table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
}

.z-table-wrap th,
.z-table-wrap td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--hairline);
  text-align: left;
  vertical-align: top;
}

.z-table-wrap th {
  width: 34%;
  color: var(--ink);
  font-weight: 800;
  background: var(--surface);
}

.z-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}

.z-gallery__item {
  display: block;
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #fff;
}

.z-gallery__item img {
  width: 100%;
  height: 100%;
  max-height: 360px;
  object-fit: contain;
  padding: 10px;
}

.z-doc-list,
.z-faq-list {
  display: grid;
  gap: 12px;
}

.z-doc,
.z-faq {
  display: block;
  padding: 16px 18px;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #fff;
}

.z-doc strong,
.z-faq summary {
  color: var(--ink);
  font-weight: 800;
}

.z-doc span,
.z-faq p {
  display: block;
  margin: 6px 0 0;
  color: var(--muted);
}

.z-block--cta {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: space-between;
  padding: 24px;
  border: 1px solid var(--brand-100);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, #fff, var(--brand-50));
}

.z-block--cta h2 {
  margin: 0;
}

.z-block--cta p {
  margin: 8px 0 0;
  color: var(--muted);
}

/* ---------- 25. Editorial page render system ---------- */
.z-page-hero,
.z-page-block {
  width: min(var(--container), calc(100% - 32px));
  margin-right: auto;
  margin-left: auto;
}

.z-page-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr);
  gap: clamp(24px, 4vw, 52px);
  align-items: center;
  margin-top: 28px;
  margin-bottom: 42px;
  padding: 34px 0 30px;
  border-bottom: 1px solid var(--hairline);
}

.z-page-hero__copy {
  max-width: 860px;
}

.z-page-hero h1 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(34px, 4.5vw, 56px);
  line-height: 1.06;
  letter-spacing: 0;
  overflow-wrap: anywhere;
  hyphens: auto;
}

.z-page-hero p {
  max-width: 780px;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: var(--fs-18);
  line-height: 1.68;
}

.z-page-hero__media {
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-hero__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.z-page-hero.z-page-block--support:not(.z-page-block--standard),
.z-page-hero.z-page-block--service:not(.z-page-block--standard),
.z-page-hero.z-page-block--company:not(.z-page-block--standard),
.z-page-hero.z-page-block--discounts:not(.z-page-block--standard) {
  padding-right: clamp(24px, 4vw, 44px);
  padding-left: clamp(24px, 4vw, 44px);
}

.z-page-block--support .z-card--child-page,
.z-page-block--support .z-card--article,
.z-page-block--service .z-card--child-page,
.z-page-block--company .z-card--child-page,
.z-page-block--discounts .z-card--child-page {
  border-radius: var(--r-sm);
  box-shadow: none;
}

.z-card--child-page .z-card__body,
.z-card--article .z-card__body,
.z-card--news .z-card__body {
  min-height: 132px;
}

.z-card--child-page .z-card__image,
.z-card--article .z-card__image,
.z-card--news .z-card__image {
  aspect-ratio: 16 / 9;
}

.z-card--article .z-card__image img,
.z-card--child-page .z-card__image img {
  object-fit: cover;
}

/* ---------- Standard non-catalog editorial pages ---------- */
.z-page-block--standard.z-page-hero {
  display: block;
  max-width: min(1040px, calc(100% - 32px));
  margin-top: 28px;
  margin-bottom: 38px;
  padding: clamp(28px, 4vw, 44px);
  border: 1px solid rgba(20, 74, 112, .12);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(246, 249, 251, .96)),
    radial-gradient(circle at 92% 0%, rgba(28, 106, 160, .11), transparent 34%);
}

.z-page-block--standard.z-page-hero .z-page-hero__copy {
  max-width: 880px;
}

.z-page-block--standard.z-page-hero h1 {
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.08;
}

.z-page-block--standard.z-page-hero p {
  max-width: 820px;
  font-size: var(--fs-18);
  line-height: 1.6;
}

.z-page-block--standard.z-page-hero .z-page-hero__media {
  display: none;
}

.z-page-block--standard.z-page-block--text {
  max-width: min(980px, calc(100% - 32px));
}

.z-page-block--standard.z-page-block--text > h2 {
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(20, 74, 112, .12);
  font-size: clamp(24px, 2.4vw, 32px);
}

.z-page-block--standard .z-editor {
  max-width: 920px;
  font-size: var(--fs-17);
  line-height: 1.76;
}

.z-page-block--standard .z-editor p {
  margin: 0 0 1.05em;
}

.z-page-block--standard .z-editor ul,
.z-page-block--standard .z-editor ol {
  margin-top: 1em;
  margin-bottom: 1.1em;
  padding-left: 1.35em;
}

.z-page-block--standard .z-editor li + li {
  margin-top: .45em;
}

.z-page-block--standard.z-page-block--child-page-cards .z-block__head,
.z-page-block--standard.z-page-block--article-cards .z-block__head,
.z-page-block--standard.z-page-block--material-cards .z-block__head,
.z-page-block--standard.z-page-block--documents .z-block__head,
.z-page-block--standard.z-page-block--gallery .z-block__head {
  grid-template-columns: minmax(0, .8fr) minmax(220px, .45fr);
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-color: rgba(20, 74, 112, .12);
}

.z-page-block--standard.z-page-block--child-page-cards .z-card-grid,
.z-page-block--standard.z-page-block--article-cards .z-card-grid,
.z-page-block--standard.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.z-page-block--standard .z-card--child-page,
.z-page-block--standard .z-card--article,
.z-page-block--standard .z-card--material,
.z-page-block--standard .z-card--news {
  min-height: 100%;
  border-color: rgba(20, 74, 112, .12);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: none;
}

.z-page-block--standard .z-card--child-page[href]:hover,
.z-page-block--standard .z-card--article[href]:hover,
.z-page-block--standard .z-card--material[href]:hover,
.z-page-block--standard .z-card--news[href]:hover {
  border-color: rgba(28, 106, 160, .28);
  box-shadow: 0 16px 34px rgba(14, 47, 75, .09);
}

.z-page-block--standard .z-card--child-page .z-card__image,
.z-page-block--standard .z-card--article .z-card__image,
.z-page-block--standard .z-card--material .z-card__image,
.z-page-block--standard .z-card--news .z-card__image {
  min-height: 138px;
  background: linear-gradient(135deg, rgba(20, 74, 112, .05), rgba(28, 106, 160, .08));
}

.z-page-block--standard .z-card--child-page .z-card__image--empty,
.z-page-block--standard .z-card--article .z-card__image--empty,
.z-page-block--standard .z-card--material .z-card__image--empty,
.z-page-block--standard .z-card--news .z-card__image--empty {
  display: none;
}

.z-page-block--standard .z-card--child-page .z-card__body,
.z-page-block--standard .z-card--article .z-card__body,
.z-page-block--standard .z-card--material .z-card__body,
.z-page-block--standard .z-card--news .z-card__body {
  min-height: 148px;
  padding: 18px;
}

.z-page-block--standard .z-card__body strong {
  font-size: var(--fs-18);
  line-height: 1.3;
}

.z-page-block--standard .z-card__body span {
  line-height: 1.52;
}

.z-page-block--standard .z-card__body em {
  margin-top: 4px;
}

.z-page-block--standard.z-page-block--gallery .z-gallery {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
}

.z-page-block--standard.z-page-block--gallery .z-gallery__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 210px;
  padding: 12px;
  border-color: rgba(20, 74, 112, .12);
  border-radius: var(--r-md);
  background: #fff;
}

.z-page-block--standard.z-page-block--gallery .z-gallery__item img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 340px;
  object-fit: contain;
  padding: 0;
}

.z-page-block--standard.z-block--gallery-single {
  max-width: min(920px, calc(100% - 32px));
  margin-top: 18px;
  margin-bottom: 28px;
}

.z-page-block--standard.z-block--gallery-single .z-gallery {
  display: block;
  text-align: center;
}

.z-page-block--standard.z-block--gallery-single .z-gallery__item {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: var(--r-md);
  background: transparent;
  box-shadow: none;
}

.z-page-block--standard.z-block--gallery-single .z-gallery__item img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: none;
  padding: 0;
  border-radius: var(--r-md);
  object-fit: contain;
}

.z-page-block--standard.z-page-block--documents .z-doc-list {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.z-page-block--standard.z-page-block--documents .z-doc {
  border-color: rgba(20, 74, 112, .12);
  border-radius: var(--r-md);
  box-shadow: none;
}

.z-page-block--standard.z-page-block--documents .z-doc:hover {
  border-color: rgba(28, 106, 160, .28);
}

.z-page-block--standard.z-page-block--cta {
  max-width: min(1040px, calc(100% - 32px));
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--standard.z-page-block--cta h2,
.z-page-block--standard.z-page-block--cta p {
  color: #fff;
}

.z-page-block--standard.z-page-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

.z-media-text {
  display: grid;
  grid-template-columns: minmax(280px, .42fr) minmax(0, 1fr);
  gap: clamp(22px, 4vw, 44px);
  align-items: start;
}

.z-media-text--reverse {
  grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr);
}

.z-media-text--reverse .z-media-text__media {
  order: 2;
}

.z-media-text--no-media {
  display: block;
  max-width: min(980px, calc(100% - 32px));
}

.z-media-text--no-media .z-media-text__body {
  max-width: 920px;
}

.z-media-text__media {
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #fff;
}

.z-media-text__media img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.z-media-text__body h2 {
  margin: 0 0 14px;
  color: var(--ink);
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1.16;
}

.z-video-frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #071421;
}

.z-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.z-schedule__list,
.z-vacancies__list {
  display: grid;
  gap: 14px;
}

.z-schedule__item,
.z-vacancy {
  display: grid;
  gap: 8px;
  padding: 18px 20px;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-schedule__item:hover {
  border-color: var(--brand-200);
  box-shadow: var(--shadow-sm);
}

.z-schedule__item time {
  color: var(--brand-700);
  font-size: var(--fs-13);
  font-weight: 800;
  text-transform: uppercase;
}

.z-schedule__item strong,
.z-vacancy h2 {
  margin: 0;
  color: var(--ink);
  font-size: var(--fs-20);
  line-height: 1.25;
}

.z-schedule__item span,
.z-vacancy p {
  margin: 0;
  color: var(--muted);
}

.z-faq__image {
  display: block;
  max-width: 520px;
  margin-top: 14px;
}

.z-faq__image img {
  width: 100%;
  max-height: 340px;
  object-fit: contain;
  padding: 10px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  background: #fff;
}

.z-faq__links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.z-faq__links a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 11px;
  border-radius: var(--r-sm);
  color: var(--brand-700);
  background: var(--brand-100);
  font-size: var(--fs-14);
  font-weight: 750;
  text-decoration: none;
}

.z-page-block--type-faq_page.z-page-hero {
  grid-template-columns: minmax(0, .78fr) minmax(320px, .55fr);
  padding-bottom: 26px;
}

.z-page-block--type-faq_page.z-page-hero .z-page-hero__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.z-page-block--type-faq_page.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.z-page-block--type-faq_page.z-block--faq .z-block__head {
  grid-template-columns: minmax(0, .7fr) minmax(260px, .45fr);
}

.z-page-block--type-faq_page .z-faq-list {
  display: grid;
  gap: 10px;
}

.z-page-block--type-faq_page .z-faq {
  overflow: hidden;
  padding: 0;
  border-radius: var(--r-md);
}

.z-page-block--type-faq_page .z-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}

.z-page-block--type-faq_page .z-faq summary::-webkit-details-marker {
  display: none;
}

.z-page-block--type-faq_page .z-faq summary::after {
  content: "";
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border-radius: var(--r-sm);
  background: var(--brand-100) center/14px no-repeat
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4f7a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  transition: transform var(--motion-fast);
}

.z-page-block--type-faq_page .z-faq[open] summary {
  border-bottom: 1px solid var(--hairline);
}

.z-page-block--type-faq_page .z-faq[open] summary::after {
  transform: rotate(180deg);
}

.z-page-block--type-faq_page .z-faq > p,
.z-page-block--type-faq_page .z-faq > .z-faq__answer,
.z-page-block--type-faq_page .z-faq > .z-faq__image,
.z-page-block--type-faq_page .z-faq > .z-faq__links {
  margin-right: 20px;
  margin-left: 20px;
}

.z-page-block--type-faq_page .z-faq > p {
  margin-top: 16px;
  margin-bottom: 18px;
  white-space: pre-line;
}

/* Ответ — форматируемый текст (абзацы, списки, ссылки), поэтому своя обёртка */
.z-faq__answer {
  margin: 6px 0 0;
  color: var(--muted);
}

.z-page-block--type-faq_page .z-faq > .z-faq__answer {
  margin-top: 16px;
  margin-bottom: 18px;
  color: var(--ink-2, var(--muted));
  line-height: 1.6;
}

.z-faq__answer > :first-child { margin-top: 0; }
.z-faq__answer > :last-child { margin-bottom: 0; }
.z-faq__answer p { margin: 0 0 .7em; }
.z-faq__answer ul,
.z-faq__answer ol { margin: 0 0 .7em; padding-left: 1.3em; }
.z-faq__answer a { color: var(--brand-600, #1d4f7a); text-decoration: underline; text-underline-offset: 2px; }

/* Плашка «Не нашли ответ?» на FAQ — тёмная, как в разделе поддержки: белая кнопка рассчитана на тёмный фон */
.z-page-block--type-faq_page.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-faq_page.z-block--cta h2,
.z-page-block--type-faq_page.z-block--cta p {
  color: #fff;
}

@media (min-width: 981px) {
  .z-block--cta > .button {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* Переключатели тем над списком вопросов */
.z-faq-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 14px;
}

.z-faq-filter__btn {
  padding: 6px 12px;
  border: 1px solid var(--hairline);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 14px;
  line-height: 1.3;
  cursor: pointer;
  transition: background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);
}

.z-faq-filter__btn:hover {
  border-color: var(--brand-600, #1d4f7a);
}

.z-faq-filter__btn.is-active {
  border-color: var(--brand-600, #1d4f7a);
  background: var(--brand-600, #1d4f7a);
  color: #fff;
}

.z-faq-filter__btn:focus-visible {
  outline: 2px solid var(--brand-600, #1d4f7a);
  outline-offset: 2px;
}

@media (max-width: 640px) {
  .z-faq-filter {
    flex-wrap: nowrap;
    overflow-x: auto;
    margin-right: -16px;
    padding-right: 16px;
    scrollbar-width: none;
  }
  .z-faq-filter__btn { flex: 0 0 auto; }
}

@media (max-width: 980px) {
  .z-page-block--type-faq_page.z-page-hero,
  .z-page-block--type-faq_page.z-page-block--material-cards .z-card-grid,
  .z-page-block--type-faq_page.z-block--faq .z-block__head {
    grid-template-columns: 1fr;
  }
}

.z-page-block--type-video_detail {
  max-width: var(--container);
}

.z-page-block--type-video_detail.z-media-text {
  grid-template-columns: minmax(360px, .58fr) minmax(0, .42fr);
}

@media (max-width: 900px) {
  .product-hero,
  .z-block__head {
    grid-template-columns: 1fr;
  }

  .product-hero__main-image {
    min-height: 280px;
  }

  .z-block--cta {
    align-items: flex-start;
    flex-direction: column;
  }

  .z-page-hero,
  .z-media-text,
  .z-media-text--reverse,
  .z-page-block--type-video_detail.z-media-text {
    grid-template-columns: 1fr;
  }

  .z-media-text--reverse .z-media-text__media {
    order: 0;
  }

  .z-page-block--standard.z-page-block--child-page-cards .z-block__head,
  .z-page-block--standard.z-page-block--article-cards .z-block__head,
  .z-page-block--standard.z-page-block--material-cards .z-block__head,
  .z-page-block--standard.z-page-block--documents .z-block__head,
  .z-page-block--standard.z-page-block--gallery .z-block__head {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .catalog-hero,
  .product-hero,
  .z-block,
  .z-page-hero,
  .z-page-block {
    width: min(var(--container), calc(100% - 24px));
  }

  .z-card-grid {
    grid-template-columns: 1fr;
  }

  .z-page-block--standard.z-page-hero {
    padding: 24px;
  }

  .z-page-block--standard .z-card--child-page .z-card__body,
  .z-page-block--standard .z-card--article .z-card__body,
  .z-page-block--standard .z-card--material .z-card__body,
  .z-page-block--standard .z-card--news .z-card__body {
    min-height: 0;
  }
}

/* ---------- 25a. Custom company root page (/about/) ---------- */
.z-page-block--type-company_root.z-page-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(360px, 46vw, 520px);
  grid-template-columns: minmax(0, .62fr) minmax(320px, .38fr);
  padding: clamp(34px, 6vw, 72px);
  border: 1px solid rgba(29, 79, 122, .14);
  border-radius: var(--r-xl);
  background:
    linear-gradient(120deg, rgba(9, 31, 52, .93), rgba(14, 47, 75, .78) 52%, rgba(14, 47, 75, .24)),
    var(--surface);
  box-shadow: var(--shadow-lg);
}

.z-page-block--type-company_root.z-page-hero::before {
  content: "с 1992 года";
  position: absolute;
  right: clamp(24px, 5vw, 64px);
  bottom: clamp(20px, 4vw, 44px);
  color: rgba(255, 255, 255, .18);
  font-size: clamp(54px, 10vw, 126px);
  font-weight: 800;
  line-height: .8;
  pointer-events: none;
}

.z-page-block--type-company_root.z-page-hero .z-page-hero__copy {
  position: relative;
  z-index: 1;
}

.z-page-block--type-company_root.z-page-hero .z-page-hero__copy::before {
  content: "О компании";
  display: inline-flex;
  width: max-content;
  margin-bottom: 14px;
  padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: var(--fs-12);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.z-page-block--type-company_root.z-page-hero h1,
.z-page-block--type-company_root.z-page-hero p {
  color: #fff;
}

.z-page-block--type-company_root.z-page-hero h1 {
  max-width: 720px;
  font-size: clamp(42px, 6vw, 72px);
}

.z-page-block--type-company_root.z-page-hero p {
  max-width: 640px;
  color: rgba(255, 255, 255, .86);
}

.z-page-block--type-company_root.z-page-hero .z-page-hero__media {
  position: relative;
  z-index: 1;
  align-self: stretch;
  border-color: rgba(255, 255, 255, .22);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .1);
  box-shadow: none;
}

.z-page-block--type-company_root.z-page-hero .z-page-hero__media img {
  height: 100%;
  min-height: 300px;
  aspect-ratio: auto;
  object-fit: cover;
}

.z-page-block--type-company_root.z-block--text .z-editor {
  max-width: 980px;
  font-size: var(--fs-18);
}

.z-page-block--type-company_root.z-video-block {
  display: grid;
  grid-template-columns: minmax(280px, .36fr) minmax(0, .64fr);
  gap: clamp(24px, 4vw, 48px);
  align-items: center;
  padding: clamp(22px, 4vw, 36px);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.z-page-block--type-company_root.z-video-block .z-block__head {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
}

.z-page-block--type-company_root.z-video-block .z-block__head p {
  margin-top: 12px;
}

.z-page-block--type-company_root.z-video-block .z-video-frame {
  min-width: 0;
}

.z-page-block--type-company_root.z-block--material-cards .z-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.z-page-block--type-company_root.z-block--material-cards .z-card {
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, #fff, var(--surface-2));
}

.z-page-block--type-company_root.z-block--material-cards .z-card__image {
  aspect-ratio: 16 / 10;
}

.z-page-block--type-company_root.z-block--material-cards .z-card__body {
  min-height: 150px;
  padding: 18px;
}

.z-page-block--type-company_root.z-block--material-cards .z-card__body strong {
  font-size: var(--fs-20);
}

.z-page-block--type-company_root.z-media-text {
  align-items: center;
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-company_root.z-media-text .z-media-text__media {
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}

.z-page-block--type-company_root.z-media-text .z-media-text__media img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

.z-page-block--type-company_root.z-block--cta {
  border-color: rgba(15, 181, 177, .18);
  background:
    radial-gradient(420px 180px at 85% 0%, rgba(15, 181, 177, .12), transparent 70%),
    linear-gradient(180deg, #fff, var(--brand-50));
}

/* ---------- Discounts page ---------- */
.z-page-block--type-discounts_root.z-page-hero {
  position: relative;
  overflow: hidden;
  grid-template-columns: minmax(0, 1fr);
  padding: clamp(34px, 5vw, 58px);
  border: 1px solid rgba(15, 181, 177, .2);
  border-radius: var(--r-lg);
  background:
    linear-gradient(135deg, rgba(15, 181, 177, .12), transparent 34%),
    linear-gradient(180deg, #fff, var(--brand-50));
}

.z-page-block--type-discounts_root.z-page-hero::after {
  content: "25-40%";
  position: absolute;
  right: clamp(18px, 5vw, 56px);
  bottom: clamp(14px, 4vw, 36px);
  color: rgba(14, 47, 75, .08);
  font-size: clamp(54px, 13vw, 150px);
  font-weight: 800;
  line-height: .8;
  pointer-events: none;
}

.z-page-block--type-discounts_root.z-page-hero .z-page-hero__copy {
  max-width: 760px;
}

.z-page-block--type-discounts_root.z-page-hero h1 {
  max-width: 680px;
}

.z-page-block--type-discounts_root.z-media-text {
  align-items: center;
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-discounts_root.z-media-text .z-media-text__media {
  border-radius: var(--r-md);
  box-shadow: var(--shadow-sm);
}

.z-page-block--type-discounts_root.z-media-text .z-media-text__media img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

.z-page-block--type-discounts_root.z-page-block--text {
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid rgba(14, 47, 75, .1);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, #fff, #f8fbfc);
}

.z-page-block--type-discounts_root.z-page-block--text .z-editor ul {
  display: grid;
  gap: 10px;
  padding-left: 0;
  list-style: none;
}

.z-page-block--type-discounts_root.z-page-block--text .z-editor li {
  position: relative;
  padding-left: 28px;
}

.z-page-block--type-discounts_root.z-page-block--text .z-editor li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .58em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--brand-500);
  box-shadow: 0 0 0 5px rgba(15, 181, 177, .12);
}

.z-page-block--type-discounts_root.z-block--cta {
  border-color: rgba(15, 181, 177, .22);
  background:
    radial-gradient(360px 180px at 90% 0%, rgba(15, 181, 177, .16), transparent 72%),
    linear-gradient(180deg, #fff, var(--brand-50));
}

@media (max-width: 900px) {
  .z-page-block--type-discounts_root.z-media-text,
  .z-page-block--type-discounts_root.z-media-text--reverse {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-discounts_root.z-media-text--reverse .z-media-text__media {
    order: 0;
  }
}

@media (max-width: 900px) {
  .z-page-block--type-company_root.z-page-hero,
  .z-page-block--type-company_root.z-video-block,
  .z-page-block--type-company_root.z-block--material-cards .z-card-grid {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-company_root.z-page-hero {
    padding: 28px;
  }

  .z-page-block--type-company_root.z-page-hero::before {
    font-size: 58px;
  }
}

/* ---------- 25b. Custom metrology page ---------- */
.z-page-block--type-metrology.z-page-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(360px, 44vw, 520px);
  grid-template-columns: minmax(0, .58fr) minmax(320px, .42fr);
  padding: clamp(30px, 5vw, 64px);
  border: 1px solid rgba(29, 79, 122, .16);
  border-radius: var(--r-xl);
  background:
    linear-gradient(120deg, rgba(8, 30, 51, .94), rgba(20, 60, 94, .76) 54%, rgba(20, 60, 94, .2)),
    var(--surface);
  box-shadow: var(--shadow-lg);
}

.z-page-block--type-metrology.z-page-hero::before {
  content: "ФГИС АРШИН";
  position: absolute;
  right: clamp(20px, 5vw, 60px);
  bottom: clamp(18px, 4vw, 42px);
  color: rgba(255, 255, 255, .14);
  font-size: clamp(38px, 7vw, 92px);
  font-weight: 800;
  line-height: .9;
  pointer-events: none;
}

.z-page-block--type-metrology.z-page-hero .z-page-hero__copy {
  position: relative;
  z-index: 1;
}

.z-page-block--type-metrology.z-page-hero .z-page-hero__copy::before {
  content: "Метрология";
  display: inline-flex;
  width: max-content;
  margin-bottom: 14px;
  padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: var(--fs-12);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.z-page-block--type-metrology.z-page-hero h1,
.z-page-block--type-metrology.z-page-hero p {
  color: #fff;
}

.z-page-block--type-metrology.z-page-hero h1 {
  max-width: 760px;
  font-size: clamp(38px, 5.4vw, 66px);
}

.z-page-block--type-metrology.z-page-hero p {
  max-width: 660px;
  color: rgba(255, 255, 255, .88);
}

.z-page-block--type-metrology.z-page-hero .z-page-hero__media {
  position: relative;
  z-index: 1;
  align-self: stretch;
  border-color: rgba(255, 255, 255, .22);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .1);
  box-shadow: none;
}

.z-page-block--type-metrology.z-page-hero .z-page-hero__media img {
  height: 100%;
  min-height: 300px;
  aspect-ratio: auto;
  object-fit: cover;
}

.z-page-block--type-metrology.z-block--text .z-editor {
  max-width: 980px;
  font-size: var(--fs-18);
}

.z-page-block--type-metrology.z-block--material-cards .z-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.z-page-block--type-metrology.z-block--material-cards .z-card {
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, #fff, var(--surface-2));
}

.z-page-block--type-metrology.z-block--material-cards .z-card__image {
  aspect-ratio: 16 / 10;
}

.z-page-block--type-metrology.z-block--material-cards .z-card__body {
  min-height: 158px;
  padding: 18px;
}

.z-page-block--type-metrology.z-block--material-cards .z-card__body strong {
  font-size: var(--fs-20);
}

.z-page-block--type-metrology.z-media-text {
  align-items: center;
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-metrology.z-media-text .z-media-text__media {
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}

.z-page-block--type-metrology.z-media-text .z-media-text__media img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

.z-page-block--type-metrology.z-block--gallery .z-gallery {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.z-page-block--type-metrology.z-block--gallery .z-gallery__item {
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-metrology.z-block--gallery .z-gallery__item img {
  aspect-ratio: 16 / 10;
  max-height: none;
  object-fit: cover;
  padding: 0;
}

.z-page-block--type-metrology.z-block--gallery-certificates .z-gallery__item {
  background: #fff;
}

.z-page-block--type-metrology.z-block--gallery-certificates .z-gallery__item img {
  aspect-ratio: 3 / 4;
  min-height: 260px;
  object-fit: contain;
  padding: 14px;
}

.z-page-block--type-metrology.z-block--cta {
  border-color: rgba(15, 181, 177, .18);
  background:
    radial-gradient(420px 180px at 85% 0%, rgba(15, 181, 177, .12), transparent 70%),
    linear-gradient(180deg, #fff, var(--brand-50));
}

@media (max-width: 900px) {
  .z-page-block--type-metrology.z-page-hero,
  .z-page-block--type-metrology.z-block--material-cards .z-card-grid {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-metrology.z-page-hero {
    padding: 28px;
  }

  .z-page-block--type-metrology.z-page-hero::before {
    font-size: 48px;
  }
}

/* ---------- 25c. Custom testimonials page ---------- */
.z-page-block--type-testimonials.z-page-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(340px, 42vw, 500px);
  grid-template-columns: minmax(0, .6fr) minmax(280px, .4fr);
  padding: clamp(30px, 5vw, 64px);
  border: 1px solid rgba(29, 79, 122, .16);
  border-radius: var(--r-xl);
  background:
    linear-gradient(120deg, rgba(8, 30, 51, .94), rgba(20, 60, 94, .74) 56%, rgba(20, 60, 94, .18)),
    var(--surface);
  box-shadow: var(--shadow-lg);
}

.z-page-block--type-testimonials.z-page-hero::before {
  content: "отзывы";
  position: absolute;
  right: clamp(22px, 5vw, 70px);
  bottom: clamp(16px, 4vw, 42px);
  color: rgba(255, 255, 255, .14);
  font-size: clamp(62px, 11vw, 132px);
  font-weight: 800;
  line-height: .8;
  pointer-events: none;
}

.z-page-block--type-testimonials.z-page-hero .z-page-hero__copy {
  position: relative;
  z-index: 1;
}

.z-page-block--type-testimonials.z-page-hero .z-page-hero__copy::before {
  content: "Клиенты ZETLAB";
  display: inline-flex;
  width: max-content;
  margin-bottom: 14px;
  padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: var(--fs-12);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.z-page-block--type-testimonials.z-page-hero h1,
.z-page-block--type-testimonials.z-page-hero p {
  color: #fff;
}

.z-page-block--type-testimonials.z-page-hero h1 {
  max-width: 720px;
  font-size: clamp(40px, 5.5vw, 68px);
}

.z-page-block--type-testimonials.z-page-hero p {
  color: rgba(255, 255, 255, .88);
}

.z-page-block--type-testimonials.z-page-hero .z-page-hero__media {
  position: relative;
  z-index: 1;
  align-self: stretch;
  border-color: rgba(255, 255, 255, .22);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .1);
  box-shadow: none;
}

.z-page-block--type-testimonials.z-page-hero .z-page-hero__media img {
  height: 100%;
  min-height: 280px;
  aspect-ratio: auto;
  object-fit: contain;
  padding: 18px;
  background: rgba(255,255,255,.92);
}

.z-page-block--type-testimonials.z-block--text .z-editor {
  max-width: 980px;
  font-size: var(--fs-18);
}

.z-page-block--type-testimonials.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.z-page-block--type-testimonials.z-page-block--material-cards .z-card {
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, #fff, var(--surface-2));
}

.z-page-block--type-testimonials.z-page-block--material-cards .z-card__image {
  display: none;
}

.z-page-block--type-testimonials.z-page-block--material-cards .z-card__body {
  min-height: 170px;
  padding: 20px;
}

.z-testimonials__grid {
  columns: 3 300px;
  column-gap: 18px;
}

.z-testimonial {
  display: inline-block;
  width: 100%;
  margin: 0 0 18px;
  padding: 20px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
  break-inside: avoid;
}

.z-testimonial--featured {
  border-color: rgba(15, 181, 177, .24);
  background:
    radial-gradient(260px 160px at 100% 0%, rgba(15, 181, 177, .12), transparent 70%),
    #fff;
  box-shadow: var(--shadow-sm);
}

.z-testimonial__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 14px;
}

.z-testimonial__meta time,
.z-testimonial__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: var(--r-pill);
  font-size: var(--fs-12);
  font-weight: 800;
}

.z-testimonial__meta time {
  background: var(--brand-100);
  color: var(--brand-800);
}

.z-testimonial__meta span {
  background: var(--surface-3);
  color: var(--muted);
}

.z-testimonial__text {
  color: var(--text);
  font-size: var(--fs-15);
  line-height: 1.65;
}

.z-testimonial__text p {
  margin: 0 0 10px;
}

.z-testimonial__text p:last-child {
  margin-bottom: 0;
}

.z-testimonial footer {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--hairline);
  color: var(--brand-800);
  font-size: var(--fs-14);
  font-weight: 800;
  line-height: 1.45;
}

.z-page-block--type-testimonials.z-media-text {
  align-items: center;
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-testimonials.z-media-text .z-media-text__media {
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}

.z-page-block--type-testimonials.z-media-text .z-media-text__media img {
  width: 100%;
  max-height: 560px;
  object-fit: contain;
  padding: 12px;
}

.z-page-block--type-testimonials.z-block--cta {
  border-color: rgba(15, 181, 177, .18);
  background:
    radial-gradient(420px 180px at 85% 0%, rgba(15, 181, 177, .12), transparent 70%),
    linear-gradient(180deg, #fff, var(--brand-50));
}

@media (max-width: 900px) {
  .z-page-block--type-testimonials.z-page-hero,
  .z-page-block--type-testimonials.z-page-block--material-cards .z-card-grid {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-testimonials.z-page-hero {
    padding: 28px;
  }

  .z-page-block--type-testimonials.z-page-hero::before {
    font-size: 58px;
  }

  .z-testimonials__grid {
    columns: 1;
  }
}

/* ---------- 2. Base typography ---------- */
body {
  min-height: 100vh;
  color: var(--text);
  background: var(--bg);
  font-family: var(--font-sans);
  font-size: var(--fs-16);
  line-height: 1.62;
  letter-spacing: -0.005em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "ss01", "cv11", "cv02";
  font-variant-numeric: tabular-nums;
}

h1, h2, h3, h4, h5 {
  margin: 0;
  color: var(--ink);
  font-weight: 700;
  letter-spacing: -0.018em;
  line-height: 1.15;
}
h1 { font-size: var(--fs-48); font-weight: 800; letter-spacing: -0.025em; }
h2 { font-size: var(--fs-32); }
h3 { font-size: var(--fs-20); letter-spacing: -0.012em; }
h4 { font-size: var(--fs-18); }

p { margin: 0; }
small { font-size: var(--fs-13); color: var(--muted); }
strong, b { font-weight: 700; color: var(--ink); }

a {
  color: var(--brand-600);
  transition: color var(--motion-fast), background-color var(--motion-fast),
              border-color var(--motion-fast), box-shadow var(--motion-fast),
              transform var(--motion-fast);
  text-underline-offset: 3px;
}
a:hover { color: var(--brand-800); }

::selection { background: rgba(15, 181, 177, .22); color: var(--ink); }
:focus-visible { outline: 3px solid rgba(29, 79, 122, .35); outline-offset: 2px; border-radius: 4px; }

/* ---------- 3. Layout primitives ---------- */
.container { width: min(var(--container), calc(100% - 40px)); margin: 0 auto; }
.site-shell { min-height: 100vh; display: flex; flex-direction: column; }
.site-main { flex: 1; padding: 32px 0 88px; }

.stack > * + * { margin-top: var(--s-4); }
.cluster { display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: center; }

/* ---------- 4. Topbar ---------- */
.topbar {
  background: linear-gradient(180deg, var(--brand-800), var(--brand-700));
  color: rgba(255, 255, 255, .9);
  font-size: var(--fs-13);
}
.topbar a { color: rgba(255, 255, 255, .92); }
.topbar a:hover { color: #fff; }
.topbar__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s-5); min-height: 42px;
}
.topbar__social, .topbar__contacts, .topbar__account {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3);
}
.topbar__contacts { gap: var(--s-4); }
.topbar__contacts a, .topbar__account a, .topbar__social a {
  display: inline-flex; align-items: center; gap: 6px;
  opacity: .92; transition: opacity var(--motion-fast);
}
.topbar__contacts a:hover, .topbar__account a:hover, .topbar__social a:hover {
  opacity: 1; text-decoration: none;
}
.topbar__contacts a .icon, .topbar__account a .icon, .topbar__social a .icon {
  width: 14px; height: 14px; flex: 0 0 14px; opacity: .8;
}
.topbar__account { color: rgba(255,255,255,.65); }
.topbar__account .sep { opacity: .45; }
.topbar__badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 10px; border-radius: var(--r-pill);
  background: rgba(15, 181, 177, .16); color: var(--accent-100);
  font-size: var(--fs-12); font-weight: 600; letter-spacing: 0;
}
.topbar__badge::before {
  content: ""; width: 7px; height: 7px; border-radius: var(--r-pill);
  background: var(--accent-500);
  box-shadow: 0 0 0 3px rgba(15, 181, 177, .25);
}

/* ---------- 5. Main nav + mega menu ---------- */
.site-header.is-nav-fixed {
  padding-bottom: var(--mainnav-height, 76px);
}
.mainnav {
  position: sticky; top: 0; z-index: 120;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: saturate(150%) blur(10px);
  -webkit-backdrop-filter: saturate(150%) blur(10px);
  border-bottom: 1px solid var(--hairline);
  transition: box-shadow 320ms var(--ease), background 320ms var(--ease), border-color 320ms var(--ease);
}
.mainnav.is-condensed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  box-shadow: 0 14px 32px rgba(15, 48, 80, .10);
  background: rgba(255, 255, 255, .96);
}
.mainnav__inner {
  position: relative;
  min-height: 76px;
  display: flex; align-items: center; gap: var(--s-5);
  padding: 12px 0;
  transition: min-height 320ms var(--ease), padding 320ms var(--ease), gap 320ms var(--ease);
}
.mainnav.is-condensed .mainnav__inner {
  min-height: 56px;
  padding-block: 8px;
}
.mainnav.is-condensed .brand img { width: 148px; max-height: 42px; }
.mainnav.is-condensed .nav__item > a { padding-block: 8px; }
.mainnav.is-condensed .header-cta,
.mainnav.is-condensed .search-mini__toggle {
  min-height: 38px;
  height: 38px;
}

.brand {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 4px;
  isolation: isolate;
}
.brand img {
  width: 178px;
  max-height: 56px;
  object-fit: contain;
  transition: width 320ms var(--ease), max-height 320ms var(--ease);
}
.brand::after {
  content: "";
  position: absolute;
  inset: -10px -34px;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 30%,
    rgba(255, 255, 255, 0) 42%,
    rgba(255, 255, 255, .26) 47%,
    rgba(255, 255, 255, .82) 50%,
    rgba(255, 255, 255, .24) 53%,
    rgba(255, 255, 255, 0) 60%,
    transparent 72%
  );
  transform: translateX(-125%);
  opacity: 0;
}
.brand:hover::after,
.brand:focus-visible::after {
  animation: brand-scan 1280ms cubic-bezier(.18, .72, .18, 1) 1;
}

@keyframes brand-scan {
  0% { opacity: 0; transform: translateX(-125%); }
  18% { opacity: .72; }
  72% { opacity: .62; }
  100% { opacity: 0; transform: translateX(125%); }
}

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

.nav { display: flex; align-items: center; gap: 2px; flex: 1; min-width: 0; }
.nav__item { position: relative; }
.nav__item > a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 12px; border-radius: var(--r-sm);
  color: var(--ink); font-weight: 600; font-size: var(--fs-15);
  line-height: 1.2; white-space: nowrap;
  transition: color var(--motion-fast), background-color var(--motion-fast), padding 320ms var(--ease);
}
.nav__item > a::after {
  content: ""; display: inline-block; width: 6px; height: 6px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  opacity: 0; transition: opacity var(--motion-fast), transform var(--motion-fast);
}
.nav__item--mega > a::after,
.nav__item--dropdown > a::after { opacity: .55; }
.nav__item:not(.nav__item--has-submenu) > a::after {
  display: none;
  content: none;
}
.nav__item:not(.nav__item--has-submenu) > a {
  gap: 0;
}
.nav__item:hover > a {
  background: var(--brand-100); color: var(--brand-800);
}
.nav__item--has-submenu:hover > a::after { transform: translateY(0) rotate(45deg); opacity: .85; }
.nav__submenu-toggle { display: none; }

/* Search */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}
.search-mini {
  position: relative;
  flex: 0 0 auto;
}
.search-mini__toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface-2);
  color: var(--brand-800);
  transition: background var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast);
}
.search-mini__toggle:hover,
.search-mini.is-open .search-mini__toggle {
  background: var(--brand-100);
  border-color: rgba(29, 79, 122, .28);
}
.search-mini__toggle:focus-visible { box-shadow: var(--ring); outline: none; }
.search-mini__toggle .icon { width: 18px; height: 18px; }
.search-mini__panel {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  z-index: 150;
  width: min(420px, calc(100vw - 32px));
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .98);
  box-shadow: var(--shadow-lg);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--motion-fast), transform var(--motion-fast);
}
.search-mini.is-open .search-mini__panel {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.search-mini__field {
  display: flex; align-items: center; gap: 10px;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface-2);
}
.search-mini__field .icon {
  width: 18px; height: 18px;
  color: var(--muted);
  flex: 0 0 18px;
}
.search-mini__field input {
  width: 100%;
  min-width: 0;
  height: 42px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
}
.search-mini__field input::placeholder { color: var(--soft); }
.search-mini__field:focus-within {
  border-color: var(--brand-600);
  background: #fff;
  box-shadow: var(--ring);
}
.search-mini__suggestions {
  display: grid;
  gap: 4px;
  max-height: 320px;
  margin-top: 10px;
  overflow: auto;
}
.search-suggestion {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  color: var(--text);
  line-height: 1.25;
}
.search-suggestion:hover,
.search-suggestion:focus-visible {
  background: var(--brand-100);
  color: var(--brand-800);
  outline: none;
}
.search-suggestion strong {
  font-size: var(--fs-14);
}
.search-suggestion span {
  color: var(--muted);
  font-size: var(--fs-12);
}

.search-page {
  display: grid;
  gap: 18px;
}
.search-page__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.search-page__form input {
  width: 100%;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface-2);
  outline: none;
}
.search-page__form input:focus {
  border-color: var(--brand-600);
  background: #fff;
  box-shadow: var(--ring);
}
.search-page__summary {
  margin: 0;
  color: var(--muted);
}

.header-cta {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 42px; padding: 0 18px;
  border-radius: var(--r-md);
  background: linear-gradient(180deg, var(--brand-600), var(--brand-700));
  color: #fff !important; font-weight: 700; letter-spacing: -0.005em;
  box-shadow: 0 8px 20px rgba(15, 48, 80, .22), inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform var(--motion-fast), box-shadow var(--motion-fast), background var(--motion-fast);
}
.header-cta:hover {
  background: linear-gradient(180deg, var(--brand-700), var(--brand-800));
  box-shadow: 0 12px 24px rgba(15, 48, 80, .28), inset 0 1px 0 rgba(255,255,255,.2);
}

.nav-toggle {
  display: none; width: 44px; height: 44px;
  border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff;
}
.nav-toggle span { display: block; width: 20px; height: 2px; margin: 5px auto; background: var(--ink); border-radius: 2px; transition: transform var(--motion-fast), opacity var(--motion-fast); }

/* Header dropdowns */
.mega,
.dropdown {
  position: absolute;
  top: 100%;
  left: var(--submenu-left, 0);
  display: none;
  background: rgba(255, 255, 255, .99);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: 0 22px 48px rgba(15, 48, 80, .16);
  overflow: hidden;
  animation: nav-pop 160ms var(--ease);
}
@keyframes nav-pop {
  from { opacity: 0; }
  to   { opacity: 1; transform: translateY(0); }
}
.nav__item--mega { position: relative; }
.nav__item--mega.is-submenu-open .mega { display: block; }
.nav__item--dropdown.is-submenu-open .dropdown { display: block; }

.mega {
  width: min(1240px, calc(100vw - 20px));
  max-height: calc(100vh - 76px);
}
.mega__overview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  background: linear-gradient(180deg, var(--surface-2), #fff);
  border-bottom: 1px solid var(--hairline);
}
.mega__overview > div { display: grid; gap: 4px; }
.mega__overview strong {
  color: var(--ink);
  font-size: var(--fs-15);
  font-weight: 800;
  letter-spacing: -0.012em;
}
.mega__overview span {
  color: var(--muted);
  font-size: var(--fs-12);
  line-height: 1.35;
}
.mega__overview a,
.dropdown__head a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  background: #fff;
  color: var(--brand-800);
  font-weight: 750;
  font-size: var(--fs-14);
  white-space: nowrap;
}
.mega__overview a:hover,
.dropdown__head a:hover {
  border-color: rgba(29, 79, 122, .32);
  background: var(--brand-100);
}

.mega__catalog {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  padding: 8px;
  max-height: calc(100vh - 124px);
  overflow: auto;
  scrollbar-width: thin;
}
.mega-card {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 8px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: linear-gradient(180deg, #fff, var(--surface-2));
}
.mega-card__title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px;
  color: var(--brand-800);
  font-size: var(--fs-14);
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: -0.012em;
}
.mega-card__title::after {
  content: "→";
  flex: 0 0 auto;
  color: var(--accent-700);
  font-size: var(--fs-16);
  transform: translateY(1px);
  transition: transform var(--motion-fast);
}
.mega-card__title:hover { color: var(--brand-700); }
.mega-card__title:hover::after { transform: translate(3px, 1px); }
.mega-card__links {
  display: grid;
  gap: 1px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.mega-card__links a,
.dropdown a {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 25px;
  padding: 3px 5px;
  border-radius: 7px;
  color: var(--text);
  font-size: var(--fs-13);
  font-weight: 550;
  line-height: 1.25;
}
.mega-card__links a::before,
.dropdown a::before {
  content: "";
  width: 4px;
  height: 4px;
  flex: 0 0 4px;
  border-radius: var(--r-pill);
  background: var(--line-strong);
  transition: background var(--motion-fast), transform var(--motion-fast);
}
.mega-card__links a:hover,
.dropdown a:hover {
  background: #fff;
  color: var(--brand-800);
  box-shadow: inset 0 0 0 1px var(--hairline);
}
.mega-card__links a:hover::before,
.dropdown a:hover::before {
  background: var(--accent-500);
  transform: scale(1.35);
}
.mega-card__empty {
  margin: 0;
  color: var(--muted);
  font-size: var(--fs-13);
}

@media (min-width: 1280px) and (min-height: 760px) {
  .mega__catalog {
    overflow: visible;
  }
}

@media (min-width: 1440px) {
  .mega {
    width: min(1360px, calc(100vw - 32px));
  }
  .mega__catalog {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

.dropdown {
  min-width: 390px;
  max-width: min(460px, calc(100vw - 32px));
  padding: 10px;
}
.dropdown__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 8px 12px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--hairline);
}
.dropdown__head strong {
  color: var(--ink);
  font-size: var(--fs-17);
  font-weight: 800;
  letter-spacing: -0.012em;
}
.dropdown ul {
  list-style: none;
  display: grid;
  gap: 2px;
  max-height: min(520px, calc(100vh - 150px));
  overflow: auto;
}

/* ---------- 6. Breadcrumbs ---------- */
.breadcrumbs {
  display: inline-flex; flex-wrap: wrap; gap: 8px;
  margin-bottom: 22px;
  padding: 6px 12px;
  border: 1px solid var(--hairline); border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--muted); font-size: var(--fs-13);
  box-shadow: var(--shadow-xs);
}
.breadcrumbs a { color: var(--muted); font-weight: 500; }
.breadcrumbs a:hover { color: var(--brand-700); }
.breadcrumbs > * + *::before { content: "/"; margin-right: 8px; color: var(--soft); }

/* ---------- 7. Heroes ---------- */
.page-hero,
.product-detail-head {
  position: relative;
  margin: 0 0 36px;
  padding: 28px 0 36px;
  border-bottom: 1px solid var(--hairline);
  color: var(--text);
}
.page-hero {
  display: grid;
  gap: var(--s-3);
}
.page-hero > * { max-width: 920px; }
.page-hero__eyebrow,
.kicker {
  display: inline-flex; align-items: center; gap: 8px;
  width: max-content;
  padding: 6px 12px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--brand-700);
  font-size: var(--fs-12);
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  box-shadow: var(--shadow-xs);
}
.page-hero__eyebrow::before,
.kicker::before {
  content: ""; width: 7px; height: 7px; border-radius: var(--r-pill);
  background: var(--accent-500);
  box-shadow: 0 0 0 3px rgba(15, 181, 177, .22);
}
.page-hero h1,
.product-detail-head h1 {
  font-size: clamp(34px, 4.6vw, 50px);
  letter-spacing: -0.028em;
  color: var(--ink);
}
.page-hero p,
.product-detail-head p {
  max-width: 780px;
  margin: 4px 0 0;
  color: var(--text-soft);
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.55;
}
.page-hero__meta {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 10px;
}

/* Product detail hero */
.product-detail-head {
  display: grid;
  grid-template-columns: minmax(360px, 48%) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 52px);
  align-items: start;
}
.product-detail-head__content {
  display: grid;
  gap: 14px;
  align-self: start;
  min-width: 0;
}
.product-detail-head__media {
  display: grid;
  gap: 12px;
  align-self: start;
  width: 100%;
  max-width: 100%;
}
.product-detail-head__image {
  position: relative;
  display: grid; place-items: center;
  min-height: clamp(360px, 44vw, 560px);
  aspect-ratio: 1 / 1;
  width: 100%;
  justify-self: start;
  padding: 24px;
  border: 1px solid var(--hairline); border-radius: var(--r-lg);
  background:
    radial-gradient(420px 220px at 50% 0%, rgba(15, 181, 177, .14), transparent 70%),
    linear-gradient(180deg, #fff, var(--surface-2));
  box-shadow: var(--shadow-sm);
}
.product-detail-head__image::before {
  content: ""; position: absolute; inset: 12px;
  border: 1px dashed rgba(29, 79, 122, .1);
  border-radius: var(--r-md); pointer-events: none;
}
.product-detail-head__image-link {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}
.product-detail-head__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.product-main-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.68);
  border-radius: var(--r-pill);
  background: rgba(14, 47, 75, .62);
  color: #fff;
  font-size: 30px;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 2;
  opacity: 0;
  transition: opacity .18s ease;
}
.product-main-nav--prev { left: 12px; }
.product-main-nav--next { right: 12px; }
.product-detail-head__image:hover .product-main-nav,
.product-detail-head__image:focus-visible .product-main-nav { opacity: 1; }
.product-zoom-badge {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--r-pill);
  border: 1px solid rgba(255,255,255,.8);
  background: rgba(14, 47, 75, .78);
  box-shadow: var(--shadow-sm);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .2s ease, transform .2s ease;
}
.product-zoom-badge::before {
  content: "";
  width: 18px;
  height: 18px;
  background: center/18px no-repeat
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>");
}
.product-detail-head__image:hover .product-zoom-badge,
.product-detail-head__image:focus-visible .product-zoom-badge {
  opacity: 1;
  transform: translateY(0);
}

.product-media-strip {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
}
.product-media-strip::-webkit-scrollbar { display: none; }
.product-media-strip-wrap {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 30px;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border-radius: var(--r-md);
  border: 1px solid var(--hairline);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.product-media-nav {
  width: 30px;
  height: 30px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-pill);
  background: #fff;
  color: var(--brand-700);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);
}
.product-media-nav:hover {
  border-color: rgba(29, 79, 122, .32);
  background: var(--brand-100);
  color: var(--brand-800);
}
.product-media-nav:disabled {
  opacity: .35;
  cursor: default;
}
.product-media-thumb {
  cursor: pointer;
  display: block;
  flex: 0 0 74px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: rgba(255,255,255,.86);
  box-shadow: var(--shadow-xs);
  padding: 0;
  opacity: .58;
  transform: scale(.96);
  transition: opacity .16s ease, transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.product-media-thumb.is-active {
  border-color: var(--brand-600);
  box-shadow: 0 0 0 2px rgba(16, 76, 125, .16);
  opacity: 1;
  transform: scale(1);
}
.product-media-thumb:hover {
  opacity: .95;
  
}
.product-media-strip img {
  width: 100%;
  height: 100%;
  padding: 6px;
  object-fit: contain;
}

.product-trust-list {
  display: flex; flex-wrap: wrap; gap: 6px;
  list-style: none;
}
.product-trust-list li {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  border: 1px solid var(--hairline); border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--text); font-size: var(--fs-13); font-weight: 600;
  box-shadow: var(--shadow-xs);
}
.product-trust-list li::before {
  content: ""; width: 14px; height: 14px;
  background: center/14px no-repeat
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230fb5b1' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
}

.product-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }

/* Home hero (image background, full-bleed) */
.home-hero {
  position: relative;
  margin: -32px calc(50% - 50vw) 48px;
  min-height: 560px;
  padding: 90px 0;
  border-radius: 0;
  color: #fff;
  background:
    linear-gradient(120deg, rgba(5, 18, 32, .9) 0%, rgba(8, 24, 42, .68) 48%, rgba(8, 24, 42, .34) 100%),
    var(--hero-image, linear-gradient(135deg, var(--brand-800), var(--brand-600))) center / cover no-repeat;
  overflow: hidden;
}
.home-hero .container {
  position: relative;
  width: min(var(--container), calc(100% - 40px));
  margin: 0 auto;
}
.home-hero::before { content: none; }
.home-hero__content { max-width: 760px; display: grid; gap: 18px; }
.home-hero .page-hero__eyebrow {
  background: rgba(255, 255, 255, .14);
  border-color: rgba(255, 255, 255, .22);
  color: #fff;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.home-hero .page-hero__eyebrow::before { background: var(--accent-500); box-shadow: 0 0 0 3px rgba(15, 181, 177, .35); }
.home-hero h1 {
  color: #fff;
  font-size: clamp(38px, 5.4vw, 64px);
  letter-spacing: -0.03em;
  line-height: 1.05;
}
.home-hero p {
  max-width: 600px;
  color: rgba(255, 255, 255, .88);
  font-size: clamp(16px, 1.4vw, 19px);
}
.home-hero .product-actions { margin-top: 8px; }
.home-hero__stats {
  display: flex; flex-wrap: wrap; gap: 28px;
  margin-top: 24px; padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .18);
  color: rgba(255, 255, 255, .9);
}
.home-hero__stats .stat__value { color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, .28); }
.home-hero__stats .stat__label,
.home-hero__stats .stat__caption {
  color: rgba(255, 255, 255, .88);
  text-shadow: 0 1px 8px rgba(0, 0, 0, .34);
}

/* ---------- 8. Buttons ---------- */
.button,
.cta-block .button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: var(--r-md);
  background: var(--brand-700);
  color: #fff !important;
  font-size: var(--fs-15); font-weight: 600; letter-spacing: -0.005em;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: var(--shadow-xs);
  transition: transform var(--motion-fast), box-shadow var(--motion-fast),
              background var(--motion-fast), border-color var(--motion-fast),
              color var(--motion-fast);
}
.button:hover,
.cta-block .button:hover {
  background: var(--brand-800);
  box-shadow: var(--shadow-sm);
}
.button:active { box-shadow: var(--shadow-xs); }

.button--secondary {
  background: #fff;
  color: var(--brand-800) !important;
  border-color: var(--line);
  box-shadow: var(--shadow-xs);
}
.button--secondary:hover {
  background: var(--brand-100);
  border-color: var(--line-strong);
  color: var(--brand-800) !important;
  box-shadow: var(--shadow-sm);
}
.cta-block .button--secondary {
  background: #fff;
  color: var(--brand-800) !important;
  border-color: rgba(255,255,255,.55);
}
.cta-block .button--secondary:hover {
  color: #fff !important;
}

.z-page-block.z-block--cta .button,
.z-page-block--standard.z-page-block--cta .button {
  color: var(--brand-800) !important;
  background: #fff;
  border-color: rgba(255,255,255,.72);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .16);
  white-space: normal;
  text-align: center;
}

.z-page-block.z-block--cta .button:hover,
.z-page-block--standard.z-page-block--cta .button:hover {
  color: var(--brand-900) !important;
  background: var(--brand-50);
  border-color: #fff;
}

.button--ghost {
  background: transparent;
  color: var(--brand-700) !important;
  box-shadow: none;
}
.button--ghost:hover { background: var(--brand-100); }

.button--accent {
  background: linear-gradient(180deg, var(--accent-500), var(--accent-600));
  box-shadow: 0 8px 20px rgba(15, 181, 177, .28), inset 0 1px 0 rgba(255,255,255,.2);
}
.button--accent:hover {
  background: linear-gradient(180deg, var(--accent-600), #07807d);
  box-shadow: 0 14px 26px rgba(15, 181, 177, .36), inset 0 1px 0 rgba(255,255,255,.22);
}

.button--icon-only { padding: 0; width: 44px; min-height: 44px; }

.button .icon { width: 16px; height: 16px; }

/* ---------- 9. Chips, tags, badges, status ---------- */
.chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 10px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--text);
  font-size: var(--fs-13); font-weight: 600;
  line-height: 1.2;
  box-shadow: var(--shadow-xs);
}
.chip--brand    { background: var(--brand-100); color: var(--brand-800); border-color: rgba(29, 79, 122, .18); }
.chip--accent   { background: var(--accent-100); color: var(--accent-600); border-color: rgba(15, 181, 177, .25); }
.chip--success  { background: var(--success-100); color: var(--success-500); border-color: rgba(22, 163, 74, .25); }
.chip--warning  { background: var(--warning-100); color: var(--warning-500); border-color: rgba(217, 119, 6, .25); }
.chip--danger   { background: var(--danger-100); color: var(--danger-500); border-color: rgba(220, 38, 38, .25); }
.chip--info     { background: var(--info-100); color: var(--info-500); border-color: rgba(14, 165, 233, .25); }
.chip--new      { background: var(--new-100); color: var(--new-500); border-color: rgba(124, 58, 237, .25); }
.chip--soft     { background: var(--surface-3); border-color: transparent; color: var(--text-soft); }

.chip .dot,
.tag-dot {
  width: 7px; height: 7px; border-radius: var(--r-pill);
  background: currentColor; opacity: .85;
  box-shadow: 0 0 0 3px currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);
}

.badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 20px; height: 20px; padding: 0 7px;
  border-radius: var(--r-pill);
  background: var(--brand-600); color: #fff;
  font-size: var(--fs-12); font-weight: 700;
}
.badge--corner {
  position: absolute; top: 12px; right: 12px;
  background: var(--accent-500);
  box-shadow: 0 6px 14px rgba(15, 181, 177, .3);
}

.tag {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 9px;
  border-radius: var(--r-sm);
  background: var(--surface-3); color: var(--text);
  font-size: var(--fs-12); font-weight: 600;
}

/* Status (label + dot) */
.status {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: var(--fs-13); font-weight: 600; color: var(--text-soft);
}
.status::before {
  content: ""; width: 8px; height: 8px; border-radius: var(--r-pill);
  background: var(--soft);
  box-shadow: 0 0 0 3px rgba(94, 110, 133, .18);
}
.status--available::before { background: var(--success-500); box-shadow: 0 0 0 3px rgba(22, 163, 74, .22); }
.status--order::before     { background: var(--info-500); box-shadow: 0 0 0 3px rgba(14, 165, 233, .22); }
.status--low::before       { background: var(--warning-500); box-shadow: 0 0 0 3px rgba(217, 119, 6, .22); }
.status--pulse::before { animation: pulse 1.6s ease-out infinite; }
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(22, 163, 74, .35); }
  100% { box-shadow: 0 0 0 10px rgba(22, 163, 74, 0); }
}

/* ---------- 10. Cards (shared base) ---------- */
.feature-card,
.product-card,
.download-card,
.info-card,
.news-card,
.archive-item,
.media-tile,
.related-card,
.contact-item,
.note-card,
.callout,
.forum-wrap,
.review-note {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-xs);
  transition: transform var(--motion-fast), box-shadow var(--motion-fast), border-color var(--motion-fast);
}
.feature-card,
.product-card,
.download-card,
.news-card,
.archive-item,
.contact-item,
.media-tile__body,
.info-card__body { padding: 20px; }

.product-card:hover,
.info-card:hover,
.news-card:hover,
.archive-item:hover,
.media-tile:hover {
  border-color: var(--line);
  box-shadow: var(--shadow-md);
}

/* Card titles */
.feature-card h3, .product-card h3, .download-card h3,
.info-card h3, .news-card h3, .archive-item h3,
.media-tile h3, .related-card h3 {
  margin: 0 0 8px;
  color: var(--ink);
  font-size: var(--fs-18); font-weight: 700; letter-spacing: -0.012em; line-height: 1.3;
}
.feature-card p, .product-card p, .download-card p,
.info-card p, .news-card p, .archive-item p,
.media-tile p, .related-card p {
  color: var(--text-soft); margin: 0; line-height: 1.5;
}
.product-card h3 a, .news-card h3 a, .archive-item h3 a, .info-card h3 a { color: inherit; }
a.info-card {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* Catalog grid */
.cards-grid, .features-grid, .catalog-grid, .home-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 22px;
}
.cards-grid--vertical {
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}
.home-card-grid--four { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

/* Product card */
.product-card {
  display: flex; flex-direction: column; gap: 12px;
  min-height: 100%;
  overflow: hidden;
}
.product-card__image {
  position: relative;
  flex: 0 0 196px;
  height: 196px;
  margin: -20px -20px 6px;
  display: grid; place-items: center;
  overflow: hidden;
  background:
    radial-gradient(360px 180px at 50% -10%, rgba(15, 181, 177, .10), transparent 70%),
    linear-gradient(180deg, #fff, var(--surface-2));
  border-bottom: 1px solid var(--hairline);
}
.product-card__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 12px;
  object-fit: cover;
}
.product-card__image[href],
.archive-item__image,
.info-card__image,
.media-tile__image[href],
.gallery-grid__item,
.media-lightbox-link,
.product-detail-head__image-link {
  color: inherit;
  text-decoration: none;
}
.product-card__image[href],
.is-clickable-image { cursor: pointer; }
.product-card__image[href]:hover { background: linear-gradient(180deg, #fff, var(--brand-100)); }
.product-card__meta {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin: -2px 0 6px;
}
.product-card__actions {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: auto;
  padding-top: 4px;
}
.product-card__actions .button { flex: 1 1 auto; min-width: 0; padding: 0 14px; }

.product-card--no-image::before {
  content: none;
}

.catalog-section-block .product-card { border-top: 3px solid var(--accent-500); }
.catalog-products-block .product-card { border-top: 3px solid var(--brand-600); }
.catalog-section-block--compact {
  padding-top: 28px;
  border-top: 1px solid var(--hairline);
}
.catalog-section-block--compact .section-heading-row {
  align-items: center;
  margin-bottom: 14px;
}
.catalog-section-block--compact .section-heading-row h2 {
  font-size: var(--fs-24);
}
.catalog-section-block--compact .catalog-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.catalog-section-block--compact .product-card {
  gap: 8px;
  padding: 14px;
  border-top: 0;
  box-shadow: none;
}
.catalog-section-block--compact .product-card__image {
  flex-basis: 118px;
  height: 118px;
  margin: -14px -14px 2px;
}
.catalog-section-block--compact .product-card__image img {
  padding: 8px;
}
.catalog-section-block--compact .product-card h3 {
  font-size: var(--fs-16);
  line-height: 1.28;
}
.catalog-section-block--compact .product-card p {
  font-size: var(--fs-13);
  line-height: 1.45;
}
.catalog-section-block--compact .product-card__actions {
  display: none;
}

/* Info / news / archive cards */
.info-card { overflow: hidden; }
.cards-block--vertical .info-card {
  display: grid;
  grid-template-columns: minmax(180px, .32fr) minmax(0, 1fr);
  align-items: stretch;
}
.cards-block--vertical .info-card--no-image {
  grid-template-columns: minmax(0, 1fr);
}
.cards-block--vertical .info-card__body {
  display: grid;
  gap: 10px;
}
.cards-block--vertical .info-card h3 {
  margin-bottom: 2px;
  font-size: var(--fs-22);
}
.cards-block--vertical .info-card p {
  white-space: pre-line;
}
.cards-block--vertical .info-card .info-card__body > a {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: var(--r-pill);
  background: var(--brand-700);
  color: #fff;
  font-weight: 750;
}
.cards-block--vertical .info-card .info-card__body > a:hover {
  background: var(--brand-800);
  text-decoration: none;
}
.info-card__icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 14px;
  border-radius: var(--r-md);
  background: var(--brand-100);
  color: var(--brand-700);
  font-weight: 800;
  font-size: var(--fs-22);
}
.info-card__more {
  display: inline-flex;
  align-items: center;
  width: max-content;
  margin-top: 12px;
  color: var(--brand-700);
  font-weight: 750;
}
.info-card__more::after {
  content: "→";
  margin-left: 6px;
  transition: transform var(--motion-fast);
}
.info-card:hover .info-card__more::after {
  transform: translateX(3px);
}
.info-card img {
  width: 100%; height: 180px; object-fit: cover;
  background: var(--surface-2);
}
.info-card--no-image .info-card__body::before {
  content: ""; display: block; width: 44px; height: 3px;
  border-radius: var(--r-pill); background: var(--brand-600);
  margin-bottom: 12px;
}

.news-card { overflow: hidden; padding: 20px; }
.news-card img {
  width: calc(100% + 40px); max-width: none;
  height: 220px; object-fit: cover;
  margin: -20px -20px 16px;
}
.news-card time {
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: 10px;
  color: var(--muted); font-size: var(--fs-13); font-weight: 600;
}
.news-card time::before {
  content: ""; width: 6px; height: 6px; border-radius: var(--r-pill); background: var(--accent-500);
}
.news-card--no-image { padding-top: 26px; }
.news-card--no-image::before {
  content: ""; display: block; width: 44px; height: 3px;
  border-radius: var(--r-pill); background: var(--accent-500);
  margin-bottom: 14px;
}

.archive-item {
  display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 18px;
  padding: 18px;
}
.archive-item img {
  width: 200px; height: 140px; object-fit: cover;
  border-radius: var(--r-md); background: var(--surface-2);
}
.archive-item__image { display: block; }
.archive-item__image:hover img,
.info-card__image:hover img,
.media-tile__image[href]:hover img,
.is-clickable-image:hover { opacity: .88; }
.archive-item--no-image { grid-template-columns: 1fr; }
.archive-item__meta {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 8px;
  color: var(--muted); font-size: var(--fs-13);
}

.archive-list--video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  column-gap: 32px;
  row-gap: 34px;
}
.archive-block--video-grid .archive-item {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 0;
  background: rgba(248, 251, 253, .58);
  border: 0;
  border-radius: var(--r-sm);
  box-shadow: inset 0 0 0 1px rgba(221, 230, 238, .38);
  overflow: visible;
}
.archive-block--video-grid .archive-item:hover {
  border-color: transparent;
  box-shadow:
    inset 0 0 0 1px rgba(198, 215, 229, .58),
    0 12px 28px rgba(31, 55, 78, .055);
}
.archive-block--video-grid .archive-item__image {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  margin: 0;
  background: var(--surface-2);
  overflow: hidden;
  border-radius: var(--r-sm) var(--r-sm) 0 0;
}
.archive-block--video-grid .archive-item img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 0;
  object-fit: cover;
}
.archive-block--video-grid .archive-item > div {
  display: grid;
  gap: 6px;
  padding: 12px 14px 15px;
}
.archive-block--video-grid .archive-item__meta {
  order: 2;
  margin: 0;
}
.archive-block--video-grid .archive-item h3 {
  display: -webkit-box;
  min-height: calc(1.3em * 2);
  margin: 0;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-size: var(--fs-16);
  line-height: 1.28;
}
.archive-block--video-grid .archive-item p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  font-size: var(--fs-14);
  line-height: 1.45;
  color: var(--text-soft);
}
.archive-block--video-grid .archive-item--no-image {
  padding-top: 18px;
}

.archive-list--news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  column-gap: 32px;
  row-gap: 34px;
}
.archive-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 22px;
  color: var(--muted);
  font-size: var(--fs-14);
}
.archive-toolbar p {
  margin: 0;
}
.archive-block--news-grid .archive-item {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 0;
  background: rgba(248, 251, 253, .58);
  border: 0;
  border-radius: var(--r-sm);
  box-shadow: inset 0 0 0 1px rgba(221, 230, 238, .38);
  overflow: visible;
}
.archive-block--news-grid .archive-item:hover {
  border-color: transparent;
  box-shadow:
    inset 0 0 0 1px rgba(198, 215, 229, .58),
    0 12px 28px rgba(31, 55, 78, .055);
}
.archive-block--news-grid .archive-item__image {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  margin: 0;
  background: var(--surface-2);
  overflow: hidden;
  border-radius: var(--r-sm) var(--r-sm) 0 0;
}
.archive-block--news-grid .archive-item img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 0;
  object-fit: cover;
}
.archive-block--news-grid .archive-item > div {
  display: grid;
  gap: 6px;
  padding: 14px 16px 16px;
}
.archive-block--news-grid .archive-item__meta {
  margin: 0 0 2px;
  color: var(--muted);
  font-size: var(--fs-13);
}
.archive-block--news-grid .archive-item h3 {
  display: -webkit-box;
  min-height: calc(1.28em * 2);
  margin: 0;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-size: var(--fs-16);
  line-height: 1.28;
}
.archive-block--news-grid .archive-item p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  font-size: var(--fs-14);
  line-height: 1.45;
  color: var(--text-soft);
}
.archive-block--news-grid .archive-item--no-image {
  padding-top: 0;
}
.archive-block--news-grid .archive-item--no-image > div {
  padding-top: 18px;
}
.archive-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 42px 0 0;
}
.archive-pagination__page,
.archive-pagination__control,
.archive-pagination__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 0 13px;
  border-radius: var(--r-sm);
  color: var(--text);
  font-weight: 700;
  font-size: var(--fs-14);
}
.archive-pagination__page,
.archive-pagination__control {
  background: rgba(248, 251, 253, .78);
  box-shadow: inset 0 0 0 1px rgba(200, 215, 228, .72);
}
.archive-pagination__page:hover,
.archive-pagination__control:hover {
  color: #fff;
  background: var(--brand-700);
  box-shadow: inset 0 0 0 1px var(--brand-700);
}
.archive-pagination__page.is-current {
  color: #fff !important;
  background: var(--brand-800);
  box-shadow:
    inset 0 0 0 1px var(--brand-800),
    0 8px 18px rgba(14, 47, 75, .16);
}
.archive-pagination__ellipsis {
  min-width: 24px;
  padding: 0 4px;
  color: var(--muted);
}

/* Media tiles */
.media-tile {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
}
.media-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 3px solid var(--brand-600);
  opacity: .72;
  pointer-events: none;
}
.media-tile__image {
  display: grid;
  place-items: center;
  min-height: 168px;
  border-bottom: 1px solid var(--hairline);
  background:
    linear-gradient(135deg, rgba(14, 47, 75, .06), rgba(15, 181, 177, .10)),
    linear-gradient(180deg, #fff, var(--surface-2));
}
.media-tile__image img {
  width: 100%;
  height: auto;
  max-height: 220px;
  padding: 14px;
  object-fit: contain;
}
.media-tile__body {
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 148px;
}
.media-tile a { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-weight: 700; }
.media-tile a::after { content: "→"; transition: transform var(--motion-fast); }
.media-tile a:hover::after { transform: translateX(3px); }
.media-tiles-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px;
}

.editor-content > ul:has(> li > a > img) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  max-width: none;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}
.editor-content > ul:has(> li > a > img) > li {
  position: relative;
  margin: 0;
  padding: 0;
}
.editor-content > ul:has(> li > a > img) > li::before {
  display: none;
}
.editor-content > ul:has(> li > a > img) > li > a {
  position: relative;
  display: grid;
  grid-template-rows: 164px minmax(132px, auto);
  height: 100%;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-xs);
  transition: transform var(--motion-fast), box-shadow var(--motion-fast), border-color var(--motion-fast);
}
.editor-content > ul:has(> li > a > img) > li > a::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 3px solid var(--brand-600);
  opacity: .72;
  pointer-events: none;
}
.editor-content > ul:has(> li > a > img) > li > a:hover {
  border-color: var(--line);
  box-shadow: var(--shadow-md);
}
.editor-content > ul:has(> li > a > img) img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 16px;
  object-fit: contain;
  border-radius: 0;
  box-shadow: none;
  background:
    linear-gradient(135deg, rgba(14, 47, 75, .06), rgba(15, 181, 177, .10)),
    linear-gradient(180deg, #fff, var(--surface-2));
  border-bottom: 1px solid var(--hairline);
}
.editor-content > ul:has(> li > a > img) > li > a > div {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 20px;
}
.editor-content > ul:has(> li > a > img) > li > a > div > div:first-child > div:first-child {
  margin: 0 0 8px;
  color: var(--ink);
  font-size: var(--fs-18);
  font-weight: 750;
  letter-spacing: -0.012em;
  line-height: 1.3;
}
.editor-content > ul:has(> li > a > img) > li > a > div > div:last-child {
  color: var(--text-soft);
  line-height: 1.5;
}
.editor-content > ul:has(> li > a > img) > li > a > div::after {
  content: "Подробнее →";
  align-self: end;
  margin-top: 8px;
  color: var(--brand-700);
  font-weight: 750;
  font-size: var(--fs-14);
}

.webinar-schedule h2 {
  text-align: center;
  margin-bottom: 26px;
}
.webinar-schedule__grid {
  display: grid;
  grid-template-columns: minmax(280px, .82fr) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
.webinar-schedule--cards-only .webinar-schedule__grid {
  grid-template-columns: 1fr;
}
.webinar-schedule__images {
  display: grid;
  gap: 14px;
}
.webinar-schedule__images img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--r-sm);
  box-shadow: var(--shadow-xs);
}
.webinar-schedule__items {
  display: grid;
  gap: 16px;
}
.webinar-schedule--cards-only .webinar-schedule__items {
  max-width: 980px;
  margin: 0 auto;
}
.webinar-card {
  display: grid;
  grid-template-columns: 178px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding: 18px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, rgba(248, 251, 253, .72), #fff);
  box-shadow: var(--shadow-xs);
}
.webinar-card:last-child {
  border-bottom: 1px solid var(--hairline);
}
.webinar-card__image {
  display: block;
  overflow: hidden;
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--hairline);
}
.webinar-card__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  display: block;
  object-fit: cover;
}
.webinar-card__body {
  display: grid;
  gap: 8px;
}
.webinar-card h3 {
  margin: 0;
  font-size: var(--fs-19);
  line-height: 1.28;
}
.webinar-card h3 a {
  color: var(--ink);
}
.webinar-card__date {
  margin: 0;
  color: var(--brand-700);
  font-weight: 700;
}
.webinar-card__body p {
  margin: 0;
  color: var(--text-soft);
}
.webinar-card__more {
  width: max-content;
  font-weight: 700;
}

.newsletter-block {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 22px;
  align-items: end;
  padding: 28px;
  border-radius: var(--r-lg);
  border: 1px solid var(--hairline);
  background: linear-gradient(180deg, rgba(248, 251, 253, .94), #fff);
  box-shadow: var(--shadow-xs);
}
.newsletter-block h2 {
  margin-bottom: 8px;
}
.newsletter-block p {
  margin: 0;
  color: var(--text-soft);
}
.newsletter-block__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}
.newsletter-block__form label {
  display: grid;
  gap: 6px;
  font-weight: 700;
  color: var(--ink);
}
.newsletter-block__form label span {
  font-size: var(--fs-13);
}
.newsletter-block__form input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  font-size: var(--fs-15);
}
.newsletter-block__form input:focus {
  border-color: var(--brand-600);
  box-shadow: var(--ring);
  outline: none;
}

.lead-form-block {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(320px, 1fr);
  gap: 24px;
  align-items: start;
  padding: 28px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background:
    radial-gradient(520px 260px at 100% -20%, rgba(15, 181, 177, .12), transparent 70%),
    linear-gradient(180deg, rgba(248, 251, 253, .96), #fff);
  box-shadow: var(--shadow-sm);
}
.lead-form-block__copy h2 {
  margin-bottom: 10px;
}
.lead-form-block__copy p {
  margin: 0;
  color: var(--text-soft);
}
.lead-form-block__form {
  display: grid;
  gap: 14px;
}
.lead-form-block__form label {
  display: grid;
  gap: 6px;
  color: var(--ink);
  font-weight: 700;
  font-size: var(--fs-14);
}
.lead-form-block__form input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  font-size: var(--fs-15);
}
.lead-form-block__form input:focus {
  border-color: var(--brand-600);
  box-shadow: var(--ring);
  outline: none;
}

.webinar-hero {
  min-height: 300px;
  display: grid;
  align-content: center;
  gap: 18px;
  padding: clamp(36px, 6vw, 74px);
  border-radius: var(--r-lg);
  background: var(--brand-100) center / cover no-repeat;
  box-shadow: var(--shadow-sm);
}
.webinar-hero__eyebrow {
  margin: 0;
  font-weight: 700;
  color: var(--brand-700);
}
.webinar-hero h1 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.08;
}
.webinar-hero__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  max-width: 900px;
}
.webinar-hero__fact {
  min-height: 92px;
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 16px;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, .86);
  box-shadow: inset 0 0 0 1px rgba(221, 230, 238, .72);
}
.webinar-hero__fact strong {
  color: var(--ink);
  font-size: var(--fs-18);
}
.webinar-hero__fact span {
  color: var(--text-soft);
}

.presenter-block h2 {
  margin-bottom: 18px;
}
.presenter-card {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  padding: 24px;
  border-radius: var(--r-lg);
  border: 1px solid var(--hairline);
  background: #fff;
  box-shadow: var(--shadow-xs);
}
.presenter-card img {
  width: 160px;
  height: 160px;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px var(--hairline);
}
.presenter-card__body {
  display: grid;
  gap: 16px;
}
.presenter-card__body p {
  margin: 0;
  color: var(--text-soft);
}
.presenter-card__meta {
  display: grid;
  gap: 4px;
}
.presenter-card__meta strong {
  color: var(--ink);
  font-size: var(--fs-20);
}
.presenter-card__meta span {
  color: var(--muted);
}

.page-demo .text-block {
  max-width: 900px;
}
.page-demo .text-block + .text-block {
  margin-top: 28px;
}
.page-demo .editor-content ul,
.page-demo .editor-content ol {
  display: grid;
  gap: 10px;
}
.page-demo .media-tiles-block {
  margin-top: 26px;
  margin-bottom: 44px;
}
.page-demo .media-tiles-grid {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 26px;
}
.page-demo .media-tile {
  background: rgba(248, 251, 253, .72);
  border: 0;
  border-radius: var(--r-md);
  box-shadow: inset 0 0 0 1px rgba(221, 230, 238, .42);
}
.page-demo .media-tile__image {
  border-bottom-color: rgba(221, 230, 238, .58);
  background: #fff;
}
.page-demo .media-tile__image img {
  max-height: 420px;
  padding: 16px;
}
.page-demo .media-tile__body {
  padding: 14px 18px 18px;
}
.page-demo .media-tile h3 {
  margin: 0;
  font-size: var(--fs-16);
  line-height: 1.35;
}
.page-demo .media-tile p {
  margin: 0;
  color: var(--text-soft);
}
.page-demo .form-block {
  margin-top: 52px;
}


/* Home image cards */
.home-image-card {
  position: relative;
  min-height: 320px;
  overflow: hidden;
  border-radius: var(--r-lg);
  background: var(--brand-800);
  color: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform var(--motion-base), box-shadow var(--motion-base);
}
.home-image-card:hover { box-shadow: var(--shadow-lg); }
.home-image-card img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: .76;
  transition: transform var(--motion-slow), opacity var(--motion-slow);
}
.home-image-card:hover img { opacity: .82; }
.home-image-card div {
  position: absolute; inset: auto 0 0;
  padding: 24px;
  background: linear-gradient(180deg, transparent, rgba(8, 24, 42, .92));
}
.home-image-card h3 {
  margin: 0 0 8px; color: #fff;
  font-size: var(--fs-20); letter-spacing: -0.012em;
}
.home-image-card a {
  display: inline-flex; align-items: center; gap: 6px;
  color: #fff; font-weight: 700;
}
.home-image-card a::after { content: "→"; transition: transform var(--motion-fast); }
.home-image-card:hover a::after { transform: translateX(3px); }

/* Section heading row */
.section-heading-row {
  display: flex; align-items: end; justify-content: space-between;
  gap: var(--s-4);
  margin-bottom: 18px;
}
.section-heading-row h2 {
  margin: 0; color: var(--ink); font-size: var(--fs-32); letter-spacing: -0.022em;
}
.section-heading-row > span {
  max-width: 460px;
  color: var(--muted); font-size: var(--fs-14); line-height: 1.5;
}
.section-heading-row > a {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--brand-700); font-weight: 700;
}
.section-heading-row > a::after { content: "→"; transition: transform var(--motion-fast); }
.section-heading-row > a:hover::after { transform: translateX(3px); }

/* Content blocks rhythm */
.content-block { margin: 40px 0; }
.content-block + .content-block { margin-top: 48px; }
.content-block > h2 {
  margin: 0 0 18px;
  color: var(--ink); font-size: var(--fs-32); letter-spacing: -0.022em;
}
.content-block > h2 + p,
.content-block > h2 + .text-block,
.content-block > h2 + .editor-content { margin-top: -6px; }

/* Section eyebrow underline alternative */
.content-block.has-rule > h2::after,
.content-block.has-rule .section-heading-row h2::after {
  content: ""; display: block;
  width: 40px; height: 2px; margin-top: 12px;
  background: var(--brand-600);
}

/* ---------- 11. KPIs, callouts, notes, dividers ---------- */
.stat-row {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 18px;
}
.stat {
  display: grid; gap: 6px;
  padding: 18px 20px;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-xs);
}
.stat__label {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--muted); font-size: var(--fs-13); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.stat__label::before {
  content: ""; width: 6px; height: 6px; border-radius: var(--r-pill); background: var(--accent-500);
}
.stat__value {
  color: var(--ink); font-size: var(--fs-32); font-weight: 800; letter-spacing: -0.02em;
  line-height: 1.1; font-variant-numeric: tabular-nums;
}
.stat__caption { color: var(--text-soft); font-size: var(--fs-13); }

.callout {
  display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px;
  padding: 18px 20px;
  background: linear-gradient(180deg, var(--surface-2), #fff);
  border-left: 1px solid var(--brand-600);
}
.callout__icon {
  display: grid; place-items: center;
  width: 40px; height: 40px; border-radius: var(--r-md);
  background: var(--brand-100); color: var(--brand-700);
  font-weight: 800; font-size: var(--fs-18);
}
.callout__title { color: var(--ink); font-weight: 700; margin: 0 0 4px; }
.callout p { color: var(--text-soft); margin: 0; }
.callout--info    { border-color: var(--info-500); }
.callout--info    .callout__icon { background: var(--info-100); color: var(--info-500); }
.callout--tip     { border-color: var(--accent-500); }
.callout--tip     .callout__icon { background: var(--accent-100); color: var(--accent-600); }
.callout--warning { border-color: var(--warning-500); }
.callout--warning .callout__icon { background: var(--warning-100); color: var(--warning-500); }
.callout--success { border-color: var(--success-500); }
.callout--success .callout__icon { background: var(--success-100); color: var(--success-500); }

.note-card {
  display: grid; gap: 12px;
  padding: 20px;
  background:
    linear-gradient(180deg, var(--surface-2), #fff);
}
.note-card__header {
  display: flex; align-items: center; gap: 12px;
}
.note-card__avatar {
  width: 36px; height: 36px; border-radius: var(--r-pill);
  background: linear-gradient(135deg, var(--brand-600), var(--accent-500));
  color: #fff; display: grid; place-items: center;
  font-weight: 700; font-size: var(--fs-14);
  box-shadow: var(--shadow-xs);
}
.note-card__author { display: grid; gap: 2px; }
.note-card__name { color: var(--ink); font-size: var(--fs-14); font-weight: 700; }
.note-card__role { color: var(--muted); font-size: var(--fs-12); }
.note-card__body { color: var(--text-soft); }
.note-card__body::before {
  content: "“"; display: inline-block; margin-right: 6px;
  color: var(--brand-600); font-size: 28px; line-height: 0;
  vertical-align: -10px;
}

.divider {
  display: flex; align-items: center; gap: 12px;
  margin: 26px 0;
  color: var(--muted); font-size: var(--fs-12); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.08em;
}
.divider::before, .divider::after {
  content: ""; flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, var(--line), transparent);
}

/* ---------- 12. Forms ---------- */
.form-block {
  display: grid; grid-template-columns: minmax(0, .85fr) minmax(320px, 1fr);
  gap: 24px;
  padding: 28px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background:
    radial-gradient(500px 260px at 100% -20%, rgba(15, 181, 177, .14), transparent 70%),
    linear-gradient(180deg, var(--brand-100), #fff);
  box-shadow: var(--shadow-sm);
}
.form-block > div h2 { margin-bottom: 10px; }
.form-block > div p { color: var(--text-soft); }
.form-block form { display: grid; gap: 14px; }
.form-block label {
  display: grid; gap: 6px;
  color: var(--ink); font-weight: 700; font-size: var(--fs-14);
}
.form-block input[type="text"],
.form-block textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line); border-radius: var(--r-md);
  background: #fff;
  font-size: var(--fs-15);
  transition: border-color var(--motion-fast), box-shadow var(--motion-fast);
}
.form-block input::placeholder,
.form-block textarea::placeholder { color: var(--soft); }
.form-block input:focus,
.form-block textarea:focus {
  border-color: var(--brand-600);
  box-shadow: var(--ring);
  outline: none;
}
.form-block__agree {
  display: flex !important; align-items: center; gap: 10px;
  color: var(--text-soft) !important; font-weight: 500 !important;
}
.form-block__agree input { width: 18px; height: 18px; accent-color: var(--brand-600); }
.form-block__note { color: var(--muted); font-size: var(--fs-13); margin: 0; }

/* ---------- 13. Tables, specs ---------- */
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}
.table-wrap table { width: 100%; border-collapse: collapse; min-width: 620px; }
.table-wrap th, .table-wrap td,
.editor-content th, .editor-content td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--hairline);
  text-align: left; vertical-align: top;
  line-height: 1.5;
}
.table-wrap th {
  background: var(--surface-2);
  color: var(--ink); font-weight: 700; font-size: var(--fs-13);
  text-transform: uppercase; letter-spacing: 0.04em;
}
.table-wrap th[scope="row"] {
  width: 34%;
  background: #fff; color: var(--ink); font-weight: 600;
}
.table-wrap .spec-group,
.table-wrap td:first-child:last-child {
  background: var(--brand-100);
  color: var(--brand-800); font-weight: 700;
}
.table-wrap tr:nth-child(even) td,
.editor-content tr:nth-child(even) td { background: var(--surface-2); }
.table-wrap td { white-space: pre-line; font-variant-numeric: tabular-nums; }

/* ---------- 14. Lists (documents, related, FAQ) ---------- */
.documents-list, .related-list, .faq-list {
  display: grid; gap: 10px;
  list-style: none;
}
.documents-list a {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-xs);
  font-weight: 600; color: var(--ink);
  transition: transform var(--motion-fast), box-shadow var(--motion-fast), border-color var(--motion-fast);
}
.documents-list a::before {
  content: ""; flex: 0 0 22px; width: 22px; height: 22px;
  background: center/22px no-repeat
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4f7a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='9' y1='13' x2='15' y2='13'/><line x1='9' y1='17' x2='13' y2='17'/></svg>");
}
.documents-list a:hover { border-color: var(--brand-600);
  box-shadow: var(--shadow-sm);
}
.related-list a {
  display: block; padding: 12px 14px;
  background: #fff; border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  font-weight: 600; color: var(--ink);
  box-shadow: var(--shadow-xs);
}
.related-list a:hover { border-color: var(--brand-600); color: var(--brand-800); }
.related-block .related-list {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.related-card {
  display: grid; grid-template-columns: 110px minmax(0, 1fr);
  gap: 14px; padding: 14px;
}
.related-card img {
  width: 110px; height: 82px; object-fit: cover;
  border-radius: var(--r-sm); background: var(--surface-2);
}
.related-card__image {
  display: block;
  line-height: 0;
}
.related-card h3 { font-size: var(--fs-15); }
.related-card p { color: var(--muted); font-size: var(--fs-13); }

.related-list--video-grid {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  column-gap: 32px;
  row-gap: 34px;
}
.related-block--video-grid .related-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}
.related-block--video-grid .related-card__image {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  background: var(--surface-2);
  overflow: hidden;
}
.related-block--video-grid .related-card img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
}
.related-block--video-grid .related-card > div {
  display: grid;
  gap: 8px;
  padding: 12px 0 0;
}
.related-block--video-grid .related-card h3 {
  display: -webkit-box;
  min-height: calc(1.3em * 2);
  margin: 0;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-size: var(--fs-16);
}
.related-block--video-grid .related-card p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* FAQ / disclosure */
.faq-list { gap: 10px; }
.faq-list details, details.feature-card {
  padding: 0;
  overflow: hidden;
}
.faq-list summary, details.feature-card summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 18px 20px;
  color: var(--ink); font-weight: 700; line-height: 1.35;
  cursor: pointer;
  list-style: none;
}
.faq-list summary::-webkit-details-marker,
details.feature-card summary::-webkit-details-marker { display: none; }
.faq-list summary::after,
details.feature-card summary::after {
  content: ""; flex: 0 0 22px; width: 22px; height: 22px;
  border-radius: var(--r-sm);
  background: var(--brand-100) center/14px no-repeat
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4f7a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  transition: transform var(--motion-fast);
}
.faq-list details[open] summary::after,
details.feature-card[open] summary::after { transform: rotate(180deg); }
.faq-list details[open] summary,
details.feature-card[open] summary { border-bottom: 1px solid var(--hairline); }
.faq-list details p, details.feature-card p {
  margin: 0; padding: 18px 20px 22px;
  color: var(--text-soft);
}
.faq-answer {
  display: grid;
  gap: 14px;
  padding: 18px 20px 22px;
}
.faq-answer p {
  padding: 0 !important;
}
.faq-answer__image {
  display: block;
  max-width: 520px;
}
.faq-answer__image img {
  width: 100%;
  max-height: 320px;
  object-fit: contain;
  padding: 10px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #fff;
}

/* Contacts */
.contacts-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.contact-item {
  display: grid; gap: 4px;
  padding: 16px 18px;
}
.contact-item strong { color: var(--ink); font-weight: 700; font-size: var(--fs-14); }
.contact-item a, .contact-item span { color: var(--brand-700); font-weight: 600; overflow-wrap: anywhere; }

/* Team */
.team-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
}
.team-card {
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.team-card img {
  width: 100%;
  aspect-ratio: 1 / 1.05;
  object-fit: cover;
  object-position: center top;
  background: var(--surface-2);
}
.team-card__body {
  display: grid;
  gap: 8px;
  padding: 18px;
}
.team-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: var(--fs-18);
  line-height: 1.25;
}
.team-card__role {
  margin: 0;
  color: var(--text-soft);
  font-weight: 600;
}
.team-card__contacts {
  display: grid;
  gap: 5px;
  margin-top: 4px;
}
.team-card__contacts a {
  color: var(--brand-700);
  font-weight: 600;
  overflow-wrap: anywhere;
}

/* Maps */
.map-block__frame {
  min-height: 360px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  background: var(--surface-2);
}
.map-block__frame > ymaps,
.map-block__frame iframe {
  display: block;
  width: 100% !important;
  min-height: 360px !important;
}

/* Icon list */
.icon-list-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 22px;
}
.icon-list-item {
  display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; align-items: start;
}
.icon-list-item > span {
  display: grid; place-items: center;
  width: 48px; height: 48px;
  border-radius: var(--r-md);
  background: linear-gradient(135deg, var(--brand-600), var(--accent-500));
  color: #fff; font-weight: 800;
  box-shadow: 0 6px 14px rgba(15, 181, 177, .25);
}
.icon-list-item h3 { margin: 0 0 4px; color: var(--ink); font-size: var(--fs-18); }
.icon-list-item p { color: var(--text-soft); margin: 0; }

/* CTA block */
.cta-block {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 28px 32px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xl);
  background: var(--brand-50);
  box-shadow: var(--shadow-sm);
}
.cta-block h2 { margin: 0 0 6px; font-size: var(--fs-24); }
.cta-block p { margin: 0; color: var(--text-soft); }
.cta-block__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.cta-block__actions .button { white-space: normal; text-align: center; }

/* Split section */
.split-section {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
  gap: 40px; align-items: center;
  padding: 36px;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-sm);
}
.split-section--soft {
  background:
    radial-gradient(560px 300px at 0% 0%, rgba(29, 79, 122, .08), transparent 70%),
    linear-gradient(180deg, #fff, var(--surface-2));
}
.split-section--soft .callout {
  border: 1px solid var(--line);
  border-left: 1px solid var(--brand-600);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-xs);
}
.split-section__copy h2 { margin: 0 0 14px; color: var(--ink); font-size: var(--fs-32); letter-spacing: -0.022em; }
.split-section__copy p { margin: 0 0 12px; color: var(--text-soft); }
.split-section__copy p:last-child { margin-bottom: 0; }
.split-section__media { display: flex; flex-direction: column; gap: 12px; justify-content: center; min-width: 0; }
.split-section__media img {
  width: 100%; height: auto; border-radius: var(--r-lg);
  /* фотография масштабируется целиком, без обрезки */
  object-fit: contain; box-shadow: var(--shadow-md);
}
.split-section__copy ul, .split-section__copy ol { margin: 0 0 12px; padding-left: 20px; color: var(--text-soft); }
.split-section__copy li { margin: 0 0 6px; }
.split-section__copy li:last-child { margin-bottom: 0; }

.split-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr);
  gap: 28px;
  align-items: center;
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}
.split-content--reverse {
  grid-template-columns: minmax(320px, .82fr) minmax(0, 1fr);
}
.split-content--reverse .split-content__media {
  order: -1;
}
.split-content--video,
.split-content--video-lesson {
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, .82fr);
  align-items: stretch;
}
.split-content--video-lesson {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  align-items: start;
}
.split-content--video .split-content__media,
.split-content--video-lesson .split-content__media {
  order: -1;
}
.split-content__copy {
  align-self: center;
}
.split-content__copy h2 {
  margin: 0 0 12px;
  color: var(--ink);
  font-size: var(--fs-24);
  line-height: 1.25;
}
.split-content__copy p {
  margin: 0;
  color: var(--text-soft);
}
.split-content__media {
  display: grid;
  min-width: 0;
}
.split-content__media iframe {
  width: 100%;
  height: auto;
  min-height: 320px;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: var(--r-md);
  background: #101828;
  box-shadow: var(--shadow-md);
}
.split-content--video-lesson .split-content__media iframe {
  border-radius: var(--r-sm);
  box-shadow: none;
}
.split-content--video-lesson .editor-content {
  max-width: none;
}
.split-content--video-lesson .editor-content > p:first-child {
  color: var(--text);
  font-size: var(--fs-16);
}
.split-content__media img {
  width: 100%;
  border-radius: var(--r-md);
  object-fit: cover;
  box-shadow: var(--shadow-md);
}
.solution-links {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 18px;
}
.solution-links a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  border: 1px solid var(--hairline); border-radius: var(--r-pill);
  background: #fff;
  color: var(--brand-800); font-weight: 600; font-size: var(--fs-14);
  box-shadow: var(--shadow-xs);
  transition: border-color var(--motion-fast), color var(--motion-fast), background var(--motion-fast);
}
.solution-links a::after { content: "→"; transition: transform var(--motion-fast); }
.solution-links a:hover { border-color: var(--brand-600); background: var(--brand-100); }
.solution-links a:hover::after { transform: translateX(3px); }

/* ---------- 15. Editor content ---------- */
.text-block, .list-block, .editor-content { max-width: 820px; color: var(--text); }
.text-block--wide { max-width: none; }
.editor-content > :first-child { margin-top: 0; }
.editor-content > :last-child { margin-bottom: 0; }
.editor-content p, .text-block p, .list-block p { margin: 0 0 14px; }
.editor-content p:last-child, .text-block p:last-child, .list-block p:last-child { margin-bottom: 0; }
.editor-content > p:first-child { color: var(--ink); font-size: var(--fs-18); }
.editor-content h2 { margin: 30px 0 12px; font-size: var(--fs-28); }
.editor-content h3 { margin: 26px 0 10px; font-size: var(--fs-20); }
.editor-content img,
.text-block img {
  width: auto;
  height: auto;
  max-width: min(100%, 760px);
  max-height: 520px;
  aspect-ratio: auto;
  object-fit: contain;
  margin: 18px 0;
  border-radius: var(--r-md);
  box-shadow: var(--shadow-xs);
}
.editor-content p > img:only-child,
.text-block p > img:only-child {
  margin: 6px 0;
}
.legal-text {
  display: grid;
  gap: 12px;
  max-width: 900px;
}
.legal-text h2 {
  margin: 26px 0 2px;
  padding-top: 18px;
  border-top: 1px solid var(--hairline);
  color: var(--brand-800);
  font-size: var(--fs-24);
  letter-spacing: -0.012em;
}
.legal-text h2:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.legal-text p {
  margin: 0;
  color: var(--text);
  line-height: 1.72;
}
.legal-text__clause {
  padding-left: 14px;
  border-left: 2px solid var(--hairline);
}
.editor-content blockquote {
  margin: 22px 0;
  padding: 18px 20px;
  border-left: 3px solid var(--accent-500);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  background: var(--surface-2);
  color: var(--ink);
}
.editor-content ul, .list-block ul {
  margin: 14px 0 0; padding-left: 0; list-style: none;
}
.editor-content ol { margin: 14px 0 0; padding-left: 22px; }
.editor-content ul li, .list-block li {
  position: relative; padding-left: 24px;
}
.editor-content li + li, .list-block li + li { margin-top: 8px; }
.editor-content ul li::before, .list-block li::before {
  content: "";
  position: absolute; left: 2px; top: .55em;
  width: 10px; height: 10px;
  border-radius: var(--r-xs);
  background: linear-gradient(135deg, var(--brand-600), var(--accent-500));
}

/* Gallery */
.gallery-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}
.gallery-block--single .gallery-grid {
  grid-template-columns: minmax(220px, min(100%, 760px));
}
.gallery-grid__item { display: block; }
.gallery-grid img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover;
  padding: 10px;
  border: 1px solid var(--hairline); border-radius: var(--r-md);
  background: #fff; box-shadow: var(--shadow-xs);
  transition: transform var(--motion-fast), box-shadow var(--motion-fast);
}
.gallery-grid img[alt*="Сертификат"],
.gallery-grid img[alt*="сертификат"],
.gallery-grid img[alt*="Свидетельство"],
.gallery-grid img[alt*="свидетельство"],
.gallery-grid img[alt*="График"],
.gallery-grid img[alt*="график"],
.gallery-grid img[alt*="схем"],
.gallery-grid img[alt*="Схем"] {
  object-fit: cover;
}
.gallery-grid img:hover { box-shadow: var(--shadow-sm); }
.gallery-block--single .gallery-grid img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 520px;
  aspect-ratio: auto;
  object-fit: contain;
}

.has-lightbox { overflow: hidden; }
.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  place-items: center;
  padding: 32px;
  background: rgba(8, 25, 42, .84);
  backdrop-filter: blur(6px);
}
.image-lightbox.is-open { display: grid; }
.image-lightbox img {
  max-width: min(1120px, 94vw);
  max-height: 86vh;
  object-fit: contain;
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .34);
}
.image-lightbox__close {
  position: fixed;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: var(--r-pill);
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}
.image-lightbox__nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: var(--r-pill);
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 32px;
  line-height: 1;
  cursor: pointer;
}
.image-lightbox__nav--prev { left: 18px; }
.image-lightbox__nav--next { right: 18px; }

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
}

/* Slider */
.page-slider { margin: 0 0 36px; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-sm); }
.page-slider__slide {
  display: none; align-items: center; justify-content: center;
  min-height: 320px; padding: 64px 32px;
  color: #fff;
  background: var(--brand-700) center / cover no-repeat;
  text-align: center;
}
.page-slider__slide.is-active { display: flex; }
.page-slider__slide h1 { margin: 0; color: #fff; font-size: clamp(28px, 4vw, 44px); }
.page-slider__slide p {
  max-width: 760px; margin: 12px auto 0;
  color: rgba(255, 255, 255, .9); font-size: var(--fs-18);
}

.video-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--r-lg);
  background: var(--ink);
  box-shadow: var(--shadow-sm);
}
.video-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* ---------- 16. Forum overrides ---------- */
.forum-wrap, .forum-content, .forum-block-container, .forum-info-box, table.forum-table {
  border-color: var(--hairline) !important;
}
.forum-table {
  width: 100%; border-collapse: collapse;
  background: #fff; border: 1px solid var(--hairline);
  border-radius: var(--r-md); overflow: hidden;
}
.forum-table th {
  background: var(--surface-2) !important; color: var(--ink) !important;
  padding: 12px 14px; font-weight: 700;
}
.forum-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--hairline);
}
.forum-item-title a, .forum-lastpost-title a {
  color: var(--brand-800); font-weight: 700;
}
.forum-info-box {
  margin: 16px 0;
  padding: 14px 16px;
  border: 1px solid var(--hairline); border-radius: var(--r-md);
  background: var(--surface-2);
}

/* ---------- 17. Footer ---------- */
.site-footer {
  margin-top: auto;
  padding: 64px 0 28px;
  color: rgba(255, 255, 255, .82);
  background:
    radial-gradient(600px 320px at 90% 0%, rgba(15, 181, 177, .15), transparent 70%),
    linear-gradient(180deg, var(--brand-800), #07172a);
}
.site-footer a {
  display: flex; align-items: flex-start; gap: 8px; margin: 7px 0;
  color: rgba(255, 255, 255, .8);
  transition: color var(--motion-fast);
}
.site-footer a:hover { color: #fff; }
.site-footer a .icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin-top: 2px;
}
.site-footer h3 {
  margin: 0 0 14px;
  color: #fff; font-size: var(--fs-15); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.08em;
}
.site-footer__grid {
  display: grid; grid-template-columns: 1.4fr repeat(var(--footer-cols, 3), 1fr);
  gap: 36px;
}
.site-footer__brand {
  display: inline-flex;
  align-items: center;
  width: 150px;
  margin-bottom: 16px;
}
.site-footer__brand img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.site-footer__bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  margin-top: 36px; padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .14);
  font-size: var(--fs-13);
}
.site-footer__bottom img { width: 92px; }
.site-footer__social { display: flex; flex-wrap: wrap; gap: 8px; }
.site-footer__social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; margin: 0;
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .9);
  transition: background var(--motion-fast), color var(--motion-fast), transform var(--motion-fast);
}
.site-footer__social a:hover {
  background: var(--accent-500); color: #fff;
}
.site-footer__social a .icon { width: 18px; height: 18px; }

/* ---------- 18. Toast / clipboard feedback ---------- */
.toast {
  position: fixed; left: 50%; bottom: 28px;
  transform: translateX(-50%) translateY(20px);
  padding: 12px 16px;
  border-radius: var(--r-md);
  background: var(--ink); color: #fff;
  font-size: var(--fs-14); font-weight: 600;
  box-shadow: var(--shadow-lg);
  opacity: 0; pointer-events: none;
  transition: opacity var(--motion-base), transform var(--motion-base);
  z-index: 200;
}
.toast.is-visible {
  opacity: 1; transform: translateX(-50%) translateY(0);
}

/* ---------- 19. Reveal on scroll ---------- */
[data-reveal] {
  opacity: 0; transform: translateY(14px);
  transition: opacity 520ms var(--ease), transform 520ms var(--ease);
}
[data-reveal].is-revealed { opacity: 1; transform: none; }
.archive-block[data-reveal],
.archive-block.is-revealed {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  [data-reveal] { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}

/* ---------- 20. Missing-image fallbacks (kept for JS) ---------- */
.product-card__image.is-missing-image,
.media-tile__image.is-missing-image,
.split-content__media.is-missing-image,
.gallery-grid.is-missing-image { display: none; }
.media-tile.is-missing-image,
.archive-item.is-missing-image,
.related-card.is-missing-image,
.info-card.is-missing-image { grid-template-columns: 1fr; }

/* ---------- 21. Responsive ---------- */
@media (max-width: 1240px) {
  .home-card-grid--four { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}

@media (max-width: 1180px) {
  .nav__item > a { font-size: var(--fs-14); padding-inline: 10px; }
  .nav__item > a::after { display: none; }
}

@media (max-width: 1180px) and (min-width: 981px) {
  .mega { width: min(940px, calc(100vw - 32px)); }
  .mega__catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .container { width: min(var(--container), calc(100% - 28px)); }
  .site-main { padding: 24px 0 64px; }

  .topbar { font-size: var(--fs-12); }
  .topbar__inner {
    flex-direction: row; flex-wrap: wrap; align-items: center;
    min-height: auto; gap: 6px 14px; padding: 10px 0;
  }
  .topbar__social { display: none; }
  .topbar__badge { order: -1; }
  .topbar__contacts, .topbar__account {
    min-width: 0; max-width: 100%; overflow-wrap: anywhere;
  }
  .topbar__contacts { flex: 1 1 100%; gap: 6px 12px; }

  .mainnav__inner {
    position: relative;
    flex-direction: row; flex-wrap: wrap;
    min-height: 70px; align-items: center;
    gap: 10px 12px;
    padding: 12px 60px 12px 0;
  }
  .brand { min-width: 0; max-width: calc(100% - 140px); }
  .brand img { width: 158px; }
  .nav-toggle { display: block; position: absolute; right: 6px; top: 16px; }
  .header-cta { margin-left: auto; min-height: 38px; padding-inline: 14px; }
  .search-mini { margin-left: auto; }
  .search-mini__panel {
    position: fixed;
    top: 122px;
    right: 14px;
    left: 14px;
    width: auto;
  }
  .nav { order: 10; flex: 1 0 100%; display: none; flex-direction: column; align-items: stretch; gap: 4px; padding-top: 8px; }
  .nav.nav--open { display: flex; }
  .nav__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px;
    align-items: center;
    border-top: 1px solid var(--hairline);
  }
  .nav__item > a { white-space: normal; padding: 13px 10px; }
  .nav__item > a::after { display: none; }
  .nav__submenu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    background: var(--surface-2);
    color: var(--brand-800);
  }
  .nav__submenu-toggle span {
    display: block;
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform var(--motion-fast);
  }
  .nav__item.is-submenu-open > .nav__submenu-toggle span {
    transform: translateY(2px) rotate(225deg);
  }
  .mega, .dropdown {
    grid-column: 1 / -1;
    position: static; width: 100%; max-width: none; max-height: none;
    transform: none; box-shadow: none; border-radius: var(--r-md);
    overflow: visible;
  }
  .mega, .dropdown { display: none; margin: 2px 0 10px; }
  .nav__item--mega:hover .mega,
  .nav__item--mega:focus-within .mega,
  .nav__item--dropdown:hover .dropdown,
  .nav__item--dropdown:focus-within .dropdown { display: none; }
  .nav__item.is-submenu-open > .mega,
  .nav__item.is-submenu-open > .dropdown { display: block; }
  .mega__overview {
    display: grid;
    gap: 10px;
    padding: 14px;
  }
  .mega__overview a { justify-content: center; width: 100%; }
  .mega__catalog {
    grid-template-columns: 1fr;
    gap: 8px;
    max-height: none;
    padding: 10px;
  }
  .mega-card {
    padding: 13px;
  }
  .mega-card__title { font-size: var(--fs-17); }
  .mega-card__links a,
  .dropdown a { min-height: 36px; font-size: var(--fs-15); }
  .dropdown__head {
    display: grid;
    align-items: start;
  }
  .dropdown__head a { width: 100%; }
  .dropdown { padding: 8px; }

  .page-hero,
  .product-detail-head { padding: 22px 0 28px; margin-bottom: 28px; }
  .product-detail-head { grid-template-columns: 1fr; gap: 22px; }
  .product-detail-head__image { min-height: 260px; }
  .product-detail-head__media { width: 100%; }
  .product-main-nav {
    width: 34px;
    height: 34px;
    font-size: 24px;
    opacity: .9;
  }
  .product-main-nav--prev { left: 8px; }
  .product-main-nav--next { right: 8px; }
  .product-media-strip-wrap {
    grid-template-columns: 26px minmax(0, 1fr) 26px;
    gap: 6px;
    padding: 6px;
  }
  .product-media-nav {
    width: 26px;
    height: 26px;
    font-size: 18px;
  }
  .product-media-thumb {
    flex-basis: 62px;
  }
  .home-hero { margin-top: -24px; padding: 70px 0; min-height: 480px; }
  .home-hero .container,
  .home-hero__content,
  .home-hero h1,
  .home-hero p,
  .home-hero .product-actions,
  .home-hero__stats {
    max-width: 100%;
    min-width: 0;
  }
  .home-hero__content > * {
    min-width: 0;
  }
  .home-hero h1 {
    overflow-wrap: break-word;
    word-break: normal;
  }

  .split-section,
  .split-content,
  .split-content--video,
  .split-content--video-lesson { grid-template-columns: 1fr; padding: 22px; gap: 22px; }
  .split-content--video-lesson { padding: 0; }
  .split-content__media,
  .split-content--video .split-content__media,
  .split-content--video-lesson .split-content__media { order: 0; }
  .split-content--video-lesson .split-content__media { order: -1; }
  .split-content__media iframe { min-height: 220px; }
  .archive-item, .form-block { grid-template-columns: 1fr; }
  .related-block .related-list, .related-card { grid-template-columns: 1fr; }
  .archive-list--video-grid,
  .archive-list--news-grid,
  .related-list--video-grid { grid-template-columns: 1fr; }
  .related-card img { width: 100%; height: auto; aspect-ratio: 4/3; }
  .archive-item img { width: 100%; height: auto; aspect-ratio: 3/2; }
  .home-card-grid, .home-card-grid--four,
  .cards-grid, .features-grid, .catalog-grid,
  .icon-list-grid, .contacts-grid, .gallery-grid,
  .stat-row, .news-grid, .media-tiles-grid,
  .site-footer__grid,
  .webinar-schedule__grid,
  .newsletter-block,
  .lead-form-block,
  .webinar-hero__facts,
  .presenter-card { grid-template-columns: 1fr; }
  .webinar-card { grid-template-columns: 120px minmax(0, 1fr); }
  .newsletter-block__form { grid-template-columns: 1fr; }
  .cta-block { flex-direction: column; align-items: stretch; padding: 22px; }
  .cta-block__actions { justify-content: stretch; }
  .cta-block__actions a, .product-actions .button { width: 100%; }
  .section-heading-row { flex-direction: column; align-items: flex-start; gap: 8px; }
}

@media (max-width: 720px) {
  .webinar-card { grid-template-columns: 1fr; }
  .cards-block--vertical .info-card {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  body { font-size: var(--fs-15); }
  .home-hero { min-height: 420px; padding: 48px 0; }
  .home-hero h1 {
    font-size: clamp(29px, 8.2vw, 34px);
    line-height: 1.08;
  }
  .home-hero p {
    font-size: 16px;
  }
  .home-hero__stats {
    gap: 18px;
  }
  .form-block { padding: 22px; }
  .cta-block, .split-section { padding: 22px; }
  .home-image-card { min-height: 280px; }
  .home-image-card div { padding: 18px; }
  .news-card img { height: 180px; }
  .site-footer__brand { width: 142px; }
  .header-cta { display: none; }
  .search-mini__panel { top: 116px; }
  .product-trust-list li, .page-hero__meta .chip {
    justify-content: center;
  }
  .topbar__badge { font-size: 11px; }
}

@media (max-width: 640px) {
  .table-wrap {
    overflow-x: visible;
  }

  .table-wrap table,
  .table-wrap tbody,
  .table-wrap tr,
  .table-wrap th,
  .table-wrap td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .table-wrap table {
    border-collapse: separate;
    border-spacing: 0;
  }

  .table-wrap tr {
    border-bottom: 1px solid var(--hairline);
  }

  .table-wrap tr:last-child {
    border-bottom: 0;
  }

  .table-wrap th,
  .table-wrap td,
  .editor-content th,
  .editor-content td {
    padding: 11px 14px;
    border-bottom: 0;
    white-space: normal;
  }

  .table-wrap th[scope="row"] {
    width: 100%;
    padding-bottom: 4px;
    color: var(--muted);
    font-size: var(--fs-12);
    text-transform: uppercase;
    letter-spacing: .035em;
  }

  .table-wrap td {
    padding-top: 4px;
  }
}

/* ---------- 22. News grid ---------- */
.news-grid {
  display: grid; gap: 22px;
  grid-template-columns: 1.4fr 1fr 1fr;
}
@media (max-width: 1100px) {
  .news-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}

/* ---------- 23. Forum responsive (kept from prior pass) ---------- */
@media (max-width: 640px) {
  .forum-block-container, .forum-block-outer, .forum-block-inner, .forum-table {
    width: 100%; max-width: 100%; overflow: visible;
  }
  .forum-table, .forum-table thead, .forum-table tbody, .forum-table tfoot,
  .forum-table tr, .forum-table th, .forum-table td { display: block; }
  .forum-table thead, .forum-column-icon, .forum-column-footer { display: none; }
  .forum-table tr {
    margin-bottom: 14px; padding: 16px;
    border: 1px solid var(--hairline); border-radius: var(--r-md);
    background: #fff; box-shadow: var(--shadow-xs);
  }
  .forum-table td { width: 100%; padding: 0; border: 0; text-align: left; }
  .forum-column-title { margin-bottom: 12px; }
  .forum-column-topics, .forum-column-replies {
    display: inline-flex !important; width: auto !important; min-width: 0 !important;
    max-width: 100% !important; margin: 0 10px 10px 0;
    color: var(--muted); font-size: var(--fs-13);
  }
  .forum-column-topics span, .forum-column-replies span {
    position: static !important; display: inline !important; float: none !important;
    width: auto !important; min-width: 0 !important; max-width: 100% !important;
    margin: 0 !important; padding: 0 !important; text-align: left !important;
  }
  .forum-column-topics::before { content: "Темы: "; margin-right: 4px; font-weight: 700; }
  .forum-column-replies::before { content: "Сообщения: "; margin-right: 4px; font-weight: 700; }
  .forum-column-lastpost { padding-top: 10px !important; border-top: 1px solid var(--hairline) !important; }
  .forum-lastpost-title a, .forum-item-desc { overflow-wrap: anywhere; }
  .forum-statistics .forum-info-box-inner,
  .forum-statistics-allusers, .forum-statistics-users,
  .forum-statistics-topics, .forum-statistics-replies {
    display: block; width: 100%; max-width: 100%;
    float: none !important; text-align: left !important;
  }
  .forum-statistics span {
    position: static !important; display: inline !important; float: none !important;
    margin: 0 !important; padding: 0 !important;
  }
}

/* ---------- 25d. Custom exhibitions archive ---------- */
.z-page-block--type-events_archive.z-page-hero,
.z-page-block--type-events_detail.z-page-hero {
  position: relative;
  overflow: hidden;
  min-height: 360px;
  padding: clamp(28px, 4vw, 58px);
  background: linear-gradient(135deg, var(--brand-800) 0%, var(--brand-600) 56%, #d7e4ea 100%);
}

.z-page-block--type-events_archive.z-page-hero::before,
.z-page-block--type-events_detail.z-page-hero::before {
  content: "EVENTS";
  position: absolute;
  right: 28px;
  bottom: -22px;
  color: rgba(255, 255, 255, .14);
  font-size: 88px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
}

.z-page-block--type-events_archive.z-page-hero .z-page-hero__copy,
.z-page-block--type-events_detail.z-page-hero .z-page-hero__copy {
  position: relative;
  z-index: 1;
  min-width: 0;
  color: #fff;
}

.z-page-block--type-events_archive.z-page-hero h1,
.z-page-block--type-events_archive.z-page-hero p,
.z-page-block--type-events_detail.z-page-hero h1,
.z-page-block--type-events_detail.z-page-hero p {
  color: #fff;
}

.z-page-block--type-events_archive.z-page-hero .z-page-hero__media,
.z-page-block--type-events_detail.z-page-hero .z-page-hero__media {
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(255, 255, 255, .55);
  box-shadow: 0 28px 70px rgba(10, 30, 50, .24);
}

.z-page-block--type-events_archive.z-page-hero .z-page-hero__media img,
.z-page-block--type-events_detail.z-page-hero .z-page-hero__media img {
  object-fit: contain;
}

.z-page-block--type-events_archive.z-page-block--text .z-editor,
.z-page-block--type-events_detail.z-page-block--text .z-editor {
  max-width: 980px;
  font-size: var(--fs-18);
}

.z-events-archive__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.z-event-card {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  min-height: 190px;
  overflow: hidden;
  border: 1px solid rgba(29, 79, 122, .13);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-event-card__media {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: linear-gradient(180deg, #fff, var(--surface-2));
}

.z-event-card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.z-event-card__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px;
}

.z-event-card__body h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.22;
}

.z-event-card__body p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.z-event-card__links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
}

.z-event-card__links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid rgba(29, 79, 122, .18);
  border-radius: var(--r-xs);
  background: var(--surface-2);
  color: var(--brand);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.z-event-card__links a:hover {
  border-color: rgba(29, 79, 122, .34);
  background: #fff;
}

.z-page-block--type-events_detail.z-block--gallery .z-gallery {
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

.z-page-block--type-events_detail.z-block--gallery .z-gallery__item {
  aspect-ratio: 4 / 3;
  border-radius: var(--r-md);
  background: #fff;
}

.z-page-block--type-events_detail.z-block--gallery .z-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 980px) {
  .z-events-archive__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-events_archive.z-page-hero,
  .z-page-block--type-events_detail.z-page-hero {
    min-height: 0;
    padding: 24px;
  }

  .z-page-block--type-events_archive.z-page-hero::before,
  .z-page-block--type-events_detail.z-page-hero::before {
    font-size: 48px;
  }

  .z-event-card {
    grid-template-columns: 1fr;
  }

  .z-event-card__media {
    aspect-ratio: 16 / 9;
  }
}

/* ---------- 25e. Custom company utility pages ---------- */
.z-page-block--type-delivery.z-page-hero,
.z-page-block--type-legal_offer.z-page-hero,
.z-page-block--type-details.z-page-hero,
.z-page-block--type-jobs.z-page-hero {
  padding: clamp(28px, 4vw, 56px);
  border: 0;
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, var(--brand-800) 0%, var(--brand-600) 58%, #e8f0f4 100%);
  overflow: hidden;
}

.z-page-block--type-delivery.z-page-hero .z-page-hero__copy,
.z-page-block--type-legal_offer.z-page-hero .z-page-hero__copy,
.z-page-block--type-details.z-page-hero .z-page-hero__copy,
.z-page-block--type-jobs.z-page-hero .z-page-hero__copy {
  min-width: 0;
  color: #fff;
}

.z-page-block--type-delivery.z-page-hero h1,
.z-page-block--type-delivery.z-page-hero p,
.z-page-block--type-legal_offer.z-page-hero h1,
.z-page-block--type-legal_offer.z-page-hero p,
.z-page-block--type-details.z-page-hero h1,
.z-page-block--type-details.z-page-hero p,
.z-page-block--type-jobs.z-page-hero h1,
.z-page-block--type-jobs.z-page-hero p {
  color: #fff;
}

.z-page-block--type-delivery.z-page-block--material-cards .z-card-grid,
.z-page-block--type-details.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.z-page-block--type-delivery.z-page-block--material-cards .z-card__image {
  padding: 18px;
  background: linear-gradient(180deg, #fff, var(--surface-2));
}

.z-page-block--type-delivery.z-page-block--material-cards .z-card__image img {
  object-fit: contain;
}

.z-page-block--type-legal_offer.z-block--text .z-editor,
.z-page-block--type-legal_offer.z-page-block--text .z-editor {
  max-width: 980px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(29, 79, 122, .12);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-legal_offer.z-block--text .z-editor p,
.z-page-block--type-legal_offer.z-page-block--text .z-editor p {
  margin-bottom: 12px;
  font-size: 15px;
  line-height: 1.72;
}

.z-page-block--type-details.z-block--table .table-wrap {
  max-width: 1040px;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-details.z-block--table table th:first-child,
.z-page-block--type-details.z-block--table table td:first-child {
  width: 30%;
  color: var(--brand);
  font-weight: 800;
}

.z-page-block--type-jobs.z-vacancies .z-vacancies__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.z-page-block--type-jobs.z-vacancies .z-vacancy {
  margin: 0;
  padding: 22px;
  border: 1px solid rgba(29, 79, 122, .13);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-jobs.z-vacancies .z-vacancy h2 {
  margin-top: 0;
  color: var(--brand);
  font-size: 22px;
}

.z-page-block--type-jobs.z-vacancies .z-vacancy p {
  white-space: pre-line;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

@media (max-width: 980px) {
  .z-page-block--type-delivery.z-page-block--material-cards .z-card-grid,
  .z-page-block--type-details.z-page-block--material-cards .z-card-grid,
  .z-page-block--type-jobs.z-vacancies .z-vacancies__list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-details.z-block--table .z-table-wrap,
  .z-page-block--type-details.z-block--table .table-wrap {
    overflow: visible;
  }

  .z-page-block--type-details.z-block--table table,
  .z-page-block--type-details.z-block--table tbody,
  .z-page-block--type-details.z-block--table tr,
  .z-page-block--type-details.z-block--table th,
  .z-page-block--type-details.z-block--table td {
    display: block;
    width: 100% !important;
  }

  .z-page-block--type-details.z-block--table thead {
    display: none;
  }

  .z-page-block--type-details.z-block--table tr {
    padding: 14px 0;
    border-bottom: 1px solid var(--hairline);
  }

  .z-page-block--type-details.z-block--table th,
  .z-page-block--type-details.z-block--table td {
    padding: 0;
    border: 0;
  }

  .z-page-block--type-details.z-block--table th {
    margin-bottom: 6px;
    font-size: var(--fs-13);
  }
}

@media (max-width: 640px) {
  .z-page-block--type-details.z-block--table .z-table-wrap table {
    min-width: 0;
  }
}

.z-page-block--type-jobs.z-vacancies .z-vacancies__list {
  grid-template-columns: 1fr;
  max-width: 980px;
  margin-inline: auto;
}

.z-page-block--type-jobs.z-vacancies .z-vacancy {
  padding: clamp(22px, 3vw, 34px);
}

.z-page-block--type-jobs.z-vacancies .z-vacancy h2 {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--hairline);
}

.z-vacancy__sections {
  display: grid;
  gap: 20px;
  margin-top: 18px;
}

.z-vacancy__section {
  display: grid;
  gap: 10px;
}

.z-vacancy__section h3 {
  margin: 0;
  color: var(--ink);
  font-size: 17px;
}

.z-vacancy__section p {
  margin: 0;
  color: var(--text);
  font-size: 15px;
  line-height: 1.72;
  white-space: normal;
}

.z-vacancy__section ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 20px;
}

.z-vacancy__section li {
  color: var(--text);
  font-size: 15px;
  line-height: 1.62;
}

.z-page-block--type-contacts.z-contact-info {
  padding-top: clamp(28px, 4vw, 52px);
}

.z-page-block--type-contacts .z-contact-info__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.z-page-block--type-contacts .z-contact-info__item {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 112px;
  padding: 18px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: linear-gradient(180deg, #fff, var(--surface-2));
}

.z-page-block--type-contacts .z-contact-info__item span {
  color: var(--text-soft);
  font-size: var(--fs-13);
  font-weight: 700;
  line-height: 1.35;
}

.z-page-block--type-contacts .z-contact-info__item strong,
.z-page-block--type-contacts .z-contact-info__item a {
  color: var(--ink);
  font-size: var(--fs-16);
  font-weight: 700;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.z-page-block--type-contacts .z-contact-info__phones {
  display: grid;
  gap: 5px;
}

.z-page-block--type-contacts.z-team-block .team-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.z-page-block--type-contacts.z-team-block .team-card {
  border-radius: var(--r-md);
}

.z-page-block--type-contacts.z-team-block .team-card img {
  aspect-ratio: 4 / 4.35;
}

.z-page-block--type-contacts.z-contact-route .z-contact-route__layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(22px, 4vw, 44px);
  align-items: start;
}

.z-page-block--type-contacts .z-contact-route__media {
  position: sticky;
  top: 108px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: var(--surface-2);
}

.z-page-block--type-contacts .z-contact-route__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.z-page-block--type-contacts .z-contact-route__body {
  display: grid;
  gap: 14px;
}

.z-page-block--type-contacts .z-contact-route__item {
  padding: 20px 22px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: var(--surface);
}

.z-page-block--type-contacts .z-contact-route__item h3 {
  margin: 0 0 8px;
  color: var(--ink);
  font-size: var(--fs-18);
}

.z-page-block--type-contacts .z-contact-route__item p {
  margin: 0;
  color: var(--text);
  font-size: var(--fs-15);
  line-height: 1.72;
}

.z-page-block--type-contacts .z-contact-route__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.z-page-block--type-certificates.z-certificates .z-certificates__sections {
  display: grid;
  gap: clamp(30px, 5vw, 56px);
}

.z-page-block--type-certificates .z-certificates__section {
  display: grid;
  gap: 18px;
}

.z-page-block--type-certificates .z-certificates__section h3 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(22px, 2.1vw, 30px);
  line-height: 1.2;
}

.z-page-block--type-certificates .z-certificates__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 18px;
}

.z-page-block--type-certificates .z-certificate-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  min-height: 100%;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
  transition: transform var(--motion-fast), box-shadow var(--motion-fast), border-color var(--motion-fast);
}

.z-page-block--type-certificates .z-certificate-card:hover {
  border-color: rgba(29, 79, 122, 0.32);
  box-shadow: var(--shadow-md);
}

.z-page-block--type-certificates .z-certificate-card__media {
  display: grid;
  place-items: center;
  aspect-ratio: 3 / 4;
  padding: 12px;
  background: linear-gradient(180deg, #f8fafc, #eef3f7);
}

.z-page-block--type-certificates .z-certificate-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(17, 35, 54, 0.12);
}

.z-page-block--type-certificates .z-certificate-card__title {
  display: block;
  padding: 13px 14px 15px;
  color: var(--ink);
  font-size: var(--fs-14);
  font-weight: 700;
  line-height: 1.38;
}

.z-page-block--type-company_root.z-about-strips {
  max-width: none;
  padding-inline: 0;
}

.z-page-block--type-company_root .z-about-strips__grid {
  display: grid;
  gap: 1px;
}

.z-page-block--type-company_root .z-about-strip {
  min-height: clamp(180px, 24vw, 300px);
  display: grid;
  align-items: end;
  background: linear-gradient(90deg, rgba(10, 31, 51, 0.82), rgba(10, 31, 51, 0.28)), var(--strip-image) center/cover no-repeat;
}

.z-page-block--type-company_root .z-about-strip__content {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(28px, 5vw, 56px) 0;
  color: #fff;
}

.z-page-block--type-company_root .z-about-strip h2 {
  max-width: 720px;
  margin: 0 0 8px;
  color: #fff;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.08;
}

.z-page-block--type-company_root .z-about-strip p {
  max-width: 680px;
  margin: 0;
  color: rgba(255,255,255,.86);
  font-size: var(--fs-17);
  line-height: 1.6;
}

.z-page-block--type-company_root .z-about-directions__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.z-page-block--type-company_root .z-about-directions__card,
.z-page-block--type-company_root .z-about-principles__card {
  display: grid;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
  transition: transform var(--motion-fast), box-shadow var(--motion-fast), border-color var(--motion-fast);
}

.z-page-block--type-company_root .z-about-directions__card:hover,
.z-page-block--type-company_root .z-about-principles__card:hover {
  border-color: rgba(29, 79, 122, 0.3);
  box-shadow: var(--shadow-md);
}

.z-page-block--type-company_root .z-about-directions__media,
.z-page-block--type-company_root .z-about-principles__media {
  display: block;
  background: var(--surface-2);
}

.z-page-block--type-company_root .z-about-directions__media img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.z-page-block--type-company_root .z-about-directions__body,
.z-page-block--type-company_root .z-about-principles__body {
  display: grid;
  gap: 8px;
  padding: 18px;
}

.z-page-block--type-company_root .z-about-directions__body strong,
.z-page-block--type-company_root .z-about-principles__body strong {
  color: var(--ink);
  font-size: var(--fs-18);
  line-height: 1.25;
}

.z-page-block--type-company_root .z-about-directions__body span,
.z-page-block--type-company_root .z-about-principles__body span {
  color: var(--text-soft);
  font-size: var(--fs-15);
  line-height: 1.6;
}

.z-page-block--type-company_root .z-about-principles__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.z-page-block--type-company_root .z-about-principles__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  padding: 18px;
}

@media (max-width: 900px) {
  .z-page-block--type-contacts .z-contact-info__grid,
  .z-page-block--type-contacts.z-team-block .team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .z-page-block--type-contacts.z-contact-route .z-contact-route__layout {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-contacts .z-contact-route__media {
    position: static;
  }

  .z-page-block--type-company_root .z-about-directions__grid,
  .z-page-block--type-company_root .z-about-principles__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .z-page-block--type-contacts .z-contact-info__grid,
  .z-page-block--type-contacts.z-team-block .team-grid {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-certificates .z-certificates__grid {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  }

  .z-page-block--type-company_root .z-about-directions__grid,
  .z-page-block--type-company_root .z-about-principles__grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Scoped custom page: DEMO mode ---------- */
.z-page-block--type-demo_page.z-page-hero {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
  align-items: stretch;
  overflow: hidden;
  padding: 34px;
  border: 1px solid rgba(197, 210, 224, .74);
  border-radius: var(--r-lg);
  background:
    linear-gradient(135deg, rgba(14, 47, 75, .92), rgba(29, 79, 122, .78)),
    var(--surface);
  box-shadow: var(--shadow-sm);
}

.z-page-block--type-demo_page.z-page-hero h1,
.z-page-block--type-demo_page.z-page-hero p {
  color: #fff;
}

.z-page-block--type-demo_page.z-page-hero h1 {
  max-width: 760px;
}

.z-page-block--type-demo_page.z-page-hero p {
  max-width: 680px;
  color: rgba(255, 255, 255, .84);
}

.z-page-block--type-demo_page.z-page-hero .z-page-hero__media {
  align-self: center;
  overflow: hidden;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, .12);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2);
}

.z-page-block--type-demo_page.z-page-hero .z-page-hero__media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.z-page-block--type-demo_page.z-block--text .z-editor {
  max-width: 900px;
}

.z-demo-modes__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.z-demo-mode {
  display: grid;
  gap: 8px;
  min-height: 158px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: linear-gradient(180deg, #fff, var(--surface-2));
  box-shadow: var(--shadow-xs);
}

.z-demo-mode span {
  width: max-content;
  padding: 4px 9px;
  border-radius: var(--r-pill);
  color: var(--brand-700);
  background: var(--brand-100);
  font-size: var(--fs-12);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.z-demo-mode strong {
  color: var(--ink);
  font-size: var(--fs-20);
  line-height: 1.25;
}

.z-demo-mode em {
  color: var(--text-soft);
  font-style: normal;
  line-height: 1.55;
}

a.z-demo-mode:hover {
  border-color: var(--brand-200);
  box-shadow: 0 16px 36px rgba(31, 55, 78, .09);
}

.z-demo-steps__list {
  display: grid;
  gap: 18px;
}

.z-demo-step {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) minmax(260px, 45%);
  gap: 18px;
  align-items: start;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .72);
  box-shadow: var(--shadow-xs);
}

.z-demo-step__index {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #fff;
  background: var(--brand-800);
  font-weight: 800;
}

.z-demo-step h3 {
  margin: 2px 0 10px;
  color: var(--ink);
  font-size: var(--fs-22);
}

.z-demo-step__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.z-demo-step__links a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 12px;
  border-radius: var(--r-sm);
  color: var(--brand-700);
  background: var(--brand-100);
  font-weight: 700;
  font-size: var(--fs-14);
}

.z-demo-step__media {
  overflow: hidden;
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(221, 230, 238, .75);
}

.z-demo-step__media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: contain;
  padding: 8px;
  background: #fff;
}

.z-demo-step__media span {
  display: block;
  padding: 0 12px 12px;
  color: var(--muted);
  font-size: var(--fs-13);
  line-height: 1.45;
}

.z-page-block--type-demo_page.z-block--documents .z-doc-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.z-page-block--type-demo_page.z-block--cta {
  align-items: center;
  border: 0;
  background:
    linear-gradient(135deg, rgba(14, 47, 75, .96), rgba(29, 79, 122, .82));
}

.z-page-block--type-demo_page.z-block--cta h2,
.z-page-block--type-demo_page.z-block--cta p {
  color: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-demo_page.z-page-hero,
  .z-demo-step {
    grid-template-columns: 1fr;
  }

  .z-demo-modes__grid,
  .z-page-block--type-demo_page.z-block--documents .z-doc-list {
    grid-template-columns: 1fr;
  }
}

.z-page-block--type-webinar_list.z-page-hero {
  grid-template-columns: minmax(0, .9fr) minmax(320px, .72fr);
  align-items: center;
  gap: clamp(22px, 4vw, 48px);
  overflow: hidden;
  border: 1px solid rgba(221, 230, 238, .82);
  background:
    radial-gradient(circle at 12% 8%, rgba(255, 255, 255, .92), rgba(255, 255, 255, 0) 34%),
    linear-gradient(135deg, rgba(235, 244, 250, .92), rgba(255, 255, 255, .98));
}

.z-page-block--type-webinar_list.z-page-hero h1 {
  max-width: 760px;
}

.z-page-block--type-webinar_list.z-page-hero .z-page-hero__media {
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-webinar_list.z-page-hero .z-page-hero__media img {
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

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

.z-webinar-card {
  min-height: 100%;
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border: 1px solid rgba(221, 230, 238, .9);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-webinar-card__media {
  display: block;
  overflow: hidden;
  background: var(--brand-100);
}

.z-webinar-card__media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  display: block;
  object-fit: cover;
  transition: transform .25s ease;
}

.z-webinar-card:hover .z-webinar-card__media img {
  
}

.z-webinar-card__body {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 18px;
}

.z-webinar-card__date {
  margin: 0;
  color: var(--brand-700);
  font-size: var(--fs-14);
  font-weight: 800;
}

.z-webinar-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: var(--fs-20);
  line-height: 1.25;
}

.z-webinar-card h3 a {
  color: inherit;
}

.z-webinar-card__body p:not(.z-webinar-card__date) {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.55;
}

.z-webinar-card__more {
  align-self: end;
  width: max-content;
  margin-top: 4px;
  color: var(--brand-700);
  font-weight: 800;
}

.z-newsletter {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
  gap: clamp(18px, 3vw, 34px);
  align-items: center;
  padding: clamp(24px, 4vw, 38px);
  border: 1px solid rgba(221, 230, 238, .86);
  border-radius: var(--r-lg);
  background:
    linear-gradient(135deg, rgba(14, 47, 75, .97), rgba(26, 86, 128, .88));
  box-shadow: var(--shadow-sm);
}

.z-newsletter h2,
.z-newsletter p,
.z-newsletter small {
  color: #fff;
}

.z-newsletter h2 {
  margin: 0 0 8px;
}

.z-newsletter p {
  max-width: 680px;
  margin: 0;
  opacity: .88;
}

.z-newsletter__form {
  display: grid;
  gap: 10px;
}

.z-newsletter__form input {
  min-height: 48px;
  width: 100%;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: var(--r-sm);
  padding: 0 14px;
  background: rgba(255, 255, 255, .95);
  color: var(--ink);
  font: inherit;
}

.z-newsletter__form input:focus {
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .24);
  outline: none;
}

.z-newsletter__form small {
  font-size: var(--fs-12);
  line-height: 1.45;
  opacity: .82;
}

.z-newsletter__form small a {
  color: #fff;
  text-decoration: underline;
}

.z-webinar-archive__list {
  display: grid;
  gap: 10px;
}

.z-webinar-archive__item {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) max-content;
  gap: 16px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid rgba(221, 230, 238, .9);
  border-radius: var(--r-sm);
  background: #fff;
}

.z-webinar-archive__item time {
  color: var(--muted);
  font-weight: 700;
  font-size: var(--fs-14);
}

.z-webinar-archive__item strong {
  color: var(--ink);
  line-height: 1.35;
}

.z-webinar-archive__item a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: var(--r-sm);
  color: var(--brand-700);
  background: var(--brand-100);
  font-weight: 800;
  font-size: var(--fs-14);
}

.z-page-block--type-webinar_list.z-page-block--article-cards .z-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 980px) {
  .z-page-block--type-webinar_list.z-page-hero,
  .z-newsletter {
    grid-template-columns: 1fr;
  }

  .z-webinars__grid,
  .z-page-block--type-webinar_list.z-page-block--article-cards .z-card-grid {
    grid-template-columns: 1fr;
  }

  .z-webinar-archive__item {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

.z-page-block--type-webinar_detail.z-page-hero {
  grid-template-columns: minmax(0, 1fr) 220px;
  align-items: center;
  gap: clamp(22px, 4vw, 44px);
  border: 1px solid rgba(221, 230, 238, .88);
  background:
    linear-gradient(135deg, rgba(247, 251, 253, .96), #fff);
}

.z-page-block--type-webinar_detail.z-page-hero .z-page-hero__media {
  justify-self: end;
  width: min(220px, 100%);
  border-radius: 50%;
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-webinar_detail.z-page-hero .z-page-hero__media img {
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
}

.z-page-block--type-webinar_detail.z-team-block .team-grid {
  grid-template-columns: minmax(0, 760px);
}

.z-page-block--type-webinar_detail.z-team-block .team-card {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  align-items: center;
}

.z-page-block--type-webinar_detail.z-team-block .team-card img {
  width: 132px;
  max-width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.z-page-block--type-webinar_detail.z-block--article-cards .z-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 980px) {
  .z-page-block--type-webinar_detail.z-page-hero,
  .z-page-block--type-webinar_detail.z-team-block .team-card,
  .z-page-block--type-webinar_detail.z-block--article-cards .z-card-grid {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-webinar_detail.z-page-hero .z-page-hero__media {
    justify-self: start;
    width: 168px;
  }

  .z-page-block--type-webinar_detail.z-team-block .team-card img {
    width: min(180px, 100%);
    justify-self: start;
  }
}

.video-lessons-hero p {
  max-width: 780px;
  color: var(--text-soft);
  font-size: var(--fs-18);
  line-height: 1.55;
}

.video-lessons-intro {
  display: flex;
  justify-content: space-between;
  gap: 22px;
  align-items: end;
  border-top: 1px solid var(--hairline);
}

.video-lessons-intro h2 {
  margin: 0 0 8px;
}

.video-lessons-intro p {
  max-width: 760px;
  margin: 0;
  color: var(--text-soft);
}

.video-lessons-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.video-lessons-grid--related {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.video-lesson-card {
  min-height: 100%;
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border: 1px solid rgba(221, 230, 238, .86);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.video-lesson-card__media {
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--brand-100);
}

.video-lesson-card__media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  display: block;
  object-fit: cover;
  transition: transform .25s ease;
}

.video-lesson-card__media span {
  position: absolute;
  left: 14px;
  bottom: 14px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(14, 47, 75, .92);
  box-shadow: 0 10px 24px rgba(14, 47, 75, .22);
}

.video-lesson-card__media span::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 12px;
  border-left: 13px solid #fff;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
}

.video-lesson-card:hover .video-lesson-card__media img {
  
}

.video-lesson-card__body {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 16px;
}

.video-lesson-card h3 {
  margin: 0;
  font-size: var(--fs-18);
  line-height: 1.28;
}

.video-lesson-card h3 a {
  color: var(--ink);
}

.video-lesson-card p {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.5;
}

.video-detail-hero p {
  max-width: 820px;
  color: var(--text-soft);
  font-size: var(--fs-18);
  line-height: 1.55;
}

.video-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(360px, .75fr);
  gap: clamp(24px, 4vw, 44px);
  align-items: start;
}

.video-detail-layout__media {
  position: sticky;
  top: 96px;
}

.video-detail-layout__copy {
  display: grid;
  gap: 14px;
}

.video-detail-layout__copy p {
  margin: 0;
  color: var(--text);
  line-height: 1.65;
}

.video-detail-layout__lead {
  color: var(--ink) !important;
  font-size: var(--fs-18);
  font-weight: 650;
}

@media (max-width: 980px) {
  .video-lessons-intro {
    display: grid;
    align-items: start;
  }

  .video-lessons-grid,
  .video-lessons-grid--related,
  .video-detail-layout {
    grid-template-columns: 1fr;
  }

  .video-detail-layout__media {
    position: static;
  }
}

/* ---------- Courses and seminars custom page ---------- */
.z-page-block--type-courses_page.z-page-hero {
  grid-template-columns: minmax(0, .78fr) minmax(320px, .62fr);
  align-items: stretch;
}

.z-page-block--type-courses_page.z-page-hero .z-page-hero__copy {
  align-self: center;
}

.z-page-block--type-courses_page.z-page-hero .z-page-hero__media img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
}

.z-page-block--type-courses_page.z-block--text .z-editor {
  max-width: 900px;
  font-size: var(--fs-18);
}

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

.z-courses-program {
  display: flex;
  flex-direction: column;
  min-height: 310px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, rgba(255, 255, 255, .95), rgba(247, 250, 253, .95));
  box-shadow: var(--shadow-xs);
}

.z-courses-program h3 {
  margin: 0 0 12px;
  color: var(--ink);
  font-size: var(--fs-24);
  line-height: 1.16;
}

.z-courses-program p {
  margin: 0;
  color: var(--text);
  line-height: 1.6;
}

.z-courses-program footer {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 18px;
}

.z-courses-program footer strong {
  color: var(--brand-700);
  font-size: var(--fs-18);
}

.z-courses-program footer a {
  color: var(--brand-700);
  font-weight: 800;
}

.z-page-block--type-courses_page.z-media-text {
  gap: 34px;
  align-items: center;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.z-page-block--type-courses_page.z-media-text .z-media-text__media {
  border-radius: var(--r-md);
}

.z-page-block--type-courses_page.z-media-text .z-media-text__media img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.z-page-block--type-courses_page.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.z-page-block--type-courses_page.z-page-block--material-cards .z-card {
  border-radius: var(--r-md);
  background: var(--surface-2);
}

.z-page-block--type-courses_page.z-team-block .team-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.z-page-block--type-courses_page.z-team-block .team-card {
  overflow: hidden;
  border-radius: var(--r-lg);
}

.z-page-block--type-courses_page.z-team-block .team-card img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.z-courses-lead {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(300px, .58fr);
  gap: 24px;
  align-items: center;
  padding: 28px;
  border: 0;
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, rgba(14, 47, 75, .96), rgba(29, 79, 122, .84));
  box-shadow: var(--shadow-sm);
}

.z-courses-lead h2,
.z-courses-lead p {
  color: #fff;
}

.z-courses-lead h2 {
  margin: 0;
}

.z-courses-lead p {
  margin: 10px 0 0;
  opacity: .86;
}

.z-courses-lead__form {
  display: grid;
  gap: 10px;
}

.z-courses-lead__form input {
  width: 100%;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: var(--r-md);
  color: #fff;
  background: rgba(255, 255, 255, .12);
}

.z-courses-lead__form input::placeholder {
  color: rgba(255, 255, 255, .78);
}

.z-courses-lead__form .button {
  width: 100%;
  justify-content: center;
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-courses_page.z-page-hero,
  .z-courses-lead,
  .z-page-block--type-courses_page.z-media-text {
    grid-template-columns: 1fr;
  }

  .z-courses-programs__grid,
  .z-page-block--type-courses_page.z-page-block--material-cards .z-card-grid,
  .z-page-block--type-courses_page.z-team-block .team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .z-courses-programs__grid,
  .z-page-block--type-courses_page.z-page-block--material-cards .z-card-grid,
  .z-page-block--type-courses_page.z-team-block .team-grid {
    grid-template-columns: 1fr;
  }

  .z-courses-program,
  .z-courses-lead,
  .z-page-block--type-courses_page.z-media-text {
    padding: 18px;
  }
}

/* ---------- Service maintenance custom page ---------- */
.z-page-block--type-service_maintenance.z-page-hero {
  grid-template-columns: minmax(0, 1fr);
  padding-bottom: 28px;
}

.z-page-block--type-service_maintenance.z-page-hero .z-page-hero__copy {
  max-width: 920px;
}

.z-page-block--type-service_maintenance.z-block--text .z-editor {
  max-width: 960px;
  font-size: var(--fs-17);
}

.z-page-block--type-service_maintenance.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.z-page-block--type-service_maintenance.z-page-block--material-cards .z-card {
  min-height: 190px;
  background: linear-gradient(180deg, #fff, var(--surface-2));
}

.z-page-block--type-service_maintenance.z-page-block--material-cards .z-card__image {
  display: none;
}

.z-page-block--type-service_maintenance.z-page-block--documents .z-doc-list {
  grid-template-columns: minmax(0, 1fr);
  max-width: 760px;
}

.z-page-block--type-service_maintenance.z-page-block--documents .z-doc {
  position: relative;
  padding: 20px 22px 20px 64px;
}

.z-page-block--type-service_maintenance.z-page-block--documents .z-doc::before {
  content: "DOC";
  position: absolute;
  top: 20px;
  left: 18px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  color: #fff;
  background: var(--brand-700);
  font-size: 10px;
  font-weight: 900;
}

.z-page-block--type-service_maintenance.z-contact-info .z-contact-info__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.z-page-block--type-service_maintenance.z-contact-info .z-contact-info__item {
  min-height: 150px;
}

.z-page-block--type-service_maintenance.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .96), rgba(29, 79, 122, .84));
}

.z-page-block--type-service_maintenance.z-block--cta h2,
.z-page-block--type-service_maintenance.z-block--cta p {
  color: #fff;
}

.z-page-block--type-service_maintenance.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-service_maintenance.z-page-block--material-cards .z-card-grid,
  .z-page-block--type-service_maintenance.z-contact-info .z-contact-info__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .z-page-block--type-service_maintenance.z-page-block--material-cards .z-card-grid,
  .z-page-block--type-service_maintenance.z-contact-info .z-contact-info__grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Support root custom page ---------- */
.z-page-block--type-support_root.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(243, 248, 252, .96)),
    radial-gradient(circle at 90% 10%, rgba(28, 106, 160, .13), transparent 32%);
}

.z-page-block--type-support_root.z-page-hero .z-page-hero__copy {
  max-width: 840px;
}

.z-page-block--type-support_root.z-page-hero .z-page-hero__copy h1 {
  max-width: 780px;
}

.z-page-block--type-support_root.z-page-hero .z-page-hero__copy p {
  max-width: 760px;
}

.z-page-block--type-support_root.z-block--text {
  max-width: 980px;
}

.z-page-block--type-support_root.z-block--text h2 {
  max-width: 720px;
}

.z-page-block--type-support_root.z-page-block--child-page-cards .z-block__head,
.z-page-block--type-support_root.z-page-block--material-cards .z-block__head {
  display: grid;
  grid-template-columns: minmax(260px, .42fr) minmax(0, .58fr);
  gap: 24px;
  align-items: end;
}

.z-page-block--type-support_root.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.z-page-block--type-support_root.z-page-block--child-page-cards .z-card {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  min-height: 190px;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .14);
  background: #fff;
}

.z-page-block--type-support_root.z-page-block--child-page-cards .z-card__image {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  min-height: 190px;
  aspect-ratio: auto;
  border-radius: 0;
  background: var(--surface-2);
}

.z-page-block--type-support_root.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-page-block--type-support_root.z-page-block--child-page-cards .z-card__body {
  justify-content: center;
  padding: 22px 22px 20px;
}

.z-page-block--type-support_root.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-20);
  line-height: 1.25;
}

.z-page-block--type-support_root.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.55;
}

.z-page-block--type-support_root.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.z-page-block--type-support_root.z-page-block--material-cards .z-card {
  min-height: 176px;
  border-style: solid;
  background: linear-gradient(180deg, #fff, var(--surface));
}

.z-page-block--type-support_root.z-page-block--material-cards .z-card__image {
  display: none;
}

.z-page-block--type-support_root.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_root.z-block--cta h2,
.z-page-block--type-support_root.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_root.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-support_root.z-page-block--child-page-cards .z-block__head,
  .z-page-block--type-support_root.z-page-block--material-cards .z-block__head {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-support_root.z-page-block--child-page-cards .z-card-grid,
  .z-page-block--type-support_root.z-page-block--material-cards .z-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-support_root.z-page-block--child-page-cards .z-card {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-support_root.z-page-block--child-page-cards .z-card__image {
    min-height: 180px;
    height: 180px;
  }
}

/* ---------- Vibrometry support custom page ---------- */
.z-page-block--type-support_category_vibrometry.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(244, 248, 251, .96)),
    radial-gradient(circle at 82% 12%, rgba(28, 106, 160, .12), transparent 34%);
}

.z-page-block--type-support_category_vibrometry.z-page-hero .z-page-hero__copy {
  max-width: 880px;
}

.z-page-block--type-support_category_vibrometry.z-block--text {
  max-width: 980px;
}

.z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-block__head {
  display: grid;
  grid-template-columns: minmax(280px, .38fr) minmax(0, .62fr);
  gap: 26px;
  align-items: end;
}

.z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card {
  display: grid;
  grid-template-columns: minmax(190px, .42fr) minmax(0, .58fr);
  min-height: 220px;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .14);
  background: #fff;
}

.z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card__image {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  min-height: 220px;
  aspect-ratio: auto;
  border-radius: 0;
  background: var(--surface-2);
}

.z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card__body {
  justify-content: center;
  padding: 24px 24px 22px;
}

.z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-20);
  line-height: 1.25;
}

.z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.56;
}

.z-page-block--type-support_category_vibrometry.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_vibrometry.z-block--cta h2,
.z-page-block--type-support_category_vibrometry.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_vibrometry.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-block__head,
  .z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-support_category_vibrometry.z-page-block--child-page-cards .z-card__image {
    min-height: 190px;
    height: 190px;
  }
}

/* ---------- Vibration tests support custom page ---------- */
.z-page-block--type-support_category_vibration_tests.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(244, 248, 251, .96)),
    radial-gradient(circle at 82% 12%, rgba(28, 106, 160, .12), transparent 34%);
}

.z-page-block--type-support_category_vibration_tests.z-page-hero .z-page-hero__copy {
  max-width: 880px;
}

.z-page-block--type-support_category_vibration_tests.z-block--text {
  max-width: 980px;
}

.z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-block__head {
  display: grid;
  grid-template-columns: minmax(280px, .38fr) minmax(0, .62fr);
  gap: 26px;
  align-items: end;
}

.z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card {
  display: grid;
  grid-template-columns: minmax(190px, .42fr) minmax(0, .58fr);
  min-height: 220px;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .14);
  background: #fff;
}

.z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card__image {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  min-height: 220px;
  aspect-ratio: auto;
  border-radius: 0;
  background: var(--surface-2);
}

.z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card__body {
  justify-content: center;
  padding: 24px 24px 22px;
}

.z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-20);
  line-height: 1.25;
}

.z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.56;
}

.z-page-block--type-support_category_vibration_tests.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_vibration_tests.z-block--cta h2,
.z-page-block--type-support_category_vibration_tests.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_vibration_tests.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-block__head,
  .z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-support_category_vibration_tests.z-page-block--child-page-cards .z-card__image {
    min-height: 190px;
    height: 190px;
  }
}

/* ---------- ZETSENSOR support custom page ---------- */
.z-page-block--type-support_category_zetsensor.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(244, 248, 251, .96)),
    radial-gradient(circle at 86% 8%, rgba(28, 106, 160, .14), transparent 36%);
}

.z-page-block--type-support_category_zetsensor.z-page-hero .z-page-hero__copy {
  max-width: 900px;
}

.z-page-block--type-support_category_zetsensor.z-block--text {
  max-width: 980px;
}

.z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-block__head {
  display: grid;
  grid-template-columns: minmax(280px, .36fr) minmax(0, .64fr);
  gap: 26px;
  align-items: end;
}

.z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card {
  display: grid;
  grid-template-columns: minmax(190px, .42fr) minmax(0, .58fr);
  min-height: 224px;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .14);
  background: #fff;
}

.z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card__image {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  min-height: 224px;
  aspect-ratio: auto;
  border-radius: 0;
  background: var(--surface-2);
}

.z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card__body {
  justify-content: center;
  padding: 24px 24px 22px;
}

.z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-20);
  line-height: 1.25;
}

.z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.56;
}

.z-page-block--type-support_category_zetsensor.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_zetsensor.z-block--cta h2,
.z-page-block--type-support_category_zetsensor.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_zetsensor.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-block__head,
  .z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-support_category_zetsensor.z-page-block--child-page-cards .z-card__image {
    min-height: 190px;
    height: 190px;
  }
}

/* ---------- Tenzometry support custom page ---------- */
.z-page-block--type-support_category_tenzometry.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(244, 248, 251, .96)),
    radial-gradient(circle at 84% 10%, rgba(28, 106, 160, .14), transparent 36%);
}

.z-page-block--type-support_category_tenzometry.z-page-hero .z-page-hero__copy {
  max-width: 900px;
}

.z-page-block--type-support_category_tenzometry.z-block--text {
  max-width: 980px;
}

.z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-block__head {
  display: grid;
  grid-template-columns: minmax(280px, .36fr) minmax(0, .64fr);
  gap: 26px;
  align-items: end;
}

.z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card {
  display: grid;
  grid-template-columns: minmax(190px, .42fr) minmax(0, .58fr);
  min-height: 224px;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .14);
  background: #fff;
}

.z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card__image {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  min-height: 224px;
  aspect-ratio: auto;
  border-radius: 0;
  background: var(--surface-2);
}

.z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card__body {
  justify-content: center;
  padding: 24px 24px 22px;
}

.z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-20);
  line-height: 1.25;
}

.z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.56;
}

.z-page-block--type-support_category_tenzometry.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_tenzometry.z-block--cta h2,
.z-page-block--type-support_category_tenzometry.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_tenzometry.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-block__head,
  .z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-support_category_tenzometry.z-page-block--child-page-cards .z-card__image {
    min-height: 190px;
    height: 190px;
  }
}

/* ---------- Seismic support custom page ---------- */
.z-page-block--type-support_category_seysmika.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(244, 248, 251, .96)),
    radial-gradient(circle at 84% 10%, rgba(28, 106, 160, .14), transparent 36%);
}

.z-page-block--type-support_category_seysmika.z-page-hero .z-page-hero__copy {
  max-width: 900px;
}

.z-page-block--type-support_category_seysmika.z-block--text {
  max-width: 980px;
}

.z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-block__head,
.z-page-block--type-support_category_seysmika.z-page-block--material-cards .z-block__head {
  display: grid;
  grid-template-columns: minmax(280px, .36fr) minmax(0, .64fr);
  gap: 26px;
  align-items: end;
}

.z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  min-height: 142px;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .14);
  background: #fff;
}

.z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card__image {
  width: 72px;
  height: 72px;
  min-height: 72px;
  margin: 22px 0 0 18px;
  border-radius: 50%;
  background: rgba(20, 74, 112, .07);
}

.z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card__body {
  justify-content: center;
  padding: 20px 22px 20px 8px;
}

.z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-18);
  line-height: 1.28;
}

.z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.5;
}

.z-page-block--type-support_category_seysmika.z-page-block--material-cards .z-card-grid {
  grid-template-columns: minmax(0, 1fr);
}

.z-page-block--type-support_category_seysmika.z-page-block--material-cards .z-card__image {
  display: none;
}

.z-page-block--type-support_category_seysmika.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_seysmika.z-block--cta h2,
.z-page-block--type-support_category_seysmika.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_seysmika.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-block__head,
  .z-page-block--type-support_category_seysmika.z-page-block--material-cards .z-block__head,
  .z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card {
    grid-template-columns: 64px minmax(0, 1fr);
  }

  .z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card__image {
    width: 54px;
    height: 54px;
    min-height: 54px;
    margin: 20px 0 0 10px;
  }

  .z-page-block--type-support_category_seysmika.z-page-block--child-page-cards .z-card__body {
    padding: 18px 16px 18px 8px;
  }
}

/* ---------- Acoustic emission support custom page ---------- */
.z-page-block--type-support_category_acoustic_emission.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(244, 248, 251, .96)),
    radial-gradient(circle at 84% 10%, rgba(28, 106, 160, .14), transparent 36%);
}

.z-page-block--type-support_category_acoustic_emission.z-page-hero .z-page-hero__copy {
  max-width: 900px;
}

.z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  min-height: 142px;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .14);
  background: #fff;
}

.z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card__image {
  width: 72px;
  height: 72px;
  min-height: 72px;
  margin: 22px 0 0 18px;
  border-radius: 50%;
  background: rgba(20, 74, 112, .07);
}

.z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card__body {
  justify-content: center;
  padding: 20px 22px 20px 8px;
}

.z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-18);
  line-height: 1.28;
}

.z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.5;
}

.z-page-block--type-support_category_acoustic_emission.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_acoustic_emission.z-block--cta h2,
.z-page-block--type-support_category_acoustic_emission.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_acoustic_emission.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 980px) {
  .z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card {
    grid-template-columns: 64px minmax(0, 1fr);
  }

  .z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card__image {
    width: 54px;
    height: 54px;
    min-height: 54px;
    margin: 20px 0 0 10px;
  }

  .z-page-block--type-support_category_acoustic_emission.z-page-block--child-page-cards .z-card__body {
    padding: 18px 16px 18px 8px;
  }
}

/* ---------- Acoustic emission support article pages ---------- */
.z-page-block--type-support_article_acoustic_emission.z-page-hero {
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(245, 249, 252, .96)),
    radial-gradient(circle at 88% 10%, rgba(28, 106, 160, .12), transparent 34%);
}

.z-page-block--type-support_article_acoustic_emission.z-page-hero .z-page-hero__copy {
  max-width: 960px;
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--text .z-editor {
  max-width: 980px;
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--gallery .z-gallery {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--gallery .z-gallery__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  padding: 16px;
  border: 1px solid rgba(20, 74, 112, .10);
  border-radius: 12px;
  background: #fff;
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--gallery .z-gallery__item img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 360px;
  object-fit: contain;
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--material-cards .z-card-grid,
.z-page-block--type-support_article_acoustic_emission.z-page-block--product-cards .z-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--material-cards .z-card__image {
  display: none;
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--material-cards .z-card__body {
  min-height: 156px;
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--product-cards .z-card__image {
  height: 168px;
  min-height: 168px;
  background: #fff;
}

.z-page-block--type-support_article_acoustic_emission.z-page-block--product-cards .z-card__image img {
  object-fit: contain;
  padding: 12px;
}

.z-page-block--type-support_article_acoustic_emission.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_article_acoustic_emission.z-block--cta h2,
.z-page-block--type-support_article_acoustic_emission.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_article_acoustic_emission.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 640px) {
  .z-page-block--type-support_article_acoustic_emission.z-page-block--gallery .z-gallery {
    grid-template-columns: 1fr;
  }

  .z-page-block--type-support_article_acoustic_emission.z-page-block--gallery .z-gallery__item {
    min-height: 180px;
    padding: 12px;
  }
}

/* ---------- Thermometry support custom page ---------- */
.z-page-block--type-support_category_termometriya.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(247, 250, 252, .96)),
    radial-gradient(circle at 86% 12%, rgba(49, 133, 153, .13), transparent 34%);
}

.z-page-block--type-support_category_termometriya.z-page-hero .z-page-hero__copy {
  max-width: 920px;
}

.z-page-block--type-support_category_termometriya.z-page-block--text .z-editor {
  max-width: 980px;
}

.z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 14px;
}

.z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card {
  min-height: 100%;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .13);
  background: #fff;
}

.z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card__image {
  height: 128px;
  min-height: 128px;
  background: linear-gradient(135deg, rgba(20, 74, 112, .06), rgba(49, 133, 153, .08));
}

.z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 18px;
}

.z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card__body {
  min-height: 164px;
}

.z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-18);
  line-height: 1.28;
}

.z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.5;
}

.z-page-block--type-support_category_termometriya.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_termometriya.z-block--cta h2,
.z-page-block--type-support_category_termometriya.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_termometriya.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card__image {
    height: 104px;
    min-height: 104px;
  }

  .z-page-block--type-support_category_termometriya.z-page-block--child-page-cards .z-card__body {
    min-height: 0;
  }
}

/* ---------- Software support custom page ---------- */
.z-page-block--type-support_category_software.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(244, 248, 251, .96)),
    radial-gradient(circle at 84% 8%, rgba(37, 113, 156, .14), transparent 34%);
}

.z-page-block--type-support_category_software.z-page-hero .z-page-hero__copy {
  max-width: 980px;
}

.z-page-block--type-support_category_software.z-page-block--text .z-editor {
  max-width: 980px;
}

.z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card {
  min-height: 100%;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .13);
  background: #fff;
}

.z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card__image {
  height: 126px;
  min-height: 126px;
  background: linear-gradient(135deg, rgba(20, 74, 112, .06), rgba(37, 113, 156, .08));
}

.z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 18px;
}

.z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card__body {
  min-height: 178px;
}

.z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-18);
  line-height: 1.28;
}

.z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.5;
}

.z-page-block--type-support_category_software.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_software.z-block--cta h2,
.z-page-block--type-support_category_software.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_software.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card__image {
    height: 104px;
    min-height: 104px;
  }

  .z-page-block--type-support_category_software.z-page-block--child-page-cards .z-card__body {
    min-height: 0;
  }
}

/* ---------- Misc support custom page ---------- */
.z-page-block--type-support_category_raznoe.z-page-hero {
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(246, 249, 251, .96)),
    radial-gradient(circle at 86% 10%, rgba(64, 128, 144, .14), transparent 34%);
}

.z-page-block--type-support_category_raznoe.z-page-hero .z-page-hero__copy {
  max-width: 960px;
}

.z-page-block--type-support_category_raznoe.z-page-block--text .z-editor {
  max-width: 980px;
}

.z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}

.z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card {
  min-height: 100%;
  overflow: hidden;
  border-color: rgba(20, 74, 112, .13);
  background: #fff;
}

.z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card__image {
  height: 170px;
  min-height: 170px;
  background: linear-gradient(135deg, rgba(20, 74, 112, .06), rgba(64, 128, 144, .08));
}

.z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card__body {
  min-height: 170px;
}

.z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card__body strong {
  font-size: var(--fs-18);
  line-height: 1.28;
}

.z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card__body span {
  color: var(--muted);
  line-height: 1.5;
}

.z-page-block--type-support_category_raznoe.z-block--cta {
  border: 0;
  background: linear-gradient(135deg, rgba(14, 47, 75, .98), rgba(28, 91, 138, .88));
}

.z-page-block--type-support_category_raznoe.z-block--cta h2,
.z-page-block--type-support_category_raznoe.z-block--cta p {
  color: #fff;
}

.z-page-block--type-support_category_raznoe.z-block--cta .button {
  color: var(--brand-800);
  background: #fff;
}

@media (max-width: 640px) {
  .z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card__image {
    height: 140px;
    min-height: 140px;
  }

  .z-page-block--type-support_category_raznoe.z-page-block--child-page-cards .z-card__body {
    min-height: 0;
  }
}

/* ---------- Link lists without useful media ---------- */
.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards {
  max-width: min(1040px, calc(100% - 32px));
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card-grid,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card-grid,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card-grid,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card-grid,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card-grid,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card-grid,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card-grid,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: 12px;
  counter-reset: z-link-list;
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
  min-height: 0;
  padding: 16px 18px 16px 16px;
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .12);
  border-radius: var(--r-md);
  background: linear-gradient(180deg, #fff, rgba(247, 250, 252, .78));
  box-shadow: none;
  counter-increment: z-link-list;
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card::before,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card::before,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card::before,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card::before,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card::before,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card::before,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card::before,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card::before {
  content: counter(z-link-list, decimal-leading-zero);
  display: grid;
  width: 42px;
  height: 42px;
  color: var(--brand-700);
  font-size: 12px;
  font-weight: 800;
  border: 1px solid rgba(20, 74, 112, .14);
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .86);
  place-items: center;
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card[href]::after,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card[href]::after,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card[href]::after,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card[href]::after,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card[href]::after,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card[href]::after,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card[href]::after,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card[href]::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: 18px;
  width: 18px;
  height: 18px;
  opacity: .72;
  background: currentColor;
  clip-path: polygon(18% 44%, 62% 44%, 48% 30%, 58% 20%, 90% 50%, 58% 80%, 48% 70%, 62% 56%, 18% 56%);
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card[href]:hover,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card[href]:hover,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card[href]:hover,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card[href]:hover,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card[href]:hover,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card[href]:hover,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card[href]:hover,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card[href]:hover {
  border-color: rgba(28, 106, 160, .28);
  background: #fff;
  box-shadow: 0 14px 30px rgba(14, 47, 75, .08);
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card__image,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card__image,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card__image,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card__image,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card__image,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card__image,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card__image,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card__image {
  display: none;
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card__body,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card__body,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card__body,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card__body,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card__body,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card__body,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card__body,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card__body {
  min-height: 0;
  padding: 0 24px 0 0;
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card__body strong,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card__body strong,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card__body strong,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card__body strong,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card__body strong,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card__body strong,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card__body strong,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card__body strong {
  color: var(--ink);
  font-size: var(--fs-17);
  line-height: 1.34;
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card__body span,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card__body span,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card__body span,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card__body span,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card__body span,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card__body span,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card__body span,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card__body span {
  display: block;
  margin-top: 7px;
  color: var(--muted);
  line-height: 1.5;
}

.z-page-block--catalog.z-page-block--product-cards .z-card--product.z-card--no-image {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-top: 3px solid rgba(28, 106, 160, .24);
  background:
    linear-gradient(90deg, rgba(18, 116, 168, .05), transparent 34%),
    #fff;
}

.z-page-block--catalog.z-page-block--product-cards .z-card--product.z-card--no-image .z-card__image {
  display: none;
}

.z-page-block--catalog.z-page-block--product-cards .z-card--product.z-card--no-image .z-card__body {
  min-height: 100%;
}

.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card__body em,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card__body em,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card__body em,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card__body em,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card__body em,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card__body em {
  display: none;
}

@media (max-width: 640px) {
  .z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card-grid,
  .z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card-grid,
  .z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card-grid,
  .z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card-grid,
  .z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card-grid,
  .z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Catalog rich landing content ---------- */
.z-rich-content {
  max-width: min(1120px, calc(100% - 32px));
  margin: clamp(28px, 5vw, 56px) auto;
  padding: clamp(22px, 4vw, 40px);
  border: 1px solid rgba(20, 74, 112, .12);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: 0 18px 46px rgba(14, 47, 75, .07);
}

.z-rich-content > h2 {
  max-width: 900px;
  margin: 0 0 22px;
  color: var(--ink);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.12;
}

.z-rich-content__body {
  max-width: 980px;
  color: var(--ink);
  font-size: var(--fs-17);
  line-height: 1.7;
}

.z-rich-content__body > *:first-child {
  margin-top: 0;
}

.z-rich-content__body > *:last-child {
  margin-bottom: 0;
}

.z-rich-content__body h2,
.z-rich-content__body h3,
.z-rich-content__body h4 {
  margin: 32px 0 14px;
  color: var(--ink);
  line-height: 1.22;
}

.z-rich-content__body h2 {
  font-size: clamp(24px, 2.4vw, 32px);
}

.z-rich-content__body h3 {
  font-size: clamp(20px, 2vw, 25px);
}

.z-rich-content__body p,
.z-rich-content__body ul,
.z-rich-content__body ol,
.z-rich-content__body figure,
.z-rich-content__body table {
  margin: 0 0 18px;
}

.z-rich-content__body ul,
.z-rich-content__body ol {
  padding-left: 1.35em;
}

.z-rich-content__body li + li {
  margin-top: 7px;
}

.z-rich-content__body a {
  color: var(--brand-700);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(28, 106, 160, .24);
}

.z-rich-content__body a:hover {
  color: var(--brand-900);
  border-bottom-color: currentColor;
}

.z-rich-content__body img {
  display: block;
  max-width: min(100%, 860px);
  height: auto;
  margin: 18px 0;
  border-radius: var(--r-md);
  background: #f6f9fb;
}

.z-rich-content__body figure img {
  margin: 0;
}

.z-rich-content__body figcaption {
  margin-top: 8px;
  color: var(--muted);
  font-size: var(--fs-14);
}

.z-rich-content__body table {
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  border: 1px solid rgba(20, 74, 112, .13);
  border-radius: var(--r-md);
}

.z-rich-content__body tbody,
.z-rich-content__body thead,
.z-rich-content__body tr {
  width: 100%;
}

.z-rich-content__body th,
.z-rich-content__body td {
  padding: 12px 14px;
  border: 1px solid rgba(20, 74, 112, .1);
  vertical-align: top;
}

.z-rich-content__body th {
  background: rgba(236, 244, 249, .86);
  color: var(--ink);
  font-weight: 800;
}

.z-page-block--catalog.z-rich-content {
  max-width: min(1120px, calc(100% - 32px));
  padding: clamp(28px, 4vw, 48px);
  border-color: rgba(20, 74, 112, .08);
  border-radius: var(--r-md);
  box-shadow: 0 14px 38px rgba(14, 47, 75, .055);
}

.z-page-block--catalog.z-rich-content > h2 {
  max-width: 860px;
  margin-bottom: 24px;
  font-size: clamp(24px, 2.6vw, 34px);
}

.z-page-block--catalog .z-rich-content__body {
  max-width: none;
  display: flow-root;
}

.z-page-block--catalog .z-rich-content__body > p,
.z-page-block--catalog .z-rich-content__body > ul,
.z-page-block--catalog .z-rich-content__body > ol,
.z-page-block--catalog .z-rich-content__body > h2,
.z-page-block--catalog .z-rich-content__body > h3,
.z-page-block--catalog .z-rich-content__body > h4 {
  max-width: 880px;
}

.z-page-block--catalog .z-rich-content__body > p:first-child {
  max-width: 920px;
  color: var(--ink);
  font-size: clamp(18px, 1.7vw, 21px);
  line-height: 1.58;
}

.z-page-block--catalog .z-rich-content__body > .z-rich-content__eyebrow:first-child {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  margin: 0 0 12px;
  padding: 6px 10px;
  border-radius: var(--r-pill);
  background: rgba(28, 106, 160, .08);
  color: var(--brand-800);
  font-size: var(--fs-13);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.z-page-block--catalog .z-rich-content__body h2,
.z-page-block--catalog .z-rich-content__body h3 {
  position: relative;
  padding-top: 18px;
}

.z-page-block--catalog .z-rich-content__body h2::before,
.z-page-block--catalog .z-rich-content__body h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 58px;
  height: 3px;
  border-radius: var(--r-pill);
  background: var(--brand-600);
}

.z-page-block--catalog .z-rich-content__body ul,
.z-page-block--catalog .z-rich-content__body ol {
  display: grid;
  gap: 8px;
  padding-left: 0;
  list-style: none;
}

.z-page-block--catalog .z-rich-content__body li {
  position: relative;
  margin: 0;
  padding-left: 24px;
}

.z-page-block--catalog .z-rich-content__body li::before {
  content: "";
  position: absolute;
  top: .72em;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--brand-600);
  box-shadow: 0 0 0 4px rgba(28, 106, 160, .12);
}

.z-page-block--catalog .z-rich-content__body figure {
  width: fit-content;
  max-width: min(100%, 920px);
  margin: 24px 0 28px;
  padding: 10px;
  border: 1px solid rgba(20, 74, 112, .1);
  border-radius: var(--r-md);
  background: linear-gradient(180deg, #fff, #f7fafc);
}

.z-page-block--catalog .z-rich-content__body > a:has(img) {
  position: relative;
  display: inline-flex;
  width: min(32%, 320px);
  min-width: 220px;
  margin: 12px 14px 18px 0;
  vertical-align: top;
  flex-direction: column;
  gap: 10px;
  padding: 10px;
  border: 1px solid rgba(20, 74, 112, .1);
  border-radius: var(--r-md);
  background: linear-gradient(180deg, #fff, #f8fbfd);
  box-shadow: 0 10px 24px rgba(14, 47, 75, .055);
  color: var(--ink);
  font-size: var(--fs-15);
  font-weight: 750;
  line-height: 1.32;
  border-bottom: 1px solid rgba(20, 74, 112, .1);
}

.z-page-block--catalog .z-rich-content__body > a[data-lightbox]:has(img) {
  cursor: zoom-in;
}

.z-page-block--catalog .z-rich-content__body > a[data-lightbox]:has(img)::after {
  content: "";
  position: absolute;
  top: 18px;
  right: 18px;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(20, 74, 112, .14);
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .88)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23144a70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3Cpath d='M11 8v6'/%3E%3Cpath d='M8 11h6'/%3E%3C/svg%3E")
    center / 16px 16px no-repeat;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--motion-fast), transform var(--motion-fast);
  pointer-events: none;
}

.z-page-block--catalog .z-rich-content__body > a[data-lightbox]:has(img):hover::after {
  opacity: 1;
  transform: translateY(0);
}

.z-page-block--catalog .z-rich-content__body > a:has(img):hover {
  border-color: rgba(28, 106, 160, .24);
  box-shadow: 0 14px 30px rgba(14, 47, 75, .085);
}

.z-page-block--catalog .z-rich-content__body > a:has(img) img {
  width: 100%;
  max-width: none;
  height: 148px;
  margin: 0;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
  object-fit: contain;
}

.z-page-block--catalog .z-rich-content__body > a:has(img):empty {
  padding-bottom: 10px;
}

.z-page-block--catalog .z-rich-content__body > h2 + p + a:has(img),
.z-page-block--catalog .z-rich-content__body > h3 + p + a:has(img) {
  margin-top: 4px;
}

.z-page-block--catalog .z-rich-content__body > a:has(img) + p,
.z-page-block--catalog .z-rich-content__body > a:has(img) + h2,
.z-page-block--catalog .z-rich-content__body > a:has(img) + h3 {
  clear: both;
}

.z-page-block--catalog .z-rich-content__body figure img,
.z-page-block--catalog .z-rich-content__body > img {
  max-width: min(100%, 900px);
  max-height: 560px;
  margin: 0;
  border-radius: 7px;
  box-shadow: none;
  object-fit: contain;
}

.z-page-block--catalog .z-rich-content__body > img {
  display: block;
  width: auto;
  height: auto;
  margin: 24px 0 28px;
  padding: 10px;
  border: 1px solid rgba(20, 74, 112, .1);
  background: #fff;
}

.z-page-block--catalog .z-rich-content__body table {
  max-width: 100%;
  margin-top: 20px;
  background: #fff;
}

.z-page-block--catalog .z-rich-content__body th,
.z-page-block--catalog .z-rich-content__body td {
  line-height: 1.48;
}

/* ---------- Catalog system landings: scoped landing composition ---------- */
.catalog-hero--catalog_system_landing,
.catalog-hero--catalog_software_landing {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: flex-end;
  min-height: 0;
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid rgba(20, 74, 112, .1);
  border-radius: var(--r-xl);
  background:
    linear-gradient(135deg, rgba(246, 250, 252, .98), rgba(232, 241, 247, .9)),
    #f6fafc;
  box-shadow: 0 18px 42px rgba(14, 47, 75, .08);
  overflow: hidden;
}

.catalog-hero--catalog_system_landing.catalog-hero--has-media,
.catalog-hero--catalog_software_landing.catalog-hero--has-media {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 38%);
  gap: clamp(24px, 4vw, 54px);
  align-items: center;
}

.catalog-hero--catalog_system_landing .catalog-hero__copy,
.catalog-hero--catalog_software_landing .catalog-hero__copy {
  max-width: 760px;
}

.catalog-hero--catalog_system_landing .catalog-hero__eyebrow,
.catalog-hero--catalog_software_landing .catalog-hero__eyebrow {
  color: var(--brand-700);
}

.catalog-hero--catalog_system_landing h1,
.catalog-hero--catalog_software_landing h1 {
  color: var(--ink);
}

.catalog-hero--catalog_system_landing p,
.catalog-hero--catalog_software_landing p {
  max-width: 680px;
  color: var(--muted);
}

.catalog-hero__media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 230px;
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid rgba(20, 74, 112, .1);
  border-radius: 16px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 16px 34px rgba(14, 47, 75, .08);
}

.catalog-hero__media img {
  display: block;
  width: 100%;
  max-height: 300px;
  object-fit: contain;
}

.z-page-block--type-catalog_system_landing.z-block--cards,
.z-page-block--type-catalog_software_landing.z-block--cards {
  max-width: min(1180px, calc(100% - 32px));
}

.z-page-block--type-catalog_system_landing.z-block--cards .z-card,
.z-page-block--type-catalog_software_landing.z-block--cards .z-card {
  border-color: rgba(20, 74, 112, .1);
  box-shadow: 0 12px 30px rgba(14, 47, 75, .06);
}

.z-page-block--type-catalog_system_landing.z-rich-content,
.z-page-block--type-catalog_software_landing.z-rich-content,
.z-page-block--type-catalog_system_material.z-rich-content,
.z-page-block--type-catalog_software_material.z-rich-content {
  max-width: min(1180px, calc(100% - 32px));
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.z-page-block--type-catalog_system_landing .z-rich-content__body,
.z-page-block--type-catalog_software_landing .z-rich-content__body,
.z-page-block--type-catalog_system_material .z-rich-content__body,
.z-page-block--type-catalog_software_material .z-rich-content__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  max-width: none;
  color: var(--ink);
}

.z-page-block--type-catalog_system_landing .z-rich-content__body > h2,
.z-page-block--type-catalog_system_landing .z-rich-content__body > h3,
.z-page-block--type-catalog_software_landing .z-rich-content__body > h2,
.z-page-block--type-catalog_software_landing .z-rich-content__body > h3,
.z-page-block--type-catalog_system_material .z-rich-content__body > h2,
.z-page-block--type-catalog_system_material .z-rich-content__body > h3,
.z-page-block--type-catalog_software_material .z-rich-content__body > h2,
.z-page-block--type-catalog_software_material .z-rich-content__body > h3 {
  max-width: 980px;
  margin: 34px 0 16px;
  padding-top: 0;
  color: var(--ink);
  letter-spacing: 0;
}

.z-page-block--type-catalog_system_landing .z-rich-content__body > h2::before,
.z-page-block--type-catalog_system_landing .z-rich-content__body > h3::before,
.z-page-block--type-catalog_software_landing .z-rich-content__body > h2::before,
.z-page-block--type-catalog_software_landing .z-rich-content__body > h3::before,
.z-page-block--type-catalog_system_material .z-rich-content__body > h2::before,
.z-page-block--type-catalog_system_material .z-rich-content__body > h3::before,
.z-page-block--type-catalog_software_material .z-rich-content__body > h2::before,
.z-page-block--type-catalog_software_material .z-rich-content__body > h3::before {
  display: none;
}

.z-page-block--type-catalog_system_landing .z-rich-content__body > h2,
.z-page-block--type-catalog_software_landing .z-rich-content__body > h2,
.z-page-block--type-catalog_system_material .z-rich-content__body > h2,
.z-page-block--type-catalog_software_material .z-rich-content__body > h2 {
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.12;
}

.z-page-block--type-catalog_system_landing .z-rich-content__body > h3,
.z-page-block--type-catalog_software_landing .z-rich-content__body > h3,
.z-page-block--type-catalog_system_material .z-rich-content__body > h3,
.z-page-block--type-catalog_software_material .z-rich-content__body > h3 {
  font-size: clamp(22px, 2vw, 28px);
}

.z-page-block--type-catalog_system_landing .z-rich-content__body > p,
.z-page-block--type-catalog_system_landing .z-rich-content__body > ul,
.z-page-block--type-catalog_system_landing .z-rich-content__body > ol,
.z-page-block--type-catalog_software_landing .z-rich-content__body > p,
.z-page-block--type-catalog_software_landing .z-rich-content__body > ul,
.z-page-block--type-catalog_software_landing .z-rich-content__body > ol,
.z-page-block--type-catalog_system_material .z-rich-content__body > p,
.z-page-block--type-catalog_system_material .z-rich-content__body > ul,
.z-page-block--type-catalog_system_material .z-rich-content__body > ol,
.z-page-block--type-catalog_software_material .z-rich-content__body > p,
.z-page-block--type-catalog_software_material .z-rich-content__body > ul,
.z-page-block--type-catalog_software_material .z-rich-content__body > ol {
  max-width: 900px;
  font-size: var(--fs-17);
  line-height: 1.72;
}

.z-page-block--type-catalog_system_landing .z-rich-content__body > p:first-child,
.z-page-block--type-catalog_software_landing .z-rich-content__body > p:first-child,
.z-page-block--type-catalog_system_material .z-rich-content__body > p:first-child,
.z-page-block--type-catalog_software_material .z-rich-content__body > p:first-child {
  max-width: 980px;
  padding: clamp(22px, 3vw, 32px);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(236, 244, 249, .9), rgba(255,255,255,.92));
  color: var(--ink);
  font-size: clamp(18px, 1.7vw, 21px);
  line-height: 1.62;
}

.z-page-block--type-catalog_system_landing .z-rich-content__body ul,
.z-page-block--type-catalog_system_landing .z-rich-content__body ol,
.z-page-block--type-catalog_software_landing .z-rich-content__body ul,
.z-page-block--type-catalog_software_landing .z-rich-content__body ol,
.z-page-block--type-catalog_system_material .z-rich-content__body ul,
.z-page-block--type-catalog_system_material .z-rich-content__body ol,
.z-page-block--type-catalog_software_material .z-rich-content__body ul,
.z-page-block--type-catalog_software_material .z-rich-content__body ol {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  max-width: 1080px;
  gap: 10px 14px;
  margin: 8px 0 24px;
}

.z-page-block--type-catalog_system_landing .z-rich-content__body li,
.z-page-block--type-catalog_software_landing .z-rich-content__body li,
.z-page-block--type-catalog_system_material .z-rich-content__body li,
.z-page-block--type-catalog_software_material .z-rich-content__body li {
  min-height: 46px;
  padding: 12px 14px 12px 36px;
  border: 1px solid rgba(20, 74, 112, .09);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: 0 8px 18px rgba(14, 47, 75, .04);
}

.z-page-block--type-catalog_system_landing .z-rich-content__body li::before,
.z-page-block--type-catalog_software_landing .z-rich-content__body li::before,
.z-page-block--type-catalog_system_material .z-rich-content__body li::before,
.z-page-block--type-catalog_software_material .z-rich-content__body li::before {
  top: 19px;
  left: 16px;
  width: 7px;
  height: 7px;
  box-shadow: 0 0 0 4px rgba(28, 106, 160, .1);
}

.z-page-block--type-catalog_system_landing .z-rich-content__body figure,
.z-page-block--type-catalog_system_landing .z-rich-content__body > img,
.z-page-block--type-catalog_software_landing .z-rich-content__body figure,
.z-page-block--type-catalog_software_landing .z-rich-content__body > img,
.z-page-block--type-catalog_system_material .z-rich-content__body figure,
.z-page-block--type-catalog_system_material .z-rich-content__body > img,
.z-page-block--type-catalog_software_material .z-rich-content__body figure,
.z-page-block--type-catalog_software_material .z-rich-content__body > img {
  max-width: min(100%, 1040px);
  margin: 22px 0 30px;
  padding: clamp(10px, 2vw, 16px);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: 0 14px 34px rgba(14, 47, 75, .075);
}

.z-page-block--type-catalog_system_landing .z-rich-content__body figure img,
.z-page-block--type-catalog_system_landing .z-rich-content__body > img,
.z-page-block--type-catalog_software_landing .z-rich-content__body figure img,
.z-page-block--type-catalog_software_landing .z-rich-content__body > img,
.z-page-block--type-catalog_system_material .z-rich-content__body figure img,
.z-page-block--type-catalog_system_material .z-rich-content__body > img,
.z-page-block--type-catalog_software_material .z-rich-content__body figure img,
.z-page-block--type-catalog_software_material .z-rich-content__body > img {
  width: auto;
  max-width: 100%;
  max-height: 620px;
  object-fit: contain;
}

.z-page-block--type-catalog_system_landing .z-rich-content__body table,
.z-page-block--type-catalog_software_landing .z-rich-content__body table,
.z-page-block--type-catalog_system_material .z-rich-content__body table,
.z-page-block--type-catalog_software_material .z-rich-content__body table {
  max-width: 1080px;
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(14, 47, 75, .055);
}

.z-page-block--type-catalog_system_landing .z-rich-content__body th,
.z-page-block--type-catalog_system_landing .z-rich-content__body td,
.z-page-block--type-catalog_software_landing .z-rich-content__body th,
.z-page-block--type-catalog_software_landing .z-rich-content__body td,
.z-page-block--type-catalog_system_material .z-rich-content__body th,
.z-page-block--type-catalog_system_material .z-rich-content__body td,
.z-page-block--type-catalog_software_material .z-rich-content__body th,
.z-page-block--type-catalog_software_material .z-rich-content__body td {
  padding: 13px 16px;
}

@media (max-width: 640px) {
  .catalog-hero--catalog_system_landing,
  .catalog-hero--catalog_software_landing {
    padding: 24px;
    border-radius: var(--r-lg);
  }

  .catalog-hero--catalog_system_landing.catalog-hero--has-media,
  .catalog-hero--catalog_software_landing.catalog-hero--has-media {
    grid-template-columns: 1fr;
  }

  .catalog-hero__media {
    min-height: 180px;
  }

  .catalog-hero__media img {
    max-height: 220px;
  }

  .z-page-block--type-catalog_system_landing .z-rich-content__body ul,
  .z-page-block--type-catalog_system_landing .z-rich-content__body ol,
  .z-page-block--type-catalog_software_landing .z-rich-content__body ul,
  .z-page-block--type-catalog_software_landing .z-rich-content__body ol,
  .z-page-block--type-catalog_system_material .z-rich-content__body ul,
  .z-page-block--type-catalog_system_material .z-rich-content__body ol,
  .z-page-block--type-catalog_software_material .z-rich-content__body ul,
  .z-page-block--type-catalog_software_material .z-rich-content__body ol {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .z-rich-content {
    max-width: calc(100% - 20px);
    padding: 18px;
    border-radius: 12px;
  }

  .z-rich-content__body {
    font-size: var(--fs-16);
  }

  .z-page-block--catalog.z-rich-content {
    max-width: calc(100% - 20px);
    padding: 18px;
  }

  .z-page-block--catalog .z-rich-content__body figure,
  .z-page-block--catalog .z-rich-content__body > img {
    width: 100%;
    max-width: 100%;
  }

  .z-page-block--catalog .z-rich-content__body > a:has(img) {
    width: 100%;
    min-width: 0;
    margin-right: 0;
  }

  .z-page-block--catalog .z-rich-content__body > a:has(img) img {
    height: auto;
    max-height: 260px;
  }
}

/* ---------- Product detail refinement ---------- */
.product-detail-page {
  --product-content-width: 1168px;
  padding-bottom: 56px;
}

.product-detail-page .product-hero {
  grid-template-columns: minmax(360px, .82fr) minmax(0, 1fr);
  gap: 40px;
  align-items: stretch;
  margin-top: 24px;
  margin-bottom: 30px;
  padding: 24px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(247,250,252,.94)),
    radial-gradient(520px 260px at 0% 0%, rgba(15, 181, 177, .12), transparent 72%);
  box-shadow: var(--shadow-xs);
}

.product-detail-page .product-hero__media {
  display: grid;
  gap: 12px;
}

.product-detail-page .product-hero__main-image {
  position: relative;
  min-height: 380px;
  border-radius: 12px;
  background:
    linear-gradient(180deg, #fff, #f7fafc),
    repeating-linear-gradient(45deg, rgba(29,79,122,.035) 0, rgba(29,79,122,.035) 1px, transparent 1px, transparent 14px);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75);
}

.product-detail-page .product-hero__image-link {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-height: inherit;
}

.product-detail-page .product-hero__main-image img {
  max-height: 480px;
  padding: 24px;
}

.product-detail-page .product-hero__zoom {
  position: absolute;
  right: 14px;
  bottom: 14px;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: var(--r-pill);
  background: rgba(14, 47, 75, .72);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .18s ease, transform .18s ease;
}

.product-detail-page .product-hero__zoom::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: center/18px no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.4-3.4'/></svg>");
}

.product-detail-page .product-hero__main-image:hover .product-hero__zoom {
  opacity: 1;
  transform: translateY(0);
}

.product-detail-page .product-hero__image-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: var(--r-pill);
  background: rgba(14, 47, 75, .68);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity .18s ease, background .18s ease;
}

.product-detail-page .product-hero__main-image:hover .product-hero__image-nav {
  opacity: 1;
}

.product-detail-page .product-hero__image-nav:hover {
  background: rgba(14, 47, 75, .88);
}

.product-detail-page .product-hero__image-nav--prev {
  left: 14px;
}

.product-detail-page .product-hero__image-nav--next {
  right: 14px;
}

.product-detail-page .product-hero__thumbs {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 2px 2px 8px;
  scrollbar-width: thin;
}

.product-detail-page .product-hero__thumb {
  flex: 0 0 72px;
  border-radius: 9px;
  opacity: .72;
  transition: opacity .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.product-detail-page .product-hero__thumb:hover,
.product-detail-page .product-hero__thumb.is-active {
  opacity: 1;
}

.product-detail-page .product-hero__thumb img {
  object-fit: contain;
  padding: 6px;
  background: #fff;
}

.product-detail-page .product-hero__content {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 8px 0 4px;
}

.product-detail-page .product-hero__eyebrow {
  margin-bottom: 10px;
  font-size: var(--fs-12);
  letter-spacing: .06em;
}

.product-detail-page .product-hero h1 {
  font-size: 38px;
  line-height: 1.1;
}

.product-detail-page .product-hero__summary {
  max-width: 680px;
  margin-top: 14px;
  color: var(--text);
  font-size: var(--fs-17);
  line-height: 1.62;
}

.product-hero__highlights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.product-hero__highlights li {
  position: relative;
  min-width: 0;
  padding-left: 18px;
  color: var(--ink);
  font-size: var(--fs-14);
  line-height: 1.45;
}

.product-hero__highlights li::before {
  content: "";
  position: absolute;
  top: .55em;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: var(--r-pill);
  background: var(--accent-500);
  box-shadow: 0 0 0 3px rgba(15, 181, 177, .16);
}

.product-hero__note {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  padding: 2px 0 0 14px;
  border-left: 1px solid rgba(15, 181, 177, .55);
}

.product-hero__note img {
  max-width: 260px;
  max-height: 54px;
  object-fit: contain;
}

.product-hero__note p {
  margin: 0;
  color: var(--text);
  font-size: var(--fs-14);
  line-height: 1.5;
}

.product-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}

.product-hero__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 11px;
  border: 1px solid rgba(29, 79, 122, .13);
  border-radius: var(--r-pill);
  background: #fff;
  color: var(--brand-800);
  font-size: var(--fs-13);
  font-weight: 700;
}

.product-detail-page .product-hero__actions {
  margin-top: auto;
  padding-top: 26px;
}

.product-detail-page .z-block {
  width: min(var(--product-content-width), calc(100% - 32px));
  max-width: var(--product-content-width);
  margin-top: 30px;
  margin-bottom: 30px;
  margin-right: auto;
  margin-left: auto;
}

.product-detail-page .z-block__head {
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  margin-bottom: 14px;
  padding-bottom: 10px;
}

.product-detail-page .z-block__head h2,
.product-detail-page .z-block--text > h2,
.product-detail-page .z-rich-content > h2 {
  font-size: 26px;
  line-height: 1.18;
}

.product-detail-page .z-editor,
.product-detail-page .z-rich-content__body {
  max-width: none;
  color: var(--text);
  font-size: var(--fs-16);
  line-height: 1.72;
}

.product-detail-page .z-block--text,
.product-detail-page .z-block--gallery-single,
.product-detail-page .z-block--documents {
  max-width: var(--product-content-width);
}

.product-detail-page .z-editor p,
.product-detail-page .z-rich-content__body p {
  margin-top: 0;
  margin-bottom: 14px;
}

.product-detail-page .z-rich-content {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.product-detail-page .z-rich-content__body h2,
.product-detail-page .z-rich-content__body h3,
.product-detail-page .z-rich-content__body h4 {
  position: relative;
  margin: 24px 0 10px;
  padding-top: 14px;
  color: var(--ink);
  line-height: 1.22;
}

.product-detail-page .z-rich-content__body h2::before,
.product-detail-page .z-rich-content__body h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 44px;
  height: 2px;
  border-radius: var(--r-pill);
  background: var(--brand-600);
}

.product-detail-page .z-rich-content__body h2 {
  font-size: 24px;
}

.product-detail-page .z-rich-content__body h3 {
  font-size: 20px;
}

.product-detail-page .z-rich-content__body figure,
.product-detail-page .z-rich-content__body > img,
.product-detail-page .z-rich-content__body > a:has(img) {
  display: block;
  width: min(100%, 760px);
  margin: 18px 0 22px;
}

.product-detail-page .z-rich-content__body img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 520px;
  padding: 10px;
  border: 1px solid rgba(20, 74, 112, .1);
  border-radius: 9px;
  background: #fff;
  box-shadow: var(--shadow-xs);
  object-fit: contain;
}

.product-detail-page .z-rich-content__body figure:has(.z-rich-media--certificate),
.product-detail-page .z-rich-content__body > a:has(.z-rich-media--certificate) {
  display: inline-flex;
  position: relative;
  width: min(220px, 100%);
  min-height: 292px;
  margin: 12px 14px 18px 0;
  padding: 12px;
  border: 1px solid rgba(20, 74, 112, .13);
  border-radius: var(--r-md);
  background: linear-gradient(180deg, #fff, #f8fbfd);
  box-shadow: var(--shadow-xs);
  vertical-align: top;
  cursor: zoom-in;
}

.product-detail-page .z-rich-content__body figure:has(.z-rich-media--certificate)::after,
.product-detail-page .z-rich-content__body > a:has(.z-rich-media--certificate)::after {
  content: "Документ";
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 4px 8px;
  border-radius: var(--r-pill);
  background: rgba(14, 47, 75, .78);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.product-detail-page .z-rich-content__body .z-rich-media--certificate {
  width: 100%;
  height: 268px;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
  object-fit: contain;
}

.product-detail-page .z-rich-content__body figure:has(.z-rich-media--technical),
.product-detail-page .z-rich-content__body > a:has(.z-rich-media--technical) {
  width: min(100%, 860px);
  margin: 18px 0 24px;
  padding: 12px;
  border: 1px solid rgba(20, 74, 112, .11);
  border-radius: var(--r-md);
  background:
    linear-gradient(180deg, #fff, #f8fbfd),
    repeating-linear-gradient(45deg, rgba(20, 74, 112, .035) 0, rgba(20, 74, 112, .035) 1px, transparent 1px, transparent 14px);
  box-shadow: var(--shadow-xs);
}

.product-detail-page .z-rich-content__body .z-rich-media--technical {
  display: block;
  max-height: 560px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.product-detail-page .z-rich-content__body figure:has(.z-rich-media--inline) {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.product-rich-section {
  max-width: 1040px;
  margin: 28px 0;
  padding: 22px;
  border-radius: 12px;
  background: #fff;
}

.product-detail-page .product-rich-section {
  width: min(var(--product-content-width), calc(100% - 32px));
  max-width: var(--product-content-width);
  margin-right: auto;
  margin-left: auto;
}

.product-rich-section--functions,
.product-rich-section--advantages,
.product-rich-section--features,
.product-rich-section--applications,
.product-rich-section--variants,
.product-rich-section--keypoints,
.product-rich-section--accessories,
.product-rich-section--price-table,
.product-rich-section--related {
  padding: 4px 0 0;
  border-top: 1px solid rgba(20, 74, 112, .12);
  border-radius: 0;
  background: transparent;
}

.product-rich-section__head {
  display: grid;
  gap: 7px;
  margin-bottom: 16px;
}

.product-rich-section__head h3 {
  margin: 0;
  padding: 0;
  color: var(--ink);
  font-size: 22px;
  line-height: 1.18;
}

.product-rich-section__head h3::before {
  display: none;
}

.product-rich-section__head p {
  max-width: 780px;
  margin: 0;
  color: var(--muted);
  font-size: var(--fs-15);
  line-height: 1.55;
}

.product-rich-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0;
  border-top: 1px solid rgba(20, 74, 112, .08);
}

.product-detail-page .product-rich-card-grid {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.product-rich-card {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 15px 16px 15px 0;
  border: 0;
  border-bottom: 1px solid rgba(20, 74, 112, .08);
  border-radius: 0;
  background: transparent;
  color: inherit;
  text-decoration: none;
  box-shadow: none;
  transition: color var(--motion-fast), background var(--motion-fast);
}

.product-rich-card[href]:hover {
  color: var(--brand-800);
  background: rgba(236, 244, 249, .38);
}

.product-rich-card strong {
  color: var(--ink);
  font-size: var(--fs-16);
  line-height: 1.28;
}

.product-rich-card span {
  color: var(--muted);
  font-size: var(--fs-14);
  line-height: 1.48;
}

.product-rich-card em {
  margin-top: 3px;
  color: var(--brand-700);
  font-size: var(--fs-13);
  font-style: normal;
  font-weight: 800;
}

.product-rich-section--functions .product-rich-card,
.product-rich-section--advantages .product-rich-card,
.product-rich-section--features .product-rich-card,
.product-rich-section--applications .product-rich-card,
.product-rich-section--variants .product-rich-card,
.product-rich-section--keypoints .product-rich-card {
  position: relative;
  padding-left: 28px;
}

.product-rich-section--functions .product-rich-card::before,
.product-rich-section--advantages .product-rich-card::before,
.product-rich-section--features .product-rich-card::before,
.product-rich-section--applications .product-rich-card::before,
.product-rich-section--variants .product-rich-card::before,
.product-rich-section--keypoints .product-rich-card::before {
  content: "";
  position: absolute;
  top: 21px;
  left: 2px;
  width: 8px;
  height: 8px;
  border-radius: var(--r-pill);
  background: var(--accent-500);
  box-shadow: 0 0 0 4px rgba(15, 181, 177, .14);
}

.product-rich-media-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 14px;
}

.product-rich-media-card {
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(20, 74, 112, .1);
  border-radius: 12px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(20, 74, 112, .06);
  transition: transform var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast);
}

.product-rich-media-card[href]:hover {
  border-color: rgba(20, 74, 112, .22);
  box-shadow: 0 14px 30px rgba(20, 74, 112, .1);
}

.product-rich-media-card__image {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 9;
  padding: 12px;
  background: #f7fafc;
  border-bottom: 1px solid rgba(20, 74, 112, .08);
}

.product-rich-media-card__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product-rich-media-card__body {
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 14px;
}

.product-rich-media-card__body strong {
  color: var(--ink);
  font-size: var(--fs-16);
  line-height: 1.28;
}

.product-rich-media-card__body span {
  color: var(--muted);
  font-size: var(--fs-14);
  line-height: 1.45;
}

.product-rich-media-card__body em {
  color: var(--brand-700);
  font-size: var(--fs-13);
  font-style: normal;
  font-weight: 800;
}

.product-rich-table-wrap {
  overflow-x: auto;
  border: 1px solid rgba(20, 74, 112, .1);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.product-rich-price-table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
}

.product-rich-price-table th,
.product-rich-price-table td {
  padding: 13px 16px;
  border-bottom: 1px solid rgba(20, 74, 112, .08);
  text-align: left;
  vertical-align: top;
}

.product-rich-price-table th {
  background: #f4f8fb;
  color: var(--ink);
  font-size: var(--fs-14);
  font-weight: 800;
}

.product-rich-price-table td {
  color: var(--ink);
  font-size: var(--fs-15);
  line-height: 1.45;
}

.product-rich-price-table td:last-child {
  width: 32%;
  color: var(--muted);
}

.product-rich-price-table tr:last-child td {
  border-bottom: 0;
}

.product-rich-section--order-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 22px;
  border: 1px solid rgba(20, 74, 112, .1);
  background: linear-gradient(135deg, #f8fbfd, #fff);
  box-shadow: var(--shadow-xs);
}

.product-rich-section--order-form .product-rich-section__head {
  grid-column: 1 / -1;
  margin-bottom: -6px;
}

.product-rich-order-form__body {
  color: var(--ink);
  font-size: var(--fs-15);
  line-height: 1.6;
}

.product-rich-order-form__body p,
.product-rich-order-form__body ul {
  margin-top: 0;
}

.product-rich-order-form__body > :last-child {
  margin-bottom: 0;
}

.product-rich-order-form__actions {
  display: flex;
  justify-content: flex-end;
}

.product-rich-section--related .product-rich-section__head {
  margin-bottom: 10px;
  text-align: left;
}

.product-rich-section--related .product-rich-media-card-grid {
  grid-template-columns: 1fr;
  gap: 8px;
  border-top: 1px solid rgba(20, 74, 112, .08);
  justify-items: stretch;
}

.product-rich-section--related .product-rich-media-card {
  grid-template-columns: 72px minmax(0, 1fr);
  grid-template-rows: auto;
  align-items: center;
  justify-items: start;
  text-align: left;
  min-height: 76px;
  border: 0;
  border-bottom: 1px solid rgba(20, 74, 112, .08);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.product-rich-section--related .product-rich-media-card[href]:hover {
  transform: none;
  background: rgba(236, 244, 249, .45);
  border-color: rgba(20, 74, 112, .08);
  box-shadow: none;
}

.product-rich-section--related .product-rich-media-card__image {
  width: 58px;
  height: 58px;
  aspect-ratio: auto;
  padding: 6px;
  border: 1px solid rgba(20, 74, 112, .08);
  border-radius: var(--r-md);
  background: #f7fafc;
}

.product-rich-section--related .product-rich-media-card__body {
  padding: 10px 0;
}

.product-rich-section--related .product-rich-media-card__body strong {
  font-size: var(--fs-15);
}

.product-rich-section--certificates {
  padding: 22px;
  border: 1px solid rgba(20, 74, 112, .1);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.product-rich-cert-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 14px;
}

.product-rich-cert-grid .z-rich-certificate-card {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.product-rich-cert-grid .z-gallery__item {
  display: grid;
  position: relative;
  min-height: 268px;
  padding: 12px;
  border: 1px solid rgba(20, 74, 112, .13);
  border-radius: var(--r-md);
  background: linear-gradient(180deg, #fff, #f8fbfd);
  box-shadow: var(--shadow-xs);
  cursor: zoom-in;
}

.product-rich-cert-grid .z-gallery__item::after {
  content: "Документ";
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 4px 8px;
  border-radius: var(--r-pill);
  background: rgba(14, 47, 75, .78);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.product-rich-cert-grid .z-gallery__item img {
  width: 100%;
  height: 244px;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  object-fit: contain;
}

.product-detail-page .z-table-wrap {
  border-radius: var(--r-md);
  box-shadow: var(--shadow-xs);
}

.product-detail-page .z-table-wrap table {
  min-width: 720px;
  font-size: var(--fs-14);
}

.product-detail-page .z-table-wrap th,
.product-detail-page .z-table-wrap td {
  padding: 11px 14px;
  line-height: 1.45;
}

.product-detail-page .z-table-wrap th {
  width: 32%;
  color: var(--text-soft);
  font-weight: 500;
  background: #fbfdff;
}

.product-detail-page .z-table-wrap td {
  color: var(--text);
}

.product-detail-page .z-table-wrap tr:nth-child(even) td,
.product-detail-page .z-table-wrap tr:nth-child(even) th:not([colspan]) {
  background: #f8fbfd;
}

.product-detail-page .z-table-wrap th[colspan],
.product-detail-page .z-table-wrap .z-table__group {
  width: auto;
  padding: 12px 14px;
  color: var(--brand-800);
  font-weight: 800;
  background: var(--brand-50);
}

.product-detail-page .z-rich-content__body table {
  display: table;
  width: 100%;
  min-width: 680px;
  margin: 18px 0 24px;
  border-collapse: collapse;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-xs);
}

.product-detail-page .z-rich-content__body th,
.product-detail-page .z-rich-content__body td {
  padding: 11px 14px;
  border: 1px solid rgba(20, 74, 112, .1);
  line-height: 1.45;
  vertical-align: top;
}

.product-detail-page .z-rich-content__body th {
  color: var(--text-soft);
  font-weight: 500;
  background: #fbfdff;
}

.product-detail-page .z-rich-content__body tr:nth-child(even) td,
.product-detail-page .z-rich-content__body tr:nth-child(even) th {
  background: #f8fbfd;
}

.product-detail-page .z-card-grid {
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 14px;
}

.product-detail-page .z-card {
  border-radius: var(--r-md);
}

.product-detail-page .z-card--product .z-card__image {
  aspect-ratio: 1 / 1;
  background: #fff;
}

.product-detail-page .z-card--product .z-card__body strong,
.product-detail-page .z-card--material .z-card__body strong {
  font-size: var(--fs-16);
}

.product-detail-page .z-card__body {
  gap: 7px;
  padding: 14px;
}

.product-detail-page .z-card__body em {
  margin-top: 2px;
  font-size: var(--fs-13);
}

.product-detail-page .z-doc-list {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}

.product-detail-page .z-doc {
  position: relative;
  min-height: 84px;
  padding: 15px 16px 15px 48px;
  border-radius: var(--r-md);
}

.product-detail-page .z-doc::before {
  content: "";
  position: absolute;
  top: 17px;
  left: 16px;
  width: 22px;
  height: 22px;
  background: center/22px no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4f7a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><path d='M14 2v6h6'/><path d='M9 13h6'/><path d='M9 17h4'/></svg>");
}

.product-detail-page .z-block--cta {
  max-width: 1120px;
  padding: 22px 24px;
  border-radius: 12px;
}

@media (max-width: 980px) {
  .product-detail-page .product-hero {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .product-detail-page .product-hero__content {
    padding-top: 0;
  }

  .product-detail-page .product-hero h1 {
    font-size: 32px;
  }

  .product-detail-page .product-hero__main-image {
    min-height: 300px;
  }

  .product-detail-page .product-hero__image-nav,
  .product-detail-page .product-hero__main-image:hover .product-hero__image-nav,
  .product-detail-page .product-hero__zoom {
    opacity: 1;
  }
}

@media (max-width: 640px) {
  .product-detail-page .product-hero {
    width: calc(100% - 24px);
    margin-top: 16px;
    padding: 14px;
  }

  .product-detail-page .product-hero h1 {
    font-size: 28px;
  }

  .product-hero__highlights {
    grid-template-columns: 1fr;
  }

  .product-detail-page .product-hero__main-image {
    min-height: 240px;
  }

  .product-detail-page .product-hero__main-image img {
    max-height: 320px;
    padding: 14px;
  }

  .product-detail-page .z-rich-content__body figure:has(.z-rich-media--certificate),
  .product-detail-page .z-rich-content__body > a:has(.z-rich-media--certificate) {
    width: min(100%, 220px);
  }

  .product-detail-page .z-rich-content__body table {
    display: block;
    overflow-x: auto;
    min-width: 0;
  }

  .product-rich-section {
    padding: 16px;
  }

  .product-rich-section--order-form {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .product-rich-order-form__actions {
    justify-content: flex-start;
  }

  .product-rich-card-grid,
  .product-rich-cert-grid {
    grid-template-columns: 1fr;
  }

  .product-detail-page .z-block {
    width: calc(100% - 24px);
    margin-top: 24px;
    margin-bottom: 24px;
  }

  .product-detail-page .z-doc-list,
  .product-detail-page .z-card-grid {
    grid-template-columns: 1fr;
  }
}

/* === typography polish 2026-06-19: tidy heading line-breaks (no ugly auto-hyphenation) === */
.z-page-hero h1,
.z-page-block--standard.z-page-hero h1,
.z-block--text > h2,
.z-block h2,
.z-card__body strong,
.z-page-block h1, .z-page-block h2, .z-page-block h3,
.z-rich-content h2, .z-rich-content h3 {
  hyphens: manual;
  -webkit-hyphens: manual;
  overflow-wrap: break-word;
  word-break: normal;
  text-wrap: balance;
}

/* === design uplift (micro-polish) 2026-06-19 === */
/* Data tables: scannability + tactile feedback */
.z-table-wrap { box-shadow: var(--shadow-xs); }
.z-table-wrap td, .z-table-wrap th { transition: background var(--motion-fast); }
.z-table-wrap tbody tr:hover td,
.z-table-wrap table tr:hover td { background: var(--brand-50); }
/* Content links: clear, tasteful affordance */
.z-editor a, .z-rich-content a, .z-block--text a, .z-page-block .z-editor a {
  color: var(--brand-600);
  text-decoration-color: rgba(29, 79, 122, .35);
  text-underline-offset: 2px;
  transition: color var(--motion-fast), text-decoration-color var(--motion-fast);
}
.z-editor a:hover, .z-rich-content a:hover, .z-block--text a:hover,
.z-page-block .z-editor a:hover { color: var(--brand-800); text-decoration-color: currentColor; }
/* Accessibility: visible keyboard focus */
a:focus-visible, button:focus-visible, .button:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: none; box-shadow: var(--ring);
}
/* Refined text selection + smooth in-page scroll */
::selection { background: var(--accent-100); color: var(--ink); }
@media (prefers-reduced-motion: no-preference){ html { scroll-behavior: smooth; } }

/* === product hero v2 (reference card) 2026-06-19 === */
.product-hero__topline { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:10px; }
.product-hero__status { display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-12); font-weight:700; letter-spacing:.01em; color:var(--accent-600); background:var(--accent-100); padding:4px 11px; border-radius:var(--r-pill); }
.product-hero__status-dot { width:6px; height:6px; border-radius:50%; background:var(--accent-500); box-shadow:0 0 0 3px rgba(15,181,177,.18); }
.product-hero__article { font-size:var(--fs-12); color:var(--muted); font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.product-hero__kind { font-size:var(--fs-12); color:var(--soft); padding-left:10px; border-left:1px solid var(--line); }
.product-hero__specs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:16px 0 4px; }
.product-hero__spec { background:var(--surface-3); border:1px solid var(--hairline); border-radius:var(--r-md); padding:10px 12px; display:flex; flex-direction:column; gap:3px; min-width:0; }
.product-hero__spec-label { font-size:var(--fs-12); color:var(--muted); line-height:1.25; }
.product-hero__spec-value { font-size:var(--fs-17); font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.15; }
.product-hero__order { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.product-hero__price { display:flex; flex-direction:column; gap:2px; }
.product-hero__price-label { font-size:var(--fs-12); color:var(--soft); }
.product-hero__price-value { font-size:var(--fs-20); font-weight:800; color:var(--ink); }
.product-hero__trust { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.product-hero__trust-item { display:inline-flex; align-items:center; gap:8px; font-size:var(--fs-13); color:var(--text-soft); background:var(--surface); border:1px solid var(--hairline); border-radius:var(--r-md); padding:8px 12px; flex:1 1 auto; }
.product-hero__trust-icon { display:inline-flex; color:var(--brand-600,#1d4f7a); }
.product-hero__trust-icon svg { width:19px; height:19px; display:block; }
@media (max-width:640px){
  .product-hero__spec { padding:8px 9px; }
  .product-hero__spec-value { font-size:var(--fs-15); }
  .product-hero__order { gap:10px; }
  .product-hero__actions { width:100%; }
  .product-hero__trust-item { flex:1 1 100%; }
}

/* === product hero v2 — chip layout safety 2026-06-19 === */
.product-hero__specs { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); align-items: stretch; }
.product-hero__spec { justify-content: flex-start; }
.product-hero__spec-label { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.product-hero__spec-value { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:break-word; }

/* === product-detail gallery image sizing fix 2026-06-19 ===
   base .z-gallery__item img uses height:100% (circular w/o parent height) →
   portrait previews (certificates) collapse or blow up. Pin to natural ratio + cap. */
.product-detail-page .z-block--gallery .z-gallery__item img,
.product-detail-page .z-block--gallery-single .z-gallery__item img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 400px;
  object-fit: contain;
}
.product-detail-page .z-block--gallery-single .z-gallery {
  display: flex;
  justify-content: center;
}
.product-detail-page .z-block--gallery-single .z-gallery__item { max-width: 100%; }

/* === product hero thumbnails stretch fix 2026-06-19 ===
   taller content column stretched the media column → single-row thumbs grid
   ballooned (aspect-ratio:1 overridden by grid stretch). Pin to top, no stretch. */
.product-detail-page .product-hero__media { align-self: start; }
.product-hero__thumbs { align-content: start; }
.product-hero__thumb { align-self: start; height: auto; }

/* === sheet edits 2026-06-19 (rows 12,19,51) === */
/* row 12: heading less massive (lighter, smaller) */
.product-detail-page .product-hero h1 { font-size: 30px; font-weight: 700; line-height: 1.18; letter-spacing: -.01em; }
@media (max-width: 980px){ .product-detail-page .product-hero h1 { font-size: 26px; } }
@media (max-width: 640px){ .product-detail-page .product-hero h1 { font-size: 23px; } }
/* row 19: registry/document mark — never upscale small images (keeps them crisp) */
.product-rich-cert-grid .z-gallery__item img { width: auto; height: auto; max-width: 100%; max-height: 244px; margin: auto; }
/* row 51: characteristics table — wider name column, centered values & group headers */
.product-detail-page .z-table-wrap th[scope="row"] { width: 46%; }
.product-detail-page .z-table-wrap td { text-align: center; }
.product-detail-page .z-table-wrap .z-table__group { text-align: center; }

/* === fix: rich-card-grid auto-fill → auto-fit (2026-06-19) ===
   auto-fill created phantom empty columns → few long-text cards (Область применения /
   Примечания) became narrow & very tall with empty space on the right. auto-fit makes
   the present cards fill the full width. */
.product-rich-card-grid,
.product-detail-page .product-rich-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

/* === ecom catalog tiles 2026-06-19 === */
/* --- Subcategory cards → horizontal "browse category" tiles (distinct from products) --- */
.z-block--section .z-card-grid { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.z-card--section {
  display: flex; flex-direction: row; align-items: center; gap: 14px;
  padding: 12px 14px;
  border-left: 1px solid var(--brand-600, #1d4f7a);
}
.z-card--section .z-card__image {
  width: 60px; height: 60px; flex: none; aspect-ratio: auto;
  border-radius: var(--r-md); background: var(--surface-3); padding: 0;
}
.z-card--section .z-card__image img { object-fit: contain; padding: 7px; }
.z-card--section .z-card__body { flex: 1 1 auto; min-width: 0; gap: 3px; padding: 0; align-content: center; }
.z-card--section .z-card__body strong { font-size: var(--fs-15); }
.z-card--section .z-card__body span {
  font-size: var(--fs-13); color: var(--muted);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.z-card--section .z-card__body em { display: none; }
.z-card--section::after {
  content: ""; flex: none; width: 32px; height: 32px; border-radius: 50%;
  background: var(--brand-100, #e8f1f9) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4f7a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='M13 6l6 6-6 6'/></svg>") center/16px no-repeat;
  transition: background-color var(--motion-fast), transform var(--motion-fast);
}
.z-card--section[href]:hover { border-left-color: var(--accent-500, #0fb5b1); }
.z-card--section[href]:hover::after { background-color: var(--brand-200, #cfe2f3); transform: translateX(3px); }
/* --- Product & material tiles → ecom polish (hover lift + image zoom + footer link) --- */
.z-card--product .z-card__image { background: var(--surface-2); }
.z-card--product .z-card__image img { transition: transform var(--motion-base); }
.z-card--product[href]:hover { box-shadow: var(--shadow-md); border-color: var(--brand-200, #cfe2f3); }

.z-card--product .z-card__body em,
.z-card--material .z-card__body em {
  margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--hairline);
  display: flex; align-items: center; gap: 5px;
}
.z-card--product .z-card__body em::after,
.z-card--material .z-card__body em::after {
  content: ""; width: 14px; height: 14px; flex: none;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4f7a' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='M13 6l6 6-6 6'/></svg>") center/14px no-repeat;
}

/* === subcategory tile item count 2026-06-19 === */
.z-card--section .z-card__body .z-card__count {
  font-size: var(--fs-12); color: var(--brand-700, var(--brand-700)); font-weight: 700;
  margin-top: 2px; display: block; -webkit-line-clamp: none; overflow: visible;
}
.z-card--section .z-card__body span:not(.z-card__count) { -webkit-line-clamp: 1; }

/* === rich-content anchor nav (catalog landings) 2026-06-19 === */
.z-rich-toc { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 28px; padding: 14px 16px; background: var(--surface-3); border: 1px solid var(--hairline); border-radius: var(--r-lg); }
.z-rich-toc__link { font-size: var(--fs-13); line-height: 1.2; color: var(--text-soft); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-pill); padding: 6px 13px; text-decoration: none; transition: background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast); }
.z-rich-toc__link:hover { background: var(--brand-50, #f3f8fc); border-color: var(--brand-200, #cfe2f3); color: var(--brand-700, var(--brand-700)); }
.z-rich-toc__link--h2 { font-weight: 700; color: var(--ink); }
.z-rich-content__body h2, .z-rich-content__body h3 { scroll-margin-top: 88px; }
.z-page-block--type-catalog_landing .z-rich-content__body h2 { margin-top: 42px; }

/* === "Базовая комплектация" 2-col layout: photo left / text right === */
.z-basekit { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 28px; align-items: start; margin: 14px 0 30px; }
.z-basekit .z-basekit__media,
.z-basekit .z-basekit__text { margin: 0; }
.z-basekit__media .z-gallery { gap: 10px; }
.z-basekit__media .z-gallery__item img { max-height: 360px; }
.z-basekit__text .z-editor { margin-top: 0; }
@media (max-width: 760px) { .z-basekit { grid-template-columns: 1fr; gap: 16px; } }

/* === product/material tiles: allow up to 5 per row + basekit v2 (heading in right col) 2026-06-19 === */
.z-block--product .z-card-grid,
.z-block--material .z-card-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.z-basekit { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 28px; align-items: start; margin: 14px 0 30px; }
.z-basekit__media { margin: 0; }
.z-basekit__body { min-width: 0; }
.z-basekit__body > .z-block { margin: 0; }
.z-basekit__body > .z-block + .z-block { margin-top: 8px; }
.z-basekit__body > .z-block--text h2 { margin-top: 0; }
.z-basekit__media .z-gallery__item img { max-height: 360px; }
@media (max-width: 760px) { .z-basekit { grid-template-columns: 1fr; gap: 16px; } }

/* === fixes 2026-06-19: dop-komplektaciya full width + softer description photos === */
/* product/material card grids: auto-fit so cards fill the full container width (no narrow under-fill) */
.z-block--product .z-card-grid,
.z-block--material .z-card-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
/* description photos: softer, integrated figures (no harsh border → soft shadow + rounded) */
.product-detail-page .z-block--gallery .z-gallery__item {
  border: 0;
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: 0 2px 12px rgba(15, 48, 80, .07), 0 0 0 1px rgba(15, 48, 80, .045);
  padding: 12px;
}
.product-detail-page .z-block--gallery { margin: 16px 0 24px; }
.product-detail-page .z-block--gallery-single .z-gallery { display: flex; justify-content: center; }
.product-detail-page .z-block--gallery-single .z-gallery__item { max-width: min(100%, 720px); }

/* === description figure rows: text left / photo right === */
.z-figrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; margin: 16px 0 28px; }
.z-figrow__text { margin: 0; }
.z-figrow__media { display: flex; flex-direction: column; gap: 12px; margin: 0; min-width: 0; }
.z-figrow__media .z-block--gallery { margin: 0; }
.z-figrow__caption,
.z-figstrip__item .z-figrow__caption { font-size: var(--fs-12); color: var(--muted); text-align: center; line-height: 1.4; margin: -4px 0 0; }
.z-figstrip { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin: 6px 0 26px; }
.z-figstrip__item { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.z-figstrip__item .z-block--gallery { margin: 0; }
@media (max-width: 760px) { .z-figrow { grid-template-columns: 1fr; gap: 14px; } }

/* === soft description photos on ALL templates (figrows + support pages) 2026-06-19 === */
.z-figrow__media .z-gallery__item,
.z-figstrip__item .z-gallery__item,
.site-main .z-block--gallery .z-gallery__item {
  border: 0;
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: 0 2px 12px rgba(15, 48, 80, .07), 0 0 0 1px rgba(15, 48, 80, .045);
  padding: 12px;
}

/* === fix: basekit photo top-aligns with heading (override gallery margin) 2026-06-19 === */
.z-basekit .z-basekit__media { margin: 0; }

/* === product/material tiles: cap width so a lone/few card stays tile-sized (not stretched full-width) 2026-06-19 === */
.z-card--product,
.z-card--material { max-width: 300px; }

/* === table: note row (footnote) + empty-value cell 2026-06-22 === */
.product-detail-page .z-table-wrap td.z-table__note { text-align: left; color: var(--muted); font-size: 13px; line-height: 1.5; background: var(--surface-2); }
.product-detail-page .z-table-wrap td.z-table__empty { color: var(--soft, #9aa7b2); text-align: center; }

/* === figure: short caption/heading stacks above image (no side-by-side void) 2026-06-22 === */
.z-figcap { margin: var(--s-5, 24px) 0; }
.z-figcap__text { margin: 0 0 12px; }
.z-figcap__text > :first-child { margin-top: 0; }
.z-figcap__media { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.z-figcap__item { margin: 0; max-width: 560px; flex: 0 1 auto; }
.z-figcap__media--multi .z-figcap__item { max-width: 360px; flex: 0 1 340px; }
.z-figcap__item img { display: block; width: 100%; height: auto; border-radius: var(--r-lg, 12px); box-shadow: var(--shadow-sm); }
.z-figcap__caption { margin-top: 6px; font-size: 13px; color: var(--muted); line-height: 1.45; }

/* === fix: few product/material cards sit adjacent (cap track width, pack left) 2026-06-22 === */
.z-block--product .z-card-grid,
.z-block--material .z-card-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 300px)); justify-content: start; }

/* === dop/svyazannye on PRODUCT pages only: up to 5 tiles per row, smaller, left-aligned 2026-06-22 ===
   Scoped to .product-detail-page so it does NOT touch category "Позиции раздела" (catalog_landing)
   or material-card listings, which share the generic .z-block--product/.z-block--material .z-card-grid. */
.product-detail-page .z-card-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); justify-content: start; }
@media (max-width: 1080px) { .product-detail-page .z-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 860px)  { .product-detail-page .z-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .product-detail-page .z-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px)  { .product-detail-page .z-card-grid { grid-template-columns: 1fr; } }

/* === callout / notice plashka — site-styled admonition (replaces old WP red av_notification) 2026-06-23 === */
.z-callout { display: flex; gap: 14px; align-items: flex-start; margin: 22px 0; padding: 15px 18px; border-radius: var(--r-lg, 12px); border: 1px solid; }
.z-callout__icon { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; line-height: 1; color: #fff; margin-top: 1px; }
.z-callout__body { min-width: 0; }
.z-callout__title { margin: 0 0 4px; font-weight: 700; font-size: var(--fs-15, 15px); }
.z-callout__text { color: var(--text); font-size: var(--fs-14, 14px); line-height: 1.55; }
.z-callout__text p { margin: 0 0 6px; }
.z-callout__text p:last-child { margin: 0; }
.z-callout--warning { background: #fff7ec; border-color: #f1d6a3; }
.z-callout--warning .z-callout__title { color: #98590a; }
.z-callout--warning .z-callout__icon { background: #e6920f; }
.z-callout--warning .z-callout__icon::before { content: '!'; }
.z-callout--note, .z-callout--info { background: var(--brand-100, #e8f1f9); border-color: #cfe2f3; }
.z-callout--note .z-callout__title, .z-callout--info .z-callout__title { color: var(--brand-600, #1d4f7a); }
.z-callout--note .z-callout__icon, .z-callout--info .z-callout__icon { background: var(--brand-600, #1d4f7a); }
.z-callout--note .z-callout__icon::before, .z-callout--info .z-callout__icon::before { content: 'i'; font-family: Georgia, serif; font-style: italic; }

/* === icon-card grid — restored Enfold av_icon_box (2026-06-23) === */
@font-face { font-family:'entypo-fontello'; src:url('/local/templates/zetlab/assets/fonts/entypo-fontello.woff') format('woff'),url('/local/templates/zetlab/assets/fonts/entypo-fontello.ttf') format('truetype'); font-weight:normal; font-style:normal; font-display:swap; }
.z-iconcards { margin: 26px 0; }
.z-iconcards__sub { margin: -4px 0 16px; color: var(--muted); font-size: var(--fs-15,15px); }
.z-iconcards__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.z-iconcards__item { display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; padding:22px 16px; background:var(--surface-2,#f5f8fb); border:1px solid var(--hairline,#e6edf3); border-radius:var(--r-lg,12px); }
.z-iconcards__icon { font-family:'entypo-fontello'; font-size:42px; line-height:1; color:var(--brand-600,#1d4f7a); font-weight:normal; font-style:normal; speak:none; }
.z-iconcards__label { font-size:var(--fs-14,14px); font-weight:600; color:var(--ink,var(--ink)); line-height:1.35; }
@media (max-width:900px){ .z-iconcards__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .z-iconcards__grid{ grid-template-columns:1fr; } }

/* === icon-list — restored Enfold av_icon_box(title)/av_iconlist (2026-06-23) === */
.z-iconlist { margin: 24px 0; }
.z-iconlist__sub { margin: -4px 0 16px; color: var(--muted); font-size: var(--fs-15,15px); }
.z-iconlist__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px 30px; }
.z-iconlist__item { display: flex; gap: 14px; align-items: flex-start; }
.z-iconlist__icon { flex: 0 0 30px; font-family: 'entypo-fontello'; font-size: 26px; line-height: 1.25; color: var(--brand-600,#1d4f7a); text-align: center; font-weight: normal; font-style: normal; }
.z-iconlist__body { min-width: 0; }
.z-iconlist__title { margin: 0 0 3px; font-weight: 700; font-size: var(--fs-15,15px); color: var(--ink,var(--ink)); }
.z-iconlist__text { color: var(--text); font-size: var(--fs-14,14px); line-height: 1.5; }
@media (max-width: 620px){ .z-iconlist__grid{ grid-template-columns: 1fr; } }

/* === accordion — restored Enfold av_toggle (2026-06-23) === */
.z-accordion { margin: 22px 0; display: grid; gap: 8px; }
.z-accordion__item { border: 1px solid var(--hairline,#e6edf3); border-radius: var(--r-md,10px); overflow: hidden; background: #fff; }
.z-accordion__summary { cursor: pointer; padding: 14px 18px; font-weight: 600; font-size: var(--fs-15,15px); color: var(--ink,var(--ink)); background: var(--surface-2,#f5f8fb); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.z-accordion__summary::-webkit-details-marker { display: none; }
.z-accordion__summary::after { content: '+'; font-size: 22px; line-height: 1; color: var(--brand-600,#1d4f7a); flex: 0 0 auto; }
.z-accordion__item[open] > .z-accordion__summary::after { content: '\2013'; }
.z-accordion__item[open] > .z-accordion__summary { color: var(--brand-600,#1d4f7a); }
.z-accordion__content { padding: 14px 18px; color: var(--text); font-size: var(--fs-14,14px); line-height: 1.55; }
.z-accordion__content p { margin: 0 0 8px; } .z-accordion__content p:last-child { margin: 0; }
.z-accordion__content table { width: 100%; border-collapse: collapse; margin: 8px 0; font-size: var(--fs-13,13px); }
.z-accordion__content th, .z-accordion__content td { border: 1px solid var(--line,#e2e9f0); padding: 6px 10px; text-align: left; }

/* === ZETLAB restored order forms (av_contact recovery) — design-system theming === */
.z-orderform{margin:32px 0;padding:28px 28px 30px;background:var(--surface,#fff);border:1px solid var(--line,#dde5ee);border-radius:var(--r-xl,18px);box-shadow:var(--shadow-sm)}
.z-orderform__title{margin:0 0 6px;font-size:var(--fs-20,20px);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--ink,#0d1a2b)}
.z-orderform__intro{margin:0 0 18px;color:var(--text-soft,#3b4a5e);font-size:var(--fs-15,15px);line-height:1.55}
.z-orderform__intro p{margin:0 0 8px}
.z-orderform__intro ul{margin:6px 0 0;padding-left:18px}
.z-orderform__intro a{color:var(--brand-600,#1d4f7a);text-decoration:underline}
.z-orderform__form{margin:0}
.z-orderform__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.z-orderform__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px 16px}
.z-orderform__field{display:flex;flex-direction:column;gap:6px;grid-column:span 6;min-width:0}
.z-orderform__field--third{grid-column:span 2}
.z-orderform__field--half{grid-column:span 3}
.z-orderform__field--full{grid-column:span 6}
.z-orderform__lbl{font-size:var(--fs-13,13px);font-weight:600;color:var(--text,#1f2a3a);line-height:1.3}
.z-orderform__req{color:var(--danger-500,#dc2626);font-style:normal}
.z-orderform__field input,.z-orderform__field select,.z-orderform__field textarea{
  width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line,#dde5ee);border-radius:var(--r-sm,8px);
  background:var(--surface,#fff);font:inherit;font-size:var(--fs-15,15px);color:var(--text,#1f2a3a);
  transition:border-color .15s,box-shadow .15s}
.z-orderform__field input::placeholder,.z-orderform__field textarea::placeholder{color:var(--soft,#8b97a7)}
.z-orderform__field input:focus,.z-orderform__field select:focus,.z-orderform__field textarea:focus{
  outline:none;border-color:var(--brand-600,#1d4f7a);box-shadow:var(--ring,0 0 0 3px rgba(29,79,122,.22))}
.z-orderform__field textarea{resize:vertical;min-height:92px}
.z-orderform__field.is-invalid input,.z-orderform__field.is-invalid select,.z-orderform__field.is-invalid textarea{
  border-color:var(--danger-500,#dc2626);box-shadow:0 0 0 3px var(--danger-100,#fde2e2)}
.z-orderform__field--check{flex-direction:row;align-items:flex-start;gap:10px;grid-column:span 6;margin-top:2px}
.z-orderform__field--check input{width:18px;height:18px;flex:0 0 18px;margin-top:1px;accent-color:var(--brand-600,#1d4f7a)}
.z-orderform__field--check span{font-size:var(--fs-13,13px);color:var(--text-soft,#3b4a5e);line-height:1.45;font-weight:400}
.z-orderform__field--check a{color:var(--brand-600,#1d4f7a);text-decoration:underline}
.z-orderform__field--check a:hover{color:var(--brand-700,#143c5e)}
.z-orderform__actions{display:flex;align-items:center;gap:16px;margin-top:22px;flex-wrap:wrap}
.z-orderform__actions .button{min-height:46px}
.z-orderform__status{font-size:var(--fs-14,14px);line-height:1.4;color:var(--muted,#5e6e85)}
.z-orderform__status.is-error{color:var(--danger-500,#dc2626)}
.z-orderform__status.is-ok{color:var(--success-500,#16a34a);font-weight:600}
@media (max-width:680px){
  .z-orderform{padding:22px 18px 24px}
  .z-orderform__grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .z-orderform__field--third,.z-orderform__field--half,.z-orderform__field--full{grid-column:span 2}
}

/* === category landing "Позиции раздела": compact product tiles that fill the row (fix oversized tiles) 2026-06-24 ===
   Scoped to catalog_landing + product-cards only — does NOT affect product-detail (.product-detail-page)
   dop/svyazannye grids or material-card listings, which share .z-block--product/.z-card--product. */
.z-page-block--type-catalog_landing.z-page-block--product-cards .z-card-grid {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  justify-content: stretch;
  gap: 16px;
}
.z-page-block--type-catalog_landing.z-page-block--product-cards .z-card--product { max-width: none; }

/* === unify content width: product hero same width as content blocks 2026-06-25 === */
.product-detail-page .product-hero {
  width: min(var(--product-content-width), calc(100% - 32px));
  max-width: var(--product-content-width);
  margin-left: auto;
  margin-right: auto;
}
/* === unify content width: standard editorial text column matches block width (980 -> 1040) 2026-06-25 === */
.z-page-block--standard.z-page-block--text,
.z-page-block--standard.z-block--text,
.z-page-block--standard.z-page-block--text .z-editor {
  max-width: min(1040px, calc(100% - 32px));
}


/* === GLOBAL unified container width — Поддержка: standard family + text all match base width (1168) 2026-06-25 === */
.z-page-block.z-page-block--standard,
.z-page-block.z-page-block--standard .z-editor,
[class*="z-page-block--type-support"].z-block--text,
[class*="z-page-block--type-support"].z-block--text .z-editor {
  max-width: min(var(--container), calc(100% - 32px));
}

/* === GLOBAL unified container width (catalog + Поддержка): one width everywhere = base 1168 (override all per-type widths) 2026-06-25 === */
.product-detail-page > .z-basekit,
.product-detail-page > .z-block,
.product-detail-page > .product-rich-section,
.site-main > .container > .z-page-block,
.site-main > .container > .z-page-hero {
  max-width: min(var(--container), calc(100% - 32px)) !important;
  width: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.product-detail-page .z-block--text .z-editor,
.site-main .container .z-block--text .z-editor,
.z-page-block--text .z-editor {
  max-width: none !important;
}

/* === product/catalog content lists: restore bullet indent so markers stay inside container 2026-06-25 === */
.z-page-block--catalog-product .z-editor ul,
.z-page-block--catalog-product .z-editor ol {
  padding-left: 1.35em;
}

/* ===== ULTRA-WIDE support (option B) — grow content container on large screens 2026-06-25 ===== */
@media (min-width: 1600px) { :root { --container: 1320px; } }
@media (min-width: 1920px) { :root { --container: 1480px; } }
@media (min-width: 2560px) { :root { --container: 1680px; } }
@media (min-width: 3360px) { :root { --container: 1860px; } }
/* (removed 2026-06-30) text now fills full container width when there is no side-by-side photo, per request;
   text paired with a photo stays constrained by its own grid column (media_text / basekit / figrow). */
/* fix: material-card grids with few items must not stretch tracks (cards stay ~300px, packed left, no gaps) 2026-06-25 */
.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(210px, 300px));
  justify-content: start;
}


/* fix: no-media MATERIAL card grids (numbered link cards) — track width = card width so few items pack left without gaps 2026-06-25 */
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card-grid,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 300px));
  justify-content: start;
}


/* hero (first block, with backdrop) spans full header-container width; body blocks keep their width 2026-06-25 */
.product-detail-page > .product-hero {
  max-width: none !important;
  width: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* page.detail heroes (first block, backdrop) also span full header-container width 2026-06-25 */
.site-main > .container > .z-page-hero,
.site-main > .container > .z-page-block.z-page-hero {
  max-width: none !important;
  width: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* === stack section heading + intro text 2026-06-30 — text goes UNDER heading, full width (was right column) === */
.z-block__head { grid-template-columns: 1fr !important; align-items: start !important; gap: 8px !important; }


/* === group landing image with heading 2026-06-30: image-link belongs to the heading that FOLLOWS it (was visually orphaned above) === */
.z-rich-content__body > a:has(> img) { display: block; margin: 42px 0 0; }
.z-rich-content__body > a:has(> img) > img { margin: 0; }
.z-rich-content__body > a:has(> img) + h2,
.z-rich-content__body > a:has(> img) + h3,
.z-rich-content__body > a:has(> img) + h4 { margin-top: 6px; }

/* === redesigned category tiles v2 (proportional photo + balanced type) 2026-06-30 === */
.z-card-grid { grid-template-columns: repeat(auto-fill, minmax(248px, 1fr)); gap: 20px; }
.z-card--section {
  display: flex; flex-direction: column; padding: 0; border-left: 0;
  background: #fff; border: 1px solid var(--hairline, rgba(20,74,112,.10)); border-radius: var(--r-lg);
  overflow: hidden; box-shadow: 0 3px 12px rgba(14,47,75,.05);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.z-card--section:hover { box-shadow: 0 14px 32px rgba(14,47,75,.13); border-color: rgba(28,106,160,.38); }
.z-card--section .z-card__image {
  width: 100%; aspect-ratio: 16 / 10; height: auto; flex: none; border-radius: 0; overflow: hidden;
  background: #f4f7fb; border-bottom: 1px solid rgba(20,74,112,.07);
  display: flex; align-items: center; justify-content: center; padding: 12px;
}
.z-card--section .z-card__image img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; transition: transform .4s ease; }
.z-card--section:hover .z-card__image img {  }
.z-card--section .z-card__body { display: flex; flex-direction: column; gap: 3px; padding: 13px 15px 14px; }
.z-card--section .z-card__body strong { font-size: 15px; font-weight: 650; line-height: 1.32; color: var(--ink); letter-spacing: -.005em; -webkit-line-clamp: 2; }
.z-card--section .z-card__body .z-card__count { font-size: 12.5px; font-weight: 500; color: var(--muted,#6b7a89); background: none; padding: 0; margin: 2px 0 0; }
.z-card--section .z-card__body em { margin-top: 9px; font-style: normal; font-weight: 600; color: var(--brand-600,#1d4f7a); font-size: 12.5px; display: inline-flex; align-items: center; gap: 5px; }
.z-card--section .z-card__body em::after { content: "\2192"; transition: transform .18s ease; }
.z-card--section:hover .z-card__body em::after { transform: translateX(3px); }

/* === rich-content figure-cards grid 2026-06-30 — turn narrow figure-cards into a clean grid (СМИК-type landings) === */
.z-rich-content__body a:has(> figure),
.z-rich-content__body > figure {
  display: inline-flex; flex-direction: column; vertical-align: top;
  width: min(100%, 288px); margin: 6px 16px 22px 0;
  background: #fff; border: 1px solid rgba(20,74,112,.10); border-radius: 12px; overflow: hidden;
  box-shadow: 0 3px 12px rgba(14,47,75,.05); text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}
.z-rich-content__body a:has(> figure):hover { box-shadow: 0 12px 28px rgba(14,47,75,.12); }
.z-rich-content__body a:has(> figure) > figure { margin: 0; display: block; }
.z-rich-content__body a:has(> figure) img,
.z-rich-content__body > figure > img { width: 100%; height: 158px; object-fit: cover; margin: 0; border-radius: 0; background:#f4f7fb; }
.z-rich-content__body figcaption { padding: 12px 14px 14px; margin: 0; color: var(--muted,#6b7a89); font-size: 13px; }
.z-rich-content__body figcaption h2, .z-rich-content__body figcaption h3, .z-rich-content__body figcaption h4 {
  margin: 0 0 6px; font-size: 15.5px; line-height: 1.28; color: var(--ink);
}
/* headings/text in these landings: readable, full width */
.z-rich-content__body > h2 { margin: 40px 0 14px; }
.z-rich-content__body > h3 { margin: 30px 0 10px; }
/* tables in polотно: cleaner */
.z-rich-content__body table { width: 100%; border-collapse: collapse; margin: 18px 0; }
.z-rich-content__body table td, .z-rich-content__body table th { border: 1px solid rgba(20,74,112,.12); padding: 10px 12px; vertical-align: middle; }
.z-rich-content__body table img { max-width: 160px; height: auto; margin: 0; }

/* rich-content figure-card grid container 2026-06-30 */
.z-rc-cardgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 18px; margin: 22px 0 28px; }
.z-rc-cardgrid a:has(> figure) { width: auto; margin: 0; }

/* smik-td-mid: center product-kit table cells 2026-06-30 */
.z-rich-content__body table td, .z-rich-content__body table th { vertical-align: middle !important; }

/* rich-content base-kit product cards 2026-06-30 */
.z-rc-kitgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; margin: 20px 0 28px; }
.z-rc-kitgrid ul.z-rc-kititem { list-style: none; margin: 0; padding: 16px 16px 18px; border: 1px solid rgba(20,74,112,.10); border-radius: 12px; background: #fff; box-shadow: 0 3px 12px rgba(14,47,75,.05); display: flex; flex-direction: column; align-items: center; text-align: center; transition: box-shadow .18s, transform .18s; }
.z-rc-kitgrid ul.z-rc-kititem:hover { box-shadow: 0 10px 26px rgba(14,47,75,.10); }
.z-rc-kitgrid ul.z-rc-kititem li { margin: 0; padding: 0; width: 100%; list-style: none; }
.z-rc-kitgrid ul.z-rc-kititem li:first-child { order: 2; margin-top: 12px; font-weight: 700; }
.z-rc-kitgrid ul.z-rc-kititem li:first-child a { color: var(--brand, #144a70); text-decoration: none; font-size: 15px; line-height: 1.3; }
.z-rc-kitgrid ul.z-rc-kititem li:last-child { order: 1; display: flex; flex-direction: column; align-items: center; color: #5b7488; font-size: 13px; }
.z-rc-kitgrid ul.z-rc-kititem img.z-rich-media--inline { max-width: 100%; height: 128px; object-fit: contain; margin: 0 0 8px; }
.z-rc-kitgrid ul.z-rc-kititem li:last-child br { display: none; }

/* smik-topgrid-4: system/software landing product-cards fit 4 per row 2026-07-01 */
.z-page-block--type-catalog_system_landing.z-page-block--product-cards .z-card-grid,
.z-page-block--type-catalog_software_landing.z-page-block--product-cards .z-card-grid,
.z-page-block--type-catalog_system_landing.z-page-block--child-page-cards .z-card-grid,
.z-page-block--type-catalog_software_landing.z-page-block--child-page-cards .z-card-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 258px), 1fr)) !important;
}

/* rich-content parameter/calculator tables: shrink to content, no empty right gap 2026-07-01 */
.z-rich-content__body table.z-rc-paramtable { width: auto !important; max-width: 680px; }
.z-rich-content__body table.z-rc-paramtable td:last-child { min-width: 96px; background: rgba(236,244,249,.5); }
.z-rich-content__body table.z-rc-paramtable td[colspan] { background: rgba(236,244,249,.86); font-weight: 700; }

/* rich-content portfolio gallery grid 2026-07-01 */
.z-rc-pfgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(216px, 1fr)); gap: 16px; margin: 20px 0 26px; }
.z-rc-pfcard { border: 1px solid rgba(20,74,112,.10); border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 3px 12px rgba(14,47,75,.05); display: flex; flex-direction: column; }
.z-rc-pfcard img.z-rich-media--inline { width: 100%; height: 152px; object-fit: cover; margin: 0; display: block; }
.z-rc-pfcard h3 { font-size: 15px; margin: 12px 14px 2px; color: var(--ink, #12354e); }
.z-rc-pfcard .z-rc-pfloc { margin: 0 14px 14px; color: #5b7488; font-size: 13px; }

/* tile-arrow-dedup: remove leftover circular arrow button on category tiles (v1 ::after) — keep only "Подробнее →" text 2026-07-01 */
.z-card--section::after { content: none !important; display: none !important; }

/* landing-fulltext: landing/material rich-content text fills container width (no left-pin) 2026-07-01 */
.z-page-block--type-catalog_system_landing .z-rich-content__body > p,
.z-page-block--type-catalog_system_landing .z-rich-content__body > ul,
.z-page-block--type-catalog_system_landing .z-rich-content__body > ol,
.z-page-block--type-catalog_system_landing .z-rich-content__body > h2,
.z-page-block--type-catalog_system_landing .z-rich-content__body > h3,
.z-page-block--type-catalog_system_landing .z-rich-content__body > p:first-child,
.z-page-block--type-catalog_software_landing .z-rich-content__body > p,
.z-page-block--type-catalog_software_landing .z-rich-content__body > ul,
.z-page-block--type-catalog_software_landing .z-rich-content__body > ol,
.z-page-block--type-catalog_software_landing .z-rich-content__body > h2,
.z-page-block--type-catalog_software_landing .z-rich-content__body > h3,
.z-page-block--type-catalog_software_landing .z-rich-content__body > p:first-child,
.z-page-block--type-catalog_system_material .z-rich-content__body > p,
.z-page-block--type-catalog_system_material .z-rich-content__body > ul,
.z-page-block--type-catalog_system_material .z-rich-content__body > ol,
.z-page-block--type-catalog_system_material .z-rich-content__body > h2,
.z-page-block--type-catalog_system_material .z-rich-content__body > h3,
.z-page-block--type-catalog_system_material .z-rich-content__body > p:first-child,
.z-page-block--type-catalog_software_material .z-rich-content__body > p,
.z-page-block--type-catalog_software_material .z-rich-content__body > ul,
.z-page-block--type-catalog_software_material .z-rich-content__body > ol,
.z-page-block--type-catalog_software_material .z-rich-content__body > h2,
.z-page-block--type-catalog_software_material .z-rich-content__body > h3,
.z-page-block--type-catalog_software_material .z-rich-content__body > p:first-child {
  max-width: none;
}

/* landing-appcards-4: application-card lists fit 4 per row on desktop, wrap only when narrow 2026-07-01 */
.z-page-block--type-catalog_system_landing .z-rich-content__body ul,
.z-page-block--type-catalog_system_landing .z-rich-content__body ol,
.z-page-block--type-catalog_software_landing .z-rich-content__body ul,
.z-page-block--type-catalog_software_landing .z-rich-content__body ol,
.z-page-block--type-catalog_system_material .z-rich-content__body ul,
.z-page-block--type-catalog_system_material .z-rich-content__body ol,
.z-page-block--type-catalog_software_material .z-rich-content__body ul,
.z-page-block--type-catalog_software_material .z-rich-content__body ol {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

/* bare figures inside card grid (unlinked cards) 2026-07-06 */
.z-rc-cardgrid > figure { width: auto; margin: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(20,74,112,.10); border-radius: 12px; overflow: hidden; box-shadow: 0 3px 12px rgba(14,47,75,.05); }

/* z-calc cable calculator 2026-07-06 */
.z-rich-content__body .z-calc { display:flex; flex-wrap:wrap; gap:14px 22px; align-items:flex-start; margin:14px 0 6px; }
.z-rich-content__body table.z-calc__in { width:auto; max-width:520px; border-collapse:collapse; margin:0; }
.z-rich-content__body table.z-calc__in td { border:1px solid rgba(20,74,112,.12); padding:9px 12px; vertical-align:middle; }
.z-rich-content__body table.z-calc__in .z-calc__h { background:rgba(236,244,249,.86); font-weight:700; }
.z-calc__in input[type=number] { width:110px; padding:6px 8px; border:1px solid rgba(20,74,112,.25); border-radius:8px; font:inherit; }
.z-calc__in input:invalid { border-color:var(--danger-500); }
.z-calc__btn { margin-top:4px; }
.z-calc--err::after { content:"Заполните все поля корректными числами"; color:var(--danger-500); font-size:13px; display:block; width:100%; margin-top:4px; }
.z-rich-content__body table.z-calc__res td:last-child { min-width:120px; font-weight:600; color:var(--brand-700,var(--brand-700)); }
.z-rich-content__body table.z-calc__res.z-calc--filled td:last-child { background:rgba(15,181,177,.08); }

.z-rich-content__body .z-calc > p { flex-basis:100%; width:100%; margin:4px 0 2px; }

.z-calc__in select { padding:6px 8px; border:1px solid rgba(20,74,112,.25); border-radius:8px; font:inherit; max-width:230px; }

/* z-calc responsive: never overflow narrow screens 2026-07-06 */
.z-rich-content__body table.z-rc-paramtable,
.z-rich-content__body table.z-calc__res,
.z-rich-content__body table.z-calc__in { min-width: 0; }
@media (max-width: 767px) {
  .product-detail-page .z-rich-content__body table { display: block; overflow-x: auto; min-width: 0; }
}

/* опорные таблицы расчётов — не показывать пользователю (как на боевом .paramadmin) 2026-07-20 */
.z-rich-content__body table.paramadmin,
.paramadmin { display: none !important; }

/* справочная таблица AWG — опорная для калькулятора, пользователю не показывается 2026-07-20 */
.z-rich-content__body table.z-calc__ref,
table.z-calc__ref { display: none !important; }

/* z-card__body--stretch-fix: карточки-разделы — текстовый блок на всю ширину,
   иначе при align-items:center короткие заголовки центрируются 2026-07-20 */
.z-card--section .z-card__body { align-self: stretch; width: 100%; }

/* kititem-no-plate: внутри карточек-комплектов (.z-rc-kititem) у li не должно быть
   второй подложки — правило плашек лендингов (.z-page-block--type-catalog_*_material li)
   давало белый фон+рамку+тень+отступ 36px под маркер, которого нет. 2026-07-20 */
.z-rich-content__body ul.z-rc-kititem li,
.z-rc-kitgrid ul.z-rc-kititem li {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

/* tenzo-scheme-bigimg: страницу со схемной таблицей расширяем до ширины секции (контейнерно, без перекоса) + крупные картинки 2026-07-21 */
.z-rich-content__body:has(table){ max-width: none; }
.z-rich-content__body table:has(img){ width: 100%; max-width: none; table-layout: auto; }
.z-rich-content__body table img{ max-width: 340px; width: 100%; height: auto; }
.z-rich-content__body table td:has(img){ text-align: center; width: 30%; }

/* card-tile-fit: плитки товаров в каталоге — фото не обрезается (aspect-ratio брал ширину из растянутой высоты карточки), длинные названия переносятся по слогам 2026-07-21 */
.z-card--product{ align-content: start; }
.z-card--product .z-card__image{ width: 100%; align-self: start; }
.z-card--product .z-card__body strong{ overflow-wrap: break-word; hyphens: auto; }

/* hero-heading-left: легаси-герой (.page-hero с вложенным .container) центрировал заголовок — у .container margin:auto, а в грид-сетке .page-hero auto-маргины центрируют (+140px). Выравниваем влево. Дизайн-систему .z-page-hero и .home-hero не трогаем. 2026-07-21 */
.page-hero:not(.z-page-hero):not(.home-hero) > .container{ margin-left: 0; margin-right: 0; }

/* zbe-subsup-render: корректный рендер над-/подстрочных в rich-content + в редакторе 2026-07-22 */
.z-rich-content__body sub,.z-rich-content__body sup{line-height:0;font-size:75%}
.zbe-rich sub,.zbe-rich sup{line-height:0;font-size:75%}

/* zbe-table-fillwidth: таблицы в rich-content на десктопе тянутся во всю ширину (ячейки заполняют), на мобильном — горизонтальная прокрутка 2026-07-22 */
@media (min-width: 1000px){
  .z-rich-content__body table{ display: table; width: 100%; }
}

/* ---------- taste-20260807: анти-шаблонная полировка ---------- */
/* Герой главной: кегль ниже, заголовок держится в 2-3 строки, CTA виден без скролла */
.home-hero { min-height: 500px; padding: 72px 0; }
.home-hero h1 { font-size: clamp(30px, 4.4vw, 52px); }
@media (max-width: 760px) {
  .home-hero h1 { hyphens: auto; }
}

/* «Готовые решения» — горизонтальные плитки (другая layout-семья, не дубль карточной сетки) */
.home-solution-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.home-solution-tile {
  display: flex; align-items: center; gap: 16px;
  padding: 12px 18px 12px 12px;
  border: 1px solid rgba(20, 74, 112, .12);
  border-radius: 12px;
  background: #fff;
  color: inherit; text-decoration: none;
  transition: border-color .18s var(--ease, ease), box-shadow .18s var(--ease, ease);
}
.home-solution-tile:hover { border-color: rgba(20, 74, 112, .32); box-shadow: 0 6px 18px rgba(10, 40, 70, .08); }
.home-solution-tile img { width: 96px; height: 68px; object-fit: cover; border-radius: var(--r-sm); flex: 0 0 auto; }
.home-solution-tile span { font-weight: 600; line-height: 1.35; }
@media (max-width: 760px) {
  .home-solution-list { grid-template-columns: 1fr; }
}

/* Карточки-ссылки (Решения и пр.): убрана декоративная нумерация 01/02/… */
.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card {
  grid-template-columns: minmax(0, 1fr);
}
.z-page-block.z-block--cards-no-media.z-page-block--child-page-cards .z-card::before,
.z-page-block.z-block--cards-no-media.z-page-block--article-cards .z-card::before,
.z-page-block.z-block--cards-no-media.z-page-block--material-cards .z-card::before,
.z-page-block.z-block--cards-no-media.z-page-block--catalog.z-page-block--product-cards .z-card::before,
.z-page-block.z-block--cards-repeated-media.z-page-block--child-page-cards .z-card::before,
.z-page-block.z-block--cards-repeated-media.z-page-block--article-cards .z-card::before,
.z-page-block.z-block--cards-repeated-media.z-page-block--material-cards .z-card::before,
.z-page-block.z-block--cards-repeated-media.z-page-block--catalog.z-page-block--product-cards .z-card::before {
  display: none;
}
.home-hero__content { max-width: 880px; }
.home-hero p { max-width: 640px; }

/* Компактный блок «текст + фото» на главной (split-section) */
@media (min-width: 900px) {
  .split-section {
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr);
    gap: 32px;
    padding: 28px;
  }
  /* колонка с фото подчиняется высоте текста: height:0 + min-height:100% не даёт
     фотографиям растягивать блок, а contain не даёт их обрезать */
  .split-section { align-items: center; }
  .split-section__media { align-self: stretch; height: 0; min-height: 100%; }
  .split-section__media img { min-height: 0; max-height: 100%; flex: 0 1 auto; object-fit: contain; }
  /* несколько фотографий: не сжимаем их в высоту текста, а показываем целиком
     в столбик — блок при этом становится выше */
  .split-section__media--multi { height: auto; min-height: 100%; }
  .split-section__media--multi img { flex: 0 1 auto; height: auto; max-height: 280px; }
}
.split-section__copy h2 {
  margin: 0 0 10px;
  font-size: var(--fs-28);
}
.split-section__copy p { margin: 0 0 10px; }
.split-section .solution-links { margin-top: 14px; }
.split-section .product-actions { margin-top: 16px; }
.split-section--soft .callout { margin-top: 14px; padding: 12px 14px; }



/* ==== Подпись, приклеенная к одиночной фотографии ==== */
.z-figcaption {
  margin: 10px auto 0;
  max-width: 720px;
  font-size: var(--fs-14);
  color: var(--text-soft);
  text-align: center;
}

/* ==== Модальное окно «Запросить КП» ==== */
.zkp-overlay {
  position: fixed; inset: 0; z-index: 1200;
  display: none; align-items: flex-start; justify-content: center;
  padding: 48px 16px;
  background: rgba(13, 26, 43, .55);
  overflow-y: auto;
}
.zkp-overlay.is-open { display: flex; }
.zkp-dialog {
  width: min(560px, 100%);
  background: #fff;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  padding: 28px;
}
.zkp-dialog h3 { margin: 0 0 4px; font-size: var(--fs-22); }
.zkp-dialog__product {
  margin: 0 0 18px;
  font-family: var(--font-mono);
  font-size: var(--fs-14);
  color: var(--text-soft);
}
.zkp-dialog__close {
  float: right;
  font-size: 22px; line-height: 1;
  color: var(--text-soft);
  padding: 2px 8px;
}
.zkp-dialog__alt {
  margin: 14px 0 0;
  font-size: var(--fs-13);
  color: var(--text-soft);
}
.zkp-dialog__alt a { color: var(--brand-600); text-decoration: underline; }

/* ---------- 26. Просмотрщик изображений (перенесён из footer.php) ---------- */
.zlb{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(12,20,34,.92);padding:24px;opacity:0;transition:opacity .16s ease}
.zlb.is-on{opacity:1}
.zlb__fig{margin:0;max-width:min(1100px,94vw);max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:14px}
.zlb__img{max-width:100%;max-height:82vh;object-fit:contain;background:#fff;border-radius:8px;box-shadow:0 18px 60px rgba(0,0,0,.45)}
.zlb__cap{color:#e8eef7;font-size:15px;line-height:1.4;text-align:center;max-width:760px}
.zlb__count{color:#8fa3bd;font-size:13px}
.zlb__btn{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:none;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.zlb__btn:hover{background:rgba(255,255,255,.26)}
.zlb__prev{left:18px}.zlb__next{right:18px}
.zlb__close{position:absolute;top:16px;right:18px;width:44px;height:44px;border:none;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:24px;cursor:pointer}
.zlb__close:hover{background:rgba(255,255,255,.26)}
@media (max-width:640px){.zlb{padding:12px}.zlb__btn{width:42px;height:42px;font-size:22px}.zlb__prev{left:6px}.zlb__next{right:6px}}

/* В режиме правки Битрикс оборачивает блоки дополнительным контейнером, и правила
   выше, завязанные на прямое родство, переставали действовать: блоки расползались
   на всю ширину, из-за чего сертификаты и документы выглядели иначе. Повторяем их. */
.product-detail-page > .z-editarea > .z-basekit,
.product-detail-page > .z-editarea > .z-block,
.product-detail-page > .z-editarea > .product-rich-section,
.site-main > .container > .z-editarea > .z-page-block,
.site-main > .container > .z-editarea > .z-page-hero {
  max-width: min(var(--container), calc(100% - 32px)) !important;
  width: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.site-main > .container > .z-editarea > .z-page-hero,
.site-main > .container > .z-editarea > .z-page-block.z-page-hero {
  max-width: none !important;
  width: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ——— Согласие на обработку персональных данных в компактных формах ——— */
.z-form-consent { flex: 1 1 100%; display: flex; gap: 8px; align-items: flex-start; margin-top: 4px; font-size: 13px; line-height: 1.45; color: #5a6b7d; }
.z-form-consent input { flex: 0 0 auto; margin-top: 3px; }
.z-form-consent a { color: inherit; text-decoration: underline; }
.z-newsletter__form, .z-courses-lead__form { flex-wrap: wrap; }
.z-newsletter__form .z-orderform__status, .z-courses-lead__form .z-orderform__status { flex: 1 1 100%; font-size: 14px; }
.z-newsletter__form .z-orderform__status.is-error, .z-courses-lead__form .z-orderform__status.is-error { color: #b3261e; }

/* ——— Уведомление об использовании cookie ——— */
.z-cookie { position: fixed; left: 16px; right: auto; bottom: 16px; z-index: 9000; display: none; gap: 12px; align-items: center; max-width: 430px; padding: 10px 12px 10px 14px; border-radius: 10px; background: #1f3350; color: #dce6f5; box-shadow: 0 8px 22px rgba(15, 30, 55, .22); font-size: 12px; line-height: 1.4; }
.z-cookie.is-open { display: flex; }
.z-cookie a { color: #fff; text-decoration: underline; }
.z-cookie__btn { flex: 0 0 auto; padding: 5px 13px; border: none; border-radius: 7px; background: #fff; color: #1f3350; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.z-cookie__btn:hover { background: #e6eefb; }
@media (max-width: 640px) { .z-cookie { left: 8px; right: 8px; bottom: 8px; max-width: none; padding: 9px 10px 9px 12px; font-size: 11.5px; } }

/* ——— Подвал: адрес в первой колонке (раньше стиль был прописан прямо в вёрстке) ——— */
.site-footer__addr { color: rgba(255, 255, 255, .78); margin: 0 0 14px; line-height: 1.6; }
.site-footer__addr p { margin: 0 0 14px; }

/* ——— Страница новости: фото показываем целиком, без обрезки ———
   Компактное правило для блоков главной (max-height 264px + cover) резало афиши и баннеры с текстом. */
.split-section--news { align-items: start; }
.split-section--news .split-section__media img { height: auto; max-height: none; object-fit: contain; }

/* === 2026-09-21: правки по замечаниям === */

/* Согласие в формах подписки и записи на курсы: общий стиль полей растягивал галочку */
.z-newsletter__form .z-form-consent,
.z-courses-lead__form .z-form-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 2px 0 0;
  font-size: 13px;
  line-height: 1.45;
}
.z-newsletter__form .z-form-consent input[type="checkbox"],
.z-courses-lead__form .z-form-consent input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 1px 0 0;
  padding: 0;
  border-radius: 4px;
  box-shadow: none;
  accent-color: var(--brand-600);
}
.z-newsletter__form .z-form-consent { color: rgba(255, 255, 255, .86); }
.z-newsletter__form .z-form-consent a { color: #fff; }

/* Пары «текст + картинка» (собираются скриптом) — той же ширины, что и остальные блоки страницы */
.site-main .container .z-figrow {
  max-width: min(var(--container), calc(100% - 32px));
  width: auto;
  margin-left: auto;
  margin-right: auto;
}
.z-figrow > .z-page-block,
.z-figrow__media > .z-page-block {
  width: auto;
  max-width: none !important;
}

/* Списки в текстовых блоках: маркеры внутри колонки текста, а не левее неё */
.site-main .z-page-block .z-editor ul:not([class]),
.site-main .z-page-block .z-editor ol:not([class]),
.site-main .z-page-block .z-rich-content__body ul:not([class]),
.site-main .z-page-block .z-rich-content__body ol:not([class]),
.site-main .z-faq__answer ul,
.site-main .z-faq__answer ol,
.product-detail-page .z-editor ul:not([class]),
.product-detail-page .z-editor ol:not([class]) {
  padding-left: 1.35em;
}

/* Архив мероприятий: карточка целиком ведёт на страницу мероприятия */
.z-event-card--link { transition: border-color var(--motion-fast), box-shadow var(--motion-fast); }
.z-event-card--link:hover { border-color: rgba(29, 79, 122, .3); box-shadow: 0 10px 24px rgba(31, 55, 78, .07); }
.z-event-card__body h3 a { color: var(--ink); text-decoration: none; }
.z-event-card__body h3 a::after { content: ""; position: absolute; inset: 0; }
.z-event-card--link { position: relative; }
.z-event-card--link .z-event-card__links { position: relative; z-index: 1; }
.z-event-card--link:hover h3 a { color: var(--brand-700); }
.z-events-archive__more { margin: 36px 0 16px; font-size: 22px; color: var(--ink); }
.z-events-archive__grid--compact { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.z-events-archive__grid--compact .z-event-card { grid-template-columns: 88px minmax(0, 1fr); min-height: 0; }
.z-events-archive__grid--compact .z-event-card__media { padding: 10px; }
.z-events-archive__grid--compact .z-event-card__body { padding: 14px 16px; justify-content: center; }
.z-events-archive__grid--compact .z-event-card__body h3 { font-size: 15px; line-height: 1.3; }

/* Главная: условие сервиса — крупный срок слева, текст справа */
.home-offer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.home-offer--plain { grid-template-columns: minmax(0, 1fr); }
.home-offer__term {
  display: grid;
  justify-items: start;
  padding-right: 20px;
  border-right: 1px solid var(--line);
  line-height: 1;
}
.home-offer__num {
  color: var(--brand-700);
  font-size: 44px;
  font-weight: 800;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}
.home-offer__unit { margin-top: 6px; color: var(--muted); font-size: 13px; }
.home-offer__title { margin: 0 0 4px; color: var(--ink); font-size: 16px; font-weight: 700; line-height: 1.35; }
.home-offer__body p:not(.home-offer__title) { margin: 0; color: var(--text-soft); font-size: 14px; line-height: 1.55; }
@media (max-width: 560px) {
  .home-offer { gap: 14px; }
  .home-offer__term { padding-right: 14px; }
  .home-offer__num { font-size: 34px; }
}

/* Лента новостей: фирменная заглушка вместо пустого места, если у новости нет картинки */
.archive-block--news-grid .archive-item__image--placeholder {
  display: grid;
  align-content: space-between;
  padding: 16px 18px;
  background:
    radial-gradient(420px 220px at 100% 0%, rgba(15, 181, 177, .16), transparent 70%),
    linear-gradient(135deg, #143c5e, #1d4f7a);
  color: #fff;
  text-decoration: none;
}
.archive-item__ph-brand { font-size: 13px; font-weight: 700; letter-spacing: .32em; opacity: .7; }
.archive-item__ph-year { font-size: 40px; font-weight: 800; letter-spacing: -0.02em; line-height: 1; font-variant-numeric: tabular-nums; }
.z-events-archive__grid--compact .z-event-card__media { padding: 0; background: var(--surface-2); }
.z-events-archive__grid--compact .z-event-card__media img { object-fit: cover; }

/* 2026-09-24: на главной блок «Текст и фото» выглядит как до 23.09 — фото на всю колонку
   с обрезкой по высоте. Подгон фото по высоте текста без обрезки остаётся на внутренних страницах. */
.page-home .split-section__media { display: block; align-self: auto; height: auto; min-height: 0; }
.page-home .split-section__media img { height: auto; max-height: none; min-height: 0; flex: none; object-fit: cover; }
@media (min-width: 900px) {
  .page-home .split-section__media img { max-height: 264px; object-fit: cover; }
}

/* 2026-10-12: формы личного кабинета — вход, регистрация, восстановление и смена пароля, подтверждение почты.
   Карточка в стиле формы заявки; подписи над полями; ошибки и результат — плашкой. */
.z-auth { max-width: 560px; margin: 4px 0 28px; padding: 28px 28px 24px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow-sm); }
.z-auth--wide { max-width: 720px; }
.z-auth__form { display: grid; gap: 16px; }
.z-auth__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.z-auth__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; }
.z-auth__label { display: flex; align-items: baseline; gap: 4px; font-size: var(--fs-14); font-weight: 600; color: var(--ink); line-height: 1.3; }
.z-auth__label a { margin-left: auto; font-size: var(--fs-13); font-weight: 500; color: var(--brand-600); text-decoration: underline; }
.z-auth__req { color: var(--danger-500); font-style: normal; }
.z-auth input[type="text"], .z-auth input[type="email"], .z-auth input[type="password"] {
  width: 100%; box-sizing: border-box; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--r-md);
  background: #fff; font: inherit; font-size: var(--fs-15); color: var(--ink); transition: border-color var(--motion-fast), box-shadow var(--motion-fast);
}
.z-auth input[type="text"]:focus, .z-auth input[type="email"]:focus, .z-auth input[type="password"]:focus { outline: none; border-color: var(--brand-600); box-shadow: var(--ring); }
.z-auth__hint { margin: 0; font-size: var(--fs-13); line-height: 1.45; color: var(--muted); font-weight: 400; }
.z-auth__hint--tight { margin-top: -8px; }
.z-auth__lead { margin: 0; color: var(--text-soft); font-size: var(--fs-15); }
.z-auth__check { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: var(--fs-14); line-height: 1.45; color: var(--text-soft); font-weight: 400; cursor: pointer; }
.z-auth__check input { width: 18px; height: 18px; flex: 0 0 18px; margin: 1px 0 0; accent-color: var(--brand-600); }
.z-auth__check a { color: var(--brand-600); text-decoration: underline; }
.z-auth__captcha { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.z-auth__captcha img { display: block; border: 1px solid var(--line); border-radius: var(--r-md); background: #fff; }
.z-auth__captcha input { flex: 1 1 160px; max-width: 220px; }
.z-auth__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.z-auth__actions .button { min-height: 46px; padding: 0 24px; }
.z-auth__alt { margin: 22px 0 0; padding-top: 16px; border-top: 1px solid var(--hairline); font-size: var(--fs-14); color: var(--text-soft); }
.z-auth__alt a { color: var(--brand-600); font-weight: 600; text-decoration: underline; }
.z-auth__alert { margin: 0 0 18px; padding: 12px 14px; border-radius: var(--r-md); border-left: 3px solid; font-size: var(--fs-14); line-height: 1.5; }
.z-auth__alert--error { background: var(--danger-100); border-color: var(--danger-500); color: #7f1d1d; }
.z-auth__alert--ok { background: var(--success-100); border-color: var(--success-500); color: #14532d; }
@media (max-width: 640px) {
  .z-auth { padding: 20px 16px; border-radius: var(--r-lg); }
  .z-auth__row { grid-template-columns: 1fr; }
  .z-auth__actions .button { width: 100%; }
}

/* End */
/* /local/templates/zetlab/template_styles.css?1791807819326105 */
