.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link:focus {
  position: fixed !important; top: 12px; left: 12px; width: auto; height: auto; clip: auto;
  z-index: 300; background: #fff; padding: 10px 16px; border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,.15);
}
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* WordPress: кнопки */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-button__link, .wp-element-button {
  display: inline-flex; align-items: center; justify-content: center;
  height: 52px; padding: 0 28px; border-radius: 999px; border: 1px solid var(--blue);
  background: var(--blue); color: #fff; font: inherit; font-weight: 600; font-size: 15px;
  text-decoration: none; transition: .2s ease; white-space: nowrap;
}
.wp-block-button__link:hover { background: var(--blue-dark); border-color: var(--blue-dark); color: #fff; }
.wp-block-button.is-style-outline > .wp-block-button__link,
.is-style-outline .wp-block-button__link {
  background: transparent; color: var(--ink); border: 1px solid var(--line);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--ink); background: transparent; color: var(--ink); }

/* Отступы внутри готовых секций задаёт дизайн */
:is(.entry, .is-root-container) :is(.section, .hero) .is-layout-flow:not(.container):not(.wp-block-column) > *,
:is(.entry, .is-root-container) :is(.section, .hero).is-layout-flow > * { margin-block-start: 0; }
:is(.entry, .is-root-container) .container > .section__head + * { margin-block-start: 0; }
:is(.entry, .is-root-container) .hero__meta { list-style: none; padding: 0; }
:is(.entry, .is-root-container) .hero__meta li { margin: 0; }

/* Обычные блоки WordPress (колонки, текст, картинки, таблицы) */
.entry--text { width: calc(100% - 48px); max-width: 1152px; margin: 0 auto; padding: 0 0 96px; font-size: 17px; }
.entry--text > * + * { margin-block-start: 24px; }
.entry--sections > :not(.section):not(.hero):not(.alignfull) {
  width: calc(100% - 48px); max-width: 1152px; margin: 24px auto;
}
.entry--sections > .section + :not(.section):not(.hero) { margin-top: 72px; }
.entry--sections > :not(.section):not(.hero):last-child { margin-bottom: 96px; }
:is(.entry, .is-root-container) > .alignfull { max-width: none; margin-left: 0; margin-right: 0; }
.entry--text > :is(p, ul, ol, h2, h3, h4, h5, h6, blockquote, .wp-block-quote) { max-width: 820px; }
.entry--text > :is(h2, h3, h4):not(:first-child) { margin-block-start: 48px; }

:is(.entry, .is-root-container) :where(.wp-block-list) { padding-left: 1.3em; }
:is(.entry, .is-root-container) :where(.wp-block-list) > li + li { margin-top: .35em; }
:is(.entry, .is-root-container) :where(.wp-block-columns) { margin-bottom: 0; }
:is(.entry, .is-root-container) .wp-block-image img { border-radius: 16px; height: auto; }
:is(.entry, .is-root-container) .wp-block-image figcaption, :is(.entry, .is-root-container) .wp-block-table figcaption { font-size: 14px; color: var(--muted); margin-top: 8px; }
:is(.entry, .is-root-container) .wp-block-table table { width: 100%; border-collapse: collapse; }
:is(.entry, .is-root-container) .wp-block-table :is(td, th) { border: 1px solid var(--line); padding: 12px 16px; text-align: left; }
:is(.entry, .is-root-container) .wp-block-table thead { background: #F7F9FC; }
:is(.entry, .is-root-container) .wp-block-separator { border: 0; border-top: 1px solid var(--line); margin-block: 40px; opacity: 1; }
:is(.entry, .is-root-container) .wp-block-quote { font-size: 19px; }
:is(.entry, .is-root-container) .wp-block-quote cite { display: block; margin-top: 8px; font-size: 14px; color: var(--muted); font-style: normal; }
:is(.entry, .is-root-container) .wp-block-cover { border-radius: 20px; overflow: hidden; }
:is(.entry, .is-root-container) .wp-block-media-text__media img { border-radius: 16px; }
:is(.entry, .is-root-container) .wp-block-group.has-background { border-radius: 20px; }
:is(.entry, .is-root-container) .wp-block-embed iframe { border-radius: 16px; }
.entry--text a:where(:not(.wp-element-button)), .entry .is-layout-flow > p a:where(:not(.wp-element-button)) { color: var(--blue); }

/* Hero */
.hero__circle { position: relative; }
.hero__circle::after {
  content: ''; position: absolute; inset: 0; margin: auto; width: 38%; height: 44%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 140'%3E%3Cpath d='M60 14c-13-8-38-9-45 12-6 19 3 33 7 46 5 18 7 56 19 56 10 0 8-34 19-34s9 34 19 34c12 0 14-38 19-56 4-13 13-27 7-46C98 5 73 6 60 14z' fill='none' stroke='%231F5EFF' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  animation: float 6s ease-in-out infinite;
}
.hero__badge p { margin: 0; }
.hero__badge-num { font-size: 28px; font-weight: 700; color: var(--blue); line-height: 1.1; }
.hero__badge-label { font-size: 13px; color: var(--muted); }

/* Ссылки-стрелки */
p.link a { color: var(--blue); font-weight: 600; font-size: 15px; text-decoration: none; }
p.link a:hover { text-decoration: underline; }
.offer--accent p.link a { color: #fff; }
.offer__price s { text-decoration: line-through; color: var(--muted); font-weight: 400; font-size: 16px; margin-right: 6px; }
.offer--accent .offer__price s { color: rgba(255,255,255,.7); }
.stat p, .figure p, .step p, .feature p { margin: 0; }

/* Технологии: иконки */
.tech__item { display: grid; grid-template-columns: 48px 1fr; column-gap: 20px; align-items: start; }
.tech__item::before {
  content: ''; grid-row: span 2; width: 48px; height: 48px; border-radius: 14px;
  background: #fff center/24px no-repeat;
}
.tech__item h3 { font-size: 18px; font-weight: 600; margin-bottom: 4px; }
.tech__item p { font-size: 15px; color: var(--muted); }
.tech__item--micro::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F5EFF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 21h12M9 21v-3h6v3M12 18v-4M8 6l6 6M10 4l6 6-2 2-6-6z'/%3E%3Ccircle cx='17' cy='15' r='3'/%3E%3C/svg%3E"); }
.tech__item--ct::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F5EFF' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 3v2M12 19v2M3 12h2M19 12h2'/%3E%3C/svg%3E"); }
.tech__item--digital::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F5EFF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8M12 16v4M7 12l3-3 2 2 5-5'/%3E%3C/svg%3E"); }
.tech__item--air::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F5EFF' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M3 8h11a3 3 0 1 0-3-3M3 12h15a3 3 0 1 1-3 3M3 16h7'/%3E%3C/svg%3E"); }

/* Этапы */
.step__num { width: 36px; height: 36px; }

/* Списки */
.entry ul.checklist { padding: 0; }
.compare__col ul, .info-col ul { padding: 0; margin: 0; }
.compare__col--main h3 { color: #fff; }

/* Таймлайн на группах */
.timeline { border-left: 2px solid var(--line); margin-left: 6px; max-width: 820px; }
.timeline__item { position: relative; display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 0 0 36px 32px; }
.timeline__item:last-child { padding-bottom: 0; }
.timeline__item::before { content: ''; position: absolute; left: -8px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--blue); }
.timeline__when { font-weight: 700; color: var(--blue); margin: 0; }
.timeline__body h3 { font-size: 18px; margin-bottom: 4px; }
.timeline__body p { color: var(--muted); }
.section--soft .timeline__item::before { background: #F7F9FC; }

/* Заголовок секции с подзаголовком */
.section__head-text .section__sub { margin-top: 10px; }

/* FAQ на блоке «Детали» */
.faq__item { border-bottom: 1px solid var(--line); }
.faq__item summary {
  list-style: none; cursor: pointer; padding: 24px 56px 24px 0; font-size: 18px; font-weight: 600;
  position: relative;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: '+'; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line);
  display: grid; place-items: center; font-weight: 400; font-size: 18px; line-height: 1; transition: .2s;
}
.faq__item[open] summary::after { content: '−'; background: var(--blue); border-color: var(--blue); color: #fff; }
.faq__item > :not(summary) { color: var(--muted); padding-bottom: 24px; max-width: 720px; margin: 0; }

/* CTA с формой */
.cta__content h2, .cta__content p { margin: 0; }
.cta__title { margin-bottom: 8px !important; }
.cta__form .consent, .cta__form .form-error { flex-basis: 100%; }
.consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.45; cursor: pointer; }
.consent input { width: 16px; height: 16px; margin-top: 2px; flex-shrink: 0; accent-color: var(--blue); }
.cta__form .consent { color: rgba(255,255,255,.8); }
.cta__form .consent a { color: #fff; text-decoration: underline; }
.modal__form .consent { color: var(--muted); }
.modal__form .consent a { color: var(--blue); }
.form-error { font-size: 14px; color: #D93025; margin: 0; }
.cta__form .form-error { color: #FFE2DF; }
.btn:disabled { opacity: .6; cursor: wait; }

/* Контакты */
.contacts .contacts__list { margin-top: 0; }

/* Цены */
.price-groups { display: grid; gap: 56px; }
.price-group__title { font-size: 22px; font-weight: 700; margin-bottom: 12px; }

/* Фото врачей */
.doctor__photo.has-photo, .doc-card__photo.has-photo, .profile__photo.has-photo { overflow: hidden; padding: 0; }
.has-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.doc-card__photo-link { display: block; }
.doctor--link { display: block; color: inherit; }

.page-hero__grid--single { grid-template-columns: 1fr; }

/* Меню */
.nav a.is-current { color: var(--ink); }
.footer__col > a:not(.logo) { display: block; }
.footer__small a { display: inline; }
.price-row__name small::first-letter { text-transform: uppercase; }
.doctors--three .doctor__photo { aspect-ratio: 4/4; }

/* Архив записей */
.post-list { display: grid; gap: 32px; max-width: 820px; }
.post-item h2 { font-size: 24px; margin-bottom: 8px; }
.post-item h2 a:hover { color: var(--blue); }

@media (max-width: 860px) {
  .timeline__item { grid-template-columns: 1fr; gap: 4px; }
}
@media (max-width: 520px) {
  .entry--text { width: calc(100% - 32px); padding: 0 0 72px; }
  .entry--sections > :not(.section):not(.hero):not(.alignfull) { width: calc(100% - 32px); }
  .faq__item summary { font-size: 16px; }
  .wp-block-buttons .wp-block-button { width: 100%; }
  .wp-block-buttons .wp-block-button__link { width: 100%; }
}

a, a:where(:not(.wp-element-button)) { text-decoration: none; }
.entry--text a:where(:not(.wp-element-button)) { text-decoration: underline; }
.cta__form input[type="checkbox"], .modal__form input[type="checkbox"] {
  flex: 0 0 16px; width: 16px; height: 16px; padding: 0; margin-top: 2px; border-radius: 4px;
}

.doctor-list__filter { margin-bottom: 32px; width: fit-content; }
@media (max-width: 520px) { .doctor-list__filter { width: 100%; } }
.section--first { padding-top: 0; }
.sbesk-services > .tabs { width: fit-content; max-width: 100%; margin-bottom: 24px; }

/* До и после */
.ba-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ba { margin: 0; }
.ba__frame {
  position: relative; overflow: hidden; border-radius: var(--radius); aspect-ratio: 4 / 3;
  background: var(--blue-soft); user-select: none; touch-action: pan-y; --pos: 50%;
}
.ba__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.ba__before { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.ba__handle {
  position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px;
  background: #fff; box-shadow: 0 0 0 1px rgba(14,23,38,.08); pointer-events: none;
}
.ba__handle span {
  position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; margin: -22px 0 0 -22px;
  border-radius: 50%; background: #fff; box-shadow: 0 6px 20px rgba(14,23,38,.18);
}
.ba__handle span::before, .ba__handle span::after {
  content: ''; position: absolute; top: 50%; width: 0; height: 0; margin-top: -6px;
  border: 6px solid transparent;
}
.ba__handle span::before { left: 7px; border-right-color: var(--blue); }
.ba__handle span::after { right: 7px; border-left-color: var(--blue); }
.ba__range {
  position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize;
  -webkit-appearance: none; appearance: none;
}
.ba__label {
  position: absolute; top: 14px; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600;
  background: rgba(255,255,255,.92); color: var(--ink); pointer-events: none;
}
.ba__label--before { left: 14px; }
.ba__label--after { right: 14px; background: var(--blue); color: #fff; }
.ba__caption { margin-top: 12px; font-size: 15px; color: var(--muted); }
.ba__frame:focus-within .ba__handle span { box-shadow: 0 0 0 3px rgba(31,94,255,.35), 0 6px 20px rgba(14,23,38,.18); }

/* Галерея */
.entry .sbesk-gallery.wp-block-gallery { gap: 16px; }
.entry .sbesk-gallery .wp-block-image img { border-radius: 16px; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s ease; }
.entry .sbesk-gallery .wp-block-image a { display: block; overflow: hidden; border-radius: 16px; }
.entry .sbesk-gallery .wp-block-image a:hover img { transform: scale(1.03); }
.lightbox {
  position: fixed; inset: 0; z-index: 400; background: rgba(14,23,38,.9); display: none;
  align-items: center; justify-content: center; padding: 24px;
}
.lightbox.is-open { display: flex; }
.lightbox img { max-width: 100%; max-height: 100%; border-radius: 12px; }
.lightbox__close, .lightbox__nav {
  position: absolute; width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,.12);
  color: #fff; font-size: 26px; line-height: 1; display: grid; place-items: center; cursor: pointer; border: 0;
}
.lightbox__close { top: 16px; right: 16px; }
.lightbox__nav--prev { left: 16px; top: 50%; margin-top: -24px; }
.lightbox__nav--next { right: 16px; top: 50%; margin-top: -24px; }

/* Шапка страницы из блоков */
.page-hero__main .page-hero__text { margin-bottom: 36px; }
.page-hero__card { display: grid; gap: 4px; }
.page-hero__card .fact-label { font-size: 13px; color: var(--muted); margin: 0; }
.page-hero__card .fact-value { font-size: 22px; font-weight: 700; margin: 0 0 14px; }
.page-hero__card .fact-value:last-child { margin-bottom: 0; }
.entry--no-title > .page-hero:first-child, .entry--no-title > .hero:first-child { padding-top: 48px; }

/* Подвал из виджетов */
.footer-widgets .footer__col > * + * { margin-top: 16px; }
.footer-widgets .footer__col p { margin: 0; }
.menu-block__links a, .footer-widgets .widget_nav_menu a { display: block; color: var(--muted); padding: 5px 0; }
.menu-block__links a:hover, .footer-widgets .widget_nav_menu a:hover { color: var(--ink); }
.footer-widgets .widget_nav_menu ul { list-style: none; padding: 0; margin: 0; }
.footer-info .footer__small { margin-top: 12px; }
.footer .wp-block-heading { font-size: 15px; font-weight: 600; margin-bottom: 6px; }
.footer .footer__col .wp-block-paragraph, .footer .footer__col > p { font-size: 14px; color: var(--muted); }
.footer__bottom a { color: var(--muted); }

@media (max-width: 1024px) {
  .ba-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .ba-grid { grid-template-columns: 1fr; }
}
.page-hero + .entry--sections > .section:not(.section--soft):first-child { padding-top: 8px; }
.footer-widgets .footer-info .footer__small { margin-top: 14px; }
@media (max-width: 560px) {
  .doctors.doctors--grid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .doctors--grid .doctor__photo { font-size: 28px; margin-bottom: 12px; }
  .doctors--grid .doctor h3 { font-size: 15px; }
  .doctors--grid .doctor__desc { display: none; }
}
