/**
 * «О клинике», подстраницы, документы, контакты и наполнение подвала (таск 08).
 * Токены — из design.md через переменные --tz-*; своих значений не изобретаем.
 * Верстка сразу в двух форматах: десктоп 1440/1200 и телефон 390/360 (G24).
 */

/* Шапка страницы раздела. Те же значения, что у страниц каталога (таск 07):
   catalog.css грузится только на своих страницах, поэтому правило нужно и здесь. */
.tz-page-hero {
  background: var(--tz-color-surface, #f6f6fb);
  padding-block: var(--tz-space-7, 48px) var(--tz-space-8, 64px);
}
.tz-page-hero__inner { display: grid; gap: var(--tz-space-4, 16px); max-width: 760px; }
.tz-page-hero__title {
  margin: 0;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.1;
}
.tz-page-hero__lead { margin: 0; font-size: clamp(16px, 1.6vw, 19px); color: var(--tz-color-ink); }
.tz-page-hero__back {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; text-decoration: none;
  color: var(--tz-color-muted, #92a1a7); font-size: 15px;
}
.tz-page-hero__back:hover { color: var(--tz-color-primary); }
.tz-page-hero__backicon { transform: rotate(180deg); }

/* Заглушки «чего не хватает» — заметные, но не кричащие. */
.tz-gap {
  margin: var(--tz-space-4, 16px) 0;
  padding: var(--tz-space-4, 16px);
  border-radius: var(--tz-radius-md, 16px);
  background: var(--tz-color-tint, #e8edfb);
  color: var(--tz-color-ink);
  font-size: 15px;
  overflow-wrap: anywhere;
}
.tz-gap--inline { display: inline-block; margin: 0; padding: 2px 8px; font-size: 13px; }

/* --- «О клинике» ------------------------------------------------------- */
.tz-about-page__heading {
  margin: 0 0 var(--tz-space-5, 24px);
  font-size: clamp(24px, 3vw, 34px);
}
.tz-about-page__sub { margin: 0 0 var(--tz-space-5, 24px); color: var(--tz-color-muted, #92a1a7); }
.tz-about-page__outro { margin: var(--tz-space-6, 32px) 0 0; font-size: 18px; max-width: 70ch; }
.tz-about-page__more { margin: var(--tz-space-6, 32px) 0 0; }
.tz-about-page__two {
  display: grid; gap: var(--tz-space-5, 24px);
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.tz-about-page__card { height: 100%; }
.tz-about-page__editor { margin-block: var(--tz-space-7, 48px); }

.tz-tags { list-style: none; margin: var(--tz-space-5, 24px) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tz-tags__item {
  padding: 8px 14px; border-radius: var(--tz-radius-pill, 999px);
  background: var(--tz-color-card, #f2f4ff); font-size: 15px;
}
.tz-tags__item--muted { background: transparent; color: var(--tz-color-muted, #92a1a7); }
.tz-about-page__note { margin: var(--tz-space-5, 24px) 0 0; max-width: 70ch; }

/* «Что для нас важно» (бриф 08.10, п. 45): три абзаца, последний — с сиреневой чертой слева. */
.tz-about-page__important-text { max-width: 70ch; }
.tz-about-page__accent {
  margin-top: var(--tz-space-5, 24px);
  padding-left: var(--tz-space-4, 16px);
  border-left: 4px solid var(--tz-color-primary, #816CD7);
  font-size: 20px; font-weight: 600; line-height: 1.4;
}
@media (max-width: 760px) { .tz-about-page__accent { font-size: 18px; } }

.tz-values { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.tz-values__item { display: flex; align-items: center; gap: 12px; }

/* Подразделы «О клинике». */
.tz-subnav { margin-top: var(--tz-space-6, 32px); }
.tz-subnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.tz-subnav__link {
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 44px; padding: 8px 18px 8px 8px;
  border-radius: var(--tz-radius-pill, 999px);
  background: var(--tz-color-card, #f2f4ff);
  color: var(--tz-color-ink); text-decoration: none;
}
.tz-subnav__link:hover { background: var(--tz-color-tint, #e8edfb); }

/* --- Галерея ----------------------------------------------------------- */
.tz-gallery {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--tz-space-5, 24px);
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.tz-gallery__item { display: grid; gap: 8px; min-width: 0; }
.tz-gallery__img,
.tz-gallery__item img {
  width: 100%; height: 260px; object-fit: cover;
  border-radius: var(--tz-radius-lg, 24px); display: block;
}
.tz-gallery--docs .tz-gallery__img,
.tz-gallery--docs .tz-gallery__item img { height: auto; object-fit: contain; background: var(--tz-color-surface, #f6f6fb); }
.tz-gallery__caption { font-size: 15px; color: var(--tz-color-muted, #92a1a7); }

/* --- Команда (временная разметка, пока её не отдал таск 06) ------------- */
.tz-team__title { margin: 0 0 var(--tz-space-5, 24px); font-size: clamp(24px, 3vw, 34px); }
.tz-team__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--tz-space-5, 24px);
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
.tz-team__item { display: grid; gap: 12px; min-width: 0; }
.tz-team__img { width: 100%; height: 280px; object-fit: cover; border-radius: var(--tz-radius-lg, 24px); display: block; }
.tz-team__img--empty {
  display: grid; place-items: center;
  background: var(--tz-color-card, #f2f4ff); color: var(--tz-color-muted, #92a1a7);
}
.tz-team__body { display: grid; gap: 4px; }

/* --- Вакансии и реквизиты --------------------------------------------- */
.tz-vacancies { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tz-space-5, 24px); }
.tz-vacancies__block { margin: 12px 0 0; }
.tz-vacancies__contact { margin: 12px 0 0; font-weight: 600; }

.tz-requisites { margin: 0 0 var(--tz-space-7, 48px); display: grid; gap: 12px; }
.tz-requisites__row {
  display: grid; grid-template-columns: minmax(160px, 220px) 1fr; gap: 8px 24px;
  padding-bottom: 12px; border-bottom: 1px solid var(--tz-color-tint, #e8edfb);
}
.tz-requisites dt { color: var(--tz-color-muted, #92a1a7); margin: 0; }
.tz-requisites dd { margin: 0; overflow-wrap: anywhere; }

/* --- Лицензии (референс «Футер с лицензиями.png») ---------------------- */
.tz-licenses__title { margin: 0 0 var(--tz-space-4, 16px); font-size: 18px; font-family: var(--tz-font-sans, sans-serif); text-transform: none; }
.tz-licenses__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--tz-space-4, 16px);
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}
.tz-licenses__item { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.tz-licenses__icon {
  flex: 0 0 auto; width: 40px; height: 40px; display: grid; place-items: center;
  border-radius: var(--tz-radius-sm, 8px);
  background: var(--tz-color-tint, #e8edfb); color: var(--tz-color-primary);
}
.tz-licenses__body { display: grid; gap: 4px; min-width: 0; }
.tz-licenses__link, .tz-licenses__name { overflow-wrap: anywhere; }
.tz-licenses__link { color: var(--tz-color-ink); }
.tz-licenses__link:hover { color: var(--tz-color-primary); }
.tz-licenses__meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13px; color: var(--tz-color-muted, #92a1a7); }
.tz-licenses__hint { margin: 0; font-size: 14px; color: var(--tz-color-muted, #92a1a7); }
.tz-licenses--page { margin-bottom: var(--tz-space-7, 48px); }

/* --- Правовые тексты --------------------------------------------------- */
.tz-legal__title { margin: 0 0 var(--tz-space-4, 16px); font-size: clamp(22px, 2.6vw, 30px); }
.tz-legal__draft {
  display: flex; gap: 12px; align-items: flex-start;
  margin: 0 0 var(--tz-space-6, 32px);
  padding: var(--tz-space-4, 16px);
  border-radius: var(--tz-radius-md, 16px);
  background: var(--tz-color-tint, #e8edfb);
  font-size: 15px;
}
.tz-legal__drafticon { flex: 0 0 auto; color: var(--tz-color-primary); }
.tz-legal__lead { margin: 0 0 var(--tz-space-5, 24px); max-width: 75ch; }
.tz-legal__heading { font-size: clamp(19px, 2vw, 23px); margin-top: var(--tz-space-6, 32px); }
.tz-legal__body p { overflow-wrap: anywhere; }
/* Утверждённая политика (inc/legal/privacy-policy.html): разделы h2, подразделы h3, таблица терминов. */
.tz-legal__doc h2 { font-size: clamp(19px, 2vw, 23px); margin-top: var(--tz-space-6, 32px); scroll-margin-top: 96px; }
.tz-legal__doc h3 { font-size: clamp(17px, 1.6vw, 19px); margin-top: var(--tz-space-5, 24px); }
.tz-legal__doc li, .tz-legal__doc td, .tz-legal__doc th { overflow-wrap: anywhere; }
.tz-legal__doc hr { border: 0; border-top: 1px solid var(--tz-color-tint, #e8edfb); margin-block: var(--tz-space-6, 32px); }
.tz-legal__doc table { width: 100%; border-collapse: collapse; margin-block: var(--tz-space-4, 16px); font-size: 15px; }
.tz-legal__doc th, .tz-legal__doc td { border: 1px solid var(--tz-color-tint, #e8edfb); padding: 8px 10px; text-align: left; vertical-align: top; }
.tz-legal__doc th { background: var(--tz-color-tint, #e8edfb); }
@media (max-width: 600px) { .tz-legal__doc th, .tz-legal__doc td { padding: 6px; font-size: 14px; } }
.tz-legal__rule { border: 0; border-top: 1px solid var(--tz-color-tint, #e8edfb); margin-block: var(--tz-space-8, 64px); }

/* --- Контакты ---------------------------------------------------------- */
.tz-contacts__grid {
  display: grid; gap: var(--tz-space-6, 32px);
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  align-items: start;
}
.tz-contacts__card {
  background: var(--tz-color-card-alt, #f2f0fb);
  border-radius: var(--tz-radius-lg, 24px);
  padding: var(--tz-space-6, 32px);
  display: grid; gap: var(--tz-space-5, 24px);
  min-width: 0;
}
.tz-contacts__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tz-space-4, 16px); }
.tz-contacts__item { display: flex; gap: 12px; align-items: center; }
.tz-contacts__body { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.tz-contacts__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.tz-contacts__cta { justify-self: start; }
.tz-contacts__socials { display: grid; gap: 8px; }
.tz-socials__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tz-socials__link {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 44px; padding: 8px 16px;
  border-radius: var(--tz-radius-pill, 999px);
  background: #fff; color: var(--tz-color-ink); text-decoration: none;
}
.tz-socials__link:hover { color: var(--tz-color-primary); }
.tz-socials__arrow { width: 16px; height: 16px; }

/* Иконки соцсетей: фирменный знак (Simple Icons) заливкой, запасная иконка
   Lucide — контуром. Цвет у обеих — текущий цвет ссылки, фирменные цвета
   соцсетей не берём, чтобы подвал не пестрил. */
.tz-social-icon { width: 18px; height: 18px; }
.tz-social-icon--brand { fill: currentColor; stroke: none; }

.tz-contacts__map { min-width: 0; }
.tz-contacts__frame {
  width: 100%; max-width: 100%; height: 420px; border: 0;
  border-radius: var(--tz-radius-lg, 24px); display: block;
}
.tz-contacts__mapstub {
  display: grid; gap: var(--tz-space-4, 16px); justify-items: start;
  padding: var(--tz-space-6, 32px);
  border-radius: var(--tz-radius-lg, 24px);
  background: var(--tz-color-surface, #f6f6fb);
}
.tz-bubble--lg { width: 56px; height: 56px; }

/* --- Подвал: полосы, которые наполняет этот таск ----------------------- */
.tz-footer__strip {
  display: flex; flex-wrap: wrap; gap: var(--tz-space-5, 24px) var(--tz-space-7, 48px);
  align-items: flex-start; justify-content: space-between;
}
.tz-footer__label { display: block; font-size: 13px; color: var(--tz-color-muted, #92a1a7); margin-bottom: 8px; }
.tz-footer__sociallist, .tz-footer__paylist { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tz-footer__social {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 8px 16px;
  border-radius: var(--tz-radius-pill, 999px);
  background: var(--tz-color-card, #f2f4ff);
  color: var(--tz-color-ink); text-decoration: none;
}
.tz-footer__social:hover { background: var(--tz-color-tint, #e8edfb); color: var(--tz-color-primary); }
.tz-footer__pay {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 8px 16px;
  border-radius: var(--tz-radius-pill, 999px);
  background: var(--tz-color-surface, #f6f6fb);
  font-size: 14px;
}
.tz-footer__pay .tz-icon { width: 18px; height: 18px; color: var(--tz-color-primary); }
.tz-footer__badge {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 8px 18px;
  border-radius: var(--tz-radius-pill, 999px);
  background: var(--tz-color-tint, #e8edfb);
  color: var(--tz-color-ink); text-decoration: none; font-weight: 600;
}
.tz-footer__badge .tz-icon { color: var(--tz-color-primary); }
.tz-footer__warning { font-weight: 600; color: var(--tz-color-ink) !important; }
.tz-footer__note { font-size: 12px; }

/* --- Плашка про cookie ------------------------------------------------- */
.tz-cookie {
  position: fixed; inset: auto 16px 16px 16px; z-index: 60;
  display: flex; flex-wrap: wrap; gap: var(--tz-space-4, 16px);
  align-items: center; justify-content: space-between;
  max-width: 720px; margin-inline: auto;
  padding: var(--tz-space-4, 16px) var(--tz-space-5, 24px);
  border-radius: var(--tz-radius-lg, 24px);
  background: #fff;
  box-shadow: 0 12px 40px rgba(0, 1, 24, .18);
}
/* Правка №1: без этой строки атрибут hidden проигрывает display:flex выше —
   плашка остаётся на экране, и кнопка «Хорошо» выглядит нерабочей. */
.tz-cookie[hidden] { display: none; }
.tz-cookie__text { margin: 0; font-size: 14px; flex: 1 1 260px; min-width: 0; }
.tz-cookie__btn { min-height: 44px; }

@media (max-width: 760px) {
  .tz-page-hero { padding-block: var(--tz-space-5, 24px) var(--tz-space-6, 32px); }
  .tz-gallery { grid-template-columns: 1fr; }
  .tz-gallery__img, .tz-gallery__item img { height: 220px; }
  .tz-team__list { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .tz-team__img { height: 200px; }
  .tz-licenses__list { grid-template-columns: 1fr; }
  .tz-requisites__row { grid-template-columns: 1fr; }
  .tz-contacts__card { padding: var(--tz-space-5, 24px); }
  .tz-contacts__frame { height: 320px; }
  .tz-footer__strip { flex-direction: column; }
  .tz-cookie { inset: auto 8px 8px 8px; padding: var(--tz-space-4, 16px); }
}

/* ---------------------------------------------------------------------------
 * Два кирпичика, которые до сих пор жили только в home.css, а нужны не только
 * главной: значок в кружке и сетка «Почему выбирают нас». home.css на других
 * страницах не грузится, поэтому на «О клинике» кружки были плоскими иконками,
 * а сетка — простым столбцом. Объявления повторены дословно, чтобы на главной,
 * где грузятся оба файла, ничего не поехало; когда кирпичики переедут в
 * main.css, эти строки отсюда уйдут.
 * ------------------------------------------------------------------------ */
.tz-bubble {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 50%;
  background: var(--tz-color-card-alt, #f2f0fb);
  color: var(--tz-color-primary);
}
.tz-why { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--tz-space-4, 16px); }
.tz-why__item {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: var(--tz-space-4, 16px);
  border-radius: var(--tz-radius-md, 16px);
  background: var(--tz-color-card, #f2f4ff);
  font-size: 15px;
  font-weight: 500;
}
.tz-why__text { min-width: 0; overflow-wrap: anywhere; }

/* ---------------------------------------------------------------------------
 * Цитата основателя на «О клинике» (правка №29).
 *
 * Заказчик: «очень большая фотография. нужно чтобы слева была маленькая
 * фотография, а справа оформленная миссия». Причина была не только в размере:
 * базовый `.tz-quote` живёт в home.css, а home.css на «О клинике» не грузится —
 * фигура раскладывалась как обычный блок и фото занимало всю ширину колонки.
 * Поэтому здесь блок описан целиком и ни на что не опирается: свой grid,
 * свой фон, свой размер фото. Цитату на главной это не трогает.
 * ------------------------------------------------------------------------ */
.tz-quote--compact {
  display: grid;
  grid-template-columns: minmax(0, 200px) minmax(0, 1fr);
  gap: var(--tz-space-6, 32px);
  align-items: center;
  margin: 0;
  padding: var(--tz-space-6, 32px);
  border-radius: var(--tz-radius-lg, 24px);
  background: var(--tz-color-bg, #fff);
  box-shadow: 0 8px 24px rgba(47, 76, 84, .08);
}
.tz-quote--compact .tz-quote__media { align-self: start; min-width: 0; }
.tz-quote--compact .tz-quote__photo { display: block; width: 200px; max-width: 100%; height: 240px; max-height: none; object-fit: cover; object-position: top center; border-radius: var(--tz-radius-md, 16px); }
.tz-quote--compact .tz-quote__photo--empty { width: 200px; height: 240px; min-height: 0; background: var(--tz-color-card, #f2f4ff); }
.tz-quote--compact .tz-quote__body { display: flex; flex-direction: column; justify-content: center; gap: var(--tz-space-4, 16px); min-width: 0; }
.tz-quote--compact .tz-quote__mark { font-family: var(--tz-font-serif, serif); font-size: 64px; line-height: .6; color: var(--tz-color-primary); }
.tz-quote--compact .tz-quote__text { margin: 0; font-size: clamp(18px, 1.9vw, 22px); line-height: 1.5; font-family: var(--tz-font-serif, serif); }
.tz-quote--compact .tz-quote__author { display: flex; flex-direction: column; gap: 4px; font-size: 16px; }

/* ---------------------------------------------------------------------------
 * Правила подготовки (правка №14): страница раздела, список разделов
 * и короткий блок «Как подготовиться» на странице услуги.
 * ------------------------------------------------------------------------ */
.tz-prep { max-width: 72ch; }
.tz-prep__heading { margin: var(--tz-space-6, 32px) 0 var(--tz-space-3, 12px); }
.tz-prep > *:first-child { margin-top: 0; }
.tz-prep ul, .tz-prep ol { margin: 0 0 var(--tz-space-4, 16px); padding-left: 1.25em; }
.tz-prep li { margin-bottom: 6px; }
.tz-prep-page__note { margin-top: var(--tz-space-6, 32px); color: var(--tz-color-muted, #5a6376); }
.tz-prep-page__more { margin-top: var(--tz-space-6, 32px); }

.tz-prep-index { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tz-space-4, 16px); }
.tz-prep-index__link {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--tz-space-4, 16px);
  align-items: center; min-height: 44px;
  padding: var(--tz-space-5, 24px); border-radius: var(--tz-radius-lg, 24px);
  background: var(--tz-color-bg, #fff); box-shadow: 0 8px 24px rgba(47, 76, 84, .08);
  text-decoration: none; color: inherit;
}
.tz-prep-index__link:hover { box-shadow: 0 12px 32px rgba(47, 76, 84, .14); }
.tz-prep-index__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.tz-prep-index__title { font-weight: 600; }
.tz-prep-index__lead { font-size: 15px; color: var(--tz-color-muted, #5a6376); }
.tz-prep-index__arrow { flex: none; }

.tz-prep-teaser__inner { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--tz-space-4, 16px); align-items: start; }
.tz-prep-teaser__title { margin: 0 0 var(--tz-space-3, 12px); font-size: clamp(20px, 2vw, 24px); }
.tz-prep-teaser__lead { margin: 0 0 var(--tz-space-3, 12px); }
.tz-prep-teaser__list { margin: 0 0 var(--tz-space-4, 16px); padding-left: 1.25em; }
.tz-prep-teaser__list li { margin-bottom: 6px; }
.tz-prep-teaser__more { margin: 0; }

@media (max-width: 760px) {
  /* Телефон: фото сверху, цитата под ним — как просил заказчик. */
  .tz-quote--compact { grid-template-columns: minmax(0, 1fr); gap: var(--tz-space-4, 16px); padding: var(--tz-space-5, 24px); }
  .tz-quote--compact .tz-quote__media { justify-self: center; }
  .tz-quote--compact .tz-quote__photo,
  .tz-quote--compact .tz-quote__photo--empty { width: 160px; height: 190px; }
  .tz-quote--compact .tz-quote__body { text-align: left; }

  .tz-prep-index__link { padding: var(--tz-space-4, 16px); }
  .tz-prep-teaser__inner { grid-template-columns: minmax(0, 1fr); }
}

/* Контакты (правки 08.10) — page-kontakty.php, макет п. 48 ------------------- */

.tz-kontakty__hero { padding-block: var(--tz-space-6, 32px) 0; overflow: hidden; }
.tz-kontakty__hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 560px);
  align-items: start;
  gap: var(--tz-space-5, 24px);
  min-height: 240px;
}
.tz-kontakty__hero-text { position: relative; z-index: 1; padding-block: var(--tz-space-5, 24px); }
.tz-kontakty__title {
  font-family: var(--tz-font-serif, serif);
  font-size: clamp(32px, 4.2vw, 52px);
  text-transform: uppercase;
  line-height: 1.05;
  margin: 0 0 var(--tz-space-4, 16px);
}
.tz-kontakty .tz-rule { display: block; width: 64px; height: 3px; border-radius: 2px; background: var(--tz-color-primary); }
.tz-kontakty__lead { margin: var(--tz-space-5, 24px) 0 0; max-width: 48ch; font-size: clamp(16px, 1.5vw, 19px); line-height: 1.5; }
.tz-kontakty__hero-media { justify-self: end; width: 100%; max-width: 686px; }
.tz-kontakty__hero-media :where(img, picture) { display: block; width: 100%; height: auto; }

.tz-kontakty__main { padding-top: var(--tz-space-5, 24px); }
.tz-kontakty__card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  gap: var(--tz-space-5, 24px);
  padding: var(--tz-space-5, 24px);
  border-radius: var(--tz-radius-lg, 24px);
  background: var(--tz-color-bg, #fff);
  box-shadow: 0 10px 40px rgba(47, 76, 84, .08);
}
.tz-kontakty__info {
  display: flex;
  flex-direction: column;
  gap: var(--tz-space-5, 24px);
  padding: var(--tz-space-6, 32px) var(--tz-space-5, 24px);
  border-radius: var(--tz-radius-lg, 24px);
  background: var(--tz-color-card, #f2f4ff);
}
.tz-kontakty__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tz-space-5, 24px); }
.tz-kontakty__row { display: flex; align-items: flex-start; gap: var(--tz-space-4, 16px); }
.tz-kontakty__icon {
  flex: none; display: inline-grid; place-items: center;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--tz-color-tint, #e8edfb); color: var(--tz-color-primary);
}
.tz-kontakty__icon .tz-icon { width: 22px; height: 22px; }
.tz-kontakty__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.tz-kontakty__label { font-size: 14px; color: var(--tz-color-muted, #5e6d73); }
.tz-kontakty__value,
.tz-kontakty__phone { font-weight: 700; font-size: 18px; color: var(--tz-color-ink, #2f4c54); text-decoration: none; overflow-wrap: anywhere; }
.tz-kontakty__phone { display: inline-flex; align-items: center; min-height: 32px; }
.tz-kontakty__phone:hover, a.tz-kontakty__value:hover { color: var(--tz-color-primary-text, #6e58cc); }
.tz-kontakty__hours-line { color: var(--tz-color-muted, #5e6d73); }
.tz-kontakty__hours-line.tz-kontakty__value { color: var(--tz-color-ink, #2f4c54); }
.tz-kontakty__hours-note { font-size: 15px; }
.tz-kontakty__route { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--tz-color-primary-text, #6e58cc); text-decoration: none; }
.tz-kontakty__route:hover { text-decoration: underline; }
.tz-kontakty__rounds { flex: none; display: flex; gap: var(--tz-space-3, 12px); }
.tz-kontakty__round {
  display: inline-grid; place-items: center;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--tz-color-bg, #fff); color: var(--tz-color-primary);
  box-shadow: 0 4px 14px rgba(47, 76, 84, .1);
}
.tz-kontakty__round .tz-icon { width: 22px; height: 22px; }
.tz-kontakty__actions { display: grid; gap: var(--tz-space-3, 12px); }
.tz-kontakty__actions .tz-btn { width: 100%; justify-content: center; }

.tz-kontakty__map { position: relative; min-height: 460px; border-radius: var(--tz-radius-lg, 24px); overflow: hidden; background: var(--tz-color-tint, #e8edfb); }
.tz-kontakty__map .tz-kontakty__frame { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; border: 0; border-radius: 0; display: block; }
.tz-kontakty__mapgap { margin: 0; padding: var(--tz-space-6, 32px); }
.tz-kontakty__open-map {
  position: absolute; left: var(--tz-space-4, 16px); bottom: var(--tz-space-4, 16px);
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 18px;
  border-radius: 999px; background: var(--tz-color-bg, #fff); color: var(--tz-color-ink, #2f4c54);
  font-weight: 600; text-decoration: none; box-shadow: 0 4px 14px rgba(47, 76, 84, .15);
}
.tz-kontakty__open-map .tz-icon { width: 18px; height: 18px; color: var(--tz-color-primary); }

.tz-kontakty__socials { display: flex; flex-wrap: wrap; align-items: center; gap: var(--tz-space-3, 12px) var(--tz-space-4, 16px); margin-top: var(--tz-space-6, 32px); }
.tz-kontakty__socials-title { font-weight: 700; font-size: 18px; }
.tz-kontakty__pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--tz-space-3, 12px); }
.tz-kontakty__pills .tz-socials__link {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 18px;
  border-radius: 999px; background: var(--tz-color-bg, #fff); color: var(--tz-color-ink, #2f4c54);
  font-weight: 600; text-decoration: none; box-shadow: 0 4px 14px rgba(47, 76, 84, .08);
}
.tz-kontakty__pills .tz-socials__link .tz-social-icon { color: var(--tz-color-primary); width: 20px; height: 20px; }
.tz-kontakty__pill-arrow { width: 16px; height: 16px; color: var(--tz-color-primary); }
.tz-kontakty__pills .tz-socials__link:hover { color: var(--tz-color-primary-text, #6e58cc); }
.tz-kontakty__ig-note { flex: 1 1 100%; margin: 0; font-size: 13px; color: var(--tz-color-muted, #5e6d73); }

@media (max-width: 900px) {
  .tz-kontakty__hero-inner { grid-template-columns: minmax(0, 1fr); min-height: 0; gap: 0; }
  .tz-kontakty__hero-media { justify-self: center; }
  .tz-kontakty__card { grid-template-columns: minmax(0, 1fr); }
  .tz-kontakty__map { min-height: 360px; }
}
@media (max-width: 760px) {
  .tz-kontakty__hero { padding-top: var(--tz-space-4, 16px); }
  .tz-kontakty__card { padding: var(--tz-space-3, 12px); }
  .tz-kontakty__info { padding: var(--tz-space-5, 24px) var(--tz-space-4, 16px); }
  .tz-kontakty__row--phone { flex-wrap: wrap; }
  .tz-kontakty__row--phone .tz-kontakty__rounds { margin-inline-start: 64px; }
  .tz-kontakty__map { min-height: 320px; }
  .tz-kontakty__socials-title { flex: 1 1 100%; }
}
