/* ===== DESIGN TOKENS ===== */
:root {
  --clr-primary: #0e7490;
  --clr-primary-dark: #0a5c73;
  --clr-primary-light: #22d3ee;
  --clr-accent: #06b6d4;
  --clr-bg: #f8fafc;
  --clr-bg-dark: #0f172a;
  --clr-bg-card: #ffffff;
  --clr-text: #1e293b;
  --clr-text-light: #64748b;
  --clr-text-inv: #f1f5f9;
  --clr-border: #e2e8f0;
  --clr-gradient: linear-gradient(135deg, #0e7490 0%, #06b6d4 50%, #22d3ee 100%);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.08);
  --shadow-md: 0 4px 16px rgba(0,0,0,.1);
  --shadow-lg: 0 8px 32px rgba(0,0,0,.12);
  --radius: 12px;
  --radius-lg: 20px;
  --transition: .3s ease;
  --font: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ===== RESET ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { font-family: var(--font); color: var(--clr-text); background: var(--clr-bg); line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: var(--clr-primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--clr-primary-dark); }
img { max-width: 100%; display: block; }
ul, ol { list-style: none; }

/* ===== CONTAINER ===== */
.container { max-width: 1080px; margin: 0 auto; padding: 0 20px; }

/* ===== HEADER ===== */
.header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: #fff; border-bottom: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 1px 0 rgba(15,23,42,.06); transition: all var(--transition);
}
.header.scrolled { box-shadow: var(--shadow-sm); }
.header__inner { display: flex; align-items: center; justify-content: space-between; height: 72px; gap: 20px; }

.logo { display: flex; flex-direction: column; line-height: 1.15; text-decoration: none; flex-shrink: 0; }
.logo__name { font-weight: 800; font-size: 1.15rem; color: var(--clr-primary-dark); letter-spacing: .2px; }
.logo__sub { font-size: .72rem; color: var(--clr-text-light); font-weight: 500; }
.logo__img { height: 46px; width: auto; max-width: 240px; display: block; }

/* Главное меню — бургер-оверлей на мобильных/планшетах (≤900px); на десктопе (>900px) переопределяется ниже на открытую строку */
.nav {
  display: none; flex-direction: column; position: fixed; top: 72px; left: 0; right: 0; bottom: 0;
  max-height: calc(100vh - 72px); background: rgba(15,23,42,.97); backdrop-filter: blur(20px);
  padding: 20px 16px; gap: 6px; overflow-y: auto; z-index: 99;
}
.nav.open { display: flex; }
.nav__link { color: rgba(255,255,255,.95); font-size: 1.05rem; font-weight: 600; padding: 13px 16px; border-radius: 8px; transition: all var(--transition); text-align: center; width: 100%; }
.nav__link.active { background: rgba(255,255,255,.12); color: #fff; }
.nav__link:hover { background: rgba(255,255,255,.08); }

.header__phone {
  margin-left: auto;
  background: var(--clr-accent); color: #fff; padding: 10px 20px; border-radius: 50px;
  font-size: .85rem; font-weight: 700; white-space: nowrap; transition: all var(--transition);
}
.header__phone:hover { background: var(--clr-primary); color: #fff; transform: translateY(-2px); box-shadow: var(--shadow-sm); }

.burger { display: block; background: none; border: none; cursor: pointer; width: 32px; height: 24px; position: relative; flex-shrink: 0; }
.burger span { display: block; height: 2px; width: 100%; background: var(--clr-text); position: absolute; left: 0; transition: all var(--transition); border-radius: 2px; }
.burger span:nth-child(1) { top: 0; }
.burger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.burger span:nth-child(3) { bottom: 0; }
.burger.active span:nth-child(1) { top: 50%; transform: translateY(-50%) rotate(45deg); }
.burger.active span:nth-child(2) { opacity: 0; }
.burger.active span:nth-child(3) { bottom: 50%; transform: translateY(50%) rotate(-45deg); }

/* ===== ВАРИАНТ B: десктоп (>900px) — меню открытой строкой под шапкой, перенос на 2 ряда ===== */
@media (min-width: 901px) {
  .header { position: sticky; }                 /* в потоке + липкая: 2-я строка меню не перекрывает контент */
  .header__inner { flex-wrap: wrap; height: auto; min-height: 72px; row-gap: 2px; }
  .burger { display: none; }
  .nav {
    order: 3; flex-basis: 100%; width: 100%;
    display: flex; position: static; inset: auto; flex-direction: row; flex-wrap: wrap;
    justify-content: center; align-items: center; gap: 4px 6px;
    max-height: none; overflow: visible; padding: 8px 0 4px; margin-top: 2px;
    background: transparent; backdrop-filter: none;
    border-top: 1px solid rgba(15,23,42,.08);
  }
  .nav__link {
    width: auto; color: var(--clr-text); font-size: .9rem; font-weight: 600;
    padding: 8px 12px; border-radius: 8px; text-align: center;
  }
  .nav__link.active { background: rgba(14,116,144,.1); color: var(--clr-primary-dark); }
  .nav__link:hover { background: rgba(15,23,42,.05); }
  .header + section { padding-top: 48px; }      /* шапка теперь в потоке (sticky) — большой верхний отступ не нужен */
}

/* ===== HERO / PAGE INTRO ===== */
.page-hero {
  background: linear-gradient(160deg, #0c4a6e 0%, #0e7490 45%, #155e75 100%);
  color: #fff; padding: 130px 0 56px; position: relative; overflow: hidden;
}
.page-hero__overlay {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 20%, rgba(34,211,238,.18) 0%, transparent 50%),
              radial-gradient(circle at 10% 90%, rgba(6,182,212,.14) 0%, transparent 45%);
}
.page-hero__inner { position: relative; z-index: 1; max-width: 820px; }
.page-hero__badge {
  display: inline-block; background: rgba(255,255,255,.14); color: var(--clr-primary-light);
  padding: 7px 18px; border-radius: 50px; font-size: .8rem; font-weight: 700;
  margin-bottom: 18px; border: 1px solid rgba(34,211,238,.3); letter-spacing: .3px;
}
.page-hero__title { font-size: clamp(1.7rem, 4vw, 2.6rem); font-weight: 800; line-height: 1.18; margin-bottom: 16px; }
.page-hero__subtitle { font-size: 1.05rem; color: rgba(255,255,255,.85); max-width: 680px; line-height: 1.7; }

/* ===== SECTIONS ===== */
.section { padding: 56px 0; }
.section--light { background: var(--clr-bg); }
.section__title { font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 800; line-height: 1.2; margin-bottom: 6px; }
.section__desc { color: var(--clr-text-light); font-size: 1rem; margin-bottom: 28px; max-width: 760px; }

/* ===== NOK BANNER ===== */
.nok-block { margin: 0 0 40px; }
.nok-block__inner {
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
  background: var(--clr-bg-card); border: 1px solid var(--clr-border);
  border-left: 4px solid var(--clr-accent); border-radius: var(--radius-lg);
  padding: 22px 26px; box-shadow: var(--shadow-sm);
}
.nok-block__text { flex: 1 1 300px; }
.nok-block__title { font-size: 1.1rem; font-weight: 700; margin-bottom: 6px; color: var(--clr-primary-dark); }
.nok-block__desc { font-size: .92rem; color: var(--clr-text-light); }
.nok-block__frame { flex-shrink: 0; min-height: 110px; }
.nok-block__frame iframe { display: block; max-width: 100%; }

/* ===== DOCUMENT GROUPS / LIST ===== */
.doc-group { margin-bottom: 36px; }
.doc-group__title {
  font-size: 1.15rem; font-weight: 800; color: var(--clr-primary-dark);
  margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--clr-border);
  display: flex; align-items: center; gap: 10px;
}
.doc-group__title .ic { font-size: 1.35rem; line-height: 1; }
.doc-list { display: grid; grid-template-columns: 1fr; gap: 12px; }
.doc-card {
  display: flex; align-items: center; gap: 16px;
  background: var(--clr-bg-card); border: 1px solid var(--clr-border);
  border-radius: var(--radius); padding: 16px 20px; transition: all var(--transition);
}
.doc-card:hover { border-color: var(--clr-accent); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.doc-card__icon {
  flex-shrink: 0; width: 44px; height: 44px; border-radius: 10px;
  background: rgba(14,116,144,.09); color: var(--clr-primary);
  display: flex; align-items: center; justify-content: center; font-size: 1.3rem;
}
.doc-card__body { flex: 1; min-width: 0; }
.doc-card__title { font-size: .98rem; font-weight: 600; color: var(--clr-text); line-height: 1.4; overflow-wrap: break-word; word-break: normal; hyphens: auto; }
.doc-card__meta { font-size: .8rem; color: var(--clr-text-light); margin-top: 3px; overflow-wrap: break-word; word-break: normal; hyphens: auto; }
.doc-card__open {
  flex-shrink: 0; font-size: .82rem; font-weight: 700; color: var(--clr-primary);
  border: 1px solid var(--clr-border); border-radius: 50px; padding: 7px 16px;
  transition: all var(--transition); white-space: nowrap;
}
.doc-card:hover .doc-card__open { background: var(--clr-primary); color: #fff; border-color: var(--clr-primary); }

.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 28px;
}
.team-card {
  background: var(--clr-bg-card);
  border: 1px solid var(--clr-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.team-card:hover {
  transform: translateY(-2px);
  border-color: var(--clr-accent);
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.team-card__photo,
.team-photo--placeholder {
  width: 100%;
  min-height: 260px;
  background: #e2e8f0;
  display: grid;
  place-items: center;
  color: #475569;
  font-size: 1.4rem;
  font-weight: 700;
}
.team-card__photo { object-fit: cover; display: block; }
.team-card__body { padding: 24px; }
.team-card__name { font-size: 1.05rem; font-weight: 700; margin-bottom: 6px; }
.team-card__role { font-size: .95rem; color: var(--clr-text-light); margin-bottom: 14px; line-height: 1.4; }
.team-card__bio { font-size: .96rem; color: var(--clr-text); line-height: 1.75; margin-bottom: 16px; }
.team-card__notes { font-size: .9rem; color: var(--clr-text-light); }
.team-card__notes a { color: var(--clr-primary); }
.team-card__notes a:hover { color: var(--clr-primary-dark); }

/* ===== CONTACTS ===== */
.contacts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.contact-item {
  display: flex; gap: 14px; align-items: flex-start; padding: 18px;
  background: var(--clr-bg-card); border-radius: var(--radius); box-shadow: var(--shadow-sm);
  border: 1px solid var(--clr-border);
}
.contact-item__icon { font-size: 1.4rem; flex-shrink: 0; }
.contact-item strong { font-size: .78rem; color: var(--clr-text-light); text-transform: uppercase; letter-spacing: .5px; }
.contact-item > div { min-width: 0; }
.contact-item p { font-size: .98rem; margin-top: 3px; line-height: 1.5; overflow-wrap: anywhere; }

/* ===== FOOTER ===== */
.footer { background: var(--clr-bg-dark); color: var(--clr-text-inv); padding: 48px 0 0; }
.footer__inner { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 36px; padding-bottom: 36px; }
.footer__org { font-size: 1rem; font-weight: 700; margin-bottom: 6px; }
.footer__license { font-size: .85rem; opacity: .6; line-height: 1.6; }
.footer__heading { font-size: .8rem; text-transform: uppercase; letter-spacing: 1px; opacity: .55; margin-bottom: 14px; font-weight: 600; }
.footer__link { display: block; color: rgba(255,255,255,.7); font-size: .92rem; padding: 4px 0; }
.footer__link:hover { color: var(--clr-primary-light); }
.footer__col p { font-size: .92rem; opacity: .75; line-height: 1.7; }
.footer__col a { color: var(--clr-primary-light); }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 18px 0; }
.footer__bottom p { font-size: .82rem; opacity: .5; text-align: center; }

/* ===== FLOATING CALL BUTTON ===== */
.float-call-btn {
  position: fixed; bottom: 28px; right: 28px; width: 58px; height: 58px; border-radius: 50%;
  background: var(--clr-accent); display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(6,182,212,.35); transition: all var(--transition); z-index: 98;
  animation: floatPulse 2.5s ease-in-out infinite;
}
.float-call-btn:hover { transform: scale(1.08); box-shadow: 0 6px 24px rgba(6,182,212,.5); }
.float-call-btn__icon { width: 30px; height: 30px; color: #fff; stroke-linecap: round; stroke-linejoin: round; }
@keyframes floatPulse {
  0%, 100% { box-shadow: 0 4px 16px rgba(6,182,212,.3); }
  50% { box-shadow: 0 4px 28px rgba(6,182,212,.55); }
}

/* ===== COOKIE BANNER ===== */
.cookie-banner {
  position: fixed; bottom: 20px; left: 20px; max-width: 420px;
  background: var(--clr-primary-dark); color: #fff; padding: 12px 18px;
  display: flex; align-items: center; gap: 12px; z-index: 9999;
  box-shadow: 0 8px 25px rgba(0,0,0,.2); border-radius: 12px; border: 1px solid rgba(255,255,255,.1);
}
.cookie-banner span { font-size: 13px; line-height: 1.4; }
.cookie-banner a { color: #fff; text-decoration: underline; font-weight: 600; }
.cookie-banner button { background: var(--clr-accent); color: #fff; border: none; padding: 8px 16px; border-radius: 20px; cursor: pointer; font-size: 14px; white-space: nowrap; }

/* ===== LICENSE SECTION ===== */
.license-section { background: linear-gradient(135deg, rgba(14,116,144,.04) 0%, rgba(6,182,212,.06) 100%); border-radius: var(--radius-lg); padding: 28px; border: 1px solid rgba(14,116,144,.15); }

.license-meta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 16px;
  margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--clr-border);
}
.license-meta p { font-size: .95rem; color: var(--clr-text-light); flex: 1 1 auto; }

.license-pdf-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--clr-primary); color: #fff;
  padding: 11px 22px; border-radius: 50px;
  font-size: .88rem; font-weight: 700; transition: all var(--transition);
  white-space: nowrap; flex-shrink: 0; box-shadow: 0 3px 12px rgba(14,116,144,.3);
}
.license-pdf-btn:hover { background: var(--clr-primary-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(14,116,144,.4); }
.license-pdf-btn svg { flex-shrink: 0; }

/* ── Gallery ── */
.license-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 16px;
}
.lic-thumb {
  position: relative; background: #fff; border: 2px solid var(--clr-border);
  border-radius: var(--radius); overflow: hidden; cursor: pointer;
  transition: all var(--transition); padding: 0; text-align: left;
  box-shadow: var(--shadow-sm);
}
.lic-thumb:hover, .lic-thumb:focus-visible {
  border-color: var(--clr-accent); transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(6,182,212,.25); outline: none;
}
.lic-thumb img {
  width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block;
  transition: transform var(--transition);
}
.lic-thumb:hover img { transform: scale(1.03); }
.lic-thumb__label {
  display: block; text-align: center; font-size: .78rem; font-weight: 600;
  color: var(--clr-primary-dark); padding: 8px 6px 10px;
  background: rgba(14,116,144,.06);
}

/* ── Lightbox ── */
.lightbox {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(10,18,35,.92); backdrop-filter: blur(12px);
  display: flex; align-items: center; justify-content: center; gap: 12px;
  padding: 16px;
}
.lightbox[hidden] { display: none; }
.lightbox__content {
  max-width: 820px; width: 100%; display: flex; flex-direction: column; align-items: center; gap: 14px;
}
.lightbox__img {
  max-height: calc(100vh - 140px); max-width: 100%;
  border-radius: var(--radius); box-shadow: 0 24px 64px rgba(0,0,0,.5);
  object-fit: contain; display: block;
  animation: lbFadeIn .2s ease;
}
@keyframes lbFadeIn { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
.lightbox__caption {
  color: rgba(255,255,255,.8); font-size: .92rem; font-weight: 600; letter-spacing: .3px; text-align: center;
}
.lightbox__close {
  position: absolute; top: 16px; right: 20px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); color: #fff;
  font-size: 1.8rem; line-height: 1; width: 44px; height: 44px; border-radius: 50%;
  cursor: pointer; transition: all var(--transition); display: flex; align-items: center; justify-content: center;
}
.lightbox__close:hover { background: rgba(255,255,255,.22); transform: rotate(90deg); }
.lightbox__nav {
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); color: #fff;
  font-size: 2.2rem; line-height: 1; width: 52px; height: 52px; border-radius: 50%;
  cursor: pointer; transition: all var(--transition); flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}
.lightbox__nav:hover { background: var(--clr-accent); border-color: var(--clr-accent); transform: scale(1.08); }

/* ===== LEGAL PAGES (personaldan.html / consent.html) ===== */
.legal-hero {
  background: linear-gradient(160deg, #0c4a6e 0%, #0e7490 45%, #155e75 100%);
  color: #fff; padding: 130px 0 56px; position: relative; overflow: hidden;
}
.legal-hero__overlay {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 20%, rgba(34,211,238,.18) 0%, transparent 50%),
              radial-gradient(circle at 10% 90%, rgba(6,182,212,.14) 0%, transparent 45%);
}
.legal-hero__inner { position: relative; z-index: 1; max-width: 820px; }

.legal-content {
  max-width: 860px; margin: 0 auto; padding: 56px 0 72px;
}

.legal-info-card {
  background: linear-gradient(135deg, rgba(14,116,144,.06) 0%, rgba(6,182,212,.09) 100%);
  border: 1px solid rgba(14,116,144,.2); border-left: 4px solid var(--clr-accent);
  border-radius: var(--radius-lg); padding: 28px 32px; margin-bottom: 40px;
}
.legal-info-card__title {
  font-size: 1rem; font-weight: 800; color: var(--clr-primary-dark);
  margin-bottom: 16px; text-transform: uppercase; letter-spacing: .5px;
}
.legal-info-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px 24px;
}
.legal-info-row { display: flex; flex-direction: column; gap: 2px; }
.legal-info-row__label {
  font-size: .75rem; font-weight: 700; color: var(--clr-text-light);
  text-transform: uppercase; letter-spacing: .4px;
}
.legal-info-row__value { font-size: .95rem; font-weight: 600; color: var(--clr-text); }

.legal-section {
  margin-bottom: 36px; padding-bottom: 32px;
  border-bottom: 1px solid var(--clr-border);
}
.legal-section:last-child { border-bottom: none; }
.legal-section__title {
  font-size: 1.1rem; font-weight: 800; color: var(--clr-primary-dark);
  margin-bottom: 14px; display: flex; align-items: center; gap: 10px;
}
.legal-section__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; background: var(--clr-accent); color: #fff;
  border-radius: 50%; font-size: .85rem; font-weight: 800; flex-shrink: 0;
}
.legal-section p { font-size: .97rem; line-height: 1.8; color: var(--clr-text); margin-bottom: 10px; }
.legal-section p:last-child { margin-bottom: 0; }
.legal-section ul, .legal-section ol {
  list-style: disc; padding-left: 24px; margin: 10px 0; display: block;
}
.legal-section ol { list-style: decimal; }
.legal-section li {
  font-size: .97rem; line-height: 1.75; color: var(--clr-text);
  margin-bottom: 6px; display: list-item;
}

.legal-rkn-badge {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  background: rgba(14,116,144,.07); border: 1px solid rgba(14,116,144,.2);
  border-radius: var(--radius); padding: 18px 22px; margin: 16px 0;
}
.legal-rkn-badge__icon { font-size: 2rem; flex-shrink: 0; }
.legal-rkn-badge__num {
  font-size: 1.15rem; font-weight: 800; color: var(--clr-primary-dark);
  margin-bottom: 2px;
}
.legal-rkn-badge__sub { font-size: .82rem; color: var(--clr-text-light); }

.legal-date { font-size: .82rem; color: var(--clr-text-light); margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--clr-border); }

/* ── Consent checkbox (for forms) ── */
.consent-checkbox-wrap {
  display: flex; align-items: flex-start; gap: 12px;
  background: rgba(14,116,144,.05); border: 1px solid rgba(14,116,144,.18);
  border-radius: var(--radius); padding: 14px 18px; margin: 16px 0;
}
.consent-checkbox-wrap input[type="checkbox"] {
  width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px;
  accent-color: var(--clr-primary); cursor: pointer;
}
.consent-checkbox-wrap label {
  font-size: .93rem; color: var(--clr-text); line-height: 1.6; cursor: pointer;
}
.consent-checkbox-wrap label a { color: var(--clr-primary); font-weight: 600; }
.consent-checkbox-wrap label a:hover { color: var(--clr-primary-dark); text-decoration: underline; }

/* ── Footer legal links ── */
.footer__legal {
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 18px 0; text-align: center;
  display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: center;
}
.footer__legal-link {
  font-size: .8rem; color: rgba(255,255,255,.5);
  transition: color var(--transition);
}
.footer__legal-link:hover { color: var(--clr-primary-light); }

/* ── Schedule (график работы специалистов) ── */
.schedule__addr { font-size: 1rem; font-weight: 700; color: var(--clr-primary-dark); margin-bottom: 14px; }
.schedule__specialists { display: grid; gap: 10px; margin: 0 0 24px; }
.schedule__specialists li {
  background: var(--clr-bg-card); border: 1px solid var(--clr-border);
  border-left: 3px solid var(--clr-accent); border-radius: var(--radius);
  padding: 12px 16px; font-size: .95rem; color: var(--clr-text); line-height: 1.5;
}
.schedule__specialists li strong { color: var(--clr-primary-dark); }
.schedule__specialists li span { color: var(--clr-text-light); }
.schedule-table-wrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  border: 1px solid var(--clr-border); border-radius: var(--radius); box-shadow: var(--shadow-sm);
}
.schedule-table { width: 100%; border-collapse: collapse; background: var(--clr-bg-card); }
.schedule-table th, .schedule-table td {
  padding: 13px 20px; text-align: left; font-size: .95rem; border-bottom: 1px solid var(--clr-border);
}
.schedule-table thead th {
  background: var(--clr-primary); color: #fff; font-weight: 700; font-size: .85rem;
  letter-spacing: .4px; text-transform: uppercase;
}
.schedule-table tbody tr:last-child td { border-bottom: none; }
.schedule-table tbody tr:nth-child(even) { background: rgba(14,116,144,.035); }
.schedule-on { font-weight: 800; color: var(--clr-primary-dark); }
.schedule-off { color: var(--clr-text-light); }
.schedule__note { margin-top: 18px; font-size: .9rem; color: var(--clr-text-light); line-height: 1.65; }
.schedule__note a { font-weight: 700; color: var(--clr-primary); white-space: nowrap; }

/* ── Контактная информация / реквизиты МО / карта ── */
.contacts-subtitle { font-size: 1.08rem; font-weight: 800; color: var(--clr-primary-dark); margin: 28px 0 12px; }
.contacts-text { font-size: .97rem; line-height: 1.7; color: var(--clr-text); margin-bottom: 8px; }
.contacts-text a { color: var(--clr-primary); font-weight: 600; }
.contacts-map-link { display: inline-flex; align-items: center; gap: 6px; padding: 10px 18px; border: 2px solid var(--clr-primary); border-radius: var(--radius); color: var(--clr-primary); font-weight: 700; text-decoration: none; transition: background .15s, color .15s; overflow-wrap: anywhere; }
.contacts-map-link:hover { background: var(--clr-primary); color: #fff; }
/* Режим работы под адресом (без таблиц, адаптивно) */
.work-hours { margin: 12px 0 16px; padding: 14px 18px; background: var(--clr-bg); border: 1px solid var(--clr-border); border-left: 4px solid var(--clr-accent); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.work-hours__title { margin: 0 0 10px; font-size: 1rem; font-weight: 800; color: var(--clr-primary-dark); }
.work-hours__list { list-style: none; margin: 0; padding: 0; }
.work-hours__list li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 7px 0; border-bottom: 1px dashed var(--clr-border); }
.work-hours__list li:last-child { border-bottom: none; }
.work-hours__day { color: var(--clr-text); font-size: .95rem; }
.work-hours__time { font-weight: 700; color: var(--clr-primary-dark); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 480px) {
  .work-hours { padding: 12px 14px; }
  .work-hours__list li { flex-direction: column; gap: 1px; padding: 8px 0; }
  .work-hours__time { font-size: .95rem; }
}
.contacts-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0 4px; }
.info-table-wrap { border: 1px solid var(--clr-border); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.info-table { width: 100%; border-collapse: collapse; background: var(--clr-bg-card); }
.info-table th, .info-table td { padding: 11px 16px; text-align: left; font-size: .93rem; line-height: 1.5; border-bottom: 1px solid var(--clr-border); vertical-align: top; }
.info-table th { width: 44%; color: var(--clr-text-light); font-weight: 600; }
.info-table td { color: var(--clr-text); }
.info-table tr:last-child th, .info-table tr:last-child td { border-bottom: none; }
.map-embed { width: 100%; margin-top: 12px; border: 1px solid var(--clr-border); border-radius: var(--radius); overflow: hidden; }
.map-embed iframe { display: block; width: 100%; height: 420px; border: 0; }
.rules-list { list-style: disc; padding-left: 22px; margin: 6px 0 16px; display: block; }
.rules-list li { font-size: .96rem; line-height: 1.7; color: var(--clr-text); margin-bottom: 7px; display: list-item; overflow-wrap: break-word; }
.rules-list li a { color: var(--clr-primary); font-weight: 600; }

@media (max-width: 480px) {
  .schedule-table th, .schedule-table td { padding: 11px 14px; font-size: .9rem; }
}

/* ===== RESPONSIVE ===== */
@media (max-width: 900px) {
  .nav { display: none; }
  .nav.open {
    display: flex; flex-direction: column; position: fixed; top: 72px; left: 0; right: 0; bottom: 0;
    max-height: calc(100vh - 72px); background: rgba(15,23,42,.97); backdrop-filter: blur(20px);
    padding: 24px 16px; gap: 6px; overflow-y: auto; z-index: 99;
  }
  .nav.open .nav__link { font-size: 1.1rem; padding: 14px 16px; color: rgba(255,255,255,.95); text-align: center; width: 100%; }
  .burger { display: block; }
  .header__phone { display: none; }
  .footer__inner { grid-template-columns: 1fr; gap: 28px; }
  .nok-block__inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 768px) {
  .section { padding: 44px 0; }
  .page-hero { padding: 110px 0 44px; }

  /* Логотип: компактный, не конфликтует с бургер-меню (≤ ~60% ширины шапки) */
  .logo__img { height: 34px; width: auto; max-width: 60vw; }

  /* Карточки документов (oms.html) и разделов (index.html) — вертикально:
     Иконка / Заголовок / Описание / Кнопка во всю ширину снизу */
  .doc-card { flex-direction: column; align-items: flex-start; gap: 12px; }
  .doc-card > summary { flex-direction: column; align-items: flex-start !important; gap: 12px; }
  .doc-card__body { width: 100%; }
  .doc-card__open {
    width: 100%; margin-left: 0; order: 3;
    display: flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 10px 16px; white-space: normal; text-align: center;
  }

  /* Кнопки — удобные для пальца тач-цели (≥44px) */
  .license-pdf-btn { width: 100%; justify-content: center; min-height: 44px; white-space: normal; }
  .cookie-banner button { width: 100%; min-height: 44px; }

  /* Таблицы (график/сроки) на мобильных — фиксированная раскладка, перенос длинного текста вместо внутреннего скролла */
  .schedule-table { table-layout: fixed; }
  .schedule-table th, .schedule-table td { overflow-wrap: anywhere; }
  .info-table { table-layout: fixed; }
  .info-table th, .info-table td { overflow-wrap: anywhere; }
  .info-table th { width: 42%; }
  .map-embed iframe { height: 340px; }
  .contacts-actions { flex-direction: column; }
  .contacts-actions .license-pdf-btn { width: 100%; }

  .cookie-banner { left: 10px; right: 10px; bottom: 10px; max-width: none; flex-direction: column; text-align: center; }
  .license-gallery { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
  .license-section { padding: 20px 16px; }
  .license-meta { flex-direction: column; align-items: flex-start; }
  .lightbox__nav { width: 40px; height: 40px; font-size: 1.6rem; }
}

/* ===== APPOINTMENT FORM ===== */
.appointment-form-wrap {
  margin-top: 48px;
  background: var(--clr-bg-card);
  padding: 36px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--clr-border);
  box-shadow: var(--shadow-md);
  max-width: 800px;
  margin: 48px auto 0;
}
.appointment-form-wrap__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--clr-primary-dark);
  margin-bottom: 8px;
  text-align: center;
}
.appointment-form-wrap__subtitle {
  font-size: 1rem;
  color: var(--clr-text-light);
  margin-bottom: 24px;
  text-align: center;
}
#appointment-form {
  text-align: center;
}
.form-group {
  margin-bottom: 20px;
  text-align: left;
}
.form-label {
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--clr-text);
  margin-bottom: 8px;
}
.form-control {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--clr-border);
  border-radius: var(--radius);
  font-family: inherit;
  font-size: 1rem;
  transition: border-color var(--transition);
  background: var(--clr-bg);
}
.form-control:focus {
  outline: none;
  border-color: var(--clr-primary);
  background: #fff;
}
.form-control.is-invalid {
  border-color: #e11d48;
}
textarea.form-control {
  resize: vertical;
  min-height: 120px;
}
.form-submit {
  background: var(--clr-primary);
  color: #fff;
  border: none;
  padding: 14px 28px;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 50px;
  cursor: pointer;
  transition: all var(--transition);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.form-submit:hover:not(:disabled) {
  background: var(--clr-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(14,116,144,0.3);
}
.form-submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.asterisk {
  color: #e11d48;
}
.form-error-msg {
  color: #e11d48;
  font-size: 0.9rem;
  margin-top: 6px;
  display: none;
}
.form-error-msg.visible {
  display: block;
}
.form-global-error {
  background: #ffe4e6;
  color: #be123c;
  padding: 12px 16px;
  border-radius: var(--radius);
  margin-bottom: 20px;
  font-size: 0.95rem;
  display: none;
}
.form-global-error.visible {
  display: block;
}
@media (max-width: 480px) {
  .appointment-form-wrap {
    padding: 24px 20px;
  }
  .form-submit {
    width: 100%;
  }
}

/* ============ ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ ============ */
/* Переключатель в шапке (обычный режим) */
.a11y-toggle {
  display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0;
  padding: 8px 14px; border: 2px solid var(--clr-accent); border-radius: 50px;
  background: #fff; color: var(--clr-primary-dark); font-family: inherit; font-size: .82rem;
  font-weight: 700; line-height: 1; cursor: pointer; transition: all var(--transition);
}
/* На десктопе (>900px) меню — отдельной строкой; кнопку прижимаем вправо к группе с телефоном.
   На мобильных (≤900px) телефон скрыт, и space-between сам расставляет: логотип · кнопка · бургер. */
@media (min-width: 901px) { .a11y-toggle { margin-left: auto; } }
.a11y-toggle:hover { background: var(--clr-accent); color: #fff; }
.a11y-toggle:focus-visible { outline: 3px solid var(--clr-primary-dark); outline-offset: 2px; }
.a11y-toggle__icon { font-size: 1.05rem; line-height: 1; }
@media (max-width: 1100px) {
  .a11y-toggle__txt { display: none; }
  .a11y-toggle { padding: 9px 11px; }
}

/* --- Активный режим: класс .a11y на <html> --- */
html.a11y { font-size: 20px; -webkit-text-size-adjust: 100%; }
html.a11y, html.a11y body { background: #fff !important; color: #000 !important; }
html.a11y body { line-height: 1.9 !important; }
html.a11y h1, html.a11y h2, html.a11y h3, html.a11y h4, html.a11y h5, html.a11y h6,
html.a11y p, html.a11y li, html.a11y td, html.a11y th, html.a11y span, html.a11y strong,
html.a11y em, html.a11y label, html.a11y dt, html.a11y dd, html.a11y figcaption,
html.a11y blockquote, html.a11y div { color: #000 !important; }
html.a11y p, html.a11y li, html.a11y td, html.a11y th, html.a11y label, html.a11y input,
html.a11y .section__desc, html.a11y .contacts-text { font-size: 1.15rem !important; line-height: 1.9 !important; }
html.a11y h1 { font-size: 2.4rem !important; line-height: 1.35 !important; }
html.a11y h2 { font-size: 1.95rem !important; line-height: 1.4 !important; }
html.a11y h3 { font-size: 1.55rem !important; line-height: 1.45 !important; }
html.a11y li { margin-bottom: .55em !important; }

/* Ссылки — заметные */
html.a11y a { color: #0a3bb3 !important; text-decoration: underline !important; text-underline-offset: 3px; font-weight: 700 !important; }
html.a11y a:hover, html.a11y a:focus { color: #000 !important; background: #ffec3d !important; }

/* Убрать декоративные градиенты/фоны/тени, включить читаемый фон */
html.a11y .page-hero, html.a11y .header, html.a11y .footer, html.a11y .nok-block,
html.a11y .doc-group, html.a11y .doc-card, html.a11y .team-card, html.a11y .work-hours,
html.a11y .info-table, html.a11y .info-table-wrap, html.a11y .schedule-table,
html.a11y .map-embed, html.a11y section, html.a11y main { background: #fff !important; background-image: none !important; box-shadow: none !important; }
html.a11y .page-hero__overlay { display: none !important; }
html.a11y .page-hero__badge, html.a11y .page-hero__title, html.a11y .page-hero__subtitle { color: #000 !important; }
html.a11y .page-hero__badge { background: #fff !important; border: 2px solid #000 !important; }

/* Видимые границы блоков на белом фоне */
html.a11y .doc-group, html.a11y .doc-card, html.a11y .team-card, html.a11y .work-hours,
html.a11y .nok-block, html.a11y .info-table-wrap, html.a11y .map-embed { border: 2px solid #000 !important; }

/* Шапка и футер — контраст */
html.a11y .header { border-bottom: 3px solid #000 !important; }
html.a11y .footer, html.a11y .footer * { color: #000 !important; }
html.a11y .footer { border-top: 3px solid #000 !important; }
html.a11y .footer a, html.a11y .footer__link, html.a11y .footer__legal-link { color: #0a3bb3 !important; text-decoration: underline !important; }

/* Навигация */
html.a11y .nav { background: #fff !important; }
html.a11y .nav__link { color: #0a3bb3 !important; text-decoration: underline !important; font-size: 1.05rem !important; }
html.a11y .nav__link.active { color: #000 !important; background: #ffec3d !important; }

/* Кнопки/пиллы → контрастные и читаемые */
html.a11y .header__phone, html.a11y .doc-card__open, html.a11y .license-pdf-btn,
html.a11y .contacts-map-link, html.a11y .float-call-btn, html.a11y .btn { background: #fff !important; color: #0a3bb3 !important; border: 2px solid #000 !important; }
html.a11y .header__phone, html.a11y .float-call-btn { font-size: 1rem !important; }

/* Таблицы — чёткие разделители */
html.a11y .info-table th, html.a11y .info-table td,
html.a11y .schedule-table th, html.a11y .schedule-table td { border: 1px solid #000 !important; }
html.a11y .schedule-table, html.a11y .info-table { width: 100% !important; }

/* Сам переключатель во включённом режиме */
html.a11y .a11y-toggle { background: #000 !important; color: #fff !important; border-color: #000 !important; }
html.a11y .a11y-toggle:hover { background: #222 !important; color: #fff !important; }

/* ===== Карточки врачей: образование, сертификаты, документы ===== */
.team-card__section { margin-top: 14px; }
.team-card__section-title { font-size: .95rem; font-weight: 800; color: var(--clr-primary-dark); margin: 0 0 6px; }
.team-card__dl { margin: 0; padding: 0; list-style: none; font-size: .92rem; line-height: 1.6; color: var(--clr-text); }
.team-card__dl li { margin-bottom: 6px; overflow-wrap: anywhere; }
.team-card__dl li::before { content: "•"; color: var(--clr-accent); font-weight: 700; margin-right: 8px; }
.team-card__note-warn { font-size: .88rem; color: var(--clr-text-light); font-style: italic; margin-top: 6px; }
.team-docs { margin-top: 14px; }
.team-docs__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(82px, 1fr)); gap: 10px; margin-top: 8px; }
.team-doc-thumb { display: block; border: 1px solid var(--clr-border); border-radius: 10px; overflow: hidden; background: #fff; cursor: pointer; padding: 0; aspect-ratio: 3 / 4; transition: box-shadow .15s, transform .15s, border-color .15s; }
.team-doc-thumb:hover, .team-doc-thumb:focus-visible { box-shadow: var(--shadow-md); border-color: var(--clr-accent); transform: translateY(-2px); outline: none; }
.team-doc-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.docs-lightbox { position: fixed; inset: 0; background: rgba(15,23,42,.92); display: flex; align-items: center; justify-content: center; z-index: 2000; padding: 24px; }
.docs-lightbox[hidden] { display: none; }
.docs-lightbox__img { max-width: 92vw; max-height: 88vh; object-fit: contain; border-radius: 8px; box-shadow: 0 12px 48px rgba(0,0,0,.5); background: #fff; }
.docs-lightbox__close { position: absolute; top: 18px; right: 20px; width: 48px; height: 48px; border-radius: 50%; border: none; background: rgba(255,255,255,.16); color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; transition: background .15s; }
.docs-lightbox__close:hover { background: rgba(255,255,255,.3); }
@media (max-width: 480px) {
  .team-docs__grid { grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); }
}

