/* Агат · демо. Характер A «Бокс»: почти чёрный фон их прайс-слайда, белый, серые грани фасада, красный фасада.
   Красный — «Записаться», шов фирменной секции, полоса выгоды, ручка шторки, активный комплекс.
   Mobile first: база 390 px, расширение через min-width. Кит (kit.css) даёт механику, оформление — здесь. */
:root {
  --bg: #0a0a0a; --bg2: #151515; --fg: #f2f1ef; --mute: #a2a09c; --grey: #5d5e60;
  --red: #c8302a; --red-deep: #9a0f13; --line: rgb(242 241 239 / .16);
  --f: "Exo 2", "Arial Narrow", system-ui, sans-serif;
  --t: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --gut: max(16px, 4vw);
  --kit-fg: var(--fg); --kit-bg: var(--bg); --kit-accent: var(--fg); --kit-line: var(--line); --kit-radius: 0px;
}
* { box-sizing: border-box; }
html { overflow-x: clip; scroll-padding-top: 64px; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; overflow-x: clip; background: var(--bg); color: var(--fg); font: 400 16px/1.5 var(--t); text-rendering: optimizeLegibility; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.wrap { width: 100%; max-width: 1320px; margin-inline: auto; padding-inline: var(--gut); }
.h2 { margin: 0; font-family: var(--t); font-weight: 700; font-size: clamp(28px, 7.4vw, 56px); line-height: 1.05; letter-spacing: -.01em; text-wrap: balance; }
.h2--exo { font-family: var(--f); font-weight: 800; font-style: italic; letter-spacing: 0; }
section { scroll-margin-top: 56px; }

/* кнопки */
.btn { display: inline-grid; place-items: center; min-height: 48px; padding: 0 22px; font: 700 16px/1 var(--t); text-decoration: none; border: 1px solid transparent; border-radius: 0; text-align: center; }
.btn--lg { min-height: 52px; }
.btn--acc { background: var(--red); color: #fff; }
.btn--acc:hover { background: #d63a33; }
.btn--line { border-color: rgb(242 241 239 / .45); color: var(--fg); background: none; }
.btn--line:hover { border-color: var(--fg); }
.more { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; margin-top: 16px; font-weight: 700; text-decoration: none; border-bottom: 1px solid currentColor; }
.more svg { width: 18px; height: 18px; }

/* шапка */
.top { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 12px; height: 56px; padding-inline: var(--gut); background: var(--bg); border-bottom: 1px solid var(--line); }
.top__logo { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 2px; text-decoration: none; }
.logo { display: block; fill: #fff; overflow: visible; }
.logo--head { height: 24px; width: auto; aspect-ratio: 327 / 46; flex: none; }
.top__demo { padding: 3px 8px; font: 500 12px/1.4 var(--t); color: var(--mute); border: 1px solid var(--line); }
.top__nav, .top__tel, .top__book { display: none; }
.top__menu { display: grid; place-items: center; width: 44px; height: 44px; margin-left: auto; padding: 0; background: none; border: 0; }
.top__menu svg { width: 24px; height: 24px; }
.top__panel { position: absolute; top: 56px; left: 0; right: 0; display: grid; padding: 4px var(--gut) 12px; background: var(--bg2); border-bottom: 1px solid var(--line); }
.top__panel[hidden] { display: none; }
.top__panel a, .nav-fn--row { display: flex; align-items: center; gap: 12px; min-height: 48px; text-decoration: none; font-weight: 500; border-top: 1px solid var(--line); }
.nav-fn { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0; background: none; border: 0; font-weight: 500; text-align: left; }
.nav-fn svg { width: 20px; height: 20px; flex: none; }
.nav-fn--row { width: 100%; }
@media (min-width: 900px) {
  .top { gap: 18px; }
  .top__tel { display: block; margin-left: auto; font: 500 15px/1.45 var(--t); text-decoration: none; white-space: nowrap; }
  .top__book { display: inline-grid; min-height: 40px; padding-inline: 18px; }
  .top__menu { margin-left: 0; }
  .top__panel { left: auto; width: 360px; border-left: 1px solid var(--line); }
}
@media (min-width: 1100px) {
  .top__nav { display: flex; align-items: center; gap: 22px; margin-left: 28px; font-size: 15px; white-space: nowrap; }
  .top__nav a { text-decoration: none; color: var(--mute); }
  .top__nav a:hover { color: var(--fg); }
  .top__panel > a { display: none; }
  .top__panel .nav-fn--row:first-of-type { border-top: 0; }
}

/* первый экран */
.hero { display: grid; }
.hero__media { position: relative; height: min(58svh, 470px); overflow: hidden; background: var(--bg2); }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 22% 50%; }
.hero__media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgb(10 10 10 / .35) 0, rgb(10 10 10 / 0) 22%, rgb(10 10 10 / 0) 60%, var(--bg) 100%); }
.hero__text { position: relative; z-index: 1; margin-top: -40px; padding: 0 var(--gut) 20px; }
.hero h1 { margin: 0; font: 700 clamp(32px, 9vw, 44px)/1.05 var(--t); letter-spacing: -.01em; text-wrap: balance; }
.hero__sub { margin: 10px 0 0; max-width: 36ch; color: #d6d4d0; }
.hero__cta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
@media (min-width: 1024px) {
  .hero { grid-template-columns: 1fr 2fr; align-items: stretch; height: min(calc(100svh - 56px), 860px); }
  .hero__media { grid-column: 2; grid-row: 1; height: auto; }
  .hero__img { object-position: 72% 50%; }
  .hero__media::after { display: none; }
  .hero__text { grid-column: 1; grid-row: 1; align-self: center; max-width: 480px; margin-top: 0; padding: 24px 32px 24px max(32px, calc((100vw - 1320px) / 2 + 32px)); }
  .hero h1 { font-size: clamp(40px, 3.6vw, 56px); line-height: 1; }
  .hero__sub { font-size: 20px; max-width: 34ch; margin-top: 20px; }
  .hero__cta { grid-template-columns: auto auto; justify-content: start; gap: 12px; margin-top: 28px; }
}

/* «Снаружи / Внутри»: фирменная секция */
.sig { padding: 28px 0 22px; border-top: 1px solid var(--line); }
.sig__names { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-top: 12px; }
.sn { grid-column: span 2; min-height: 44px; padding: 0 4px; font: italic 900 15px/1 var(--f); color: var(--fg); background: none; border: 1px solid rgb(242 241 239 / .35); border-radius: 0; }
.sn:nth-child(n + 4) { grid-column: span 3; }
.sn[aria-pressed="true"] { color: #fff; background: var(--red); border-color: var(--red); }
.sig__frame { --fh: 200px; --sk: calc(var(--fh) * .0972); position: relative; height: var(--fh); margin-top: 8px; overflow: hidden; background: var(--bg2); }
.sig__l, .sig__r { position: absolute; top: 0; bottom: 0; background: var(--bg2); }
.sig__l { left: 0; width: calc(50% + var(--sk)); clip-path: polygon(0 0, 100% 0, calc(100% - 2 * var(--sk)) 100%, 0 100%); }
.sig__r { right: 0; width: calc(50% + var(--sk)); clip-path: polygon(calc(2 * var(--sk)) 0, 100% 0, 100% 100%, 0 100%); }
.sig__l img, .sig__r video { width: 100%; height: 100%; object-fit: cover; }
.sig__l img { object-position: 62% 50%; filter: brightness(1.22) contrast(1.04); }
.sig__r video { object-position: 50% 38%; }
.sig__seam { position: absolute; left: 50%; top: 50%; width: 3px; height: 140%; background: var(--red); transform: translate(-50%, -50%) rotate(11deg);
  -webkit-mask: linear-gradient(180deg, #000 0 50%, transparent 50% 100%) 0 100% / 100% 200%; mask: linear-gradient(180deg, #000 0 50%, transparent 50% 100%) 0 100% / 100% 200%;
  transition: -webkit-mask-position .9s cubic-bezier(.2, .7, .1, 1), mask-position .9s cubic-bezier(.2, .7, .1, 1); }
.sig__frame.is-drawn .sig__seam { -webkit-mask-position: 0 0; mask-position: 0 0; }
.no-js .sig__seam { -webkit-mask: none; mask: none; }
.sig__glass { position: absolute; left: 50%; top: 50%; translate: -50% -50%; padding: 5px 12px; font: 600 13px/1.3 var(--t); color: #fff; background: var(--red); opacity: 0; transition: opacity .25s ease; pointer-events: none; }
.sig__frame[data-glass="1"] .sig__glass { opacity: 1; }
.sp { margin-top: 10px; min-height: 250px; }
.sp__cols { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; min-height: 160px; }
.sp__lab { margin: 0 0 2px; font: 600 13px/1.4 var(--t); color: var(--mute); }
.sp ul { margin: 0; padding: 0; list-style: none; }
.sp li { padding: 2px 0; font-size: 13.5px; line-height: 1.3; border-top: 1px solid var(--line); }
.sp__price { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 8px; }
.sp__price > div { display: grid; gap: 2px; padding-right: 6px; }
.sp__cat { font: 400 12px/1.3 var(--t); color: var(--mute); }
.sp__cw { display: none; }
.sp__price b { font: italic 900 25px/1.1 var(--f); }
.sp__save { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 8px; background: var(--red-deep); min-height: 36px; }
.sp__save > span { display: flex; align-items: center; padding: 8px 8px; font: 700 13px/1.2 var(--t); white-space: nowrap; }
.sp__save i { margin-right: 4px; font: 400 12px/1.2 var(--t); font-style: normal; opacity: .85; }
.sp__save--none { background: none; }
@media (prefers-reduced-motion: no-preference) {
  .sp:not([hidden]) .sp__out li { animation: from-seam-l .5s cubic-bezier(.2, .7, .2, 1) both; }
  .sp:not([hidden]) .sp__in li { animation: from-seam-r .5s cubic-bezier(.2, .7, .2, 1) both; }
  .sp li:nth-child(2) { animation-delay: .05s !important; } .sp li:nth-child(3) { animation-delay: .1s !important; } .sp li:nth-child(4) { animation-delay: .15s !important; }
  .sp li:nth-child(5) { animation-delay: .2s !important; } .sp li:nth-child(6) { animation-delay: .25s !important; } .sp li:nth-child(7) { animation-delay: .3s !important; }
  .sp:not([hidden]) .sp__save:not(.sp__save--none) { animation: save-in .5s .15s ease both; }
}
@keyframes from-seam-l { from { opacity: 0; translate: 18px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes from-seam-r { from { opacity: 0; translate: -18px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes save-in { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 1024px) {
  .sig { padding: 88px 0 96px; }
  .sig__box { display: grid; grid-template-columns: 300px minmax(0, 1fr); column-gap: 56px; margin-top: 40px; align-items: start; }
  .sig__names { grid-column: 1; grid-row: 1 / span 2; grid-template-columns: 1fr; gap: 0; margin-top: 0; }
  .sn, .sn:nth-child(n + 4) { grid-column: auto; min-height: 76px; padding: 0 20px; font-size: 30px; text-align: left; border: 0; border-top: 1px solid var(--line); }
  .sn:last-child { border-bottom: 1px solid var(--line); }
  .sn:not([aria-pressed="true"]):hover { background: var(--bg2); }
  .sig__frame { --fh: 560px; grid-column: 2; margin-top: 0; }
  .sig__l img { object-position: 50% 50%; filter: brightness(1.1); }
  .sig__r video { object-position: 50% 85%; }
  .sig__glass { font-size: 15px; padding: 7px 16px; }
  .sig__box > .sp { grid-column: 2; margin-top: 20px; min-height: 0; }
  .sp__cols { column-gap: 56px; min-height: 0; }
  .sp__lab { font-size: 14px; margin-bottom: 4px; }
  .sp li { padding: 7px 0; font-size: 17px; }
  .sp__price { margin-top: 20px; }
  .sp__price > div { gap: 4px; }
  .sp__cat { font-size: 14px; }
  .sp__cl { display: none; }
  .sp__cw { display: inline; }
  .sp__price b { font-size: 40px; }
  .sp__save { margin-top: 12px; min-height: 48px; }
  .sp__save > span { padding: 0 14px; font-size: 17px; }
  .sp__save i { font-size: 14px; }
}

/* карта постоянного клиента (рабочий макет) */
.card { padding: 28px 0 24px; background: var(--bg2); border-top: 1px solid var(--line); }
.card__lead { margin: 8px 0 0; color: var(--mute); max-width: 44ch; }
.card__cells { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px; margin: 16px 0 0; padding: 0; list-style: none; }
.card__cells li { position: relative; display: grid; place-items: center; aspect-ratio: 1; font: italic 900 16px/1 var(--f); color: var(--mute); border: 1px solid var(--line); transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.card__cells li.is-gift { color: var(--fg); border-color: var(--red); }
.card__cells li.is-on { color: #fff; background: var(--red); border-color: var(--red); }
.card__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 12px; }
input, select { width: 100%; min-height: 48px; padding: 0 12px; color: var(--fg); background: rgb(10 10 10 / .6); border: 1px solid rgb(242 241 239 / .3); border-radius: 0; color-scheme: dark; }
.card__row .btn { padding-inline: 18px; }
.kit-mock__note { margin: 12px 0 8px; font: 500 13px/1.4 var(--t); letter-spacing: 0; text-transform: none; opacity: 1; color: var(--mute); }
.ans { display: grid; gap: 6px; justify-items: start; padding: 14px 16px; background: var(--bg); border: 1px solid var(--line); }
.ans__stat { margin: 0; font: italic 800 20px/1.25 var(--f); }
.ans__txt { margin: 0; color: var(--mute); }
@media (min-width: 900px) {
  .card { padding: 88px 0 96px; }
  .card__in { display: grid; grid-template-columns: 5fr 6fr; column-gap: 72px; align-items: center; }
  .card__cells { gap: 10px; margin-top: 0; }
  .card__cells li { font-size: 28px; }
  .card__row { margin-top: 20px; grid-template-columns: minmax(0, 1fr) 220px; }
}

/* до и после: шторка + лента зон */
.ba { padding: 28px 0 22px; border-top: 1px solid var(--line); }
.ba__grid { display: grid; gap: 8px; margin-top: 12px; }
.ba__frame { --kit-fg: var(--red); --kit-bg: var(--bg); background: var(--bg2); }
.ba__frame .kit-ba__before img, .ba__frame .kit-ba__after img { position: absolute; left: 0; top: 0; width: 100%; height: auto; max-width: none; transform-origin: 0 0; }
.ba__frame .kit-ba__handle { width: 3px; translate: -1.5px 0; }
.kit-ba__tag { font: 600 13px/1.3 var(--t); background: rgb(10 10 10 / .78); }
.kit-ba__tag--before, .kit-ba__tag--after { top: auto; bottom: 12px; }
.bapairs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.bap { position: relative; display: block; padding: 0; min-height: 72px; aspect-ratio: 1 / 1.1; overflow: hidden; background: var(--bg2); border: 2px solid transparent; opacity: .7; text-align: left; }
.bap img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bap span { position: absolute; inset: auto 0 0; padding: 14px 4px 5px 6px; font: 600 12px/1.2 var(--t); color: #fff; background: linear-gradient(180deg, rgb(10 10 10 / 0), rgb(10 10 10 / .85)); }
.bap[aria-pressed="true"] { border-color: var(--red); opacity: 1; }
@media (min-width: 1024px) {
  .ba { padding: 88px 0 96px; }
  .ba__grid { grid-template-columns: minmax(0, 620px) minmax(0, 1fr); column-gap: 56px; margin-top: 40px; align-items: start; }
  .bapairs { grid-template-columns: 1fr; gap: 8px; }
  .bap { display: grid; grid-template-columns: 112px 1fr; align-items: center; aspect-ratio: auto; min-height: 112px; padding: 0; }
  .bap img { position: relative; inset: auto; width: 112px; height: 112px; }
  .bap span { position: static; padding: 0 20px; font-size: 20px; background: none; }
}

/* работы: мозаика */
.works { padding: 40px 0 56px; border-top: 1px solid var(--line); }
.mz { --u: calc((100vw - 2 * var(--gut) - 2px) / 2); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: var(--u); grid-auto-flow: dense; gap: 2px; margin-top: 20px; }
.mz__t { position: relative; padding: 0; margin: 0; overflow: hidden; background: var(--bg2); border: 0; cursor: zoom-in; }
.mz__t--w { grid-column: span 2; }
.mz__t--b { grid-column: span 2; grid-row: span 2; }
.mz__t--h { grid-row: span 2; }
.mz__t img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .1, 1); }
.mz__t:hover img { transform: scale(1.035); }
.mz__t:focus-visible { outline-offset: -3px; }
@media (min-width: 1024px) {
  .works { padding: 88px 0 96px; }
  .mz { --u: calc((min(100vw, 1320px) - 2 * var(--gut) - 6px) / 4); grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 40px; }
}
@media (prefers-reduced-motion: reduce) { .mz__t img { transition: none; } .mz__t:hover img { transform: none; } }

/* услуги */
.svc { padding: 28px 0 20px; border-top: 1px solid var(--line); }
.svc__cats { margin: 10px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--mute); }
.svc__cats span { display: inline-block; margin-right: 12px; white-space: nowrap; }
.svc__cats b { margin-right: 2px; color: var(--fg); font-weight: 700; }
.sv__list { margin-top: 14px; }
.sv__h { margin: 0; font-size: 20px; border-top: 1px solid var(--line); }
.sv__btn { display: grid; grid-template-columns: 1fr 28px; align-items: center; column-gap: 12px; width: 100%; min-height: 54px; padding: 8px 0; text-align: left; background: none; border: 0; }
.sv__name { font: 700 clamp(19px, 5vw, 30px)/1.2 var(--t); }
.sv__btn svg { width: 26px; height: 26px; transition: rotate .2s ease; }
.sv__btn[aria-expanded="true"] svg { rotate: 180deg; }
.sv__in { display: grid; gap: 16px; }
.sv__body { padding-bottom: 14px; }
.sv__media { margin: 0; width: 100%; height: 220px; overflow: hidden; background: var(--bg2); }
.sv__media video, .sv__media img { width: 100%; height: 100%; object-fit: cover; }
.sv__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sv__pair .sv__media { height: 170px; }
.spec { margin: 0; }
.spec__r { display: grid; grid-template-columns: minmax(0, 1fr) repeat(3, 3.4em); column-gap: 4px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--line); }
.spec__r:first-child { border-top: 0; }
.spec__h { padding: 0 0 4px; font: 600 13px/1.2 var(--t); color: var(--mute); }
.spec__t small { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.4; color: var(--mute); }
.spec__p { font: 500 14px/1.4 var(--t); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.spec__a { grid-column: 2 / 5; font: 500 14px/1.4 var(--t); text-align: right; }
.svc__note { margin: 8px 0 0; color: var(--mute); }
.svc__note a { display: inline-flex; align-items: center; min-height: 44px; color: var(--fg); }
.b2b { margin: 0; padding: 0; list-style: none; }
.b2b li { padding: 10px 0; border-top: 1px solid var(--line); }
.b2b li:first-child { border-top: 0; }
@media (min-width: 900px) {
  .svc { padding: 88px 0 96px; }
  .svc__cats { font-size: 15px; }
  .sv__btn { min-height: 84px; }
  .sv__in { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; gap: 48px; }
  .sv__in > .sv__media, .sv__in > .sv__pair { order: 2; grid-column: 2; }
  .sv__in > .sv__body { order: 1; grid-column: 1; }
  .sv__in > .sv__media { height: 440px; }
  .sv__pair { grid-template-columns: 1fr; }
  .sv__pair .sv__media { height: 220px; }
  .sv__in:not(:has(.sv__media)):not(:has(.sv__pair)) { grid-template-columns: minmax(0, 1fr); }
  .spec__r { grid-template-columns: minmax(0, 1fr) repeat(3, 4.2em); padding: 12px 0; }
  .spec__p, .spec__a { font-size: 16px; }
}

/* отзывы */
.rev { padding: 32px 0 24px; background: var(--bg2); border-top: 1px solid var(--line); }
.rev__head small { display: block; margin-top: 8px; font: 500 14px/1.45 var(--t); letter-spacing: 0; color: var(--mute); }
.rev__list { display: flex; gap: 12px; margin: 16px 0 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.rev__list::-webkit-scrollbar { display: none; }
.rev__list li { flex: 0 0 84%; padding: 16px; border: 1px solid var(--line); scroll-snap-align: start; }
.rev__list p { margin: 0; font: 500 clamp(16px, 4.4vw, 21px)/1.35 var(--t); max-width: 38ch; text-wrap: pretty; }
.rev__by { display: block; margin-top: 10px; font: 400 13px/1.4 var(--t); color: var(--mute); }
.more--ink { margin-top: 6px; }
@media (min-width: 900px) {
  .rev { padding: 88px 0 96px; }
  .rev__list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 56px; margin: 28px 0 0; overflow: visible; }
  .rev__list li { padding: 20px 0; border: 0; border-top: 1px solid var(--line); }
  .rev__list li:first-child { grid-column: 1 / -1; }
  .rev__list li:first-child p { font-size: 30px; max-width: none; }
}

/* контакты и запись */
.contacts { padding: 28px 0 22px; border-top: 1px solid var(--line); }
.contacts__in { display: grid; gap: 12px; }
.contacts__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.contacts__main { position: relative; }
.logo--ct { position: absolute; top: 0; right: 0; height: 40px; width: auto; aspect-ratio: 327 / 86; }
.cl { display: grid; margin: 6px 0 0; }
.cl > div { display: grid; grid-template-columns: 74px minmax(0, 1fr); align-items: center; border-top: 1px solid var(--line); }
.cl dt { font: 400 13px/1.4 var(--t); color: var(--mute); }
.cl dd { margin: 0; font-size: 15px; display: flex; flex-wrap: wrap; align-items: center; column-gap: 14px; }
.cl a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 3px; }
.cl__links a { min-width: 44px; justify-content: center; text-decoration: none; font-weight: 600; }
.cl__go { margin-left: auto; font-weight: 600; }
.cl dd.cl__addr { flex-wrap: nowrap; column-gap: 8px; font-size: 14.5px; }
.cl__find, .cl__city { display: none !important; }
.cl > div:not(:has(a)) { min-height: 44px; }
.bk { display: grid; gap: 6px; margin-top: 8px; }
.bk { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.bk__name, .bk__tel { grid-column: span 3; }
.bk__svc, .bk__day, .bk__time { grid-column: span 2; }
.bk__acts, .bk > .kit-mock__out, .bk > template { grid-column: 1 / -1; }
.bk select, .bk input { padding-inline: 8px; font-size: 14px; text-overflow: ellipsis; }
.bk__acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 4px; }
.contacts__side { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 6px; height: 200px; margin-top: 4px; }
.contacts__pic { overflow: hidden; background: var(--bg2); }
.contacts__pic img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; }
.contacts__map { aspect-ratio: auto; height: 100%; min-height: 0; }
@media (min-width: 900px) {
  .contacts { padding: 88px 0 96px; }
  .contacts__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 64px; align-items: stretch; }
  .logo--ct { position: static; height: 64px; margin-top: 32px; }
  .cl > div { grid-template-columns: 120px minmax(0, 1fr); }
  .cl dd, .cl__addr { font-size: 17px; }
  .cl__find { display: grid !important; }
  .cl__city { display: inline !important; }
  .cl__find dd { padding: 12px 0; }
  .cl > div:not(:has(a)) { min-height: 52px; }
  .cl > div:not(:has(a)) dd { padding-block: 12px; }
  .bk { gap: 8px; margin-top: 20px; }
  .bk select, .bk input { font-size: 16px; padding-inline: 14px; }
  .contacts__side { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 8px; height: auto; min-height: 640px; margin-top: 0; }
  .contacts__pic img { object-position: 50% 50%; }
}

/* подвал */
.foot { padding-bottom: calc(88px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); }
.foot .kit-foot-split__wm { padding: 32px var(--gut) 0; }
.wm { margin: 0; padding: .06em .1em .1em 0; font-family: var(--f); font-style: italic; font-weight: 900; font-size: 22vw; line-height: .92; letter-spacing: 0; }
.foot__in { display: grid; gap: 4px; padding: 8px var(--gut) 0; font-size: 14px; color: var(--mute); }
.foot__in p { margin: 0; max-width: 70ch; }
.foot__in b { color: var(--fg); }
.foot__in a { display: inline-flex; align-items: center; min-height: 44px; }
@media (min-width: 900px) {
  .foot { padding-bottom: 32px; }
  .foot > .kit-foot-split { padding-block: 40px 8px; }
  .foot .kit-foot-split__wm, .foot .foot__in { padding: 0; }
}

/* липкая панель */
.bar { background: var(--bg); }
.bar a { font: 700 16px var(--t); }
.bar__call { border: 1px solid rgb(242 241 239 / .45); }
.bar__book { background: var(--red); color: #fff; }

/* листы-макеты */
.sheet { margin: auto; width: min(520px, calc(100% - 24px)); max-height: calc(100dvh - 24px); padding: 0; color: var(--fg); background: var(--bg2); border: 1px solid var(--line); overflow: auto; }
.sheet::backdrop { background: rgb(0 0 0 / .66); }
.sheet__box { position: relative; padding: 28px 20px 24px; }
.sheet__x { position: absolute; top: 4px; right: 4px; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; background: none; border: 0; }
.sheet__x svg { width: 24px; height: 24px; }
.sheet__h { margin: 0 44px 16px 0; font: italic 800 25px/1.1 var(--f); }
.fm { display: grid; grid-template-columns: 1fr; gap: 10px; }
.fm__row { display: grid; gap: 4px; min-width: 0; }
.fm__lab { font: 500 13px/1.45 var(--t); color: var(--mute); }
.fm__pair { display: grid; grid-template-columns: 130px 1fr; gap: 8px; }
.fm__file { position: relative; display: grid; place-items: center; min-height: 48px; border: 1px dashed rgb(242 241 239 / .45); font-weight: 600; cursor: pointer; }
.fm__file input { position: absolute; inset: 0; opacity: 0; min-height: 0; cursor: pointer; }
.fm__prev { display: flex; gap: 8px; margin-top: 8px; }
.fm__prev img { width: 84px; height: 84px; object-fit: cover; object-position: 50% 70%; }
.fm__go, .fm > .kit-mock__out, .fm > template { grid-column: 1 / -1; }
.fm__go { width: 100%; margin-top: 4px; }

/* поля по краям у полос с фоном */
.card, .rev { padding-inline: 0; }
