/* style.css: Apostol Dental Clinic & Kids (apostoldent). Вид по 03-design.md: чёрная земля, круг из двух половин
   (зелёная: взрослые, оранжевая: дети) как выключатель страницы, Nunito. Телефон: отдельной композицией внизу. */

/* ---------- общее ---------- */
body { font-family: var(--font-text); font-weight: var(--w-text); }
h1, h2, h3 { font-family: var(--font-display); font-weight: var(--w-display); }
.nums { font-variant-numeric: tabular-nums; }
.skip { position: fixed; z-index: 100; left: 1rem; top: 0; padding: 0.75rem 1rem; background: #fff; color: #0b0b0b; transform: translateY(-130%); transition: transform var(--t-ui) var(--ease-out); width: auto; height: auto; clip-path: none; overflow: visible; }
.skip:focus { transform: none; }
:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
[data-m~="side-field"] :focus-visible, .kids :focus-visible, .coupon :focus-visible { outline-color: #0b0b0b; }
.visit :focus-visible { outline-color: #fff; }
.btn { min-height: 3.25rem; padding: 0 1.6rem; font-weight: var(--w-strong); background: var(--accent); color: var(--accent-ink); }
.btn--small { min-height: 2.75rem; padding: 0 1.2rem; }
.link-plain { text-underline-offset: 0.18em; text-decoration-thickness: 0.07em; }
.only-phone { display: none; }

/* ---------- шапка ---------- */
.top { padding-inline: var(--margin); gap: 1.5rem; background: var(--bg); }
.top__mark { gap: 0.65rem; font-family: var(--font-display); font-size: var(--step-body); font-weight: var(--w-display); letter-spacing: 0; text-decoration: none; margin-right: auto; }
.top__mark { min-width: 2.75rem; }
.top__mark img { width: 2.25rem; height: 2.25rem; }
.top__nav { gap: clamp(1rem, 2vw, 1.75rem); font-weight: var(--w-strong); font-size: var(--step-body); }
.top__nav a { text-decoration: none; }
.top__act { min-height: 2.75rem; padding: 0 1.3rem; }
.top__menu { font-size: var(--step-body); font-weight: var(--w-strong); }

/* ---------- 1. первый экран: круг из двух половин ---------- */
.hero { position: relative; height: calc(100svh - var(--header-h)); min-height: 620px; overflow: hidden; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); padding-left: var(--margin); }
.hero__text { grid-column: 1 / 7; align-self: center; position: relative; z-index: 3; }
.h1 { font-family: var(--font-display); font-weight: var(--w-display); font-size: var(--step-display); line-height: 1; letter-spacing: var(--track-display); text-wrap: balance; }
.hero .lead { margin: 1.4rem 0 1.9rem; max-width: 36ch; color: var(--ink); }
.acts { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.acts__link { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: var(--w-strong); font-size: var(--step-body); text-underline-offset: 0.2em; }
.disc { position: absolute; width: 82vh; height: 82vh; right: -8vh; top: 50%; translate: 0 -50%; border-radius: 50%; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; z-index: 1; }
.disc button, .visit__disc button { border: 0; font: inherit; font-weight: var(--w-display); font-size: var(--step-lead); display: flex; align-items: flex-start; padding-top: 16%; cursor: pointer; }
.disc__a { background: var(--adult); color: var(--adult-ink); justify-content: flex-end; padding-right: 10%; }
.disc__k { background: var(--kids); color: var(--kids-ink); justify-content: flex-start; padding-left: 10%; }
.disc button[aria-pressed="true"] span { text-decoration: underline; text-decoration-thickness: 0.1em; text-underline-offset: 0.25em; }
.seg { display: none; }
.team { position: absolute; right: 0; bottom: 0; width: 50vw; height: auto; z-index: 2; pointer-events: none; background: none; }

/* ---------- 2. сколько стоит визит (поле текущей стороны) ---------- */
.visit { position: relative; background: var(--side); color: var(--side-ink); --muted: var(--side-muted); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: 2.5rem; padding: calc(var(--section) / 1.5) var(--margin); }
.visit__head { grid-column: 1 / -1; display: grid; gap: 1rem; }
.visit__head .lead { max-width: 44ch; }
.visit__form { grid-column: 1 / 7; }
.visit__plate { background: var(--bg); color: var(--ink); --muted: #bdbdbd; padding: clamp(1.25rem, 2.6vw, 2.5rem); display: grid; gap: 1.5rem; justify-items: start; }
.visit__disc { width: 220px; height: 220px; border-radius: 50%; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; align-self: center; justify-self: center; }
.visit__disc button { font-size: var(--step-small); padding-top: 32%; }
.visit__side { grid-column: 7 / 13; display: flex; flex-direction: column; gap: 1.5rem; justify-content: space-between; }
.visit__tabs { display: flex; gap: 1.75rem; font-size: var(--step-lead); font-weight: var(--w-display); }
.visit__tabs .m-tab { font: inherit; color: inherit; padding: 0.4rem 0; min-height: 2.75rem; }
.talon { background: var(--bg); color: var(--ink); --muted: #bdbdbd; padding: 1.75rem 2rem 3rem; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), 95% 100%, 90% calc(100% - 12px), 85% 100%, 80% calc(100% - 12px), 75% 100%, 70% calc(100% - 12px), 65% 100%, 60% calc(100% - 12px), 55% 100%, 50% calc(100% - 12px), 45% 100%, 40% calc(100% - 12px), 35% 100%, 30% calc(100% - 12px), 25% 100%, 20% calc(100% - 12px), 15% 100%, 10% calc(100% - 12px), 5% 100%, 0 calc(100% - 12px)); }
.talon__body { display: grid; gap: 0.75rem; }
.talon__body[hidden], .talon__empty[hidden], .talon__sum[hidden], .talon__extra[hidden] { display: none; }
.talon__title { font-size: var(--step-head); line-height: 1.05; letter-spacing: -0.025em; }
.talon__rows { display: grid; gap: 0.4rem; padding: 0; list-style: none; }
.talon__rows li { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; font-size: var(--step-body); }
.talon__rows li span:last-child { white-space: nowrap; }
.talon__sum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 1rem; max-width: none; margin-block: 0.25rem 0.5rem; }
.talon__sumlab { font-size: var(--step-lead); font-weight: var(--w-display); }
.talon__total { font-family: var(--font-display); font-weight: var(--w-display); font-size: var(--step-display); line-height: 1; letter-spacing: var(--track-display); }
.talon__extra { font-size: var(--step-body); font-weight: var(--w-strong); max-width: none; }
.talon__empty { font-size: var(--step-lead); line-height: 1.3; padding-block: 1.25rem; max-width: 24ch; }
.visit__acts { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.visit__act { display: flex; align-items: center; justify-content: center; min-height: 4.5rem; padding: 0 1rem; text-align: center; font-weight: var(--w-display); font-size: var(--step-body); text-decoration: none; background: var(--surface); color: var(--ink); }
.visit__act--wa { background: #fff; color: #0b0b0b; }
.visit__bar { display: none; }
.visit__bar.is-off { display: none !important; }
.price-static { grid-column: 1 / -1; display: none; background: var(--bg); color: var(--ink); --muted: #bdbdbd; padding: 1.25rem; }
html:not(.js):not(.shot) .price-static { display: block; }
html:not(.js):not(.shot) .svc-list, html:not(.js):not(.shot) .talon, html:not(.js):not(.shot) .visit__bar { display: none; }
.price-static__h { font-size: var(--step-lead); margin-top: 1.25rem; }
.price-static__list { display: grid; gap: 0.5rem; padding: 0; list-style: none; margin-top: 0.75rem; }
.price-static__list li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1rem; font-size: var(--step-small); }
.svc-list { display: flex; flex-wrap: wrap; gap: 0.6rem; width: 100%; }
.svc-item { display: grid; gap: 0.45rem; align-content: start; }
.svc-item.has-opts { flex-basis: 100%; }
.chip-btn { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 2.75rem; padding: 0.35rem 1.1rem; border-radius: var(--radius); background: var(--surface-2); color: var(--ink); font-size: var(--step-body); font-weight: var(--w-strong); text-align: left; transition: background-color var(--t-hover) ease, color var(--t-hover) ease, transform var(--t-press) var(--ease-out); }
.chip-btn__p { color: var(--muted); font-weight: var(--w-text); font-size: var(--step-small); white-space: nowrap; font-variant-numeric: tabular-nums; }
.chip-btn[aria-pressed="true"] { background: #fff; color: #0b0b0b; }
.chip-btn[aria-pressed="true"] .chip-btn__p { color: #3a3a3a; }
.chip-btn:active { transform: scale(0.97); }
@media (hover: hover) and (pointer: fine) { .chip-btn[aria-pressed="false"]:hover { background: #333; } .var[aria-pressed="false"]:hover { background: #2c2c2c; } }
.svc-item__opts { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; padding-left: 0.4rem; }
.svc-item__var { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.var { min-height: 2.75rem; padding: 0 1rem; border-radius: var(--radius); background: var(--surface); color: var(--ink); font-size: var(--step-small); font-weight: var(--w-strong); }
.var[aria-pressed="true"] { background: var(--side); color: var(--side-ink); }
.svc-item__qty { display: inline-flex; align-items: center; gap: 0.5rem; font-size: var(--step-small); }
.qty__n { min-width: 6.5em; }
.qty__b { width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--surface-2); color: var(--ink); font-size: var(--step-lead); line-height: 1; font-weight: var(--w-display); }
.qty__b:disabled { opacity: 0.35; cursor: default; }

/* ---------- 3. дважды первые: плитки и круглое фото ---------- */
.invis { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: 2.5rem; padding-inline: var(--margin); align-items: start; }
.invis__title { grid-column: 1 / 9; }
.invis__tiles { grid-column: 1 / 9; grid-row: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.tile { aspect-ratio: 3 / 2; background: var(--surface); padding: 1rem 1.1rem; display: flex; align-items: flex-end; font-size: var(--step-lead); font-weight: var(--w-display); line-height: 1.15; letter-spacing: -0.01em; max-width: none; }
.tile + .tile { margin-top: 0; }
.tile--wide { grid-column: span 2; aspect-ratio: auto; grid-row: span 1; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.4rem; }
.tile--adult { background: var(--adult); color: var(--adult-ink); }
.tile__cap { font-size: var(--step-lead); font-weight: var(--w-display); max-width: none; line-height: 1.15; }
.tile__big { font-family: var(--font-display); font-weight: var(--w-display); font-size: var(--step-display); line-height: 0.9; letter-spacing: var(--track-display); max-width: none; }
.invis__say { grid-column: 1 / 8; grid-row: 3; display: grid; gap: 1.1rem; justify-items: start; }
.invis__say .lead { max-width: 36ch; }
.invis__ph { grid-column: 9 / 13; grid-row: 1 / 4; width: min(100%, 320px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; justify-self: center; align-self: center; background: var(--surface); }
.invis__ph img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- 4. детям без страха (оранжевое поле) ---------- */
.kids { background: var(--kids); color: var(--kids-ink); --muted: var(--kids-muted); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); align-items: center; padding-block: calc(var(--section) / 2); overflow: hidden; margin-block: calc(var(--section) / 2); }
.kids__ph { grid-column: 1 / 6; width: min(78svh, 100%); aspect-ratio: 1; border-radius: 50%; overflow: hidden; margin-left: -12%; background: var(--surface); }
.kids__ph img { width: 100%; height: 100%; object-fit: cover; }
.kids__say { grid-column: 7 / 13; padding-right: var(--margin); display: grid; gap: 1.25rem; justify-items: start; }
.kids__say .btn { background: #0b0b0b; color: #fff; }
.kids__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem var(--gutter); padding: 0; list-style: none; }
.kids__list li { display: grid; gap: 0.3rem; align-content: start; }
.kids__list b { font-weight: var(--w-display); font-size: var(--step-body); display: flex; align-items: baseline; gap: 0.5em; }
.kids__list b::before { content: ""; flex: none; width: 0.7em; height: 0.7em; border-radius: 0.35em 0 0 0.35em; background: var(--adult); }
.kids__list span { font-size: var(--step-body); line-height: 1.45; }

/* ---------- 5. что лечим ---------- */
.services { padding-inline: var(--margin); display: grid; gap: 3rem; }
.services__head { display: grid; gap: 1rem; }
.services__head .lead { max-width: 40ch; }
.services__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--gutter); }
.svc { display: grid; gap: 1.4rem; padding: 0; list-style: none; align-content: start; }
.svc li { display: grid; grid-template-columns: 4rem minmax(0, 1fr); column-gap: 1rem; row-gap: 0.1rem; align-items: center; }
.svc img { grid-row: span 2; width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover; }
.svc b { font-size: var(--step-body); font-weight: var(--w-display); line-height: 1.25; align-self: end; }
.svc span { color: var(--muted); font-size: var(--step-body); line-height: 1.3; align-self: start; }

/* ---------- 6. врачи ---------- */
.doctors { padding-inline: var(--margin); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: 3rem; align-items: center; }
.doctors__head { grid-column: 1 / -1; display: grid; gap: 1rem; }
.doctors__head .lead { max-width: 36ch; }
.doctors__frame { grid-column: 1 / 7; position: relative; width: min(40vw, 560px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; justify-self: center; background: var(--surface); }
.doctors__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.doctors__list { grid-column: 7 / 13; display: grid; gap: 1.1rem; padding: 0; list-style: none; }
.doctors__list li { display: grid; gap: 0.1rem; }
.doctors__list b { font-size: var(--step-lead); font-weight: var(--w-display); line-height: 1.2; }
.doctors__list span { color: var(--muted); font-size: var(--step-body); line-height: 1.4; }
.doctors__team { grid-column: 1 / -1; margin-inline: calc(var(--margin) * -1); overflow: hidden; background: var(--surface); }
.doctors__team img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

/* ---------- 7. в цифрах: ступенчатые плитки ---------- */
.numbers { padding-inline: var(--margin); display: grid; gap: 2.5rem; }
.numbers__title { max-width: 14ch; justify-self: end; text-align: left; width: min(100%, 50%); }
.numbers__tiles { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); align-items: start; }
.ntile { padding: clamp(1.25rem, 2.4vw, 2.25rem); display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.ntile__n { font-family: var(--font-display); font-weight: var(--w-display); font-size: var(--step-display); line-height: 0.95; letter-spacing: var(--track-display); max-width: none; }
.ntile__t { font-size: var(--step-lead); line-height: 1.3; max-width: 18ch; }
.ntile--a { grid-column: 1 / 7; min-height: min(70vh, 620px); background: var(--side); color: var(--side-ink); --muted: var(--side-muted); }
.ntile--b { grid-column: 7 / 10; margin-top: 14vh; min-height: min(44vh, 400px); background: var(--surface-2); }
.ntile--c { grid-column: 10 / 13; margin-top: 26vh; min-height: min(34vh, 320px); background: var(--surface); }
.ntile--c .ntile__n { font-size: var(--step-lead); }
.numbers__x { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 1.25rem; max-width: none; margin-top: 1rem; }
.numbers__xn { font-family: var(--font-display); font-weight: var(--w-display); font-size: var(--step-display); line-height: 1; letter-spacing: var(--track-display); }
.numbers__xt { font-size: var(--step-lead); }

/* ---------- 8. как оплатить: два плана, два поля ---------- */
.pay__head { padding-inline: var(--margin); display: grid; gap: 1rem; padding-bottom: 0; }
.pay__head .lead { max-width: 44ch; }
.pay__fields { display: grid; grid-template-columns: 5fr 7fr; min-height: 90svh; }
.pay__f { padding: clamp(1.5rem, 3.4vw, 3.5rem) var(--margin); display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; align-items: flex-start; }
.pay__f--qr { background: var(--surface); }
.pay__f--rate { background: var(--adult); color: var(--adult-ink); --muted: var(--adult-muted); }
.pay__name { font-family: var(--font-display); font-weight: var(--w-display); font-size: var(--step-head); line-height: 1.05; letter-spacing: -0.025em; max-width: 18ch; text-wrap: balance; }
.pay__link { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: var(--step-lead); font-weight: var(--w-display); text-underline-offset: 0.2em; text-decoration-thickness: 0.08em; }
.pay__f .lead { max-width: 26ch; margin-top: auto; }
.pay__pension { padding-inline: var(--margin); display: grid; gap: 1.25rem; justify-items: start; }
.pay__h3 { font-size: var(--step-lead); line-height: 1.15; letter-spacing: -0.01em; text-wrap: balance; max-width: 30ch; }
.pay__pension .lead { max-width: 44ch; }
.pay__steps { display: grid; gap: 0.7rem; padding-left: 1.7rem; list-style: decimal; max-width: 60ch; font-size: var(--step-body); }
.pay__steps li::marker { font-weight: var(--w-display); }
@media (min-width: 64em) { .pay__steps { display: block; columns: 2; column-gap: 4rem; max-width: 100ch; } .pay__steps li { break-inside: avoid; margin-bottom: 0.7rem; } }
.pay__more { max-width: none; }

/* ---------- 9. магазин: слова-строки ---------- */
.shop { padding-inline: var(--margin); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: 2rem; align-items: start; }
.shop__say { grid-column: 1 / 9; display: grid; gap: 1rem; }
.shop__say .lead { max-width: 44ch; }
.shop__words { grid-column: 1 / 9; display: grid; padding: 0; list-style: none; font-family: var(--font-display); font-weight: var(--w-display); font-size: var(--step-display); line-height: 1.05; letter-spacing: var(--track-display); }
.shop__go { grid-column: 1 / 9; font-size: var(--step-lead); min-height: 4rem; }
.shop__ph { grid-column: 9 / 13; grid-row: 1 / 4; aspect-ratio: 2 / 3; overflow: hidden; background: var(--surface); }
.shop__ph img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- 10. контакты: купон ---------- */
.contacts { padding-inline: var(--margin); }
.coupon { background: var(--side); color: var(--side-ink); --muted: var(--side-muted); max-width: min(100%, 84rem); margin-inline: auto; padding: clamp(2rem, 4vw, 4rem) clamp(1.25rem, 3vw, 3.5rem); display: grid; grid-template-columns: minmax(0, 46fr) 12px minmax(0, 54fr); column-gap: clamp(1rem, 3vw, 3rem); align-items: stretch; clip-path: polygon(0 0, calc(46% - 28px) 0, calc(46% - 24px) 10px, calc(46% - 17px) 19px, calc(46% - 9px) 25px, 46% 28px, calc(46% + 9px) 25px, calc(46% + 17px) 19px, calc(46% + 24px) 10px, calc(46% + 28px) 0, 100% 0, 100% 100%, calc(46% + 28px) 100%, calc(46% + 24px) calc(100% - 10px), calc(46% + 17px) calc(100% - 19px), calc(46% + 9px) calc(100% - 25px), 46% calc(100% - 28px), calc(46% - 9px) calc(100% - 25px), calc(46% - 17px) calc(100% - 19px), calc(46% - 24px) calc(100% - 10px), calc(46% - 28px) 100%, 0 100%); }
.coupon__say { display: grid; gap: 1.25rem; align-content: start; justify-items: start; }
.coupon__say .btn { background: #fff; color: #0b0b0b; }
.coupon__perf { width: 6px; height: 100%; align-self: stretch; justify-self: center; color: var(--bg); }
.coupon__facts { display: grid; gap: 0.9rem; padding: 0; list-style: none; align-content: start; }
.coupon__facts li { display: grid; gap: 0.1rem; font-size: var(--step-body); }
.coupon__facts b { font-weight: var(--w-display); }
.coupon__facts a { text-underline-offset: 0.18em; }

/* ---------- 11. подвал ---------- */
.foot { background: var(--bg); padding: calc(var(--section) / 2) var(--margin) 2rem; display: grid; gap: 2.5rem; justify-items: start; }
.foot__disc { width: min(46vw, 56svh); aspect-ratio: 1; border-radius: 50%; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; font-family: var(--font-display); font-weight: var(--w-display); font-size: var(--step-lead); line-height: 1; align-self: center; justify-self: center; }
.foot__a { background: var(--adult); color: var(--adult-ink); display: flex; align-items: center; justify-content: flex-end; padding-right: 8%; }
.foot__k { background: var(--kids); color: var(--kids-ink); display: flex; align-items: center; justify-content: flex-start; padding-left: 8%; }
.foot__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.5rem var(--gutter); width: 100%; }
.foot__facts a { text-underline-offset: 0.18em; }
.foot__logo { display: inline-block; width: 2.25rem; height: 2.25rem; vertical-align: middle; margin-right: 0.5rem; background: none; border-radius: 50%; }
.foot__credit { color: var(--muted); max-width: 70ch; }
.foot__up { justify-self: end; }

/* сетки: дети не растягивают колонки своим содержимым */
.hero > *, .visit > *, .invis > *, .kids > *, .services__cols > *, .doctors > *, .numbers__tiles > *, .shop > *, .coupon > *, .foot > * { min-width: 0; }

/* ---------- планшет и телефон: герой столбиком ---------- */
@media (max-width: 63.99em) {
  .hero { display: block; height: auto; min-height: 0; padding: 0; overflow: hidden; }
  .hero__text { padding: 1.5rem var(--margin) 0; max-width: 40rem; }
  .hero .lead { margin: 1rem 0 1.4rem; }
  .disc { position: relative; width: min(300px, 78vw); height: min(300px, 78vw); right: auto; top: auto; translate: none; margin: 1.25rem auto 0; }
  .seg { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin: 1.25rem var(--margin) 0; max-width: 28rem; }
  .seg .m-tab { min-height: 3rem; border-radius: var(--radius); background: var(--surface-2); color: var(--ink); font-weight: var(--w-display); font-size: var(--step-body); }
  .seg .m-tab[aria-pressed="true"] { background: #fff; color: #0b0b0b; }
  .seg .m-tab::after { display: none; }
  .team { position: relative; display: block; width: min(100%, 44rem); margin: -8rem 0 0 auto; right: auto; bottom: auto; }
}

/* ---------- планшет ---------- */
@media (max-width: 63.99em) {
  .visit__form, .visit__side { grid-column: 1 / -1; }
  .invis__title, .invis__tiles, .invis__say { grid-column: 1 / -1; grid-row: auto; }
  .invis__ph { grid-column: 1 / -1; grid-row: 1; width: 240px; }
  .kids { grid-template-columns: 1fr; }
  .kids__ph, .kids__say { grid-column: 1; }
  .kids__ph { width: 70vw; margin-left: -12vw; margin-bottom: 1.5rem; }
  .kids__say { padding-left: var(--margin); }
  .services__cols { grid-template-columns: 1fr; }
  .doctors__frame { grid-column: 1 / -1; width: min(70vw, 520px); }
  .doctors__list { grid-column: 1 / -1; }
  .numbers__title { width: 100%; max-width: none; justify-self: start; }
  .ntile--a { grid-column: 1 / 13; min-height: 14rem; }
  .ntile--b, .ntile--c { margin-top: 0; min-height: 11rem; }
  .ntile--b { grid-column: 1 / 7; margin-top: 8px; }
  .ntile--c { grid-column: 7 / 13; margin-top: 8px; }
  .pay__fields { grid-template-columns: 1fr; min-height: 0; }
  .pay__f { min-height: 70svh; }
  .shop__say, .shop__words, .shop__go { grid-column: 1 / -1; }
  .shop__ph { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 4 / 3; }
  .coupon { grid-template-columns: 1fr; clip-path: none; }
  .coupon__perf { display: none; }
}

/* ---------- телефон: отдельная композиция ---------- */
@media (max-width: 47.99em) {
  .top { gap: 0.6rem; }
  .top__mark span { display: none; }
  .hero__text { padding: 1rem var(--margin) 0; }
  .btn { white-space: normal; text-align: center; }
  .acts .btn { width: 100%; min-height: 3.5rem; }
  .disc button { font-size: 0; }
  .team { margin: -8rem 0 0; width: 100%; }

  .visit { padding-bottom: 0; row-gap: 1.75rem; }
  .visit__plate { margin-inline: calc(var(--margin) * -1); }
  .visit__disc { width: 200px; height: 200px; }
  .visit__disc button { font-size: 0; }
  .visit__tabs { display: flex; gap: 1.25rem; }
  .talon { margin-inline: calc(var(--margin) * -1); padding-inline: 1.25rem; }
  .visit__acts { grid-template-columns: 1fr; }
  .visit__act { min-height: 3.5rem; }
  .visit__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; position: sticky; bottom: 0; z-index: 20; grid-column: 1 / -1; margin-inline: calc(var(--margin) * -1); padding: 0.6rem var(--margin); background: #fff; color: #0b0b0b; }
  .visit__bartext { font-weight: var(--w-display); font-size: var(--step-lead); }
  .visit__bar .btn { background: #0b0b0b; color: #fff; min-height: 2.75rem; }
  .svc-list { gap: 0.5rem; }
  .chip-btn { padding-inline: 0.9rem; }

  .invis__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tile--wide { grid-column: 1 / -1; }
  .invis__ph { width: 240px; }
  .kids__ph { width: 80vw; margin-left: -14vw; }
  .kids__list { grid-template-columns: 1fr; }
  .svc li { grid-template-columns: 3.25rem minmax(0, 1fr); }
  .svc img { width: 3.25rem; height: 3.25rem; }
  .doctors__frame { width: 78vw; }
  
  .ntile--b, .ntile--c { grid-column: 1 / -1; }
  .pay__f { min-height: 70svh; }
  .pay__name { font-size: var(--step-head); }
  .shop__words { font-size: var(--step-head); }
  .coupon { margin-inline: calc(var(--margin) * -0.5); padding-inline: 1.25rem; }
  .foot__disc { width: 74vw; }
  .foot__up { justify-self: stretch; }
}

/* зоны нажатия 44 px у отдельных ссылок (контакты, подвал, Telegram), подпись к фото магазина, появление команды без скрипта */
.contacts a:not(.btn), .foot a, p.small > a.link-plain { display: inline-flex; align-items: center; min-height: 2.75rem; }
.foot a { min-width: 2.75rem; justify-content: center; }
.shop__cap { grid-column: 9 / 13; margin-top: -0.5rem; }
@media (max-width: 47.99em) { .shop__cap { grid-column: 1 / -1; margin-top: 0; } }
@media (prefers-reduced-motion: no-preference) {
  .js .team { animation: team-in 900ms var(--ease-out) 150ms both; }
}
@keyframes team-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
