

/* Start:/local/templates/dentoptics_redesign/assets/header.css?179418528823302*/
@font-face { font-family: Montserrat; font-style: normal; font-weight: 400; font-display: swap; src: url('/upload/dentoptics/perf-20261106/fonts/montserrat-400-0f4a15e29a95.woff2') format('woff2'); }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url('/upload/dentoptics/perf-20261106/fonts/montserrat-500-8a81ca6f05cb.woff2') format('woff2'); }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 600; font-display: swap; src: url('/upload/dentoptics/perf-20261106/fonts/montserrat-600-f42d4f39c2a0.woff2') format('woff2'); }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 700; font-display: swap; src: url('/upload/dentoptics/perf-20261106/fonts/montserrat-700-c31c3a0230ef.woff2') format('woff2'); }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 800; font-display: swap; src: url('/upload/dentoptics/perf-20261106/fonts/montserrat-800-ce7455af2daa.woff2') format('woff2'); }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 900; font-display: swap; src: url('/upload/dentoptics/perf-20261106/fonts/montserrat-900-8781159736e6.woff2') format('woff2'); }
@font-face { font-family: Montserrat; font-style: italic; font-weight: 900; font-display: swap; src: url('/local/templates/dentoptics_redesign/assets/./montserrat-900-italic-cyrillic.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: Montserrat; font-style: italic; font-weight: 900; font-display: swap; src: url('/local/templates/dentoptics_redesign/assets/./montserrat-900-italic-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --do-brand: #ba0f26;
  --do-brand-secondary: #ac252a;
  --do-text: #2c2b2a;
  --do-text-strong: #252525;
  --do-text-muted: #777;
  --do-placeholder: #ababab;
  --do-surface: #fff;
  --do-surface-soft: #fafafa;
  --do-surface-subtle: #f5f5f5;
  --do-surface-promo: #f2f2f2;
  --do-border: #e0e0e0;
  --do-border-panel: #ddd;
  --do-border-list: #e5e5e5;
  --do-overlay: rgb(34 34 34 / 18%);
  --do-radius-control: 8px;
  --do-radius-card: 24px;
  --do-content-width: 1216px;
  --do-font: Montserrat, Arial, sans-serif;
}

.do-header,
.do-header * {
  box-sizing: border-box;
}

.do-header {
  position: relative;
  z-index: 20;
  height: 156px;
  color: var(--do-text);
  background: var(--do-surface);
  border-bottom: 1px solid var(--do-border);
  font-family: var(--do-font);
  font-size: 12px;
}

.do-header a { color: inherit; text-decoration: none; }
.do-header button,
.do-header input { font: inherit; }

.do-header__container {
  width: min(var(--do-content-width), calc(100% - 48px));
  height: 100%;
  margin-inline: auto;
}

.do-header__utility {
  height: 59px;
  border-bottom: 1px solid var(--do-border);
}

.do-header__utility-inner,
.do-header__main-inner,
.do-header__utility-nav,
.do-header__utility-actions {
  display: flex;
  align-items: center;
}

.do-header__utility-inner { justify-content: space-between; gap: 24px; }
.do-header__utility-nav { gap: 28.57px; font-weight: 500; line-height: 19.5px; white-space: nowrap; }
.do-header__utility-nav a:hover,
.do-header__utility-nav a:focus-visible,
.do-header__contacts-page:hover,
.do-header__contacts-page:focus-visible { color: var(--do-brand); }
.do-header__nav-pending { cursor: default; }

.do-header__utility-trigger {
  appearance: none;
  padding: 0;
  color: inherit;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.do-header__utility-trigger[aria-expanded="true"] { color: var(--do-brand); }
.do-header__utility-actions { gap: 15.67px; }
.do-header button.do-header__phone { display: inline-flex; align-items: center; gap: 3px; font-weight: 700; line-height: 14.5px; letter-spacing: .325px; white-space: nowrap; }
.do-header__phone img { display: block; width: 14px; height: 14px; }

.do-button,
.do-header .do-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 27px;
  color: #fff;
  background: var(--do-brand);
  border: 0;
  border-radius: 999px;
  font-weight: 700;
  font-size: 12px;
  line-height: 14.5px;
  letter-spacing: .325px;
  text-align: center;
  text-transform: uppercase;
  cursor: pointer;
}

.do-header__callback { flex: 0 0 189px; }

/* F-002: «Заказать звонок» временно скрыта в шапке и во всех выпадающих панелях.
   Обратимо: убрать data-do-callback="hidden" у .do-header — разметка и обработчик на месте. */
[data-do-callback="hidden"] .do-header__callback,
[data-do-callback="hidden"] .do-header__contacts-cta { display: none; }
[data-do-callback="hidden"] .do-header__contacts-panel { min-height: 0; }

.do-button:focus-visible,
.do-header a:focus-visible,
.do-header button:focus-visible,
.do-header input:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--do-brand), white 55%);
  outline-offset: 2px;
}

.do-header__main { height: 97px; }
.do-header__main-inner { gap: 0; }
.do-header__logo { flex: 0 0 220px; height: 70px; margin-right: 0; overflow: hidden; }
.do-header__logo picture { display: block; }
.do-header__logo img { display: block; width: 220px; height: 70px; }

.do-header .do-button.do-header__catalog-trigger {
  flex: 0 0 213px;
  height: 50px;
  margin-left: -1.45px;
  padding-inline: 20px;
  gap: 9.55px;
  justify-content: flex-start;
  border-radius: var(--do-radius-control);
}
.do-header__catalog-trigger img { display: block; width: 16px; height: 16px; }
.do-header__catalog-trigger span { white-space: nowrap; }

.do-header__search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16px 16px;
  column-gap: 24px;
  align-items: center;
  flex: 1 1 739.67px;
  height: 51px;
  margin-left: 10px;
  padding-right: 18px;
  overflow: hidden;
  background: var(--do-surface-soft);
  border: 1px solid var(--do-border);
  border-radius: var(--do-radius-control);
}
.do-header__search input { min-width: 0; height: 100%; padding: 0 0 0 20px; color: var(--do-text); background: transparent; border: 0; }
.do-header__search input::placeholder { color: var(--do-placeholder); font-style: italic; opacity: 1; }
.do-header__icon-button { display: grid; width: 16px; height: 16px; place-items: center; padding: 0; background: transparent; border: 0; cursor: pointer; }
.do-header__icon-button img { display: block; width: 16px; height: 16px; }

.do-header__basket {
  position: relative;
  display: block;
  flex: 0 0 57.7px;
  height: 44.5px;
  margin-left: 20.3px;
  font-weight: 500;
}
.do-header__basket-icon { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: block; width: 24px; height: 24px; }
.do-header__basket-icon > img { display: block; width: 24px; height: 24px; }
.do-header__basket-icon > span {
  position: absolute;
  top: 0;
  left: 24.86px;
  display: grid;
  width: 16px;
  height: 16px;
  place-items: center;
  color: #fff;
  background: var(--do-brand-secondary);
  border-radius: 50%;
  font-weight: 700;
  font-size: 9px;
  line-height: 1;
}

.do-header__overlay {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  min-height: calc(100vh - 156px);
  padding: 14px 0;
  background: var(--do-overlay);
}
.do-header__overlay[hidden],
.do-header__panel[hidden] { display: none; }
.do-header__panel { position: relative; background: var(--do-surface); }

/* ---------- Catalog panel (Figma 5432:1743 / overlay 5432:2130) ---------- */

.do-header__catalog-panel {
  width: min(1800px, calc(100% - 120px));
  height: 650px;
  margin-inline: auto;
  border-radius: 34px;
  overflow: hidden;
}
.do-header__catalog-columns { display: grid; grid-template-columns: 450px minmax(0, 1fr) 380px; height: 100%; }
.do-header__catalog-columns > * + * { border-left: 1px solid var(--do-border-panel); }

.do-header__catalog-nav { position: relative; }
.do-header__catalog-nav::after {
  content: '';
  position: absolute;
  left: 32px;
  top: 605px;
  width: 350px;
  height: 1px;
  background: var(--do-border-list);
}
.do-header__catalog-marker { position: absolute; left: 0; top: 28px; width: 5px; height: 48px; background: var(--do-brand); border-radius: 2px; }
.do-header__catalog-list { margin: 0; padding: 43px 0 0; list-style: none; }
.do-header__catalog-list li { position: relative; height: 65px; }
.do-header__catalog-icon img { position: absolute; display: block; }
.do-header__catalog-name,
.do-header__catalog-chevron { position: absolute; top: 0; font-size: 18px; font-weight: 700; line-height: 22px; white-space: nowrap; }
.do-header__catalog-name { left: 83px; color: var(--do-text-strong); }
.do-header__catalog-chevron { left: 425px; color: #999; }
.do-header__catalog-list li.do-is-active .do-header__catalog-name,
.do-header__catalog-list li.do-is-active .do-header__catalog-chevron { color: var(--do-brand); }
.do-header__catalog-list a.do-header__catalog-name:hover,
.do-header__catalog-list a.do-header__catalog-name:focus-visible { color: var(--do-brand); }

.do-header__catalog-list li:nth-child(1) img:nth-child(1) { left: 39px; top: 2px; }
.do-header__catalog-list li:nth-child(1) img:nth-child(2) { left: 44px; top: 7px; }
.do-header__catalog-list li:nth-child(2) img:nth-child(1) { left: 36.77px; top: 4.42px; }
.do-header__catalog-list li:nth-child(3) img:nth-child(1) { left: 37px; top: 2px; }
.do-header__catalog-list li:nth-child(3) img:nth-child(2) { left: 43px; top: 23px; }
.do-header__catalog-list li:nth-child(4) img:nth-child(1) { left: 33px; top: -3px; }
.do-header__catalog-list li:nth-child(4) img:nth-child(2) { left: 38px; top: 1px; }
.do-header__catalog-list li:nth-child(5) img:nth-child(1) { left: 39px; top: -1px; }
.do-header__catalog-list li:nth-child(6) img:nth-child(1) { left: 35px; top: -1.94px; }
.do-header__catalog-list li:nth-child(7) img:nth-child(1) { left: 35px; top: -2.01px; }
.do-header__catalog-list li:nth-child(8) img:nth-child(1) { left: 35px; top: -3px; }
.do-header__catalog-list li:nth-child(8) img:nth-child(2) { left: 37px; top: 2px; }
.do-header__catalog-list li:nth-child(9) img:nth-child(1) { left: 34px; top: -3px; }
.do-header__catalog-list li:nth-child(9) img:nth-child(2) { left: 40px; top: 3px; }

.do-header__catalog-all {
  position: absolute;
  left: 35px;
  top: 624px;
  color: var(--do-brand);
  font-size: 13px;
  font-weight: 700;
  line-height: 16px;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: default;
}

.do-header__catalog-detail { position: relative; padding: 40px 0 0 44px; } /* 44 + 1px разделитель = 45 по Figma */
.do-header__catalog-detail h2 { margin: 0; color: var(--do-text-strong); font-size: 30px; font-weight: 700; line-height: 37px; }
.do-header__catalog-sublinks { position: absolute; left: 44px; top: 119px; display: grid; grid-template-columns: 420px max-content; color: #666; font-size: 16px; line-height: 20px; }

.do-header__catalog-promo-column { padding: 35px 35px 35px 34px; }
.do-header__promo {
  position: relative;
  width: 310px;
  height: 570px;
  background: var(--do-surface-promo);
  border-radius: 28px;
  overflow: hidden;
}
.do-header__promo-sheet { position: absolute; left: 0; top: 260px; width: 310px; height: 310px; background: var(--do-surface); }
.do-header__promo-badge {
  position: absolute;
  left: 20px;
  top: 20px;
  width: 72px;
  height: 30px;
  color: #fff;
  background: var(--do-brand);
  border-radius: 15px;
  font-size: 12px;
  font-weight: 700;
  line-height: 30px;
  text-align: center;
  text-transform: uppercase;
}
.do-header__promo-visual { position: absolute; left: 109.5px; top: 82.5px; display: block; width: 126.5px; height: 220px; }
.do-header__promo-title { position: absolute; left: 24px; top: 292px; width: 262px; color: var(--do-text-strong); font-size: 20px; font-weight: 700; line-height: 28px; }
.do-header__promo-cta {
  position: absolute;
  left: 24px;
  top: 470px;
  width: 262px;
  height: 54px;
  color: #fff;
  background: var(--do-brand);
  border-radius: 27px;
  font-size: 14px;
  font-weight: 700;
  line-height: 54px;
  text-align: center;
  text-transform: uppercase;
  cursor: not-allowed;
}

/* ---------- Contacts panel (Figma 5433:408 / card 5433:795) ---------- */

/* F-002: контактное окно открывается под телефоном с отступом и лежит выше слоя основного
   ряда шапки. Это осознанное отличие от Figma 5433:408, где карточка размещена под всей шапкой.
   top отсчитывается от низа шапки (156): -85px ставит верх карточки на 71px страницы,
   то есть на 12px ниже нижней границы верхней панели с телефоном. */
.do-header__contacts-panel {
  position: absolute;
  top: -85px;
  right: max(24px, calc((100% - var(--do-content-width)) / 2));
  width: 560px;
  min-height: 0;
  padding: 44px 50px 22px 49.55px;
  border-radius: 32px;
  box-shadow: 0 18px 44px rgb(26 26 24 / 18%);
}
.do-header__contacts-list { margin: 0; padding-right: 20px; }
.do-header__contacts-list > div { display: grid; grid-template-columns: 1fr auto; min-height: 68px; align-items: start; }
.do-header__contacts-list > div:last-child { min-height: 50px; }
.do-header__contacts-list dt { position: relative; padding: 4px 0 0 38.45px; color: var(--do-text-muted); font-size: 14px; line-height: 18px; text-transform: none; }
.do-header__contacts-list dt img { position: absolute; left: 0; top: 1px; }
.do-header__contacts-list dd { margin: 0; color: var(--do-text-strong); font-size: 18px; line-height: 22px; font-weight: 700; }
.do-header__contact-address { margin-right: 20px; padding-top: 32px; border-top: 1px solid var(--do-border); }
.do-header__contact-address p { position: relative; margin: 0; padding-left: 38.45px; color: var(--do-text-strong); font-size: 15px; line-height: 18px; }
.do-header__contact-address p + p { margin-top: 19px; }
.do-header__contact-address a { text-decoration: underline; text-underline-offset: 3px; }
.do-header__contact-address img { position: absolute; left: 0; top: -3px; }
.do-header__messengers { display: grid; grid-template-columns: 130fr 155fr 145fr; gap: 15px; margin-top: 22px; }
.do-header__messengers > * { height: 50px; padding: 0 10px; display: inline-flex; gap: 10px; align-items: center; color: var(--do-text-strong); border: 1px solid var(--do-border); border-radius: 25px; font-size: 15px; white-space: nowrap; }
.do-header__messengers > :first-child { padding-left: 15px; gap: 12px; }
.do-header__messengers [aria-disabled="true"] { cursor: not-allowed; }
.do-header__messenger-icon { display: block; flex: 0 0 24px; width: 24px; height: 24px; }
.do-header button.do-header__contacts-cta { width: 460px; min-height: 64px; margin-top: 23px; border-radius: 32px; font-size: 16px; font-weight: 700; line-height: 20px; }

.do-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;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 1000px) {
  .do-header { height: auto; min-height: 92px; }
  .do-header__utility { height: 44px; }
  .do-header__utility-nav { display: none; }
  .do-header__utility-inner { justify-content: flex-end; }
  .do-header__utility-actions { gap: 12px; }
  .do-header__main { height: auto; min-height: 92px; padding-block: 14px; }
  .do-header__main-inner { flex-wrap: wrap; }
  .do-header__logo { margin-right: auto; }
  .do-header__catalog-trigger { flex-basis: 100%; order: 2; margin: 12px 0; }
  .do-header__search { order: 3; flex-basis: 100%; margin-left: 0; }
  .do-header__overlay { top: 100%; min-height: calc(100vh - 92px); }
  .do-header__catalog-panel { width: calc(100% - 48px); height: auto; }
  .do-header__catalog-columns { grid-template-columns: 1fr; height: auto; }
  .do-header__catalog-columns > * + * { border-top: 1px solid var(--do-border); border-left: 0; }
  .do-header__catalog-nav { padding-bottom: 72px; }
  .do-header__catalog-nav::after { top: auto; bottom: 46px; width: calc(100% - 64px); }
  .do-header__catalog-all { top: auto; bottom: 14px; }
  .do-header__catalog-detail { padding: 24px; }
  .do-header__catalog-sublinks { position: static; grid-template-columns: 1fr; gap: 12px; margin-top: 16px; }
  .do-header__catalog-promo-column { padding: 24px; }
  .do-header__contacts-panel { position: static; width: min(560px, calc(100% - 48px)); margin-right: 24px; margin-left: auto; box-shadow: none; }
}

/* Safety fallback; final mobile composition is reviewed separately against mobile Figma frames. */
@media (max-width: 600px) {
  .do-header__callback { display: none; }
  .do-header__contacts-panel { padding: 24px 20px; max-height: calc(100dvh - 48px); overflow-y: auto; }
  .do-header__contacts-list { padding-right: 0; }
  .do-header__contacts-list > div { grid-template-columns: 1fr; gap: 6px; padding-bottom: 18px; }
  .do-header__contacts-list dd { padding-left: 38px; font-size: 16px; }
  .do-header__contact-address { margin-right: 0; }
  .do-header__contact-address p { font-size: 14px; }
  .do-header__messengers { display: flex; flex-wrap: wrap; gap: 8px; }
  .do-header__messengers > * { min-width: 120px; }
  .do-header button.do-header__contacts-cta { width: 100%; }
}

/* ---------- T-031: мобильная шапка B2 и меню 3A (Figma 5969:331, 5977:3343, 5979:12034) ----------
   Ниже 761 px десктопные ряды заменены строкой 64 px и постоянным поиском до общей высоты 132 px. */

.do-header__mobile,
.do-header__menu { display: none; }

@media (max-width: 760px) {
  .do-header { height: auto; min-height: 0; font-size: 14px; border-bottom: 0; }
  .do-header__utility,
  .do-header__main,
  .do-header__overlay { display: none; }
  .do-header__mobile { display: block; padding-bottom: 8px; }

  .do-header__mobile-bar,
  .do-header__menu-bar { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 16px; }
  .do-header__mobile-logo { display: block; flex: 0 0 160px; width: 160px; height: 50.778px; }
  .do-header__mobile-logo img { display: block; width: 160px; height: 50.778px; }
  .do-header__mobile-actions { display: flex; align-items: center; height: 44px; margin-right: -10px; }
  .do-header .do-header__mobile-action {
    display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
    color: inherit; background: transparent; border: 0; border-radius: 8px; cursor: pointer;
  }
  .do-header__mobile-action img { display: block; width: 24px; height: 24px; }
  .do-header__mobile-action[aria-expanded="true"] { background: var(--do-surface-subtle); }

  .do-header__mobile-search {
    display: flex; align-items: center; gap: 12px; height: 52px; margin: 8px 16px 0; padding: 0 16px;
    background: var(--do-surface); border: 1px solid var(--do-border); border-radius: 12px;
  }
  .do-header__mobile-search-icon { display: block; flex: 0 0 24px; width: 24px; height: 24px; }
  .do-header__mobile-search input { flex: 1 1 auto; min-width: 0; width: 100%; height: 100%; padding: 0; color: var(--do-text); background: transparent; border: 0; font-size: 16px; font-weight: 400; }
  .do-header .do-header__mobile-search input:focus-visible { outline: 0; }
  .do-header__mobile-search:focus-within { border-color: var(--do-brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--do-brand), white 70%); }
  .do-header__mobile-search input::placeholder { color: #686765; font-style: normal; opacity: 1; }

  /* Раскрытое меню — поверх страницы, содержимое прокручивается внутри панели. */
  .do-header__menu {
    position: fixed; inset: 0; z-index: 1000; display: flex; flex-direction: column;
    color: var(--do-text); background: var(--do-surface); font-family: var(--do-font);
  }
  .do-header__menu[hidden] { display: none; }
  .do-header__menu-bar { flex: 0 0 auto; }
  .do-header__menu-body {
    display: flex; flex: 1 1 auto; flex-direction: column; gap: 16px; min-height: 0;
    padding: 16px 16px 24px; overflow-y: auto; overscroll-behavior: contain;
  }

  .do-header__menu-contact {
    position: relative; display: flex; flex: 0 0 auto; flex-direction: column; gap: 16px; overflow: hidden;
    padding: 24px; color: #fff; background: #171615; border-radius: 12px;
  }
  .do-header__menu-o {
    position: absolute; left: 34.16px; top: -50px; width: 430px; height: 426.417px; max-width: none;
    transform: translate(59.955px, 60.676px) rotate(20deg); transform-origin: 50% 50%; pointer-events: none;
  }
  .do-header__menu-phones { position: relative; margin: 0; padding: 0; list-style: none; }
  .do-header__menu-phones li { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; }
  .do-header__menu-phones a { color: #fff; font-size: 18px; font-weight: 600; line-height: 27px; white-space: nowrap; }
  .do-header__menu-phones span { color: #c2c1bf; font-size: 12px; line-height: 18px; text-align: right; }
  .do-header__menu-messengers { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .do-header__menu-messengers a {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 72px;
    color: #fff; border: 1px solid rgb(255 255 255 / 18%); border-radius: 12px; font-size: 12px; font-weight: 600; line-height: 18px; text-align: center;
  }
  .do-header__menu-messengers img { display: block; width: 24px; height: 24px; }

  .do-header__menu-catalog {
    display: flex; flex: 0 0 auto; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px;
    color: #fff; background: var(--do-brand); border-radius: 12px; font-size: 16px; font-weight: 600; line-height: 24px;
  }
  .do-header__menu-nav { display: grid; flex: 0 0 auto; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .do-header__menu-nav > * { display: flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 600; line-height: 22px; }
  .do-header__menu-info { display: flex; flex: 0 0 auto; flex-direction: column; margin: 0; padding: 0; list-style: none; }
  .do-header__menu-info li { display: flex; align-items: center; gap: 12px; min-height: 44px; color: var(--do-text-muted-menu, #686765); font-size: 14px; line-height: 21px; }
  .do-header__menu-info li:nth-child(2) { min-height: 60px; }
  .do-header__menu-info img { display: block; flex: 0 0 24px; width: 24px; height: 24px; }
  .do-header__menu-info a { display: block; padding-block: 4px; }

  .do-header__menu a:focus-visible,
  .do-header__menu button:focus-visible { outline: 3px solid color-mix(in srgb, var(--do-brand), white 55%); outline-offset: 2px; }
  .do-header__menu-contact a:focus-visible { outline-color: #fff; }
}

@media (prefers-reduced-motion: reduce) {
  .do-header * { scroll-behavior: auto !important; }
}

/* End */


/* Start:/local/dentoptics/search-20261108/search.css?179418528811773*/
/* Scoped native Bitrix search templates; shared site typography and palette. */
[data-do-search] input::placeholder{font-family:Montserrat,sans-serif!important;font-weight:400!important;font-style:normal!important;color:#777;opacity:1}
.do-header__search input{font-weight:400;font-style:normal}
.do-native-search-popup{z-index:10050;background:#fff;border:1px solid #e8e6e3;border-radius:10px;box-shadow:0 10px 34px #1716151c;padding:6px;box-sizing:border-box;max-height:70vh;overflow:auto;font-family:Montserrat,sans-serif;color:#252525}
.do-native-search-popup table{border:0;border-collapse:collapse;width:100%;font-size:13px;background:transparent}
.do-native-search-popup td{border:0;padding:0;background:transparent}
.do-native-search-popup .do-suggestion{display:flex;align-items:center;gap:14px;min-height:78px;padding:10px 12px;text-decoration:none;color:#252525;border-radius:6px;box-sizing:border-box}
.do-suggestion img,.do-suggestion-icon{width:60px;height:48px;object-fit:contain;flex:none}
.do-suggestion-icon{display:grid;place-items:center;background:#f5f4f2;border-radius:4px;font-size:23px;color:#ba0f26}
.do-suggestion strong{display:block;font-weight:500;font-size:13px;line-height:19px}.do-suggestion small{display:block;color:#777;font-size:11px;margin-top:4px;line-height:16px}
.do-native-search-popup tr.title-search-selected .do-suggestion,.do-native-search-popup .do-suggestion:hover{background:#f8f5f3;color:#ba0f26}
.do-native-search-popup .do-search-all{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #eee;padding:16px 12px 12px;color:#ba0f26;text-decoration:none;font-weight:500;font-size:13px}
.do-native-search-popup tr.title-search-selected .do-search-all{background:#f8f5f3}
.do-search-no-hints{padding:18px 12px!important;font-size:13px;line-height:1.6;color:#777}
.do-native-search-popup a:focus-visible{outline:2px solid #ba0f26;outline-offset:-2px}
.do-search{font-family:Montserrat,sans-serif;color:#252525;padding-bottom:64px}
.do-search *{box-sizing:border-box}.do-search a{color:inherit;text-decoration:none}
.do-search h1{font-size:40px;line-height:1.2;letter-spacing:-.8px;font-weight:700;margin:28px 0}
.do-search-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:start}.do-search-results{min-width:0}
.do-search-form{display:flex;align-items:center;height:56px;border:1px solid #dedbd8;border-radius:8px;background:#fff;padding:4px 4px 4px 16px;gap:4px}
.do-search-form:focus-within{border-color:#ba0f26;box-shadow:0 0 0 1px #ba0f26}
.do-search-form input{flex:1;min-width:0;width:100%;border:0!important;outline:0!important;box-shadow:none!important;background:transparent;height:100%;font-family:inherit;font-size:16px;padding:0 8px 0 0;color:#252525}
.do-search-form input::-webkit-search-cancel-button{display:none}
.do-search button{font-family:inherit;cursor:pointer}.do-search-find{border:0;background:#ba0f26;color:#fff;border-radius:6px;align-self:stretch;min-width:100px;font-size:14px;font-weight:500;padding:0 20px}.do-search-find:hover{background:#9c0c20}
.do-search-clear{width:36px;height:40px;border:0;background:transparent;font-size:24px;line-height:1;color:#777;flex:none}.do-search-clear[hidden]{display:none}
.do-search-navigation{margin-top:30px;border-bottom:1px solid #e6e3df;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px;color:#777}
.do-search-navigation>strong{font-size:15px;color:#ba0f26;border-bottom:3px solid #ba0f26;padding:16px 0;font-weight:600}
.do-search-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px;margin-top:32px}
.do-search-product{min-width:0;display:flex;flex-direction:column}.do-search-photo{display:flex;justify-content:center;align-items:center;height:220px;margin-bottom:16px}.do-search-photo img{width:100%;height:100%;object-fit:contain}.do-search-photo>span{display:grid;place-items:center;background:#f7f5f3;border-radius:12px;width:100%;height:100%;font-size:40px;color:#ba0f26}
.do-search .do-search-product-title{font-size:16px;line-height:23px;font-weight:600}.do-search-product-title:hover{color:#ba0f26}
.do-search-meta{font-size:12px;line-height:18px;color:#777;margin:6px 0 14px}
.do-search-product-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:auto}.do-search-product-bottom>strong{font-size:17px;line-height:24px;font-weight:700}.do-search-product-bottom>strong.do-price-request{font-size:12px;font-weight:500}
.do-search .do-search-detail{border:1px solid #e0ddda;border-radius:6px;font-size:12px;line-height:18px;padding:8px 12px;color:#ba0f26}.do-search-detail:hover{border-color:#ba0f26}
.do-search-empty{padding:38px 0}.do-search-empty h2{font-size:24px;line-height:1.4;font-weight:600;margin:0 0 16px}.do-search-empty p{font-size:15px;line-height:1.7;color:#777;margin:0 0 24px}.do-search .do-search-empty a{color:#ba0f26;font-size:14px}
.do-search-pagination{margin-top:36px;font-size:13px;line-height:2}.do-search-pagination a{color:#ba0f26;padding:6px}
.do-search-banners{display:flex;flex-direction:column;gap:16px}
.do-search-banner{display:block;position:relative;isolation:isolate;overflow:hidden;min-height:220px;border-radius:12px;background:#f3f1ee;color:#252525!important;padding:24px}
.do-search-banner-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:start;gap:10px;max-width:190px}
.do-search-banner-copy>strong{font-size:20px;line-height:26px;font-weight:600}.do-search-banner-copy>span{font-size:11px;line-height:16px;color:#777;max-width:150px}.do-search-banner-copy>em{font-size:12px;line-height:18px;font-style:normal;margin-top:8px;color:#ba0f26}
.do-search-banner-product{position:absolute;width:150px;height:130px;right:6px;bottom:4px;object-fit:contain;z-index:1;pointer-events:none}
.do-search-banner-loupes{background:#171615;color:#fff!important;min-height:244px}.do-search-banner-loupes .do-search-banner-copy>span{color:#c9c6c2}.do-search-banner-loupes .do-search-banner-copy>em{color:#fff}.do-search-banner-loupes .do-search-banner-product{width:200px;height:140px;right:0;bottom:0}
.do-search-banner-o{position:absolute;width:650px;height:auto;max-width:none;right:-350px;top:60px;transform:none;z-index:0;pointer-events:none}
.do-search-banner-microscope .do-search-banner-product{height:150px;width:130px;right:8px;bottom:6px}
.do-search-banner-light{min-height:220px}.do-search-banner-light .do-search-banner-product{width:170px;height:140px}
.do-search-banner:hover .do-search-banner-copy>em{text-decoration:underline}
.do-search :focus-visible{outline:2px solid #ba0f26;outline-offset:3px}
@media(max-width:1100px){.do-search-layout{grid-template-columns:minmax(0,1fr) 240px;gap:24px}.do-search-products{gap:28px 16px}.do-search-photo{height:160px}.do-search .do-search-product-title{font-size:14px;line-height:20px}.do-search-banner{padding:22px}.do-search-banner-copy>strong{font-size:18px;line-height:24px}}
@media(max-width:760px){.do-search{padding-bottom:40px}.do-search h1{font-size:30px;letter-spacing:-.5px;margin:22px 0 24px}.do-search-layout{display:flex;flex-direction:column;gap:36px}.do-search-results,.do-search-banners{width:100%}.do-search-form{height:52px;padding-left:12px}.do-search-find{min-width:74px;padding:0 12px;font-size:13px}.do-search-form input{font-size:16px}.do-search-clear{width:28px}.do-search-navigation{margin-top:22px;font-size:11px}.do-search-navigation>strong{font-size:14px;padding:14px 0}.do-search-products{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;gap:30px 16px}.do-search-photo{height:142px;margin-bottom:12px}.do-search .do-search-product-title{font-size:14px;line-height:20px}.do-search-meta{font-size:11px;margin:6px 0 12px}.do-search-product-bottom{align-items:start;flex-direction:column;gap:10px}.do-search-product-bottom>strong{font-size:15px}.do-search-product-bottom>strong.do-price-request{font-size:11px}.do-search-empty{padding-top:28px}.do-search-empty h2{font-size:20px}.do-search-banners{gap:12px}.do-search-banner,.do-search-banner-loupes,.do-search-banner-light{min-height:172px;padding:22px}.do-search-banner-copy{max-width:180px}.do-search-banner-copy>strong{font-size:19px;line-height:25px}.do-search-banner-product,.do-search-banner-loupes .do-search-banner-product{width:155px;height:112px;right:4px;bottom:3px}.do-search-banner-microscope .do-search-banner-product{height:140px;width:120px;right:10px}.do-search-banner-light .do-search-banner-product{width:145px;height:120px}.do-search-banner-o{right:-350px;top:20px}.do-suggestion strong{font-size:12px;line-height:18px}.do-native-search-popup .do-suggestion{padding:8px;gap:10px;min-height:70px}}
@media(prefers-reduced-motion:reduce){.do-search *{scroll-behavior:auto!important;transition:none!important}}

/* Preserve the original large O against the legacy media max-width rule. */
.do-search .do-search-banner-o{max-width:none}

/* R8: the legacy shell's media rule must not expand tall photos over titles. */
.do-search .do-search-photo{flex:none;overflow:hidden}
.do-search .do-search-photo img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.do-search .do-search-product-title{flex-shrink:0;overflow-wrap:anywhere}
.do-search .do-search-correction{margin:14px 0 0;color:#777;font-size:13px;line-height:21px}
.do-search .do-search-correction a{color:#ba0f26;text-decoration:underline;text-underline-offset:3px}
.do-native-search-popup .do-search-correction{margin:0;padding:10px 12px 4px;color:#777;font-size:12px;line-height:18px}
/* Follow the results column; stop at its end, before the footer. */
@media(min-width:761px){.do-search-banners{position:sticky;top:min(24px,calc(100vh - 740px));align-self:start}}
.do-search .do-search-pagination{margin-top:40px;padding-top:24px;border-top:1px solid #e6e3df}
.do-pager-summary{margin:0 0 16px;color:#777;font-size:12px;line-height:20px;font-weight:400}
.do-pager-summary strong{font-weight:500;color:#252525}
.do-pager-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.do-search .do-pager-number,.do-search .do-pager-step{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:10px 12px;border:1px solid #e0ddda;border-radius:6px;background:#fff;color:#252525;font:500 13px/22px Montserrat,sans-serif;text-decoration:none}
.do-search .do-pager-step{padding-inline:14px}
.do-search a.do-pager-number:hover,.do-search a.do-pager-step:hover{border-color:#ba0f26;color:#ba0f26;background:#fff9f9}
.do-search .do-pager-number.is-current{background:#ba0f26;border-color:#ba0f26;color:#fff}
.do-search .do-pager-step[aria-disabled=true]{color:#aaa;background:#faf9f7;border-color:#efedeb}
.do-pager-dots{padding:0 2px;color:#777;font-size:14px}
@media(max-width:760px){.do-search .do-search-pagination{margin-top:30px;padding-top:20px}.do-pager-controls{gap:6px}.do-search .do-pager-step{padding-inline:10px}.do-pager-summary{margin-bottom:12px}}

/* RU TEST: desktop search submit sits at the field edge, with a clear glyph. */
@media(min-width:761px){
 .do-header__search{grid-template-columns:minmax(0,1fr) 44px;column-gap:8px;padding-right:4px;}
 .do-header__search .do-header__icon-button{width:44px;height:44px;border-radius:6px;}
 .do-header__search .do-header__icon-button img{width:20px;height:20px;}
 .do-header__search .do-header__icon-button:focus-visible{outline:2px solid #ba0f26;outline-offset:-3px;}
}

/* R14: long compatibility names must wrap inside native title-search. */
.do-native-search-popup table{table-layout:fixed}
.do-native-search-popup .do-suggestion>span{min-width:0;overflow-wrap:anywhere}

/* End */


/* Start:/local/dentoptics/mobile-search-20261105/search.css?1794185288491*/
.do-header__mobile-search[hidden]{display:none!important}
@media(max-width:760px){.do-header__mobile-search:not([hidden]){animation:do-search-reveal .14s ease-out}.do-header__mobile-action[data-do-mobile-search][aria-expanded="true"]{color:#ba0f26;background:#fcf0f2;border-radius:8px}}
@keyframes do-search-reveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.do-header__mobile-search:not([hidden]){animation:none}}

/* End */


/* Start:/local/dentoptics/megamenu-20261105/menu.css?179418528814776*/
.do-mm{--mm-red:#ba0f26;--mm-line:#e5e5e7;--mm-top:156px;position:fixed;inset:0;z-index:1100;font-family:Montserrat,Arial,sans-serif;color:#2c2b2a;font-size:14px;line-height:1.5;text-align:left}.do-mm[hidden],.do-mm [hidden]{display:none!important}.do-mm *{box-sizing:border-box}.do-mm button,.do-mm input{font:inherit}.do-mm button{cursor:pointer;background:none;border:0;color:inherit}.do-mm a{color:inherit;text-decoration:none}.do-mm h2,.do-mm h3,.do-mm p{margin:0}.do-mm button:focus-visible,.do-mm a:focus-visible,.do-mm input:focus-visible{outline:2px solid var(--mm-red);outline-offset:3px}.do-mm__shade{position:absolute;inset:var(--mm-top) 0 0;background:#20202577!important}.do-mm__panel{position:absolute;top:calc(var(--mm-top) + 18px);left:2.2%;right:2.2%;max-width:1520px;margin:auto;background:white;border:1px solid var(--mm-line);border-radius:24px;height:min(700px,calc(100dvh - var(--mm-top) - 38px));min-height:180px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 22px 60px #0002}.do-mm__grid{display:grid;grid-template-columns:30% 70%;min-height:0;flex:1}.do-mm__categories{padding:20px 8px;overflow-y:auto;border-right:1px solid var(--mm-line);scrollbar-width:thin}.do-mm__category{display:flex;align-items:center;gap:13px;width:100%;min-height:42px;padding:9px 14px 9px 20px!important;text-align:left;position:relative;border-radius:6px;font-size:13px!important;font-weight:600!important;line-height:1.4!important}.do-mm__category>span{flex:1;min-width:0}.do-mm__icon{width:21px;height:21px;flex:0 0 21px;object-fit:contain}.do-mm__category>.do-mm__icon:last-child{width:14px;height:14px;flex-basis:14px}.do-mm__category:hover{background:#f7f7f8}.do-mm__category.is-active{color:var(--mm-red);background:#fbf0f2}.do-mm__category.is-active:before{content:'';position:absolute;top:8px;bottom:8px;left:0;width:4px;border-radius:4px;background:var(--mm-red)}.do-mm__category.is-active .do-mm__icon,.do-mm__link .do-mm__icon{filter:invert(13%) sepia(87%) saturate(3883%) hue-rotate(339deg) brightness(80%) contrast(94%)}.do-mm__details{overflow:auto;min-width:0;scrollbar-width:thin}.do-mm__detail{display:grid;grid-template-columns:58% 42%;min-height:100%}.do-mm__content{padding:32px;min-width:0}.do-mm__heading{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:36px}.do-mm__heading h2{font-size:28px;font-weight:600;line-height:1.25;letter-spacing:-.035em;overflow-wrap:anywhere}.do-mm__link{display:inline-flex;align-items:center;gap:8px;color:var(--mm-red)!important;font-size:13px;font-weight:600;line-height:1.5}.do-mm__link:hover{text-decoration:underline;text-underline-offset:4px}.do-mm__heading>.do-mm__link{white-space:nowrap;align-self:center}.do-mm__columns{display:grid;grid-template-columns:1fr 1.35fr;gap:25px}.do-mm h3{font-size:18px;font-weight:600;line-height:1.4;letter-spacing:-.02em}.do-mm__columns h3{margin-bottom:20px}.do-mm__brands,.do-mm__models{display:flex;flex-direction:column;gap:17px}.do-mm__brands a,.do-mm__models a{font-size:14px;line-height:1.6;overflow-wrap:anywhere}.do-mm__brands a:hover,.do-mm__models a:hover{color:var(--mm-red)}.do-mm__allbrands{padding:0;margin-top:18px}.do-mm__help{margin-top:48px;border-top:1px solid var(--mm-line);padding-top:24px}.do-mm__help h3{font-size:22px}.do-mm__help p{font-size:13px;color:#666;line-height:1.65;margin:8px 0 18px}.do-mm__featured{padding:28px 24px;border-left:1px solid var(--mm-line);min-width:0}.do-mm__photo{display:block;width:100%;height:280px;background:white;border-radius:12px;overflow:hidden}.do-mm__photo>img{width:100%;height:100%;object-fit:contain;display:block}.do-mm__featured h3{font-size:21px;line-height:1.35;margin:18px 0 12px;overflow-wrap:anywhere}.do-mm__featured p{font-size:13px}.do-mm__cta{display:flex;align-items:center;justify-content:center;text-align:center;min-height:50px;background:var(--mm-red);color:white!important;border-radius:10px;padding:14px 15px;font-size:14px;font-weight:600;line-height:1.4;margin-top:28px}.do-mm__cta:hover{background:#9d0e22}.do-mm__footer{margin:0 26px;border-top:1px solid var(--mm-line);min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}.do-mm__mobilebar,.do-mm__search,.do-mm__mobile-contact,.do-mm__site-links{display:none}.do-mm-open .do-multi{visibility:hidden!important;pointer-events:none!important}.do-mm-open .do-header__catalog-trigger{background:#a80c22}.do-mm__close{width:44px;height:44px;display:flex;justify-content:center;align-items:center}.do-mm__site-links{border-top:1px solid var(--mm-line);margin:18px 12px 0;padding-top:15px;grid-template-columns:1fr 1fr;gap:8px}.do-mm__site-links a{min-height:44px;display:flex;align-items:center;font-size:12px;color:#666}
@media(min-width:1450px) and (min-height:900px){.do-mm__panel{height:min(770px,calc(100dvh - var(--mm-top) - 38px))}.do-mm__category{font-size:16px!important;min-height:48px}.do-mm__content{padding:40px 36px}.do-mm__heading h2{font-size:35px}.do-mm__heading{margin-bottom:45px}.do-mm__columns h3{font-size:21px}.do-mm__brands a,.do-mm__models a{font-size:17px}.do-mm__photo{height:360px}.do-mm__featured h3{font-size:24px}.do-mm__help h3{font-size:25px}.do-mm__help p{font-size:14px}.do-mm__link{font-size:15px}}
@media(min-width:761px) and (max-width:1100px){.do-mm__grid{grid-template-columns:31% 69%}.do-mm__category{font-size:12px!important;padding-left:12px!important;gap:9px}.do-mm__detail{grid-template-columns:1fr}.do-mm__content{padding:26px}.do-mm__featured{border-left:0;border-top:1px solid var(--mm-line);display:grid;grid-template-columns:150px 1fr;column-gap:20px}.do-mm__photo{height:190px;grid-row:1/4}.do-mm__featured h3{margin-top:0}.do-mm__cta{margin-top:15px}.do-mm__help{margin-top:30px}}
@media(min-width:761px) and (max-height:800px){.do-mm__category{min-height:36px;padding-top:6px!important;padding-bottom:6px!important;font-size:12px!important}.do-mm__categories{padding-top:14px}.do-mm__content{padding-top:24px}.do-mm__heading{margin-bottom:26px}.do-mm__photo{height:220px}.do-mm__help{margin-top:30px}.do-mm__featured{padding-top:20px}.do-mm__footer{min-height:52px}}
@media(max-width:760px){.do-mm__shade{inset:0}.do-mm__panel{inset:0;width:100%;max-width:none;height:100dvh;min-height:0;border:0;border-radius:0}.do-mm__mobilebar{height:65px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px 8px 20px;border-bottom:1px solid var(--mm-line);flex-shrink:0}.do-mm__mobilebar strong{font-size:17px}.do-mm__mobilebar [data-mm-back]{display:flex;align-items:center;gap:9px;min-height:44px;padding:0;font-size:14px;font-weight:600}.do-mm__search{display:flex;align-items:center;gap:10px;margin:14px 20px;height:46px;flex-shrink:0;background:#f8f8fa;border:1px solid #d9d9de;border-radius:9px;padding:0 12px}.do-mm__search input{min-width:0;width:100%;border:0;background:transparent;font-size:16px;outline:none;color:#222}.do-mm__search button{padding:0;min-width:35px;min-height:44px}.do-mm__grid{display:block;overflow-y:auto}.do-mm__categories{border:0;overflow:visible;padding:0 12px 15px}.do-mm__category{min-height:48px;padding:11px 12px!important;font-size:13px!important}.do-mm__details{display:none;overflow:visible}.do-mm.is-detail .do-mm__categories{display:none}.do-mm.is-detail .do-mm__details{display:block}.do-mm__detail{display:block}.do-mm__content{padding:6px 22px 25px}.do-mm__heading{display:block;margin-bottom:25px}.do-mm__heading h2{font-size:27px}.do-mm__heading .do-mm__link{margin-top:12px}.do-mm__columns{grid-template-columns:1fr 1.25fr;gap:22px}.do-mm__columns h3{font-size:14px;margin-bottom:10px}.do-mm__brands,.do-mm__models{gap:0}.do-mm__brands a,.do-mm__models a{min-height:44px;display:flex;align-items:center;font-size:13px;line-height:1.55;padding:7px 0}.do-mm__allbrands{min-height:44px;margin-top:3px}.do-mm__help{margin-top:25px;padding-top:22px}.do-mm__help h3{font-size:20px}.do-mm__help p{font-size:13px}.do-mm__help .do-mm__link{min-height:44px}.do-mm__featured{border-left:0;border-top:1px solid var(--mm-line);padding:22px;display:grid;grid-template-columns:110px 1fr;column-gap:16px}.do-mm__photo{height:145px;grid-row:1/4}.do-mm__featured h3{margin:0 0 9px;font-size:16px}.do-mm__featured .do-mm__link{font-size:12px;min-height:44px}.do-mm__cta{font-size:12px;min-height:44px;margin-top:9px;padding:12px 7px}.do-mm__footer{margin:0;min-height:62px;padding:8px 20px max(8px,env(safe-area-inset-bottom));gap:15px}.do-mm__footer .do-mm__link{font-size:12px;min-height:44px}.do-mm__mobile-contact{display:inline-flex}.do-mm__site-links{display:grid}}

/* MM-001 revision 2: compact section action, real brand marks, product summaries. */
.do-mm__heading{margin-bottom:28px}.do-mm__section-link{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;max-width:100%;padding:10px 18px;border:1px solid #edcbd2;border-radius:999px;background:#fcf3f5;color:var(--mm-red)!important;font-size:14px;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s}.do-mm__section-link:hover{background:#f8e5e9;border-color:#d88998}.do-mm__section-link .do-mm__icon{filter:invert(13%) sepia(87%) saturate(3883%) hue-rotate(339deg) brightness(80%) contrast(94%)}.do-mm__columns{grid-template-columns:minmax(100px,.8fr) minmax(0,1.4fr);gap:28px}.do-mm__brands{gap:12px}.do-mm__brands .do-mm__brand{display:flex;align-items:center;justify-content:center;width:100%;max-width:154px;min-height:64px;padding:10px 12px;border:1px solid #ececef;border-radius:12px;background:white;transition:border-color .15s}.do-mm__brands .do-mm__brand:hover{border-color:#c6818d}.do-mm__brand img{display:block;max-width:100%;width:130px;height:42px;object-fit:contain}.do-mm__brands .do-mm__brand--dark{background:#262626}.do-mm__models-heading{display:flex;align-items:center;gap:6px;white-space:nowrap}.do-mm__models-heading .do-mm__icon{width:18px;height:18px;flex-basis:18px;filter:invert(45%) sepia(96%) saturate(1727%) hue-rotate(346deg) brightness(97%) contrast(94%)}.do-mm__featured .do-mm__description{font-size:13px;line-height:1.65;color:#646469;margin:0}.do-mm__featured .do-mm__cta{margin-top:20px}.do-mm__photo{height:250px}.do-mm__help{margin-top:34px}.do-mm__featured h3{font-size:20px}
@media(min-width:1450px) and (min-height:900px){.do-mm__photo{height:300px}.do-mm__section-link{font-size:15px}.do-mm__featured .do-mm__description{font-size:14px}}
@media(max-width:760px){.do-mm__heading{margin-bottom:24px}.do-mm__section-link{font-size:13px;gap:12px}.do-mm__columns{grid-template-columns:minmax(104px,.8fr) minmax(0,1.3fr);gap:20px}.do-mm__brands{gap:10px}.do-mm__brands .do-mm__brand{min-height:59px;padding:9px}.do-mm__brand img{height:35px}.do-mm__models-heading{font-size:13px!important;gap:4px}.do-mm__featured{grid-template-columns:95px 1fr;gap:0 16px}.do-mm__photo{height:135px}.do-mm__featured h3{font-size:16px}.do-mm__featured .do-mm__description{font-size:12px;line-height:1.6}.do-mm__featured .do-mm__cta{grid-column:1/-1;margin-top:18px}.do-mm__content{padding-top:7px}}

/* MM-001 revision 3: unboxed brand marks, consistent optical size. */
.do-mm__brands .do-mm__brand,.do-mm__brands .do-mm__brand:hover,.do-mm__brands .do-mm__brand--dark{border:0;border-radius:0;background:transparent;box-shadow:none;padding:0;min-height:56px;max-width:154px;justify-content:flex-start}.do-mm__brand img{width:150px;height:48px;max-width:100%;object-fit:contain;object-position:left center}.do-mm__brand--dark img{filter:brightness(0)}.do-mm__brands{gap:10px}.do-mm__help p{max-width:48em}
@media(max-width:760px){.do-mm__brands .do-mm__brand{min-height:48px;padding:0}.do-mm__brand img{width:118px;height:40px}.do-mm__brands{gap:10px}}

/* Original 500px brand artwork; viewport crops only its white margins. */
.do-mm__brand img.do-mm__brand-image--eighteeth{object-fit:cover;object-position:center}

/* MM-001 v5: approved subcategories-only variant; keep the real header clickable. */
.do-mm{pointer-events:none}.do-mm__panel,.do-mm__shade{pointer-events:auto}
.do-mm__grid{grid-template-columns:27% 73%}.do-mm__detail{grid-template-columns:61% 39%}.do-mm__content{padding:26px}.do-mm__heading{margin-bottom:16px}
.do-mm__subcategories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 28px}.do-mm__subcategory{display:flex;gap:10px;align-items:center;min-height:66px;padding:9px 10px;background:#f7f7f8;border-radius:12px;font-size:12px;line-height:1.45;font-weight:600;transition:background .15s}.do-mm__subcategory:hover{background:#fbebef;color:var(--mm-red)}.do-mm__subcategory>span:nth-last-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.do-mm__subcategory>.do-mm__icon{width:12px;height:12px;flex-basis:12px;opacity:.5}.do-mm__sub-thumb{display:flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:44px;background:white;border-radius:7px}.do-mm__sub-thumb img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.do-mm__columns{display:block}.do-mm__columns h3{font-size:16px;margin-bottom:14px}.do-mm__brands{flex-direction:row;flex-wrap:wrap;gap:14px 26px}.do-mm__brands .do-mm__brand{width:130px;max-width:130px}.do-mm__brand img{width:130px;height:42px}.do-mm__help{margin-top:28px;padding-top:22px}.do-mm__help p{margin:0 0 12px;font-size:12px}.do-mm__featured{padding:26px 22px}.do-mm__photo{height:235px}.do-mm__featured h3{font-size:19px}.do-mm__featured .do-mm__description{font-size:12px}
@media(min-width:761px) and (max-width:1100px){.do-mm__detail{grid-template-columns:1fr}.do-mm__grid{grid-template-columns:32% 68%}.do-mm__featured{display:grid;grid-template-columns:130px 1fr}.do-mm__photo{height:180px}.do-mm__featured .do-mm__cta{grid-column:2}.do-mm__content{padding:24px}}
@media(max-width:760px){.do-mm__grid,.do-mm__detail{display:block}.do-mm__content{padding:18px 20px 24px}.do-mm__heading{margin-bottom:14px}.do-mm__subcategories{margin-bottom:24px;gap:8px}.do-mm__subcategory{font-size:11px;min-height:68px;padding:8px;gap:7px}.do-mm__sub-thumb{flex-basis:30px;width:30px;height:38px}.do-mm__subcategory>.do-mm__icon{display:none}.do-mm__columns h3{font-size:14px}.do-mm__brands{gap:8px 24px}.do-mm__brands .do-mm__brand{min-height:46px;width:126px;max-width:126px}.do-mm__brand img{width:126px;height:42px}.do-mm__featured{display:grid;grid-template-columns:95px 1fr;padding:22px 20px}.do-mm__photo{height:135px}.do-mm__featured h3{font-size:16px}.do-mm__featured .do-mm__cta{grid-column:1/-1}.do-mm__categories{padding-top:12px}}
@media(prefers-reduced-motion:reduce){.do-mm__subcategory{transition:none}}

/* Keep the restored mobile catalogue action legible against its existing red fill. */
.do-header__menu-catalog[data-do-mega-open]{color:#fff}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/footer.css?179418528810725*/
/* ==========================================================================
   Сквозной footer — Figma 4014:1744 (T-011). Отдельный файл, не home.css: footer
   переиспользуется на любой странице, а не только на главной (как header.css).
   Декоративные фигуры обрезаются краем footer намеренно (clipsContent=true в источнике).
   ========================================================================== */

.do-footer {
  position: relative;
  overflow: hidden;
  padding: 60px 0 32px;
  background: #2c2b2a;
  font-family: Montserrat, Arial, sans-serif;
}

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

.do-footer::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(to right, rgba(172, 37, 42, 0) 0%, #ac252a 50%, rgba(172, 37, 42, 0) 100%);
}

.do-footer__bg { position: absolute; z-index: 0; pointer-events: none; }
.do-footer__bg--1 { right: -128px; top: -128px; }
.do-footer__bg--2 { left: -80px; top: 312.25px; }

.do-footer__content {
  position: relative;
  z-index: 1;
  width: min(1216px, calc(100% - 48px));
  min-height: 420.25px;
  margin: 0 auto;
}

.do-footer__logo { position: absolute; left: 0; top: 0; display: block; }
.do-footer__logo img { display: block; width: 252px; height: 80px; }

.do-footer__lead {
  position: absolute;
  left: 0;
  top: 105px;
  width: 373px;
  margin: 0;
  color: rgba(255, 255, 255, .6);
  font-size: 14px;
  line-height: 22.75px;
}

.do-footer__contact {
  position: absolute;
  left: 0;
  display: flex;
  height: 36px;
  align-items: center;
  gap: 12px;
  color: rgba(255, 255, 255, .8);
  font-size: 14px;
  text-decoration: none;
}

.do-footer__contact:not(.do-footer__contact--email) { top: 195.25px; }
.do-footer__contact--email { top: 243.25px; }

.do-footer__contact-icon {
  display: flex;
  width: 36px;
  height: 36px;
  flex: none;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .05);
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1);
}

.do-footer__pin {
  position: absolute;
  left: 0;
  top: 293.25px;
  display: flex;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .05);
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1);
}

.do-footer__address {
  position: absolute;
  left: 48px;
  top: 292.25px;
  width: 290px;
  margin: 0;
  color: rgba(255, 255, 255, .8);
  font-size: 14px;
  line-height: 20px;
}

.do-footer__address-hours { color: rgba(255, 255, 255, .5); }

.do-footer__col { position: absolute; top: 0; }
.do-footer__col--catalog { left: 418.66px; width: 274px; }
.do-footer__col--company { left: 732.66px; width: 169.33px; }
.do-footer__col--buyers { left: 941.98px; width: 274px; }

.do-footer__heading {
  margin: 0;
  color: rgba(255, 255, 255, .4);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2.16px;
  text-transform: uppercase;
}

.do-footer__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.do-footer__list li { margin: 0; }

.do-footer__list a,
.do-footer__list span {
  color: rgba(255, 255, 255, .75);
  font-size: 14px;
  line-height: 20px;
  text-decoration: none;
}

.do-footer__list a:hover { color: #fff; }
.do-footer__list span[aria-disabled] { cursor: not-allowed; color: rgba(255, 255, 255, .35); }

.do-footer__newsletter { position: absolute; left: 941.98px; top: 204px; width: 274px; }

.do-footer__newsletter-label {
  margin: 0;
  color: rgba(255, 255, 255, .4);
  font-size: 12px;
  letter-spacing: 1.92px;
  text-transform: uppercase;
}

.do-footer__newsletter-form {
  position: relative;
  display: flex;
  height: 46px;
  align-items: center;
  margin-top: 28px;
  padding: 0 5px 0 16px;
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 999px;
}

.do-footer__newsletter-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding: 0;
  background: transparent;
  border: none;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
}

.do-footer__newsletter-input::placeholder { color: rgba(255, 255, 255, .3); }

.do-footer__newsletter-btn {
  display: flex;
  width: 36px;
  height: 36px;
  flex: none;
  align-items: center;
  justify-content: center;
  background: #ac252a;
  border-radius: 999px;
  cursor: not-allowed;
}

.do-footer__divider {
  position: absolute;
  left: 0;
  top: 379.25px;
  width: 100%;
  height: 1px;
  margin: 0;
  border: none;
  background: rgba(255, 255, 255, .1);
}

.do-footer__copyright {
  position: absolute;
  left: 0;
  top: 404.25px;
  margin: 0;
  color: rgba(255, 255, 255, .4);
  font-size: 12px;
}

.do-footer__legal {
  position: absolute;
  top: 404.25px;
  left: 697.13px;
  display: flex;
  gap: 0 24px;
}

.do-footer__legal-link {
  color: rgba(255, 255, 255, .4);
  font-size: 12px;
  text-decoration: none;
  white-space: nowrap;
}

.do-footer__legal-link:not([aria-disabled]):hover { color: #fff; }
.do-footer__legal-link[aria-disabled] { cursor: not-allowed; }

@media (max-width: 900px) {
  .do-footer__content { min-height: 0; }
  .do-footer__logo, .do-footer__lead, .do-footer__contact, .do-footer__pin, .do-footer__address,
  .do-footer__col, .do-footer__newsletter, .do-footer__divider, .do-footer__copyright, .do-footer__legal {
    position: relative;
    left: auto !important;
    top: auto !important;
    width: auto !important;
    margin-top: 24px;
  }
  .do-footer__legal { flex-direction: column; gap: 12px; }
}


/* 2026-09-30: согласованная читаемость; финальный красный декор выбирается в Figma. */
.do-footer__heading,
.do-footer__newsletter-label {
  color: rgba(255, 255, 255, .88);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.2px;
}
.do-footer__lead,
.do-footer__contact,
.do-footer__address,
.do-footer__list a,
.do-footer__list span { color: rgba(255, 255, 255, .9); }
.do-footer__list span[aria-disabled] { color: rgba(255, 255, 255, .68); }
.do-footer__address-hours { color: rgba(255, 255, 255, .75); }
.do-footer__copyright,
.do-footer__legal-link { color: rgba(255, 255, 255, .7); }
.do-footer__newsletter-input::placeholder { color: rgba(255, 255, 255, .62); }


/* T-034: принятый подвал B. SVG имеет внутреннее поле 27.28 / 252.08 ширины. */
.do-footer__bg--1 { width: 798px; height: 798px; right: -198px; top: -145px; }
.do-footer__bg--2 { width: 432px; height: 432px; left: -210px; top: 340px; }
.do-footer__logo { left: 0; }
.do-footer__logo img { width: 378px; height: 120px; }
.do-footer__address,
.do-footer__address-hours { color: #fff; }

@media (max-width: 900px) {
  .do-footer__logo { left: 0 !important; }
  .do-footer__bg--1 { right: -470px; opacity: .55; }
}

@media (max-width: 420px) {
  .do-footer__logo { left: 0 !important; }
  .do-footer__logo img { width: 300px; height: auto; }
}


@media (min-width: 901px) and (max-width: 1600px) {
  .do-footer__bg--1 { right: -380px; }
}


@media (max-width: 900px) {
  .do-footer__pin { width: 36px !important; height: 36px; }
}

/* T-034: финальное выравнивание desktop по верху видимого логотипа. */
@media (min-width: 901px) {
  .do-footer__col { top: 24px; }
  .do-footer__newsletter { top: 228px; }
}
/* T-034 (проход Claude Code, 30.09.2026): форма подписки в финальном макете B стоит на y=316, сразу под подписью
   «Новости и акции» (y=288, высота 16): зазор 12 px, а не 28 px прежнего варианта. */
@media (min-width: 901px) {
  .do-footer__newsletter-form { margin-top: 12px; }
}

/* T-034 (проход Claude Code, 30.09.2026): планшет 901–1263 px. Абсолютная раскладка desktop рассчитана на 1264+ (контент 1216 px + поля 24),
   ниже неё третья колонка, подписка и юридические ссылки уходили за край и обрезались. Здесь обёртки __brand и __links становятся
   блоками сетки: слева фирменный блок, справа подписка, ниже три колонки ссылок, внизу линия, © и юридические ссылки.
   Адаптив — предложение до отдельной визуальной приёмки (макет есть только для 1920). */
.do-footer__brand,
.do-footer__links { display: contents; }

/* Фирменный блок (логотип, описание, контакты, адрес) — сеткой на планшете и телефоне: значок адреса стоит слева от текста. */
@media (max-width: 1263px) {
  .do-footer__brand {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 12px;
    align-content: start;
  }
  .do-footer__brand > * { position: static !important; left: auto !important; top: auto !important; margin: 0 !important; }
  .do-footer__brand > .do-footer__logo,
  .do-footer__brand > .do-footer__lead,
  .do-footer__brand > .do-footer__contact { grid-column: 1 / -1; width: auto !important; }
  .do-footer__brand > .do-footer__lead { max-width: 373px; }
  .do-footer__brand > .do-footer__address { grid-column: 2; align-self: center; width: auto !important; }
  .do-footer__brand > .do-footer__pin { grid-column: 1; }
}

@media (min-width: 901px) and (max-width: 1263px) {
  .do-footer__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 274px);
    grid-template-areas: "brand nl" "links links" "rule rule" "bottom bottom";
    column-gap: 48px;
    row-gap: 40px;
    min-height: 0;
  }
  .do-footer__brand { grid-area: brand; }
  .do-footer__links {
    display: grid;
    grid-area: links;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 32px;
  }
  .do-footer__col { position: static; width: auto !important; }
  .do-footer__newsletter { position: static !important; grid-area: nl; width: auto !important; top: auto !important; left: auto !important; }
  .do-footer__divider { position: static; grid-area: rule; width: 100%; }
  .do-footer__copyright { position: static; grid-area: bottom; justify-self: start; align-self: center; }
  .do-footer__legal { position: static; grid-area: bottom; justify-self: end; align-self: center; }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/integration.css?17941852871849*/
/* BX-014: shared header search uses the existing GET /search/index.php route on test. */
body.do-basket-route { margin: 0; }

body.do-product-page > .section,
body.do-product-page > .section > .container-xl { margin: 0; padding: 0; max-width: none; width: 100%; }

.do-basket-form { display: flex; flex: 1 1 100%; align-items: center; flex-wrap: wrap; gap: 12px; }
.do-basket-form .do-product__buy { flex: 1 1 auto; }
.do-product__qty-value[type=number] { appearance: textfield; }
.do-product__qty-value[type=number]::-webkit-inner-spin-button,
.do-product__qty-value[type=number]::-webkit-outer-spin-button { appearance: none; margin: 0; }
.do-product__basket-hint { margin: 8px 0 0; font-size: 12px; color: var(--do-product-muted); }
.do-product__cart-status.is-error { color: #a31829; }

.do-offer-dialog h2 { margin: 0 0 12px; font-size: 24px; line-height: 1.2; }
.do-offer-dialog p { font-size: 13px; line-height: 1.5; }
.do-offer-form { display: grid; gap: 12px; margin-top: 20px; }
.do-offer-form__fields { display: grid; gap: 12px; }
.do-offer-form__fields label { display: grid; gap: 5px; font-size: 12px; font-weight: 600; }
.do-offer-form__fields input,
.do-offer-form__fields textarea { display: block; width: 100%; min-height: 44px; padding: 10px 14px; border: 1px solid var(--do-border); border-radius: 10px; font: inherit; }
.do-offer-form__fields textarea { min-height: 80px; resize: vertical; }
.do-offer-form__agree { display: flex; align-items: flex-start; gap: 8px; font-size: 11px; line-height: 1.45; }
.do-offer-form__agree input { margin: 2px 0 0; flex: 0 0 auto; }
.do-offer-form__agree a { color: inherit; text-decoration: underline; }
.do-offer-form .do-product__cta { border: 0; cursor: pointer; }

@media (max-width: 760px) {
  .do-basket-form { width: 100%; }
  .do-basket-form .do-product__buy { flex-basis: 100%; }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/product.css?179418528817169*/
/* T-012: scoped pilot. Sizes below are design proposals, not measured Figma product tokens. */
.do-product-page { margin:0; color:var(--do-text); background:var(--do-surface); font-family:var(--do-font); }
.do-product, .do-product * { box-sizing:border-box; }
.do-product { --do-product-muted:#656565; font-size:15px; line-height:1.65; }
.do-product button, .do-product a { -webkit-tap-highlight-color:transparent; }
.do-product button { font:inherit; cursor:pointer; }
.do-product a { color:inherit; text-underline-offset:4px; }
.do-product :focus-visible, .do-product__skip:focus-visible { outline:3px solid var(--do-brand); outline-offset:4px; }
.do-product__skip { position:absolute; top:-80px; left:24px; padding:12px; z-index:100; background:white; }
.do-product__skip:focus { top:8px; }
.do-product__container { width:min(var(--do-content-width),calc(100% - 48px)); margin-inline:auto; }
.do-product h1, .do-product h2, .do-product h3, .do-product p, .do-product figure, .do-product dl { margin:0; }
.do-product h1 { font-size:42px; font-weight:800; line-height:1.12; letter-spacing:-1.4px; margin:0 0 20px; }
.do-product h2 { font-size:32px; font-weight:800; line-height:1.2; letter-spacing:-.65px; margin-bottom:24px; }
.do-product h3 { font-size:17px; line-height:1.4; margin-bottom:12px; }
.do-product__breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; padding:28px 0; font-size:12px; color:var(--do-product-muted); }
.do-product__breadcrumbs a { text-decoration:none; }
.do-product__hero {
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);
  grid-template-areas:"media top" "media bottom";
  gap:32px 48px;
  padding-bottom:56px;
  align-items:start;
}
.do-product__offer-top { grid-area:top; }
/* T-018: у новых товаров названия длиннее («Стоматологическая установка Intego»), и на
   планшете одно слово шире колонки карточки выталкивало всю страницу (775px при 768px).
   На страницах CJ-Optik/ExamVision названия короче — правило там ничего не меняет. */
.do-product__offer-top h1 { overflow-wrap:break-word; }
.do-product__offer-bottom { grid-area:bottom; }
.do-product__media-column { grid-area:media; align-self:stretch; min-width:0; }
.do-product__gallery { position:sticky; top:24px; }
.do-product__stage { position:relative; }
.do-product__image-button { display:block; position:relative; width:100%; border:1px solid var(--do-border); border-radius:24px; padding:16px; background:white; overflow:hidden; }
.do-product__main-image { display:block; width:100%; height:clamp(260px,calc(100dvh - 280px),470px); object-fit:contain; }
.do-product__enlarge-label { position:absolute; bottom:14px; right:18px; font-size:11px; background:white; padding:4px 8px; color:var(--do-product-muted); }
/* T-014 (F-005): explicit prev/next controls on the main stage image (not just thumbs/lightbox);
   disabled — not wrapped — at the first/last photo. Counter moved onto the image's own corner. */
/* T-015 (F-006): removed the permanent border ring — definition now comes from the
   drop-shadow only; :focus-visible (global rule, brand-color, 3px) still shows clearly. */
.do-product__stage-arrow { position:absolute; top:50%; z-index:2; display:flex; width:40px; height:40px; align-items:center; justify-content:center; transform:translateY(-50%); background:white; border:0; border-radius:999px; font-size:20px; line-height:1; box-shadow:0 4px 10px rgb(0 0 0 / 12%); }
.do-product__stage-arrow:hover:not(:disabled) { background:var(--do-surface-subtle); }
.do-product__stage-arrow:disabled { opacity:.35; cursor:default; }
.do-product__stage-arrow--prev { left:28px; }
.do-product__stage-arrow--next { right:28px; }
.do-product__stage-counter { position:absolute; left:28px; bottom:28px; z-index:2; padding:4px 10px; background:rgb(255 255 255 / 92%); border:1px solid var(--do-border); border-radius:999px; font-size:11px; color:var(--do-product-muted); }
.do-product__thumbs { display:flex; gap:10px; margin-top:12px; }
.do-product__thumb { width:110px; padding:5px; background:white; border:1px solid var(--do-border); border-radius:12px; color:var(--do-product-muted); }
.do-product__thumb[aria-pressed="true"] { border:2px solid var(--do-brand); padding:4px; color:var(--do-text); }
.do-product__thumb img { display:block; width:100%; height:64px; object-fit:contain; }
.do-product__brandline { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin:20px 0 0; font-size:12px; }
.do-product__brandline>a:first-child { font-size:15px; font-weight:700; }
.do-product__brandline span { color:var(--do-product-muted); }
.do-product__review-link { margin-left:auto; }
.do-product__eyebrow { text-transform:uppercase; font-size:11px; letter-spacing:1.4px; font-weight:600; color:var(--do-brand); margin-bottom:12px!important; }
/* T-015 (F-006): evidence-based spacing pass — unified the offer-top rhythm to a
   consistent 20px between h1/price/description/brandline/purchase (was 16/20/mixed
   padding-margin); cart-status kept intentionally tighter (12px, was 10px) since it is a
   direct confirmation of the purchase row above it, not a new block. Before/after
   measurements: ../../DentOptics/feedback/screenshots/T-015/MEASUREMENTS.md. */
.do-product__intro { color:var(--do-product-muted); margin-top:20px!important; }
.do-product__price-row { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.do-product__price { font-size:28px; font-weight:800; letter-spacing:-.4px; }
.do-product__availability { display:inline-flex; align-items:center; gap:8px; padding:6px 14px; border-radius:999px; font-size:12px; font-weight:600; background:var(--do-surface-subtle); color:var(--do-product-muted); }
.do-product__availability--in-stock { background:#eaf7ee; color:#1f7a3d; }
.do-product__availability-dot { width:8px; height:8px; border-radius:50%; background:currentColor; flex-shrink:0; }
.do-product__availability-dot--pulse { animation:do-product-pulse 2s ease-in-out infinite; }
@keyframes do-product-pulse { 0%,100% { opacity:1; box-shadow:0 0 0 0 rgb(31 122 61 / 40%); } 50% { opacity:.85; box-shadow:0 0 0 5px rgb(31 122 61 / 0%); } }
.do-product__purchase { padding:24px; background:var(--do-surface-subtle); border-radius:24px; margin-top:20px; display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.do-product__qty { display:inline-flex; align-items:center; gap:0; border:1px solid var(--do-border); border-radius:999px; overflow:hidden; background:white; }
.do-product__qty button { width:40px; height:44px; background:transparent; border:0; font-size:16px; }
.do-product__qty button:hover { background:var(--do-surface-subtle); }
.do-product__qty-value { width:40px; height:44px; border:0; border-inline:1px solid var(--do-border); text-align:center; font:inherit; font-weight:700; background:transparent; }
.do-product__cta, .do-product__secondary, .do-product__buy { display:flex; align-items:center; justify-content:center; text-align:center; min-height:48px; padding:12px 22px; font-size:12px; line-height:1.5; font-weight:700; border:1px solid transparent; border-radius:999px; text-decoration:none; }
.do-product .do-product__cta { background:var(--do-brand); color:white; width:100%; font-size:12px; font-weight:700; }
.do-product__cta:hover { background:#9e0d20; }
.do-product__secondary { border-color:var(--do-text); background:transparent; }
.do-product__secondary:hover { background:var(--do-surface-subtle); }
/* T-014 (F-005): real, active, brand-colored CTA — the color IS var(--do-brand), the same
   #ba0f26 taken from the project's own design tokens/header (DentOptics' brand red, not a
   CJ-Optik-specific accent — this page sells on dentoptics.ru, not on a CJ-Optik microsite). */
.do-product__buy { background:var(--do-brand); color:white; flex:1 1 auto; }
.do-product__buy:hover { background:#9e0d20; }
.do-product__buy:active { background:#7d0a1a; }
.do-product__purchase .do-product__consult { width:100%; margin-top:0; }
.do-product__cart-status { min-height:16px; margin-top:12px!important; font-size:12px; color:#1f7a3d; }
/* T-026: compact contact actions, one row, no permanent frames or shadows. */
.do-product__messengers { display:flex; gap:10px; margin-top:20px; }
/* Keep the global :focus-visible outline for keyboard navigation. */
.do-product__msg-tile { display:flex; flex:1 1 0; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:56px; padding:8px 4px; border:0; border-radius:8px; box-shadow:none; color:var(--do-text); text-decoration:none; }
.do-product__msg-tile:hover { background:var(--do-surface-subtle); }
.do-product__msg-tile svg { width:22px; height:22px; flex-shrink:0; }
.do-product__msg-tile img { display:block; width:24px; height:24px; flex-shrink:0; }
.do-product__msg-tile-label { font-size:10px; font-weight:600; text-align:center; line-height:1.2; }
.do-product__conditions { margin-top:16px; }
.do-product__conditions details { border-top:1px solid var(--do-border); }
.do-product__conditions summary { cursor:pointer; padding:17px 0; font-weight:600; font-size:13px; }
.do-product__conditions details p { padding:0 0 18px; font-size:13px; color:var(--do-product-muted); }
.do-product__nav { position:sticky; top:0; z-index:10; background:white; border-block:1px solid var(--do-border); }
.do-product__nav-inner { display:flex; gap:32px; overflow:auto; scrollbar-width:thin; }
.do-product__nav a { flex-shrink:0; padding:20px 0 18px; font-size:12px; font-weight:600; text-decoration:none; border-bottom:2px solid transparent; }
.do-product__nav a[aria-current] { color:var(--do-brand); border-color:var(--do-brand); }
.do-product__section { padding:72px 0; border-bottom:1px solid var(--do-border); scroll-margin-top:90px; }
.do-product__story { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.do-product__story::before { content:''; position:absolute; z-index:-1; right:-120px; top:-170px; width:690px; height:690px; background:url('/local/templates/dentoptics_redesign/assets/product/../home-hero/dentsply-red-shape.svg') center/contain no-repeat; opacity:.12; pointer-events:none; }
.do-product__story p:not(.do-product__eyebrow) { color:var(--do-product-muted); max-width:490px; }
.do-product__story figure img { width:100%; height:310px; object-fit:contain; display:block; mix-blend-mode:multiply; }
.do-product figcaption { font-size:11px; line-height:1.6; color:var(--do-product-muted); margin-top:16px; }
.do-product__text-link { display:inline-block; color:var(--do-brand)!important; font-weight:600; font-size:13px; margin-top:24px; text-decoration:underline; text-underline-offset:5px; background:none; border:0; padding:0; }
/* T-014 (F-005): compact card grid — a genuine restyle of specs, not the T-013 stacked
   full-width row list (kept the underlying <dt>/<dd> pairs, changed the container/layout). */
.do-product__specs-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; max-width:940px; }
.do-product__spec-card { padding:16px 18px; background:var(--do-surface-subtle); border-radius:16px; }
.do-product__spec-card dt { margin:0; color:var(--do-product-muted); font-size:11px; text-transform:uppercase; letter-spacing:.6px; }
.do-product__spec-card dd { margin:6px 0 0; font-weight:600; overflow-wrap:anywhere; }
.do-product__muted { color:var(--do-product-muted); font-size:12px; margin-top:20px!important; max-width:830px; }
.do-product__reviews { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.do-product__reviews p { max-width:640px; color:var(--do-product-muted); }
.do-product__reviews>a { flex-shrink:0; }
/* T-014: compact standalone card row (icon + text + arrow), not the T-013 stacked block. */
.do-product__docs { margin-top:24px; }
.do-product__docs #docs-title { margin-bottom:10px!important; }
.do-product__doc { display:flex; align-items:center; gap:14px; padding:14px 18px; background:var(--do-surface-subtle); border-radius:16px; text-decoration:none; }
.do-product__doc:hover { background:#eee; }
.do-product__doc-icon { width:22px; height:22px; flex-shrink:0; color:var(--do-brand); }
.do-product__doc-text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.do-product__doc-title { font-weight:700; font-size:13px; }
.do-product__doc-desc { font-size:12px; color:var(--do-product-muted); }
.do-product__doc-arrow { margin-left:auto; flex-shrink:0; color:var(--do-product-muted); }
.do-product__configuration { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.do-product__configuration p { color:var(--do-product-muted); }
.do-product__manufacturer { display:grid; grid-template-columns:1fr 2fr; gap:72px; align-items:center; border-bottom:0; }
.do-product__manufacturer-logo { display:flex; align-items:center; justify-content:center; background:var(--do-surface-subtle); border-radius:24px; min-height:200px; }
.do-product__manufacturer-logo img { width:220px; height:auto; object-fit:contain; max-width:80%; }
.do-product__manufacturer p { max-width:580px; }
.do-product__preview-note { padding:20px 24px; text-align:center; font-size:12px; background:var(--do-surface-subtle); color:var(--do-product-muted); }
.do-product__dialog, .do-product__lightbox { color:var(--do-text); font-family:var(--do-font); border:0; border-radius:24px; padding:32px; width:min(520px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; }
.do-product dialog::backdrop { background:rgb(26 26 24 / 60%); }
.do-product__close { display:block; margin:0 0 24px auto; background:transparent; border:0; text-decoration:underline; padding:8px; min-height:40px; }
.do-product__dialog .do-product__cta { margin-top:24px; }
.do-product__dialog .do-product__secondary { margin-top:12px; }
.do-product__lightbox { width:min(1100px,calc(100% - 32px)); }
.do-product__lightbox>img { width:100%; height:calc(100dvh - 240px); min-height:120px; object-fit:contain; display:block; }
.do-product__lightbox-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:20px; font-size:12px; }
.do-product__lightbox-controls button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--do-border); background:white; border-radius:50%; font-size:30px; line-height:1; }
.do-product__lightbox-controls button:disabled { opacity:.4; cursor:default; }
@media (max-height:650px) { .do-product__gallery { position:static; } }
@media (max-width:1050px) { .do-product__hero { gap:28px; } .do-product h1 { font-size:34px; } .do-product__story { gap:32px; } }
/* Название/цена/статус/описание/бренд и отзывы/покупка (offer-top) идут до галереи,
   мессенджеры/условия (offer-bottom) — после. Не Figma-макет товара. */
@media (max-width:760px) {
 .do-product__container { width:calc(100% - 32px); }
 .do-product__hero {
   grid-template-columns:minmax(0,1fr);
   grid-template-areas:"top" "media" "bottom";
   gap:28px;
 }
 /* 2026-09-19: grid items default to min-width:auto, so a long unbroken word in the h1
    ("Стоматологический") refused to shrink below its own min-content width, overflowing
    the mobile column by ~12px even though the track itself was minmax(0,1fr) — found while
    checking 360px. */
 .do-product__offer-top, .do-product__media-column, .do-product__offer-bottom { min-width:0; }
 .do-product h1 { overflow-wrap:break-word; }
 .do-product__story, .do-product__manufacturer { grid-template-columns:1fr; gap:28px; }
 .do-product__gallery { position:static; }
 .do-product__main-image { height:320px; }
 .do-product__hero { padding-bottom:40px; }
 .do-product h1 { font-size:34px; }
 .do-product h2 { font-size:27px; }
 .do-product__price { font-size:24px; }
 .do-product__stage-arrow { width:34px; height:34px; font-size:17px; }
 .do-product__stage-arrow--prev { left:12px; }
 .do-product__stage-arrow--next { right:12px; }
 .do-product__stage-counter { left:12px; bottom:12px; }
 /* 2026-09-19: pre-existing overflow found while checking 390/360 — 6 fixed-110px thumbs
    (660px+) never wrapped or scrolled inside a ~328px mobile container, forcing horizontal
    page scroll. Only affects Advanced (only product with >1 photo). */
 .do-product__thumbs { overflow-x:auto; scrollbar-width:thin; padding-bottom:4px; }
 .do-product__thumb { flex-shrink:0; }
 .do-product__messengers { gap:8px; }
 .do-product__msg-tile { padding:8px 2px; }
 .do-product__nav-inner { gap:24px; }
 .do-product__section { padding:44px 0; }
 .do-product__specs-grid { grid-template-columns:1fr; }
 .do-product__reviews { align-items:start; flex-direction:column; gap:20px; }
 .do-product__configuration { grid-template-columns:1fr; gap:24px; }
 .do-product__purchase .do-product__buy, .do-product__purchase .do-product__consult { flex:1 1 100%; }
 .do-product__dialog { padding:22px; }
 .do-product__lightbox { padding:16px; }
 .do-product__lightbox-controls { gap:8px; font-size:10px; }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/story.css?179418528877992*/
/* Product Story chapters — shared across all 5 CJ-Optik microscope pages.
   Source: Figma aXFGbCtkDCUl6YzGHawqPo, canvas "CJ-Optik — Product Stories" (5600:44)
   and "LAB - Product story A - Figma AI" (5536:2, Flexion Advanced hybrid C, node 5550:2277).
   Each chapter can be light or dark per model — set via data-theme on the section,
   matching the exact per-model choice made in the Figma file (not a global toggle). */
.do-story { --do-story-radius-12:12px; display:block; scroll-margin-top:90px; }
.do-story [data-theme="dark"] { --do-story-surface:#171615; --do-story-text:#ffffff; --do-story-muted:#c2c1bf; --do-story-border:#504e4b; --do-story-accent:#ba0f26; }
.do-story [data-theme="light"] { --do-story-surface:#ffffff; --do-story-text:#2c2b2a; --do-story-muted:#686765; --do-story-border:#e5e4e2; --do-story-accent:#ba0f26; }

/* Chapter 1 — narrative hero (idea of the model). Always on a dark or light hero image bed. */
.do-story__hero { position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; min-height:560px; padding:72px 0; background:var(--do-story-surface); color:var(--do-story-text); }
.do-story__hero-o { position:absolute; right:-80px; top:50%; transform:translateY(-50%); width:660px; height:654px; pointer-events:none; }
.do-story__hero-photo { position:absolute; inset:0; z-index:-1; }
.do-story__hero-photo img { position:absolute; right:0; top:-90px; width:57%; max-width:820px; height:auto; object-fit:contain; }
.do-story__hero[data-theme="dark"] .do-story__hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,var(--do-story-surface) 0%,var(--do-story-surface) 42%,transparent 62%); }
.do-story__hero[data-theme="light"] .do-story__hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#ffffff 0%,#ffffff 42%,transparent 62%); }
.do-story__hero-text { position:relative; max-width:560px; display:flex; flex-direction:column; gap:20px; }
.do-story__hero-eyebrow { display:flex; align-items:center; gap:12px; font-size:11px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; opacity:.7; }
.do-story__hero-eyebrow::before { content:''; width:28px; height:2px; background:var(--do-story-accent); flex-shrink:0; }
.do-story__hero-title { font-size:56px; font-weight:800; line-height:1.12; margin:0; }
.do-story__hero-title .do-story__hero-dot { display:inline-block; width:9px; height:9px; margin-left:10px; border-radius:3px; background:var(--do-story-accent); vertical-align:middle; }
.do-story__hero-rule { width:48px; height:1px; background:currentColor; opacity:.15; }
.do-story__hero-body { font-size:16px; line-height:1.7; opacity:.75; max-width:420px; margin:0; }

/* Chapter 2 — detailed feature grid */
.do-story__features { background:#f8f9fa; padding:56px 0; }
.do-story__features-head { margin-bottom:40px; }
.do-story__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px 24px; }
.do-story__feature { display:flex; flex-direction:column; gap:16px; }
.do-story__feature-photo { width:140px; height:140px; border-radius:70px; overflow:hidden; border:4px solid #fff; box-shadow:0 8px 24px rgb(0 0 0 / 10%); }
.do-story__feature-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.do-story__feature-title { font-size:15px; font-weight:700; color:#2c2b2a; margin:0; }
.do-story__feature-desc { font-size:13px; line-height:1.55; color:#6c6b6a; margin:4px 0 0; max-width:220px; }

/* Chapter — reviews (generic gallery shared by 4 models, or model-specific for Advanced) */
.do-story__reviews { padding:56px 0; background:var(--do-story-surface); color:var(--do-story-text); }
.do-story__reviews > .do-product__container:first-child { display:flex; gap:48px; align-items:center; }
.do-story__reviews-head { flex-shrink:0; width:360px; display:flex; flex-direction:column; gap:16px; }
.do-story__reviews-kicker { font-size:13px; font-weight:700; letter-spacing:.65px; color:var(--do-story-accent); text-transform:uppercase; margin:0; }
.do-story__reviews-title { font-size:36px; font-weight:800; margin:0; }
.do-story__reviews-note { font-size:16px; color:var(--do-story-muted); margin:0; }
.do-story__reviews-gallery { flex:1 1 auto; min-width:0; }
.do-story__reviews-row { display:flex; gap:24px; overflow-x:auto; scrollbar-width:thin; }
/* ExamVision: the cards scroll inside the strip all the way to the viewport edge,
   while the heading and controls keep their places in the content grid. */
@media (min-width:761px) {
  .do-story__reviews--viewport-edge .do-story__reviews-row {
    width:calc(100% + max(24px, (100vw - var(--do-content-width)) / 2));
  }
}
.do-story__review-card { flex-shrink:0; width:340px; text-decoration:none; color:inherit; }
.do-story__review-photo { position:relative; width:100%; aspect-ratio:340/476; border-radius:12px; overflow:hidden; background:#1a1a1a; }
.do-story__review-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.do-story__review-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:56px; height:56px; border-radius:50%; background:rgb(255 255 255 / 92%); display:flex; align-items:center; justify-content:center; }
.do-story__review-play::after { content:''; border-style:solid; border-width:9px 0 9px 15px; border-color:transparent transparent transparent #171615; margin-left:3px; }
.do-story__review-name { font-size:20px; font-weight:700; margin:14px 0 4px; }
.do-story__review-role { font-size:14px; color:var(--do-story-muted); margin:0; }

/* Chapter — technical specifications, per-model theme */
.do-story__specs { padding:72px 0; position:relative; isolation:isolate; overflow:hidden; background:var(--do-story-surface); color:var(--do-story-text); }
.do-story__specs-watermark { position:absolute; right:-450px; top:-300px; width:1000px; height:1000px; opacity:.5; pointer-events:none; z-index:-1; }
.do-story__specs-head { margin-bottom:40px; }
.do-story__specs-cols { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.do-story__specs-group + .do-story__specs-group { margin-top:32px; }
.do-story__specs-group-title { font-size:16px; font-weight:700; text-transform:uppercase; color:var(--do-story-accent); margin:0 0 12px; }
.do-story__specs-row { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid var(--do-story-border); font-size:14px; }
.do-story__specs-row dt { color:var(--do-story-muted); font-weight:400; margin:0; }
.do-story__specs-row dd { font-weight:700; text-align:right; margin:0; }

/* Chapter — eyebrow/heading shared by features/specs/reviews/documents/manufacturer */
.do-story__kicker { font-size:14px; font-weight:700; text-transform:uppercase; color:var(--do-story-accent); margin:0 0 16px; }
.do-story__heading { font-size:42px; font-weight:800; line-height:1.2; margin:0; color:var(--do-story-text); }

/* Chapter — documents, per-model theme (defaults dark) */
.do-story__docs { padding:110px 0; position:relative; isolation:isolate; overflow:hidden; background:var(--do-story-surface); color:var(--do-story-text); }
.do-story__docs-o { position:absolute; right:-350px; top:-260px; width:1100px; height:1100px; opacity:.5; pointer-events:none; z-index:-1; }
.do-story__docs-head { margin-bottom:56px; }
.do-story__doc-row { display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--do-story-border); }
.do-story__doc-row:last-child { border-bottom:0; }
.do-story__doc-icon { flex-shrink:0; width:44px; height:52px; border-radius:6px; background:#ba0f26; color:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; }
.do-story__doc-text { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:3px; }
.do-story__doc-title { font-size:16px; font-weight:700; margin:0; }
.do-story__doc-meta { font-size:13px; color:var(--do-story-muted); margin:0; }
.do-story__doc-btn { flex-shrink:0; display:flex; align-items:center; min-height:44px; padding:12px 20px; border:1.5px solid currentColor; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; color:inherit; }

/* Chapter 5 — manufacturer, always light */
.do-story__manufacturer { padding:64px 0; display:flex; flex-direction:column; align-items:center; gap:32px; background:#fff; color:#2c2b2a; }
.do-story__manufacturer-head { align-self:flex-start; display:flex; flex-direction:column; gap:12px; }
.do-story__manufacturer-panorama { width:100%; height:240px; border-radius:0; overflow:hidden; }
.do-story__manufacturer-panorama img { width:100%; height:100%; object-fit:cover; display:block; }
.do-story__manufacturer-caption { font-size:13px; color:#6c6b6a; align-self:flex-start; }
.do-story__manufacturer-row { display:flex; gap:48px; align-items:flex-start; width:100%; }
.do-story__manufacturer-photos { display:flex; gap:16px; flex-shrink:0; }
.do-story__manufacturer-photos img { border-radius:12px; border:1px solid #e5e6e8; object-fit:cover; display:block; }
.do-story__manufacturer-photos img:first-child { width:360px; height:250px; }
.do-story__manufacturer-photos img:last-child { width:280px; height:200px; }
.do-story__manufacturer-copy { flex:1 1 auto; display:flex; flex-direction:column; gap:24px; }
.do-story__manufacturer-copy > p { font-size:16px; line-height:1.6; color:#6c6b6a; margin:0; }
.do-story__manufacturer-facts { display:flex; flex-direction:column; gap:16px; }
.do-story__manufacturer-fact { display:flex; align-items:center; gap:16px; font-size:14px; font-weight:700; }
.do-story__manufacturer-fact::before { content:''; width:8px; height:8px; border-radius:4px; background:#ba0f26; flex-shrink:0; }
.do-story__manufacturer-cta-row { display:flex; align-items:center; gap:24px; }
.do-story__manufacturer-logo { display:flex; align-items:center; justify-content:center; width:140px; height:80px; background:#f8f9fa; border:1px solid #e5e6e8; border-radius:8px; }
.do-story__manufacturer-logo img { width:120px; height:60px; object-fit:contain; }
.do-story__manufacturer-btn { display:inline-flex; align-items:center; gap:8px; padding:12px 28px; background:#ba0f26; color:#fff; border-radius:4px; font-size:14px; font-weight:600; text-decoration:none; }

/* Mobile feature gallery pagination (Chapter 2, ≤760px): a 3-per-page vertical list with
   prev/next, matching the Figma "StoryFeaturesGallery" component — not the desktop 6-up grid. */
.do-story__feature-list { display:none; }
.do-story__feature-page { display:flex; flex-direction:column; gap:16px; }
.do-story__feature-page[hidden] { display:none; }
.do-story__feature-list .do-story__feature { flex-direction:row; align-items:center; gap:12px; }
.do-story__feature-list .do-story__feature-photo { width:64px; height:64px; border-radius:32px; border-width:0; flex-shrink:0; }
.do-story__feature-list .do-story__feature-desc { max-width:none; }
.do-story__feature-nav { display:flex; align-items:center; justify-content:space-between; padding-top:8px; }
.do-story__feature-nav button { width:44px; height:44px; border-radius:22px; border:0; background:transparent; font-size:22px; color:#d1d1d1; }
.do-story__feature-nav button.is-active { background:#f0f0ed; color:#2c2b2a; }
.do-story__feature-nav button:disabled { opacity:.4; }
.do-story__feature-page-label { font-size:14px; font-weight:600; color:#686765; }
.do-story__dots { display:none; gap:8px; justify-content:center; padding-top:20px; }
.do-story__dots span { width:8px; height:8px; border-radius:50%; background:#e5e4e2; }
.do-story__dots span.is-active { background:#ba0f26; }

@media (max-width:1050px) {
  .do-story__grid { grid-template-columns:repeat(2,1fr); }
  .do-story__specs-cols { gap:40px; }
}
@media (max-width:760px) {
  .do-story__hero { min-height:520px; padding:80px 24px 48px; align-items:flex-end; }
  .do-story__hero-o { display:none; }
  .do-story__hero-photo img { top:0; right:-50px; width:82%; opacity:.35; }
  .do-story__hero-text { max-width:none; }
  .do-story__hero-title { font-size:40px; line-height:48px; }
  .do-story__hero-rule { display:none; }
  .do-story__features, .do-story__reviews, .do-story__specs, .do-story__docs, .do-story__manufacturer { padding-inline:0; }
  .do-story__features > .do-product__container, .do-story__specs > .do-product__container, .do-story__docs > .do-product__container, .do-story__manufacturer > .do-product__container { width:calc(100% - 48px); }
  .do-story__reviews > .do-product__container:first-child { flex-direction:column; align-items:stretch; gap:24px; width:calc(100% - 48px); }
  .do-story__reviews-head { width:auto; }
  .do-story__reviews-title, .do-story__heading { font-size:32px; line-height:38px; }
  .do-story__reviews-row { padding-bottom:4px; margin:0 -24px; padding-inline:24px; }
  .do-story__review-card { width:78vw; max-width:302px; }
  .do-story__dots { display:flex; }
  .do-story__grid { display:none; }
  .do-story__feature-list { display:flex; flex-direction:column; gap:16px; }
  .do-story__specs-cols { grid-template-columns:1fr; gap:24px; }
  .do-story__specs-watermark, .do-story__docs-o { opacity:.3; }
  .do-story__manufacturer-row { flex-direction:column; gap:24px; }
  .do-story__manufacturer-photos { width:100%; flex-direction:column; }
  .do-story__manufacturer-photos img:first-child, .do-story__manufacturer-photos img:last-child { width:100%; height:auto; aspect-ratio:16/10; padding-left:0; }
  .do-story__manufacturer-cta-row { flex-direction:column; align-items:stretch; }
  .do-story__manufacturer-btn { justify-content:center; }
}

/* ==========================================================================
   ExamVision loupes (T-017, 2026-09-20) — all rules below are scoped to
   `.do-ev-*` classes so they cannot affect the CJ-Optik `.do-story__*` rules
   above. Reuses `.do-product__container` for the centered max-width column
   and `.do-story__reviews*`/`.do-story__review-*`/`.do-story__dots` for the
   reviews carousel shell (identical structure — see story-examvision.mjs).
   Source: Figma page "ExamVision — Product Stories" (5694:229). ========== */
.do-ev-kicker { font-size:14px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; color:#666; margin:0 0 12px; }
.do-ev-heading { font-size:42px; font-weight:800; line-height:1.2; color:#1f1f1f; margin:0; }
.do-ev-heading--sm { font-size:28px; }
.do-ev-section-head { margin-bottom:24px; }
.do-ev-text-link { color:#ba0f26; font-weight:600; font-size:14px; text-decoration:none; display:inline-flex; align-items:center; gap:8px; }
.do-ev-text-link:hover { text-decoration:underline; }
.do-ev-cta { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:12px 28px; background:#ba0f26; color:#fff; border-radius:6px; font-weight:700; font-size:14px; text-decoration:none; }
.do-ev-cta:hover { background:#9e0d20; }

/* Hero — three variants per model: full-light (HD/Reflekt/Advanced), full-dark
   (Essential), split dark-left/light-right (Kompakt, no decorative O). */
.do-ev-hero { position:relative; isolation:isolate; overflow:hidden; min-height:720px; }
.do-ev-hero--full { display:flex; align-items:center; }
.do-ev-hero--light { background:#f8f8f7; }
.do-ev-hero--dark { background:#1f1f1f; }
.do-ev-hero-o { position:absolute; right:60px; top:15px; width:660px; height:auto; z-index:-1; opacity:.9; }
.do-ev-hero-photo-img { position:absolute; right:0; top:0; height:100%; width:62%; object-fit:contain; object-position:center; z-index:-1; }
.do-ev-hero-text { position:relative; max-width:600px; padding:180px 40px 80px 80px; display:flex; flex-direction:column; gap:20px; }
.do-ev-hero-eyebrow { display:flex; align-items:center; gap:10px; font-size:11px; font-weight:600; letter-spacing:1.1px; color:#ba0f26; margin:0; }
.do-ev-hero-eyebrow::before { content:''; width:28px; height:2px; background:#ba0f26; flex-shrink:0; }
.do-ev-hero--dark .do-ev-hero-eyebrow { color:#ba0f26; }
.do-ev-hero-title { font-size:52px; font-weight:800; line-height:1.18; margin:0; color:#1f1f1f; }
.do-ev-hero--dark .do-ev-hero-title { color:#fff; }
.do-ev-hero-sublead { font-size:20px; color:#666; margin:0; }
.do-ev-hero--dark .do-ev-hero-sublead { color:#bfbfbf; }
.do-ev-hero-rule { width:48px; height:1px; background:rgba(31,31,31,.15); }
.do-ev-hero--dark .do-ev-hero-rule { background:rgba(255,255,255,.15); }
.do-ev-hero-body { font-size:15px; line-height:1.6; color:#666; margin:0; max-width:420px; }
.do-ev-hero--dark .do-ev-hero-body { color:#bfbfbf; }
/* Split (Kompakt): fixed 600px dark text panel + light photo panel — the source of the
   "black edge" fix in REVISION-02.md was the photo's own matched background (#f7f7f7),
   not this two-panel layout, which already had no seam. */
.do-ev-hero--split { display:flex; }
.do-ev-hero-panel { width:600px; flex-shrink:0; padding:180px 40px 80px 80px; display:flex; flex-direction:column; gap:20px; }
.do-ev-hero-panel--dark { background:#16100e; }
.do-ev-hero-title--onDark { font-size:52px; font-weight:800; line-height:1.18; color:#fff; margin:0; }
.do-ev-hero-rule--onDark { width:48px; height:1px; background:rgba(255,255,255,.2); }
.do-ev-hero-body--onDark { font-size:15px; line-height:1.6; color:rgba(255,255,255,.75); margin:0; max-width:420px; }
.do-ev-hero-photo--light { flex:1 1 auto; background:#f7f7f7; display:flex; align-items:center; justify-content:center; }
.do-ev-hero-photo--light img { width:100%; height:100%; object-fit:contain; }

/* Features — 3 items, small circles, no border ring (distinct from CJ's 6-up bordered grid). */
.do-ev-features { background:#f8f9fa; padding:80px 0; }
.do-ev-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.do-ev-feature { display:flex; flex-direction:column; gap:16px; }
.do-ev-feature-photo { width:120px; height:120px; border-radius:60px; overflow:hidden; }
.do-ev-feature-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.do-ev-feature-title { font-size:16px; font-weight:700; color:#1f1f1f; margin:0; }
.do-ev-feature-desc { font-size:13px; line-height:1.55; color:#666; margin:4px 0 0; }

/* Gallery/Video — composition varies per product (bento / stacked / video), not one template. */
.do-ev-gallery { background:#fff; padding:64px 0; }
.do-ev-gallery-row { display:flex; gap:48px; align-items:center; }
.do-ev-gallery-text { flex:1 1 0; min-width:0; }
.do-ev-gallery-note { font-size:15px; line-height:1.6; color:#666; margin:0; }
.do-ev-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.do-ev-photo-grid__item { display:block; aspect-ratio:4/3; min-width:0; overflow:hidden; border-radius:12px; background:var(--do-surface-subtle,#f5f5f5); }
.do-ev-photo-grid__item img { display:block; width:100%; height:100%; object-fit:contain; }
@media (max-width:760px) {
  .do-ev-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
}
.do-ev-bento { display:flex; gap:16px; }
.do-ev-bento-big { flex:1 1 0; height:420px; border-radius:8px; overflow:hidden; }
.do-ev-bento-big img { width:100%; height:100%; object-fit:cover; display:block; }
.do-ev-bento-side { flex:1 1 0; display:flex; flex-direction:column; gap:16px; }
.do-ev-bento-side img { width:100%; height:202px; border-radius:8px; object-fit:cover; display:block; }
.do-ev-gallery-stack { flex:1 1 0; display:flex; flex-direction:column; gap:12px; }
.do-ev-gallery-stack img { width:100%; height:260px; border-radius:8px; object-fit:cover; display:block; }
.do-ev-video-poster { position:relative; display:block; flex:1 1 0; height:400px; border-radius:8px; overflow:hidden; text-decoration:none; }
.do-ev-video-poster img { width:100%; height:100%; object-fit:cover; display:block; }
.do-ev-video-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:20px; color:#fff; background:rgba(0,0,0,.15); }
.do-ev-video-play::before { content:''; position:absolute; width:56px; height:56px; border-radius:50%; background:#ba0f26; z-index:-1; }

/* Reviews demo cards (see story-examvision.mjs renderReviewsDemo) — same shell as CJ's
   .do-story__reviews, only the card content becomes a plain placeholder box. */
.do-ev-review-photo--demo { background:#1a1a1a; display:flex; align-items:center; justify-content:center; }

/* Manufacturer — 2 large photos + copy + brand O (distinct from CJ's panorama+logo layout). */
.do-ev-manufacturer { background:#fff; padding:80px 0; }
.do-ev-manufacturer-photos { display:flex; gap:16px; margin-bottom:24px; }
.do-ev-manufacturer-photos img { flex:1 1 0; height:300px; border-radius:8px; object-fit:cover; display:block; }
.do-ev-manufacturer-row { display:flex; gap:64px; align-items:flex-start; }
.do-ev-manufacturer-copy { flex:1 1 0; display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.do-ev-manufacturer-copy > p { font-size:16px; line-height:1.6; color:#333; margin:0; }
.do-ev-brand-o { width:160px; height:auto; flex-shrink:0; }

@media (max-width:1050px) {
  .do-ev-feature-grid { grid-template-columns:1fr; gap:24px; }
  .do-ev-feature { flex-direction:row; align-items:center; }
  .do-ev-hero-photo-img { width:75%; opacity:.5; }
}
@media (max-width:760px) {
  .do-ev-hero { min-height:0; }
  .do-ev-hero--full { flex-direction:column; align-items:stretch; }
  .do-ev-hero-o { display:none; }
  .do-ev-hero-photo-img { position:static; width:100%; height:320px; object-fit:contain; opacity:1; order:2; }
  .do-ev-hero-text { padding:48px 24px 32px; max-width:none; order:1; gap:16px; }
  .do-ev-hero-title { font-size:30px; }
  .do-ev-hero-sublead { font-size:16px; }
  .do-ev-hero-body { font-size:14px; max-width:none; }
  .do-ev-hero--split { flex-direction:column; }
  .do-ev-hero-panel { width:auto; padding:48px 24px 32px; order:1; }
  .do-ev-hero-title--onDark { font-size:30px; }
  .do-ev-hero-photo--light { order:2; height:320px; }
  .do-ev-features, .do-ev-gallery, .do-ev-manufacturer { padding:40px 0; }
  .do-ev-features > .do-product__container, .do-ev-gallery > .do-product__container, .do-ev-manufacturer > .do-product__container { width:calc(100% - 48px); }
  .do-ev-heading { font-size:26px; }
  .do-ev-feature-grid { gap:20px; }
  .do-ev-feature { display:grid; grid-template-columns:64px minmax(0,1fr); gap:16px; align-items:start; }
  .do-ev-feature-photo { width:64px; height:64px; aspect-ratio:1; border-radius:50%; background:var(--do-surface,#fff); outline:1px solid #e5e4e2; }
  .do-ev-feature > :last-child { min-width:0; }
  .do-ev-gallery-row { flex-direction:column; align-items:stretch; gap:16px; }
  .do-ev-bento { flex-direction:column; }
  .do-ev-bento-big, .do-ev-bento-side img { height:260px; }
  .do-ev-gallery-stack { flex-direction:row; overflow-x:auto; }
  .do-ev-gallery-stack img { width:80vw; max-width:310px; height:260px; flex-shrink:0; }
  .do-ev-video-poster { height:200px; }
  .do-ev-manufacturer-photos { flex-direction:column; }
  .do-ev-manufacturer-photos img { height:200px; }
  .do-ev-manufacturer-row { flex-direction:column; gap:20px; }
  .do-ev-brand-o { display:none; }
}

/* ==========================================================================
   Волна T-018 — Xenosys / ILLUCO / Dentsply Sirona (20.09.2026).
   Все правила ниже ограничены классами `.do-wv-*` и не могут повлиять на
   `.do-story__*` (CJ-Optik) и `.do-ev-*` (ExamVision). Главы «Характеристики»
   и «Отзывы» намеренно переиспользуют `.do-story__*` — это тот же компонент
   Figma, дублировать его стили не нужно.
   Опорные фреймы: Looks 2500 desktop 5851:5216 / mobile 5851:5217,
   IHL-2000 5842:471, Primescan AC 5865:197, Galilean 3.0 5811:1168.
   ========================================================================== */
.do-wv-hero { position:relative; isolation:isolate; overflow:hidden; background:var(--do-story-surface); color:var(--do-story-text); }
/* Фирменная O в hero этих макетов — тот же вектор, что в Figma (Vector 852×848,
   #BA0F26, сплошной), а не бледный watermark CJ-Optik: см. IHL-2000 5845:479,
   Looks 2500 5861:5665, Galilean 3.0 5812:6289. Обрезается границей секции. */
.do-wv-hero__o { position:absolute; left:-435px; top:625px; width:853px; height:848px; pointer-events:none; z-index:-1; }
/* Колонки повторяют макет 1440: текст от 80px, фото — правые 720px до края фрейма.
   Последняя строка «. photo» пустая и тянется (1fr), чтобы фото занимало всю высоту
   секции (740px), а текст оставался прижат к верху. */
.do-wv-hero__inner { position:relative; width:min(1440px,100%); margin-inline:auto; min-height:740px; display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,720px); column-gap:0; row-gap:28px;
  grid-template-areas:"eyebrow photo" "title photo" "desc photo" "fact photo" "cond photo" ". photo";
  grid-template-rows:auto auto auto auto auto 1fr;
  padding:92px 0 72px 80px; }
.do-wv-hero__eyebrow { grid-area:eyebrow; margin:0; font-size:14px; color:var(--do-story-accent); }
.do-wv-hero__title { grid-area:title; margin:0; max-width:600px; font-size:68px; line-height:76px; font-weight:800; letter-spacing:-1.5px; color:var(--do-story-text); overflow-wrap:break-word; }
.do-wv-hero__desc { grid-area:desc; margin:0; max-width:510px; font-size:16px; line-height:1.6; color:var(--do-story-muted); }
.do-wv-hero__fact { grid-area:fact; margin:0; max-width:560px; font-size:20px; font-weight:700; color:var(--do-story-text); }
.do-wv-hero__condition { grid-area:cond; margin:0; max-width:540px; font-size:14px; color:var(--do-story-muted); }
/* Строки, которые есть только в мобильном фрейме Figma (например «Прямые бинокулярные
   лупы» у Looks 2500, узел 5853:5220): в desktop-hero их нет, поэтому показываем их
   только на мобильной ширине, а не выбрасываем и не добавляем на десктоп. */
.do-wv-hero__line--mobile { display:none; }
/* Фото hero занимает правую половину секции во всю её высоту (в макетах — 720–800×740,
   прижато к правому краю фрейма), поэтому оно выведено из потока сетки: иначе колонка
   равнялась бы высоте текста (653px вместо 740px). */
.do-wv-hero__photo { grid-area:photo; align-self:stretch; margin:-92px 0 -72px; min-width:0; }
.do-wv-hero__photo { position:relative; }
/* R01 (проверка Rini T-028): картинка с HTML-атрибутами height и height:100% раздувала строку
   сетки до собственной высоты (hero 960px у 15 Rini и до 1174px у Xenosys при макете 740px).
   В потоке изображение не участвует: контейнер занимает высоту секции, а фото вписывается в него
   целиком (contain) — без подрезки и без overflow:hidden на секции. */
.do-wv-hero__photo img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; }
.do-wv-hero__photo-caption { position:absolute; left:90px; right:80px; bottom:44px; margin:0; font-size:14px; color:var(--do-story-muted); }
.do-wv-hero__photo[data-fit="cover"] img, .do-wv-story__photo[data-fit="cover"] img { object-fit:cover; }
.do-wv-story__photo[data-fit="contain"] img { object-fit:contain; background:var(--do-story-surface); }

.do-wv-story { background:var(--do-story-surface); color:var(--do-story-text); }
.do-wv-story__inner { width:min(1440px,100%); margin-inline:auto; }
/* Половина ширины, а не фиксированные 720px: в макете 1440 это те же 720, но на планшете
   фиксированная колонка выталкивала текст за экран (768/1024 — горизонтальный скролл). */
/* Порядок в разметке — мобильный (заголовок, фото, метрика, текст, подпись — фрейм
   5822:6435); на десктопе grid-области возвращают композицию макета 1440: фото слева
   во всю высоту, справа кикер, заголовок, текст, метрика, подпись. */
.do-wv-story[data-variant="photo"] .do-wv-story__inner { display:grid; grid-template-columns:minmax(0,50%) minmax(0,1fr); align-items:stretch; min-height:650px;
  grid-template-areas:"photo kicker" "photo title" "photo desc" "photo metric" "photo fact" "photo caption"; align-content:center; }
.do-wv-story[data-variant="photo"] .do-wv-story__photo { align-self:stretch; }
.do-wv-story[data-variant="photo"] .do-wv-story__kicker { grid-area:kicker; padding:80px 80px 0; }
.do-wv-story[data-variant="photo"] .do-wv-story__title { grid-area:title; padding:24px 80px 0; }
.do-wv-story[data-variant="photo"] .do-wv-story__desc { grid-area:desc; padding:24px 80px 0; }
.do-wv-story[data-variant="photo"] .do-wv-story__metric { grid-area:metric; padding:24px 80px 0; }
.do-wv-story[data-variant="photo"] .do-wv-story__fact { grid-area:fact; padding:24px 80px 0; }
.do-wv-story[data-variant="photo"] .do-wv-story__captions { grid-area:caption; padding:24px 80px 80px; display:flex; flex-direction:column; gap:8px; }
.do-wv-story[data-variant="photo"] .do-wv-story__photo { grid-area:photo; min-width:0; }
/* Зеркальная композиция: фото справа (например Looks A 5813:200). */
.do-wv-story[data-variant="photo"][data-photo="right"] .do-wv-story__inner { grid-template-columns:minmax(0,1fr) minmax(0,50%);
  grid-template-areas:"kicker photo" "title photo" "desc photo" "metric photo" "fact photo" "caption photo"; }
/* Врезка: вырезанный товар на белом показывается целиком и с полями, а не во всю высоту. */
.do-wv-story[data-variant="photo"][data-photo-style="inset"] .do-wv-story__photo { display:flex; align-items:center; padding:80px; }
.do-wv-story[data-variant="photo"][data-photo-style="inset"] .do-wv-story__photo img { min-height:0; max-height:440px; object-fit:contain; }
.do-wv-story[data-variant="photo"] .do-wv-story__photo img { display:block; width:100%; height:100%; min-height:650px; object-fit:cover; }

.do-wv-story[data-variant="metric"] .do-wv-story__inner { display:grid; grid-template-columns:minmax(0,640px) minmax(0,1fr); column-gap:80px; row-gap:24px; align-content:center; min-height:610px; padding:80px;
  grid-template-areas:"kicker metric" "title metric" "desc metric" "fact metric" "caption metric"; }
.do-wv-story[data-variant="metric"] .do-wv-story__kicker { grid-area:kicker; }
.do-wv-story[data-variant="metric"] .do-wv-story__title { grid-area:title; }
.do-wv-story[data-variant="metric"] .do-wv-story__desc { grid-area:desc; }
.do-wv-story[data-variant="metric"] .do-wv-story__fact { grid-area:fact; }
.do-wv-story[data-variant="metric"] .do-wv-story__captions { grid-area:caption; display:flex; flex-direction:column; gap:8px; }
.do-wv-story[data-variant="metric"] .do-wv-story__metric--lg { grid-area:metric; align-self:center; }
.do-wv-story__copy { display:flex; flex-direction:column; gap:24px; max-width:640px; min-width:0; }
/* Зеркала HAHNENKRATT (T-027) и кресла Rini (T-027/T-028): в их макетах заголовок hero
   набран 60/68 в колонке 570px (5997:17589, 6025:3103, 6048:921), а не 68/76 как в волне
   T-018 (5845:482) — иначе трёхстрочный заголовок Carl Spring R7 ломается на четыре. */
@media (min-width:1051px) {
  .do-wv-hero[data-batch="mirrors"] .do-wv-hero__title,
  .do-wv-hero[data-batch="rini"] .do-wv-hero__title { font-size:60px; line-height:68px; max-width:570px; }
}
.do-wv-story__kicker { margin:0; font-size:14px; text-transform:uppercase; color:var(--do-story-accent); }
.do-wv-story__title { margin:0; font-size:42px; line-height:1.2; font-weight:800; color:var(--do-story-text); overflow-wrap:break-word; }
.do-wv-story__desc { margin:0; max-width:560px; font-size:16px; line-height:1.6; color:var(--do-story-muted); }
.do-wv-story__metric { margin:0; font-size:68px; line-height:76px; font-weight:800; letter-spacing:-1.5px; color:var(--do-story-text); }
.do-wv-story__metric--lg { font-size:110px; line-height:1.1; overflow-wrap:break-word; }
/* Кресла Rini (T-028): ударная строка длиннее, в макете стоит одной строкой — кегль
   уменьшается ровно настолько, чтобы она помещалась в колонку. */
.do-wv-story[data-batch="rini"] .do-wv-story__metric { font-size:clamp(34px,4.1vw,68px); line-height:1.15; }
/* Метрика из длинного слова («4 индикатора», «2 регулятора») в 110px не помещается
   в свою колонку и выталкивает страницу — в макете такие подписи тоже набраны мельче. */
.do-wv-story__metric--long { font-size:68px; line-height:1.15; }
.do-wv-story__caption { margin:0; font-size:14px; line-height:1.4; color:var(--do-story-muted); }
/* Строка-перечисление в презентационном блоке (Card title 20px, как в макете). */
.do-wv-story__fact { margin:0; font-size:20px; line-height:1.4; font-weight:700; color:var(--do-story-text); white-space:pre-line; }

/* Строка документа, ведущая на официальную веб-страницу, а не на PDF (FACTORY.md). */
.do-story__doc-icon--web { background:#2c2b2a; }
/* В компоненте Story/Specifications тёмного варианта заголовки групп и eyebrow белые,
   а не акцентные (Figma 5591:146 против светлого 5591:145); в главе «Документы» обеих
   волн eyebrow приглушённый. У страниц CJ-Optik и ExamVision правила не меняются —
   они действуют только при модификаторе --wave. */
.do-story__specs--wave[data-theme="dark"] .do-story__kicker,
.do-story__specs--wave[data-theme="dark"] .do-story__specs-group-title { color:var(--do-story-text); }
.do-story__docs--wave .do-story__kicker { color:var(--do-story-muted); }
/* Карусель отзывов: без min-width:0 флекс-дорожка не сжимается и на 768px даёт
   горизонтальный скролл всей страницы. Правило ограничено модификатором --wave,
   чтобы не менять уже сданные страницы CJ-Optik (там этот же дефект зафиксирован
   в отчёте отдельно). */
.do-story__reviews--wave .do-story__reviews-row { min-width:0; }
.do-story__reviews--wave .do-story__reviews-gallery { flex:0 1 560px; width:min(100%,560px); }
.do-story__reviews-nav { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; gap:16px; padding-top:20px; }
.do-story__reviews-nav[hidden] { display:none!important; }
.do-story__reviews-nav .do-story__dots { display:flex; align-items:center; padding-top:0; }
.do-product .do-story__reviews-btn { position:relative; width:44px; height:44px; padding:0; border:1px solid #c9c7c4; border-radius:50%; background:var(--do-story-surface); color:var(--do-story-text); font-size:0; cursor:pointer; }
.do-story__reviews-btn::after { content:""; position:absolute; top:50%; left:50%; width:10px; height:10px; border-right:2.5px solid currentColor; border-bottom:2.5px solid currentColor; }
.do-story__reviews-btn[data-do-reviews-prev]::after { transform:translate(-35%,-50%) rotate(135deg); }
.do-story__reviews-btn[data-do-reviews-next]::after { transform:translate(-65%,-50%) rotate(-45deg); }
.do-story__reviews-btn:hover:not(:disabled) { border-color:var(--do-story-accent); color:var(--do-story-accent); }
.do-story__reviews-btn:focus-visible { outline:3px solid var(--do-story-accent); outline-offset:3px; }
.do-story__reviews-btn:disabled { opacity:.55; cursor:default; }
@media (max-width:760px) {
  .do-story__reviews--wave .do-story__reviews-gallery { flex:1 1 auto; width:100%; }
  .do-story__reviews--wave .do-story__reviews-row { width:calc(100% + 48px); margin-inline:-24px; }
}
@media (max-width:1100px) {
  .do-story__reviews--wave > .do-product__container:first-child { flex-direction:column; align-items:stretch; gap:24px; }
  .do-story__reviews--wave .do-story__reviews-head { width:auto; }
}

/* Блок производителя в макетах волны всегда светлый (проверено на Looks 2500 5861:678,
   IHL-2000 5848:673, Primescan AC 5869:1012), поэтому токены заданы локально. */
.do-wv-maker { --do-story-surface:#ffffff; --do-story-text:#2c2b2a; --do-story-muted:#686765; --do-story-accent:#ba0f26;
  background:var(--do-story-surface); color:var(--do-story-text); display:grid; grid-template-columns:minmax(0,1fr); width:100%; }
.do-wv-maker__photo { min-width:0; }
.do-wv-maker__photo img { display:block; width:100%; height:100%; max-height:410px; object-fit:cover; border-radius:12px; }
.do-wv-maker__copy { display:flex; flex-direction:column; gap:24px; min-width:0; }
/* T-027: официальный знак Xenosys — 220×61, пропорции исходника, отступ 24px задаёт
   колонка .do-wv-maker__copy. */
.do-wv-maker__logo { display:block; width:auto; max-width:min(100%,220px); height:61px; object-fit:contain; }
.do-wv-maker__eyebrow { margin:0; font-size:14px; color:var(--do-story-accent); }
.do-wv-maker__title { margin:0; font-size:42px; line-height:1.2; font-weight:800; overflow-wrap:break-word; }
.do-wv-maker__body { display:flex; flex-direction:column; gap:16px; }
.do-wv-maker__body p { margin:0; font-size:16px; line-height:1.6; color:var(--do-story-muted); }
/* Подпись кнопки белая: правило .do-product a { color:inherit } перебивало цвет и текст
   выводился тёмным на красном (замечено при сверке логотипов T-027). */
.do-product .do-wv-maker__cta { align-self:flex-start; display:inline-flex; align-items:center; min-height:56px; padding:16px 24px; border-radius:12px; background:var(--do-story-accent); color:#fff; font-size:16px; line-height:1.6; text-decoration:none; }
.do-wv-maker__cta:focus-visible { outline:3px solid #2c2b2a; outline-offset:2px; }

@media (min-width:761px) {
  .do-wv-maker { width:min(1440px,100%); margin-inline:auto; grid-template-columns:minmax(0,600px) minmax(0,1fr); column-gap:80px; align-items:start; padding:90px 80px; min-height:590px; }
  /* У ILLUCO блок производителя выше и с более крупным фото (640×480, секция 650):
     Figma 5848:673 / 5817:262 против 600×410 и 590 у Xenosys и Dentsply Sirona. */
  .do-wv-maker[data-brand="illuco"] { grid-template-columns:minmax(0,640px) minmax(0,1fr); padding:80px; min-height:650px; }
  .do-wv-maker[data-brand="illuco"] .do-wv-maker__photo img { max-height:480px; }
}

/* Типографика глав задаётся в макетах (42px заголовки, 68px hero и метрика). На странице
   товара действует более «сильное» правило .do-product h2 { font-size:32px }, поэтому
   правила волны подняты по специфичности. Страницы CJ-Optik и ExamVision не затрагиваются:
   селекторы включают только .do-wv-* и модификаторы --wave. */
.do-product .do-wv-hero__title { font-size:68px; line-height:76px; letter-spacing:-1.5px; margin-bottom:0; }
.do-product .do-wv-story__title,
.do-product .do-wv-maker__title,
.do-product .do-story__specs--wave .do-story__heading,
.do-product .do-story__docs--wave .do-story__heading,
.do-product .do-story__reviews--wave .do-story__reviews-title { font-size:42px; line-height:1.2; letter-spacing:0; margin-bottom:0; }
@media (max-width:1050px) {
  .do-product .do-wv-hero__title { font-size:52px; line-height:60px; }
}
@media (max-width:760px) {
  .do-product .do-wv-hero__title { font-size:36px; line-height:42px; letter-spacing:-.5px; }
  .do-product .do-wv-story__title,
  .do-product .do-wv-maker__title { font-size:28px; }
  .do-product .do-story__specs--wave .do-story__heading,
  .do-product .do-story__docs--wave .do-story__heading { font-size:26px; }
  .do-product .do-story__reviews--wave .do-story__reviews-title { font-size:24px; }
}
/* R02 (проверка Rini T-028): размеры заголовков планшета вынесены в собственный диапазон.
   Раньше они лежали в блоке max-width:1100px, который стоит после max-width:760px при той же
   специфичности, и на телефоне давали 44px у hero (макет и правило ≤760 — 36px/42px) и 32px у
   заголовков «Характеристики»/«Документы» (правило ≤760 — 26px). Планшетные значения прежние. */
@media (min-width:761px) and (max-width:1100px) {
  .do-product .do-wv-hero__title { font-size:44px; line-height:52px; }
  /* Планшет: заголовки глав уменьшены — при 42px длинные слова («дистанцию») не
     помещались в колонку 377px и давали горизонтальный скролл на 768px. */
  .do-product .do-wv-story__title, .do-product .do-wv-maker__title,
  .do-product .do-story__specs--wave .do-story__heading,
  .do-product .do-story__docs--wave .do-story__heading,
  .do-product .do-story__reviews--wave .do-story__reviews-title { font-size:32px; }
}
@media (max-width:1100px) {
  /* На планшете блок производителя складывается в одну колонку: при двух колонках
     кнопка бренда не помещалась и появлялся горизонтальный скролл (768px). */
  /* Фотография hero занимает 45% ширины, а не фиксированные 720px: иначе текстовая
     колонка сжимается почти до нуля и заголовок печатается по букве в строку (768px). */
  .do-wv-hero__inner { grid-template-columns:minmax(0,1fr) minmax(0,45%); }
  .do-wv-maker, .do-wv-maker[data-brand="illuco"] { grid-template-columns:minmax(0,1fr); gap:32px; padding:56px 40px; min-height:0; }
  .do-wv-maker__photo img { max-height:360px; }
  .do-wv-story[data-variant="photo"] .do-wv-story__photo img { min-height:0; }
  .do-wv-story[data-variant="photo"] .do-wv-story__inner { min-height:0; }
  /* Крупная метрика в одну колонку с текстом: на планшете вторая колонка сжималась
     до нуля и число выходило за экран (768px). */
  .do-wv-story[data-variant="metric"] .do-wv-story__inner { grid-template-columns:minmax(0,1fr); grid-template-areas:none; gap:24px; min-height:0; padding:56px 40px; }
  .do-wv-story[data-variant="metric"] .do-wv-story__kicker,
  .do-wv-story[data-variant="metric"] .do-wv-story__title,
  .do-wv-story[data-variant="metric"] .do-wv-story__desc,
  .do-wv-story[data-variant="metric"] .do-wv-story__captions,
  .do-wv-story[data-variant="metric"] .do-wv-story__metric--lg { grid-area:auto; align-self:stretch; }
  .do-wv-story__metric--lg { font-size:64px; }
  .do-wv-story__metric--long { font-size:44px; }
}
@media (max-width:1050px) {
  .do-wv-hero__title { font-size:52px; line-height:60px; }
  /* Зеркала (T-027): ударная строка бывает одним длинным словом («BLACKline») и в 68px
     не помещается в половину планшетной колонки — на 768 она выталкивала страницу.
     Кегль масштабируется по ширине только у этой партии. */
  @media (min-width:761px) {
    .do-wv-story[data-batch="mirrors"] .do-wv-story__metric { font-size:clamp(40px,8.4vw,68px); line-height:1.15; }
  }
  .do-wv-story__metric--lg { font-size:80px; }
  .do-wv-story[data-variant="photo"] .do-wv-story__kicker { padding:56px 40px 0; }
  .do-wv-story[data-variant="photo"] .do-wv-story__title,
  .do-wv-story[data-variant="photo"] .do-wv-story__desc,
  .do-wv-story[data-variant="photo"] .do-wv-story__metric,
  .do-wv-story[data-variant="photo"] .do-wv-story__fact { padding:20px 40px 0; }
  .do-wv-story[data-variant="photo"] .do-wv-story__captions { padding:20px 40px 56px; }
  .do-wv-story[data-variant="metric"] .do-wv-story__inner { padding:56px 40px; gap:40px; }
  .do-wv-hero__inner { padding-left:40px; }
}
@media (max-width:760px) {
  .do-wv-hero__o { display:none; }
  .do-wv-hero__inner { grid-template-columns:minmax(0,1fr); grid-template-areas:none; row-gap:20px; min-height:0; padding:40px 24px 32px; }
  .do-wv-hero__eyebrow, .do-wv-hero__title, .do-wv-hero__desc, .do-wv-hero__fact, .do-wv-hero__condition, .do-wv-hero__photo { grid-area:auto; max-width:none; }
  .do-wv-hero__title { font-size:36px; line-height:42px; letter-spacing:-.5px; overflow-wrap:break-word; }
  .do-wv-hero__line--mobile { display:block; }
  .do-wv-hero__photo { position:static; margin:0; width:100%; }
  .do-wv-hero__photo-caption { position:static; margin-top:12px; }
  .do-wv-hero__photo img { position:static; height:auto; aspect-ratio:342/290; object-fit:cover; }
  /* Вырезанный товар на белом и на мобильной ширине показывается целиком: кадрирование
     «как в макете» срезало бы, например, широкий чертёж зарядной станции (1185×472). */
  .do-wv-hero__photo[data-fit="contain"] img { object-fit:contain; }
  .do-wv-story[data-variant="photo"] .do-wv-story__inner,
  .do-wv-story[data-variant="metric"] .do-wv-story__inner { display:flex; flex-direction:column; gap:24px; min-height:0; padding:40px 24px; grid-template-areas:none; }
  .do-wv-story[data-variant="photo"] .do-wv-story__photo img { min-height:0; height:auto; aspect-ratio:342/250; border-radius:12px; }
  .do-wv-story[data-variant="photo"][data-photo-style="inset"] .do-wv-story__photo { padding:0; }
  .do-wv-story[data-variant="photo"][data-photo="right"] .do-wv-story__inner { grid-template-areas:none; }
  .do-wv-story[data-variant="photo"] .do-wv-story__kicker,
  .do-wv-story[data-variant="photo"] .do-wv-story__title,
  .do-wv-story[data-variant="photo"] .do-wv-story__desc,
  .do-wv-story[data-variant="photo"] .do-wv-story__metric,
  .do-wv-story[data-variant="photo"] .do-wv-story__fact,
  .do-wv-story[data-variant="photo"] .do-wv-story__captions { grid-area:auto; padding:0; }
  .do-wv-story__copy { gap:24px; max-width:none; }
  /* Строка документа на узком экране: кнопка переносится под текст, иначе колонке с
     названием остаётся 52px и подпись печатается по букве в строку (360px). */
  .do-story__docs--wave .do-story__doc-row { flex-wrap:wrap; }
  .do-story__docs--wave .do-story__doc-text { flex:1 1 calc(100% - 60px); }
  .do-story__docs--wave .do-story__doc-btn { flex:1 0 100%; justify-content:center; margin-top:12px; }
  .do-wv-story__kicker { display:none; }
  /* Тема секции в мобильном макете может отличаться от десктопной. */
  .do-story .do-wv-story[data-theme-mobile="light"] { --do-story-surface:#ffffff; --do-story-text:#2c2b2a; --do-story-muted:#686765; --do-story-border:#e5e4e2; }
  .do-story .do-wv-story[data-theme-mobile="dark"] { --do-story-surface:#171615; --do-story-text:#ffffff; --do-story-muted:#c2c1bf; --do-story-border:#504e4b; }
  .do-wv-story__title { font-size:28px; }
  .do-wv-story__metric, .do-wv-story__metric--lg { font-size:20px; line-height:1.2; letter-spacing:0; font-weight:700; align-self:stretch; }
  .do-wv-maker { padding:40px 24px; gap:24px; grid-template-columns:minmax(0,1fr); }
  .do-wv-maker__photo img { height:220px; }
  .do-wv-maker__title { font-size:28px; }
  .do-wv-maker__cta { align-self:stretch; justify-content:center; }
}

/* T-029B — выбранные 18 товаров (Support Design, BRUMABA, Rini RiEye, Planmeca, Asiga).
   Размеры сняты с макетов (SUPPORT 6102:349 / 6102:357): заголовок hero 60/66 в колонке 570px,
   цифра «Особенностей» 42/76. Правила стоят в media, чтобы не перебить мобильные (20px). */
@media (min-width:1051px) {
  .do-wv-hero[data-batch="selected"] .do-wv-hero__title { font-size:60px; line-height:1.1; max-width:570px; }
}
@media (min-width:761px) {
  .do-wv-story[data-batch="selected"] .do-wv-story__metric { font-size:42px; line-height:76px; overflow-wrap:break-word; }
}
/* Asiga: вместо второго фото — тёмная карточка с двумя крупными параметрами
   (620px, отступ 40, радиус 16; значение 64/1.15 ExtraBold, подпись 18/1.15). Между парами —
   пустая строка, как в макете (6105:20044), поэтому зазор 20 + 73,6px. */
.do-wv-story[data-variant="facts"] .do-wv-story__inner { display:grid; grid-template-columns:620px minmax(0,560px); grid-template-areas:"facts title" "facts desc" "facts ."; grid-template-rows:auto auto 1fr; column-gap:100px; row-gap:24px; align-items:start; justify-content:start; min-height:650px; padding:80px; box-sizing:border-box; }
.do-wv-story[data-variant="facts"] .do-wv-story__title { grid-area:title; }
.do-wv-story[data-variant="facts"] .do-wv-story__desc { grid-area:desc; }
.do-wv-facts { grid-area:facts; margin-top:10px; display:flex; flex-direction:column; gap:93.6px; padding:40px; border-radius:16px; background:#171615; color:#ffffff; box-sizing:border-box; min-width:0; }
.do-wv-facts__item { display:flex; flex-direction:column; gap:20px; min-width:0; }
.do-wv-facts__value { margin:0; font-size:64px; line-height:1.15; font-weight:800; color:#ffffff; overflow-wrap:break-word; }
.do-wv-facts__label { margin:0; font-size:18px; line-height:1.15; color:#c2c1bf; }
@media (max-width:1050px) {
  .do-wv-story[data-variant="facts"] .do-wv-story__inner { grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:40px; padding:56px 40px; min-height:0; }
  .do-wv-facts { padding:32px; gap:56px; }
  .do-wv-facts__value { font-size:clamp(36px,5.6vw,64px); }
}
@media (max-width:760px) {
  .do-wv-story[data-variant="facts"] .do-wv-story__inner { display:flex; flex-direction:column; gap:24px; padding:40px 24px; grid-template-areas:none; }
  .do-wv-story[data-variant="facts"] .do-wv-story__title, .do-wv-story[data-variant="facts"] .do-wv-story__desc { grid-area:auto; }
  .do-wv-facts { grid-area:auto; margin-top:0; padding:24px; gap:32px; }
  .do-wv-facts__value { font-size:40px; }
  .do-wv-facts__label { font-size:16px; }
}
/* В макетах T-029B значок WEB красный, как и PDF (6102:364, 6102:4914); у волны T-018 — тёмный. */
.do-story__docs[data-batch="selected"] .do-story__doc-icon--web { background:#ba0f26; }

/* T-029B — геометрия рамок фото по макетам (десктоп ≥1051px).
   Hero: фото — рамка 680×640 (или 680×560) со смещением от верха секции, правое поле 40px
   (rounded-rectangle «… — hero», 6102:347). Внутри фото вписано целиком (contain).
   «Особенности»: фото 700×540 со смещением (40, 55), текст начинается с x=800
   (6102:356 / 6102:357); кикера и подписи в макете нет — заголовок сдвинут на 41px, как
   пустая строка кикера. Ниже 1051px действует общая адаптивная раскладка. */
@media (min-width:1051px) {
  /* Та же рамка hero-фото 680×640 у Rini (6048:917, 6025:2517): R01 проверки T-028 — кресло было
     ~16% крупнее макета, потому что фото вписывалось в весь контейнер 720×740. */
  .do-wv-hero:is([data-batch="selected"],[data-batch="rini"]) .do-wv-hero__photo { align-self:start; height:var(--do-hero-photo-h,640px); width:var(--do-hero-photo-w,auto); margin:calc(var(--do-hero-photo-top,40px) - 92px) 40px calc(740px - var(--do-hero-photo-top,40px) - var(--do-hero-photo-h,640px) - 72px) var(--do-hero-photo-left,0px); }
  .do-wv-story[data-batch="selected"][data-variant="photo"] .do-wv-story__inner { grid-template-columns:minmax(0,51.39%) minmax(0,1fr); grid-template-rows:auto auto auto auto auto 1fr; align-content:start; }
  .do-wv-story[data-batch="selected"][data-variant="photo"] .do-wv-story__photo { padding:55px 0 55px 40px; align-items:flex-start; box-sizing:border-box; }
  .do-wv-story[data-batch="selected"][data-variant="photo"] .do-wv-story__photo img { width:100%; height:540px; min-height:0; max-height:none; object-fit:contain; }
  .do-wv-story[data-batch="selected"][data-variant="photo"] .do-wv-story__title { padding:121px 80px 0 60px; }
  .do-wv-story[data-batch="selected"][data-variant="photo"] .do-wv-story__desc,
  .do-wv-story[data-batch="selected"][data-variant="photo"] .do-wv-story__metric { padding-left:60px; padding-right:80px; }
}
/* MAX UV: фото 195×146 не увеличивается больше чем вдвое — врезка 390×292 (6102:5894). */
.do-wv-hero__photo[data-small] img { width:390px; height:292px; max-width:100%; margin:auto; object-fit:contain; }
@media (min-width:1051px) {
  .do-wv-hero__photo[data-small] img { margin:0; }
}
@media (max-width:760px) {
  /* Мобильный макет 6102:6022 показывает фото в натуральном размере. */
  .do-wv-hero__photo[data-small] img { width:195px; height:146px; }
}
/* То же в галерее карточки: не растягивать 195×146 на всё окно просмотра. */
.do-product__main-image[data-small] { width:390px; max-width:100%; height:292px; object-fit:contain; margin-inline:auto; }

/* T-029, этап A, п.3 — Flexion Advanced на 390: фото hero выступало на 50px за правый край
   (обрезались балка и подпись «Awarded for Design»), а горизонтальный градиент-подложка закрывал
   окуляры слева. Только для страницы с data-mobile-fit="contain": фото по ширине экрана целиком,
   подложка — вертикальная, гасит только нижнюю часть под текстом. Hero других товаров не менялись. */
@media (max-width:760px) {
  .do-story__hero-photo[data-mobile-fit="contain"] img { top:0; right:0; width:100%; max-width:none; opacity:.55; }
  .do-story__hero[data-theme="dark"] .do-story__hero-photo[data-mobile-fit="contain"]::after { background:linear-gradient(180deg,transparent 0%,transparent 55%,var(--do-story-surface) 100%); }
  /* Текст начинается под фото (высота кадра 390×293), а не поверх корпуса микроскопа. */
  .do-story__hero[data-mobile-fit="contain"] { min-height:0; padding-top:284px; }
}

/* T-029, этап A — блок производителя CJ-Optik на планшете (761–1100px): два фото 360+280px и
   колонка текста лежали в одной строке flex, текст уходил за правый край (страница шире экрана
   на 768 у всех пяти Flexion). Колонка текста уходит под фото; ≤760 и десктоп не менялись. */
@media (min-width:761px) and (max-width:1100px) {
  .do-story__manufacturer-row { flex-direction:column; gap:32px; padding-inline:24px; box-sizing:border-box; }
  .do-story__manufacturer-photos { flex-wrap:wrap; max-width:100%; }
  .do-story__manufacturer-copy { width:100%; min-width:0; }
}
/* Кнопка «Все товары CJ-Optik»: общее правило .do-product a { color:inherit } делало подпись тёмной
   (rgb 44,43,42) на красном (186,15,38) — контраст около 2,6:1. Белый, как в макетах и у других брендов. */
.do-product .do-story__manufacturer-btn { color:#ffffff; }

/* ============================================================================
   Проверка Rini T-028 (29.09.2026): R03, R04.
   ========================================================================== */
/* R03 — строка документа теперь целиком ссылка (<a class="do-story__doc-row">), «кнопка» — span внутри. */
.do-story__doc-row { color:inherit; text-decoration:none; }
.do-story__doc-row:hover .do-story__doc-btn { background:var(--do-story-text); color:var(--do-story-surface); }
/* R04 — ярлык «Параметры» над «Характеристиками» в макетах Rini: цвет текста секции (Figma 6025:2533:
   свойство text-[color:var(--do-story-text)]), а не акцент; в тёмной теме правило уже действовало. */
.do-story__specs--wave .do-story__kicker { color:var(--do-story-text); }

@media (max-width:760px) {
  /* R03 — мобильные документы Rini: белый блок при любой теме desktop (README пакета T-028; Figma 6048:1044)
     и компактные строки «иконка + название + подпись» без отдельной кнопки: ссылка — вся строка.
     Партия T-029B (data-batch="selected") получает те же компактные строки: в её мобильных макетах
     (6102:481, 6102:5025, 6102:5275) кнопок нет, а тема мобильного блока совпадает с desktop. */
  /* Таблица характеристик: на мобильном белая при любой теме desktop (Rini). Заголовки групп в светлой
     теме — акцентные (красные), как в мобильных кадрах; правило тёмной темы, делающее их белыми, здесь
     не действует. */
  .do-story .do-story__specs[data-theme-mobile="light"] { --do-story-surface:#ffffff; --do-story-text:#2c2b2a; --do-story-muted:#686765; --do-story-border:#e5e4e2; }
  .do-story__specs--wave[data-theme="dark"][data-theme-mobile="light"] .do-story__specs-group-title { color:var(--do-story-accent); }
  .do-story__specs--wave[data-theme="dark"][data-theme-mobile="light"] .do-story__kicker { color:var(--do-story-text); }
  .do-story .do-story__docs[data-theme-mobile="light"] { --do-story-surface:#ffffff; --do-story-text:#2c2b2a; --do-story-muted:#686765; --do-story-border:#e5e4e2; }
  .do-story .do-story__docs[data-theme-mobile="dark"] { --do-story-surface:#171615; --do-story-text:#ffffff; --do-story-muted:#c2c1bf; --do-story-border:#504e4b; }
  .do-story__docs--wave[data-mobile-rows="compact"] .do-story__doc-row { flex-wrap:nowrap; min-height:52px; border-bottom:0; }
  .do-story__docs--wave[data-mobile-rows="compact"] .do-story__doc-text { flex:1 1 auto; }
  .do-story__docs--wave[data-mobile-rows="compact"] .do-story__doc-btn { display:none; }
  /* R04 — в мобильном фрейме Rini нет крупной фоновой O ни у характеристик, ни у документов. */
  .do-story__specs[data-batch="rini"] .do-story__specs-watermark,
  .do-story__docs[data-batch="rini"] .do-story__docs-o { display:none; }
}


/* ============================================================================
   Rini, проход 2 ночного пакета (30.09.2026): остатки расхождений FIX-REPORT (29.09.2026), п. 4–6, 8.
   Всё ограничено [data-batch="rini"]. Размеры сняты с макетов Rini (desktop 1440 / mobile 390):
   «Особенности» 6048:2160 (ComfortMove; тот же каркас у 15 моделей) и 6048:2288; «Документы» 6048:2169, 6048:687, 6048:2349.
   Размеры заголовков глав (32px), ярлыков (12px) и начертание метрики (600) — принятый стандарт
   product-type.css, здесь не меняются.
   ========================================================================== */
@media (min-width:1051px) {
  /* Фото — рамка 700×540 со смещением (40, 55), текст начинается с x=800: как у T-029B, но кикер в макете есть. */
  .do-wv-story[data-batch="rini"][data-variant="photo"] .do-wv-story__inner { grid-template-columns:minmax(0,51.39%) minmax(0,1fr); grid-template-rows:auto auto auto auto auto 1fr; align-content:start; }
  .do-wv-story[data-batch="rini"][data-variant="photo"] .do-wv-story__photo { padding:55px 0 55px 40px; align-items:flex-start; box-sizing:border-box; }
  .do-wv-story[data-batch="rini"][data-variant="photo"] .do-wv-story__photo img { width:100%; height:540px; min-height:0; max-height:none; object-fit:contain; }
  .do-wv-story[data-batch="rini"][data-variant="photo"] .do-wv-story__kicker { padding:80px 80px 0 60px; line-height:normal; }
  .do-wv-story[data-batch="rini"][data-variant="photo"] :is(.do-wv-story__title,.do-wv-story__desc,.do-wv-story__metric,.do-wv-story__fact) { padding-left:60px; padding-right:80px; }
  .do-wv-story[data-batch="rini"][data-variant="photo"] .do-wv-story__captions { padding:24px 80px 80px 60px; }
  /* Ударная строка: 42 или 36 px (по макету каждой модели, data-metric-size), межстрочный 76 px, на ширинах
     меньше 1440 пропорционально сжимается, чтобы «R7 · Электропривод» не переносилась. */
  .do-wv-story[data-batch="rini"][data-variant="photo"] .do-wv-story__metric {
    font-size:min(calc(var(--do-metric-size,42) * 1px), calc(var(--do-metric-size,42) / 14.4 * 1vw));
    line-height:min(76px, 5.2778vw); }
}
.do-wv-story[data-batch="rini"][data-metric-size="36"] { --do-metric-size:36; }
.do-wv-story[data-batch="rini"][data-metric-size="42"] { --do-metric-size:42; }
@media (max-width:760px) {
  /* Mobile 6048:2288: заголовок, фото, ударная строка 28 px в одну строку, текст; подписи под строкой в кадре нет. */
  .do-wv-story[data-batch="rini"][data-variant="photo"] .do-wv-story__metric { font-size:28px; line-height:normal; letter-spacing:0; }
  .do-wv-story[data-batch="rini"][data-variant="photo"] .do-wv-story__captions { display:none; }
}

/* Документы: разделитель 1px #e6e6e6 между строками (Separator 5655:624), кнопка с рамкой 1.5px цвета границы
   темы (а не цвета текста), между ярлыком и заголовком 16 px, контент шириной 1280 (x=80), фоновая O — 2100×2087
   со смещением от середины секции (Background O-Shape Large: left 50%+430−850−400, top 50%+83,5−843,5−400). */
@media (min-width:1051px) {
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) > .do-product__container { width:min(1280px,calc(100% - 160px)); }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__docs-o { right:auto; left:calc(50% - 820px); top:calc(50% - 1160px); width:2100px; height:2087px; opacity:1; }
}
.do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__docs-head { display:flex; flex-direction:column; gap:16px; }
.do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__docs-head .do-story__kicker { margin:0; }
.do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-row { border-bottom:0; }
.do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-row + .do-story__doc-row { border-top:1px solid #e6e6e6; }
.do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-btn { border:1.5px solid var(--do-story-border,#e5e4e2); }

/* Rini, проход 2 — mobile 390: характеристики (6048:2293) и документы (6048:2349).
   Характеристики: отступы секции 40/24, блок заголовка gap 8, группы через 24, строка 13px с промежутком 8 до
   разделителя и 8 после, столбцы 150 / 180. Документы: секция 305 px = 40 + 53 + 20 + 66 + 20 + 66 + 40,
   строка — значок 36×42 (радиус 4), название 14/600, подпись 11, gap 12, вертикальные поля 12. */
@media (max-width:760px) {
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) { padding-block:40px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-head { display:flex; flex-direction:column; gap:8px; margin-bottom:24px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-head .do-story__kicker { margin:0; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-group + .do-story__specs-group { margin-top:0; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-group-title { margin:0 0 8px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-row { gap:0; padding:0 0 14px; margin-bottom:8px; font-size:13px; line-height:normal; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-row dt { flex:0 0 150px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-row dd { flex:0 0 180px; }

  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) { padding-block:40px; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) > .do-product__container { display:flex; flex-direction:column; gap:20px; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__docs-head { gap:8px; margin-bottom:0; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__docs-head + div { display:flex; flex-direction:column; gap:20px; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-row { gap:12px; padding:12px 0; min-height:0; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-row + .do-story__doc-row { border-top:0; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-icon { width:36px; height:42px; border-radius:4px; font-size:10px; font-weight:700; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-text { gap:2px; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-title { font-size:14px; line-height:normal; }
  .do-story__docs:is([data-batch="rini"],[data-batch="eight"]) .do-story__doc-meta { font-size:11px; line-height:normal; }
}

/* Rini, проход 2 — характеристики, desktop (Figma «Specs Split Columns»: контент 1280 при полях 80, ярлык и заголовок
   через 16 px, строка 41 px = 12 + 17 + 12; колонки по 608 px). Заголовки групп остаются 18 px (принятый стандарт). */
@media (min-width:1051px) {
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) > .do-product__container { width:min(1280px,calc(100% - 160px)); }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-head { display:flex; flex-direction:column; gap:16px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-head .do-story__kicker { margin:0; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-row { padding:12px 0 11px; line-height:normal; }
  /* Расстояние от заголовка группы до первой строки: 12 px в макете (заголовок 20 px) минус разница с принятым заголовком 18/25,2 px. */
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-group-title { margin-bottom:7px; }
}

/* Проход 3 ночного пакета (30.09.2026): hero волны T-018 по матрице Figma (models/hero-geometry.json, qa/hero/HERO-GEOMETRY-MATRIX.md).
   data-title-size="60" — заголовок 60/68 в колонке 570 (у Xenosys Looks/L2S/XD/LooksCAM и всех Dentsply Sirona; у ILLUCO и Looks A
   остаётся 68/76); data-hero-h="660" — hero высотой 660 (шесть аксессуаров Xenosys), фото-рамка 640×520 со смещением (740, 70).
   Только ≥1051px: на планшете и телефоне действуют прежние адаптивные размеры. */
@media (min-width:1051px) {
  .do-wv-hero[data-title-size="60"] .do-wv-hero__title { font-size:60px; line-height:68px; max-width:570px; }
  .do-wv-hero[data-hero-h="660"] .do-wv-hero__inner { min-height:660px; }
  /* Xenosys Looks 2500/2800/5000/7500 и Looks A: текст hero начинается с y=96, а не 92 (Hero copy в 5852:293 и аналогах). */
  .do-wv-hero[data-copy-top="96"] .do-wv-hero__eyebrow { margin-top:4px; }
  /* Рамка 640×520 в макете; правый отступ 40 (1440 − 1400) и max-width вместо фиксированных 640, чтобы на 1051–1290 фото не выходило за колонку. */
  .do-wv-hero[data-hero-h="660"]:not([data-comp]) .do-wv-hero__photo { align-self:start; width:auto; max-width:640px; height:520px; margin:-22px 40px -2px 20px; }
}

/* Вариант A таблицы характеристик (30.09.2026): группа — <table> с <caption>, параметр — <th scope="row">. Геометрия строк прежняя
   (тот же отступ 12+12 и линия 1 px, что у <dl>); включено флагом specs.semantic, пока только у Rini. */
.do-story__specs-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.do-story__specs-table caption { caption-side:top; text-align:left; margin:0; padding:0 0 12px; }
.do-story__specs-table tr { border-bottom:1px solid var(--do-story-border); }
.do-story__specs-table th, .do-story__specs-table td { padding:12px 0; font-size:14px; vertical-align:top; }
.do-story__specs-table th { width:40%; padding-right:16px; color:var(--do-story-muted); font-weight:400; text-align:left; }
.do-story__specs-table td { font-weight:700; text-align:right; overflow-wrap:anywhere; }
.do-product .do-story__specs-table td { font-weight:var(--do-type-semibold); }
.do-story__specs-table caption.do-story__specs-group-title { font-size:16px; }
.do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table caption { padding-bottom:12px; }
@media (min-width:1051px) {
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table caption { padding-bottom:7px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table th, .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table td { padding:12px 0 11px; line-height:normal; }
}
@media (max-width:760px) {
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table { margin-bottom:8px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table caption { padding-bottom:8px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table th, .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table td { padding:0 0 14px; font-size:13px; line-height:normal; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table tr + tr th, .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table tr + tr td { padding-top:8px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table td { width:180px; }
  .do-story__specs:is([data-batch="rini"],[data-batch="eight"]) .do-story__specs-table th { width:auto; padding-right:12px; }
}
.do-story__specs .do-story__specs-table caption.do-story__specs-group-title { margin:0; }

/* D8-2026-09-30: карточка фактов (Feature facts, Figma 6431:27073) и второе изделие в hero (Ultra + Otoflash).
   Десктоп: секция 560, карточка 620 слева (x=80, y=80, отступ 40, значения 32/40, подписи 18/28, зазор 20), текст справа с x=800. */
.do-wv-story[data-variant="factlist"] .do-wv-story__inner { display:grid; grid-template-columns:620px minmax(0,560px); grid-template-areas:"list title" "list desc"; grid-template-rows:auto 1fr; column-gap:100px; row-gap:24px; align-items:start; min-height:560px; padding:80px; box-sizing:border-box; }
.do-wv-story[data-variant="factlist"] .do-wv-story__title { grid-area:title; }
.do-wv-story[data-variant="factlist"] .do-wv-story__desc { grid-area:desc; }
.do-wv-factlist { grid-area:list; display:flex; flex-direction:column; gap:20px; margin:0; padding:40px; border-radius:16px; background:#171615; box-sizing:border-box; min-width:0; }
.do-wv-factlist > div { display:contents; }
.do-wv-factlist dt { margin:0; color:#fff; font-size:32px; line-height:40px; font-weight:800; overflow-wrap:break-word; }
.do-wv-factlist dd { margin:0; color:#c2c1bf; font-size:18px; line-height:28px; }
.do-wv-hero__photo .do-wv-hero__extra { position:absolute; inset:auto; display:block; max-width:none; object-fit:contain; pointer-events:none; }
@media (min-width:1051px) {
  .do-wv-hero__photo .do-wv-hero__extra { left:calc(var(--ex-x) * var(--px)); top:calc(var(--ex-y) * var(--px)); width:calc(var(--ex-w) * var(--px)); height:calc(var(--ex-h) * var(--px)); }
}
@media (max-width:1050px) {
  .do-wv-story[data-variant="factlist"] .do-wv-story__inner { grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:40px; padding:56px 40px; min-height:0; }
  .do-wv-factlist { padding:32px; }
}
@media (max-width:760px) {
  .do-wv-story[data-variant="factlist"] .do-wv-story__inner { display:flex; flex-direction:column; align-items:stretch; gap:24px; padding:40px 24px; }
  .do-wv-factlist { gap:16px; padding:28px 24px; }
  .do-wv-factlist dt { font-size:24px; line-height:30px; }
  .do-wv-factlist dd { font-size:16px; line-height:22px; }
}
.do-story__docs[data-batch="eight"] .do-story__doc-icon--web { background:#ba0f26; }

/* D8: мобильная композиция «два изделия» (Figma 6431:27456: Ultra 175×292 в (0,10), Otoflash 170×195 в (175,130) внутри блока 342×320
   со смещением 24 от края экрана) и мобильный блок производителя CJ-Optik (6431:27314: без двух фото, логотип и кнопка на всю ширину). */
@media (max-width:760px) {
  .do-wv-hero[data-comp][data-duo] .do-wv-hero__photo { height:320px; margin-top:20px; }
  .do-wv-hero[data-comp][data-duo] .do-wv-hero__photo img:not(.do-wv-hero__strip):not(.do-wv-hero__extra) { position:absolute; left:calc(24 / 390 * 100%); top:10px; width:calc(175 / 390 * 100%); height:292px; aspect-ratio:auto; padding:0; }
  .do-wv-hero[data-comp][data-duo] .do-wv-hero__photo .do-wv-hero__extra { left:calc(199 / 390 * 100%); top:130px; width:calc(170 / 390 * 100%); height:195px; }
  .do-story__manufacturer[data-variant="eight"] { gap:32px; padding-block:64px; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-head { padding-inline:0; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-photos { display:none; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-panorama { height:220px; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-caption { font-size:12px; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-copy > p { line-height:24px; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-facts { gap:12px; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-fact { gap:12px; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-cta-row { gap:20px; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-logo { width:100%; height:auto; padding:12px 0; box-sizing:border-box; }
  .do-story__manufacturer[data-variant="eight"] .do-story__manufacturer-btn { padding:14px 0; border-radius:8px; font-size:16px; font-weight:700; }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/purchase-mobile-first.css?17941852881677*/
/* Approved shared layout. All content already exists in the server/static HTML.
   Desktop uses two columns; mobile follows the HTML source order. */
.do-product__hero--mobile-first {
  grid-template-areas:
    "media title"
    "media price"
    "media details"
    "media purchase"
    "media bottom";
  grid-template-rows:auto auto auto auto 1fr;
  row-gap:0;
}
.do-product__hero--mobile-first > * { min-width:0; }
.do-product__hero--mobile-first > .do-product__heading { grid-area:title; overflow-wrap:break-word; }
.do-product__hero--mobile-first > .do-product__details { grid-area:details; }
.do-product__hero--mobile-first > .do-product__price-row { grid-area:price; }
.do-product__hero--mobile-first > .do-product__buy-area { grid-area:purchase; }
.do-product__hero--mobile-first .do-product__cart-status:empty { display:none; }
.do-product__hero--mobile-first > .do-product__offer-bottom { margin-top:0; }
.do-product__hero--mobile-first .do-product__messengers { margin-top:20px; }
@media (max-width:760px) {
  .do-product__hero--mobile-first {
    grid-template-areas:"title" "media" "details" "price" "purchase" "bottom";
    grid-template-rows:auto;
    row-gap:24px;
  }
  .do-product__hero--mobile-first > .do-product__heading { margin:0; }
  .do-product__hero--mobile-first .do-product__intro { margin-top:0!important; }
  .do-product__hero--mobile-first .do-product__purchase { margin-top:0; }
  .do-product__hero--mobile-first .do-product__cart-status:empty { min-height:0; margin-top:0!important; }
  .do-product__hero--mobile-first > .do-product__offer-bottom { margin-top:0; }
  .do-product__hero--mobile-first .do-product__messengers { margin-top:0; }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/product-type.css?17941852882194*/
/* Typography standard, 2026-09-29. Scope: product content; site header unchanged.
   One family, three weights: regular 400, semibold 600, extrabold 800.
   Four roles: display/section title, subheading, body, interface/caption.
   Sizes of layouts and decorative metrics remain responsive, not extra font faces. */
.do-product {
  --do-type-regular:400;
  --do-type-semibold:600;
  --do-type-heading:800;
  --do-type-section:32px;
  --do-type-subhead:18px;
  --do-type-body:15px;
  font-family:var(--do-font);
  font-weight:var(--do-type-regular);
}
.do-product h1, .do-product h2 { font-weight:var(--do-type-heading); }
.do-product h3, .do-product strong, .do-product b { font-weight:var(--do-type-semibold); }
.do-product :is(.do-story__heading,.do-story__reviews-title,.do-ev-heading,.do-wv-story__title,.do-wv-maker__title) {
  font-size:var(--do-type-section); font-weight:var(--do-type-heading); line-height:1.2; letter-spacing:-.65px;
}
.do-product :is(.do-story__feature-title,.do-ev-feature-title,.do-story__review-name,.do-story__doc-title,.do-story__specs-group-title) {
  font-size:var(--do-type-subhead); font-weight:var(--do-type-semibold); line-height:1.4; letter-spacing:0;
}
.do-product :is(.do-story__feature-desc,.do-ev-feature-desc,.do-ev-hero-body,.do-ev-gallery-note,.do-ev-body,.do-story__manufacturer-copy p) {
  font-size:var(--do-type-body); font-weight:var(--do-type-regular); line-height:1.6;
}
.do-product :is(.do-story__kicker,.do-story__reviews-kicker,.do-ev-kicker,.do-ev-hero-eyebrow,.do-story__hero-eyebrow,.do-wv-hero__eyebrow) {
  font-size:12px; font-weight:var(--do-type-semibold); line-height:1.4; letter-spacing:.7px;
}
.do-product :is(.do-story__specs-row dd,.do-story__manufacturer-fact,.do-story__doc-btn,.do-story__reviews-btn,.do-ev-cta,.do-product__buy,.do-product__secondary,.do-product__cta,.do-product__qty-value),
.do-product .do-product__brandline>a:first-child {
  font-weight:var(--do-type-semibold);
}
.do-product :is(.do-wv-hero__fact,.do-wv-story__fact,.do-wv-story__metric,.do-product__doc-title) {
  font-weight:var(--do-type-semibold);
}
@media (max-width:760px) {
  .do-product { --do-type-section:27px; --do-type-subhead:16px; }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/review-player.css?17941852881068*/
.do-review-player { box-sizing:border-box;width:min(960px,calc(100% - 24px));max-height:92dvh;padding:24px;border:0;border-radius:16px;background:#fff;color:#292929;font:400 15px/1.5 var(--do-font, sans-serif); }
.do-review-player::backdrop { background:rgb(0 0 0 / .8); }
.do-review-player h2 { margin:16px 0;font-size:20px;font-weight:600; }
.do-review-player video,.do-review-player img { display:block;width:100%;max-height:65dvh;object-fit:contain;background:#171717;border-radius:10px; }
.do-review-player__close { display:block;margin-left:auto;min-height:44px;padding:8px 16px;border:1px solid #ddd;border-radius:24px;background:white;color:inherit;font:600 14px var(--do-font,sans-serif);cursor:pointer; }
.do-review-player a { color:#bd0a2b;text-underline-offset:3px; }
.do-review-player :focus-visible { outline:3px solid #bd0a2b;outline-offset:3px; }
.do-review-player [role=status]:empty { display:none; }
.do-story__review-card[data-do-review-type=image] .do-story__review-play { display:none; }
@media(max-width:760px){.do-review-player{padding:16px;}}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/story-refinements.css?17941852881567*/
/* T-022: keep the original brand vector's aspect ratio; content stays still. */
.do-product .do-story__specs-group-title { text-transform:none; letter-spacing:0; }
.do-product .do-story__specs-watermark { width:min(1140px,110vw);height:auto;right:-26%;top:-18%;opacity:.065;transform:rotate(-18deg); }
.do-product .do-story__specs[data-theme=dark] .do-story__specs-watermark { opacity:.16; }
.do-product [data-do-parallax] { position:relative;isolation:isolate;overflow:hidden; }
.do-product [data-do-parallax-fallback]::before { content:'';position:absolute;width:min(1040px,100vw);aspect-ratio:720/714;right:-20%;top:-22%;background:url('/local/templates/dentoptics_redesign/assets/product/./assets/story/o-hero-red.svg') center/contain no-repeat;opacity:.14;pointer-events:none;z-index:-1;transform:translateY(var(--do-parallax-y,0px)); }
.do-product [data-do-parallax] > :is(.do-story__hero-o,.do-story__docs-o,.do-story__specs-watermark,.do-wv-hero__o,.do-ev-hero-o,.do-ev-brand-o) { translate:0 var(--do-parallax-y,0px); }
@media(max-width:760px) {
  .do-product .do-story__specs-watermark { width:150vw;right:-78%;top:6%;opacity:.065; }
  .do-product [data-do-parallax-fallback]::before {width:150vw;right:-68%;top:0;}
  .do-product [data-do-parallax-fallback][data-theme-mobile=light]::before { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .do-product [data-do-parallax] > :is(.do-story__hero-o,.do-story__docs-o,.do-story__specs-watermark,.do-wv-hero__o,.do-ev-hero-o,.do-ev-brand-o) { translate:none!important; }
  .do-product [data-do-parallax-fallback]::before {transform:none!important;}
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/brand-block.css?17941852889996*/
/* Блоки производителей, выбранные пользователем в T-022:
   ExamVision A (5954:346), ILLUCO B (5954:349), Dentsply Sirona A (5954:350).
   Все правила ограничены классами .do-brand* — вёрстка CJ-Optik (.do-story__*),
   ExamVision (.do-ev-*) и волны T-018 (.do-wv-*) не затрагивается.
   Сетка макета: полоса 1440 с внутренними отступами 64px, контент 1312px,
   две колонки по 624px с зазором 64px (у Dentsply Sirona — 528 + 720). */
.do-brand { --do-brand-surface:#ffffff; --do-brand-text:#2c2b2a; --do-brand-muted:#686765; --do-brand-accent:#ba0f26;
  background:var(--do-brand-surface); color:var(--do-brand-text); }
.do-brand[data-theme="dark"] { --do-brand-surface:#171615; --do-brand-text:#ffffff; --do-brand-muted:#c2c1bf; }
.do-brand__inner { width:min(1440px,100%); margin-inline:auto; padding:56px 64px; display:flex; flex-direction:column; gap:40px; }
.do-brand--illuco .do-brand__inner,
.do-brand--dentsply .do-brand__inner { padding:64px; gap:24px; }

.do-brand__label { display:flex; align-items:center; gap:16px; margin:0; font-size:14px; line-height:21px; font-weight:600; color:var(--do-brand-muted); }
.do-brand__rule { display:block; width:40px; height:4px; background:var(--do-brand-accent); flex-shrink:0; }
.do-brand--illuco .do-brand__rule, .do-brand--dentsply .do-brand__rule { width:64px; }

.do-brand__row { display:grid; grid-template-columns:minmax(0,624px) minmax(0,624px); gap:64px; align-items:center; }
.do-brand--dentsply .do-brand__row { grid-template-columns:minmax(0,528px) minmax(0,720px); }

.do-brand__photos { display:flex; align-items:center; gap:24px; min-width:0; }
.do-brand__photos img { display:block; max-width:100%; height:auto; object-fit:cover; }
.do-brand--examvision .do-brand__photos img:first-child { width:360px; aspect-ratio:360/476; }
.do-brand--examvision .do-brand__photos img:last-child { width:240px; aspect-ratio:240/332; }
.do-brand--illuco .do-brand__photos img { width:100%; aspect-ratio:624/530; }

.do-brand__copy { display:flex; flex-direction:column; align-items:flex-start; gap:24px; min-width:0; }
/* Официальный знак производителя (T-027): пропорции исходника, без обрезки и растяжения,
   отступ до следующего элемента задаёт gap колонки — 24px (у ILLUCO 28px, как в макете). */
.do-brand__logo { display:block; width:auto; max-width:min(100%,246px); height:auto; object-fit:contain; }
.do-brand--examvision .do-brand__logo { height:96px; }
.do-brand--illuco .do-brand__logo { height:30px; }
.do-brand--dentsply .do-brand__logo { height:63px; }
.do-brand--illuco .do-brand__copy { gap:28px; }
.do-brand__eyebrow { margin:0; font-size:14px; line-height:21px; font-weight:600; color:var(--do-brand-muted); }
.do-brand__body { margin:0; max-width:568px; font-size:18px; line-height:27px; color:var(--do-brand-muted); }
/* В макете строка набрана с двойными пробелами вокруг слэша (5955:204) — сохраняем их. */
.do-brand__facts { margin:0; font-size:14px; line-height:21px; font-weight:600; color:var(--do-brand-text); white-space:pre-wrap; }
.do-brand__note { margin:0; max-width:496px; font-size:14px; line-height:21px; color:var(--do-brand-muted); }

.do-brand__figure { margin:0; display:flex; flex-direction:column; gap:20px; min-width:0; }
.do-brand__figure img { width:100%; height:auto; aspect-ratio:720/496; object-fit:cover; }
.do-brand__figure figcaption { font-size:14px; line-height:21px; font-weight:600; color:var(--do-brand-muted); }

.do-product .do-brand__cta { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:14px 24px; border-radius:12px;
  background:var(--do-brand-accent); color:#fff; font-size:16px; line-height:24px; font-weight:600; text-decoration:none; }
.do-brand__cta:hover { background:#a00d21; }
.do-brand__cta:focus-visible { outline:3px solid var(--do-brand-text); outline-offset:3px; }

/* Заголовок главы: правило .do-product h2 задаёт 32px, поэтому размер макета (48/54)
   поднят по специфичности — как и в остальных главах волны. */
.do-product .do-brand__title { margin:0; max-width:600px; font-size:48px; line-height:54px; font-weight:800; letter-spacing:0;
  color:var(--do-brand-text); overflow-wrap:break-word; }

@media (max-width:1100px) {
  .do-brand__inner, .do-brand--illuco .do-brand__inner, .do-brand--dentsply .do-brand__inner { padding:48px 40px; }
  .do-brand__row, .do-brand--dentsply .do-brand__row { grid-template-columns:minmax(0,1fr); gap:32px; }
  .do-product .do-brand__title { font-size:36px; line-height:42px; }
  .do-brand__body { font-size:17px; line-height:26px; }
  .do-brand--examvision .do-brand__photos img:first-child { width:58%; }
  .do-brand--examvision .do-brand__photos img:last-child { width:38%; }
}
@media (max-width:760px) {
  .do-brand__inner, .do-brand--illuco .do-brand__inner, .do-brand--dentsply .do-brand__inner { padding:40px 24px; gap:24px; }
  .do-brand__row { gap:24px; }
  .do-product .do-brand__title { font-size:30px; line-height:36px; }
  .do-brand__body { font-size:16px; line-height:25px; }
  .do-brand__photos { gap:12px; }
  /* Мобильная адаптация выбранных блоков T-022 сохранена, знак уменьшен пропорционально. */
  .do-brand--examvision .do-brand__logo { height:72px; }
  .do-brand--dentsply .do-brand__logo { height:48px; }
  .do-brand--illuco .do-brand__logo { height:26px; }
  .do-brand__cta { align-self:stretch; }
}

/* HAHNENKRATT — зеркала (T-027, Figma 5992:3331): фото команды слева 600×480,
   справа знак 96×96 рядом со страной, заголовок, два абзаца и кнопка каталога. */
.do-brand--hahnenkratt .do-brand__row { grid-template-columns:minmax(0,600px) minmax(0,600px); align-items:start; }
.do-brand--hahnenkratt .do-brand__photos img { width:100%; aspect-ratio:600/480; border-radius:12px; }
.do-brand--hahnenkratt .do-brand__logo { width:96px; height:96px; }

/* Широкая полоса (Rini T-028, Figma 6048:935; Support Design, BRUMABA, Planmeca, Asiga T-029B):
   фото здания или бренда во всю ширину, знак рядом со страной, текст под ним. У Asiga фото нет —
   остаётся та же полоса из знака, заголовка, текста и кнопки. */
.do-brand--wide .do-brand__inner { gap:32px; padding:64px 80px; }
.do-brand--wide .do-brand__wide-photo img { display:block; width:100%; height:auto; aspect-ratio:1280/300; object-fit:cover; border-radius:12px; }
.do-product .do-brand--wide .do-brand__title { max-width:1100px; }
.do-brand--wide .do-brand__text p { max-width:1100px; }
.do-brand--wide .do-brand__logo { height:auto; object-fit:contain; }
.do-brand--rini .do-brand__logo { width:189px; height:67px; }
.do-brand--support-design .do-brand__logo { width:250px; height:43px; }
.do-brand--brumaba .do-brand__logo { width:240px; height:38px; }
.do-brand--planmeca .do-brand__logo { width:244px; height:38px; }
.do-brand--asiga .do-brand__logo { width:244px; height:21px; }

/* Общее для блоков со знаком рядом со страной. */
.do-brand__identity { display:flex; align-items:center; gap:24px; }
.do-brand__country { margin:0; font-size:14px; line-height:1.4; color:var(--do-brand-accent); white-space:pre-line; }
.do-brand__text { display:flex; flex-direction:column; gap:16px; }
.do-brand__text p { margin:0; max-width:580px; font-size:16px; line-height:1.6; color:var(--do-brand-muted); }

@media (max-width:1100px) {
  .do-brand--wide .do-brand__inner { padding:48px 40px; }
}
@media (max-width:760px) {
  .do-brand--hahnenkratt .do-brand__row { grid-template-columns:minmax(0,1fr); }
  .do-brand--hahnenkratt .do-brand__logo { width:80px; height:80px; }
  .do-brand--wide .do-brand__inner { padding:40px 24px; }
  .do-brand--rini .do-brand__logo { width:150px; height:53px; }
  .do-brand--support-design .do-brand__logo { width:170px; height:30px; }
  .do-brand--brumaba .do-brand__logo { width:160px; height:25px; }
  .do-brand--planmeca .do-brand__logo { width:160px; height:25px; }
  .do-brand--asiga .do-brand__logo { width:160px; height:14px; }
  .do-brand--wide .do-brand__wide-photo img { aspect-ratio:342/220; }
  .do-brand__identity { gap:16px; }
}

/* Rini, проход 2 ночного пакета (30.09.2026): блок производителя по макетам 6048:2170 (desktop) и 6048:2373 (mobile).
   Заголовок 42/normal (desktop) и 28/normal (mobile), пустая строка между абзацами (25,6 px), кнопка
   328×56 с подписью слева (Regular 16/1,6), фото на телефоне 342×180. Только .do-brand--rini. */
.do-brand--rini .do-brand__text { gap:25.6px; }
.do-product .do-brand--rini .do-brand__cta { box-sizing:border-box; width:328px; max-width:100%; height:56px; min-height:56px; padding:16px 24px; justify-content:flex-start; align-items:flex-start; font-weight:400; line-height:1.6; }
@media (min-width:1101px) {
  .do-product .do-brand--rini .do-brand__title { font-size:42px; line-height:normal; }
}
@media (max-width:760px) {
  .do-product .do-brand--rini .do-brand__title { font-size:28px; line-height:normal; }
  .do-brand--rini .do-brand__wide-photo img { aspect-ratio:342/180; }
  .do-brand--rini .do-brand__identity { gap:24px; }
  .do-product .do-brand--rini .do-brand__cta { align-self:flex-start; }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/hero-composition.css?17941852883664*/
/* T-030: крупная непрозрачная фирменная полоса позади вырезанного товара в hero (Figma: Looks 3700, варианты 1/5/6 и др.).
   Геометрия — CSS-переменные из models/hero-composition.json (кадр Figma 1440×740):
   --hp-x/y/w/h — рамка фото; --hs-x/y/w/h — начало координат и размер вектора относительно рамки фото; --hs-r — угол.
   Единица --px = ширина hero / 1440 (не больше 1px): композиция масштабируется целиком, на 1440 и шире равна макету. */
.do-wv-hero[data-comp] { container-type: inline-size; }
.do-wv-hero[data-comp] .do-wv-hero__inner { --px: calc(min(100cqw, 1440px) / 1440); }
.do-wv-hero[data-comp] .do-wv-hero__o { display: none; }
.do-wv-hero[data-comp] .do-wv-hero__strip {
  position: absolute; z-index: -1; max-width: none; pointer-events: none; user-select: none;
  left: calc(var(--hs-x) * var(--px)); top: calc(var(--hs-y) * var(--px));
  width: calc(var(--hs-w) * var(--px)); height: calc(var(--hs-h) * var(--px));
  transform-origin: 0 0; transform: rotate(var(--hs-r));
}
@media (min-width: 1051px) {
  .do-wv-hero[data-comp] .do-wv-hero__inner { grid-template-columns: minmax(0, 1fr) calc((1440 - var(--hp-x)) * var(--px)); min-height: calc(740 * var(--px)); }
  .do-wv-hero[data-comp][data-comp] .do-wv-hero__photo {
    grid-area: auto; position: absolute; margin: 0; align-self: auto;
    left: calc(var(--hp-x) * var(--px)); top: calc(var(--hp-y) * var(--px));
    width: calc(var(--hp-w) * var(--px)); height: calc(var(--hp-h) * var(--px));
  }
}
/* Планшет: фото остаётся в колонке 45%, полоса масштабируется вместе с макетом относительно рамки фото. */
@media (min-width: 761px) and (max-width: 1050px) {
  .do-wv-hero[data-comp] .do-wv-hero__photo { margin: 0; }
}
/* Мобильная композиция проектируется отдельно: «сцена» на всю ширину экрана под фото, полоса режется краями сцены и не
   заходит под текст. Три варианта повторяют характер desktop-полосы (дуга снизу, диагональ справа, широкая полоса сверху). */
@media (max-width: 760px) {
  .do-wv-hero[data-comp] .do-wv-hero__photo { position: relative; margin: 8px -24px 0; width: auto; height: auto; overflow: hidden; isolation: isolate; }
  .do-wv-hero[data-comp] .do-wv-hero__photo img:not(.do-wv-hero__strip) { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 390 / 320; object-fit: contain; padding: 16px 24px; box-sizing: border-box; }
  .do-wv-hero[data-comp] .do-wv-hero__strip { width: 118%; height: auto; aspect-ratio: 1200 / 1190; transform-origin: 50% 50%; }
  .do-wv-hero[data-comp][data-comp-m="a"] .do-wv-hero__strip { left: -30%; top: 12%; transform: rotate(-25.61deg); }
  .do-wv-hero[data-comp][data-comp-m="b"] .do-wv-hero__strip { left: 8%; top: -84%; transform: rotate(10deg); }
  .do-wv-hero[data-comp][data-comp-m="c"] .do-wv-hero__strip { left: -18%; top: -70%; transform: rotate(-35deg); }
}
/* Проход 3: hero высотой 660 (шесть аксессуаров Xenosys) — композиция с полосой масштабируется от 660, а не от 740. */
@media (min-width: 1051px) {
  .do-wv-hero[data-comp][data-hero-h="660"] .do-wv-hero__inner { min-height: calc(660 * var(--px)); }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/purchase-options.css?17941852884378*/
/* Only the approved B parameter controls; no changes to the surrounding card.
   Native fallback + progressively enhanced listbox. Both are build-time HTML. */
.do-product-options {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:20px;
  --do-options-border:#e5e4e2;
  --do-options-radius:12px;
}
.do-product-options__field { min-width:0; display:grid; gap:8px; align-content:start; }
.do-product-options__field--wide { grid-column:1 / -1; }
.do-product-options__field > label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.do-product-options__control { min-width:0; position:relative; }
.do-product-options select, .do-product .do-product-options__trigger {
  appearance:none; width:100%; min-width:0; height:44px;
  border:1px solid var(--do-options-border); border-radius:var(--do-options-radius);
  background:var(--do-surface,#fff); color:var(--do-text);
  padding:0 32px 0 12px; font:400 14px/20px var(--do-font);
  text-overflow:ellipsis; cursor:pointer;
  text-align:left;
}
.do-product-options__trigger span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.do-product-options [hidden] { display:none!important; }
/* Replace the existing 1px border colour, never add an offset outline/ring. */
.do-product .do-product-options select:focus,
.do-product .do-product-options select:focus-visible,
.do-product .do-product-options__trigger:focus,
.do-product .do-product-options .do-product-options__trigger:focus-visible,
.do-product .do-product-options__trigger[aria-expanded="true"],
.do-product .do-product-options__trigger[aria-invalid="true"] {
  border-color:var(--do-brand); outline:0; outline-offset:0; box-shadow:none;
}
.do-product-options__trigger[data-placeholder="true"] { color:var(--do-product-muted); }
.do-product-options__control:has([aria-expanded="true"]) { z-index:30; }
.do-product-options__list {
  position:absolute; z-index:30; top:calc(100% + 6px); left:0; right:0;
  padding:4px; border:1px solid var(--do-options-border); border-radius:12px;
  background:var(--do-surface,#fff); box-shadow:0 8px 24px rgb(44 43 42 / 12%);
  max-height:264px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin;
}
.do-product-options__list[data-up="true"] { top:auto; bottom:calc(100% + 6px); }
.do-product-options__item {
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  min-height:44px; padding:10px 12px; border-radius:8px;
  font:400 14px/20px var(--do-font); cursor:pointer; overflow-wrap:anywhere;
}
.do-product-options__item:hover, .do-product-options__item.is-active { background:var(--do-surface-subtle,#f5f5f5); }
.do-product-options__item[aria-selected="true"] { color:var(--do-brand); background:rgb(186 15 38 / 5%); }
.do-product-options__item[aria-disabled="true"] { color:var(--do-product-muted); opacity:.5; cursor:not-allowed; }
.do-product-options__check { visibility:hidden; flex-shrink:0; }
.do-product-options__item[aria-selected="true"] .do-product-options__check { visibility:visible; }
.do-product-options select:invalid { color:var(--do-product-muted); }
.do-product-options select option { color:var(--do-text); }
.do-product-options select option:disabled { color:var(--do-product-muted); }
.do-product-options__control > img { position:absolute; right:16px; top:50%; transform:translateY(-50%); pointer-events:none; }
.do-product-options .do-product-options__status { grid-column:1 / -1; font-size:12px; color:var(--do-brand); }
.do-product-options__status:empty { display:none; }
@media (min-width:761px) and (max-width:1100px) {
  .do-product-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .do-product-options { grid-template-columns:1fr; gap:8px; margin-top:24px; }
  .do-product-options__field { grid-template-columns:1fr; }
  /* Long model/colour names need the available width rather than tiny clipped values. */
  .do-product-options__field--wide { grid-template-columns:1fr; gap:8px; }
  .do-product-options select, .do-product .do-product-options__trigger { font-size:16px; }
}
@media (forced-colors:active) {
  .do-product .do-product-options__trigger:focus { border-color:Highlight; }
  .do-product-options__item.is-active { outline:1px solid Highlight; outline-offset:-1px; }
}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/product/story-blocks.css?179418528815396*/
/* PRODUCT-STORY-BLOCKS-2026-09-30: точечные варианты презентационного блока (story-blocks.mjs).
   Подключается только к страницам, где в данных есть story.block. Селекторы привязаны к
   [data-block], поэтому остальные Product Story не меняются. Размеры шрифта десктопа приходят из
   данных как --wb-* (Figma final-state.json); геометрия — из get_design_context макетов
   (например 5845:494: фото 720×650, текст x=800, top=80, gap=24, ширина 560).
   На телефоне (≤760 px) действуют размеры макетов 390: заголовок 28/34, описание 16/26, примечание 14/22. */

.do-wv-only-m { display: none; }

/* ---------- note: одноколоночный тёмный текст без правой метрики ---------- */
.do-product .do-wv-story[data-block="note"] .do-wv-story__inner,
.do-product .do-wv-story[data-block="points"] .do-wv-story__inner { box-sizing: border-box; min-height: 520px; padding: 100px 80px 80px; align-content: start; }
.do-product .do-wv-story[data-block="note"][data-block] .do-wv-story__inner { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.do-product .do-wv-story[data-block="note"] .do-wv-story__kicker,
.do-product .do-wv-story[data-block="points"] .do-wv-story__kicker { color: var(--do-story-text); }
.do-product .do-wv-story[data-block="note"] .do-wv-story__title,
.do-product .do-wv-story[data-block="points"] .do-wv-story__title { max-width: 1280px; font-size: var(--wb-title); line-height: var(--wb-title-lh); }
.do-product .do-wv-story[data-block="note"] .do-wv-story__desc,
.do-product .do-wv-story[data-block="points"] .do-wv-story__desc { max-width: 850px; font-size: var(--wb-desc); line-height: var(--wb-desc-lh); color: var(--do-story-text); }
.do-product .do-wv-story[data-block="note"] .do-wv-story__note,
.do-product .do-wv-story[data-block="points"] .do-wv-story__note { max-width: 850px; margin: 0; font-size: var(--wb-note); line-height: var(--wb-note-lh); color: var(--do-story-text); }
/* Looks 2500 (5854:290): блок начинается на 112, текст шире не 850, а 800. */
.do-product .do-wv-story[data-block="note"][style*="--wb-title:56px"] .do-wv-story__inner { padding-top: 112px; }
.do-product .do-wv-story[data-block="note"][style*="--wb-title:56px"] :is(.do-wv-story__desc, .do-wv-story__note) { max-width: 800px; }

/* ---------- points: LooksCAM — текст слева, сценарии справа ---------- */
.do-product .do-wv-story[data-block="points"] .do-wv-story__inner {
  display: grid; grid-template-columns: minmax(0, 640px) minmax(0, 1fr); column-gap: 80px; row-gap: 24px; align-items: start;
  grid-template-areas: "kicker ." "title points" "desc ." "note .";
}
.do-product .do-wv-story[data-block="points"] .do-wv-story__desc { max-width: 560px; }
.do-wv-story__points { grid-area: points; display: flex; flex-direction: column; gap: 16px; margin: 8px 0 0; padding: 0; list-style: none; }
.do-wv-story__points li { font-size: 20px; line-height: 28px; font-weight: 700; color: var(--do-story-text); }

/* ---------- фото-блоки (accent, photo-note, steps): Figma — фото 720×650 слева, текст x=800, top=80, gap=24 ---------- */
.do-product .do-wv-story[data-block="accent"] .do-wv-story__inner,
.do-product .do-wv-story[data-block="photo-note"] .do-wv-story__inner,
.do-product .do-wv-story[data-block="steps"] .do-wv-story__inner { min-height: 650px; align-content: start; row-gap: 24px; grid-template-rows: auto auto auto auto 1fr; }
.do-product .do-wv-story[data-block="accent"] .do-wv-story__inner { grid-template-areas: "photo kicker" "photo title" "photo desc" "photo accent" "photo ."; }
.do-product .do-wv-story[data-block="photo-note"] .do-wv-story__inner { grid-template-areas: "photo kicker" "photo title" "photo desc" "photo note" "photo ."; }
.do-product .do-wv-story[data-block="steps"] .do-wv-story__inner { grid-template-areas: "photo kicker" "photo title" "photo desc" "photo steps" "photo ."; }
.do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) :is(.do-wv-story__kicker, .do-wv-story__title, .do-wv-story__desc) { padding: 0 80px; }
.do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__kicker { padding-top: 80px; }
.do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__title { font-size: var(--wb-title); line-height: var(--wb-title-lh); max-width: none; }
.do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__desc { max-width: none; font-size: var(--wb-desc); line-height: var(--wb-desc-lh); }
/* Фото не задаёт высоту секции само (квадратный исходник раздувал бы её до 720): секция — не ниже 650, фото обрезается по cover. */
.do-wv-story:is([data-block="photo-note"], [data-block="steps"])[data-photo-style="bleed"] .do-wv-story__photo { position: relative; overflow: hidden; }
.do-wv-story:is([data-block="photo-note"], [data-block="steps"])[data-photo-style="bleed"] .do-wv-story__photo img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; }

.do-wv-story[data-block="accent"] .do-wv-story__accent { grid-area: accent; padding: 8px 80px 80px; }
.do-wv-story__accent-value { margin: 0; font-size: 32px; line-height: 40px; font-weight: 800; color: var(--do-story-text); }
.do-wv-story__accent-label { margin: 8px 0 0; font-size: 14px; line-height: 22px; color: var(--do-story-muted); }

.do-wv-story[data-block="photo-note"] .do-wv-story__note { grid-area: note; margin: 0; padding: 0 80px 80px; font-size: var(--wb-note); line-height: var(--wb-note-lh); color: var(--do-story-muted); }
.do-wv-story[data-block="photo-note"] .do-wv-story__note--strong { color: var(--do-story-text); }

.do-wv-story[data-block="steps"] .do-wv-story__steps { grid-area: steps; margin: 0; padding: 8px 80px 80px; list-style: none; display: flex; flex-direction: column; gap: 18px; }
.do-wv-story[data-block="steps"] .do-wv-story__steps li { font-size: var(--wb-step); line-height: 28px; font-weight: 700; color: var(--do-story-text); }
.do-wv-story__step-n { margin-right: 12px; }

/* ---------- cards: Asiga — две текстовые карточки вместо голых цифр ---------- */
.do-product .do-wv-story[data-block="cards"] .do-wv-facts { gap: 24px; padding: 40px; }
.do-product .do-wv-story[data-block="cards"] .do-wv-facts__item { gap: 14px; }
.do-product .do-wv-story[data-block="cards"] .do-wv-facts__value { font-size: clamp(24px, 2.3vw, var(--wb-card)); line-height: 40px; }
.do-product .do-wv-story[data-block="cards"] .do-wv-facts__label { font-size: var(--wb-label); line-height: 28px; color: #ffffff; }

/* ---------- планшет ---------- */
@media (min-width: 761px) and (max-width: 1100px) {
  .do-product .do-wv-story[data-block="note"] .do-wv-story__inner,
  .do-product .do-wv-story[data-block="points"] .do-wv-story__inner { padding: 72px 40px; }
  .do-product .do-wv-story[data-block="points"] .do-wv-story__inner { column-gap: 40px; }
  .do-product .do-wv-story:is([data-block="note"], [data-block="points"]) .do-wv-story__title { font-size: clamp(30px, 4vw, var(--wb-title)); line-height: 1.24; }
  .do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) :is(.do-wv-story__kicker, .do-wv-story__title, .do-wv-story__desc) { padding-left: 40px; padding-right: 40px; }
  .do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__title { font-size: 32px; line-height: 40px; }
  .do-wv-story[data-block="accent"] .do-wv-story__accent, .do-wv-story[data-block="steps"] .do-wv-story__steps, .do-wv-story[data-block="photo-note"] .do-wv-story__note { padding-left: 40px; padding-right: 40px; }
}

/* ---------- телефон (макеты 390) ---------- */
@media (max-width: 760px) {
  .do-wv-only-d { display: none !important; }
  .do-wv-only-m { display: inline; }
  p.do-wv-only-m { display: block; }

  .do-product .do-wv-story[data-block="note"] .do-wv-story__inner,
  .do-product .do-wv-story[data-block="points"] .do-wv-story__inner { display: flex; flex-direction: column; align-items: stretch; gap: 24px; min-height: 0; padding: 40px 24px; }
  .do-product .do-wv-story:is([data-block="note"], [data-block="points"], [data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__title { font-size: 28px; line-height: 34px; }
  .do-product .do-wv-story:is([data-block="note"], [data-block="points"], [data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__desc { max-width: none; padding: 0; font-size: 16px; line-height: 26px; color: var(--do-story-muted); }
  .do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__inner { min-height: 0; row-gap: 24px; }
  .do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__title { padding: 0; }
  .do-product .do-wv-story[data-block="note"] .do-wv-story__note,
  .do-product .do-wv-story[data-block="points"] .do-wv-story__note { max-width: none; font-size: 14px; line-height: 22px; color: var(--do-story-muted); }
  .do-wv-story__points { gap: 20px; margin: 0; }
  .do-wv-story__points li { font-size: 20px; line-height: 26px; }

  .do-wv-story[data-block="accent"] .do-wv-story__accent { padding: 0; }
  p.do-wv-story__accent-sentence { margin: 0; font-size: 16px; line-height: 24px; font-weight: 700; color: var(--do-story-text); }
  .do-wv-story[data-block="photo-note"] .do-wv-story__note { padding: 0; font-size: 14px; line-height: 22px; }
  .do-wv-story[data-block="steps"] .do-wv-story__steps { padding: 0; gap: 14px; }
  .do-wv-story[data-block="steps"] .do-wv-story__steps li { font-size: 20px; line-height: 26px; }
  .do-wv-story:is([data-block="photo-note"], [data-block="steps"])[data-photo-style="bleed"] .do-wv-story__photo { position: static; overflow: visible; }
  .do-wv-story:is([data-block="photo-note"], [data-block="steps"])[data-photo-style="bleed"] .do-wv-story__photo img { position: static; width: 100%; height: auto; }

  .do-product .do-wv-story[data-block="cards"] .do-wv-facts { padding: 24px; gap: 24px; border-radius: 12px; }
  .do-product .do-wv-story[data-block="cards"] .do-wv-facts__item { gap: 12px; }
  .do-product .do-wv-story[data-block="cards"] .do-wv-facts__value { font-size: 22px; line-height: 28px; }
  .do-product .do-wv-story[data-block="cards"] .do-wv-facts__label { font-size: 14px; line-height: 22px; }
}

/* Ярлык блока в макетах набран line-height: normal (17 px), а не 1.6 базового стиля. */
.do-product .do-wv-story[data-block] .do-wv-story__kicker { line-height: normal; }

/* LooksCAM (5881:923): блок начинается на 80, примечание — под описанием, сценарии — справа от заголовка. */
.do-product .do-wv-story[data-block="points"] .do-wv-story__inner { padding-top: 80px; }
.do-product .do-wv-story[data-block="points"] .do-wv-story__note { grid-area: note; }
/* Подписанный параметр (accent): значение 32/40, подпись через 32 px после него (Figma 5881:708). */
.do-wv-story[data-block="accent"] .do-wv-story__accent { padding-top: 0; }
.do-wv-story__accent-label { margin-top: 32px; }

/* Asiga (6102:5155): секция 480; карточка 620 на x=80, top=90, gap 20, padding 40; текст на x=800, top=80, gap 24. */
.do-product .do-wv-story[data-block="cards"] .do-wv-story__inner { min-height: 480px; }
.do-product .do-wv-story[data-block="cards"] .do-wv-story__title { font-size: var(--wb-title); line-height: 1.2; }
.do-product .do-wv-story[data-block="cards"] .do-wv-story__desc { font-size: var(--wb-desc); line-height: 1.6; color: var(--do-story-muted); }
.do-product .do-wv-story[data-block="cards"] .do-wv-facts { gap: 20px; }
.do-product .do-wv-story[data-block="cards"] .do-wv-facts__item { gap: 20px; }
.do-product .do-wv-story[data-block="cards"] .do-wv-facts__label { color: #ffffff; }
@media (min-width: 761px) and (max-width: 1100px) {
  .do-product .do-wv-story[data-block="cards"] .do-wv-story__title { font-size: 32px; }
}
@media (max-width: 760px) {
  .do-product .do-wv-story[data-block="cards"] .do-wv-story__title { font-size: 28px; line-height: 34px; }
  .do-product .do-wv-story[data-block="cards"] .do-wv-story__inner { min-height: 0; }
  .do-product .do-wv-story[data-block="cards"] .do-wv-facts { gap: 26px; }
  .do-product .do-wv-story[data-block="cards"] .do-wv-facts__item { gap: 16px; }
  .do-wv-story[data-block="steps"] .do-wv-story__steps { gap: 20px; padding-top: 4px; }
}

/* LooksCAM: сценарии стоят справа от заголовка и описания, не увеличивая строку заголовка (Figma 5881:923). */
.do-product .do-wv-story[data-block="points"] .do-wv-story__inner { grid-template-areas: "kicker ." "title points" "desc points" "note ."; }
.do-product .do-wv-story[data-block="points"] .do-wv-story__desc { max-width: 540px; }
.do-wv-story[data-block="points"] .do-wv-story__points { align-self: start; }

/* Рамка фото по Figma (ULTRAretract 5997:14761 — 720×650 в (0,0); Carl Swing R6 6025:2526 — 700×540 в (40,55)): изображение целиком, contain. */
.do-wv-story[data-photo-style="frame"] .do-wv-story__photo { position: relative; overflow: hidden; padding: 0; }
.do-wv-story[data-photo-style="frame"] .do-wv-story__photo img { position: absolute; left: var(--wb-fl); top: var(--wb-ft); width: var(--wb-fw); height: var(--wb-fh); min-height: 0; max-height: none; object-fit: contain; }
/* Ширина описания в фото-блоках — 540 при колонке 560 (Figma: w=540). */
.do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__desc { padding-right: 100px; }
@media (max-width: 760px) {
  .do-wv-story[data-photo-style="frame"] .do-wv-story__photo { position: static; overflow: visible; }
  .do-wv-story[data-photo-style="frame"] .do-wv-story__photo img { position: static; width: 100%; height: auto; object-fit: contain; }
  .do-product .do-wv-story:is([data-block="accent"], [data-block="photo-note"], [data-block="steps"]) .do-wv-story__desc { padding-right: 0; }
}

.do-product .do-wv-story[data-block="points"] .do-wv-story__desc { max-width: 600px; }

/* Планшет ≤900: две колонки LooksCAM не помещаются (640 + сценарии) — сценарии идут под описанием, как на телефоне. */
@media (min-width: 761px) and (max-width: 900px) {
  .do-product .do-wv-story[data-block="points"] .do-wv-story__inner { grid-template-columns: minmax(0, 1fr); grid-template-areas: "kicker" "title" "desc" "points" "note"; }
  .do-wv-story__points { margin-top: 0; }
}

/* End */


/* Start:/local/dentoptics/seo-geo-20261105/content.css?1794185288957*/
.do-seo-product-data{max-width:1200px;margin:40px auto;padding:24px;color:inherit;font:inherit}.do-seo-product-data h2{font-size:28px;margin:0 0 20px}.do-seo-summary{max-width:900px;line-height:1.6}.do-seo-source{padding:16px 0;border-bottom:1px solid #e6e6e6}.do-seo-source summary{cursor:pointer;font-weight:600}.do-seo-source dl>div{display:grid;grid-template-columns:minmax(130px,1fr) 2fr;gap:16px;padding:10px 0}.do-seo-source dt{color:#666}.do-seo-source dd{margin:0}.do-seo-rich{padding-top:16px;overflow-x:auto;line-height:1.6}.do-seo-rich table{width:100%;border-collapse:collapse}.do-seo-rich td,.do-seo-rich th{padding:8px;border-bottom:1px solid #eee}.do-seo-rich img{max-width:100%;height:auto}.do-seo-rich a,.do-seo-product-data a{color:inherit;text-decoration:underline}@media(max-width:600px){.do-seo-product-data{margin:24px auto;padding:16px}.do-seo-product-data h2{font-size:24px}.do-seo-source dl>div{grid-template-columns:1fr;gap:4px}}

/* End */


/* Start:/local/templates/dentoptics_redesign/assets/bx012.css?17941852882191*/
.do-bx012-label { display: block; margin: 0 0 8px; font-size: 14px; font-weight: 700; }
.do-bx012-form { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; }
.do-bx012-select { display: block; min-width: min(100%, 290px); max-width: 100%; padding: 13px 15px; border: 1px solid #bcc4c9; border-radius: 8px; background: #fff; color: #172126; font: inherit; }
.do-bx012-form .do-product__qty { flex-shrink: 0; }
.do-bx012-form .do-product__buy { flex-shrink: 0; }
.do-bx012-dialog-commerce { padding-top: 36px; padding-bottom: 48px; }
.do-bx012-dialog-commerce .do-product__heading { margin: 0 0 20px; }
.do-bx012-dialog-commerce .do-product__price-row { margin: 0 0 12px; }
.do-bx012-dialog-commerce .do-product__buy-area { margin: 0; }
.do-bx012-eyebrow { margin: 0 0 10px; color: #e31b23; font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.do-bx012-dialog-page .do-kz { max-width: none; }
@media (max-width: 760px) { .do-bx012-form { display: grid; width: 100%; } .do-bx012-select { width: 100%; } }

/* Rini option groups keep labels attached to their controls. */
.do-rini-options { flex-basis:100%; display:grid; gap:12px; min-width:0; width:100%; }
.do-rini-field { min-width:0; }
.do-rini-field .do-bx012-select { width:100%; min-width:0; }
.do-rini-fallback[hidden] { display:none; }
.do-rini-note { flex-basis:100%; font-size:13px; line-height:1.5; color:#57616a; margin:0; }

/* Configuration follows the shared product options pattern outside purchase. */
.do-product__buy-area > .do-bx012-options { margin-top:0; min-width:0; width:100%; }
.do-product__buy-area > .do-bx012-options .do-bx012-select { min-width:0; width:100%; max-width:100%; padding:0 36px 0 12px; height:44px; border:1px solid #e5e4e2; border-radius:12px; font:400 14px/20px var(--do-font,Montserrat,Arial,sans-serif); text-overflow:ellipsis; background:#fff url("/local/templates/dentoptics_redesign/assets/product/assets/select-chevron.svg") no-repeat right 16px center; }
.do-product__buy-area > .do-bx012-options + .do-product__purchase { margin-top:20px; }
@media(max-width:760px){ .do-product__buy-area > .do-bx012-options .do-bx012-select { font-size:16px; } }

/* End */
/* /local/templates/dentoptics_redesign/assets/header.css?179418528823302 */
/* /local/dentoptics/search-20261108/search.css?179418528811773 */
/* /local/dentoptics/mobile-search-20261105/search.css?1794185288491 */
/* /local/dentoptics/megamenu-20261105/menu.css?179418528814776 */
/* /local/templates/dentoptics_redesign/assets/footer.css?179418528810725 */
/* /local/templates/dentoptics_redesign/assets/integration.css?17941852871849 */
/* /local/templates/dentoptics_redesign/assets/product/product.css?179418528817169 */
/* /local/templates/dentoptics_redesign/assets/product/story.css?179418528877992 */
/* /local/templates/dentoptics_redesign/assets/product/purchase-mobile-first.css?17941852881677 */
/* /local/templates/dentoptics_redesign/assets/product/product-type.css?17941852882194 */
/* /local/templates/dentoptics_redesign/assets/product/review-player.css?17941852881068 */
/* /local/templates/dentoptics_redesign/assets/product/story-refinements.css?17941852881567 */
/* /local/templates/dentoptics_redesign/assets/product/brand-block.css?17941852889996 */
/* /local/templates/dentoptics_redesign/assets/product/hero-composition.css?17941852883664 */
/* /local/templates/dentoptics_redesign/assets/product/purchase-options.css?17941852884378 */
/* /local/templates/dentoptics_redesign/assets/product/story-blocks.css?179418528815396 */
/* /local/dentoptics/seo-geo-20261105/content.css?1794185288957 */
/* /local/templates/dentoptics_redesign/assets/bx012.css?17941852882191 */
