/*
 * «Эмаль» — стоматологическая клиника. Один мотив на весь сайт: шкала оттенков
 * эмали VITA. Пластинки шкалы (A1 → D4 по светлоте) — вкладки прайса, кнопки
 * и цветовые поля секций; зубная формула (32 зуба, нумерация 11–48) — живая
 * вещь первого экрана: тап по зубу открывает цены на то, что с ним можно сделать.
 *
 * Оси: пластинки-капсулы / сплит-сцена (липкое фото слева, колонка справа) /
 * светлый фарфор и оттенки эмали / лёгкий гуманистический гротеск (Ysabeau Office).
 * Фото — без радиуса, край в край. Линии — только в таблице цен. Тень — только у модалки.
 *
 * Здесь: шрифты, токены дизайн-настроек, база, шапка, подвал, блоки темы,
 * страницы услуг и врачей.
 */

@font-face {
    font-family: 'Emal Ysabeau';
    font-style: normal;
    font-display: swap;
    font-weight: 1 1000;
    src: url(../fonts/ysabeau-office-cyrillic-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Emal Ysabeau';
    font-style: normal;
    font-display: swap;
    font-weight: 1 1000;
    src: url(../fonts/ysabeau-office-latin-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Запасные гарнитуры для переключателя шрифта — файлы родительской темы. */
@font-face {
    font-family: 'Emal Onest';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url(/themes/default/assets/fonts/onest-cyrillic-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Emal Onest';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url(/themes/default/assets/fonts/onest-latin-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Emal Manrope';
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url(/themes/default/assets/fonts/manrope-cyrillic-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Emal Manrope';
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url(/themes/default/assets/fonts/manrope-latin-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* -------------------------------------------------------------------------
   Значения по умолчанию для настроек «Дизайн» (ядро печатает свои после этого файла)
   ------------------------------------------------------------------------- */

:root {
    --emal-porcelain: #F7F8F6;
    --emal-surface: #ECEEE9;
    --emal-ink: #1F2A2B;
    --emal-a1: #F1E9D6;
    --emal-a3: #E3D2AE;
    --emal-celadon: #4F7C72;
    --emal-font: 'Emal Ysabeau', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}

/* -------------------------------------------------------------------------
   Токены
   ------------------------------------------------------------------------- */

html.emal {
    --porcelain: var(--emal-porcelain);
    --surface: var(--emal-surface);
    --ink: var(--emal-ink);
    --a1: var(--emal-a1);
    --a3: var(--emal-a3);
    --celadon: var(--emal-celadon);
    --ink-soft: color-mix(in oklab, var(--ink) 78%, var(--porcelain));
    --ink-muted: color-mix(in oklab, var(--ink) 66%, var(--porcelain));
    --line: color-mix(in oklab, var(--ink) 16%, var(--porcelain));
    --tooth-edge: color-mix(in oklab, var(--ink) 52%, var(--porcelain));

    /* пластинки шкалы: от светлой A1 к тёмной — ступени между A1, A3 и чернилами */
    --pl-1: color-mix(in oklab, var(--porcelain) 60%, var(--a1));
    --pl-2: color-mix(in oklab, var(--a1) 52%, var(--a3));
    --pl-3: var(--a3);
    --pl-4: color-mix(in oklab, var(--a3) 84%, var(--ink));
    --pl-5: color-mix(in oklab, var(--a3) 68%, var(--ink));
    --pl-6: color-mix(in oklab, var(--a3) 54%, var(--ink));

    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);

    --step-small: clamp(0.875rem, 0.85rem + 0.1vw, 0.9375rem);
    --step-body: clamp(1.0625rem, 1rem + 0.25vw, 1.125rem);
    --step-lead: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
    --step-head: clamp(1.75rem, 1.3rem + 1.6vw, 2.75rem);
    --step-display: clamp(2.25rem, 0.6rem + 3.6vw, 4rem);

    --em-gut: clamp(1.25rem, 1rem + 1.6vw, 3rem);
    --em-hdr: 4.5rem;
    --em-rail-w: 45vw;

    /* токены родительской темы */
    --c-bg: var(--porcelain);
    --c-surface: var(--porcelain);
    --c-surface-sunk: var(--surface);
    --c-text: var(--ink);
    --c-text-strong: var(--ink);
    --c-text-muted: var(--ink-soft);
    --c-text-faint: var(--ink-muted);
    --c-border: var(--line);
    --c-border-strong: var(--tooth-edge);
    --c-accent: var(--ink);
    --c-accent-hover: color-mix(in oklab, var(--ink) 84%, var(--porcelain));
    --c-accent-soft: var(--a1);
    --c-accent-contrast: var(--porcelain);
    --c-link: var(--ink);
    --c-link-hover: var(--celadon);
    --c-mark: var(--a3);
    --c-mark-text: var(--ink);
    --c-mark-soft: var(--a1);
    --c-slab: var(--ink);
    --c-slab-text: var(--porcelain);
    --c-slab-muted: color-mix(in oklab, var(--porcelain) 72%, var(--ink));
    --c-danger: #A32B16;
    --c-success: #2D6B4F;

    --font-ui: var(--emal-font);
    --font-display: var(--emal-font);
    --font-prose: var(--emal-font);
    --fw-heading: 400;
    --r-xs: 0;
    --r-sm: 0;
    --r-md: 0;
    --r-lg: 0;
    --r-btn: 999px;
    --r-pill: 999px;
    --w-container: 72rem;
    --w-wide: 96rem;
    --gutter: var(--em-gut);
    --sp-md: clamp(3.5rem, 2.5rem + 4vw, 5.5rem);
    --sp-lg: clamp(4.5rem, 3rem + 6vw, 7.5rem);

    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: 0 18px 44px -18px rgb(31 42 43 / 0.34);
    --card-bg: transparent;
    --card-border: 0;
    --card-shadow: none;
    --card-radius: 0;

    color-scheme: light;
    accent-color: var(--celadon);
    caret-color: var(--celadon);
    scrollbar-color: color-mix(in oklab, var(--ink) 40%, var(--porcelain)) var(--porcelain);
    scrollbar-width: thin;
}

@supports (color: oklch(from red l c h)) {
    html.emal {
        --pl-4: oklch(from var(--a3) calc(l - 0.07) c h);
        --pl-5: oklch(from var(--a3) calc(l - 0.14) calc(c * 0.9) h);
        --pl-6: oklch(from var(--a3) calc(l - 0.2) calc(c * 0.85) h);
    }
}

/* Форма пластинок: арка сверху или полная капсула. */
html.emal { --plate-r: 999px 999px 12px 12px; }
html.emal[data-emal-plates='capsule'] { --plate-r: 999px; }

::selection { background: color-mix(in oklab, var(--celadon) 30%, var(--porcelain)); color: var(--ink); }

/* -------------------------------------------------------------------------
   База
   ------------------------------------------------------------------------- */

.em-body {
    background: var(--porcelain);
    color: var(--ink);
    font-family: var(--font-ui);
    font-size: var(--step-body);
    line-height: 1.55;
    font-weight: 400;
    font-optical-sizing: auto;
    -webkit-font-smoothing: antialiased;
    text-wrap: pretty;
}
.em-body h1,
.em-body h2,
.em-body h3,
.em-body h4 { font-family: var(--font-display); color: var(--ink); text-wrap: balance; }
.em-body h1 { font-size: var(--step-display); font-weight: 300; line-height: 1.02; letter-spacing: -0.03em; }
.em-body h2 { font-size: var(--step-head); font-weight: 300; line-height: 1.08; letter-spacing: -0.02em; }
.em-body h3 { font-size: var(--step-lead); font-weight: 500; line-height: 1.2; letter-spacing: -0.01em; }
.em-body :where(.cms-prose, .entry-content, p, li) a:not(.cms-btn) {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: var(--celadon);
    text-decoration-thickness: 1.5px;
    text-underline-offset: 0.2em;
    transition: color 140ms var(--ease-out), text-decoration-color 140ms var(--ease-out);
}
.em-body :where(.cms-prose, .entry-content, p, li) a:not(.cms-btn):hover { color: var(--celadon); }
.em-body :focus-visible { outline: 2px solid var(--celadon); outline-offset: 3px; }
.em-body :is(input, select, textarea) { accent-color: var(--celadon); }

.em-body .cms-section__title { font-size: var(--step-head); font-weight: 300; line-height: 1.08; letter-spacing: -0.02em; }
.em-body .cms-section__subtitle { font-size: var(--step-lead); line-height: 1.4; color: var(--ink-soft); max-width: 36rem; }
.em-body .cms-section__head { margin-block-end: clamp(1.75rem, 1rem + 2.4vw, 3rem); }

.em-body .cms-section__inner { padding-inline: var(--em-gut); }
.em-body .cms-w-full > .cms-section__inner { padding-inline: 0; }
.em-body .cms-tone-soft { background: var(--a1); color: var(--ink); }
.em-body #doctors.cms-tone-soft,
.em-body #booking.cms-tone-soft { background: var(--surface); }

/* Тёмных полей в этой теме нет: «тёмный» тон — поле оттенка A3. */
.em-body :is(.cms-tone-dark, .cms-tone-primary, .cms-tone-accent, .cms-on-dark) {
    background: var(--a3);
    color: var(--ink);
    --c-text: var(--ink);
    --c-text-strong: var(--ink);
    --c-text-muted: var(--ink-soft);
    --c-text-faint: var(--ink-muted);
    --c-border: color-mix(in oklab, var(--ink) 22%, var(--a3));
    --c-surface: var(--porcelain);
}

/* Кнопки: капсулы 48px, основная — чернильная. */
.em-body .cms-btn {
    min-height: 48px;
    padding-inline: 1.5rem;
    border-width: 1.5px;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0;
    transition: background-color 140ms var(--ease-out), color 140ms var(--ease-out), border-color 140ms var(--ease-out), transform 120ms var(--ease-out);
}
.em-body .cms-btn--primary { background: var(--ink); border-color: var(--ink); color: var(--porcelain); }
.em-body .cms-btn--primary:hover { background: color-mix(in oklab, var(--ink) 82%, var(--celadon)); border-color: transparent; }
.em-body .cms-btn--ghost { background: transparent; border-color: var(--ink); color: var(--ink); }
.em-body .cms-btn--ghost:hover { background: var(--a1); }
.em-body .cms-btn:active { transform: scale(0.97); }

/* -------------------------------------------------------------------------
   Шапка: тихая, без линий; логотип — слово и маленькая пластинка
   ------------------------------------------------------------------------- */

.em-body .site-header { background: var(--porcelain); border-bottom: 0; }
html.emal[data-emal-header='shade'] .site-header { background: var(--a1); }
.em-body .site-header.is-scrolled { box-shadow: none; }
.em-body .hdr-row__inner { max-width: none; min-height: var(--em-hdr); padding-inline: var(--em-gut); gap: var(--s-4) var(--s-6); }
.em-body .hdr-logo { gap: 0.7rem; color: var(--ink); text-decoration: none; }
.em-logo__plate {
    display: block;
    width: 1.1rem;
    height: 1.55rem;
    background: var(--a3);
    border-radius: 999px 999px 4px 4px;
    box-shadow: inset 0 0 0 1.5px var(--ink);
    transition: transform 160ms var(--ease-out);
}
.em-logo:hover .em-logo__plate { transform: translateY(-3px); }
.em-body .hdr-logo__name { font-size: 1.3rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.em-body .hdr-nav__link { font-size: 1rem; font-weight: 450; color: var(--ink); }
.em-body .hdr-nav__link > span { text-decoration-color: var(--celadon); text-decoration-thickness: 1.5px; text-underline-offset: 0.35em; }
.em-body .hdr-phone__number { font-weight: 600; font-variant-numeric: lining-nums tabular-nums; color: var(--ink); }
.em-body .hdr-phone__caption { color: var(--ink-soft); }

/* -------------------------------------------------------------------------
   Подвал: полоса записи на поле A1 и имя клиники на всю ширину
   ------------------------------------------------------------------------- */

.em-body .site-footer,
.em-body .em-prefooter { position: relative; z-index: 3; }
.em-prefooter { background: var(--a1); color: var(--ink); margin-block-start: var(--sp-lg); }
.em-prefooter__inner {
    display: grid;
    gap: var(--s-6) var(--s-8);
    align-items: end;
    max-width: var(--w-wide);
    margin-inline: auto;
    padding: var(--sp-md) var(--em-gut);
}
@media (min-width: 52rem) { .em-prefooter__inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
.em-prefooter__kicker { margin: 0 0 var(--s-3); font-size: var(--step-small); color: var(--ink-soft); }
.em-prefooter__title { margin: 0; font-size: var(--step-head); font-weight: 300; line-height: 1.05; letter-spacing: -0.02em; }
.em-prefooter__lead { margin: var(--s-4) 0 0; max-width: 34rem; }
.em-prefooter__side { display: grid; gap: var(--s-3); justify-items: start; }
.em-prefooter__phone {
    font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem);
    font-weight: 300;
    letter-spacing: -0.02em;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--ink);
    text-decoration: none;
    white-space: nowrap;
}
.em-prefooter__hours { margin: 0; color: var(--ink-soft); font-size: var(--step-small); }
.em-btn { background: var(--ink); border-color: var(--ink); color: var(--porcelain); }
.em-body .em-footer.site-footer { background: var(--porcelain); color: var(--ink); overflow: hidden; border-top: 0; }
.em-footer .ftr-col__title { font-size: var(--step-small); font-weight: 600; color: var(--ink); letter-spacing: 0; text-transform: none; }
.em-footer a { color: var(--ink); text-decoration-color: var(--celadon); text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; }
.em-footer a:hover { color: var(--celadon); }
.em-footer .ftr-bottom { border-top: 0; color: var(--ink-soft); }
.em-footer__wordmark {
    margin: 0;
    padding-inline: var(--em-gut);
    font-size: clamp(5rem, 24vw, 22rem);
    font-weight: 300;
    line-height: 0.78;
    letter-spacing: -0.04em;
    text-transform: uppercase;
    color: var(--a3);
    white-space: nowrap;
    user-select: none;
    margin-block-end: -0.06em;
}

/* Панель «Позвонить / Записаться» на телефоне. */
.em-mobbar { display: none; }
@media (max-width: 47.99rem) {
    .em-mobbar {
        position: fixed;
        inset: auto 0 0 0;
        z-index: 55;
        display: flex;
        gap: var(--s-2);
        padding: 0.5rem var(--em-gut) calc(0.5rem + env(safe-area-inset-bottom));
        background: var(--porcelain);
        box-shadow: 0 -14px 28px -22px rgb(31 42 43 / 0.5);
    }
    .em-mobbar__call, .em-mobbar__book { flex: 1; min-height: 48px; }
    .em-mobbar__call {
        display: inline-flex; align-items: center; justify-content: center;
        border: 1.5px solid var(--ink); border-radius: 999px; color: var(--ink); font-weight: 600; text-decoration: none;
    }
    .em-body { padding-bottom: 4.5rem; }
    html.emal[data-emal-mobbar='off'] .em-mobbar { display: none; }
    html.emal[data-emal-mobbar='off'] .em-body { padding-bottom: 0; }
}

/* -------------------------------------------------------------------------
   Сплит-сцена главной: липкая фото-половина слева, колонка справа
   ------------------------------------------------------------------------- */

.em-rail { position: relative; height: clamp(15rem, 62vw, 24rem); overflow: hidden; background: var(--a1); }
.em-rail__scene { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 600ms var(--ease-out); }
.em-rail__scene.is-on { opacity: 1; }
.em-rail__scene:first-child:not(.is-off) { opacity: 1; }
.em-rail__img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (max-width: 63.99rem) {
    .em-rail__scene:not(:first-child) { display: none; }
}
@media (min-width: 64rem) {
    html.emal:not([data-emal-rail='off']) .em-rail {
        position: fixed;
        inset: var(--em-hdr) auto 0 0;
        z-index: 1;
        width: var(--em-rail-w);
        height: auto;
        min-height: 0;
    }
    html.emal:not([data-emal-rail='off']) .em-rail__scene:first-child:not(.is-on) { opacity: 0; }
    html.emal:not([data-emal-rail='off']) .em-body:has(.em-rail) .site-main { margin-inline-start: var(--em-rail-w); position: relative; z-index: 2; background: var(--porcelain); }
    html.emal:not([data-emal-rail='off']) .em-body:has(.em-rail) .em-prefooter { margin-block-start: 0; }
}
@media (prefers-reduced-motion: reduce) { .em-rail__scene { transition: none; } }

.em-hero__col { padding: clamp(1.25rem, 3.5vh, 2.75rem) var(--em-gut) var(--sp-md); max-width: 46rem; }
.em-hero__title { margin: 0; }
.em-hero__lead { margin: var(--s-4) 0 0; max-width: 28rem; font-size: var(--step-lead); line-height: 1.4; }
.em-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-6); margin-block-start: var(--s-5); }
.em-hero__phone {
    font-size: var(--step-lead);
    font-weight: 500;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--ink);
    text-decoration: underline;
    text-decoration-color: var(--celadon);
    text-decoration-thickness: 1.5px;
    text-underline-offset: 0.25em;
    white-space: nowrap;
}
.em-hero__hint { margin: clamp(1.5rem, 3.5vh, 2.75rem) 0 var(--s-2); font-size: var(--step-small); color: var(--ink-soft); max-width: 26rem; }

/* Зубная формула */
.em-formula { max-width: 40rem; }
.em-teeth { display: block; width: 100%; height: auto; overflow: visible; }
.em-tooth { cursor: pointer; outline: none; -webkit-tap-highlight-color: transparent; }
.em-tooth__hit { fill: transparent; }
.em-tooth__body { fill: var(--surface); stroke: var(--tooth-edge); stroke-width: 1.5; vector-effect: non-scaling-stroke; transition: fill 160ms var(--ease-out), stroke 160ms var(--ease-out), transform 160ms var(--ease-out); transform-box: fill-box; transform-origin: center; }
.em-tooth__fissure { fill: none; stroke: var(--tooth-edge); stroke-width: 1.2; stroke-linecap: round; opacity: 0.7; vector-effect: non-scaling-stroke; }
.em-tooth__n { fill: var(--ink-soft); font-size: 11px; font-weight: 500; font-variant-numeric: lining-nums tabular-nums; pointer-events: none; }
html.emal[data-emal-numbers='off'] .em-tooth__n { display: none; }
.em-tooth:hover .em-tooth__body { fill: var(--a1); }
.em-tooth.is-kind .em-tooth__body { fill: var(--a1); }
.em-tooth.is-on .em-tooth__body { fill: var(--a3); stroke: var(--ink); }
.em-tooth:focus-visible .em-tooth__body { stroke: var(--celadon); stroke-width: 3; }
.em-tooth:active .em-tooth__body { transform: scale(0.94); }

.em-plates { display: flex; flex-wrap: wrap; gap: 0.5rem 0.375rem; margin-block-start: var(--s-5); padding-block-start: 0.5rem; }
.em-js .em-plates { display: flex; }
.em-plates[hidden] { display: none; }
.em-js .em-plates[hidden] { display: flex; }

.em-plate {
    appearance: none;
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 1.25rem;
    border: 0;
    border-radius: var(--plate-r);
    background: var(--pl-1);
    color: var(--ink);
    font: inherit;
    font-size: var(--step-small);
    font-weight: 600;
    line-height: 1.1;
    cursor: pointer;
    text-decoration: none;
    transition: transform 160ms var(--ease-out), background-color 160ms var(--ease-out);
}
.em-plate--1 { background: var(--pl-1); }
.em-plate--2 { background: var(--pl-2); }
.em-plate--3 { background: var(--pl-3); }
.em-plate--4 { background: var(--pl-4); }
.em-plate--5 { background: var(--pl-5); }
.em-plate--6 { background: var(--pl-6); }
.em-plate { box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--ink) 14%, transparent); }
.em-plate:hover { transform: translateY(-4px); }
.em-plate[aria-pressed='true'] { transform: translateY(-8px); }
.em-plate:active { transform: translateY(-2px) scale(0.97); }

.em-panels { margin-block-start: var(--s-5); }
.em-panel { padding-block: var(--s-3) var(--s-4); }
.em-js .em-panel[hidden] { display: none; }
.em-panel__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem var(--s-4); margin: 0 0 var(--s-2); font-size: var(--step-lead); font-weight: 600; }
.em-panel__nums { font-size: var(--step-small); font-weight: 400; color: var(--ink-soft); font-variant-numeric: lining-nums tabular-nums; }
.em-lines { list-style: none; margin: 0; padding: 0; }
.em-lines__row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-4); padding-block: 0.45rem; }
.em-lines__name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--s-3); }
.em-lines__name small { font-size: var(--step-small); color: var(--ink-soft); }
.em-lines__price { font-weight: 600; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; font-size: var(--step-lead); }
.em-with {
    margin-block-start: var(--s-3);
    min-height: 48px;
    padding: 0 1.5rem;
    border: 1.5px solid var(--ink);
    border-radius: 999px;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 140ms var(--ease-out), transform 120ms var(--ease-out);
}
.em-with:hover { background: var(--a1); }
.em-with:active { transform: scale(0.97); }

/* -------------------------------------------------------------------------
   Цены на пластинках (emal_prices)
   ------------------------------------------------------------------------- */

.em-prices__radio { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.em-prices__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem 0.375rem; padding-block-start: 0.75rem; }
.em-prices__tabs .em-plate { user-select: none; }
.em-prices__panels table { display: none; width: 100%; border-collapse: collapse; margin-block-start: var(--s-5); }
.em-prices__panels table { background: transparent; }

.em-prices__radio:nth-of-type(1):checked ~ .em-prices__panels table:nth-of-type(1),
.em-prices__radio:nth-of-type(2):checked ~ .em-prices__panels table:nth-of-type(2),
.em-prices__radio:nth-of-type(3):checked ~ .em-prices__panels table:nth-of-type(3),
.em-prices__radio:nth-of-type(4):checked ~ .em-prices__panels table:nth-of-type(4),
.em-prices__radio:nth-of-type(5):checked ~ .em-prices__panels table:nth-of-type(5),
.em-prices__radio:nth-of-type(6):checked ~ .em-prices__panels table:nth-of-type(6),
.em-prices__radio:nth-of-type(7):checked ~ .em-prices__panels table:nth-of-type(7) { display: var(--em-tbl, table); }
.em-prices__radio:nth-of-type(1):checked ~ .em-prices__tabs .em-plate:nth-child(1),
.em-prices__radio:nth-of-type(2):checked ~ .em-prices__tabs .em-plate:nth-child(2),
.em-prices__radio:nth-of-type(3):checked ~ .em-prices__tabs .em-plate:nth-child(3),
.em-prices__radio:nth-of-type(4):checked ~ .em-prices__tabs .em-plate:nth-child(4),
.em-prices__radio:nth-of-type(5):checked ~ .em-prices__tabs .em-plate:nth-child(5),
.em-prices__radio:nth-of-type(6):checked ~ .em-prices__tabs .em-plate:nth-child(6),
.em-prices__radio:nth-of-type(7):checked ~ .em-prices__tabs .em-plate:nth-child(7) { transform: translateY(-8px); }
.em-prices__radio:nth-of-type(1):focus-visible ~ .em-prices__tabs .em-plate:nth-child(1),
.em-prices__radio:nth-of-type(2):focus-visible ~ .em-prices__tabs .em-plate:nth-child(2),
.em-prices__radio:nth-of-type(3):focus-visible ~ .em-prices__tabs .em-plate:nth-child(3),
.em-prices__radio:nth-of-type(4):focus-visible ~ .em-prices__tabs .em-plate:nth-child(4),
.em-prices__radio:nth-of-type(5):focus-visible ~ .em-prices__tabs .em-plate:nth-child(5),
.em-prices__radio:nth-of-type(6):focus-visible ~ .em-prices__tabs .em-plate:nth-child(6) { outline: 2px solid var(--celadon); outline-offset: 3px; }

.em-prices__table tr { border-top: 1px solid color-mix(in oklab, var(--ink) 18%, var(--a1)); }
.em-prices__table tr:last-child { border-bottom: 1px solid color-mix(in oklab, var(--ink) 18%, var(--a1)); }
.em-prices__table :is(th, td) { padding: 1.1rem 0.75rem 1.1rem 0; vertical-align: baseline; text-align: start; font-weight: 400; }
.em-prices__table th[scope='row'] { width: 100%; }
.em-prices__name { display: block; font-size: var(--step-lead); font-weight: 500; line-height: 1.2; }
.em-prices__text { display: block; margin-block-start: 0.2rem; font-size: var(--step-small); color: var(--ink-soft); max-width: 30rem; }
.em-prices__time { white-space: nowrap; font-size: var(--step-small); color: var(--ink-soft); font-variant-numeric: lining-nums tabular-nums; }
.em-prices__price { white-space: nowrap; font-size: var(--step-lead); font-weight: 600; text-align: end; font-variant-numeric: lining-nums tabular-nums; padding-inline-end: 0; }
.em-prices__act { padding-inline-end: 0; text-align: end; }
.em-prices__book {
    min-height: 44px;
    padding: 0 1.1rem;
    border: 1.5px solid var(--ink);
    border-radius: 999px;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: var(--step-small);
    font-weight: 600;
    cursor: pointer;
    transition: background-color 140ms var(--ease-out), color 140ms var(--ease-out), transform 120ms var(--ease-out);
}
.em-prices__book:hover { background: var(--ink); color: var(--porcelain); }
.em-prices__book:active { transform: scale(0.97); }
.em-prices__note { margin: var(--s-4) 0 0; font-size: var(--step-small); color: var(--ink-soft); max-width: 34rem; }

@media (max-width: 47.99rem) {
    .em-prices { --em-tbl: block; }
    .em-prices__panels tbody { display: block; }
    .em-prices__table tr { display: grid; grid-template-columns: 1fr auto; gap: 0.15rem 1rem; padding-block: 1rem; align-items: center; }
    .em-prices__table :is(th, td) { padding: 0; }
    .em-prices__table th[scope='row'] { grid-column: 1 / -1; }
    .em-prices__time { grid-column: 1; grid-row: 2; }
    .em-prices__price { grid-column: 2; grid-row: 2; }
    .em-prices__act { grid-column: 1 / -1; grid-row: 3; text-align: start; padding-block-start: 0.6rem; }
}

/* -------------------------------------------------------------------------
   Врачи: слот 3:4 без радиуса, инициалы на поле A1 (фото загружает владелец)
   ------------------------------------------------------------------------- */

.em-doc { position: relative; display: flex; flex-direction: column; gap: 0.25rem; background: transparent; }
.em-doc__photo { position: relative; aspect-ratio: 3 / 4; margin-block-end: var(--s-3); background: var(--a1); overflow: hidden; }
.em-doc__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.em-doc__initials {
    position: absolute; inset: 0;
    display: grid; place-items: center;
    font-size: clamp(3rem, 2rem + 4vw, 5rem);
    font-weight: 300;
    letter-spacing: -0.02em;
    color: color-mix(in oklab, var(--ink) 55%, var(--a1));
    transition: transform 400ms var(--ease-out);
}
.em-doc:hover .em-doc__initials { transform: scale(1.04); }
.em-doc__name { margin: 0; font-size: var(--step-lead); font-weight: 600; line-height: 1.15; }
.em-doc__link { color: inherit; text-decoration: none; }
.em-doc__link::after { content: ''; position: absolute; inset: 0; }
.em-doc__link:hover { text-decoration: underline; text-decoration-color: var(--celadon); text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; }
.em-doc__position { margin: 0; color: var(--ink); }
.em-doc__meta { margin: 0; font-size: var(--step-small); color: var(--ink-soft); }
.em-doc__actions { position: relative; z-index: 1; margin-block-start: var(--s-3); }
.em-doc__book { min-height: 44px; font-size: var(--step-small); }

/* -------------------------------------------------------------------------
   Отзывы: заметки из карты, без звёзд
   ------------------------------------------------------------------------- */

.em-reviews__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-7) var(--s-7); }
@media (min-width: 40rem) { .em-reviews__list { grid-template-columns: 1fr 1fr; } .em-review--lead { grid-column: 1 / -1; } }
.em-review { display: flex; flex-direction: column; gap: var(--s-3); }
.em-review__what { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem var(--s-3); font-weight: 600; }
.em-review__what span { font-weight: 400; font-size: var(--step-small); color: var(--ink-soft); }
.em-review__text { margin: 0; }
.em-review__text p { margin: 0; max-width: 34rem; }
.em-review--lead .em-review__text p { font-size: var(--step-lead); line-height: 1.4; font-weight: 300; max-width: 40rem; }
.em-review:not(.em-review--lead) .em-review__text p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; line-clamp: 5; overflow: hidden; }
.em-review__by { margin: 0; font-size: var(--step-small); color: var(--ink-soft); }
.em-reviews__note { margin: var(--s-6) 0 0; font-size: var(--step-small); color: var(--ink-soft); }

/* -------------------------------------------------------------------------
   Готовые блоки родителя в стиле клиники
   ------------------------------------------------------------------------- */

.em-body .cms-stages, .em-body .cms-booking, .em-body .cms-ptable, .em-body .cms-faq { color: var(--ink); }
.em-body .cms-faq__item { border-color: var(--line); }
.em-body :is(input[type='text'], input[type='tel'], input[type='email'], input[type='date'], input[type='time'], input[type='search'], select, textarea) {
    border: 1.5px solid var(--tooth-edge);
    border-radius: 999px;
    background: var(--porcelain);
    color: var(--ink);
    min-height: 48px;
    padding-inline: 1.1rem;
}
.em-body textarea { border-radius: 1.5rem; padding-block: 0.8rem; }
.em-body :is(input, select, textarea):focus-visible { outline: 2px solid var(--celadon); outline-offset: 2px; border-color: var(--celadon); }
.em-body dialog, .em-body [popover] { border-radius: 0; box-shadow: var(--shadow-lg); }

/* Этапы: пластинки шкалы вместо кружков, без статусов (это шаги, а не ход работ). */
.em-body .cms-block--stages { --stage-marker: 3rem; }
.em-body .cms-block--stages .cms-stages__list { counter-reset: emstep; }
.em-body .cms-block--stages .cms-stages__item { counter-increment: emstep; }
.em-body .cms-block--stages.cms-stages--steps .cms-stages__item:not(:last-child)::before { display: none; }
.em-body .cms-block--stages .cms-stages__status { display: none; }
.em-body .cms-block--stages .cms-stages__marker {
    width: 2.75rem;
    height: 3.25rem;
    border: 0;
    border-radius: var(--plate-r);
    background: var(--pl-3);
    color: var(--ink);
    font-size: var(--step-lead);
    font-weight: 400;
}
.em-body .cms-block--stages .cms-stages__marker .cms-icon { display: none; }
.em-body .cms-block--stages .cms-stages__marker::after { content: counter(emstep); }
.em-body .cms-block--stages .cms-stages__item:nth-child(1) .cms-stages__marker { background: var(--pl-1); box-shadow: inset 0 0 0 1px var(--line); }
.em-body .cms-block--stages .cms-stages__item:nth-child(2) .cms-stages__marker { background: var(--pl-2); }
.em-body .cms-block--stages .cms-stages__item:nth-child(4) .cms-stages__marker { background: var(--pl-4); }
.em-body .cms-block--stages .cms-stages__item:nth-child(5) .cms-stages__marker { background: var(--pl-5); }
.em-body .cms-block--stages .cms-stages__title { font-size: var(--step-lead); font-weight: 600; }
.em-body .cms-block--stages .cms-stages__meta { color: var(--ink-soft); }

/* -------------------------------------------------------------------------
   «Услуги и цены»: прайс-лист, а не витрина
   ------------------------------------------------------------------------- */

.em-arch { padding-block-end: var(--sp-md); }
.em-arch__head { padding: clamp(2rem, 1rem + 4vw, 5rem) var(--em-gut) var(--s-7); max-width: 72rem; margin-inline: auto; }
.em-arch__title { margin: 0; }
.em-arch__lead { margin: var(--s-5) 0 0; max-width: 34rem; font-size: var(--step-lead); line-height: 1.4; }
.em-arch__jump { display: flex; flex-wrap: wrap; gap: 0.5rem 0.375rem; margin-block-start: var(--s-7); padding-block-start: 0.5rem; }
.em-arch__group { display: grid; gap: var(--s-5) var(--s-8); max-width: 72rem; margin-inline: auto; padding: var(--s-7) var(--em-gut); scroll-margin-top: 6rem; }
@media (min-width: 56rem) { .em-arch__group { grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); } .em-arch__ghead { position: sticky; top: 6rem; align-self: start; } }
.em-arch__gtitle { margin: 0; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.25rem); overflow-wrap: break-word; hyphens: auto; font-weight: 300; }
.em-arch__gtext { margin: var(--s-3) 0 0; color: var(--ink-soft); font-size: var(--step-small); max-width: 18rem; }
.em-arch__rows { list-style: none; margin: 0; padding: 0; }
.em-arch__rows > li { border-top: 1px solid var(--line); }
.em-arch__rows > li:last-child { border-bottom: 1px solid var(--line); }
.em-arch__band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-4); max-width: 72rem; margin: var(--s-7) auto 0; padding: var(--s-6) var(--em-gut); background: var(--a1); }
.em-arch__band p { margin: 0; max-width: 34rem; }
.em-arch__empty { padding: var(--s-8) var(--em-gut); text-align: center; }

.em-svc { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: baseline; gap: 0.25rem var(--s-6); padding: 1.1rem 0; transition: background-color 140ms var(--ease-out); }
.em-svc:hover { background: color-mix(in oklab, var(--a1) 45%, transparent); }
.em-svc__title { margin: 0; font-size: var(--step-lead); font-weight: 500; line-height: 1.2; }
.em-svc__link { color: inherit; text-decoration: none; }
.em-svc__link::after { content: ''; position: absolute; inset: 0; }
.em-svc__link:hover { text-decoration: underline; text-decoration-color: var(--celadon); text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; }
.em-svc__text { margin: 0.2rem 0 0; font-size: var(--step-small); color: var(--ink-soft); max-width: 30rem; }
.em-svc__time { margin: 0; font-size: var(--step-small); color: var(--ink-soft); white-space: nowrap; }
.em-svc__price { margin: 0; text-align: end; white-space: nowrap; font-variant-numeric: lining-nums tabular-nums; }
.em-svc__price b { display: block; font-size: var(--step-lead); font-weight: 600; }
.em-svc__price small { display: block; font-size: var(--step-small); color: var(--ink-soft); }
@media (max-width: 40rem) {
    .em-svc { grid-template-columns: minmax(0, 1fr) auto; }
    .em-svc__main { grid-column: 1 / -1; }
    .em-svc__time { grid-row: 2; }
    .em-svc__price { grid-row: 2; grid-column: 2; }
}

/* -------------------------------------------------------------------------
   Движение: вход главной и уважение к reduced-motion
   ------------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
    .em-js .em-hero__title, .em-js .em-hero__lead, .em-js .em-hero__actions { animation: em-rise 700ms var(--ease-out) both; }
    .em-js .em-hero__lead { animation-delay: 80ms; }
    .em-js .em-hero__actions { animation-delay: 160ms; }
    .em-js .em-teeth .em-tooth { animation: em-tooth 520ms var(--ease-out) both; animation-delay: calc(240ms + var(--i, 0) * 12ms); }
}
@keyframes em-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes em-tooth { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .em-plate, .em-tooth__body, .em-body .cms-btn, .em-doc__initials { transition: none; }
    .em-plate:hover, .em-plate[aria-pressed='true'], .em-doc:hover .em-doc__initials { transform: none; }
}

.em-body :is(.cms-tone-dark, .cms-tone-primary, .cms-tone-accent) [class*='icon'] { background: var(--porcelain); color: var(--ink); }

@media (max-width: 39.99rem) {
    .em-body .team-block__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6) var(--s-4); }
    .em-body .team-block__list > * { min-width: 0; }
    .em-doc__initials { font-size: 2.5rem; }
    .em-doc__book { padding-inline: 0.9rem; }
}
