/* GO layout adapters. Component sizes, states and colours live in the exported DS. */
:root, dm-site-feedback { --shadow-card: none; }
.ds-doctor-card { box-shadow: none; }
.shell { max-width: calc(var(--container) + 2 * var(--gutter)); padding-inline: var(--gutter); }
body { padding-block-end: calc(var(--cookie-space, 0px) + var(--builder-preview-height, 0px)); }
.cookie-notice { --accent: var(--age-accent); --accent-hover: color-mix(in srgb, var(--age-accent) 85%, black); position: fixed; z-index: 40; inset-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right)); inset-block-end: max(16px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 20px; max-width: 720px; max-height: 46svh; margin-inline: auto; padding: 16px 20px; overflow-y: auto; overscroll-behavior: contain; border: 0; border-radius: 20px; background: var(--age-surface); color: var(--text); }
.cookie-notice[hidden] { display: none; }
.cookie-notice p { min-height: 0; max-height: calc(46svh - 32px); overflow-y: auto; overscroll-behavior: contain; margin: 0; font-size: var(--caption); line-height: 1.4; }
.cookie-notice p:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.cookie-notice a { color: var(--brand-dark-blue); text-decoration: underline; text-underline-offset: 3px; }
.cookie-notice button { flex: none; min-height: 44px; }
@media (max-width: 40rem) {
  .cookie-notice { flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px; }
  .cookie-notice p { max-height: calc(46svh - 88px); }
}
/* Белый фон до краёв экрана без расширения контейнера навигации. */
.shell > header::before { content: ''; position: absolute; inset: 0; inset-inline: 50% auto; width: var(--viewport-width, 100%); transform: translateX(-50%); z-index: -1; background: var(--paper); pointer-events: none; }
main[data-screen=home], .chapter { gap: var(--section-gap); }
main[data-screen=home] + footer { margin-block-start: var(--section-gap); }
.stack { gap: var(--content-gap); }
.grid { gap: var(--grid-gap); }
.grid:has(> :is(.card, .clinic-fact, .ds-doctor-card)) { gap: calc(var(--grid-gap) / 2); }
/* Add the saved gutter to the minimum width so cards grow instead of adding a smaller column. */
.grid:has(> :is(.card, .ds-doctor-card)):not(.benefits) { grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(250px + var(--grid-gap) / 2)), 1fr)); }
.builder-layout { gap: 12px; }
.tariff-builder { overflow-anchor: none; }
.builder-price-preview { --accent: var(--age-accent); --accent-hover: color-mix(in srgb, var(--age-accent) 85%, black); position: fixed; z-index: 20; inset-inline: 0; inset-block-end: var(--cookie-space, 0px); padding-block: 12px max(12px, env(safe-area-inset-bottom)); background: var(--paper); border-block-start: 1px solid var(--control-border); }
.builder-price-preview[hidden] { display: none; }
.builder-preview-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right)); }
.builder-price-preview p { margin: 0; }
.builder-preview-copy { flex: 1; min-width: 0; font-size: var(--caption); line-height: 1.4; overflow-wrap: break-word; }
.builder-preview-program { --button-height: 44px; min-width: 44px; max-width: 100%; padding: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; text-align: start; justify-content: flex-start; }
.builder-preview-program .builder-preview-title { display: block; }
.builder-preview-price { flex: none; font-size: var(--h3); line-height: 1.4; font-variant-numeric: tabular-nums; white-space: nowrap; }
.builder-preview-price small { font: inherit; }
.builder-preview-lead { flex: none; min-height: 44px; }
.builder-preview-close { --button-height: 44px; position: absolute; inset-block-start: 0; inset-inline-end: max(8px, env(safe-area-inset-right)); padding: 0; }
.builder-preview-payment:empty { display: none; }
@media (min-width: 40.001rem) {
  .builder-preview-inner { --preview-outer-space: max(0px, calc((var(--viewport-width, 100vw) - var(--container) - 2 * var(--gutter)) / 2)); padding-inline-end: max(var(--gutter), calc(60px - var(--preview-outer-space)), calc(env(safe-area-inset-right) + 52px - var(--preview-outer-space))); }
}
@media (max-width: 40rem) {
  .builder-preview-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
  .builder-preview-copy { grid-column: 1 / -1; padding-inline-end: 40px; }
  .builder-preview-price small { display: block; font-size: var(--caption); }
}
:root { scroll-padding-block-end: calc(var(--cookie-space, 0px) + var(--builder-preview-height, 0px)); }
.tariff-builder :is(button, input, summary) { scroll-margin-block-end: calc(var(--cookie-space, 0px) + var(--builder-preview-height, 0px) + 16px); }
body > dm-site-feedback { --dm-feedback-bottom-offset: calc(var(--cookie-space, 0px) + var(--builder-preview-height, 0px)); }
:root.dm-feedback-selecting .builder-price-preview { visibility: hidden; }
.ds-faq-list, .year-steps { gap: 8px; }
.chapter > .section { padding: var(--frame-padding); }
.programs-content { padding: 0; gap: var(--section-gap); background: transparent; }
.builder-levels { padding-inline: 0; }
.programs-content > .section { margin: 0; }
.chapter > .section.stack { gap: var(--title-gap); }
.card { padding: var(--card-padding); gap: var(--content-gap); }
.benefits .card {
  aspect-ratio: 364 / 340;
  overflow: hidden;
  box-shadow: none;
  background: var(--age-surface);
}
.benefit-copy { display: flex; flex-direction: column; gap: 12px; }
.benefits .ds-color-title {
  font-size: clamp(22px, 1.7vw, 24px);
  line-height: 1.2;
  letter-spacing: -.01em;
  color: var(--age-accent);
}
.benefit-copy p { margin: 0; font-size: 16px; line-height: 1.4; }
.benefit-art-woman { --benefit-art-url: url('benefit-woman-figma.png'); }
.benefit-art-stroller { --benefit-art-url: url('benefit-stroller-figma.png'); }
.benefit-art-percent { --benefit-art-url: url('benefit-percent-figma.png'); }
.benefits .benefit-art {
  width: 58%;
  height: auto;
  aspect-ratio: 1;
  flex: none;
  align-self: flex-end;
  margin-block-start: auto;
  margin-inline-end: calc(-1 * var(--card-padding));
  margin-block-end: calc(-1 * var(--card-padding));
  background: linear-gradient(145deg, color-mix(in srgb, var(--age-accent) 50%, white), color-mix(in srgb, var(--age-accent) 90%, white));
  mask: var(--benefit-art-url) center / contain no-repeat;
  -webkit-mask: var(--benefit-art-url) center / contain no-repeat;
}
.builder-summary { background: var(--age-surface); }
.builder-summary > .stack:last-child { gap: 12px; }
.builder-result-label { color: var(--age-accent); }
.builder-program-title { position: relative; width: fit-content; max-width: 100%; padding-block-end: 18px; }
.builder-preview-title { padding-block-end: 6px; }
@media (min-width: 48.001rem) {
  .builder-preview-title { font-size: var(--h3); font-weight: 500; }
}
.builder-title-mark { position: absolute; inset-inline-start: 0; bottom: 0; display: block; width: 100%; height: 12px; color: var(--age-accent); }
.physician-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--brand-dark-blue); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.physician-badge { display: flex; align-items: center; align-self: flex-start; gap: 12px; min-width: 0; min-height: 44px; max-width: 100%; }
.physician-badge img { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: center top; }
.physician-badge span { min-width: 0; }
.physician-name-link { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.doctor-actions { display: grid; gap: 12px; width: min(360px, 100%); margin-inline: auto; }
.doctor-actions:not(:has(> button:not([hidden]))) { display: none; }
.doctor-grid .ds-doctor-action > .btn { width: 100%; }
.doctor-toolbar { display: grid; grid-template-columns: max-content minmax(0, 1fr) max-content; align-items: center; gap: 12px; margin-block-end: 12px; }
.doctor-toolbar .ds-select { max-width: 100%; }
.doctor-toolbar .ds-select-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doctor-controls { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
@media (max-width: 40rem) {
  .doctor-toolbar { grid-template-columns: minmax(0, 1fr) max-content; }
  .doctor-toolbar .ds-select { grid-column: 1; grid-row: 1; }
  .doctor-toolbar .doctor-controls { grid-column: 2; grid-row: 1; }
  .doctor-count { grid-column: 1 / -1; grid-row: 2; }
}
.doctor-controls .ds-icon-icon { width: 24px; height: 24px; }
.doctor-controls .doctor-arrow-prev { mask-image: url('icons/chevron-left.png'); }
.doctor-controls .doctor-arrow-next { mask-image: url('icons/chevron-right.png'); }
.doctor-grid { --doctor-gap: calc(var(--grid-gap) / 2); --doctor-card-width: calc((100% - 3 * var(--doctor-gap)) / 4); display: flex; gap: var(--doctor-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-behavior: auto; padding-block: 8px 20px; scrollbar-width: none; }
.doctor-grid::-webkit-scrollbar { display: none; }
.doctor-grid.is-dragging, .doctor-grid.is-dragging * { cursor: grabbing; user-select: none; }
@media (hover: hover) { .doctor-grid { cursor: grab; } }
.doctor-grid > .ds-doctor-card { flex: 0 0 var(--doctor-card-width); min-width: 0; }
.doctor-grid .ds-doctor-spec .ds-tag-tag { white-space: normal; text-align: start; }
.doctor-grid:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.chapter > .clinic-gallery { background: transparent; padding: 0; }
.clinic-gallery-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-16); }
.clinic-gallery-grid { --clinic-gap: calc(var(--grid-gap) / 2); --clinic-card-width: calc((100% - 2 * var(--clinic-gap) - 32px) / 2); display: flex; gap: var(--clinic-gap); overflow-x: auto; overscroll-behavior-x: contain; padding-block: 4px 8px; scrollbar-width: none; }
.clinic-gallery-grid::-webkit-scrollbar { display: none; }
.clinic-gallery-grid:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.clinic-gallery-grid.is-dragging, .clinic-gallery-grid.is-dragging * { cursor: grabbing; user-select: none; }
@media (hover: hover) { .clinic-gallery-grid { cursor: grab; } }
.clinic-gallery-photo { flex: 0 0 var(--clinic-card-width); min-width: 0; margin: 0; }
.clinic-gallery-trigger { display: block; width: 100%; padding: 0; border: 0; border-radius: var(--radius-m); background: transparent; cursor: pointer; }
.clinic-gallery-trigger:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.clinic-gallery-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; border-radius: var(--radius-m); background: var(--age-surface); }
@media (hover: hover) and (pointer: fine) {
  .clinic-gallery-trigger[data-mask="1"] { --clinic-mask: url('clinic-gallery/mask-1.svg'); }
  .clinic-gallery-trigger[data-mask="2"] { --clinic-mask: url('clinic-gallery/mask-2.svg'); }
  .clinic-gallery-trigger[data-mask="3"] { --clinic-mask: url('clinic-gallery/mask-3.svg'); }
  .clinic-gallery-trigger img { mask: var(--clinic-mask) center / 210% 210% no-repeat; transition: mask-size 400ms cubic-bezier(0.2, 0, 0, 1); }
  .clinic-gallery-trigger:hover img { mask-size: 100% 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .clinic-gallery-trigger img { transition: none; }
}
.clinic-photo-modal .clinic-gallery-full { display: block; width: 100%; height: auto; max-height: calc(100dvh - 200px); object-fit: contain; }
.clinic-photo-viewer { position: relative; }
.clinic-photo-nav { position: absolute; inset-block-start: 50%; transform: translateY(-50%); }
.clinic-photo-nav[data-clinic-photo-step="-1"] { inset-inline-start: 12px; }
.clinic-photo-nav[data-clinic-photo-step="1"] { inset-inline-end: 12px; }
@media (max-width: 40rem) {
  .clinic-gallery-heading { grid-template-columns: minmax(0, 1fr); }
  .clinic-gallery-controls { justify-content: flex-start; }
  .clinic-gallery-grid { --clinic-card-width: calc(100% - 32px); }
}
@media (max-width: 72rem) {
  .doctor-grid { --doctor-card-width: calc((100% - 2 * var(--doctor-gap)) / 3); }
}
@media (max-width: 56rem) {
  .doctor-grid { --doctor-card-width: calc((100% - var(--doctor-gap)) / 2); }
}
@media (max-width: 40rem) {
  .doctor-grid { --doctor-card-width: calc(100% - 48px); width: calc(100% + 2 * var(--gutter)); margin-inline: calc(-1 * var(--gutter)); }
}
.doctor-profile-trigger { padding: 0; border-radius: var(--radius-xs); background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-align: start; }
.doctor-photo-trigger { display: block; width: 100%; border-radius: 24px; }
.doctor-photo-trigger .ds-doctor-photo { display: block; }
.doctor-photo-trigger .ds-doctor-photo img { display: block; }
@media (hover: hover) and (pointer: fine) {
  .doctor-grid:not(.is-dragging) .ds-doctor-card, .doctor-grid:not(.is-dragging) .doctor-profile-trigger { cursor: url('icons/eye-blue.svg?v=20261019-cursor72-original') 36 36, pointer; }
}
.doctor-grid .ds-doctor-photo img { object-position: center top; }
.doctor-name-trigger { justify-content: start; min-height: 44px; }
.ds-doctor-features { pointer-events: none; }
.doctor-profile-intro { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 24px; align-items: start; }
.doctor-profile-photo { display: block; width: 100%; height: auto; border-radius: 16px; }
.doctor-profile-intro .stack { min-width: 0; gap: 12px; }
.doctor-full-name { font-size: 20px; line-height: 1.3; }
.doctor-profile h3 { font-size: 20px; line-height: 1.2; }
.doctor-profile section { gap: 12px; }
.doctor-profile .content-list { padding-inline-start: 24px; }
.doctor-profile .content-list li + li { margin-block-start: 8px; }
.doctor-profile { overflow-wrap: anywhere; }
@media (hover: hover) {
  .doctor-name-trigger:hover { opacity: .7; }
}
@media (max-width: 48rem) {
  .doctor-profile-intro { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .doctor-profile-photo { max-width: 320px; }
  .doctor-photo-trigger { border-radius: 12px; }
  .ds-modal-dialog.ds-modal-l .ds-modal-header, .ds-modal-dialog.ds-modal-l .ds-modal-body, .ds-modal-dialog.ds-modal-l .ds-modal-footer { padding-inline: var(--gutter); }
}
.builder-composition-link { width: fit-content; max-width: 100%; justify-content: start; min-height: 44px; padding: 0; color: var(--brand); text-align: start; text-decoration: underline; text-underline-offset: 3px; }
.builder-composition-link:hover { background: transparent; }
h4 { font-size: var(--h4); line-height: 1.4; font-weight: 500; }
h5 { font-size: var(--h5); line-height: 1.4; font-weight: 500; }
h6 { font-size: var(--h6); line-height: 1.4; font-weight: 500; }
.section > h2 { font-size: 32px; line-height: 1.125; }
.chapter > .section:not([data-block]) { padding-inline: 0; }
.chapter > .section:not([data-block]) > h2 { margin-inline: 0; }
.muted { color: var(--text-muted); }
.eyebrow { width: fit-content; margin-bottom: 8px; font-variant-numeric: tabular-nums; }
.choices { display: grid; gap: 12px; max-width: 760px; }
.choice { border-radius: var(--radius-xs); }
.choice strong, .choice span span { display: block; }
.ds-choice-row { min-width: 0; }
.builder-mama, .consent { align-items: start; }
.builder-mama { border-radius: var(--radius-xs); }
.builder-mama::before { inset: 0; border-radius: inherit; }
.builder-mama > .ds-choice-control, .consent > .ds-choice-control { font: inherit; margin-block-start: calc((1lh - 24px) / 2); }
.builder-options > div { gap: 8px; }
.builder-modes { display: grid; gap: 8px; min-width: 0; }
.builder-mode-tabs { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; }
.builder-mode-tabs > .ds-switcher-option { width: 100%; height: auto; white-space: normal; }
@media (max-width: 40rem) { .builder-mode-tabs { grid-template-columns: minmax(0, 1fr); } }
.builder-options label { border-radius: var(--radius-xs); }
.builder-options:has([name=builder-vacc]) label { min-height: 44px; }
.builder-switch { opacity: 1; }
.builder-switch:focus-visible { outline: none; }
.builder-switch:disabled { cursor: not-allowed; }
.ds-input-root { display: block; width: 100%; }
.ds-select { width: fit-content; max-width: min(313px, 100%); justify-self: start; }
.ds-input-field, .ds-select-field { position: relative; }
.ds-select-value { min-width: 0; }
.ds-select-trigger .ds-chevron { position: static; flex: none; }
.ds-select-trigger[aria-expanded=true] .ds-chevron { transform: rotate(180deg); }
.ds-dropdown-list { padding-block: 8px; }
.ds-dropdown-panel .ds-choice-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ds-select .ds-select-active::before { background: var(--radio-hover); }
@media (hover: hover) { .ds-select .ds-choice-row:hover:not(:disabled):not(:has(:disabled))::before { background: var(--radio-hover); } }
.ds-select .ds-choice-control { background-image: url('controls/radio.svg'); }
.ds-select [aria-selected=true] .ds-choice-control { background-image: url('controls/radio-checked.svg'); }
.ds-summary { display: flex; align-items: center; justify-content: flex-start; gap: 12px; list-style: none; }
.builder-vaccination > .ds-summary { justify-content: flex-start; gap: 8px; }
.builder-level > details > .ds-summary { display: block; }
.builder-level > details > .ds-summary > .ds-chevron { margin-inline-start: 8px; vertical-align: middle; }
.ds-summary::-webkit-details-marker { display: none; }
details[open] > .ds-summary > .ds-chevron { transform: rotate(180deg); }
.footer-link { justify-content: start; text-align: start; }
.footer-bottom .footer-link { width: fit-content; max-width: 100%; min-height: 44px; padding-inline: 0; font: inherit; letter-spacing: inherit; text-decoration: underline; text-underline-offset: 3px; }
.footer-bottom .footer-link.ds-button-pseudo:hover { background: transparent; }
header { gap: 24px; z-index: 10; flex-wrap: nowrap; padding-block: 24px; }
header .brand, header .controls { flex: none; }
header .controls { gap: 24px; }
.header-nav { display: flex; flex: 1; align-items: center; justify-content: space-evenly; gap: 20px; min-width: 0; }
.header-nav a { display: flex; flex: none; align-items: center; min-height: 44px; color: var(--text); font-size: 16px; line-height: 24px; white-space: nowrap; text-decoration: none; }
.header-nav a[aria-current] { color: var(--age-accent); }
@media (hover: hover) { .header-nav a:hover { text-decoration: underline; } }
@media (max-width: 75rem) {
  header { flex-wrap: wrap; gap: 8px 24px; padding-block: 16px; }
  header .header-phone { margin-inline-start: auto; }
  .header-nav { order: 1; flex-basis: 100%; }
}
.header-phone { display: inline-flex; align-items: center; justify-content: center; flex: none; text-decoration: none; min-height: 44px; padding-block: 4px; font-size: 16px; line-height: 24px; white-space: nowrap; color: var(--brand-dark-blue); font-variant-numeric: tabular-nums; }
.header-phone-icon, .footer-phone-icon { flex: none; background: linear-gradient(135deg, color-mix(in srgb, var(--age-accent) 85%, black), color-mix(in srgb, var(--age-accent) 75%, black)); mask: url('illustrations/phone.svg') center / contain no-repeat; -webkit-mask: url('illustrations/phone.svg') center / contain no-repeat; }
.header-phone-icon { display: none; }
.footer-phone { gap: 8px; }
.footer-phone-icon { display: inline-block; width: 24px; height: 24px; }
header .ds-header-age { flex: none; }
:is(.ds-header-age, .configuration-program) .ds-select-trigger { padding: 0; min-height: 44px; gap: 8px; border: 0; border-radius: 0; background: transparent; color: var(--text); }
:is(.ds-header-age, .configuration-program) .ds-select-value { position: relative; padding-block: 5px; }
:is(.ds-header-age, .configuration-program) .ds-select-value::after { content: ''; position: absolute; inset: auto 0 0; height: 3px; border-radius: 3px; background: var(--age-accent); }
:root[data-go-age=child] header [data-dialog=contact] { --blue: var(--accent); --blue-hover: var(--accent-hover); --blue-disabled: var(--accent-disabled); }
dialog label, .lead-form label { display: grid; gap: 6px; }
dialog .consent, .lead-form .consent { display: flex; gap: 8px; }
.consent-documents { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-block-start: 4px; }
.chapter > [data-block=feedback] { background: var(--age-surface); }
[data-block=feedback] .lead-form { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); column-gap: var(--title-gap); }
[data-block=feedback] .lead-form > * { grid-column: 2; min-width: 0; }
[data-block=feedback] .lead-form > .coordinator { grid-column: 1; grid-row: 1 / span 5; align-self: start; padding: 0; background: transparent; flex-direction: column; align-items: start; }
[data-block=feedback] .coordinator img { width: 144px; height: 144px; }
[data-block=feedback] .coordinator p { max-width: 36ch; line-height: 1.5; }
[data-block=feedback] .coordinator b { display: block; margin-block-end: 8px; }
[data-block=feedback] .lead-form > label:not(.consent), [data-block=feedback] .lead-form > button { justify-self: start; }
[data-block=feedback] :is(.ds-input-field, .ds-select-trigger) { background: var(--surface); }
[data-block=feedback] .consent { padding-inline: 0; align-items: start; background: transparent; border-radius: var(--radius-xs); line-height: 1.5; }
[data-block=feedback] .consent::before { inset-inline: 0; }
[data-block=feedback] .lead-form > button { min-height: 64px; min-width: 240px; padding: 20px 32px; font-size: 18px; }
@media (max-width: 60rem) {
  [data-block=feedback] .lead-form { grid-template-columns: minmax(0, 1fr); }
  [data-block=feedback] .lead-form > *, [data-block=feedback] .lead-form > .coordinator { grid-column: 1; grid-row: auto; }
}
@media (max-width: 40rem) {
  [data-block=feedback] .lead-form > .grid { grid-template-columns: minmax(0, 1fr); }
  [data-block=feedback] .lead-form > button { justify-self: stretch; }
  [data-block=feedback] .lead-form > label:not(.consent) { justify-self: stretch; }
}
.ds-modal-footer > .btn { width: 100%; }
#dialog.lead-success-modal { width: 420px; max-width: calc(100vw - 32px); height: fit-content; border-radius: var(--radius-l); }
.lead-success-content { justify-items: center; text-align: center; }
.lead-success-sun { position: relative; display: block; flex: none; width: 144px; height: auto; aspect-ratio: 180 / 187; }
.lead-success-sun img { display: block; width: 100%; height: auto; }
.lead-success-sun img + img { position: absolute; inset: 0; }
.ds-modal-dialog:has(> dm-site-feedback[data-in-dialog]) > .ds-modal-layout { max-height: calc(100dvh - 48px - 52px - max(16px, env(safe-area-inset-bottom))); }
@media(max-width: 767px) {
  body:has(dm-site-feedback) footer { padding-block-end: calc(84px + env(safe-area-inset-bottom)); }
  .ds-modal-dialog:has(> dm-site-feedback[data-in-dialog]) > .ds-modal-layout { max-height: calc(100dvh - 32px - 52px - max(16px, env(safe-area-inset-bottom))); }
  #dialog.quiz-modal { inset: 0; width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 24px; }
  #dialog.quiz-modal > .ds-modal-layout { height: 100%; max-height: 100%; }
  #dialog.quiz-modal .ds-modal-body { flex: 1; padding-block-end: calc(84px + env(safe-area-inset-bottom)); }
}
.ds-modal-title { max-width: none; text-wrap: pretty; }
body:has(dialog[open]) { overflow: hidden; }
.ds-icon-icon { width: 20px; height: 20px; }
.ds-chevron { mask-image: url('icons/chevron-down.png'); }
.ds-close { mask-image: url('icons/close.png'); }
.ds-alert { mask-image: url('icons/alert-filled.png'); }
.ds-user { mask-image: url('icons/user.png'); width: 48px; height: 48px; }
.ds-doctor-photo > img { max-width: none; }
.ds-faq-question > h4 { font: inherit; margin: 0; }
.ds-faq-item { background: var(--age-surface); }
.ds-faq-chevron { background: color-mix(in srgb, var(--age-accent) 14%, var(--age-surface)); }
.chapter > [data-block=faq], .chapter > [data-block=doctors] { background: transparent; margin-inline: 0; padding: 0; }
.meeting-card { --meeting-padding: var(--frame-padding); position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; width: 100%; min-width: 0; aspect-ratio: 1120 / 378; min-height: 336px; padding: var(--meeting-padding); border-radius: var(--radius-xl); overflow: hidden; background: var(--age-surface); }
.meeting-title { position: relative; z-index: 1; margin: 0; font-size: min(var(--h2), 40px); line-height: 1.2; }
.meeting-title span, .meeting-offer span { color: var(--age-accent); }
.meeting-offer { position: relative; z-index: 1; margin: 0; font-size: min(var(--h3), 24px); line-height: 1.2; }
.meeting-description { position: relative; z-index: 1; max-width: 40%; margin: 8px 0 0; font-size: var(--body-small); line-height: 1.4; }
.meeting-no-obligations { position: relative; display: inline-block; max-width: 100%; }
.meeting-no-obligations::after { content: ''; position: absolute; inset-inline-start: 0; bottom: -7px; width: 100%; aspect-ratio: 201.0877 / 9.3759; background: var(--age-accent); mask: url('meeting-underline.png') center / contain no-repeat; -webkit-mask: url('meeting-underline.png') center / contain no-repeat; }
.meeting-card > .btn { position: relative; z-index: 1; max-width: 40%; margin-block-start: auto; }
.meeting-art { position: absolute; inset-inline-end: 0; bottom: 0; display: block; width: var(--meeting-art-width, 54.17%); max-width: none; height: calc(100% - var(--meeting-padding)); pointer-events: none; }
.meeting-art[data-meeting-age=child] { --meeting-art-width: 61.93%; }
.meeting-art img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: right bottom; }
@media (max-width: 64rem) {
  .meeting-card { aspect-ratio: auto; min-height: 0; gap: 8px; }
  .meeting-title { font-size: clamp(26px, 4vw, 32px); line-height: 1.15; }
  .meeting-description, .meeting-card > .btn { max-width: 100%; }
  .meeting-card > .btn { width: 100%; margin-block-start: -8px; }
  .meeting-art { position: relative; inset: auto; height: auto; width: calc((100% + 2 * var(--meeting-padding)) * .6); align-self: flex-end; margin: 8px 0 0; }
  .meeting-art img { height: auto; }
  .meeting-description { margin-block-start: 0; }
}
@media (max-width: 48rem) {
  .meeting-card { --meeting-padding: var(--gutter); gap: 8px; padding-block: var(--space-40) 0; }
  .meeting-title { font-size: 24px; text-wrap: wrap; }
  .meeting-offer { font-size: var(--h3); }
  .meeting-description { margin-block-start: 16px; font-size: var(--caption); line-height: 1.4; }
  .meeting-art { width: calc(100% + 2 * var(--meeting-padding)); align-self: center; margin: 32px calc(-1 * var(--meeting-padding)) 0; }
  .meeting-card > .btn { position: absolute; inset-inline: var(--meeting-padding); bottom: 12px; width: auto; max-width: none; min-height: 64px; margin: 0; }
}
.ds-faq-question { padding-block: 0; }
.ds-faq-answer > :last-child { margin-bottom: 0; }
.error { margin-block: 16px; }
.chapter > [data-block=clinic], .chapter > [data-block=about] { background: transparent; padding: 0; }
.clinic-facts { --fact-accent: var(--age-accent); --fact-caption: var(--age-caption); grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); grid-template-areas: 'families medicine' 'clinics medicine'; gap: var(--grid-gap); font-size: 24px; line-height: 1.2; letter-spacing: -.01em; }
.clinic-fact { display: flex; flex-direction: column; gap: var(--space-8); min-width: 0; padding: var(--card-padding); border-radius: var(--radius-l); background: var(--age-surface); }
.clinic-fact-families { grid-area: families; justify-content: flex-start; }
.clinic-fact-clinics { grid-area: clinics; justify-content: flex-start; }
.clinic-fact-families, .clinic-fact-clinics { gap: 8px; }
.clinic-fact p { margin: 0; overflow-wrap: anywhere; }
.fact-heading { font-size: 32px; font-weight: var(--font-weight-heading); line-height: 1.2; }
.fact-number { display: inline-block; font-size: 44px; line-height: 1; color: var(--fact-accent); vertical-align: baseline; }
.fact-accent { color: var(--fact-accent); }
.fact-caption { color: var(--fact-caption); line-height: 1.1; }
.clinic-fact-clinics .fact-caption { font-size: 22px; }
.clinic-fact-medicine { grid-area: medicine; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 0; min-height: 370px; padding: 0; padding-inline-end: var(--card-padding); overflow: hidden; }
.medicine-copy { display: flex; flex-direction: column; gap: var(--space-32); min-width: 0; padding: var(--card-padding); }
.clinic-fact-medicine .fact-heading { font-size: clamp(24px, 2vw, 28px); line-height: 1.2; }
.clinic-fact .fact-description { margin-top: auto; font-size: var(--body-small); line-height: 1.4; color: var(--fact-caption); }
.medicine-visual { position: relative; min-width: 0; align-self: end; aspect-ratio: 276.27 / 370; pointer-events: none; }
.medicine-visual img { position: absolute; bottom: 0; display: block; width: 100%; height: auto; }
/* Keep the original SVG's radial alpha gradient; its tint follows the age palette. */
.fact-heart { position: absolute; inset-inline-start: -5.73%; inset-block-start: 22.44%; width: 92.4%; aspect-ratio: 255 / 272; background: var(--fact-accent); mask: url('facts-heart-figma.svg') center / contain no-repeat; -webkit-mask: url('facts-heart-figma.svg') center / contain no-repeat; }
[data-block=clinic] > .block-title, [data-block=chat] > .block-title { margin-block-end: 0; }
.chapter > .section[data-block=clinic] > .block-title { font-size: var(--h2); margin-block-end: calc(12px - var(--title-gap)); }
.clinic-intro { max-width: none; font-size: var(--body); line-height: 1.5; }
.clinic-intro-accent { color: var(--blue); }
.builder-items { overflow-wrap: anywhere; }
.builder-items, .builder-side > .content-list, .composition-content .content-list { list-style: none; padding-inline-start: 24px; }
.builder-items > li, .builder-side > .content-list > li, .composition-content li { position: relative; }
.builder-items > li::before, .builder-side > .content-list > li::before, .composition-content li::before { content: ""; position: absolute; inset-inline-start: -24px; inset-block-start: .3em; width: 16px; height: 16px; background: var(--age-accent); mask: url('icons/heart-filled.png') center / 150% 150% no-repeat; -webkit-mask: url('icons/heart-filled.png') center / 150% 150% no-repeat; }
@media (forced-colors: active) { .builder-items > li::before, .builder-side > .content-list > li::before, .composition-content li::before { background: CanvasText; } }
.builder-items li + li { border: 0; margin-top: 0; }
.builder-items p { padding: 0; margin-block: var(--space-8) 0; opacity: .78; }
.doctor-fee-amount { text-decoration: underline; text-decoration-color: var(--age-accent); text-decoration-thickness: 3px; text-underline-offset: 5px; white-space: nowrap; }
.builder-summary .selected-physician, .doctor-fee, .quiz-hint { font-size: 16px; line-height: 24px; }
.builder-switch[aria-disabled=true] { cursor: help; }
.builder-switch:focus-visible .ds-toggle-track { outline-color: var(--brand-dark-blue); }
.builder-row h4 > label { cursor: pointer; }
.configuration-summary { padding: var(--card-padding); border-radius: var(--radius-s); background: var(--age-surface); gap: var(--content-gap); }
.configuration-summary h3, .configuration-program { color: var(--age-accent); }
.configuration-program .ds-select-trigger { color: inherit; font: inherit; }
.configuration-program .ds-select { max-width: 100%; }
.configuration-summary dl { margin: 0; display: grid; gap: 12px; }
.configuration-summary dl > div { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(0, 2fr); gap: 12px; }
.configuration-summary dl > div:has(.physician-link, .ds-select) { align-items: center; }
.configuration-summary dd { margin: 0; overflow-wrap: break-word; }
.configuration-summary dt { color: var(--text-muted); }
.quiz-content { background: var(--surface); padding: 0; border-radius: 0; }
.quiz-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.quiz-actions:has(> button:only-child) { grid-template-columns: minmax(0, 1fr); }
.quiz-actions > .btn { width: 100%; height: auto; white-space: normal; }
#quiz-question { font-size: var(--h3); line-height: 1.3; scroll-margin: 0; }
.year-start .timeline { display: grid; grid-template-columns: 1fr; gap: 16px; }
#care > [data-block=year] { background: var(--age-surface); padding-inline: var(--gutter); }
.year-stage { gap: var(--space-16); }
.year-stage > p, [data-block=year] > p { max-width: 70ch; line-height: 1.5; text-wrap: pretty; }
.year-route { gap: var(--space-8); padding-block: var(--space-8); }
.year-endpoints { gap: var(--space-8); font-size: var(--caption); color: var(--text); }
.year-endpoints .ds-tag-tag { background: color-mix(in srgb, var(--age-accent) 14%, var(--age-surface)); color: var(--text); white-space: nowrap; }
.year-line { position: relative; height: 120px; margin-inline: 0; pointer-events: none; }
.year-line svg { display: block; width: 100%; height: 100%; overflow: visible; }
.year-line path { fill: none; stroke: var(--age-accent); stroke-width: 3; stroke-dasharray: 6 10; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.year-track { opacity: .35; }
.year-progress { clip-path: inset(0 calc(100% - var(--year-marker-x, 2%)) 0 0); }
.year-marker { position: absolute; left: var(--year-marker-x, 2%); top: var(--year-marker-y, 53.33%); width: 36px; height: 36px; transform: translate(-50%, -50%); background: var(--age-accent); mask: url('icons/heart-filled.png') center / 150% 150% no-repeat; -webkit-mask: url('icons/heart-filled.png') center / 150% 150% no-repeat; }
.year-step { background: var(--surface); border-radius: var(--radius-m); }
.year-step-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.year-month { flex: none; font-size: var(--h4); line-height: 1.15; }
.year-step-heading h3 { font-size: var(--h4); line-height: 1.15; text-decoration: underline; text-decoration-color: var(--age-accent); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.year-step > p { max-width: 65ch; line-height: 1.5; }
.year-start summary { display: block; min-height: 44px; cursor: pointer; list-style: none; }
.year-start summary > .ds-chevron { margin-inline-start: 8px; vertical-align: middle; }
.year-start summary::-webkit-details-marker { display: none; }
.year-start .timeline { margin-block-start: var(--space-16); font-size: var(--body-small); line-height: 1.5; }
.year-start .timeline h4 { font-size: var(--body-small); text-decoration: underline; text-decoration-color: var(--age-accent); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.year-controls { align-items: center; justify-content: space-between; gap: var(--space-16); }
.year-count { margin: 0; font-size: var(--h4); line-height: 1.25; font-weight: var(--font-weight-heading); color: var(--text); }
.year-buttons { display: flex; gap: var(--space-8); }
[data-block=year] > p .btn { background: color-mix(in srgb, var(--age-accent) 14%, var(--age-surface)); color: var(--text); }
@media (max-width: 48rem) {
  .year-line { height: 96px; margin-inline: 8px; }
  .year-marker { width: 28px; height: 28px; }
  .year-step { border-radius: var(--radius-l); }
  .year-controls { display: grid; }
  .year-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.composition-link { display: flex; margin-top: 8px; }
.table-wrap { position: relative; }
#program-comparison {
  --surface: var(--age-table-surface);
  margin-inline: 0;
  padding: var(--frame-padding) var(--gutter);
  border-radius: var(--radius-xl);
  background: var(--surface);
}
#program-comparison .ds-comparison-scroller { border-radius: var(--radius-s); }
.ds-comparison-table td { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; hyphens: auto; }
#program-comparison .ds-comparison-table tbody th { font-weight: var(--font-weight-heading); }
#program-comparison .ds-comparison-table {
  --comparison-name-width: 200px;
  --comparison-price-width: 160px;
  --comparison-service-width: 180px;
  table-layout: fixed;
  width: calc(var(--comparison-name-width) + var(--comparison-price-width) + 6 * var(--comparison-service-width));
  min-width: 0;
}
#program-comparison .ds-comparison-table thead th { width: var(--comparison-service-width); min-width: 0; overflow-wrap: anywhere; hyphens: auto; }
#program-comparison .ds-comparison-table thead th:first-child,
#program-comparison .ds-comparison-table tbody th {
  position: sticky; left: 0; width: var(--comparison-name-width); min-width: 0; overflow-wrap: anywhere; hyphens: auto;
}
#program-comparison .ds-comparison-table .comparison-cost {
  position: static; left: auto; z-index: auto;
  width: var(--comparison-price-width);
}
#program-comparison .ds-comparison-table tbody .comparison-cost {
  font-size: 24px; line-height: 28px; font-weight: var(--font-weight-heading); white-space: nowrap;
}
#program-comparison .ds-comparison-table tr > th:first-child,
#program-comparison .ds-comparison-table .comparison-cost { background: var(--age-table-sticky-surface); border-radius: 0; }
#program-comparison .ds-comparison-table thead th:first-child { border-start-start-radius: var(--radius-s); }
#program-comparison .ds-comparison-table thead .comparison-cost { border-start-end-radius: var(--radius-s); }
#program-comparison .ds-comparison-table tbody tr:last-child th { border-end-start-radius: var(--radius-s); }
#program-comparison .ds-comparison-table tbody tr:last-child .comparison-cost { border-end-end-radius: var(--radius-s); }
.comparison-price { display: inline-block; padding-block: 6px; background: transparent; }
.comparison-price small { font-size: var(--caption); line-height: inherit; }
@media (max-width: 767px) {
  #program-comparison .ds-comparison-table {
    --age-table-sticky-surface: var(--age-table-surface);
    --radius-s: 0px;
    --comparison-name-width: clamp(72px, 24cqi, 96px);
    --comparison-price-width: clamp(72px, 24cqi, 96px);
    --comparison-service-width: clamp(120px, calc((100cqi - var(--comparison-name-width) - var(--comparison-price-width)) / 2), 180px);
  }
  #program-comparison .ds-comparison-table th,
  #program-comparison .ds-comparison-table td { padding-inline: 6px; }
  #program-comparison .ds-comparison-table thead th { font-size: 12px; line-height: 16px; }
  #program-comparison .ds-comparison-table tbody .comparison-cost { font-size: 16px; line-height: 20px; }
  #program-comparison .ds-comparison-table tr > th:first-child,
  #program-comparison .ds-comparison-table .comparison-cost { border-inline-end: 1px solid var(--control-border); }
  .comparison-price { display: inline-flex; flex-direction: column; align-items: flex-start; padding-block: 4px; }
  .comparison-price small { font-size: 12px; line-height: 16px; }
  .composition-link { padding-inline: 0; min-height: 40px; font-size: var(--caption); }
}
.ds-comparison-table td > [aria-label="Не включено"] { display: inline-block; font-size: 24px; line-height: 24px; vertical-align: top; }
/* Фото и маски из Figma 284:20280/284:20294; текст и компоненты остаются из ДС ГО. */
.chapter > .hero { position: relative; display: block; padding: 0; overflow: hidden; background: var(--surface); border-radius: var(--radius-xl); }
.hero-copy { position: relative; z-index: 1; width: 54.11%; margin-inline-start: 0; padding-block: var(--frame-padding); }
.hero-copy > p:not(.eyebrow) { max-width: 46ch; font-weight: var(--font-weight-body); }
.hero-copy > p.muted { font-size: var(--caption); line-height: 20px; }
.hero-art { position: absolute; inset: 0 0 0 35.67%; pointer-events: none; }
.hero-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 30% center; }
.hero-emphasis { color: var(--age-hero-accent); }
@media (max-width: 80rem) {
  .chapter > .hero { display: flex; flex-direction: column; align-items: flex-start; }
  .hero-art, [data-hero-age=child] .hero-art { position: relative; inset: auto; flex: none; align-self: center; width: min(100%, 520px); aspect-ratio: 375 / 331.5; overflow: hidden; }
  [data-hero-age=baby] .hero-art { aspect-ratio: 750 / 690; }
  .hero-art img { height: auto; }
  .hero-copy { width: 100%; max-width: 680px; margin: 0; padding: var(--frame-padding) 0 0; text-align: start; }
  .hero-copy .eyebrow, .hero-copy h1, .hero-copy p { margin-inline: 0; }
  .hero-copy .actions { justify-content: flex-start; }
}
@media (max-width: 68.75rem) {
  .clinic-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: 'families clinics' 'medicine medicine'; }
  .clinic-fact-families, .clinic-fact-clinics { min-height: 180px; }
  .clinic-fact-medicine { grid-template-columns: minmax(0, 1fr) minmax(0, 300px); }
  .clinic-fact-medicine .fact-heading { font-size: 28px; }
}
@media (max-width: 57.5rem) {
  .benefits { grid-template-columns: minmax(0, 1fr); }
  .benefits .card { aspect-ratio: auto; }
  .benefits .benefit-art { width: min(58%, 180px); }
  .clinic-fact-medicine .fact-heading { line-height: 1.4; }
}
@media (max-width: 40rem) {
  .builder-level { padding-block: 12px; }
  .builder-row > div > p { display: none; }
  .benefits .card { display: flex; flex-direction: column; aspect-ratio: auto; min-block-size: calc((100vw - 2 * var(--gutter)) * 330 / 450); padding: var(--card-padding); gap: 12px; }
  .benefit-copy { gap: 12px; }
  .benefits .ds-color-title { font-size: 24px; }
  .benefits .benefit-art { position: static; width: 28%; margin: 0; margin-block-start: auto; }
  .clinic-facts { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'families' 'clinics' 'medicine'; }
  .clinic-fact-medicine { grid-template-columns: minmax(0, 1fr); padding: 0; }
  .clinic-fact-medicine .fact-heading { font-size: 24px; }
  .medicine-copy { gap: var(--space-16); }
  .medicine-visual { width: min(75%, 280px); justify-self: end; margin-inline-end: var(--card-padding); }
  /* Halve the visible gap, including transparent headroom in the Figma image. */
  .medicine-visual { margin-block-start: calc(var(--card-padding) / -2 - min(7.1925%, 26.852px)); }
}
/* The hero, meeting banner and year journey extend beyond the standard container. */
@media (min-width: 48.001rem) {
  .chapter > .hero, .meeting-card, #care > [data-block=year] {
    width: calc(100% + 2 * var(--gutter));
    margin-inline: calc(-1 * var(--gutter));
  }
  .hero-copy { padding-inline-start: var(--gutter); }
}
@media (max-width: 48rem) {
  :root { --card-padding: var(--gutter); }
  .shell { padding-block-start: var(--nav-height, 0px); }
  /* Paint behind the native toolbar without clipping scrolling content. */
  .shell > header::before { inset-block-start: -100%; }
  .shell > header { position: fixed; inset: 0 0 auto; max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
  /* These wide surfaces reach the screen edges; other sections keep the gutter. */
  .chapter > .hero, .meeting-card, #care > [data-block=year] {
    width: calc(100% + 2 * var(--gutter));
    margin-inline: calc(-1 * var(--gutter));
  }
  .hero-art, [data-hero-age=child] .hero-art { width: 100%; }
  .hero-copy { max-width: none; padding-inline: var(--gutter); padding-block-start: calc(var(--frame-padding) - 16px); }
  .clinic-fact-medicine { padding-inline-end: 0; }
  .medicine-visual { margin-inline-end: 0; }
  .clinic-fact-families, .clinic-fact-clinics { min-height: 0; }
  .ds-doctor-body, .ds-faq-item { padding: var(--card-padding); }
  .builder-levels { padding-inline: var(--card-padding); }
  main :is(.card, .clinic-fact, .builder-levels) :is(h3, h4, h5, h6, .fact-heading),
  main :is(.ds-doctor-name, .ds-faq-question) { line-height: 1.15; }
  .section > h2 { font-size: 24px; line-height: 1.2; }
  .clinic-fact { border-radius: var(--radius-xl); }
  .configuration-summary dl > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}
@media (max-width: 48rem), (max-height: 30rem) and (pointer: coarse) {
  .shell > header { display: grid; grid-template-columns: minmax(0, 1fr) auto 44px; grid-template-areas: 'brand age phone'; align-items: center; gap: 12px; padding-block: 12px; padding-inline: max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right)); }
  header .brand { grid-area: brand; min-width: 0; width: fit-content; }
  header .brand img { width: 100px; max-width: 100%; }
  header .header-nav, header .controls { display: none; }
  header > .ds-header-age { grid-area: age; }
  header > .ds-header-age .ds-select-trigger { font-size: 16px; }
  header .header-phone { grid-area: phone; width: 44px; height: 44px; margin: 0; padding: 10px; border-radius: var(--radius-s); background: var(--age-surface); }
  .header-phone-number { display: none; }
  .header-phone-icon { display: block; width: 24px; height: 24px; }
  body .floating-questions { position: static; width: fit-content; max-width: 100%; margin: 24px auto; }
  body .floating-questions > .floating-sun { display: none; }
}
@media (forced-colors: active) {
  .benefits .benefit-art { background: CanvasText; }
  .fact-heart { background: CanvasText; }
  .ds-icon-icon { background: CanvasText; }
  .builder-switch span { border: 1px solid CanvasText; }
  .builder-switch[aria-checked=true] span { background: Highlight; }
}
/* Figma 224:16301 / 249:17239: live HTML replaces the raster conversation. */
.chapter .chat-demo {
  --chat-gradient-origin: 4.5%;
  --chat-gradient-radius: 95.5%;
  position: relative;
  display: block;
  padding: 60px var(--gutter) 0;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  overflow: hidden;
  background: radial-gradient(ellipse var(--chat-gradient-radius) var(--chat-gradient-radius) at 50% var(--chat-gradient-origin), var(--age-chat-accent), var(--surface));
}
.chat-copy { position: relative; z-index: 1; justify-items: center; gap: 8px; color: var(--surface); text-align: center; }
.chat-copy .block-title { font-size: min(var(--h2), 44px); line-height: 1.2; }
.chat-copy > p { max-width: 65ch; font-size: var(--body); }
.chat-copy .chat-hours { font-size: var(--h4); font-weight: 500; }
.chat-stage { position: relative; width: min(100%, 1200px); margin-inline: auto; margin-block-start: 24px; }
.chat-sun { position: absolute; top: 66px; inset-inline-start: calc(50% + 26px); width: 415px; height: auto; pointer-events: none; }
.chat-device { position: relative; z-index: 1; width: 366px; aspect-ratio: 733 / 1477; margin-inline: auto; }
.chat-device-frame { z-index: 0; position: absolute; inset: 0; width: 100%; height: auto; pointer-events: none; }
.chat-ui { z-index: 1; position: absolute; inset: 1.9% 4.1%; display: flex; flex-direction: column; overflow: hidden; border-radius: 14.3% / 6.8%; padding-block-start: 12%; padding-block-end: 43px; background: var(--surface); }
.chat-top { display: flex; align-items: center; gap: 10px; flex: none; padding: 16px 12px; border-bottom: 1px solid var(--control); font-size: 14px; line-height: 1.4; }
.chat-top > img { flex: none; width: 36px; height: 36px; object-fit: cover; object-position: center top; border-radius: 50%; }
.chat-top p { font-size: 12px; color: var(--text-muted); }
.chat-online { display: flex; align-items: center; gap: 6px; }
.chat-online::before { content: ""; flex: none; width: 5px; height: 5px; border-radius: 50%; background: var(--success); }
.chat-history { flex: 1; min-height: 0; overflow-y: hidden; overscroll-behavior: auto; touch-action: pan-y pinch-zoom; padding: 16px 12px 160px; transition-property: none; }
.chat-history:focus-visible { outline-offset: -4px; }
/* Extra scroll room keeps the last reply above the permanent blur. */
.chat-day { margin-block-end: 16px; font-size: 12px; text-align: center; color: var(--text-muted); }
.chat-messages { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; list-style: none; margin: 0; padding: 0; }
.chat-messages > li { max-width: 86%; padding: 12px; border-radius: 12px 12px 12px 0; background: var(--control); font-size: 14px; line-height: 1.4; }
.chat-messages > li[data-sender=parent] { align-self: flex-end; border-radius: 12px 12px 0 12px; background: var(--brand-dark-blue); color: var(--surface); }
.chat-messages > li > p { white-space: pre-line; }
.chat-messages time { display: block; margin-block-start: 4px; font-size: 12px; text-align: end; opacity: .65; font-variant-numeric: tabular-nums; }
.chat-typing { display: flex; align-items: center; gap: 8px; width: fit-content; max-width: 100%; padding: 12px; margin-block-start: 12px; border-radius: 12px; background: var(--control); font-size: 12px; color: var(--text-muted); }
.chat-typing[data-sender=parent] { margin-inline-start: auto; }
.chat-typing-dots { display: flex; gap: 3px; }
.chat-typing-dots i { width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.chat-controls [data-chat-control] { min-height: 44px; padding-inline: 12px; font-size: 12px; }
@media (prefers-reduced-motion: no-preference) {
  .chat-message-enter { animation: chat-message-enter .2s ease-out both; }
  .chat-typing-dots i { animation: chat-typing .9s ease-in-out infinite alternate; }
  .chat-typing-dots i:nth-child(2) { animation-delay: .15s; }
  .chat-typing-dots i:nth-child(3) { animation-delay: .3s; }
  [data-chat-state=paused] .chat-typing-dots i, [data-chat-state=waiting] .chat-typing-dots i { animation-play-state: paused; }
}
@keyframes chat-message-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes chat-typing { from { opacity: .35; } to { opacity: 1; } }
@media (max-width: 48rem), (max-width: 64rem) and (hover: none) and (pointer: coarse) {
  #home .chat-demo { --sun-travel: 73.78%; --chat-fit-phone: 1; --chat-mobile-fade-height: clamp(40px, calc(var(--viewport-width, 100vw) * .16), 80px); --chat-mobile-phone-width: min(calc(var(--viewport-width, 100vw) * .792535), 600px); display: grid; grid-template-rows: auto minmax(0, 1fr); gap: var(--space-16); height: var(--chat-scene-height, calc(var(--viewport-width, 100vw) * 821 / 438)); padding-block: calc(var(--viewport-width, 100vw) * .12) 0; background: var(--surface); }
  #home .chat-demo::before { content: ""; position: absolute; inset: 0; background: var(--age-chat-accent); mask: url("chat-gradient-mobile-figma.svg") 0 0 / 100% 100% no-repeat; pointer-events: none; }
  .chat-copy { justify-items: center; text-align: center; gap: var(--space-8); }
  .chat-copy .block-title { font-size: clamp(22px, 6.85vw, 30px); }
  .chat-copy .chat-hours { font-size: 20px; line-height: 1.2; }
  .chat-copy > p { font-size: 16px; line-height: 1.4; }
  .chat-copy > p:last-child { max-width: 256px; }
  .chat-stage { width: min(100%, var(--chat-mobile-phone-width)); height: 100%; max-height: calc(var(--chat-mobile-phone-width) * 1477 / 733); min-height: 0; align-self: end; margin: 0 auto; padding: 0; }
  .chat-stage::before { content: ""; position: absolute; inset-inline-start: -48%; top: calc(var(--chat-mobile-phone-width) * .2); width: 63.0887%; aspect-ratio: 831 / 892; background: url("chat-sun-figma.png") 0 0 / 100% 100% no-repeat; pointer-events: none; }
  .chat-device { width: 100%; height: auto; aspect-ratio: 733 / 1477; overflow: hidden; transform: scale(var(--chat-phone-scale, 1)); transform-origin: center top; mask-image: linear-gradient(#000 calc(var(--chat-phone-visible-height, 100%) - var(--chat-mobile-fade-height) / var(--chat-phone-scale, 1)), transparent var(--chat-phone-visible-height, 100%)); }
  .chat-stage::after { content: ""; position: absolute; z-index: 3; inset-inline-start: -70.9449%; bottom: 0; width: 241.8898%; height: calc(var(--chat-mobile-fade-height) + var(--chat-phone-bottom-gap, 0px)); background: url("chat-fade-figma.png") 0 0 / 100% 100% no-repeat; pointer-events: none; }
  .chat-sun { display: none; }
  .chat-ui { inset-block: 1.9%; border-radius: 14.3% / 6.8%; padding-block-start: 10%; padding-block-end: 30px; }
  .chat-history, .chat-history:focus { overflow-y: hidden; overscroll-behavior: auto; touch-action: pan-y pinch-zoom; padding: 10px 10px calc(var(--chat-mobile-fade-height) - 18px); }
  .chat-messages { gap: 8px; }
  .chat-messages > li { max-width: 94%; padding: 8px; font-size: 12px; }
  .chat-day { margin-block-end: 10px; }
  .chat-top { padding: 6px 10px; font-size: 12px; }
  .chat-top p, .chat-messages time { font-size: 10px; }
  .chat-top > img { width: 24px; height: 24px; }
  .chat-demo .chat-controls { position: absolute; z-index: 4; inset-inline: 0; bottom: var(--space-8); background: transparent; }
}
#home .chat-demo[data-chat-short] { --chat-mobile-fade-height: clamp(32px, calc(6 * var(--chat-vh, 1svh)), 48px); }
#home .chat-demo[data-chat-compact] { row-gap: 4px; padding-block-start: 8px; }
[data-chat-compact] .chat-copy { gap: 4px; }
[data-chat-compact] .chat-copy .block-title { font-size: 18px; }
[data-chat-compact] .chat-copy .chat-hours { font-size: 16px; }
[data-chat-compact] .chat-copy > p:last-child { font-size: 12px; }
#home .chat-demo[data-chat-landscape] { height: var(--chat-scene-height, calc(100svh - var(--nav-height, 0px))); --chat-mobile-phone-width: min(calc(var(--viewport-width, 100vw) * .792535), 320px); --chat-mobile-fade-height: 40px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); column-gap: 12px; padding-block-start: 8px; }
[data-chat-landscape] .chat-copy { grid-column: 1; grid-row: 1; align-self: start; justify-items: start; text-align: start; }
[data-chat-landscape] .chat-stage { grid-column: 2; grid-row: 1; }
[data-chat-landscape] .chat-controls { position: static; grid-column: 1; grid-row: 2; justify-content: start; background: transparent; }
[data-chat-landscape] .chat-top { padding: 2px 8px; font-size: 12px; }
[data-chat-landscape] .chat-top > img { width: 24px; height: 24px; }
[data-chat-landscape] .chat-history, [data-chat-landscape] .chat-history:focus { padding: 8px 8px calc(var(--chat-mobile-fade-height) - 18px); }
[data-chat-landscape] .chat-messages > li { padding: 6px; }

.chat-controls { display: flex; justify-content: center; background: var(--surface); }
.chat-layout { display: contents; }

.chat-device-camera { position: absolute; z-index: 2; inset: 0; width: 100%; height: auto; clip-path: inset(3.119% 35.246% 92.678% round 18px); pointer-events: none; }

:root[data-go-age=child] .chat-demo { --chat-gradient-origin: 9.86%; --chat-gradient-radius: 88.39%; }

/* The chat is a separate full-screen scene, outside the standard container. */
#home .chat-demo {
  width: var(--viewport-width, 100%);
  margin-inline: calc((100% - var(--viewport-width, 100%)) / 2);
  padding-inline: max(var(--gutter), calc((var(--viewport-width, 100%) - var(--container)) / 2));
}
@media (min-width: 48.001rem) and (hover: hover), (min-width: 64.001rem) {
  #home .chat-demo {
    --chat-layout-width: min(var(--viewport-width, 100vw), calc((100svh - var(--nav-height, 0px)) * 1200 / 656));
    display: block;
    height: calc(100svh - var(--nav-height, 0px));
    padding: 0;
    background: var(--surface);
  }
  /* Figma 256:17447 geometry; its colour stays in the age palette. */
  #home .chat-demo::before { content: ""; position: absolute; inset: 0; background: var(--age-chat-accent); mask: url("chat-gradient-figma.svg") 0 0 / 100% 100% no-repeat; pointer-events: none; }
  .chat-layout { display: block; position: relative; width: var(--chat-layout-width); height: 100%; margin-inline: auto; }
  .chat-copy { position: absolute; inset-inline-start: 3.401286%; top: 12.26375%; width: 45%; justify-items: start; text-align: start; gap: 5px; }
  .chat-copy .block-title { font-size: calc(var(--chat-layout-width) * 44 / 1200); letter-spacing: -.01em; }
  .chat-copy .chat-hours { font-size: max(20px, calc(var(--chat-layout-width) * 26 / 1200)); line-height: 1.2; letter-spacing: -.01em; }
  .chat-copy > p { font-size: max(16px, calc(var(--chat-layout-width) * 18 / 1200)); line-height: 1.35; font-weight: 500; letter-spacing: -.01em; }
  .chat-copy > p:last-child { margin-block-start: 3.6px; }
  .chat-doctor-word { position: relative; white-space: nowrap; }
  .chat-doctor-word::after { content: ""; position: absolute; inset-inline-start: -1px; bottom: -3px; width: calc(100% + 2px); aspect-ratio: 49 / 5; background: url("chat-underline-figma.png") center / 100% 100% no-repeat; pointer-events: none; }
  .chat-stage { position: absolute; z-index: 1; inset-inline-start: 56.583252%; top: 12.26375%; width: 26.851255%; margin: 0; padding: 0; }
  .chat-device { width: 100%; aspect-ratio: 322.215057 / 659.649414; margin-inline: 0; }
  .chat-device-frame, .chat-device-camera { height: 100%; }
  .chat-sun { top: calc((100svh - var(--nav-height, 0px)) * -34.25586 / 656); inset-inline-start: 56.0321%; width: 99.0919%; max-width: none; }
  .chat-layout::after { content: ""; position: absolute; z-index: 2; inset-inline-start: 41.6667%; bottom: 0; width: 57.1667%; height: 26.5244%; background: url("chat-fade-desktop-256.png") 0 0 / 100% 100% no-repeat; pointer-events: none; }
  .chat-controls { position: absolute; z-index: 1; inset-inline-start: 3.401286%; bottom: 24px; justify-content: start; background: transparent; }
}

.footer-clinics-title { font-weight: 600; }

.chat-controls:focus-within { width: auto; height: auto; overflow: visible; clip-path: none; }

/* Native sticky range, removed after the first phone entrance. */
.chat-reveal-track { position: relative; min-width: 0; }
#home .chat-reveal-track > .chat-demo { position: sticky; top: var(--nav-height, 0px); margin-block: 0; }
[data-phone-reveal] .chat-device { translate: 0 calc(var(--phone-travel, 100svh) * (1 - var(--phone-reveal, 0))); will-change: translate; }
[data-phone-reveal] .chat-sun, [data-phone-reveal] .chat-stage::before { translate: calc(-1 * var(--sun-travel, 56.55%) * (1 - var(--sun-reveal, 0))) 0; visibility: var(--sun-visibility, hidden); will-change: translate; }

/* Review cards and gradient geometry: Figma 287:20586 / 287:20730. */
.chapter > [data-block=reviews] { --review-inset: max(var(--gutter), calc((var(--viewport-width, 100%) - var(--container)) / 2)); position: relative; isolation: isolate; overflow: hidden; width: var(--viewport-width, 100%); margin-inline: calc((100% - var(--viewport-width, 100%)) / 2); padding-inline: 0; padding-block: calc(var(--frame-padding) + var(--space-24)); }
.review-background { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }
[data-block=reviews] > .block-title { color: var(--surface); }
.review-controls { position: absolute; inset-block-start: calc(var(--frame-padding) + var(--space-24)); inset-inline-end: var(--review-inset); justify-content: flex-end; }
[data-block=reviews] > .block-title { margin-inline: var(--review-inset); padding-inline-end: 144px; }
.review-controls > .ds-button-outline { background: var(--surface); }
.review-grid { --review-gap: calc(var(--grid-gap) / 2); --review-card-width: calc((min(100%, var(--container)) - 2 * var(--review-gap) - 40px) / 3); display: flex; align-items: stretch; gap: var(--review-gap); overflow-x: auto; overscroll-behavior-x: contain; padding-block: 4px; scrollbar-width: none; }
.review-grid::-webkit-scrollbar { display: none; }
.review-grid.is-dragging, .review-grid.is-dragging * { cursor: grabbing; user-select: none; }
@media (hover: hover) { .review-grid { cursor: grab; } }
.review-grid:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.review-card { flex: 0 0 var(--review-card-width); min-width: 0; min-height: 296px; margin: 0; padding: var(--card-padding); display: flex; flex-direction: column; gap: var(--space-24); background: var(--surface); border-radius: var(--radius-l); }
.review-card blockquote { margin: 0; padding: 0; border: 0; font-size: var(--caption); line-height: 1.5; text-wrap: pretty; }
.review-card figcaption { margin-block-start: auto; display: grid; gap: var(--space-8); font-size: var(--body-small); line-height: 1.5; }
.review-card p { margin: 0; overflow-wrap: break-word; }
.review-recipient a { color: inherit; text-decoration: underline; text-decoration-color: var(--age-accent); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.review-photo { display: block; width: 44px; height: 44px; margin-block-start: var(--space-8); border-radius: 50%; overflow: hidden; }
.review-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 24%; }
.review-window { position: relative; overflow: hidden; }
@media (max-width: 56rem) { .review-grid { --review-card-width: calc((100% - var(--review-gap) - 32px) / 2); } }
@media (max-width: 40rem) {
 .review-grid { --review-card-width: calc(100% - 40px); }
 .review-card { padding: var(--gutter); }
 .review-controls { position: static; justify-content: flex-start; flex-wrap: wrap; margin-block-end: var(--space-16); margin-inline: var(--review-inset); }
 [data-block=reviews] > .block-title { padding-inline-end: 0; }
}

.floating-questions { position: fixed; z-index: 30; right: 16px; bottom: calc(var(--cookie-space, 0px) + max(16px, env(safe-area-inset-bottom)) + 26px); max-width: calc(100vw - 32px); min-height: 48px; }
:root[data-go-age=child] .floating-questions { --blue: var(--accent); --blue-hover: var(--accent-hover); --blue-disabled: var(--accent-disabled); }
:root.dm-feedback-selecting .floating-questions { visibility: hidden; }

@media (max-width: 22.5rem) {
  header .controls > .btn { width: 92px; padding-inline: 10px; white-space: normal; line-height: 18px; }
}

.floating-questions > .floating-sun { display: block; position: absolute; inset: auto 0 calc(100% - 12px) auto; width: 52%; height: auto; aspect-ratio: 84 / 70; transform: none; opacity: 1; overflow: hidden; clip-path: inset(0 0 12px); pointer-events: none; }
@media (min-width: 48.001rem) {
  .floating-questions { right: 8px; min-height: 44px; padding: 10px 12px; }
}
@media (max-width: 48rem), (hover: none) and (pointer: coarse) {
  .floating-questions { right: 16px; bottom: calc(var(--cookie-space, 0px) + max(16px, env(safe-area-inset-bottom))); }
}
body[data-builder-preview] .floating-questions { bottom: calc(var(--cookie-space, 0px) + var(--builder-preview-height) + max(16px, env(safe-area-inset-bottom)) + 68px); }
@media (max-width: 48rem), (hover: none) and (pointer: coarse) {
  body[data-builder-preview] .floating-questions { bottom: calc(var(--cookie-space, 0px) + var(--builder-preview-height) + max(16px, env(safe-area-inset-bottom))); }
}
@media (prefers-reduced-motion: no-preference) {
  .floating-questions[data-sun-animate] .page-loader-face { animation: page-loader-look 1800ms ease-in-out both; }
  .floating-questions[data-sun-animate] .page-loader-eye { animation: page-loader-wink 250ms ease-in-out 1800ms both; }
  .floating-questions[data-sun-animate] .page-loader-eye-closed { animation: page-loader-wink-closed 250ms ease-in-out 1800ms both; }
}

.floating-sun [stroke] { stroke: var(--blue); }
.floating-sun [fill]:not([fill="none"]):not(mask):not(mask *) { fill: var(--blue); }
#dialog { border-radius: 24px; }

/* LP visit tabs and payment choices use the shared Switcher and Choice controls. */
.lp-visits { display:grid; gap:16px; margin-block-start:24px; margin-inline-start:60px; min-width:0; }
.builder-level:has(> .lp-visits) > details { margin-block-start:16px; }
.lp-visits-title, .lp-pay legend { font-weight:500; }
.lp-visits-tabs.ds-switcher-switcher { width:max-content; max-width:100%; }
.lp-visits-tabs > .ds-switcher-option { flex:none; height:auto; min-width:44px; min-height:44px; white-space:nowrap; padding-inline:16px; }
.lp-note, .lp-pay-sub { font-size:16px; line-height:1.5; }
.lp-pay-sub { opacity:.65; }
.lp-pay { display:grid; gap:8px; min-inline-size:0; border:0; padding:0; margin:0; }
.lp-pay legend { margin-block-end:12px; }
.lp-pay .ds-choice-row { align-items:start; min-height:44px; padding:8px 0; background:transparent; }
.lp-pay .ds-choice-row::before { display:none; }
.lp-pay .ds-choice-control { margin-block-start:0; }
.lp-pay .ds-choice-control[type=radio]:checked { background:var(--age-accent); mask:url('controls/radio-checked.svg') center / 24px 24px no-repeat; -webkit-mask:url('controls/radio-checked.svg') center / 24px 24px no-repeat; }
@media (forced-colors:active) { .lp-pay .ds-choice-control[type=radio]:checked { background:none; mask:none; -webkit-mask:none; } }
.lp-pay-text { display:grid; gap:4px; width:100%; }
.lp-pay-heading { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; font-size:16px; line-height:1.5; }
.lp-pay-price, .lp-money { white-space:nowrap; font-variant-numeric:tabular-nums; }
.lp-due { display:grid; gap:12px; margin:0; font-size:16px; line-height:1.5; }
.lp-due > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 16px; }
.lp-due dd { margin:0; white-space:nowrap; font-weight:500; font-variant-numeric:tabular-nums; }
@media (max-width:48rem) {
  .lp-visits { margin-inline-start:56px; }
  .lp-visits-tabs > .ds-switcher-option { flex-direction:column; gap:0; padding:6px 8px; }
}
@media (max-width:23rem) {
  .lp-visits-tabs.ds-switcher-switcher { padding:4px; gap:2px; }
  .lp-visits-tabs > .ds-switcher-option { padding-inline:8px; }
  .lp-visits-tabs > .ds-switcher-option > span:last-child { display:none; }
}
