

/* Start:/local/templates/avedental/components/avedental/entity.detail/promo-dizain/static.css?1792850015117380*/
/* Новый дизайн акций (макет All-on-4, одобрен David 17.10.2026). Источник — _audit/akcii_2026-10-13/dizain/dizain.css; дальше — правки переноса на сайт. */
/* Макет All-on-4 «дизайн с нуля». Цвета — только переменные кита, кегль — формулой, радиусы — 8/16/24/32. */
.ds {
  --f12: calc(12 / var(--initial-font-multiplier) * 1rem);
  --f13: calc(13 / var(--initial-font-multiplier) * 1rem);
  --f14: calc(14 / var(--initial-font-multiplier) * 1rem);
  --f15: calc(15 / var(--initial-font-multiplier) * 1rem);
  --f16: calc(16 / var(--initial-font-multiplier) * 1rem);
  --f17: calc(17 / var(--initial-font-multiplier) * 1rem);
  --f18: calc(18 / var(--initial-font-multiplier) * 1rem);
  --f20: calc(20 / var(--initial-font-multiplier) * 1rem);
  --f24: calc(24 / var(--initial-font-multiplier) * 1rem);
  --f26: calc(26 / var(--initial-font-multiplier) * 1rem);
  --f30: calc(30 / var(--initial-font-multiplier) * 1rem);
  --f40: calc(40 / var(--initial-font-multiplier) * 1rem);
  --f44: calc(44 / var(--initial-font-multiplier) * 1rem);
  color: var(--base-100-color);
}
/* сброс без веса, чтобы не перебивать классы ниже; цвет заголовков — свой, у сайта h3 тёмно-синий */
:where(.ds) :where(h1, h2, h3, p, ul, ol, li) { margin: 0; padding: 0; list-style: none; }
:where(.ds) :where(h1, h2, h3, b, li) { color: var(--base-100-color); }
:where(.ds) img { display: block; max-width: none; }
.ds section { padding-block: 28px; }
.ds-h2 { color: var(--base-100-color); font-size: var(--f26); line-height: 1.2; font-weight: 600; letter-spacing: -0.02em; }
.ds-h2 em { font-style: normal; color: var(--accent-1-100-color); }
.ds-sub { margin-top: 8px; font-size: var(--f16); line-height: 1.5; color: var(--base-80-color); }
.ds-head { margin-bottom: 20px; }
.ds-ico { width: 24px; height: 24px; flex: none; color: var(--accent-1-100-color); }
.ds-btn { display: flex; align-items: center; justify-content: center; height: 56px; border-radius: var(--border-radius-16);
  background: var(--accent-1-100-color); color: var(--base-0-color); font-size: var(--f16); font-weight: 600; text-decoration: none; }
.ds-pill { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 100px; font-size: var(--f13); font-weight: 600; white-space: nowrap; }
.ds-pill--white { background: var(--base-0-color); color: var(--accent-1-100-color); }
.ds-pill--blue { background: var(--accent-1-100-color); color: var(--base-0-color); }
.ds-pill--light { background: var(--accent-1-10-color); color: var(--accent-1-100-color); }

/* 1. первый экран */
.ds-hero { padding-top: 4px !important; }
.ds-crumbs { display: flex; gap: 8px; margin-bottom: 16px; font-size: var(--f14); color: var(--base-60-color); white-space: nowrap; overflow: hidden; }
.ds-crumbs a { color: var(--accent-1-100-color); text-decoration: none; }
.ds-hero__card { position: relative; min-height: 440px; padding: 20px 22px 0; border-radius: var(--border-radius-32); background: var(--accent-1-10-color); }
.ds-hero__media { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none; }
.ds-hero__media img { position: absolute; right: -24px; bottom: -26px; width: 280px; }
.ds-hero__title { position: relative; margin-top: 14px; color: var(--base-100-color); font-size: var(--f30); line-height: 1.12; font-weight: 600; letter-spacing: -0.03em; }
.ds-hero__lead { position: relative; margin-top: 10px; max-width: 290px; font-size: var(--f17); line-height: 1.45; color: var(--base-80-color); }
.ds-badge { position: absolute; left: 22px; bottom: 0; transform: translateY(42%); display: grid; gap: 0; padding: 8px 16px 9px;
  border-radius: var(--border-radius-16); background: var(--accent-2-100-color); color: var(--base-0-color);
  box-shadow: 0 3px 12px rgba(226, 87, 44, .3); }
.ds-badge s { font-size: var(--f14); line-height: 1.3; opacity: .78; }
.ds-badge b { color: var(--base-0-color); font-size: var(--f26); line-height: 1.15; font-weight: 700; letter-spacing: -0.02em; white-space: nowrap; }
.ds-badge b small { font-size: var(--f17); font-weight: 600; letter-spacing: 0; }
.ds-hero .ds-btn { margin-top: 52px; }
.ds-pay { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 14px; font-size: var(--f14); color: var(--base-80-color); }
.ds-pay img { height: 26px; width: auto; }

/* 2. плитки «чем удобен» */
.ds-bento { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ds-tile { position: relative; overflow: hidden; min-height: 150px; padding: 18px 16px; border-radius: var(--border-radius-24); }
.ds-tile h3 { color: var(--base-100-color); position: relative; font-size: var(--f18); line-height: 1.25; font-weight: 600; letter-spacing: -0.01em; }
.ds-tile p { position: relative; margin-top: 4px; font-size: var(--f14); line-height: 1.4; color: var(--base-80-color); }
.ds-tile .ds-ico { width: 40px; height: 40px; margin-bottom: 18px; }
.ds-tile--wide { grid-column: 1 / -1; min-height: 262px; padding: 22px; background: var(--accent-1-100-color); color: var(--base-0-color); }
.ds-tile--wide h3 { color: var(--base-0-color); max-width: 250px; font-size: var(--f24); line-height: 1.2; letter-spacing: -0.02em; }
.ds-tile--wide p { max-width: 300px; margin-top: 8px; font-size: var(--f15); color: var(--base-0-color); opacity: .82; }
.ds-tile--wide img { position: absolute; right: -14px; bottom: -78px; width: 136px; transform: rotate(-14deg); }
.ds-tile--light { background: var(--accent-1-10-color); }
.ds-tile--gray { background: var(--base-20-color); }

/* 3. шаги — листаются вбок */
.ds-rail { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -20px; padding: 0 20px 4px; scrollbar-width: none; }
.ds-rail::-webkit-scrollbar { display: none; }
.ds-step { flex: 0 0 248px; scroll-snap-align: start; display: grid; grid-template-rows: auto 150px auto; padding: 16px; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-step .ds-pill { justify-self: start; }
.ds-step__img { display: grid; place-items: center; }
.ds-step__img img { max-width: 170px; max-height: 136px; width: auto; height: auto; }
.ds-step h3 { color: var(--base-100-color); font-size: var(--f17); line-height: 1.3; font-weight: 600; }
.ds-step p { margin-top: 4px; font-size: var(--f14); line-height: 1.4; color: var(--base-80-color); }
.ds-dots { display: flex; justify-content: center; gap: 6px; margin-top: 14px; }
.ds-dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--base-40-color); }
.ds-dots i:first-child { width: 22px; border-radius: 3px; background: var(--accent-1-100-color); }

/* 4. врачи */
.ds-team { position: relative; overflow: hidden; height: 300px; border-radius: var(--border-radius-32); background: var(--accent-1-10-color); }
.ds-team > img { position: absolute; left: 50%; bottom: 0; width: 392px; transform: translateX(-50%); }
.ds-name { position: absolute; bottom: 12px; display: grid; padding: 8px 12px; border-radius: var(--border-radius-16); background: var(--base-0-color); }
.ds-name b { font-size: var(--f14); line-height: 1.3; font-weight: 600; }
.ds-name span { font-size: var(--f13); line-height: 1.3; color: var(--base-80-color); }
.ds-name--l { left: 12px; }
.ds-name--r { right: 12px; }
.ds-facts { display: grid; gap: 14px; margin-top: 20px; }
.ds-facts li { display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: center; }
.ds-facts .ds-ico-box { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--border-radius-16); background: var(--accent-1-10-color); }
.ds-facts b { color: var(--base-100-color); display: block; font-size: var(--f16); line-height: 1.3; font-weight: 600; }
.ds-facts span { display: block; font-size: var(--f14); line-height: 1.35; color: var(--base-80-color); }

/* 5. цена */
.ds-price { position: relative; padding: 22px; border-radius: var(--border-radius-32); background: var(--accent-2-20-color); }
.ds-price__stage { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: var(--f14); color: var(--base-80-color); }
.ds-price__sum { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-top: 6px; }
.ds-price__sum b { font-size: var(--f44); line-height: 1.05; font-weight: 700; letter-spacing: -0.03em; color: var(--accent-2-100-color); white-space: nowrap; }
.ds-price__sum s { font-size: var(--f17); color: var(--base-60-color); white-space: nowrap; }
.ds-price__what { margin-top: 8px; font-size: var(--f15); line-height: 1.4; }
.ds-price__gain { position: absolute; top: 18px; right: 18px; }
.ds-price hr { margin: 20px 0; border: 0; height: 2px; background: var(--base-0-color); }
.ds-price__sum--two b { font-size: var(--f30); color: var(--base-100-color); }
.ds-sys { margin-top: 12px; border: 1px solid var(--base-40-color); border-radius: var(--border-radius-24); background: var(--base-0-color); padding: 4px 18px; }
.ds-sys__title { margin-top: 24px; font-size: var(--f17); font-weight: 600; }
.ds-sys li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; }
.ds-sys li + li { border-top: 1px solid var(--base-40-color); }
.ds-sys li b { color: var(--base-100-color); display: block; font-size: var(--f16); font-weight: 600; }
.ds-sys li span { display: block; font-size: var(--f13); color: var(--base-60-color); }
.ds-sys li strong { font-size: var(--f18); font-weight: 700; color: var(--accent-2-100-color); white-space: nowrap; }
.ds-perks { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.ds-perk { position: relative; overflow: hidden; min-height: 112px; padding: 16px; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-perk h3 { color: var(--base-100-color); font-size: var(--f16); font-weight: 600; }
.ds-perk .ds-logos { display: flex; gap: 6px; margin-top: 14px; }
.ds-perk .ds-logos img { width: 28px; height: 28px; }
.ds-perk--bonus { background: var(--accent-2-20-color); }
.ds-perk--bonus b { display: block; font-size: var(--f30); line-height: 1; font-weight: 700; color: var(--accent-2-100-color); }
.ds-perk--bonus p { margin-top: 6px; font-size: var(--f14); line-height: 1.35; color: var(--base-80-color); max-width: 100px; }
.ds-perk--bonus img { position: absolute; right: -14px; bottom: -10px; width: 74px; }
.ds-price-wrap .ds-btn { margin-top: 16px; }

/* 6. постоянные зубы */
.ds-pro { flex: 0 0 268px; scroll-snap-align: start; border-radius: var(--border-radius-24); background: var(--base-20-color); overflow: hidden; }
.ds-pro__img { display: grid; place-items: center; height: 150px; background: var(--base-0-color); margin: 8px 8px 0; border-radius: var(--border-radius-16); }
.ds-pro__img img { width: 220px; height: auto; }
.ds-pro div.ds-pro__txt { padding: 14px 16px 18px; }
.ds-pro h3 { color: var(--base-100-color); font-size: var(--f17); line-height: 1.3; font-weight: 600; }
.ds-pro p { margin-top: 4px; font-size: var(--f14); line-height: 1.4; color: var(--base-80-color); }

/* 7. вопросы */
.ds-faq { display: grid; gap: 10px; }
.ds-faq li { color: var(--base-100-color); display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; border: 1px solid var(--base-40-color); border-radius: var(--border-radius-16);
  font-size: var(--f16); line-height: 1.35; font-weight: 600; }
.ds-faq .ds-ico { width: 20px; height: 20px; }

/* 8. запись */
.ds-cta { position: relative; padding: 24px 22px 22px; border-radius: var(--border-radius-32); background: var(--accent-1-100-color); color: var(--base-0-color); }
.ds-cta h2 { color: var(--base-0-color); max-width: 230px; font-size: var(--f26); line-height: 1.2; font-weight: 600; letter-spacing: -0.02em; }
.ds-cta p { color: var(--base-0-color); margin-top: 10px; font-size: var(--f15); line-height: 1.45; opacity: .85; }
.ds-cta__zero { position: absolute; top: 20px; right: 20px; padding: 6px 12px; border-radius: var(--border-radius-16); background: var(--accent-2-100-color);
  font-size: var(--f20); font-weight: 700; box-shadow: 0 3px 12px rgba(226, 87, 44, .3); }
.ds-cta__zero small { display: block; font-size: var(--f12); font-weight: 600; opacity: .9; }
.ds-field { margin-top: 18px; padding: 10px 16px; border-radius: var(--border-radius-16); background: rgba(255, 255, 255, .2); }   /* Base/-80 */
.ds-field span { display: block; font-size: var(--f12); opacity: .7; }
.ds-field b { color: var(--base-0-color); font-size: var(--f17); font-weight: 500; }
.ds-agree { display: flex; gap: 10px; margin-top: 14px; font-size: var(--f13); line-height: 1.4; opacity: .9; }
.ds-agree i { flex: none; width: 20px; height: 20px; border-radius: 6px; background: var(--base-0-color); }
.ds-agree u { text-underline-offset: 2px; }
.ds-cta .ds-btn { margin-top: 14px; background: var(--base-0-color); color: var(--accent-1-100-color); }

.ds-mats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ds-mats .ds-pill { height: 32px; background: var(--base-0-color); color: var(--base-100-color); font-weight: 500; }
.ds-mats .ds-pill b { margin-left: 6px; color: var(--base-100-color); font-weight: 700; }

/* «Нам доверяют» */
.ds-tile--rate { grid-column: 1 / -1; min-height: 0; padding: 20px; background: var(--base-0-color); border: 1px solid var(--base-40-color); }
.ds-rate { display: flex; align-items: center; gap: 12px; }
.ds-rate b { font-size: var(--f44); line-height: 1; font-weight: 700; letter-spacing: -0.03em; color: var(--base-100-color); }
.ds-stars { display: flex; gap: 2px; }
.ds-stars svg { width: 18px; height: 18px; color: var(--accent-2-100-color); }
.ds-tile--rate p { margin-top: 10px; font-size: var(--f15); color: var(--base-80-color); }
.ds-logos-row { display: flex; align-items: center; gap: 18px; margin-top: 14px; }
.ds-logos-row img { height: 26px; width: auto; }
.ds-logos-row img[alt="ПроДокторов"] { height: 18px; }
.ds-num { min-height: 0; }
.ds-num b { display: block; margin-bottom: 8px; font-size: var(--f30); line-height: 1; font-weight: 700; letter-spacing: -0.03em; color: var(--accent-1-100-color); white-space: nowrap; }
.ds-num h3 { font-size: var(--f16); }
.ds-num p { margin-top: 2px; }
.ds-tile--award, .ds-tile--line { grid-column: 1 / -1; min-height: 0; display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: center; padding: 16px 18px; }
.ds-tile--award { background: var(--accent-1-10-color); }
.ds-tile--line { background: var(--base-0-color); border: 1px solid var(--base-40-color); }
.ds-award { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--base-0-color); }
.ds-tile--line .ds-award { background: var(--accent-1-10-color); }
.ds-award .ds-ico { width: 28px; height: 28px; margin: 0; }
.ds-tile--award h3, .ds-tile--line h3 { font-size: var(--f16); }
.ds-tile--award p, .ds-tile--line p { margin-top: 2px; }

/* врачи: образование и слова самих врачей */
.ds-docs { display: grid; gap: 12px; margin-top: 16px; }
.ds-doc { padding: 18px; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-doc__head { display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; }
.ds-doc__ava { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--accent-1-10-color); }
.ds-doc__ava img { width: 100%; height: 150%; object-fit: cover; object-position: 50% 0; }
.ds-doc__head b { display: block; font-size: var(--f16); line-height: 1.3; font-weight: 600; color: var(--base-100-color); }
.ds-doc__head span span { display: block; font-size: var(--f14); color: var(--base-80-color); }
.ds-doc__list { display: grid; gap: 10px; margin-top: 14px; }
.ds-doc__list li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: var(--f14); line-height: 1.4; color: var(--base-100-color); }
.ds-doc__list .ds-ico { width: 22px; height: 22px; }
.ds-quote { margin: 14px 0 0; padding: 14px 16px; border-radius: var(--border-radius-16); background: var(--base-0-color); font-size: var(--f15); line-height: 1.45; color: var(--base-100-color); }

/* что входит в первый этап */
.ds-incl { margin-top: 12px; padding: 18px; border-radius: var(--border-radius-24); border: 1px solid var(--base-40-color); background: var(--base-0-color); }
.ds-incl h3 { font-size: var(--f17); font-weight: 600; color: var(--base-100-color); }
.ds-incl ul { display: grid; gap: 10px; margin-top: 12px; }
.ds-incl li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: center; font-size: var(--f15); color: var(--base-100-color); }
.ds-incl .ds-ico { width: 22px; height: 22px; }
.ds-incl p { margin-top: 12px; font-size: var(--f13); line-height: 1.4; color: var(--base-80-color); }

/* гарантии */
.ds-tile--g { min-height: 250px; }
.ds-tile--g h3 { max-width: 270px; font-size: var(--f24); }
.ds-tile--g p { max-width: 290px; }
.ds-tile--g img { right: 8px; bottom: -84px; width: 96px; transform: rotate(12deg); }
.ds-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-size: var(--f15); font-weight: 600; color: var(--accent-1-100-color); text-decoration: none; }
.ds-link .ds-ico { width: 16px; height: 16px; }
.ds-plat { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.ds-tile--rate .ds-stars .ds-ico { width: 20px; height: 20px; margin: 0; color: var(--accent-2-100-color); }

/* v3: гарантии наверху, врачи без образования, «без конвейера» */
.ds-tile--peach { background: var(--accent-2-20-color); }
.ds-num b.ds-money { color: var(--accent-2-100-color); }
.ds-crew { padding: 18px; border-radius: var(--border-radius-24); border: 1px solid var(--base-40-color); }
.ds-crew .ds-rate b { font-size: var(--f30); }
.ds-crew .ds-stars .ds-ico { width: 18px; height: 18px; color: var(--accent-2-100-color); }
.ds-crew p { margin-top: 8px; font-size: var(--f15); line-height: 1.45; color: var(--base-80-color); }
.ds-care { margin-top: 0; gap: 18px; }
.ds-care li { align-items: start; }
.ds-care b { font-size: var(--f17); }
.ds-care span span { margin-top: 2px; font-size: var(--f15); line-height: 1.4; }
/* два синих подряд — много: «чем удобен» на голубом, гарантия остаётся синей */
.ds-tile--soft { background: var(--accent-1-10-color); color: var(--base-100-color); }
.ds-tile--soft h3 { color: var(--base-100-color); }
.ds-tile--soft p { color: var(--base-80-color); opacity: 1; }
.ds-tile--g { min-height: 206px; }
.ds-tile--g img { right: 14px; bottom: -70px; width: 104px; }

/* v4: один акцент — синий кита в оттенках; оранжевого и персикового нет; мелких значков нет */
.ds-badge { background: var(--base-0-color); color: var(--accent-1-100-color);
  box-shadow: 0 2px 4px rgba(24, 33, 63, .05), 0 12px 28px rgba(24, 33, 63, .09); }
.ds-badge s { color: var(--base-60-color); opacity: 1; }
.ds-badge b { color: var(--accent-1-100-color); }
.ds-pay img, .ds-perk .ds-logos img { filter: grayscale(1); opacity: .55; }

.ds-tile--light h3, .ds-tile--gray h3 { font-size: var(--f20); }
.ds-bento > .ds-tile--light:not(.ds-num), .ds-bento > .ds-tile--gray:not(.ds-num) { display: flex; flex-direction: column; justify-content: flex-end; min-height: 128px; }
.ds-num b.ds-money { color: var(--accent-1-100-color); }

.ds-doc__list { gap: 0; margin-top: 12px; }
.ds-doc__list li { display: block; padding: 10px 0; font-size: var(--f15); line-height: 1.4; }
.ds-doc__list li + li { border-top: 1px solid var(--base-40-color); }

.ds-care li { grid-template-columns: 52px 1fr; }
.ds-no { font-size: var(--f30); line-height: 1; font-weight: 700; letter-spacing: -0.02em; color: var(--accent-1-100-color); }

.ds-incl ul { gap: 0; }
.ds-incl li { display: flex; align-items: center; gap: 12px; padding: 9px 0; }
.ds-incl li + li { border-top: 1px solid var(--base-40-color); }
.ds-incl li::before { content: ''; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--accent-1-100-color); }

.ds-price { background: var(--accent-1-100-color); color: var(--base-0-color); }
.ds-price__stage { color: rgba(255, 255, 255, .8); }
.ds-price__sum b, .ds-price__sum--two b { color: var(--base-0-color); }
.ds-price__sum s { color: rgba(255, 255, 255, .5); }
.ds-price__what { color: var(--base-0-color); }
.ds-price hr { background: rgba(255, 255, 255, .2); }
.ds-mats .ds-pill { background: rgba(255, 255, 255, .2); color: var(--base-0-color); }
.ds-mats .ds-pill b { color: var(--base-0-color); }
.ds-sys li strong { color: var(--accent-1-100-color); }
.ds-perk--bonus { background: var(--accent-1-10-color); }
.ds-perk--bonus b { color: var(--accent-1-100-color); }
.ds-perk--bonus p { max-width: none; }

.ds-cta__zero { background: var(--base-0-color); color: var(--accent-1-100-color); box-shadow: none; }
.ds-bento .ds-num h3 { font-size: var(--f16); }
.ds-care .ds-no { font-size: var(--f30); }
.ds-care .ds-no { color: var(--accent-1-100-color); }

/* v5: шаги различимы — номер, чередование тонов, ключевые этапы синие; фото клиники */
.ds-step { flex: 0 0 236px; }
.ds-step__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ds-step__n { font-size: var(--f40); line-height: 1; font-weight: 700; letter-spacing: -0.03em; color: var(--accent-1-100-color); }
.ds-rail .ds-step:nth-child(even) { background: var(--accent-1-10-color); }
.ds-rail .ds-step--key { background: var(--accent-1-100-color); }
.ds-step--key .ds-step__n, .ds-step--key h3, .ds-step--key p { color: var(--base-0-color); }
.ds-step--key p { opacity: .85; }
.ds-photo { flex: 0 0 280px; margin: 0; scroll-snap-align: start; }
.ds-photo img { width: 280px; height: 200px; object-fit: cover; border-radius: var(--border-radius-24); }
.ds-photo figcaption { margin-top: 8px; font-size: var(--f14); color: var(--base-80-color); }
.ds-rail .ds-step.ds-step--key { background: var(--accent-1-100-color); }
.ds-rail { scroll-padding-inline: 20px; }   /* без этого привязка прокрутки прижимает первую карточку к краю экрана */

/* 3D-предметы в плитках (14.10) */
.ds-tile .ds-obj { position: absolute; pointer-events: none; }
.ds-bento > .ds-has-obj { padding-bottom: 104px; }
.ds-obj--protez { right: -18px; bottom: -14px; width: 150px; }
.ds-obj--implant { right: 22px; bottom: -46px; width: 54px; transform: rotate(14deg); }
.ds-bento > .ds-tile--light:not(.ds-num), .ds-bento > .ds-tile--gray:not(.ds-num) { min-height: 214px; }
.ds-obj--podushka { top: -8px; right: -22px; width: 140px; transform: rotate(-8deg); }
.ds-obj--yabloko { top: -6px; right: -16px; width: 118px; }
.ds-care li { grid-template-columns: 64px 1fr; }
.ds-care .ds-thumb { display: grid; place-items: center; width: 64px; height: 64px; }
.ds-care .ds-thumb img { max-width: 64px; max-height: 64px; }
.ds-bento > .ds-tile--light:not(.ds-num), .ds-bento > .ds-tile--gray:not(.ds-num) { min-height: 226px; }
.ds-obj--yabloko { top: -10px; right: -18px; width: 106px; }

/* 14.10, день: карточки врачей, доверие, работы врачей */
.ds-doc__head .ds-doc__role { display: block; margin-bottom: 2px; font-size: var(--f12); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent-1-100-color); }
.ds-doc .ds-quote { position: relative; margin: 18px 0 0; padding: 0 0 0 34px; border-radius: 0; background: none; font-size: var(--f17); line-height: 1.45; font-weight: 500; color: var(--base-100-color); }
.ds-doc .ds-quote::before { content: '\201C'; position: absolute; left: -2px; top: -8px; font-size: calc(60 / var(--initial-font-multiplier) * 1rem); line-height: 1; font-weight: 700; color: var(--accent-1-100-color); }
.ds-spec { display: grid; margin: 16px 0 0; }
.ds-spec > div { display: grid; grid-template-columns: 118px 1fr; gap: 12px; align-items: baseline; padding: 11px 0; border-top: 1px solid var(--base-40-color); }
.ds-spec dt { font-size: var(--f17); line-height: 1.3; font-weight: 700; letter-spacing: -0.01em; color: var(--accent-1-100-color); }
.ds-spec dd { margin: 0; font-size: var(--f14); line-height: 1.4; color: var(--base-80-color); }
.ds-trust .ds-tile { min-height: 0; }
.ds-trust .ds-big { display: block; font-size: var(--f40); line-height: 1; font-weight: 700; letter-spacing: -0.03em; color: var(--base-100-color); }
.ds-trust .ds-stars { display: flex; gap: 3px; margin-top: 10px; }
.ds-trust .ds-stars svg { width: 18px; height: 18px; fill: currentColor; color: var(--accent-1-100-color); }
.ds-trust p { margin-top: 10px; font-size: var(--f14); line-height: 1.35; color: var(--base-80-color); }
.ds-tile--blue { background: var(--accent-1-100-color); }
.ds-trust .ds-tile--blue .ds-big, .ds-tile--blue h3 { color: var(--base-0-color); }
.ds-tile--blue h3 { margin-top: 6px; font-size: var(--f18); }
.ds-trust .ds-tile--blue p { margin-top: 4px; color: var(--base-0-color); opacity: .82; }
.ds-case { flex: 0 0 300px; scroll-snap-align: start; padding: 8px 8px 12px; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-cmp { position: relative; height: 188px; overflow: hidden; border-radius: var(--border-radius-16); }
.ds-cmp img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ds-cmp .ds-cmp__after { clip-path: inset(0 0 0 var(--x)); }
.ds-cmp__line { position: absolute; top: 0; bottom: 0; left: var(--x); width: 2px; margin-left: -1px; background: var(--base-0-color); }
.ds-cmp__knob { position: absolute; top: 50%; left: var(--x); display: grid; place-items: center; width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%; background: var(--base-0-color); box-shadow: 0 2px 4px rgba(24,33,63,.05), 0 12px 28px rgba(24,33,63,.09); }
.ds-cmp__knob svg { width: 18px; height: 18px; fill: none; stroke: var(--accent-1-100-color); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.ds-cmp__lab { position: absolute; bottom: 10px; display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 100px; background: rgba(255,255,255,.88); font-size: var(--f13); font-weight: 600; color: var(--base-100-color); }
.ds-cmp__lab--l { left: 10px; }
.ds-cmp__lab--r { right: 10px; }
.ds-case__docs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.ds-chip { display: grid; grid-template-columns: 32px 1fr; gap: 8px; align-items: center; padding: 6px 8px 6px 6px; border-radius: 100px; background: var(--base-0-color); font-size: var(--f12); line-height: 1.25; color: var(--base-80-color); }
.ds-chip b { display: block; font-size: var(--f13); font-weight: 600; color: var(--base-100-color); white-space: nowrap; }
.ds-chip__ava { display: block; width: 32px; height: 32px; overflow: hidden; border-radius: 50%; background: var(--accent-1-10-color); }
.ds-chip__ava img { width: 100%; height: 150%; object-fit: cover; object-position: 50% 0; }
.ds-case--more { display: grid; align-content: end; gap: 4px; padding: 20px; background: var(--accent-1-10-color); text-decoration: none; }
.ds-case--more b { font-size: var(--f20); font-weight: 600; color: var(--base-100-color); }
.ds-case--more span { font-size: var(--f14); font-weight: 600; color: var(--accent-1-100-color); }
.ds-bento.ds-trust > .ds-tile { display: block; min-height: 0; }
.ds-spec > div { grid-template-columns: 132px 1fr; }

/* 14.10, после обеда: цена у каждого своя, регалии, импланты дугой */
.ds-note { margin-top: 12px; padding: 18px; border-radius: var(--border-radius-24); background: var(--accent-1-10-color); }
.ds-note h3 { font-size: var(--f18); line-height: 1.3; font-weight: 600; color: var(--base-100-color); }
.ds-note p { margin-top: 6px; font-size: var(--f15); line-height: 1.45; color: var(--base-100-color); }
.ds-reg { display: grid; margin-top: 16px; }
.ds-reg li { position: relative; display: grid; gap: 2px; padding: 12px 0 12px 16px; border-top: 1px solid var(--base-40-color); }
.ds-reg li::before { content: ''; position: absolute; left: 0; top: 19px; width: 6px; height: 6px; border-radius: 50%; background: var(--accent-1-100-color); }
.ds-reg b { font-size: var(--f16); line-height: 1.3; font-weight: 600; color: var(--base-100-color); }
.ds-reg span { font-size: var(--f14); line-height: 1.4; color: var(--base-80-color); }
.ds-tile--wide .ds-arc { position: absolute; right: 18px; bottom: -40px; display: flex; align-items: flex-end; gap: 10px; }
.ds-tile--wide .ds-arc img { position: static; width: 34px; transform: none; }
.ds-tile--wide .ds-arc img:first-child { transform: rotate(-32deg) translate(6px, 4px); }
.ds-tile--wide .ds-arc img:last-child { transform: rotate(32deg) translate(-6px, 4px); }
.ds-tile--wide .ds-arc { right: 22px; bottom: -22px; gap: 16px; }
.ds-tile--wide .ds-arc img { width: 46px; }
.ds-tile--wide .ds-arc img:first-child { transform: rotate(-38deg) translate(10px, 8px); }
.ds-tile--wide .ds-arc img:last-child { transform: rotate(38deg) translate(-10px, 8px); }

/* 14.10: протез David на первом экране — он шире стоковой челюсти */
.ds-hero__media .ds-hero__protez { right: -36px; bottom: 4px; width: 280px; }
.ds-obj--protez { width: 168px; }

/* 16.10: сертификат и четыре импланта из Gemini */
.ds-tile--wide .ds-chetyre { right: 8px; bottom: -14px; width: 250px; transform: none; }

/* 16.10, вечер: бланк без надписи, протез в «10 лет» крупнее */
.ds-tile--wide.ds-tile--g { min-height: 316px; }
.ds-tile--wide .ds-garantiya { right: -18px; bottom: -14px; width: 214px; transform: none; }
.ds-bento > .ds-num.ds-has-obj { padding-bottom: 134px; }
.ds-obj--protez { right: -36px; bottom: -14px; width: 196px; }

/* 16.10: цена — два шага во времени: сейчас (синяя) → 6 месяцев (пунктир) → потом (белая) */
.ds-price__stage .ds-pill { flex: none; }
.ds-price__stage b { font-weight: 600; color: var(--base-0-color); }
.ds-price .ds-price__what { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .2); font-size: var(--f14); opacity: .8; }
.ds-price__list { display: grid; gap: 8px; margin-top: 10px; }
.ds-price__list li { position: relative; padding-left: 18px; font-size: var(--f15); line-height: 1.35; color: var(--base-0-color); }
.ds-price__list li::before { content: ''; position: absolute; left: 2px; top: .5em; width: 7px; height: 7px; border-radius: 50%; background: var(--base-0-color); }
.ds-gap { margin-left: 32px; padding: 18px 0 18px 20px; border-left: 2px dashed var(--accent-1-100-color); }
.ds-gap b { display: block; font-size: var(--f16); font-weight: 600; color: var(--accent-1-100-color); }
.ds-gap span { display: block; margin-top: 2px; font-size: var(--f14); line-height: 1.4; color: var(--base-80-color); }
.ds-price--later { background: var(--base-0-color); border: 1px solid var(--base-40-color); color: var(--base-100-color); }
.ds-price--later .ds-price__stage { color: var(--base-80-color); }
.ds-price--later .ds-price__stage b { color: var(--base-100-color); }
.ds-price--later .ds-price__sum b { font-size: var(--f30); color: var(--accent-1-100-color); }
.ds-price--later .ds-price__sum s { color: var(--base-60-color); }
.ds-price--later .ds-price__what { margin-top: 6px; padding-top: 0; border-top: 0; font-size: var(--f15); opacity: 1; color: var(--base-100-color); }
.ds-price--later .ds-mats .ds-pill { background: var(--accent-1-10-color); color: var(--base-100-color); }
.ds-price--later .ds-mats .ds-pill b { color: var(--accent-1-100-color); }

/* 16.10: «За что вы платите» — состав All-on-4 */
.ds-sostav .ds-tile--wide { min-height: 0; }
.ds-sostav .ds-tile--wide p { max-width: 300px; }
.ds-sostav__mu { padding-bottom: 118px; }
.ds-sostav .ds-sostav__mu .ds-sostav__img { right: 34px; bottom: -64px; width: 64px; transform: rotate(58deg); }
.ds-sostav .ds-tile--blue.ds-num b, .ds-sostav .ds-tile--blue.ds-num h3 { color: var(--base-0-color); }
.ds-sostav .ds-tile--blue.ds-num p { color: var(--base-0-color); opacity: .82; }
.ds-sostav .ds-tile--line { background: var(--base-0-color); border: 1px solid var(--base-40-color); color: var(--base-100-color); }
.ds-sostav .ds-tile--line h3 { color: var(--base-100-color); }
.ds-sostav .ds-tile--line p { color: var(--base-80-color); opacity: 1; }
.ds-sostav__beam { padding-bottom: 170px; }
.ds-sostav .ds-sostav__beam .ds-sostav__img { right: -6px; bottom: -18px; width: 236px; transform: none; }
.ds-sostav__opt { display: flex; flex-direction: column; min-height: 0; padding: 12px 14px 16px; }
.ds-sostav__opt img { width: 100%; height: 92px; object-fit: contain; margin-bottom: 8px; }
.ds-sostav__opt h3 { font-size: var(--f16); }
.ds-sostav__opt p { margin-top: 2px; font-size: var(--f14); line-height: 1.35; }
.ds-sostav__care { margin-top: 12px; padding: 16px 18px; border-radius: var(--border-radius-24); background: var(--accent-1-10-color); font-size: var(--f15); line-height: 1.45; color: var(--base-100-color); }
.ds-sostav__care b { font-weight: 600; color: var(--accent-1-100-color); }
/* 16.10: плитки состава — не как награды (те растянуты в строку с иконкой) */
.ds-sostav .ds-tile--line { display: block; grid-column: auto; text-align: left; }
.ds-sostav .ds-tile--wide.ds-tile--line { grid-column: 1 / -1; }
.ds-sostav .ds-sostav__opt { display: flex; flex-direction: column; }
.ds-sostav__mu { padding-bottom: 104px; }
.ds-sostav .ds-sostav__mu .ds-sostav__img { right: 52px; bottom: -44px; width: 44px; transform: rotate(58deg); }
.ds-sostav .ds-sostav__opt { align-items: stretch; }

/* 16.10, ночь: временный протез — своей плиткой с картинкой в разобранном виде, постоянный — текстом и вариантами */
.ds-sostav .ds-tile--wide.ds-tile--line h3 { max-width: 300px; font-size: var(--f24); }
.ds-sostav .ds-tile--wide.ds-tile--line p { margin-top: 8px; font-size: var(--f15); }
.ds-sostav__vrem { padding-bottom: 214px; }
.ds-sostav .ds-sostav__vrem .ds-sostav__img { right: 0; bottom: -30px; width: 268px; transform: none; }
.ds-sostav .ds-sostav__opt { padding: 16px 14px 16px; }
.ds-sostav .ds-sostav__opt img { width: calc(100% + 16px); height: auto; margin: 0 -8px 14px; }

.ds-sostav .ds-sostav__opt { gap: 0; }

/* ===== 16.10: компьютер. Плитки в четыре колонки (широкая — на две), шаги и работы без прокрутки,
   цена — два этапа рядом слева направо, запись — форма справа ===== */
@media (min-width: 1024px) {
  .ds {
    --f32: calc(32 / var(--initial-font-multiplier) * 1rem);
    --f48: calc(48 / var(--initial-font-multiplier) * 1rem);
    --f56: calc(56 / var(--initial-font-multiplier) * 1rem);
  }
  .ds section { padding-block: 44px; }
  .ds-head { margin-bottom: 28px; }
  .ds-h2 { font-size: var(--f40); }
  .ds-sub { font-size: var(--f18); }

  /* первый экран: текст слева, протез справа, кнопка внутри карточки */
  .ds-hero { padding-top: 8px !important; }
  .ds-hero__card { min-height: 540px; padding: 56px 64px 176px; }
  .ds-hero__title { margin-top: 22px; font-size: var(--f56); }
  .ds-hero__lead { max-width: 480px; margin-top: 16px; font-size: var(--f20); }
  .ds-badge { position: relative; left: auto; bottom: auto; transform: none; display: inline-grid; margin-top: 28px; }
  .ds-hero__media img { right: 72px; bottom: -14px; width: 540px; }
  .ds-hero .ds-btn { position: relative; width: 360px; margin: -140px 0 0 64px; }
  .ds-hero .ds-pay { position: relative; justify-content: flex-start; margin: 16px 0 0 64px; }

  /* плитки */
  .ds-bento { grid-template-columns: repeat(4, 1fr); gap: 16px; }
  .ds-tile { padding: 28px; }
  .ds-tile p { font-size: var(--f16); }
  .ds-tile--wide { grid-column: span 2; min-height: 320px; padding: 32px; }
  .ds-tile--wide h3, .ds-tile--g h3 { max-width: 440px; font-size: var(--f32); }
  .ds-tile--wide p, .ds-tile--g p { max-width: 420px; font-size: var(--f17); }
  .ds-tile--light h3, .ds-tile--gray h3 { font-size: var(--f24); }
  .ds-num b { margin-bottom: 12px; font-size: var(--f48); }
  .ds-bento .ds-num h3 { font-size: var(--f20); }
  .ds-tile--wide.ds-tile--g { min-height: 340px; }
  .ds-tile--wide .ds-garantiya { right: 16px; bottom: -22px; width: 300px; }
  .ds-bento > .ds-num.ds-has-obj { padding-bottom: 28px; }
  .ds-obj--protez { right: -24px; bottom: -18px; width: 290px; }
  .ds-obj--implant { right: 48px; bottom: -70px; width: 86px; }
  .ds-tile--wide .ds-chetyre { right: 28px; bottom: -16px; width: 360px; }
  .ds-bento > .ds-tile--light:not(.ds-num), .ds-bento > .ds-tile--gray:not(.ds-num) { min-height: 320px; }
  .ds-obj--podushka { top: -10px; right: -30px; width: 230px; }
  .ds-obj--yabloko { top: -12px; right: -22px; width: 180px; }

  /* шаги и работы — всё сразу, без прокрутки вбок */
  .ds-rail { overflow: visible; margin: 0; padding: 0; scroll-snap-type: none; }
  .ds-rail:has(.ds-step) { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
  .ds-rail:has(.ds-case) { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .ds-step, .ds-case { flex: none; }
  .ds-dots { display: none; }
  .ds-cmp { height: 300px; }

  /* врачи */
  .ds-team { height: 440px; }
  .ds-team > img { width: 600px; }
  .ds-name--l { left: calc(50% - 420px); bottom: 28px; }
  .ds-name--r { right: calc(50% - 420px); bottom: 28px; }
  .ds-docs { grid-template-columns: 1fr 1fr; gap: 16px; }
  .ds-doc { padding: 28px; }
  .ds-docs > .ds-trust { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }

  /* цена: 1 этап слева, через 6 месяцев — 2 этап справа; ниже системы и условия */
  .ds-price-wrap .container { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; align-items: start;
    grid-template-areas: "head head" "p1 gap" "p1 p2" "systt note" "sys note" "sys perks" "btn btn"; }
  .ds-price-wrap .ds-head { grid-area: head; }
  .ds-price-wrap .ds-price { grid-area: p1; padding: 32px; }
  .ds-price-wrap .ds-gap { grid-area: gap; margin: 0 0 16px; padding: 10px 0 10px 22px; }
  .ds-price-wrap .ds-price--later { grid-area: p2; }
  .ds-price-wrap .ds-sys__title { grid-area: systt; margin-top: 28px; }
  .ds-price-wrap .ds-sys { grid-area: sys; }
  .ds-price-wrap .ds-note { grid-area: note; margin-top: 28px; padding: 24px; }
  .ds-price-wrap .ds-perks { grid-area: perks; }
  .ds-price-wrap .ds-btn { grid-area: btn; justify-self: center; width: 420px; margin-top: 32px; }

  /* за что вы платите: импланты | временный; 5 дней | 6 мес. | постоянный; варианты — по половине */
  .ds-sostav .ds-tile--wide p { max-width: 340px; }
  .ds-sostav .ds-tile--wide.ds-tile--line h3 { max-width: 320px; font-size: var(--f32); }
  .ds-sostav .ds-tile--wide.ds-tile--line p { max-width: 320px; font-size: var(--f17); }
  .ds-sostav__mu, .ds-sostav__vrem { padding-bottom: 32px; }
  .ds-sostav .ds-sostav__mu .ds-sostav__img { right: 120px; bottom: -40px; width: 62px; transform: rotate(22deg); }
  .ds-sostav .ds-sostav__vrem .ds-sostav__img { right: 12px; bottom: -40px; width: 320px; }
  .ds-sostav .ds-sostav__opt { grid-column: span 2; display: grid; grid-template-columns: 300px 1fr; grid-template-rows: 1fr 1fr;
    column-gap: 32px; padding: 28px 32px; }
  .ds-sostav .ds-sostav__opt img { grid-row: 1 / -1; align-self: center; width: 300px; margin: 0; }
  .ds-sostav .ds-sostav__opt h3 { align-self: end; font-size: var(--f24); }
  .ds-sostav .ds-sostav__opt p { align-self: start; margin-top: 6px; font-size: var(--f16); }

  /* вопросы — в две колонки */
  .ds-faq { grid-template-columns: 1fr 1fr; gap: 12px 16px; }
  .ds-faq li { padding: 20px 24px; font-size: var(--f17); }

  /* запись: слева призыв, справа форма */
  .ds-cta { display: grid; grid-template-columns: 1fr 440px; grid-template-rows: auto auto 1fr; column-gap: 64px; padding: 48px 56px; }
  .ds-cta__zero { position: static; grid-column: 1; grid-row: 1; justify-self: start; margin-bottom: 20px; }
  .ds-cta h2 { grid-column: 1; grid-row: 2; max-width: none; font-size: var(--f40); }
  .ds-cta p { grid-column: 1; grid-row: 3; max-width: 520px; font-size: var(--f18); }
  .ds-cta .ds-field { grid-column: 2; grid-row: 1; margin-top: 0; }
  .ds-cta .ds-agree { grid-column: 2; grid-row: 2; }
  .ds-cta .ds-btn { grid-column: 2; grid-row: 3; align-self: start; }

  /* правки после первого снимка */
  .ds-sostav .ds-tile--wide.ds-tile--line { grid-column: span 2; }
  .ds-docs .ds-bento.ds-trust > .ds-tile { min-height: 0; }
  .ds-tile--wide.ds-tile--g h3, .ds-tile--wide.ds-tile--g p { max-width: 360px; }
  .ds-tile--wide .ds-garantiya { right: 12px; bottom: -30px; width: 270px; }
  .ds-sostav .ds-tile--line.ds-sostav__post h3, .ds-sostav .ds-tile--line.ds-sostav__post p { max-width: 480px; }
  .ds-sostav .ds-sostav__mu .ds-sostav__img { bottom: -88px; }
}

/* 16.10, ночь-2: постоянный — три варианта (вернулась дуга цирконий без балки), листаются вбок */
.ds-opts { margin-top: 10px; }
.ds-sostav .ds-opts .ds-sostav__opt { flex: 0 0 236px; scroll-snap-align: start; min-height: 0; }
@media (min-width: 1024px) {
  .ds-rail.ds-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 16px; }
  .ds-sostav .ds-opts .ds-sostav__opt { grid-column: auto; display: flex; flex-direction: column; padding: 24px 28px 28px; }
  .ds-sostav .ds-opts .ds-sostav__opt img { width: 100%; max-width: 340px; margin: 0 auto 20px; }
  .ds-sostav .ds-opts .ds-sostav__opt h3, .ds-sostav .ds-opts .ds-sostav__opt p { align-self: auto; }
}

/* v25: первый экран — свой протез с 4 имплантами вместо стоковой челюсти; передние зубы над плашкой цены */
.ds-hero__card { min-height: 510px; }
.ds-hero__media img { right: 12px; bottom: 74px; width: 290px; }
@media (min-width: 1024px) {
  .ds-hero__card { min-height: 540px; }
  /* 19.10: у обеих акций на ПК одна картинка — 504 px (было 560 у All-on-4 и 420 у All-on-6; David: «на 20 % больше, чем у All-on-6, и свести») */
  .ds-hero__media img { right: 110px; bottom: 150px; width: 504px; }
}

/* ===== 17.10: компьютер по пути взгляда. Врачи — портрет рядом со своими словами и регалиями, цифры доверия
   в строке заголовка; работы — две крупные пары; цена — ровные колонки, кнопка под ценой; «за что вы платите» —
   две строки по этапам; вопросы — одним столбцом ===== */
.ds-etap { display: none; }
.ds-nw { white-space: nowrap; }
@media (min-width: 1024px) {
  /* врачи */
  .ds-vrachi .container { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
  .ds-vrachi .ds-head { grid-column: 1; grid-row: 1; align-self: end; }
  .ds-vrachi .ds-h2 { max-width: 560px; }
  .ds-vrachi .ds-team { display: none; }
  .ds-vrachi .ds-docs { display: contents; }
  .ds-vrachi .ds-docs > .ds-trust { grid-column: 2; grid-row: 1; justify-self: end; align-self: end; display: flex; gap: 12px; margin-bottom: 28px; }
  .ds-vrachi .ds-bento.ds-trust > .ds-tile { display: grid; grid-template-columns: auto auto; column-gap: 14px; align-items: center; min-height: 0; padding: 14px 22px; }
  .ds-vrachi .ds-trust .ds-big { grid-row: 1 / 3; font-size: var(--f40); }
  .ds-vrachi .ds-trust .ds-stars { margin-top: 0; }
  .ds-vrachi .ds-trust p { margin-top: 2px; }
  .ds-vrachi .ds-trust .ds-tile--blue h3 { margin-top: 0; font-size: var(--f17); }
  .ds-vrachi .ds-docs > .ds-doc { position: relative; overflow: hidden; min-height: 480px; padding: 36px 36px 32px 312px; border-radius: var(--border-radius-32); background: var(--accent-1-10-color); }
  .ds-vrachi .ds-docs > .ds-doc:nth-child(1) { grid-column: 1; grid-row: 2; }
  .ds-vrachi .ds-docs > .ds-doc:nth-child(2) { grid-column: 2; grid-row: 2; }
  .ds-vrachi .ds-doc__head { display: block; }
  .ds-vrachi .ds-doc__ava { position: absolute; left: 0; bottom: 0; width: 296px; height: 444px; border-radius: 0; background: none; }
  .ds-vrachi .ds-doc__ava img { height: 100%; object-fit: contain; object-position: 50% 100%; }
  .ds-vrachi .ds-doc__head .ds-doc__role { margin-bottom: 6px; }
  .ds-vrachi .ds-doc__head b { font-size: var(--f24); line-height: 1.2; letter-spacing: -0.01em; }
  .ds-vrachi .ds-doc .ds-quote { margin-top: 22px; }
  .ds-vrachi .ds-reg { margin-top: 22px; }

  /* работы врачей: две пары крупно, «ещё работы» — ссылкой в строке заголовка */
  .ds-raboty .container { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
  .ds-raboty .ds-head { grid-column: 1; grid-row: 1; }
  .ds-raboty .ds-rail { display: contents; }
  .ds-raboty .ds-case { grid-row: 2; padding: 10px 10px 14px; }
  .ds-raboty .ds-cmp { height: 340px; }
  .ds-raboty .ds-case__docs { gap: 10px; margin-top: 12px; }
  .ds-raboty .ds-case--more { grid-column: 2; grid-row: 1; justify-self: end; align-self: end; display: flex; align-items: baseline; gap: 6px; margin-bottom: 28px; padding: 0; background: none; }
  .ds-raboty .ds-case--more b, .ds-raboty .ds-case--more span { font-size: var(--f17); font-weight: 600; color: var(--accent-1-100-color); }

  /* цена: 1 этап | 6 месяцев + 2 этап — низ вровень; ниже системы | оговорка, рассрочка и кнопка — тоже вровень */
  .ds-price-wrap .container { align-items: stretch; row-gap: 16px; grid-template-rows: auto auto 1fr auto auto auto;
    grid-template-areas: "head head" "p1 gap" "p1 p2" "sys note" "sys perks" "sys btn"; }
  .ds-price-wrap .ds-head { margin-bottom: 12px; }
  .ds-price-wrap .ds-gap { margin: 0; align-self: start; }
  .ds-price-wrap .ds-price--later { padding: 32px; }
  .ds-price-wrap .ds-price--later .ds-mats { display: grid; gap: 0; margin-top: 16px; }
  .ds-price-wrap .ds-price--later .ds-mats .ds-pill { justify-content: space-between; height: auto; padding: 13px 0; border-radius: 0; background: none;
    border-top: 1px solid var(--base-40-color); font-size: var(--f16); }
  .ds-price-wrap .ds-price--later .ds-mats .ds-pill b { font-size: var(--f18); }
  /* заголовок систем и сама таблица — в одной ячейке, чтобы справа не было дыр */
  .ds-price-wrap .ds-sys__title { grid-area: sys; align-self: start; margin-top: 28px; }
  .ds-price-wrap .ds-sys { grid-area: sys; align-self: start; margin-top: 70px; }
  .ds-price-wrap .ds-sys li { padding: 12px 0; }
  .ds-price-wrap .ds-note { margin-top: 28px; }
  .ds-price-wrap .ds-perks { margin-top: 0; gap: 16px; }
  .ds-price-wrap .ds-btn { justify-self: stretch; align-self: end; width: auto; margin-top: 0; }

  /* за что вы платите: строка «1 этап» — импланты, временный, 5 дней, 6 месяцев; строка «2 этап» — постоянный и три варианта */
  .ds-sostav .container { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
    grid-template-rows: auto auto minmax(206px, auto) minmax(206px, auto) auto auto; }
  .ds-sostav .ds-head { grid-column: 1 / -1; grid-row: 1; margin-bottom: 8px; }
  .ds-sostav .ds-bento, .ds-sostav .ds-rail.ds-opts { display: contents; }
  .ds-sostav .ds-dots { display: none; }
  .ds-etap { display: block; grid-column: 1 / -1; font-size: var(--f17); line-height: 1.3; color: var(--base-80-color); }
  .ds-etap b { font-weight: 600; color: var(--base-100-color); }
  .ds-etap--1 { grid-row: 2; }
  .ds-etap--2 { grid-row: 5; margin-top: 24px; }
  .ds-sostav .ds-tile { margin: 0; }
  .ds-sostav .ds-sostav__mu { grid-column: 1; grid-row: 3 / 5; }
  .ds-sostav .ds-sostav__vrem { grid-column: 2 / 4; grid-row: 3 / 5; }
  .ds-sostav .ds-bento > .ds-num.ds-tile--light { grid-column: 4; grid-row: 3; }
  .ds-sostav .ds-bento > .ds-num.ds-tile--blue { grid-column: 4; grid-row: 4; }
  .ds-sostav .ds-tile--wide.ds-tile--line.ds-sostav__post { grid-column: 1; grid-row: 6; }
  .ds-sostav .ds-opts > .ds-sostav__opt:nth-child(1) { grid-column: 2; grid-row: 6; }
  .ds-sostav .ds-opts > .ds-sostav__opt:nth-child(2) { grid-column: 3; grid-row: 6; }
  .ds-sostav .ds-opts > .ds-sostav__opt:nth-child(3) { grid-column: 4; grid-row: 6; }
  /* карточки состава — белые с рамкой, цвет только у сроков */
  .ds-sostav .ds-tile--wide.ds-sostav__mu { background: var(--base-0-color); border: 1px solid var(--base-40-color); padding: 28px; }
  .ds-sostav .ds-sostav__mu h3, .ds-sostav .ds-tile--wide.ds-tile--line.ds-sostav__post h3 { font-size: var(--f24); }
  .ds-sostav .ds-sostav__mu p, .ds-sostav .ds-tile--wide.ds-tile--line.ds-sostav__post p { max-width: none; font-size: var(--f16); }
  .ds-sostav .ds-sostav__mu .ds-sostav__img { right: 40px; bottom: -92px; width: 64px; transform: rotate(24deg); }
  .ds-sostav .ds-tile--wide.ds-tile--line.ds-sostav__post { padding: 28px; }
  .ds-sostav .ds-opts .ds-sostav__opt { padding: 24px 24px 26px; }
  .ds-sostav .ds-opts .ds-sostav__opt img { max-width: 300px; height: 128px; object-fit: contain; margin: 0 auto 18px; }
  .ds-sostav .ds-opts .ds-sostav__opt h3 { font-size: var(--f20); }

  /* вопросы — одним столбцом справа, заголовок слева */
  .ds-voprosy .container { display: grid; grid-template-columns: 5fr 7fr; column-gap: 16px; align-items: start; }
  .ds-voprosy .ds-faq { grid-template-columns: 1fr; }
}

/* ===== 17.10, вечер: цена в два этапа одним блоком — когда → что получаете → сколько. «За что вы платите» влит сюда.
   На виду только две цены этапов; системы имплантов — свёрнуты, материалы — одной строкой ===== */
.ds-dva__grid { display: grid; }
.ds-st { position: relative; display: flex; flex-direction: column; padding: 20px; border-radius: var(--border-radius-32); }
.ds-st--1 { background: var(--accent-1-10-color); }
.ds-st--2 { background: var(--base-0-color); border: 1px solid var(--base-40-color); }
.ds-st__label { font-size: var(--f14); line-height: 1.3; color: var(--base-80-color); }
.ds-st__label b { font-weight: 600; color: var(--base-100-color); }
.ds-st__sum { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; }
.ds-st__sum b { font-size: var(--f40); line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; color: var(--accent-1-100-color); white-space: nowrap; }
.ds-st__sum b small { font-size: var(--f24); font-weight: 600; letter-spacing: 0; }
.ds-st__sum s { font-size: var(--f17); color: var(--base-60-color); white-space: nowrap; }
.ds-st__parts { display: grid; gap: 10px; margin-top: 16px; }
.ds-part { display: grid; grid-template-columns: 84px 1fr; gap: 14px; align-items: center; padding: 12px 14px 12px 10px; border-radius: var(--border-radius-24); background: var(--base-0-color); }
.ds-part__img { position: relative; display: grid; place-items: center; width: 84px; height: 84px; }
.ds-part__img img { max-width: 84px; max-height: 84px; width: auto; height: auto; }
.ds-part:first-child .ds-part__img img { max-height: 92px; transform: rotate(28deg); }
.ds-part__txt { display: grid; gap: 2px; }
.ds-part__when { justify-self: start; display: inline-flex; align-items: center; height: 24px; margin-bottom: 4px; padding: 0 10px; border-radius: 100px;
  background: var(--accent-1-10-color); font-size: var(--f12); font-weight: 600; color: var(--accent-1-100-color); }
.ds-part b { font-size: var(--f16); line-height: 1.3; font-weight: 600; color: var(--base-100-color); }
.ds-part__txt > span:last-child { font-size: var(--f13); line-height: 1.4; color: var(--base-80-color); }
.ds-st__also { margin-top: 14px; font-size: var(--f14); line-height: 1.45; color: var(--base-80-color); }
.ds-st__also b { font-weight: 600; color: var(--base-100-color); }
.ds-st__more { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 12px 16px;
  border-radius: var(--border-radius-16); background: var(--base-0-color); font-size: var(--f13); line-height: 1.35; color: var(--base-80-color); }
.ds-st__more b { display: block; font-size: var(--f15); font-weight: 600; color: var(--base-100-color); }
.ds-st__more .ds-ico { width: 20px; height: 20px; }
.ds-dva__line { margin-left: 32px; padding: 18px 0 18px 20px; border-left: 2px dashed var(--accent-1-100-color); font-size: var(--f14); line-height: 1.4; color: var(--base-80-color); }
.ds-dva__line b { display: block; font-size: var(--f16); font-weight: 600; color: var(--accent-1-100-color); }
.ds-dva__t1, .ds-dva__t2 { display: none; }
.ds-st__lead { margin-top: 10px; font-size: var(--f15); line-height: 1.45; color: var(--base-80-color); }
.ds-st__lead b { font-weight: 600; color: var(--base-100-color); }
.ds-vars { display: grid; margin-top: 10px; }
.ds-var { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--base-40-color); }
.ds-var img { width: 96px; height: 44px; object-fit: contain; }
.ds-var > span { font-size: var(--f13); line-height: 1.35; color: var(--base-80-color); }
.ds-var b { display: block; font-size: var(--f15); line-height: 1.3; font-weight: 600; color: var(--base-100-color); }
.ds-st__mats { padding-top: 12px; border-top: 1px solid var(--base-40-color); font-size: var(--f14); line-height: 1.45; color: var(--base-80-color); }
.ds-st__mats b { font-weight: 700; color: var(--accent-1-100-color); white-space: nowrap; }
.ds-dva__foot { margin-top: 16px; }
.ds-dva__note { font-size: var(--f13); line-height: 1.45; color: var(--base-80-color); }
.ds-dva__note b { font-weight: 600; color: var(--base-100-color); }
.ds-dva__cta { margin-top: 16px; }
.ds-dva__perks { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 10px; margin-top: 12px; font-size: var(--f14); color: var(--base-80-color); }
.ds-dva__perks img { width: auto; height: 24px; filter: grayscale(1); opacity: .55; }
.ds-dva__minus { margin-left: 6px; }
.ds-dva__minus b { font-weight: 700; color: var(--accent-1-100-color); }

@media (min-width: 1024px) {
  .ds-dva__grid { grid-template-columns: 3fr 2fr; column-gap: 24px; row-gap: 14px; }
  /* шкала времени над карточками: точка «1 этап» — пунктир «6 месяцев» — точка «2 этап» */
  .ds-dva__line { grid-column: 1 / -1; grid-row: 1; display: grid; grid-template-columns: auto 1fr calc((100% - 24px) * 2 / 5 + 24px);
    align-items: start; margin: 0; padding: 0; border: 0; }
  .ds-dva__t1, .ds-dva__t2 { display: block; position: relative; padding-left: 26px; font-size: var(--f17); line-height: 24px; color: var(--base-80-color); white-space: nowrap; }
  .ds-dva__t2 { margin-left: 24px; }
  .ds-dva__t1 b, .ds-dva__t2 b { display: inline; font-size: var(--f17); font-weight: 600; color: var(--base-100-color); }
  .ds-dva__t1::before, .ds-dva__t2::before { content: ''; position: absolute; left: -2px; top: 1px; width: 14px; height: 14px; border: 4px solid var(--accent-1-10-color);
    border-radius: 50%; background: var(--accent-1-100-color); }
  .ds-dva__mid { position: relative; margin: 11px 8px 0 12px; padding-top: 10px; text-align: center; font-size: var(--f14); line-height: 1.4; color: var(--base-80-color); }
  .ds-dva__mid::before { content: ''; position: absolute; left: 0; right: 6px; top: 0; border-top: 2px dashed var(--accent-1-100-color); }
  .ds-dva__mid::after { content: ''; position: absolute; right: 0; top: -5px; border: 6px solid transparent; border-left: 8px solid var(--accent-1-100-color); border-right: 0; }
  .ds-dva__mid b { display: inline; margin-right: 3px; font-size: var(--f14); }
  .ds-st { grid-row: 2; padding: 32px 36px 32px; }
  .ds-st--1 { grid-column: 1; }
  .ds-st--2 { grid-column: 2; }
  .ds-st__label { display: none; }
  .ds-st__sum { margin-top: 0; }
  .ds-st__sum b { font-size: var(--f56); }
  .ds-st__sum b small { font-size: var(--f32); }
  .ds-st__sum s { font-size: var(--f20); }
  .ds-st__parts { grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 24px; }
  .ds-part { grid-template-columns: 1fr; align-content: start; align-items: start; gap: 12px; padding: 16px 22px 24px; }
  .ds-part__img { width: 100%; height: 160px; }
  .ds-part__img img { max-width: 100%; max-height: 160px; }
  .ds-part:first-child .ds-part__img img { max-height: 178px; }
  .ds-part b { font-size: var(--f20); line-height: 1.25; }
  .ds-part__txt > span:last-child { margin-top: 4px; font-size: var(--f15); }
  .ds-st__also { margin-top: 20px; font-size: var(--f16); }
  .ds-st__more { margin-top: 16px; padding: 14px 20px; font-size: var(--f14); }
  .ds-st__lead { margin-top: 20px; font-size: var(--f16); }
  .ds-vars { margin-top: 14px; }
  .ds-var { grid-template-columns: 156px 1fr; gap: 18px; padding: 18px 0; }
  .ds-var img { width: 156px; height: 66px; }
  .ds-var b { font-size: var(--f18); }
  .ds-var > span { font-size: var(--f15); }
  .ds-st__mats { margin-top: auto; padding-top: 16px; font-size: var(--f16); }
  /* низ: оговорка слева, кнопка и рассрочка справа — под ценами */
  .ds-dva__foot { display: grid; grid-template-columns: 3fr 2fr; column-gap: 24px; align-items: center; margin-top: 24px; }
  .ds-dva__note { max-width: 680px; font-size: var(--f15); }
  .ds-dva__cta { margin-top: 0; }
  .ds-dva__perks { justify-content: flex-start; margin-top: 14px; }
}

/* ===== 17.10, вечер: «Кому подходит» сразу после первого экрана — текстом, без плиток: пауза для глаза перед гарантиями ===== */
.ds-komu__list { display: grid; }
.ds-komu__list li { position: relative; display: grid; gap: 4px; padding: 16px 0 16px 22px; border-top: 1px solid var(--base-40-color); }
.ds-komu__list li:last-child { border-bottom: 1px solid var(--base-40-color); }
.ds-komu__list li::before { content: ''; position: absolute; left: -4px; top: 19px; width: 10px; height: 10px; border: 4px solid var(--accent-1-10-color);
  border-radius: 50%; background: var(--accent-1-100-color); }
.ds-komu__list b { font-size: var(--f18); line-height: 1.3; font-weight: 600; color: var(--base-100-color); }
.ds-komu__list span { font-size: var(--f15); line-height: 1.4; color: var(--base-80-color); }
@media (min-width: 1024px) {
  .ds-komu .container { display: grid; grid-template-columns: 5fr 7fr; column-gap: 16px; align-items: start; }
  .ds-komu .ds-head { margin: 0; padding-top: 14px; }
  .ds-komu__list li { grid-template-columns: 1fr 1fr; column-gap: 24px; align-items: baseline; padding: 24px 0 24px 34px; }
  .ds-komu__list li::before { top: 29px; width: 12px; height: 12px; }
  .ds-komu__list b { font-size: var(--f24); letter-spacing: -0.01em; }
  .ds-komu__list span { font-size: var(--f17); }
}

/* ===== 17.10, ночь: сверка с китом. Белый поверх синего — только тона кита: 80% (Base/-20) и 20% (Base/-80), через переменные
   сайта (их подменяет версия для слабовидящих), без opacity. Подписи «Было/Стало» — белые. Отступы секций и H2 на ПК — как у
   сайта: page-section--sm (64px от 1440, 48px ниже) и --h2-font-size 44px, межстрочный 1.3, трекинг −0.03em ===== */
.ds {
  --ds-white-80: hsla(var(--base-0-color-h), var(--base-0-color-s), var(--base-0-color-l), .8);
  --ds-white-20: hsla(var(--base-0-color-h), var(--base-0-color-s), var(--base-0-color-l), .2);
}
.ds .ds-tile--wide.ds-tile--g p, .ds-trust .ds-tile--blue p, .ds-rail .ds-step--key p, .ds-cta p, .ds-cta__zero small, .ds-agree, .ds-field span {
  color: var(--ds-white-80); opacity: 1; }
.ds-field { background: var(--ds-white-20); }
.ds-cmp__lab { background: var(--base-0-color); }
@media (min-width: 1024px) {
  .ds section { padding-block: 48px; }
  .ds-h2 { font-size: var(--f44); line-height: 1.3; letter-spacing: -0.03em; }
}
@media (min-width: 1440px) {
  .ds section { padding-block: 64px; }
}

/* ===== 17.10, ночь: новая подушка — фото из Gemini (промт №12), прижата к правому нижнему углу, одеяло уходит за край;
   текст плитки — сверху ===== */
.ds-bento > .ds-tile:has(.ds-obj--podushka) { justify-content: flex-start; }
.ds-obj--podushka { top: auto; right: -26px; bottom: -22px; width: 164px; transform: none; }
@media (min-width: 1024px) {
  .ds-obj--podushka { top: auto; right: -36px; bottom: -38px; width: 272px; }
}

/* ===== 17.10, ночь-2: подушка и еда — в стиле 3D сайта (Gemini, образец — коллаж: имплант, брекет, микроскоп, протез):
   реалистичный 3D, спокойная фактура. Обе прижаты к нижнему краю плитки, одеяло и ручка вилки уходят за край; текст — сверху ===== */
.ds-bento > .ds-tile:has(.ds-obj--yabloko) { justify-content: flex-start; }
.ds-obj--podushka { top: auto; right: auto; left: -14px; bottom: -24px; width: 164px; transform: none; }
.ds-obj--yabloko { top: auto; right: 0; bottom: -22px; width: 158px; transform: none; }
@media (min-width: 1024px) {
  .ds-obj--podushka { top: auto; right: auto; left: -20px; bottom: -40px; width: 272px; }
  .ds-obj--yabloko { top: auto; right: -2px; bottom: -36px; width: 262px; }
}

/* ===== 17.10, ночь: мессенджеры у кнопки цены и в форме; цены у вариантов постоянного протеза ===== */
.ds-msg { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.ds-msg__label { grid-column: 1 / -1; font-size: var(--f14); line-height: 1.3; text-align: center; color: var(--base-80-color); }
.ds-msg__btn { display: flex; align-items: center; justify-content: center; gap: 8px; height: 48px; border: 1px solid var(--base-40-color);
  border-radius: var(--border-radius-16); background: var(--base-0-color); font-size: var(--f15); font-weight: 600; color: var(--base-100-color); text-decoration: none; }
.ds-msg__btn svg { width: 22px; height: 22px; flex: none; color: var(--accent-1-100-color); }
.ds-cta .ds-msg__label { color: var(--ds-white-80); }
.ds-cta .ds-msg__btn { border-color: transparent; background: var(--ds-white-20); color: var(--base-0-color); }
.ds-cta .ds-msg__btn svg { color: var(--base-0-color); }
.ds-var { grid-template-columns: 96px 1fr auto; }
.ds-var strong { font-size: var(--f15); font-weight: 700; color: var(--accent-1-100-color); white-space: nowrap; }
@media (min-width: 1024px) {
  .ds-dva__cta .ds-msg { margin-top: 14px; }
  .ds-dva__cta .ds-msg__label { text-align: left; }
  .ds-cta .ds-msg { grid-column: 2; grid-row: 4; margin-top: 12px; }
  .ds-cta .ds-msg__label { text-align: left; }
  .ds-var { grid-template-columns: 156px 1fr auto; }
  .ds-var strong { font-size: var(--f18); }
}
/* правки после снимка: подпись мессенджеров в форме — над кнопками (правило .ds-cta p её уводило в третью строку);
   значки на синем — на белой подложке (у MAX белое облачко внутри); «консультация» на белой плашке — синим */
.ds-cta .ds-msg__label { grid-column: 1 / -1; grid-row: 1; max-width: none; margin: 0; font-size: var(--f14); line-height: 1.3; }
.ds-cta .ds-msg__btn svg { box-sizing: border-box; width: 26px; height: 26px; padding: 2px; border-radius: 8px; background: var(--base-0-color); color: var(--accent-1-100-color); }
.ds-cta__zero small { color: var(--accent-1-100-color); }
@media (min-width: 1024px) {
  .ds-cta .ds-msg__label { font-size: var(--f14); }
  .ds-var { grid-template-columns: 124px 1fr auto; gap: 16px; }
  .ds-var img { width: 124px; height: 54px; }
}

/* ===== 17.10, ночь: цельность. Карточки — серый Base/20 (фон карточек в ките), голубой Accent-1/10 — только первый экран;
   первый этап цены — сплошной синий, как главные плитки кита; низ цены — одной карточкой; мессенджеры — значками в строке с кнопкой ===== */
.ds { --ds-white-50: hsla(var(--base-0-color-h), var(--base-0-color-s), var(--base-0-color-l), .5); }
.ds-tile--light, .ds-tile--soft, .ds-rail .ds-step:nth-child(even):not(.ds-step--key), .ds-case--more { background: var(--base-20-color); }
.ds-team { background: var(--base-20-color); }
/* кнопка и мессенджеры — одной строкой */
.ds-act { display: flex; gap: 8px; }
.ds-act .ds-btn { flex: 1; min-width: 0; margin: 0; }
.ds-act__ico { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border: 1px solid var(--base-40-color);
  border-radius: var(--border-radius-16); background: var(--base-0-color); }
.ds-act__ico svg { width: 26px; height: 26px; color: var(--accent-1-100-color); }
.ds-cta .ds-act { margin-top: 14px; }
.ds-cta .ds-act .ds-btn { margin: 0; }
.ds-cta .ds-act__ico { border-color: transparent; background: var(--ds-white-20); }
.ds-cta .ds-act__ico svg { box-sizing: border-box; padding: 2px; border-radius: 8px; background: var(--base-0-color); }
/* первый этап — сплошной синий */
.ds-st--1 { background: var(--accent-1-100-color); }
.ds-st--1 .ds-st__label { color: var(--ds-white-80); }
.ds-st--1 .ds-st__label b, .ds-st--1 .ds-st__sum b, .ds-st--1 .ds-st__also b { color: var(--base-0-color); }
.ds-st--1 .ds-st__sum s { color: var(--ds-white-50); }
.ds-st--1 .ds-st__also { color: var(--ds-white-80); }
/* низ цены — одной серой карточкой: оговорка, кнопка с мессенджерами, рассрочка */
.ds-dva__foot { margin-top: 16px; padding: 20px; border-radius: var(--border-radius-32); background: var(--base-20-color); }
.ds-dva__note { font-size: var(--f14); }
.ds-dva__cta { margin-top: 16px; }
.ds-dva__perks { margin-top: 14px; }
@media (min-width: 1024px) {
  .ds-dva__foot { display: grid; grid-template-columns: 3fr 2fr; column-gap: 48px; align-items: center; margin-top: 16px; padding: 28px 32px; }
  .ds-dva__note { max-width: none; font-size: var(--f16); }
  .ds-dva__cta { margin-top: 0; }
  .ds-cta .ds-act { grid-column: 2; grid-row: 3; align-self: start; margin-top: 0; }
}
@media (min-width: 1024px) {
  .ds-vrachi .ds-docs > .ds-doc { background: var(--base-20-color); }
}
/* телефон: в серой карточке цены кнопка со значками в одну строку — «Забронировать стоимость» не должна ломаться */
@media (max-width: 1023px) {
  .ds-dva__foot { padding: 18px 16px 16px; }
  .ds-act { gap: 6px; }
  .ds-act__ico { width: 48px; }
  .ds-act .ds-btn { padding: 0 6px; font-size: var(--f15); white-space: nowrap; }
}

/* ===== Перенос на сайт (17.10.2026): живые части вместо картинок макета ===== */
/* «С другими имплантами» — раскрывается, внутри цены первого этапа по системам */
.ds-st__more { display: block; padding: 0; }
.ds-st__more summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; list-style: none; cursor: pointer; }
.ds-st__more summary::-webkit-details-marker { display: none; }
.ds-st__more .ds-ico { flex: none; transition: transform .2s; }
.ds-st__more[open] .ds-ico { transform: rotate(180deg); }
.ds-st__sys { padding: 0 16px 6px; }
.ds-st__sys li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--base-40-color); }
.ds-st__sys li > span { font-size: var(--f13); line-height: 1.35; color: var(--base-60-color); }
.ds-st__sys b { display: block; font-size: var(--f15); font-weight: 600; color: var(--base-100-color); }
.ds-st__sys strong { font-size: var(--f16); font-weight: 700; color: var(--accent-1-100-color); white-space: nowrap; }
/* вопросы — из кабинета, раскрываются */
.ds-faq__item { border: 1px solid var(--base-40-color); border-radius: var(--border-radius-16); background: var(--base-0-color); }
.ds-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; list-style: none; cursor: pointer;
  font-size: var(--f16); line-height: 1.35; font-weight: 600; color: var(--base-100-color); }
.ds-faq__item summary::-webkit-details-marker { display: none; }
.ds-faq__item .ds-ico { width: 20px; height: 20px; flex: none; transition: transform .2s; }
.ds-faq__item[open] .ds-ico { transform: rotate(180deg); }
.ds-faq__answer { padding: 0 18px 16px; }
.ds-faq__answer p { font-size: var(--f15); line-height: 1.5; color: var(--base-80-color); }
.ds-faq__answer p + p { margin-top: 8px; }
/* шторка «было/стало» тянется */
.ds-cmp { cursor: ew-resize; touch-action: pan-y; user-select: none; }
.ds-cmp img { pointer-events: none; }
/* имена врачей — ссылки на их страницы */
.ds-doc__head b a { color: inherit; text-decoration: none; }
/* запись: настоящая форма сайта в синей карточке — без своей подложки и повторного заголовка; мессенджеры — значками */
.ds-cta__msg { display: flex; gap: 8px; margin-top: 16px; }
.ds-cta__form { margin-top: 18px; }
.ds-cta__form > div { padding: 0; border-radius: 0; background: none; box-shadow: none; }
.ds-cta__form > div > div:first-child { display: none; }
.ds-cta .ds-cta__form p { max-width: none; margin-top: 10px; font-size: var(--f13); line-height: 1.4; color: var(--ds-white-80); }
@media (min-width: 1024px) {
  .ds-st__more summary { padding: 14px 20px; }
  .ds-st__sys { padding: 0 20px 8px; }
  .ds-faq__item summary { padding: 20px 24px; font-size: var(--f17); }
  .ds-faq__answer { padding: 0 24px 20px; }
  .ds-faq__answer p { font-size: var(--f16); }
  .ds-cta { grid-template-rows: auto auto auto 1fr; }
  .ds-cta__msg { grid-column: 1; grid-row: 4; align-self: start; margin-top: 24px; }
  .ds-cta__form { grid-column: 2; grid-row: 1 / 5; margin-top: 0; }
}

/* ===== 17.10, тест: наведение. У сайта :where(a):hover { color: inherit } — того же веса, что .ds-btn, и стоит позже,
   поэтому белый текст кнопки темнел на синем («криво светятся»). Своё наведение — как у кнопок сайта:
   синяя → Accent-1/80, нажатие → Accent-1/120, текст белый; мессенджеры — рамка синеет, подложка ярче ===== */
.ds .ds-btn { transition: background-color var(--transition-time) var(--transition-effect); }
.ds .ds-btn:hover, .ds .ds-btn:focus-visible { background: var(--accent-1-80-color); color: var(--base-0-color); }
.ds .ds-btn:active { background: var(--accent-1-120-color); color: var(--base-0-color); }
.ds .ds-act__ico { transition: border-color var(--transition-time) var(--transition-effect), background-color var(--transition-time) var(--transition-effect); }
.ds .ds-act__ico:hover, .ds .ds-act__ico:focus-visible { border-color: var(--accent-1-100-color); background: var(--accent-1-10-color); }
.ds .ds-cta .ds-act__ico:hover, .ds .ds-cta .ds-act__ico:focus-visible { border-color: transparent; background: var(--ds-white-50); }

/* ===== 17.10, тест: «было/стало» меньше и по три в ряд; «Цены с другими имплантами» — видно, что нажимается ===== */
.ds-st__more summary { transition: background-color var(--transition-time) var(--transition-effect); border-radius: var(--border-radius-16); }
.ds-st__more b { color: var(--accent-1-100-color); }
.ds-st__go { flex: none; display: inline-flex; align-items: center; gap: 4px; height: 32px; padding: 0 8px 0 12px; border-radius: 100px;
  background: var(--accent-1-10-color); font-size: var(--f14); font-weight: 600; color: var(--accent-1-100-color); white-space: nowrap;
  transition: background-color var(--transition-time) var(--transition-effect), color var(--transition-time) var(--transition-effect); }
.ds-st__go::before { content: 'Показать'; }
.ds-st__more[open] .ds-st__go::before { content: 'Скрыть'; }
.ds-st__go .ds-ico { width: 18px; height: 18px; color: currentColor; }
.ds .ds-st__more summary:hover .ds-st__go { background: var(--accent-1-100-color); color: var(--base-0-color); }
@media (min-width: 1024px) {
  .ds-raboty .container { grid-template-columns: repeat(3, 1fr); }
  .ds-raboty .ds-head { grid-column: 1 / 3; }
  .ds-raboty .ds-case--more { grid-column: 3; }
  .ds-raboty .ds-cmp { height: 236px; }
  .ds-st__go::before { content: 'Показать цены'; }
}
.ds-st__more .ds-st__sys b { color: var(--base-100-color); }   /* названия систем в раскрытом списке — тёмные, синий только у заголовка строки */

/* ===== 17.10, All-on-6: в «Чем удобен» — шесть имплантов (собраны из картинки четырёх) ===== */
.ds-tile--wide .ds-shest { right: 10px; bottom: -14px; width: 300px; transform: none; }
@media (min-width: 1024px) {
  .ds-tile--wide .ds-shest { right: 24px; bottom: -16px; width: 440px; }
}

/* ===== 18.10, тест (David: «выглядит пусто», «лучше сереньким», синий блок «несуразный»):
   первый экран — серый фон, как у остальных акций (кит: Base/20 → Accent-1/10), и УТП галочками над ценой;
   запись — «0 ₽» ушло в заголовок, мессенджеры — одной белой плашкой без второй рамки ===== */
.ds-hero__card { background: linear-gradient(104deg, var(--base-20-color) 0%, var(--accent-1-10-color) 100%); }
.ds-hero__utp { position: relative; margin-top: 14px; }
.ds-hero__utp ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ds-hero__utp li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--f15); line-height: 1.4; color: var(--base-100-color); }
.ds-hero__utp .ds-ico { width: 22px; height: 22px; margin-top: -1px; }
.ds-hero--utp .ds-hero__card { min-height: 640px; }
.ds-cta h2 { max-width: none; }
.ds-cta .ds-act__ico { border-color: transparent; background: var(--base-0-color); }
.ds-cta .ds-act__ico svg { padding: 0; border-radius: 0; background: none; color: var(--accent-1-100-color); }
.ds .ds-cta .ds-act__ico:hover, .ds .ds-cta .ds-act__ico:focus-visible { background: var(--accent-1-10-color); }
@media (min-width: 1024px) {
  .ds-hero__utp { margin-top: 22px; }
  .ds-hero__utp ul { gap: 12px; }
  .ds-hero__utp li { align-items: center; font-size: var(--f18); }
  .ds-hero__utp .ds-ico { width: 24px; height: 24px; margin-top: 0; }
  .ds-hero--utp .ds-hero__card { min-height: 540px; }
}

/* ===== 19.10 (David): лепестки из Фигмы (bg-vector) за протезом. В Фигме они белые 0→20 % — это под синий фон;
   на нашем светлом первом экране так их не видно, поэтому белые в полную силу (lepestki.svg). Веер — по центру за протезом. ===== */
.ds-hero__lep { position: absolute; right: -268px; bottom: -150px; width: 809px; aspect-ratio: 1560 / 931;
  background: url(/local/templates/avedental/images/promotions/dizain/lepestki-2.svg) center bottom / contain no-repeat; }
@media (min-width: 1024px) {
  .ds-hero__lep { right: -230px; bottom: -40px; width: 1127px; }
}

/* ===== 19.10: «Имплантация под ключ» (data/implantation-turnkey.php) — один имплант с коронкой вместо челюсти ===== */
.ds-hero--odin .ds-hero__media img { right: 22px; bottom: 76px; width: 168px; }
.ds-obj--koronka { right: 8px; bottom: 6px; width: 112px; }
.ds-tile--wide .ds-odin { right: 26px; bottom: -36px; width: 118px; transform: rotate(-14deg); }
.ds-bento > .ds-tile--blue.ds-num { display: flex; flex-direction: column; justify-content: flex-end; }
.ds-bento > .ds-tile--blue.ds-num b, .ds-bento > .ds-tile--blue.ds-num h3 { color: var(--base-0-color); }
.ds-bento > .ds-tile--blue.ds-num p { color: var(--ds-white-80); }
/* коронка во втором этапе: на белой карточке часть — серая, как карточки кита; не наклонять, как имплант */
.ds-st--2 .ds-part { background: var(--base-20-color); }
.ds-st--2 .ds-part:first-child .ds-part__img img { transform: none; }
@media (min-width: 1024px) {
  .ds-hero--odin .ds-hero__media img { right: 210px; bottom: 56px; width: 320px; }
  .ds-obj--koronka { right: 22px; bottom: 14px; width: 150px; }
  .ds-tile--wide .ds-odin { right: 48px; bottom: -70px; width: 190px; }
  .ds-rail--5:has(.ds-step) { grid-template-columns: repeat(5, 1fr); }
  /* одна часть в этапе (имплант, коронка) — во всю ширину карточки, картинка слева, а не полкарточки пустые */
  .ds-st__parts:has(> .ds-part:only-child) { grid-template-columns: 1fr; }
  .ds-st__parts > .ds-part:only-child { grid-template-columns: 180px 1fr; align-items: center; gap: 24px; padding: 20px 28px 20px 16px; }
  .ds-st__parts > .ds-part:only-child .ds-part__img { height: 150px; }
}

/* ===== 19.10, вечер (David: «главный блок огромный, растянут из-за описания»): на ПК заголовок и подзаголовок — в строку,
   кнопка и рассрочка — рядом с ценой внутри карточки; было 696–734 px, стало около 520. На телефоне кнопка под карточкой, как было ===== */
.ds-hero__act { display: none; }
@media (min-width: 1024px) {
  .ds .ds-hero .ds-hero__tel { display: none; }
  .ds-hero__title br { display: none; }
  .ds-hero__lead { max-width: 660px; }
  .ds-hero__card, .ds-hero--utp .ds-hero__card { min-height: 520px; padding: 44px 64px; }
  .ds-hero__buy { display: flex; align-items: flex-start; gap: 28px; margin-top: 28px; }   /* 20.10, David: верх цены — на уровне верха кнопки */
  .ds-hero__buy .ds-badge { margin-top: 0; }
  .ds-hero__act { position: relative; display: grid; gap: 10px; }
  .ds .ds-hero .ds-hero__act .ds-btn { width: 300px; margin: 0; }
  .ds .ds-hero .ds-hero__act .ds-pay { margin: 0; }
  .ds-hero__media img { bottom: 72px; }
  .ds-hero--odin .ds-hero__media img { right: 220px; bottom: 46px; width: 290px; }
}

/* ===== 19.10, вечер: «Какой имплант выбрать» — системы на виду карточками (data: sistemy); премиум — рамкой, без чужих цветов ===== */
.ds-sis__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ds-sis__card { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 16px 14px; border: 2px solid transparent; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-sis__card--accent { border-color: var(--accent-1-100-color); background: var(--base-0-color); }
.ds-sis__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.ds-sis__name { min-width: 0; }
.ds-sis__top b { display: block; font-size: var(--f18); line-height: 1.2; font-weight: 600; color: var(--base-100-color); }
.ds-sis__name span { display: block; margin-top: 2px; font-size: var(--f13); line-height: 1.3; color: var(--base-80-color); }
/* фото импланта справа от названия: высота как у названия со страной и плашкой, ширина — по картинке */
.ds-sis__img { flex: none; width: auto; height: 76px; margin: -4px -4px 0 0; object-fit: contain; }
.ds-sis__card .ds-pill { align-self: flex-start; max-width: 100%; height: auto; min-height: 28px; padding-block: 4px; white-space: normal; line-height: 1.25; }
.ds-sis__sum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; margin-top: 4px; }
.ds-sis__sum b { font-size: var(--f24); line-height: 1.15; font-weight: 700; letter-spacing: -0.02em; color: var(--accent-1-100-color); white-space: nowrap; }
.ds-sis__sum s { font-size: var(--f14); color: var(--base-60-color); white-space: nowrap; }
.ds-sis__parts { font-size: var(--f13); line-height: 1.35; color: var(--base-80-color); }
.ds-sis__note { flex: 1; font-size: var(--f14); line-height: 1.4; color: var(--base-100-color); }
.ds .ds-sis__btn { width: 100%; height: 44px; margin-top: 4px; }
/* «Цена не меняется» — план-договор снизу справа, текст сверху, как у еды и подушки */
.ds-bento > .ds-tile:has(.ds-obj--dogovor) { justify-content: flex-start; }
.ds-obj--dogovor { top: auto; right: 4px; bottom: -34px; width: 118px; transform: rotate(8deg); }
@media (min-width: 1024px) {
  .ds-sis__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
  .ds-sis__card { gap: 10px; padding: 24px 22px; }
  .ds-sis__top b { font-size: var(--f20); }
  .ds-sis__img { height: 104px; margin: -8px -6px 0 0; }
  .ds-sis__sum b { font-size: var(--f30); }
  .ds-sis__parts { font-size: var(--f14); }
  .ds-sis__note { font-size: var(--f15); }
  .ds .ds-sis__btn { height: 48px; }
  .ds-obj--dogovor { right: 10px; bottom: -56px; width: 196px; }
}

/* ===== 19.10, вечер-2 (David: «серым пишешь скок имплант и скок коронка», «не показывает процесс оплаты, через сколько»,
   «внизу идёт только ST»): этапы с суммами — в карточке, тёмным; когда платить — синим; блок «в два этапа» про ST убран ===== */
.ds-sis__etapy { display: grid; gap: 8px; margin: 2px 0 0; padding: 10px 0 0; list-style: none; border-top: 1px solid var(--base-40-color); }
.ds-sis__etapy li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: 8px; }
.ds-sis__when { grid-column: 1 / -1; font-size: var(--f12); line-height: 1.3; font-weight: 600; letter-spacing: .02em; color: var(--accent-1-100-color); }
.ds-sis__what { font-size: var(--f14); line-height: 1.35; color: var(--base-100-color); }
.ds-sis__etapy b { font-size: var(--f15); font-weight: 700; color: var(--base-100-color); white-space: nowrap; }
.ds section.ds-sis:has(+ .ds-dva--niz) { padding-bottom: 0; }
.ds section.ds-dva--niz { padding-top: 0; }
@media (min-width: 1024px) {
  .ds-sis__etapy { gap: 10px; padding-top: 14px; }
  .ds-sis__when { font-size: var(--f13); }
  .ds-sis__what { font-size: var(--f15); }
  .ds-sis__etapy b { font-size: var(--f17); }
}

/* ===== 20.10 (David: «почему под ключ — криво поставленный вопрос и мусорные ответы»): блок «Что значит под ключ»,
   плитка «Работа врачей включена» — набор материалов снизу справа, текст сверху, как у плана-договора ===== */
.ds-bento > .ds-tile:has(.ds-obj--nabor) { justify-content: flex-start; }
.ds-obj--nabor { top: auto; right: -6px; bottom: -8px; width: 124px; transform: rotate(-6deg); }
@media (min-width: 1024px) {
  .ds-obj--nabor { right: -8px; bottom: -14px; width: 214px; }
}

/* 20.10, после снимков: на телефоне текст большой плитки не заходит под имплант; кнопка карточки — одно слово, «цену» только на ПК */
.ds .ds-sis__btn { font-size: var(--f15); white-space: nowrap; }
.ds-sis__btn-dop { display: none; }
@media (max-width: 1023px) {
  .ds-tile--wide:has(.ds-odin) p { max-width: 180px; }
}
@media (min-width: 1024px) {
  .ds .ds-sis__btn { font-size: var(--f16); }
  .ds-sis__btn-dop { display: inline; }
}

/* ===== 20.10 (David: «блоки страхов можно дополнительно и блоками вынести»): «Чего обычно боятся» — три карточки,
   на телефоне друг под другом, предмет справа от текста; на ПК три колонки, предмет снизу ===== */
.ds-strah__grid { display: grid; gap: 10px; }
.ds-strah__card { position: relative; overflow: hidden; min-height: 168px; padding: 18px 128px 18px 16px; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-strah__card h3 { position: relative; font-size: var(--f20); line-height: 1.25; font-weight: 600; letter-spacing: -0.01em; color: var(--base-100-color); }
.ds-strah__card p { position: relative; margin-top: 6px; font-size: var(--f14); line-height: 1.45; color: var(--base-80-color); }
.ds-strah__img { position: absolute; pointer-events: none; }
@media (min-width: 1024px) {
  .ds-strah__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .ds-strah__card { min-height: 320px; padding: 28px 26px 160px; }
  .ds-strah__card h3 { font-size: var(--f24); }
  .ds-strah__card p { margin-top: 10px; font-size: var(--f16); }
}

/* ===== 20.10 (David: «квиз можно», «собирай»; вечером — «итог простынёй, нет UI kit», затем «крупно, несуразно, в конце
   много цен наляпано»): квиз спокойный и компактный. Ответы — строки с кружком выбора, как в анкете; в итоге одна цена
   и зачёркнутая старая, остальное словами. Окно — по ссылке с первого экрана и само через 25 с (script.js) ===== */
.ds-kviz { scroll-margin-top: 64px; }
.ds-kviz [hidden], .ds-kviz-pop[hidden], .ds-kviz-pop [hidden] { display: none !important; }
.ds-kviz__card { padding: 16px; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-kviz__progress { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: var(--f13); color: var(--base-60-color); }
.ds .ds-kviz__count b { color: var(--base-100-color); font-weight: 600; }
.ds-kviz__bar { display: flex; gap: 4px; }
.ds-kviz__bar i { width: 20px; height: 3px; border-radius: 2px; background: var(--base-40-color); }
.ds-kviz__bar i.is-on { background: var(--accent-1-100-color); }
.ds-kviz__q { margin-top: 10px; font-size: var(--f18); line-height: 1.3; font-weight: 600; letter-spacing: -0.01em; }
.ds-kviz__opts { display: grid; gap: 8px; margin-top: 14px; }
.ds .ds-kviz__opt { position: relative; display: flex; align-items: baseline; gap: 8px; width: 100%; min-height: 52px; padding: 15px 16px 15px 48px; border: 0;
  border-radius: var(--border-radius-16); background: var(--base-0-color); color: var(--base-100-color); font: inherit; font-size: var(--f15); line-height: 1.35; text-align: left; cursor: pointer; }
.ds .ds-kviz__opt b { font-weight: 600; color: inherit; }
.ds .ds-kviz__opt b + span { margin-left: auto; font-size: var(--f13); color: var(--base-60-color); text-align: right; }
.ds-kviz__radio { position: absolute; left: 16px; top: 50%; box-sizing: border-box; width: 20px; height: 20px; margin-top: -10px; border: 2px solid var(--base-40-color); border-radius: 50%;
  background: var(--base-0-color); transition: border .12s; }
.ds .ds-kviz__opt:hover .ds-kviz__radio { border-color: var(--accent-1-100-color); }
.ds .ds-kviz__opt:focus-visible { outline: 2px solid var(--accent-1-100-color); outline-offset: -2px; }
.ds .ds-kviz__opt.is-active .ds-kviz__radio { border: 6px solid var(--accent-1-100-color); }
/* итог: одна цена, остальное словами */
.ds-kviz__label { font-size: var(--f12); line-height: 1.3; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent-1-100-color); }
.ds-kviz__title { margin-top: 6px; font-size: var(--f18); line-height: 1.3; font-weight: 600; letter-spacing: -0.01em; }
.ds-kviz__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; margin-top: 10px; }
.ds .ds-kviz__price b { font-size: var(--f30); line-height: 1.15; font-weight: 700; letter-spacing: -0.02em; color: var(--accent-1-100-color); white-space: nowrap; }
.ds-kviz__price s { font-size: var(--f15); color: var(--base-60-color); white-space: nowrap; }
.ds-kviz__price span { font-size: var(--f14); color: var(--base-80-color); }
.ds-kviz__txt { margin-top: 8px; font-size: var(--f14); line-height: 1.45; color: var(--base-80-color); }
.ds .ds-kviz__txt a { color: var(--accent-1-100-color); font-weight: 600; }
.ds-kviz__dop { display: grid; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--base-40-color); }
.ds .ds-kviz__dop li { font-size: var(--f14); line-height: 1.45; color: var(--base-100-color); }
.ds .ds-kviz__btn { margin-top: 16px; }
.ds-kviz__podarki { margin-top: 10px; font-size: var(--f13); line-height: 1.4; color: var(--base-80-color); text-align: center; }
.ds-kviz__nav { display: flex; }
.ds .ds-kviz__back, .ds .ds-kviz__again { margin-top: 8px; padding: 6px 2px; border: 0; background: none; color: var(--accent-1-100-color); font: inherit; font-size: var(--f14); font-weight: 600; cursor: pointer; }
/* врач в шапке квиза (20.10, по образцу Глотова): фото, имя, регалии; цитата — только в блоке врачей */
.ds-kviz__vrach { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.ds-kviz__ava { flex: none; width: 44px; height: 44px; overflow: hidden; border-radius: 50%; background: var(--accent-1-10-color); }
.ds-kviz__ava img { width: 100%; height: 150%; object-fit: cover; object-position: 50% 0; }
.ds-kviz__who { display: grid; gap: 2px; min-width: 0; }
.ds .ds-kviz__who b { font-size: var(--f14); line-height: 1.3; font-weight: 600; }
.ds-kviz__who span { font-size: var(--f12); line-height: 1.3; color: var(--base-60-color); }
/* ссылка на квиз с первого экрана — открывает окно */
.ds-kviz-go { display: flex; align-items: center; justify-content: center; gap: 2px; margin-top: 12px; color: var(--accent-1-100-color); font-size: var(--f16); font-weight: 600; text-decoration: none; }
.ds-kviz-go .ds-ico { width: 20px; height: 20px; }
.ds .ds-kviz-go:hover { color: var(--accent-1-80-color); }
/* окно квиза: на телефоне — шторка снизу, на ПК — по центру; внутри без серой подложки, строки ответов серые */
html.ds-kviz-lock, html.ds-kviz-lock body { overflow: hidden; }
.ds-kviz-pop { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: flex-end; justify-content: center;
  background: hsla(var(--base-100-color-h), var(--base-100-color-s), var(--base-100-color-l), .55); }
.ds-kviz-pop__box { position: relative; width: 100%; max-height: 92vh; max-height: 92dvh; overflow-y: auto; overscroll-behavior: contain; padding: 20px 16px 16px;
  border-radius: var(--border-radius-24) var(--border-radius-24) 0 0; background: var(--base-0-color); }
.ds .ds-kviz-pop__title { padding-right: 48px; font-size: var(--f20); }
.ds-kviz-pop .ds-sub { margin-top: 4px; font-size: var(--f14); }
.ds-kviz-pop__slot { margin-top: 14px; }
.ds-kviz-pop .ds-kviz__card { padding: 0; background: none; }
.ds .ds-kviz-pop .ds-kviz__opt { background: var(--base-20-color); }
.ds .ds-kviz-pop__close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%;
  background: var(--base-20-color); cursor: pointer; }
.ds-kviz-pop__close .ds-ico { width: 20px; height: 20px; color: var(--base-100-color); }
@media (min-width: 1024px) {
  .ds-kviz .container { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 600px); column-gap: 64px; align-items: start; }
  .ds-kviz .ds-head { margin: 24px 0 0; }
  .ds-kviz__card { padding: 24px; }
  .ds-kviz__q { font-size: var(--f20); }
  .ds-kviz-pop { align-items: center; }
  .ds-kviz-pop__box { width: 560px; max-height: 90vh; padding: 28px; border-radius: var(--border-radius-32); }
  .ds .ds-kviz-pop__title { font-size: var(--f24); }
  .ds .ds-hero .ds-hero__act .ds-kviz-go { justify-content: flex-start; margin: 0; }
}
/* ===== 20.10: брекеты — блок «Платите по визитам» (data: oplata) сразу под первым экраном, один врач-ортодонт
   (data: vrachi), картинки страхов; плитки и цвета — как у гарантий имплантов ===== */
.ds-oplata .ds-tile--wide.ds-num { min-height: 196px; }
.ds-oplata .ds-tile--wide.ds-num b, .ds-oplata .ds-tile--wide.ds-num h3 { position: relative; color: var(--base-0-color); }
.ds-oplata .ds-tile--wide.ds-num p { position: relative; max-width: 190px; color: var(--base-0-color); opacity: .82; }
/* у плитки во всю ширину своё правило картинки (.ds-tile--wide img) — перебиваем весом */
.ds-oplata .ds-tile--wide .ds-oplata__img { right: 2px; bottom: 6px; width: 150px; transform: none; }
@media (max-width: 1023px) { .ds-hero--brekety .ds-hero__media img { right: 4px; bottom: 84px; width: 300px; } }   /* на ПК — как у All-on */
.ds-oplata__plus { margin-top: 16px; }
.ds-team--odin > img { left: 50%; width: auto; height: 100%; transform: translateX(-50%); }
/* страхи брекетов (21.10, David: «элементы стоят криво»): без наклона, в одной рамке, картинки обрезаны по предмету;
   телефон — справа по центру высоты, ПК — снизу справа на одной линии. Брекет плотный, на глаз тяжелее — чуть меньше */
.ds-strah__img--rovno { top: 50%; right: 14px; width: 104px; height: 104px; object-fit: contain; transform: translateY(-50%); }
.ds-strah__img--mel { scale: .82; }
@media (min-width: 1024px) {
  .ds-oplata .ds-tile--wide.ds-num { min-height: 260px; }
  .ds-oplata .ds-tile--wide.ds-num p { max-width: 420px; }
  .ds .ds-oplata .ds-tile--wide .ds-oplata__img { right: 36px; bottom: 10px; width: 210px; }
  /* две системы (брекеты): заголовок слева, карточки справа — как «Кому подходит» */
  .ds-sis:has(.ds-sis__grid--2) .container { display: grid; grid-template-columns: 5fr 7fr; column-gap: 16px; align-items: start; }
  .ds-sis__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-oplata__plus { margin-top: 24px; }
  .ds-strah__img--rovno { top: auto; right: 28px; bottom: 28px; width: 170px; height: 140px; object-position: 50% 100%; transform: none; }
  .ds-strah__img--mel { transform-origin: 50% 100%; }
  /* один врач: карточка во всю ширину, цифры доверия — как у двух врачей, у заголовка; регалии — строками (20.10, вечер) */
  .ds-vrachi--odin .ds-docs > .ds-doc:nth-child(1) { grid-column: 1 / -1; min-height: 460px; }
  .ds-vrachi--odin .ds-doc .ds-quote { max-width: 720px; }
  .ds-vrachi--odin .ds-doc .ds-reg { max-width: 680px; }
}
/* ===== 20.10, вечер — брекеты по ПК (David: «заголовок большой, несуразно»; «про то, что доплачивать не нужно, однотипно
   с "кому подходят"»; «фото врача маленькое»; у систем «нужен визуал»; под кнопкой «вторая строка с отступом») ===== */
/* длинный заголовок: на ПК в одну строку по 56 px шёл через всю карточку — две строки по 48; на телефоне на ступень мельче */
.ds-hero--brekety .ds-hero__title { font-size: var(--f26); }
/* график платежей вместо второго списка подряд: вся сумма плана одной полосой — крупный кусок на старте, ровные части
   по визитам раз в месяц, снятие галочкой; суммы над полосой, подписи под ней. Без «нет визита» и 0 ₽ (David 20.10:
   «путает людей»); столбики 21.10 не понравились внешне — полоса. Карточка серая без рамки, как плитки над ней */
.ds-grafik { display: grid; gap: 20px; margin-top: 10px; padding: 22px 18px 20px; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-grafik__chart { order: -1; }
/* три строки (суммы, полоса, подписи) на одной сетке: старт 85 к визитам 10 × 15, справа место под галочку */
.ds-grafik__row { display: grid; grid-template-columns: minmax(0, 85fr) minmax(0, 150fr) 24px; column-gap: 4px; }
.ds-grafik__sum span { font-size: var(--f14); line-height: 1; font-weight: 700; color: var(--accent-1-100-color); white-space: nowrap; }
.ds-grafik__line { height: 40px; margin: 10px 0; }
.ds-grafik__start { border-radius: 12px 4px 4px 12px; background: var(--accent-1-100-color); }
.ds-grafik__mes { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 3px; }
.ds-grafik__mes i { border-radius: 4px; background: var(--accent-1-80-color); }
.ds-grafik__mes i:last-child { border-radius: 4px 12px 12px 4px; }
.ds-grafik__end { align-self: center; justify-self: end; width: 24px; height: 24px; }
.ds-grafik__os span { font-size: var(--f12); line-height: 1.3; color: var(--base-80-color); white-space: nowrap; }
.ds-grafik__os span:nth-child(3) { justify-self: end; }
.ds-grafik__txt { display: grid; gap: 14px; }
.ds-grafik__txt p { font-size: var(--f15); line-height: 1.45; color: var(--base-80-color); }
.ds-grafik__txt b { display: block; margin-bottom: 4px; font-size: var(--f18); line-height: 1.3; font-weight: 600; color: var(--base-100-color); }
/* системы брекетов: снимок брекета над названием — металл и керамику видно сразу */
.ds-sis__grid--2 .ds-sis__top { flex-direction: column-reverse; align-items: flex-start; gap: 10px; }
.ds-sis__grid--2 .ds-sis__img { height: 84px; margin: 0; }
/* под «Забронировать стоимость»: перенесённая строка подарков — без отступа слева */
.ds-dva__minus { margin-left: 0; }
@media (min-width: 1024px) {
  .ds-hero--brekety .ds-hero__title { font-size: var(--f48); }
  .ds-hero--brekety .ds-hero__title br { display: inline; }
  .ds-grafik { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: 56px; align-items: center; margin-top: 16px; padding: 36px 40px 32px; border-radius: var(--border-radius-32); }
  .ds-grafik__chart { order: 0; }
  .ds-grafik__txt { gap: 24px; }
  .ds-grafik__txt p { font-size: var(--f16); }
  .ds-grafik__txt b { margin-bottom: 6px; font-size: var(--f24); letter-spacing: -0.01em; }
  .ds-grafik__row { grid-template-columns: minmax(0, 85fr) minmax(0, 150fr) 28px; column-gap: 6px; }
  .ds-grafik__sum span { font-size: var(--f16); }
  .ds-grafik__line { height: 56px; margin: 12px 0; }
  .ds-grafik__start { border-radius: 16px 6px 6px 16px; }
  .ds-grafik__mes { gap: 5px; }
  .ds-grafik__mes i { border-radius: 6px; }
  .ds-grafik__mes i:last-child { border-radius: 6px 16px 16px 6px; }
  .ds-grafik__end { width: 28px; height: 28px; }
  .ds-grafik__os span { font-size: var(--f14); }
  .ds-sis__grid--2 .ds-sis__img { height: 128px; }
  /* один врач: снимок обрезан по силуэту и крупнее — рамка выше и шире, текст правее */
  .ds-vrachi--odin .ds-docs > .ds-doc:nth-child(1) { min-height: 520px; padding-left: 408px; }
  .ds-vrachi--odin .ds-doc__ava { left: 28px; width: 344px; height: 496px; }
  .ds-vrachi--odin .ds-docs > .ds-doc:nth-child(1) { display: flex; flex-direction: column; justify-content: center; }   /* текст — по центру высоты, рядом с лицом */
}
/* ===== 20.10, ночь — квиз ярче (David: «квиз мб более красочным сделаем с лепестками на фоне?»): синяя карточка кита,
   лепестки из Фигмы — белые на 20 %, как там и задуманы под синий фон; сам квиз — белая карточка ===== */
.ds-kviz__box { position: relative; isolation: isolate; overflow: hidden; padding: 24px 16px 16px; border-radius: var(--border-radius-32); background: var(--accent-1-100-color); }
.ds-kviz__lep { position: absolute; z-index: -1; top: -120px; right: -330px; width: 809px; aspect-ratio: 1560 / 931; opacity: .2; pointer-events: none; transform: rotate(180deg);
  background: url(/local/templates/avedental/images/promotions/dizain/lepestki-2.svg) center bottom / contain no-repeat; }
.ds .ds-kviz__box .ds-h2 { color: var(--base-0-color); }
.ds .ds-kviz__box .ds-h2 em { color: var(--accent-1-10-color); }
.ds .ds-kviz__box .ds-sub { color: var(--ds-white-80); }
.ds-kviz__box .ds-kviz__card { background: var(--base-0-color); }
.ds .ds-kviz__box .ds-kviz__opt { background: var(--base-20-color); }
@media (min-width: 1024px) {
  .ds-kviz .container { display: block; }
  .ds-kviz__box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 600px); column-gap: 64px; align-items: start; padding: 48px 48px 48px 64px; }
  .ds-kviz__lep { top: auto; right: auto; left: -160px; bottom: -60px; width: 1127px; transform: none; }
}
/* 21.10, брекеты: широкие картинки шагов (обе челюсти, каппа) — во всю ширину карточки, а не 170 px; только на этой акции */
.ds:has(.ds-hero--brekety) .ds-step__img img { max-width: 100%; }
/* ===== 21.10, день (David: «выровни все разделы All-on-4, 6 и под ключ»): одно правило для картинок.
   Плитки — предмет стоит прямо в правом нижнем углу и срезан краем, как на главной: наклоны −14°, −6°, +8°, 14° сняты,
   протез больше не висит над краем и не режется слева; подушка зеркально — одеяло уходит за правый край, как у остальных.
   Шаги — строки карточки не растягиваются, заголовки на одной линии; картинки обрезаны по предмету (shag-*.webp).
   Вечером (David: «чуть обрезались, вниз ушли… чуть повыше поднять»): предметы подняты — коронка целиком, импланты,
   планшет и протез срезаны меньше; еда на телефоне на прежней высоте — выше стейк заходит на подпись ===== */
.ds-step { align-content: start; }
.ds-bento .ds-obj.ds-obj--protez { right: -44px; bottom: -24px; width: 206px; transform: none; }
.ds-bento .ds-obj.ds-obj--koronka { right: 16px; bottom: 12px; width: 96px; transform: none; }
.ds-bento .ds-obj.ds-obj--implant { right: 30px; bottom: -24px; width: 54px; transform: none; }
.ds-bento .ds-tile--wide img.ds-odin { right: 30px; bottom: -2px; width: 112px; transform: none; }
.ds-bento .ds-obj.ds-obj--nabor { right: -16px; bottom: -6px; width: 140px; transform: none; }
.ds-bento .ds-obj.ds-obj--dogovor { right: 14px; bottom: -24px; width: 112px; transform: none; }
.ds-bento .ds-obj.ds-obj--podushka { left: auto; right: -14px; bottom: -14px; transform: scaleX(-1); }
/* веер имплантов срезан по нижнему краю самой картинки — опускать ниже края плитки, но не глубже нужного */
.ds-bento .ds-tile--wide img.ds-chetyre, .ds-bento .ds-tile--wide img.ds-shest { bottom: -4px; }
/* страхи «под ключ» — в рамке брекетов (.ds-strah__img--rovno); тонкий имплант — рамка выше, чтобы не был мельче шприца и зуба */
.ds-strah__img--vys { height: 136px; }
@media (min-width: 1024px) {
  .ds-bento .ds-obj.ds-obj--protez { right: -64px; bottom: -38px; width: 318px; }
  .ds-bento .ds-obj.ds-obj--koronka { right: 44px; bottom: 24px; width: 150px; }
  .ds-bento .ds-obj.ds-obj--implant { right: 56px; bottom: -64px; width: 88px; }
  .ds-bento .ds-tile--wide img.ds-odin { right: 72px; bottom: -2px; width: 172px; }
  .ds-bento .ds-obj.ds-obj--nabor { right: -24px; bottom: -12px; width: 236px; }
  .ds-bento .ds-obj.ds-obj--dogovor { right: 30px; bottom: -42px; width: 196px; }
  .ds-bento .ds-obj.ds-obj--podushka { left: auto; right: 4px; bottom: -24px; }
  .ds-bento .ds-obj.ds-obj--yabloko { bottom: -26px; }
  .ds-bento .ds-tile--wide img.ds-chetyre, .ds-bento .ds-tile--wide img.ds-shest { bottom: -4px; }
  .ds-strah__img--vys { height: 172px; }
}
/* ===== 23.10 (David после просмотра всех акций с телефона) ===== */
/* рассрочка — логотипы банков снова цветные, на всех страницах («попробовать вернуть цветную, посмотреть, как будет выглядеть») */
.ds .ds-pay img, .ds .ds-perk .ds-logos img, .ds .ds-dva__perks img { filter: none; opacity: 1; }
/* «Кому подходит»: описание не читалось — заголовок и пояснение стояли в разных колонках. Теперь строка с галочкой: суть жирным,
   пояснение тут же, тем же кеглем */
.ds-komu__list li { display: flex; align-items: flex-start; gap: 12px; padding: 16px 0; }
.ds-komu__list li::before { content: none; }
.ds-komu__list .ds-ico { flex: none; width: 24px; height: 24px; margin-top: 1px; }
.ds-komu__list p { font-size: var(--f17); line-height: 1.45; color: var(--base-80-color); }
.ds .ds-komu__list p b { font-size: inherit; line-height: inherit; font-weight: 600; letter-spacing: 0; color: var(--base-100-color); }
/* синие плитки — лепестки из Фигмы, как в квизе: белые на 20 %, из пустого нижнего угла (David: «убрать пустоту») */
.ds-tile--wide.ds-tile--g, .ds-oplata .ds-tile--wide, .ds-st--1, .ds-cta { isolation: isolate; overflow: hidden; }
.ds-tile--wide.ds-tile--g::before, .ds-oplata .ds-tile--wide::before, .ds-st--1::before, .ds-cta::before { content: ''; position: absolute; z-index: -1;
  left: -260px; bottom: -150px; width: 700px; aspect-ratio: 1560 / 931; opacity: .2; pointer-events: none;
  background: url(/local/templates/avedental/images/promotions/dizain/lepestki-2.svg) center bottom / contain no-repeat; }
/* график брекетов (David: «пустой, не хватает чего-то»): подпись визитов — что на них делают, в две строки; под полосой — срок */
.ds-grafik__os span:nth-child(2) { white-space: normal; padding-right: 8px; }
.ds-grafik__srok { margin-top: 10px; font-size: var(--f13); line-height: 1.35; color: var(--base-80-color); }
@media (min-width: 1024px) {
  .ds-komu__list li { gap: 16px; padding: 22px 0; }
  .ds-komu__list .ds-ico { width: 28px; height: 28px; margin-top: 2px; }
  .ds-komu__list p { font-size: var(--f20); }
  .ds-tile--wide.ds-tile--g::before, .ds-oplata .ds-tile--wide::before, .ds-st--1::before, .ds-cta::before { left: -200px; bottom: -220px; width: 1000px; }
  .ds-grafik__srok { margin-top: 14px; font-size: var(--f14); }
}
/* «Как устроен All-on-4/6» (23.10, вместо подушки и еды): каркас и мультиюниты снизу справа, текст сверху; место под предмет —
   отступом снизу, чтобы длинная подпись не уходила под картинку */
.ds-bento > .ds-tile:has(.ds-obj--karkas), .ds-bento > .ds-tile:has(.ds-obj--multi) { justify-content: flex-start; padding-bottom: 104px; }
.ds-bento .ds-obj.ds-obj--karkas { top: auto; left: auto; right: -18px; bottom: -14px; width: 150px; transform: none; }
.ds-bento .ds-obj.ds-obj--multi { top: auto; left: auto; right: -4px; bottom: -8px; width: 132px; transform: none; }
@media (min-width: 1024px) {
  .ds-bento > .ds-tile:has(.ds-obj--karkas), .ds-bento > .ds-tile:has(.ds-obj--multi) { padding-bottom: 28px; }
  .ds-bento .ds-obj.ds-obj--karkas { right: -24px; bottom: -22px; width: 250px; }
  .ds-bento .ds-obj.ds-obj--multi { right: 4px; bottom: -14px; width: 226px; }
}
/* ===== 24.10 (David: «дальше давай удаление зубов и гигиена»): «Цены по акции» списком — строки из прайса.
   Серая карточка, строки через линию: слева название и что входит, справа цена синим и старая зачёркнутая.
   На ПК — две колонки строк, снизу сноска и запись ===== */
.ds-ceny__box { padding: 8px 16px 16px; border-radius: var(--border-radius-24); background: var(--base-20-color); }
.ds-ceny__list { display: grid; }
.ds-ceny__row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--base-40-color); }
.ds-ceny__name { display: grid; gap: 3px; min-width: 0; }
.ds .ds-ceny__name b { font-size: var(--f16); line-height: 1.3; font-weight: 600; color: var(--base-100-color); }
.ds-ceny__name span { font-size: var(--f13); line-height: 1.35; color: var(--base-80-color); }
.ds-ceny__sum { display: grid; justify-items: end; gap: 2px; flex: none; text-align: right; }
.ds .ds-ceny__sum b { font-size: var(--f18); line-height: 1.2; font-weight: 700; color: var(--accent-1-100-color); white-space: nowrap; }
.ds-ceny__sum s { font-size: var(--f13); color: var(--base-60-color); white-space: nowrap; }
.ds-ceny__foot { display: grid; gap: 14px; padding-top: 16px; }
.ds-ceny__note { font-size: var(--f14); line-height: 1.45; color: var(--base-80-color); }
.ds .ds-ceny__note b { color: var(--base-100-color); font-weight: 600; }
/* шаги на 3 и 4 карточки (гигиена, удаление) — на ПК сеткой по их числу */
@media (min-width: 1024px) {
  .ds-ceny__box { padding: 12px 32px 28px; border-radius: var(--border-radius-32); }
  .ds-ceny__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
  .ds-ceny__row { padding: 18px 0; }
  .ds .ds-ceny__name b { font-size: var(--f17); }
  .ds-ceny__name span { font-size: var(--f14); }
  .ds .ds-ceny__sum b { font-size: var(--f20); }
  .ds-ceny__foot { grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 48px; padding-top: 24px; }
  .ds-ceny__note { font-size: var(--f15); }
  .ds-rail--3:has(.ds-step) { grid-template-columns: repeat(3, 1fr); }
  .ds-rail--4:has(.ds-step) { grid-template-columns: repeat(4, 1fr); }
}
/* 24.10, после снимков: кнопка записи в «Ценах по акции» на ПК сжималась по тексту и обрезала его;
   заголовок гигиены на ПК в одну строку заходил на картинку — две строки, как у брекетов */
@media (min-width: 1024px) {
  .ds-ceny__foot .ds-act { min-width: 360px; }
  .ds-hero--gigiena .ds-hero__title { font-size: var(--f48); }
  .ds-hero--gigiena .ds-hero__title br { display: inline; }
}

/* ===== 24.10 (David с телефона) ===== */
/* системы — лентой вбок на телефоне, как шаги: в две колонки карточки ужимались, текст шёл столбиком
   («сделал бы аккуратно, чтобы листали, а не ужималось по ширине»). В ширину 280 кнопка карточки помещается целиком */
@media (max-width: 1023px) {
  .ds-sis__grid { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -20px; padding: 0 20px 4px; scroll-padding-inline: 20px; scrollbar-width: none; }
  .ds-sis__grid::-webkit-scrollbar { display: none; }
  .ds-sis__card { flex: 0 0 280px; scroll-snap-align: start; }
  .ds-sis__btn-dop { display: inline; }
}
/* кнопка рядом с мессенджерами: на узком телефоне «Записаться на консультацию» не влезала и резалась краем */
@media (max-width: 479px) {
  .ds-btn__dop { display: none; }
}
/* «Цена в два этапа» на узком телефоне (375): строка варианта протеза не помещалась — длинное «керамокомпозит» и цена
   без переноса распирали карточку, вся страница ездила вбок на 6 px. Сетка цен — не шире экрана, картинка варианта меньше */
@media (max-width: 1023px) {
  .ds-dva__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 399px) {
  .ds-var { grid-template-columns: 64px minmax(0, 1fr) auto; gap: 10px; }
  .ds-var img { width: 64px; height: 32px; }
}

/* End */


/* Start:/local/templates/avedental/components/avedental/component/promotion-loyalty-form-row/style.css?17852352415647*/
.y4UnX{overflow:hidden;padding-right:var(--modal-scrollbar-width, 0)}.Y77D5{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;color:var(--base-100-color);opacity:0;transition:opacity 260ms cubic-bezier(0.22, 1, 0.36, 1)}.z0rUY{opacity:1}.sRnLX{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;border:0;background:rgba(4,10,34,.5);cursor:default}.fLGWM{position:relative;z-index:1;display:flex;align-items:flex-start;gap:16px;max-width:min(100%,100vw - 48px);max-height:calc(100vh - 48px);margin-left:72px;transform:translateY(8px) scale(0.96);transform-origin:center;transition:transform 260ms cubic-bezier(0.22, 1, 0.36, 1),opacity 260ms cubic-bezier(0.22, 1, 0.36, 1);opacity:0}.z0rUY .fLGWM{transform:translateY(0) scale(1);opacity:1}.IPGB8{width:720px;max-width:min(100%,720px);max-height:calc(100vh - 48px);padding:24px;overflow:hidden;background:var(--base-0-color);border-radius:var(--border-radius-24)}.ZHWER{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 96px)}.XH1Ui{display:flex;align-items:center;justify-content:space-between;gap:16px}.wflDz{margin:0;color:var(--base-100-color);font-size:calc(24/var(--initial-font-multiplier)*1rem);font-weight:600;line-height:1.4;letter-spacing:-0.12px}.Cq8LL{display:flex;flex-direction:column;flex:1 1 auto;gap:0;min-height:0;overflow-x:hidden;overflow-y:auto;color:var(--base-80-color);font-size:calc(16/var(--initial-font-multiplier)*1rem);font-weight:400;line-height:1.6;letter-spacing:-0.0512px}.Cq8LL p{margin:0}.RckPq{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;border:0;color:var(--base-100-color);background:var(--base-0-color);cursor:pointer;transition:background-color var(--transition-time) var(--transition-effect),color var(--transition-time) var(--transition-effect)}.RckPq span{position:relative;display:block;width:12px;height:12px}.RckPq span::before,.RckPq span::after{content:"";position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:999px;background:currentColor}.RckPq span::before{transform:translate(-50%, -50%) rotate(45deg)}.RckPq span::after{transform:translate(-50%, -50%) rotate(-45deg)}.RckPq:hover{color:var(--accent-1-100-color)}.Wcpk8{width:56px;height:56px;border-radius:99px}.H0zgt{display:none}@media screen and (max-width: 1439px){.Y77D5{align-items:flex-end;justify-content:center;padding:0}.fLGWM{display:block;width:100%;max-width:100%;max-height:min(100vh,100dvh);margin-left:0;transform:translateY(32px);transform-origin:bottom center}.z0rUY .fLGWM{transform:translateY(0)}.IPGB8{width:100%;max-width:100%;max-height:min(100vh,100dvh);padding:24px;border-radius:var(--border-radius-16) var(--border-radius-16) 0 0}.ZHWER{gap:8px;max-height:calc(min(100vh,100dvh) - 48px)}.wflDz{line-height:1.4;letter-spacing:0}.Cq8LL{letter-spacing:-0.08px}.Wcpk8{display:none}.H0zgt{display:inline-flex;width:32px;height:32px;border-radius:var(--border-radius-24);background:var(--base-20-color)}.H0zgt span{width:12px;height:12px}}@media screen and (max-width: 767px){.wflDz{font-size:calc(18/var(--initial-font-multiplier)*1rem)}.Cq8LL{font-size:calc(14/var(--initial-font-multiplier)*1rem);line-height:1.56}}
.XHoCM{position:relative;display:flex;flex-direction:column;height:100%;gap:48px;padding:24px;overflow:clip;border-radius:var(--border-radius-24);background:var(--accent-1-100-color);box-shadow:inset 0 2px 9.3px rgba(255,255,255,.25)}.AMYPG,.jgjdC{position:relative;z-index:1}.AMYPG{display:flex;flex-direction:column;gap:16px}.QLhHv,.dvxpk,.dSaeS{margin:0}.QLhHv{color:var(--base-0-color);font-size:24px;font-weight:600;line-height:1.4;letter-spacing:-0.12px;white-space:pre-line}.dvxpk{color:rgba(255,255,255,.8);font-size:16px;font-weight:400;line-height:1.6;letter-spacing:-0.0512px}.jgjdC{display:flex;flex-direction:column;gap:16px}.fTPtF{gap:8px}.vpeim{color:var(--base-0-color);font-size:18px;font-weight:400;line-height:1.8;letter-spacing:-0.054px}.vpeim::-moz-placeholder{color:rgba(255,255,255,.5);opacity:1}.vpeim::placeholder{color:rgba(255,255,255,.5);opacity:1}.CJxbe{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;padding:16px 24px;border:0;border-radius:var(--border-radius-16);background:var(--base-0-color);color:var(--accent-1-100-color);font-family:var(--font-family-sans-serif);font-size:16px;font-weight:600;line-height:24px;letter-spacing:-0.048px;cursor:pointer}.CJxbe:hover:not(:disabled){background:var(--accent-2-100-color);color:var(--base-0-color);transition:var(--transition-time) var(--transition-effect)}.CJxbe:disabled{opacity:.65;cursor:default}.dSaeS{color:rgba(255,255,255,.8);font-size:12px;font-weight:400;line-height:1.6;letter-spacing:0}.dSaeS a{color:inherit;text-decoration:underline;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.cXfiS{position:relative;z-index:1;width:100%;justify-content:flex-start}.cXfiS .checkbox__label{color:rgba(255,255,255,.8);font-size:12px;line-height:1.6;white-space:normal}.cXfiS .checkbox__label a{color:var(--base-0-color);text-decoration:underline;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.cXfiS .checkbox__input:checked + .checkbox__mark{background:var(--base-0-color)}.cXfiS .checkbox__input:checked + .checkbox__mark::after{border-color:var(--accent-1-100-color)}@media(max-width: 1439px){.XHoCM{gap:24px;padding:16px}.QLhHv{font-size:20px;font-weight:600;line-height:1.5;letter-spacing:0}.dvxpk{font-size:14px;line-height:1.56;letter-spacing:-0.08px}.CJxbe{min-height:50px}.vpeim{font-size:14px;line-height:1.6;letter-spacing:-0.3px}}

/* End */


/* Start:/local/templates/avedental/components/avedental/component/main-map/static.css?17859182271010*/
.main-map{width:100%;background:var(--base-0-color)}.main-map__container{padding-block:calc(var(--gap)*8)}@media screen and (max-width: 767px){.main-map__container{padding-block:calc(var(--gap)*3)}}.main-map--contacts .main-map__container{padding-top:calc(var(--gap)*8);padding-bottom:calc(var(--gap)*8)}.main-map__canvas{width:100%;aspect-ratio:1376/557.0483;overflow:hidden;border-radius:var(--border-radius-24);background:var(--base-20-color)}.main-map__canvas>div,.main-map__canvas [class*=ymaps-2]{border-radius:inherit}.main-map__actions{display:flex;margin-top:calc(var(--gap)*2)}@media screen and (max-width: 767px){.main-map__actions .button{width:100%}}@media screen and (max-width: 767px){.main-map--contacts .main-map__container{padding-top:calc(var(--gap)*3);padding-bottom:calc(var(--gap)*3)}.main-map__container{padding-top:calc(var(--gap)*3);padding-bottom:calc(var(--gap)*3)}.main-map__canvas{aspect-ratio:600/496}}@media screen and (max-width: 374px){.main-map__canvas{aspect-ratio:320/356}}

/* End */
/* /local/templates/avedental/components/avedental/entity.detail/promo-dizain/static.css?1792850015117380 */
/* /local/templates/avedental/components/avedental/component/promotion-loyalty-form-row/style.css?17852352415647 */
/* /local/templates/avedental/components/avedental/component/main-map/static.css?17859182271010 */
