/* Global layout and overlap fixes */
*, *::before, *::after {
  box-sizing: border-box;
}

/* Utility display classes must never override the semantic hidden state. */
[hidden] {
  display: none !important;
}

img,
video,
iframe {
  max-width: 100%;
}

img {
  height: auto;
}

body :where(h1, h2, h3, h4, h5, h6, p, li, a, span, dd, dt, th, td, figcaption, blockquote, button, label, summary) {
  -webkit-hyphens: none !important;
  hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* Header row: positioning context for wide «Услуги» mega-menu */
.gk-nav-row {
  position: relative;
}

/* Keep content spacing visually consistent across pages */
.max-w-7xl.mx-auto.px-4,
.max-w-6xl.mx-auto.px-4,
.max-w-5xl.mx-auto.px-4,
.max-w-4xl.mx-auto.px-4 {
  padding-left: clamp(1rem, 2vw, 1.75rem) !important;
  padding-right: clamp(1rem, 2vw, 1.75rem) !important;
}

/* Desktop mega-menu should stay inside viewport */
@media (min-width: 1280px) {
  .gk-nav-item {
    position: relative;
  }

  /* Wide «Услуги» panel: anchor to full header row (content left), not the narrow tab */
  .gk-nav-item:has(.gk-mega-services) {
    position: static;
    /* Bridge hover gap between tab text and panel start */
    padding-bottom: 14px;
    margin-bottom: -14px;
  }

  .gk-mega {
    max-width: min(calc(100vw - 2rem), 1120px);
  }

  .gk-mega-about {
    width: min(760px, calc(100vw - 2rem));
    left: 0;
  }

  /* Left edge aligns with .gk-nav-row (same as logo / max-w-7xl block) */
  .gk-mega-services {
    width: min(1380px, calc(100vw - 2rem));
    /* Иначе общий .gk-mega { max-width: 1120px } обрезает панель — колонки слишком узкие, длинные слова рвутся по буквам */
    max-width: min(1380px, calc(100vw - 2rem));
    left: 0;
    right: auto;
    transform: none;
    /* Keep the dropdown baseline aligned with other top-level tabs. */
    top: calc(100% - 14px);
  }

  .gk-mega-specialists {
    width: min(560px, calc(100vw - 2rem));
    left: 0;
    right: auto;
    transform: none;
  }

  .gk-mega-patients {
    width: min(600px, calc(100vw - 2rem));
    left: 0;
    right: auto;
    transform: none;
  }

  .gk-mega-dms,
  .gk-mega-paid,
  .gk-mega-contacts {
    width: min(460px, calc(100vw - 2rem));
    right: 0;
    left: auto;
  }

  .gk-mega-dms {
    width: min(380px, calc(100vw - 2rem));
  }

  .gk-mega-contacts {
    width: min(380px, calc(100vw - 2rem));
  }
}

/* Smart sticky header: scroll direction controls visibility without layout shifts. */
.gk-header {
  z-index: 2000;
  transition:
    transform 220ms var(--ease-out),
    box-shadow 180ms ease;
}

/* Yandex panes leak z-index into the page. Isolate the map boxes only —
   do not transform/reposition the cards (that shifts the map below the caption
   and kills lg:sticky on the second map). */
#map-siqueirosa,
#map-murinskiy {
  position: relative;
  z-index: 0;
  isolation: isolate;
}

.gk-header.gk-header-floating {
  position: fixed !important;
  inset: 0 0 auto;
  width: 100%;
}

.gk-header-placeholder {
  width: 100%;
}

.gk-header.gk-header-scrolled:not(.gk-header-hidden) {
  box-shadow: 0 8px 24px rgba(45, 35, 25, .09);
}

.gk-header.gk-header-hidden {
  transform: translateY(calc(-100% - 2px));
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .gk-header {
    transition-duration: 1ms, 160ms;
  }
}

/* Hero slider: avoid text collision with arrows */
.hero-slide > .flex.flex-col.justify-center {
  position: relative;
  z-index: 2;
  padding-left: clamp(4rem, 7vw, 5.5rem) !important;
  padding-right: clamp(4rem, 7vw, 5.5rem) !important;
}

@media (max-width: 767px) {
  .hero-slide > .flex.flex-col.justify-center {
    padding-left: 3.75rem !important;
    padding-right: 3.75rem !important;
  }

  .hero-arrow {
    top: 38%;
  }
}

/* Decorative absolute SVG should not block text clicks or readability */
section > svg.absolute,
section .blob-bg.absolute,
section svg.blob-bg {
  pointer-events: none;
  z-index: 0;
}

section [class*="relative z-"] {
  z-index: 1;
}

/* Improve narrow layout behavior for service list cards */
@media (max-width: 640px) {
  .card.flex.items-center.justify-between {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .card.flex.items-center.justify-between > :last-child {
    width: 100%;
    justify-content: space-between;
  }
}

/* ===== Schema-aligned navigation accents (2026-04) ===== */
:root {
  --nav-red: #DA101B;
  --nav-red-dark: #A50914;
  --nav-red-soft: #FDECEC;
  --nav-orange: #F57C00;
  --nav-orange-dark: #BF5A00;
  --nav-orange-soft: #FFF3E0;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
}

/* Red accent group — Telemedicine */
.gk-group-red {
  background: var(--nav-red-soft);
  border-left: 3px solid var(--nav-red);
  border-radius: 12px;
  padding: 12px 14px;
}
.gk-group-red .gk-mega-heading { color: var(--nav-red); border-bottom-color: rgba(218,16,27,0.25); }
.gk-group-red .gk-mega-link { color: var(--nav-red-dark); }
.gk-group-red .gk-mega-link:hover { background: rgba(218,16,27,0.12); color: var(--nav-red-dark); }

/* Orange accent — «и др.» */
.gk-mega-link.orange,
.gk-mobile-sub.orange {
  color: var(--nav-orange-dark) !important;
  background: var(--nav-orange-soft);
  border-left: 3px solid var(--nav-orange);
  font-weight: 600;
}
.gk-mega-link.orange:hover {
  background: rgba(245,124,0,0.18);
  color: var(--nav-orange-dark) !important;
}
.gk-mobile-heading.orange { color: var(--nav-orange-dark); }
.gk-mobile-sub.red { color: var(--nav-red-dark); }
.gk-mobile-heading.red { color: var(--nav-red); }

/* Mobile submenu hierarchy mirrors the desktop mega-menu without changing labels */
.gk-mobile-sub.child {
  padding-left: 24px;
  font-size: 14px;
}

.gk-mobile-sub.grandchild {
  padding-left: 38px;
  font-size: 13.5px;
}

.gk-mobile-body .gk-mobile-heading:not(:first-child) {
  margin-top: 8px;
}

/* Vertical list inside «Услуги» mega-menu — match the strict tree-like schema */
.gk-mega-services .gk-services-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 1100px) {
  .gk-mega-services .gk-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* «Услуги»: переносим только целые слова. */
.gk-mega-services .gk-mega-heading,
.gk-mega-services .gk-mega-link {
  word-break: normal;
  overflow-wrap: normal;
  text-wrap: wrap;
}

/* ===== Mobile UX hardening (2026-08) ===== */
html {
  scroll-padding-top: 92px;
}

.grid > *,
.flex > * {
  min-width: 0;
}

.gk-table-scroll {
  position: relative;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.gk-table-scroll:focus-visible {
  outline: 3px solid rgba(45, 139, 111, 0.36);
  outline-offset: 3px;
}

/* A card only moves when the card itself is an interactive control. */
.card {
  border-radius: 18px;
  transition:
    transform 220ms var(--ease-out),
    box-shadow 220ms var(--ease-out),
    border-color 160ms ease !important;
}

.card:hover {
  transform: none !important;
}

.btn-primary,
.btn-secondary,
.gk-btn-booking,
.service-tab,
.page-btn {
  border-radius: 12px;
  transition-property: color, background-color, border-color, box-shadow, transform !important;
  transition-duration: .2s !important;
}

.fade-up {
  opacity: 1 !important;
  transform: none !important;
  transition:
    transform 220ms var(--ease-out),
    box-shadow 220ms var(--ease-out),
    border-color 160ms ease !important;
}

#administration .gk-administration-grid .space-y-1 > p:nth-child(-n+2) {
  display: none;
}

/* Utility-bar social channels: keep VK and MAX visually equivalent with matching hover fill. */
body > div[style*="background: var(--primary)"] a[aria-label="ВКонтакте"],
body > div[style*="background: var(--primary)"] a[aria-label="Мессенджер MAX"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px !important;
  height: 40px !important;
  flex: 0 0 40px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .15) !important;
  color: #fff;
  opacity: 1;
  transition: background-color 160ms ease, opacity 160ms ease, transform 160ms var(--ease-out, ease-out);
}

body > div[style*="background: var(--primary)"] a[aria-label="ВКонтакте"] svg {
  width: 24px !important;
  height: 24px !important;
}

body > div[style*="background: var(--primary)"] a[aria-label="Мессенджер MAX"] svg {
  /* MAX uses a filled circular mark, so its optical size is larger than VK's open glyph. */
  width: 17px !important;
  height: 17px !important;
}

@media (hover: hover) and (pointer: fine) {
  body > div[style*="background: var(--primary)"] a[aria-label="ВКонтакте"]:hover,
  body > div[style*="background: var(--primary)"] a[aria-label="Мессенджер MAX"]:hover {
    background: rgba(255, 255, 255, .25) !important;
    opacity: 1;
    transform: translateY(-1px);
  }
}

body > div[style*="background: var(--primary)"] a[aria-label="ВКонтакте"]:focus-visible,
body > div[style*="background: var(--primary)"] a[aria-label="Мессенджер MAX"]:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

body > div[style*="background: var(--primary)"] a[aria-label="ВКонтакте"]:active,
body > div[style*="background: var(--primary)"] a[aria-label="Мессенджер MAX"]:active {
  transform: scale(.96);
}

/* Topbar institution full name */
.gk-topbar-name {
  display: none;
  min-width: 0;
  flex: 1 1 auto;
  padding: 0 12px;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.25;
  text-align: center;
}

.gk-topbar-name-line1,
.gk-topbar-name-line2 {
  display: inline-block;
  white-space: nowrap;
}

.gk-topbar-left,
.gk-topbar-actions {
  flex: 0 0 auto;
}

@media (min-width: 1024px) {
  .gk-topbar-name {
    display: block;
  }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  .gk-topbar-name {
    font-size: 10px;
    line-height: 1.2;
    padding: 0 6px;
  }
}


/* Footer social channels: optical balance and matching hover effect between VK and MAX. */
footer a[aria-label="ВКонтакте"],
footer a[aria-label="Мессенджер MAX"],
.gk-footer a[aria-label="ВКонтакте"],
.gk-footer a[aria-label="Мессенджер MAX"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px !important;
  height: 36px !important;
  flex: 0 0 36px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.1) !important;
  color: #fff;
  transition: background-color 160ms ease, transform 160ms ease, opacity 160ms ease;
}

footer a[aria-label="ВКонтакте"] svg,
.gk-footer a[aria-label="ВКонтакте"] svg {
  /* Scale VK's open horizontal glyph to optically balance MAX's solid circle badge */
  width: 22px !important;
  height: 22px !important;
}

footer a[aria-label="Мессенджер MAX"] svg,
.gk-footer a[aria-label="Мессенджер MAX"] svg {
  width: 16px !important;
  height: 16px !important;
}

@media (hover: hover) and (pointer: fine) {
  footer a[aria-label="ВКонтакте"]:hover,
  footer a[aria-label="Мессенджер MAX"]:hover,
  .gk-footer a[aria-label="ВКонтакте"]:hover,
  .gk-footer a[aria-label="Мессенджер MAX"]:hover {
    background: rgba(255, 255, 255, 0.22) !important;
    transform: translateY(-1px);
  }
}

footer a[aria-label="ВКонтакте"]:focus-visible,
footer a[aria-label="Мессенджер MAX"]:focus-visible,
.gk-footer a[aria-label="ВКонтакте"]:focus-visible,
.gk-footer a[aria-label="Мессенджер MAX"]:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

footer a[aria-label="ВКонтакте"]:active,
footer a[aria-label="Мессенджер MAX"]:active,
.gk-footer a[aria-label="ВКонтакте"]:active,
.gk-footer a[aria-label="Мессенджер MAX"]:active {
  transform: scale(.96);
}

/* Footer social buttons spacing */
footer .flex.items-center.gap-2\.5.pt-2,
footer .flex.items-center.gap-3\.5.pt-2,
.gk-footer .flex.items-center.gap-2\.5.pt-2,
.gk-footer .flex.items-center.gap-3\.5.pt-2,
footer a[aria-label="ВКонтакте"] + a[aria-label="Мессенджер MAX"],
.gk-footer a[aria-label="ВКонтакте"] + a[aria-label="Мессенджер MAX"] {
  gap: 14px !important;
}

@media (min-width: 1024px) {
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* External Useful Sites in Footer: compact horizontal pill cards */
[data-external-sites] > div {
  padding: 16px 18px !important;
}

[data-external-sites] h3 {
  margin-bottom: 12px !important;
  font-size: 16px !important;
}

[data-external-sites] .grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

[data-external-sites] a {
  min-height: 46px !important;
  height: auto !important;
  padding: 7px 12px !important;
  flex-direction: row !important;
  text-align: left !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 10px !important;
  background: #ffffff !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transition: transform 160ms ease, box-shadow 160ms ease;
}

[data-external-sites] a img {
  height: 28px !important;
  width: 28px !important;
  flex: 0 0 28px !important;
  object-fit: contain !important;
  margin: 0 !important;
}

@media (hover: hover) and (pointer: fine) {
  [data-external-sites] a:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16);
  }
}

[data-external-sites] a span {
  color: #1e293b !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
}

@media (max-width: 639px) {
  [data-external-sites] .grid {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
  }
  [data-external-sites] a {
    min-height: 42px !important;
    padding: 6px 10px !important;
  }
}

@media (hover: none) {
  .card:hover,
  .btn-primary:hover,
  .gk-btn-booking:hover {
    transform: none !important;
  }
}

.gk-mobile-menu-brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: calc(100% - 108px);
  flex-shrink: 1;
}

.gk-mobile-menu-logo {
  display: block;
  width: auto !important;
  height: 40px !important;
  max-height: 40px !important;
  max-width: min(190px, calc(100% - 8px));
  object-fit: contain;
}

.gk-header button[aria-label="Открыть меню"],
.gk-mobile-menu button[aria-label="Закрыть меню"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 12px;
  touch-action: manipulation;
}

.gk-header button[aria-label="Открыть меню"]:active,
.gk-mobile-menu button[aria-label="Закрыть меню"]:active {
  background: var(--primary-soft);
}

@media (max-width: 767px) {
  html {
    scroll-padding-top: 76px;
  }

  body {
    font-size: 16px;
    line-height: 1.58;
  }

  html.gk-mobile-menu-open,
  html.gk-mobile-menu-open body {
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  body h1 {
    font-size: clamp(1.8rem, 8.4vw, 2.2rem) !important;
    line-height: 1.14 !important;
    letter-spacing: -0.015em;
    hyphens: none !important;
    text-wrap: wrap;
  }

  body h2 {
    font-size: clamp(1.45rem, 6.7vw, 1.85rem) !important;
    line-height: 1.2 !important;
    hyphens: none !important;
  }

  body :where(h3, h4, button, summary, th, td, label) {
    hyphens: none !important;
    word-break: normal !important;
  }

  body :where(p, li, dd, dt, figcaption, blockquote) {
    overflow-wrap: normal;
  }

  /* Utility bar: keep the phone and social channels usable without wrapping. */
  body > div[style*="background: var(--primary)"] > .max-w-7xl {
    min-height: 52px;
    padding: 4px 14px !important;
    gap: 10px;
  }

  body > div[style*="background: var(--primary)"] .bvi-trigger {
    display: none !important;
  }

  body > div[style*="background: var(--primary)"] a[href^="tel:"] {
    min-height: 44px;
    white-space: nowrap;
    font-size: 13px;
  }

  body > div[style*="background: var(--primary)"] a[aria-label="ВКонтакте"],
  body > div[style*="background: var(--primary)"] a[aria-label="Мессенджер MAX"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px;
    border-radius: 12px;
    background: rgba(255,255,255,.15) !important;
  }

  body > div[style*="background: var(--primary)"] .gap-3 {
    gap: 6px !important;
  }

  /* Sticky primary header. */
  .gk-header .gk-nav-row {
    min-height: 66px;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }

  .gk-header .logo-img {
    width: auto !important;
    height: 40px !important;
    max-width: min(168px, calc(100vw - 104px));
    object-fit: contain;
  }

  .gk-mobile-menu {
    overscroll-behavior: contain;
    padding-bottom: calc(28px + env(safe-area-inset-bottom));
  }

  .gk-mobile-menu > .sticky {
    min-height: 62px;
    padding-top: max(10px, env(safe-area-inset-top));
  }

  .gk-mobile-section > summary {
    min-height: 52px;
    padding: 14px 4px;
    touch-action: manipulation;
  }

  .gk-mobile-sub {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  /* The accessibility control remains available but no longer covers content. */
  .bvi-floating-trigger {
    width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 !important;
    justify-content: center;
    right: max(10px, env(safe-area-inset-right)) !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    box-shadow: 0 6px 18px rgba(13, 63, 112, .24);
  }

  .bvi-floating-trigger > span {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
  }

  body:has(.gk-cookie-banner) .bvi-floating-trigger {
    bottom: calc(230px + env(safe-area-inset-bottom)) !important;
  }

  /* Мобильные контролы hero-карусели на главной иначе могут оказаться под
     баннером cookie (z-index: 9998, зафиксирован снизу) — как и с
     .bvi-floating-trigger выше, добавляем зазор, пока баннер показан. */
  body:has(.gk-cookie-banner) .hero-section .hero-controls {
    margin-bottom: 230px;
  }

  /* Consistent spacing and card density on small screens. */
  .card {
    max-width: 100%;
    border-radius: 18px !important;
  }

  .card.p-8,
  article.card.p-8 {
    padding: 20px !important;
  }

  .card.p-6,
  article.card.p-6 {
    padding: 18px !important;
  }

  .py-20,
  .md\:py-20 {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  .py-16,
  .md\:py-16 {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }

  .py-14 {
    padding-top: 38px !important;
    padding-bottom: 38px !important;
  }

  .mb-16 {
    margin-bottom: 44px !important;
  }

  .mb-14 {
    margin-bottom: 40px !important;
  }

  /* Forms avoid iOS zoom and expose comfortable touch targets. */
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    width: 100%;
    min-height: 48px;
    font-size: 16px !important;
  }

  button,
  summary,
  .btn-primary,
  .btn-secondary,
  .gk-btn-booking,
  .service-tab,
  .page-btn {
    min-height: 44px;
    touch-action: manipulation;
  }

  .btn-primary,
  .btn-secondary,
  .gk-btn-booking {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    text-align: center;
  }

  /* Кнопка «Запись на приём» из хедера (md:inline-flex — по замыслу видна
     только от md/768px) на мобильных дублируется всегда видимой кнопкой в
     самом мобильном меню (.gk-btn-booking.block.mb-5 в gk-mobile-menu).
     Правило чуть выше (.btn-primary,.btn-secondary,.gk-btn-booking{display:
     inline-flex}) непреднамеренно показывало и хедерную кнопку тоже — но
     раньше это гасилось только на самых узких экранах (<=417px), а не на
     всём диапазоне мобильных (<=767px, как задумано md:inline-flex и как
     everywhere else в этом файле). */
  header .gk-nav-row .gk-btn-booking {
    display: none !important;
  }

  .card a[href^="tel:"],
  .card a[href^="mailto:"] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* Fallback if JS did not build cards: 2-col tables fit, 3+/booking tables scroll. */
  .overflow-x-auto,
  .gk-table-scroll {
    -webkit-overflow-scrolling: touch;
  }

  .gk-table-scroll:not(.gk-table-has-cards)::before {
    content: "Листайте таблицу вправо";
    display: block;
    position: sticky;
    left: 0;
    width: max-content;
    max-width: calc(100vw - 64px);
    margin: 0 0 8px 12px;
    padding: 5px 9px;
    color: var(--text-secondary);
    background: var(--primary-soft);
    border-radius: 999px;
    font-size: 12px;
    line-height: 1.3;
  }

  .overflow-x-auto > table,
  .gk-table-scroll > table {
    table-layout: auto !important;
  }

  .gk-table-scroll:not(.gk-table-has-cards) > table :where(th, td):first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--bg);
    box-shadow: 1px 0 0 var(--border);
  }

  .gk-table-scroll:not(.gk-table-has-cards) > table thead :where(th, td):first-child {
    z-index: 2;
    background: var(--bg-section);
  }

  /* table-layout:auto здесь не даёт эффекта: браузер всё равно считает
     "предпочтительную" (нешироко-перенесённую) ширину колонок по контенту и
     раздувает таблицу за пределы 100% контейнера, несмотря на min-width:0 и
     white-space:normal ниже — заголовок/ячейки просто не переносятся, и
     таблица не помещается на маленьком экране. table-layout:fixed заставляет
     браузер распределить заданную ширину (100%) по колонкам поровну и
     реально переносить текст на вторую строку. */
  .overflow-x-auto > table:not(.gk-booking-table):not(.gk-table-wide),
  table.gk-table-fit {
    min-width: 0 !important;
    width: 100% !important;
    table-layout: fixed !important;
  }

  .overflow-x-auto > table:not(.gk-booking-table):not(.gk-table-wide) :where(th, td),
  table.gk-table-fit :where(th, td) {
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  .gk-booking-table,
  table.gk-table-wide {
    min-width: 40rem !important;
  }

  .gk-booking-table :where(th, td),
  table.gk-table-wide :where(th, td) {
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: none !important;
    min-width: 8.5rem;
  }

  .overflow-x-auto.gk-table-has-cards {
    display: none !important;
  }

  .gk-table-has-cards > table {
    display: none !important;
  }

  .gk-table-mobile-host {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .gk-table-mobile-host.gk-table-has-pairs {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--bg-card);
  }

  .gk-table-cards,
  .gk-table-card,
  .gk-table-pair {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .gk-table-cards {
    display: grid !important;
    gap: 10px;
    padding: 0;
  }

  .gk-table-cards--pairs {
    gap: 0;
  }

  .gk-table-card {
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--bg-card);
    box-shadow: 0 2px 12px rgba(45, 35, 25, 0.06);
  }

  .gk-table-card--oms {
    border-color: transparent;
    background: var(--primary-soft);
    box-shadow: none;
  }

  .gk-table-card--dms {
    border-color: transparent;
    background: var(--warm-light);
    box-shadow: none;
  }

  .gk-table-card--paid {
    border-color: transparent;
    background: var(--accent-soft, #fff0f0);
    box-shadow: none;
  }

  .gk-table-card__kicker,
  .gk-table-card__label {
    margin-bottom: 4px;
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
  }

  .gk-table-card__kicker {
    margin-bottom: 10px;
    color: var(--primary);
    letter-spacing: 0.06em;
  }

  .gk-table-card--dms .gk-table-card__kicker { color: var(--warm); }
  .gk-table-card--paid .gk-table-card__kicker { color: var(--accent); }

  .gk-table-card__title {
    margin-bottom: 10px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
  }

  .gk-table-card__field + .gk-table-card__field {
    margin-top: 10px;
  }

  .gk-table-card__value {
    font-size: 15px;
    line-height: 1.45;
    overflow-wrap: break-word;
    word-break: normal;
  }

  .gk-table-pair {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: baseline;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
  }

  .gk-table-pair:last-child {
    border-bottom: 0;
  }

  .gk-table-pair__title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.4;
    overflow-wrap: break-word;
  }

  .gk-table-pair__value {
    flex: 0 0 auto;
    max-width: 11rem;
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.4;
    text-align: right;
    white-space: normal !important;
    overflow-wrap: break-word;
  }

  /* Home hero: give copy room and keep controls off the text. */
  .hero-section {
    height: 540px !important;
  }

  .hero-slide > .flex.flex-col.justify-center {
    padding: 22px 22px 82px !important;
  }

  .hero-arrow {
    top: 142px !important;
    width: 44px !important;
    height: 44px !important;
  }

  .hero-arrow-left { left: 10px !important; }
  .hero-arrow-right { right: 10px !important; }

  .hero-dot {
    width: 34px !important;
    height: 34px !important;
    margin: -9px;
    padding: 11px !important;
    background-clip: content-box !important;
  }

  .hero-playback-control {
    width: 44px;
    height: 44px;
    padding: 0;
  }

  .hero-section + .relative + section {
    padding-top: 34px !important;
    padding-bottom: 42px !important;
  }

  /* Footer and breadcrumbs should wrap naturally without squeezed columns. */
  main nav.text-sm {
    line-height: 1.5;
  }

  footer .max-w-7xl {
    padding-top: 38px !important;
    padding-bottom: 28px !important;
  }

  footer .grid {
    gap: 28px !important;
  }
}

@media (min-width: 768px) {
  .gk-table-cards,
  .gk-table-mobile-host {
    display: none !important;
  }
}

@media (max-width: 359px) {
  body > div[style*="background: var(--primary)"] a[href^="tel:"] span {
    font-size: 12px;
  }

  .gk-header .logo-img {
    height: 37px !important;
    max-width: 150px;
  }

  .gk-mobile-menu-logo {
    height: 36px !important;
    max-height: 36px !important;
    max-width: 145px;
  }

  .hero-section + .relative + section .grid-cols-2 {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .card > .flex.gap-5.p-5 {
    gap: 12px !important;
    padding: 14px !important;
  }

  .card > .flex.gap-5.p-5 > :where(img, .w-28) {
    width: 82px !important;
    height: 108px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gk-mobile-menu,
  .gk-mobile-menu *,
  .hero-slide,
  .card,
  .btn-primary,
  .btn-secondary {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }

  .fade-up {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

@media (min-width: 1024px) {
  .gk-location-map-primary { min-height: 620px; }
}

/* ===== Public forms and consent surfaces (2026-08) ===== */
.gk-form-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.gk-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.gk-form-label {
  display: block;
  margin-bottom: 7px;
  color: var(--text);
  font-size: 14px;
  font-weight: 650;
}

.gk-form-label span { color: var(--accent); }

.gk-form-control {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--bg-card);
  color: var(--text);
  font: inherit;
  font-size: 16px;
  line-height: 1.45;
  outline: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

textarea.gk-form-control { resize: vertical; }

.gk-form-control::placeholder { color: color-mix(in srgb, var(--text-secondary) 72%, transparent); }
.gk-form-control:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--border)); }
.gk-form-control:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 16%, transparent);
}
.gk-form-control[aria-invalid="true"] {
  border-color: var(--accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent);
}

form [aria-invalid="true"] {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent) !important;
}
form input[type="checkbox"][aria-invalid="true"],
form input[type="radio"][aria-invalid="true"] {
  outline: 3px solid color-mix(in srgb, var(--accent) 34%, transparent);
  outline-offset: 3px;
  box-shadow: none !important;
}
.gk-form-validation-summary {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--accent) 38%, var(--border));
  border-radius: 14px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}

.gk-form-help {
  margin-top: 7px;
  color: var(--text-secondary);
  font-size: 12px;
  line-height: 1.55;
}

.gk-consent-row {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--primary-soft) 42%, var(--bg-card));
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.55;
  cursor: pointer;
}

.gk-consent-row-optional { background: var(--bg-card); }
.gk-consent-row input {
  width: 20px;
  height: 20px;
  margin-top: 1px;
  accent-color: var(--primary);
}
.gk-consent-row input:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent); outline-offset: 3px; }
.gk-consent-row input[aria-invalid="true"] { outline: 3px solid color-mix(in srgb, var(--accent) 34%, transparent); outline-offset: 3px; }
.gk-consent-row a { color: var(--primary); font-weight: 650; text-decoration: underline; text-underline-offset: 2px; }
.gk-consent-row strong { color: var(--text); }

.gk-submit-button { min-height: 48px; }
.gk-submit-button:disabled { cursor: wait; opacity: .65; transform: none !important; }
.gk-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.gk-rating-stars {
  display: inline-flex;
  gap: 4px;
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--bg-card);
}
.gk-rating-stars button {
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #D9DEE1;
  font-size: 27px;
  line-height: 1;
  cursor: pointer;
  transition: color 150ms ease, background 150ms ease, transform 150ms ease;
}
.gk-rating-stars button:hover,
.gk-rating-stars button.active { color: #D0A61F; background: #FFF8DA; }
.gk-rating-stars button:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent); outline-offset: 1px; }

/* Cookie and future analytics consent. No analytics script is loaded by this component. */
.gk-cookie-banner {
  position: fixed;
  z-index: 9998;
  left: max(16px, env(safe-area-inset-left));
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  max-width: 1080px;
  margin: 0 auto;
  padding: 18px;
  border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--border));
  border-radius: 22px;
  background: color-mix(in srgb, var(--bg-card) 96%, transparent);
  box-shadow: 0 18px 60px rgba(16, 56, 79, .22);
  color: var(--text);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  animation: gk-cookie-in 250ms var(--ease-out) both;
}
.gk-cookie-layout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center; }
.gk-cookie-title { margin: 0 0 5px; font-size: 16px; font-weight: 750; }
.gk-cookie-copy {
  margin: 0;
  max-width: 68ch;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.55;
  display: block;
  overflow: visible;
}
.gk-cookie-copy a { color: var(--primary); font-weight: 650; text-decoration: underline; text-underline-offset: 2px; }
.gk-cookie-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.gk-cookie-button {
  min-height: 40px;
  padding: 10px 15px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-card);
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms var(--ease-out);
}
.gk-cookie-button:hover { border-color: var(--primary); }
.gk-cookie-button-primary { border-color: var(--primary); background: var(--primary); color: #fff; }
.gk-cookie-button-primary:hover { background: var(--primary-dark); }
.gk-cookie-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 30%, transparent); outline-offset: 2px; }

.gk-cookie-overlay {
  position: fixed;
  z-index: 9999;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(12, 34, 47, .54);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  opacity: 1;
  transition: opacity 200ms var(--ease-out), backdrop-filter 200ms var(--ease-out);
}
.gk-cookie-dialog {
  width: min(560px, 100%);
  max-height: min(720px, calc(100vh - 40px));
  overflow: auto;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: var(--bg-card);
  box-shadow: 0 24px 80px rgba(8, 28, 40, .28);
  color: var(--text);
  opacity: 1;
  transform: scale(1);
  transform-origin: center;
  animation: gk-cookie-dialog-in 250ms var(--ease-out) both;
  transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out);
}
.gk-cookie-overlay.is-closing { opacity: 0; backdrop-filter: blur(0); pointer-events: none; }
.gk-cookie-overlay.is-closing .gk-cookie-dialog { animation: none; opacity: 0; transform: scale(.96); }
.gk-cookie-banner.is-closing { animation: none; opacity: 0; transform: translateY(24px); pointer-events: none; transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out); }
.gk-cookie-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 12px; }
.gk-cookie-dialog-head h2 { margin: 8px 0 0; font-size: 24px; line-height: 1.2; }
.gk-cookie-close {
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--bg);
  color: var(--text);
  font: inherit;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}
.gk-cookie-close:hover { border-color: var(--primary); color: var(--primary); }
.gk-cookie-close:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 30%, transparent); outline-offset: 2px; }
.gk-cookie-category { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: start; padding: 16px 0; border-top: 1px solid var(--border); }
.gk-cookie-category:first-of-type { margin-top: 18px; }
.gk-cookie-category h3 { margin: 0 0 4px; font-size: 15px; }
.gk-cookie-category p { margin: 0; color: var(--text-secondary); font-size: 13px; line-height: 1.55; }
.gk-cookie-switch { width: 46px; height: 26px; accent-color: var(--primary); }
.gk-cookie-settings-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.gk-cookie-dialog-actions { margin-top: 8px; }
.gk-footer-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 18px;
  width: min(1152px, calc(100% - 32px));
  margin: 0 auto;
  padding: 14px 0 max(18px, env(safe-area-inset-bottom));
  border-top: 1px solid rgba(255, 255, 255, .18);
  color: rgba(255, 255, 255, .78);
  font-size: 12px;
  line-height: 1.5;
}
.gk-footer-legal a,
.gk-footer-legal button { color: inherit; }
.gk-footer-legal button { padding: 0; border: 0; background: transparent; font: inherit; cursor: pointer; }
.gk-footer-legal a:hover,
.gk-footer-legal button:hover { color: #fff; }
/* Reserve room for the floating BVI button inside the dark footer itself,
   otherwise a white body strip shows below the footer on phones. */
@media (max-width: 767px) {
  .gk-footer-legal {
    padding-bottom: calc(64px + env(safe-area-inset-bottom));
  }
}
body.gk-consent-modal-open { overflow: hidden; }

@keyframes gk-cookie-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gk-cookie-dialog-in { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }

@media (max-width: 767px) {
  html { background-color: var(--primary-dark); }

  .gk-form-grid { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .gk-public-form { padding: 18px !important; }
  .gk-rating-stars { display: flex; justify-content: space-between; width: 100%; }
  .gk-rating-stars button { width: 44px; height: 44px; }
  .gk-cookie-banner { left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); padding: 16px; border-radius: 18px; }
  .gk-cookie-layout { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .gk-cookie-actions { justify-content: stretch; }
  .gk-cookie-button { flex: 1 1 130px; }
  .gk-cookie-button-primary { flex-basis: 100%; order: -1; }
  .gk-cookie-dialog { padding: 20px; border-radius: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .gk-cookie-banner,
  .gk-cookie-dialog,
  .gk-rating-stars button { animation: none !important; transition: none !important; }
}

/* ===== Staff cards, document links and disclosures (2026-08) ===== */
.gk-person-placeholder {
  object-fit: cover;
  object-position: center;
  background: var(--primary-soft);
}

.gk-profile-card > summary {
  list-style: none;
  cursor: pointer;
}

.gk-profile-card > summary::-webkit-details-marker {
  display: none;
}

.gk-profile-card > summary:hover .gk-profile-toggle,
.gk-profile-card > summary:focus-visible .gk-profile-toggle {
  color: var(--primary-dark);
  border-color: var(--primary);
  background: var(--primary-soft);
}

.gk-profile-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  margin-top: 16px;
  padding: 8px 13px;
  border: 1px solid var(--border);
  border-radius: 12px;
  color: var(--primary);
  background: var(--bg-card);
  font-size: 13px;
  font-weight: 700;
  transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

.gk-profile-toggle svg {
  transition: transform .2s ease;
}

.gk-profile-card[open] .gk-profile-toggle svg {
  transform: rotate(180deg);
}

.gk-profile-card[open] .gk-profile-more-label,
.gk-profile-less-label {
  display: none;
}

.gk-profile-card[open] .gk-profile-less-label {
  display: inline;
}

.gk-profile-details {
  padding: 22px 24px 26px;
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--bg-section) 54%, var(--bg-card));
}

.gk-pdf-link::after {
  content: "Откроется в новой вкладке";
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 640px) {
  .gk-profile-details {
    padding: 19px 18px 22px;
  }
}

/* Keep the disclosure action label stable; the chevron communicates state. */
.gk-profile-card[open] .gk-profile-more-label {
  display: inline;
}

.gk-profile-less-label,
.gk-profile-card[open] .gk-profile-less-label {
  display: none;
}

/* Department/person lead cards share one full-width, responsive composition. */
main section.max-w-5xl > .card.overflow-hidden.fade-up.mb-10 {
  max-width: none !important;
  width: 100%;
}

main section.max-w-5xl > .card.overflow-hidden.fade-up.mb-10 > .flex,
.gk-administration-grid > .card > .flex {
  align-items: flex-start;
}

/* Document rows stay compact; the trailing action icon never becomes a new row. */
.doc-item.card {
  min-height: 62px;
  padding: 13px 15px !important;
  gap: 12px !important;
}

.doc-item.card > .flex {
  align-items: center !important;
}

.doc-item.card > .flex > :first-child {
  width: 34px !important;
  height: 34px !important;
}

.gk-acc > .gk-disclosure-content > [class*="pt-0"] {
  padding-top: 4px !important;
}

@media (max-width: 640px) {
  .doc-item.card.flex.items-center.justify-between {
    flex-wrap: nowrap;
    align-items: center;
  }

  .doc-item.card.flex.items-center.justify-between > :last-child {
    width: auto;
    flex: 0 0 auto;
  }

  .doc-item.card {
    min-height: 58px;
    padding: 11px 12px !important;
  }
}

@media (max-width: 520px) {
  main section.max-w-5xl > .card.overflow-hidden.fade-up.mb-10 > .flex,
  .gk-administration-grid > .card > .flex {
    flex-direction: column;
    gap: 15px !important;
    padding: 18px !important;
  }

  main section.max-w-5xl > .card.overflow-hidden.fade-up.mb-10 > .flex > img,
  .gk-administration-grid > .card > .flex > img {
    width: 132px !important;
    height: 176px !important;
    align-self: center;
  }

  main section.max-w-5xl > .card.overflow-hidden.fade-up.mb-10 a[href^="mailto:"],
  .gk-administration-grid a[href^="mailto:"] {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
}

/* ===== Motion system (2026-08) =====
   Frequent controls use subtle feedback; menus and disclosures bridge state changes. */
html { interpolate-size: allow-keywords; }

.gk-nav-link,
.gk-mega-link,
.gk-mobile-sub,
.gk-btn-purple,
.gk-btn-booking,
.btn-primary,
.btn-secondary,
.doc-item,
.page-btn,
.service-tab,
.filter-chip,
.hero-arrow,
.hero-dot,
.logo-img,
.gk-cookie-close,
.gk-cookie-settings-link,
footer a {
  transition-property: color, background-color, border-color, box-shadow, opacity, transform !important;
  transition-duration: 160ms !important;
  transition-timing-function: ease !important;
}

/* Replace Tailwind's broad utility left in legacy templates with composited UI properties. */
.transition-all {
  transition-property: color, background-color, border-color, box-shadow, opacity, transform !important;
  transition-duration: 160ms !important;
  transition-timing-function: ease !important;
}

.gk-nav-link .chev,
.gk-acc-icon,
.gk-profile-toggle svg {
  transition: transform 180ms var(--ease-out) !important;
}

/* Native selects keep platform focus/keyboard behaviour; only their control surface transitions. */
select {
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

/* The outgoing hero clears first so two large headings never overlap mid-transition. */
.hero-slide {
  opacity: 0;
  filter: blur(1px);
  z-index: 0;
  transition:
    opacity 120ms ease,
    filter 120ms ease !important;
}

.hero-slide.active {
  opacity: 1;
  filter: blur(0);
  z-index: 1;
  transition-duration: 220ms !important;
  transition-delay: 90ms !important;
}

/* Desktop mega menus remain mounted so both the entrance and the exit can interpolate. */
@media (min-width: 1280px) {
  .gk-mega {
    display: block !important;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-4px) scale(.97);
    transform-origin: top var(--gk-menu-origin-x, 24px);
    animation: none !important;
    transition:
      opacity 180ms var(--ease-out),
      transform 180ms var(--ease-out),
      visibility 0s linear 180ms;
  }

  .gk-nav-item:hover > .gk-mega,
  .gk-nav-item:focus-within > .gk-mega {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
    transition-delay: 0s;
  }
}

/* Full-screen mobile navigation behaves as a drawer and exits along its entry path. */
@media (max-width: 1279px) {
  .gk-mobile-menu {
    display: block !important;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateX(100%);
    will-change: opacity, transform;
    transition:
      opacity 220ms var(--ease-out),
      transform 280ms var(--ease-drawer),
      visibility 0s linear 280ms;
  }

  .gk-mobile-menu.open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
    transition-delay: 0s;
  }

  .gk-mobile-section > summary::after {
    content: "" !important;
    width: 9px;
    height: 9px;
    margin-right: 5px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transform-origin: center;
    transition: transform 180ms var(--ease-out);
  }

  .gk-mobile-section[open] > summary::after {
    transform: translateY(2px) rotate(225deg);
  }
}

/* A native fallback is available before the shared disclosure script is ready. */
details:not([data-gk-motion-ready="true"])::details-content {
  block-size: 0;
  opacity: 0;
  overflow: clip;
  transition:
    block-size 300ms var(--ease-out),
    opacity 260ms var(--ease-out),
    content-visibility 300ms allow-discrete;
}

details[open]:not([data-gk-motion-ready="true"])::details-content {
  block-size: auto;
  opacity: 1;
}

/* Give native mobile disclosures an entry frame even before the deferred
   interaction script is ready. Without this, only the first tap snaps open. */
@starting-style {
  .gk-mobile-section[open]:not([data-gk-motion-ready="true"])::details-content {
    block-size: 0;
    opacity: 0;
  }
}

details[data-gk-motion-ready="true"]::details-content {
  block-size: auto;
  opacity: 1;
  overflow: visible;
  transition: none;
}

.gk-disclosure-content {
  overflow: hidden;
  opacity: 1;
  transition:
    height var(--gk-disclosure-duration, 360ms) var(--ease-disclosure),
    opacity var(--gk-disclosure-opacity-duration, 320ms) var(--ease-disclosure);
}

/* A gentler curve keeps tall disclosures from appearing to snap open. */
:root { --ease-disclosure: cubic-bezier(0.33, 1, 0.68, 1); }

.gk-disclosure-content[data-gk-animating="true"] {
  will-change: height, opacity;
}

/* Thematic-news gallery lightbox stays mounted for a symmetric exit. */
.gk-lightbox {
  display: flex;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 250ms var(--ease-out), visibility 0s linear 250ms;
}

.gk-lightbox > img {
  opacity: 0;
  transform: scale(.96);
  transition: opacity 250ms var(--ease-out), transform 250ms var(--ease-out);
}

.gk-lightbox.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition-delay: 0s;
}

.gk-lightbox.is-open > img {
  opacity: 1;
  transform: scale(1);
}

details > summary {
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

/* Touchscreens should not retain the desktop arrow hover scale after a tap. */
.hero-arrow:hover {
  transform: translateY(-50%) !important;
}

@media (hover: hover) and (pointer: fine) {
  a.card:hover,
  button.card:hover,
  .card[role="link"]:hover,
  .card.fade-up:hover,
  .dept-card:hover,
  [data-doctor-card]:hover,
  .gk-insurer-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(45, 35, 25, .11) !important;
  }

  [data-doctor-card]:hover > img,
  [data-doctor-card]:hover .gk-doctor-photo-img {
    transform: scale(1.025);
  }

  .btn-primary:hover,
  .btn-secondary:hover,
  .gk-btn-booking:hover,
  .gk-btn-purple:hover {
    transform: translateY(-1px) !important;
  }

  .gk-cookie-button:hover,
  .gk-cookie-close:hover {
    transform: translateY(-1px);
  }

  .hero-arrow:hover {
    transform: translateY(-50%) scale(1.04) !important;
  }
}

/* Repeated card families use the same hover feedback ingredients. */
.dept-card,
[data-doctor-card],
.gk-insurer-card {
  transition:
    transform 220ms var(--ease-out),
    box-shadow 220ms var(--ease-out),
    border-color 160ms ease !important;
}

[data-doctor-card] > img,
[data-doctor-card] .gk-doctor-photo-img {
  transform: scale(1);
  transform-origin: center top;
  transition: transform 220ms var(--ease-out) !important;
}

[data-doctor-card][data-href] {
  cursor: pointer;
}

[data-doctor-card] .gk-doctor-photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--bg-section);
}

[data-doctor-card] .gk-doctor-photo-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

[data-doctor-card] .gk-doctor-photo-img.doctor-placeholder {
  object-fit: cover;
  object-position: center;
  padding: 0;
}

.gk-edu {
  display: grid;
  gap: 8px;
  margin: 0 0 4px;
}

.gk-edu-block {
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-section);
}

.gk-edu-title {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--text);
}

.gk-edu-line {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text-secondary);
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.gk-edu-line + .gk-edu-line {
  margin-top: 2px;
}

.gk-edu-meta {
  margin: 2px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--text-secondary);
}

.gk-edu-qual {
  margin: 4px 0 0;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
  color: var(--text);
}

[data-cms="doctor"] .gk-edu {
  margin-top: 10px;
  gap: 10px;
}

[data-cms="doctor"] .gk-edu-block {
  padding: 12px 14px;
}

[data-cms="doctor"] .gk-edu-title {
  font-size: 14px;
}

[data-cms="doctor"] .gk-edu-line {
  font-size: 14px;
  line-height: 1.5;
}

/* Administration: remove the doubled vertical gap below the introduction. */
.gk-page-administration #administration {
  padding-top: 8px !important;
}

.gk-page-administration main > .max-w-5xl.mb-10 {
  margin-bottom: 12px !important;
}

/* Booking cards: compact labels, stable surfaces, balanced full-width actions. */
.gk-page-booking #oms,
.gk-page-booking #dms,
.gk-page-booking #paid {
  position: relative;
  overflow: hidden;
  padding-top: 34px !important;
  background: var(--bg-card) !important;
}

.gk-page-booking #oms::before,
.gk-page-booking #dms::before,
.gk-page-booking #paid::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: var(--primary);
}

.gk-page-booking #paid::before { background: var(--warm); }

.gk-page-booking :is(#oms, #dms, #paid) > .inline-flex:first-child {
  align-self: flex-start;
  width: auto;
  max-width: 100%;
  margin-bottom: 14px !important;
  padding: 5px 11px !important;
  white-space: nowrap;
}

.gk-page-booking :is(#oms, #dms, #paid) > .flex.mt-auto {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
}

.gk-page-booking :is(#oms, #dms, #paid) > :is(a.mt-auto, .flex.mt-auto) a,
.gk-page-booking #oms > a.mt-auto {
  width: 100%;
  text-align: center;
}

/* Contacts: one content rail and a calmer, more compact mobile rhythm. */
.gk-page-contacts #callbackMessage {
  min-height: 220px;
  resize: vertical;
}

@media (max-width: 767px) {
  .gk-page-contacts main > :is(div, section) {
    margin-bottom: 32px !important;
  }

  .gk-page-contacts main section[class*="max-w-6xl"] .card {
    padding: 18px !important;
  }

  .gk-page-contacts main section[class*="max-w-6xl"] .grid {
    gap: 16px !important;
  }

  .gk-page-contacts #callbackMessage {
    min-height: 190px;
  }

  .gk-page-contacts main > section.py-16 {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }
}

/* Department status reads as a deliberate status chip, not a squeezed pill. */
.gk-page-departments .dept-card > .flex:first-child > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 5px 10px !important;
  border: 1px solid rgba(45, 139, 111, .2);
  border-radius: 10px !important;
  background: var(--warm-light) !important;
  color: var(--warm) !important;
  font-size: 11px !important;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.gk-page-departments .dept-card > .flex:first-child > span::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 3px rgba(45, 139, 111, .12);
}

@media (max-width: 420px) {
  .gk-page-departments .dept-card > .flex:first-child {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* DMS brand tiles: self-hosted insurer artwork with a sliding name reveal. */
.gk-insurer-card {
  --gk-insurer: var(--primary);
  --gk-insurer-soft: var(--primary-soft);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 112px;
  overflow: hidden;
  padding: 18px !important;
  border: 1px solid var(--border);
  isolation: isolate;
}

.gk-insurer-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(88%, 220px);
  height: 52px;
  transition: transform 220ms var(--ease-out), opacity 160ms ease;
}

.gk-insurer-logo-image {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 44px;
  object-fit: contain;
  object-position: center;
  transform: translateZ(0);
  transition: filter 180ms ease;
}

.gk-insurer-name {
  position: absolute;
  inset: auto 12px 10px;
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.2;
  text-align: center;
  opacity: 0;
  transform: translateY(7px);
  transition: opacity 160ms ease, transform 220ms var(--ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .gk-insurer-card:hover .gk-insurer-logo {
    transform: translateY(-9px);
  }

  .gk-insurer-card:hover .gk-insurer-name {
    opacity: 1;
    transform: translateY(0);
  }
}

.gk-insurer-card[data-insurer="sogaz"] .gk-insurer-logo-image,
.gk-insurer-card[data-insurer="ingos"] .gk-insurer-logo-image,
.gk-insurer-card[data-insurer="soglasie"] .gk-insurer-logo-image,
.gk-insurer-card[data-insurer="kaplife"] .gk-insurer-logo-image,
.gk-insurer-card[data-insurer="capital"] .gk-insurer-logo-image {
  max-width: 94%;
}

.gk-insurer-card[data-insurer="vsk"] .gk-insurer-logo-image,
.gk-insurer-card[data-insurer="uralsib"] .gk-insurer-logo-image {
  max-height: 52px;
}

.gk-insurer-card[data-insurer="vtb"] .gk-insurer-logo-image,
.gk-insurer-card[data-insurer="liberty"] .gk-insurer-logo-image,
.gk-insurer-card[data-insurer="medexpress"] .gk-insurer-logo-image {
  max-height: 48px;
}

.gk-insurer-card[data-insurer="reso"],
.gk-insurer-card[data-insurer="rgs"] { --gk-insurer:#d5232f; --gk-insurer-soft:#fff0f1; }
.gk-insurer-card[data-insurer="ingos"] { --gk-insurer:#00549f; --gk-insurer-soft:#edf6ff; }
.gk-insurer-card[data-insurer="alfa"] { --gk-insurer:#ef3124; --gk-insurer-soft:#fff0ef; }
.gk-insurer-card[data-insurer="vtb"] { --gk-insurer:#0a2973; --gk-insurer-soft:#eef2ff; }
.gk-insurer-card[data-insurer="renins"] { --gk-insurer:#5f259f; --gk-insurer-soft:#f5effc; }
.gk-insurer-card[data-insurer="soglasie"] { --gk-insurer:#008c95; --gk-insurer-soft:#ebf8f8; }
.gk-insurer-card[data-insurer="liberty"] { --gk-insurer:#f28c00; --gk-insurer-soft:#fff5e7; }
.gk-insurer-card[data-insurer="kaplife"] { --gk-insurer:#13745a; --gk-insurer-soft:#ebf7f2; }
.gk-insurer-card[data-insurer="ugoria"] { --gk-insurer:#005aa9; --gk-insurer-soft:#edf6ff; }
.gk-insurer-card[data-insurer="vsk"] { --gk-insurer:#ec6b23; --gk-insurer-soft:#fff3eb; }
.gk-insurer-card[data-insurer="medexpress"] { --gk-insurer:#1677bb; --gk-insurer-soft:#edf7fd; }
.gk-insurer-card[data-insurer="maks"] { --gk-insurer:#1b8f45; --gk-insurer-soft:#edf8f0; }
.gk-insurer-card[data-insurer="capital"] { --gk-insurer:#3e6f4d; --gk-insurer-soft:#eef6f0; }
.gk-insurer-card[data-insurer="uralsib"] { --gk-insurer:#e75b20; --gk-insurer-soft:#fff2ec; }

@media (hover: none), (pointer: coarse) {
  .gk-insurer-card {
    flex-direction: column;
    gap: 9px;
  }

  .gk-insurer-name {
    position: static;
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 767px) {
  .gk-insurer-card {
    flex-direction: column;
    gap: 9px;
  }

  .gk-insurer-name {
    position: static;
    opacity: 1;
    transform: none;
  }
}

.btn-primary:active,
.btn-secondary:active,
.gk-btn-booking:active,
.gk-btn-purple:active,
.gk-cookie-button:active,
.hero-arrow:active,
.hero-playback-control:active:not(:disabled),
.gk-header button:active,
a.card:active,
button.card:active {
  transform: scale(.97) !important;
  transition-duration: 140ms !important;
  transition-timing-function: var(--ease-out) !important;
}

.hero-arrow:active {
  transform: translateY(-50%) scale(.96) !important;
}

@media (prefers-reduced-motion: reduce) {
  .gk-mobile-menu {
    transform: none !important;
    transition: opacity 160ms ease !important;
  }

  .gk-mega,
  .hero-slide,
  .dept-card,
  [data-doctor-card],
  [data-doctor-card] > img,
  [data-doctor-card] .gk-doctor-photo-img,
  .gk-insurer-card,
  .gk-insurer-logo,
  .gk-insurer-logo-image,
  .gk-insurer-name,
  details::details-content,
  .gk-disclosure-content,
  .gk-cookie-overlay,
  .gk-cookie-dialog,
  .gk-cookie-banner,
  .gk-lightbox,
  .gk-lightbox > img,
  .service-panel.active {
    transform: none !important;
    animation: none !important;
    transition-duration: 160ms !important;
  }

  .hero-slide { filter: none !important; }
}

/* Home hero: preserve the original composition and only complete its corner system. */
.hero-section #heroSlider,
.hero-section .hero-slide {
  border-radius: 24px;
}

.hero-section #heroSlider,
.hero-section .hero-slide {
  overflow: hidden;
}

.hero-section .hero-slide > .flex.flex-col.justify-center,
.hero-section .hero-slide > div:last-child,
.hero-section .hero-slide img {
  border-radius: 24px !important;
}

.hero-section .hero-slide img {
  object-fit: cover;
  object-position: top center;
}

/* Desktop navigation: 21st/ReUI-inspired surface, retaining the existing DOM and menu logic. */
@media (min-width: 1280px) {
  .gk-main-nav {
    gap: 3px;
    font-size: 13px;
    font-weight: 600;
  }

  .gk-nav-link {
    min-height: 38px;
    padding: 8px 11px;
    gap: 5px;
    border: 0 !important;
    border-radius: 10px;
    line-height: 1;
    background: transparent;
    color: var(--text);
    transition:
      color 160ms ease,
      background-color 160ms ease,
      box-shadow 160ms ease !important;
  }

  .gk-nav-link:hover,
  .gk-nav-item:hover > .gk-nav-link,
  .gk-nav-item:focus-within > .gk-nav-link {
    color: var(--primary);
    background: rgba(17, 78, 140, .075);
  }

  .gk-nav-link.active {
    color: var(--primary);
    background: rgba(17, 78, 140, .11);
    box-shadow: inset 0 0 0 1px rgba(17, 78, 140, .08);
  }

  .gk-nav-link:focus-visible,
  .gk-mega-link:focus-visible,
  .gk-btn-purple:focus-visible {
    outline: 3px solid rgba(17, 78, 140, .24);
    outline-offset: 2px;
  }

  .gk-nav-link .chev {
    width: 13px;
    height: 13px;
    opacity: .62;
  }

  .gk-nav-item:hover .gk-nav-link .chev,
  .gk-nav-item:focus-within .gk-nav-link .chev {
    opacity: 1;
    transform: rotate(180deg);
  }

  .gk-mega {
    padding: 20px 22px;
    border-color: rgba(44, 62, 80, .11);
    border-radius: 14px;
    background: rgba(255, 255, 255, .985);
    box-shadow:
      0 22px 55px rgba(45, 35, 25, .14),
      0 3px 10px rgba(45, 35, 25, .055);
    transform: translateY(-5px) scale(.985);
    transform-origin: top var(--gk-menu-origin-x, 24px);
    transition:
      opacity 180ms var(--ease-out),
      transform 220ms var(--ease-out),
      visibility 0s linear 220ms;
  }

  .gk-nav-item:hover > .gk-mega,
  .gk-nav-item:focus-within > .gk-mega {
    transform: translateY(0) scale(1);
  }

  .gk-mega-heading {
    margin-bottom: 8px;
    padding: 0 9px 8px;
    letter-spacing: .055em;
  }

  .gk-mega-link {
    min-height: 32px;
    padding: 7px 9px;
    border-radius: 8px;
    transition:
      color 150ms ease,
      background-color 150ms ease,
      transform 180ms var(--ease-out) !important;
  }

  .gk-mega-link:hover {
    transform: translateX(2px);
  }

  .gk-mega-sublist .gk-mega-link {
    min-height: 28px;
    padding: 5px 9px;
  }
}

@media (min-width: 1280px) and (prefers-reduced-motion: reduce) {
  .gk-mega-link:hover {
    transform: none;
  }
}

/* Home composition: more air below the header, less dead space below the slider. */
.hero-section {
  margin-top: clamp(12px, 1.7vw, 24px);
}

.hero-section + .relative {
  height: clamp(24px, 3vw, 44px);
  overflow: hidden;
}

.hero-section + .relative > svg {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-section + .relative + section {
  padding-top: clamp(20px, 2vw, 28px) !important;
}

/* Desktop first fold: header + hero + quick actions fill one viewport exactly. */
@media (min-width: 1280px) {
  .gk-home-fold {
    display: grid;
    grid-template-rows: minmax(420px, 1fr) 32px auto;
    min-height: calc(100vh - 125px);
    min-height: calc(100dvh - 125px);
    height: auto;
    padding-top: clamp(18px, 2.2vh, 26px);
  }

  .gk-home-fold > .hero-section {
    height: auto !important;
    min-height: 0;
    margin-top: 0;
  }

  .gk-home-fold > .hero-section + .relative {
    height: 32px;
  }

  .gk-home-fold > .hero-section + .relative + section {
    width: 100%;
    padding-top: 14px !important;
    padding-bottom: clamp(40px, 4.8vh, 52px) !important;
  }

  .gk-home-fold > .hero-section + .relative + section .card {
    min-height: 170px;
  }
}

/* Compact laptops: keep the slide copy inside its panel near the md breakpoint. */
@media (min-width: 768px) and (max-width: 1023px) {
  .hero-section {
    height: 500px !important;
    min-height: 500px;
  }

  .hero-slide > .flex.flex-col.justify-center {
    width: 45% !important;
    padding: 32px 40px !important;
  }

  .hero-slide > div:last-child {
    width: 55% !important;
  }

  .hero-slide > .flex.flex-col.justify-center > :first-child {
    font-size: clamp(30px, 4.25vw, 35px) !important;
    line-height: 1.16 !important;
  }

  .hero-slide > .flex.flex-col.justify-center > p:not(:first-child) {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  .gk-home-fold > .hero-section + .relative + section .card {
    min-height: 184px;
  }
}


/* Mobile home carousel: content-led card with controls in normal flow. */
@media (max-width: 767px) {
  .gk-home-fold > .hero-section,
  .hero-section {
    height: auto !important;
    min-height: 0 !important;
    margin-top: 12px;
    padding: 12px 12px 14px !important;
    overflow: visible !important;
  }

  .hero-section #heroSlider {
    display: grid !important;
    height: auto !important;
    border-radius: 20px !important;
  }

  .hero-section .hero-slide {
    grid-area: 1 / 1;
    position: relative !important;
    inset: auto !important;
    width: 100%;
    height: auto !important;
    border-radius: 0 !important;
    align-items: stretch !important;
    pointer-events: none;
  }

  .hero-section .hero-slide.active {
    pointer-events: auto;
  }

  .hero-section .hero-slide > .flex.flex-col.justify-center {
    min-height: 0 !important;
    padding: 22px 20px 24px !important;
    border-radius: 0 !important;
  }

  .hero-section .hero-slide > div:last-child {
    height: auto !important;
    aspect-ratio: 1280 / 851;
    flex: 0 0 auto;
    overflow: hidden;
    border-radius: 0 !important;
  }

  .hero-section .hero-slide img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: top center !important;
    border-radius: 0 !important;
  }

  .hero-controls {
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding-top: 12px;
  }

  .hero-controls .hero-arrow {
    position: static !important;
    inset: auto !important;
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px;
    transform: none !important;
  }

  .hero-controls .hero-pagination {
    position: static !important;
    display: flex;
    gap: 2px;
    transform: none !important;
  }

  .hero-pagination-motion { gap: 2px !important; }

  .hero-controls .hero-dot {
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 16px !important;
    background-clip: content-box !important;
  }

  .hero-controls .hero-dot[aria-current="true"] {
    outline: 2px solid var(--warm);
    outline-offset: -7px;
  }

  /* Quick-action subtitles inherit no desktop alignment on narrow screens. */
  .hero-section + .relative + section .grid > a.card > p {
    text-align: center !important;
  }

  .hero-section + .relative { height: 24px; }
}

/* Playback control follows the same tactile language as the slider arrows. */
.hero-playback-control {
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, box-shadow 180ms var(--ease-out), transform 160ms var(--ease-out);
}

.hero-playback-control[aria-pressed="true"] {
  border-color: var(--primary);
  background-color: var(--primary-soft);
  color: var(--primary);
  box-shadow: 0 4px 14px rgba(21, 94, 117, .14);
}

.hero-playback-icon {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

.hero-playback-icon svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transition: opacity 160ms ease, transform 160ms var(--ease-out);
}

.hero-playback-icon-pause { opacity: 1; transform: scale(1); }
.hero-playback-icon-play { opacity: 0; transform: scale(.96); }
.hero-playback-control[aria-pressed="true"] .hero-playback-icon-pause { opacity: 0; transform: scale(.96); }
.hero-playback-control[aria-pressed="true"] .hero-playback-icon-play { opacity: 1; transform: scale(1); }

/* The compact control and slide indicators move together when its state label changes. */
.hero-pagination-motion,
.hero-playback-motion {
  display: inline-flex;
  transition: transform 180ms var(--ease-out);
}

.hero-pagination-motion {
  align-items: center;
  gap: 11px;
  transform-origin: left center;
}

.hero-playback-motion { transform-origin: left center; }

.hero-playback-label {
  white-space: nowrap;
}

@media (hover: hover) and (pointer: fine) {
  .hero-playback-control:hover:not(:disabled) {
    border-color: var(--primary);
    background: var(--primary-soft);
    color: var(--primary);
    box-shadow: 0 6px 18px rgba(21, 94, 117, .16);
    transform: translateY(-2px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-playback-control {
    transition: background-color 1ms linear, color 1ms linear, border-color 1ms linear;
  }

  .hero-playback-icon svg {
    transform: none !important;
    transition: opacity 1ms linear;
  }

  .hero-playback-motion {
    transform: none !important;
    transition: none !important;
  }

  .hero-pagination-motion { transition: none !important; }

  .hero-playback-control:hover:not(:disabled),
  .hero-playback-control:active:not(:disabled) {
    transform: none;
  }
}

/* Authoritative patient and specialist content (2026-08-18) */
.gk-content-card { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--border); }
.gk-specialists-normative-section { padding-top: clamp(2rem, 4vw, 2.5rem) !important; }
.gk-content-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.gk-content-heading h2 { margin:0 0 .35rem; font-size:clamp(1.35rem, 3vw, 1.75rem); font-weight:800; line-height:1.2; }
.gk-content-heading p,.gk-card-footer-note { color:var(--text-secondary); }
.gk-doc-download { flex:0 0 auto; font-size:.875rem; }
.gk-booking-grid h3 { font-weight:750; font-size:1.05rem; }
.gk-booking-grid p { margin-top:.25rem; }
.gk-booking-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.gk-booking-grid section { min-width:0; padding:1.15rem; border:1px solid var(--border); border-radius:16px; background:#fff; }
.gk-booking-grid a,.gk-source-content a,.gk-info-note a,.gk-card-footer-note a { color:var(--primary); text-decoration:underline; text-underline-offset:2px; overflow-wrap:anywhere; }
.gk-info-note { margin-top:1.25rem; padding:1rem 1.15rem; background:var(--warm-light); border-left:4px solid var(--warm); border-radius:12px; }
.gk-card-footer-note { margin-top:1rem; font-size:.925rem; }
.gk-media-link,.gk-poster-link { display:grid; justify-items:start; gap:.75rem; color:var(--primary); font-weight:650; }
.gk-media-link img { width:auto; max-width:100%; height:auto; max-height:34rem; object-fit:contain; object-position:left top; border-radius:14px; border:1px solid var(--border); overflow:hidden; box-shadow:0 0 0 1px color-mix(in srgb,var(--border) 70%,transparent); }
.gk-details-stack { display:grid; grid-template-columns:minmax(0,1fr); gap:.75rem; }
.gk-content-details { width:100%; min-width:0; border:1px solid var(--border); border-radius:16px; background:#fff; overflow:clip; }
.gk-content-details > summary { position:relative; display:flex; align-items:center; cursor:pointer; padding:1rem 1.15rem; list-style:none; }
.gk-content-details > summary::-webkit-details-marker { display:none; }
.gk-content-details > summary strong,.gk-content-details > summary small { display:block; }
.gk-content-details > summary strong { font-size:1.05rem; line-height:1.35; }
.gk-content-details > summary small { margin-top:.2rem; color:var(--text-secondary); font-size:.85rem; }

/* Content disclosures share the contacts chevron, not a plus or native triangle. */
main details:not(.gk-mobile-section):not(.gk-profile-card) > summary {
  list-style: none;
}
main details:not(.gk-mobile-section):not(.gk-profile-card) > summary::-webkit-details-marker,
main details:not(.gk-mobile-section):not(.gk-profile-card) > summary::marker {
  display: none;
  content: none;
}
main details:not(.gk-mobile-section):not(.gk-profile-card):not(:has(> summary .gk-acc-icon)) > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
main details:not(.gk-mobile-section):not(.gk-profile-card):not(:has(> summary .gk-acc-icon)) > summary::after {
  content: "";
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin-left: auto;
  background-color: var(--primary);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center / 18px 18px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center / 18px 18px no-repeat;
  transition: transform 180ms var(--ease-out, ease);
}
main details:not(.gk-mobile-section):not(.gk-profile-card):not(:has(> summary .gk-acc-icon))[open] > summary::after {
  transform: rotate(180deg);
}
main details.card:not(.gk-acc):not(.gk-content-details):not(.gk-mobile-section) {
  padding: 0 !important;
}
main details.card:not(.gk-acc):not(.gk-content-details):not(.gk-mobile-section) > summary {
  padding: 1rem 1.15rem;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.35;
}

.gk-doc-icon {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 12px;
  background-color: var(--accent-soft);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DA101B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V7.5L14.5 2z'/%3E%3Cpolyline points='14,2 14,8 20,8'/%3E%3Cpath d='M12 12v6m0 0l-3-3m3 3l3-3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 20px 20px;
}
.gk-doc-arrow {
  flex: 0 0 18px;
  color: var(--warm);
}
.gk-details-body,.gk-source-content { padding:0 1.15rem 1.25rem; }
.gk-source-content { font-size:.95rem; line-height:1.65; }
.gk-source-content h3 { margin:1.35rem 0 .75rem; font-size:1.1rem; font-weight:750; }
.gk-source-content p { margin:.75rem 0; }
.gk-priority-content > p:not(.gk-source-download) { position:relative; padding-left:1.15rem; }
.gk-priority-content > p:not(.gk-source-download)::before { content:'•'; position:absolute; left:0; color:var(--warm); }
.gk-source-download { margin-top:1.5rem!important; padding-top:1rem; border-top:1px solid var(--border); }
.gk-svo-poster { width:min(100%,760px); max-height:42rem; object-fit:contain; object-position:left top; border-radius:14px; }
.gk-svo-form { margin-top:1.5rem; }
.gk-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.gk-form-grid label>span { display:block; margin-bottom:.35rem; font-size:.875rem; font-weight:650; }
.gk-form-grid input,.gk-form-grid select,.gk-form-grid textarea { width:100%; min-height:3rem; padding:.7rem .8rem; border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--text); }
.gk-form-grid textarea { resize:vertical; }
.gk-form-grid input:focus,.gk-form-grid select:focus,.gk-form-grid textarea:focus { outline:3px solid color-mix(in srgb,var(--primary) 18%,transparent); border-color:var(--primary); }
.gk-form-wide { grid-column:1/-1; }
.gk-svo-form.was-validated :invalid { border-color:var(--accent); background:var(--accent-soft); }
.gk-consent { display:flex; align-items:flex-start; gap:.65rem; margin:1rem 0; font-size:.9rem; }
.gk-consent input { width:1.15rem; height:1.15rem; margin-top:.2rem; flex:0 0 auto; }
.gk-consent a { color:var(--primary); text-decoration:underline; }
.gk-form-alert { margin-bottom:1rem; padding:.85rem 1rem; border:1px solid color-mix(in srgb,var(--accent) 35%,transparent); border-radius:10px; background:var(--accent-soft); color:#8b1118; }
.gk-form-status { margin-top:.75rem; color:var(--warm); font-weight:650; }
.gk-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.gk-poster-link img { width:min(100%,700px); max-height:70rem; object-fit:contain; border-radius:14px; }
.gk-svo-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.gk-svo-gallery a { display:block; border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.gk-svo-gallery img { width:100%; height:auto; display:block; }
.gk-specialist-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.gk-specialist-links a { display:flex; flex-direction:column; gap:.35rem; min-height:7rem; justify-content:center; padding:1.25rem; border:1px solid var(--border); border-radius:16px; color:var(--text); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.gk-specialist-links a:hover { transform:translateY(-3px); border-color:color-mix(in srgb,var(--primary) 35%,var(--border)); box-shadow:0 8px 24px rgba(45,35,25,.1); }
.gk-specialist-links span { color:var(--primary); font-size:.9rem; }
.gk-development-label { display:inline-flex; min-height:2.75rem; align-items:center; padding:.55rem .85rem; border-radius:10px; background:var(--bg-section); color:var(--text-secondary); font-size:.9rem; }
.gk-specialists-source > p > strong { display:block; margin:1.5rem 0 .65rem; font-size:1.1rem; color:var(--text); }
.gk-specialists-source table { display:table; width:100%; margin:1rem 0 1.75rem; border-collapse:separate; border-spacing:0; table-layout:fixed; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.gk-specialists-source tr:first-child { background:var(--primary-soft); font-weight:700; }
.gk-specialists-source td { width:50%; padding:.8rem .9rem; vertical-align:top; border-right:1px solid var(--border); border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.gk-specialists-source td:last-child { border-right:0; }
.gk-specialists-source tr:last-child td { border-bottom:0; }
.gk-specialists-source td p { margin:0 0 .45rem; }
.gk-specialists-source td p:last-child { margin-bottom:0; }
.gk-specialists-source ul { display:grid; gap:.55rem; margin:.75rem 0; padding-left:1.2rem; list-style:disc; }
.gk-specialists-source a { font-weight:600; }

/* Patient information: preserve the poster composition while using the desktop width for the form. */
.gk-media-link img,
.gk-svo-poster {
  display:block;
  border-radius:14px !important;
}
.gk-svo-poster-link { display:block; width:min(100%,760px); color:inherit; }
.gk-svo-vacancy-layout { display:grid; gap:1.5rem; }
.gk-svo-vacancy-layout .gk-svo-poster-link,
.gk-svo-vacancy-layout .gk-svo-form { min-width:0; }

/* Fullscreen image reader. It stays open until the symmetric exit has finished. */
.gk-image-lightbox {
  position:fixed;
  inset:0;
  box-sizing:border-box;
  display:none;
  place-items:center;
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  margin:0;
  padding:clamp(1rem,3vw,2rem);
  overflow:hidden;
  border:0;
  background:transparent;
}
.gk-image-lightbox[open] { display:grid; }
.gk-image-lightbox::backdrop {
  background-color:rgba(18,24,24,0);
  transition:background-color 250ms var(--ease-out);
}
.gk-image-lightbox[open][data-gk-lightbox-state="open"]::backdrop { background-color:rgba(18,24,24,.8); }
.gk-image-lightbox__surface {
  position:relative;
  display:grid;
  place-items:center;
  max-width:100%;
  max-height:100%;
  opacity:0;
  transform:scale(.96);
  transition:opacity 250ms var(--ease-out), transform 250ms var(--ease-out);
}
.gk-image-lightbox[open][data-gk-lightbox-state="open"] .gk-image-lightbox__surface {
  opacity:1;
  transform:scale(1);
}
.gk-image-lightbox__image {
  display:block;
  max-width:min(100%,1100px);
  max-height:calc(100dvh - 4rem);
  border-radius:14px;
  object-fit:contain;
  box-shadow:0 24px 64px rgba(0,0,0,.34);
}
.gk-image-lightbox__close {
  position:absolute;
  top:.75rem;
  right:.75rem;
  display:grid;
  width:2.75rem;
  height:2.75rem;
  place-items:center;
  border:1px solid rgba(255,255,255,.62);
  border-radius:50%;
  background:rgba(20,30,30,.72);
  color:#fff;
  font-size:1.75rem;
  line-height:1;
  cursor:pointer;
  transition:background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.gk-image-lightbox__close:focus-visible { outline:3px solid rgba(255,255,255,.86); outline-offset:3px; }
html.gk-image-lightbox-open { overflow:hidden; }
a[data-gk-lightbox] > img { cursor:zoom-in; }
@media (hover:hover) and (pointer:fine) {
  .gk-image-lightbox__close:hover { transform:scale(1.04); background:rgba(20,30,30,.95); border-color:#fff; }
}
@media (min-width:900px) {
  .gk-svo-vacancy-layout { grid-template-columns:minmax(260px,.72fr) minmax(0,1fr); align-items:start; }
  .gk-svo-vacancy-layout .gk-svo-poster-link,
  .gk-svo-vacancy-layout .gk-svo-poster { width:100%; }
  .gk-svo-vacancy-layout .gk-svo-form { margin-top:0; }
}
@media (max-width:767px) {
  .gk-content-heading { display:grid; }
  .gk-doc-download { width:100%; text-align:center; }
  .gk-booking-grid,.gk-form-grid,.gk-svo-gallery { grid-template-columns:1fr; }
  .gk-specialist-links { grid-template-columns:1fr; }
  .gk-specialists-source { font-size:.875rem; }
  .gk-specialists-source table { display:block; width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:10px; }
  .gk-specialists-source table tbody { display:table; width:44rem; table-layout:fixed; }
  .gk-specialists-source td { padding:.7rem; }
  .gk-content-card { padding:1rem; }
  .gk-content-details > summary { padding:1rem .9rem; }
  .gk-details-body,.gk-source-content { padding:0 .9rem 1rem; }
}
a[href^="tel:"] { white-space: nowrap; }

@media (prefers-reduced-motion:reduce) {
  .gk-image-lightbox::backdrop,
  .gk-image-lightbox__surface { transition-duration:160ms; }
  .gk-image-lightbox__surface { transform:none; }
}

/* ===== Appeal disclosure controls (2026-08-31) ===== */
.gk-appeal-legal > summary {
  transition: color 180ms ease, transform 140ms var(--ease-out);
}
.gk-appeal-legal > summary:hover {
  color: var(--primary-dark);
}
.gk-appeal-legal > summary:active {
  transform: scale(.995);
}
.gk-appeal-legal > summary:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--primary) 32%, transparent);
  outline-offset: -3px;
}
.gk-appeal-legal[open] > summary {
  border-bottom: 1px solid var(--border);
}
.gk-appeal-legal .gk-details-body {
  color: var(--text-secondary);
  font-size: .9rem;
  line-height: 1.6;
}
.gk-appeal-legal .gk-details-body p {
  margin: 0;
}
.gk-appeal-legal .gk-details-body p + p,
.gk-appeal-legal .gk-details-body ul {
  margin-top: .85rem;
}
.gk-appeal-legal .gk-details-body li + li {
  margin-top: .5rem;
}
.gk-form-label.gk-required-label {
  display: flex;
  align-items: baseline;
  gap: .2em;
}
.gk-form-label.gk-required-label .gk-form-label-text {
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 0 !important;
  color: var(--text) !important;
}
.gk-form-label.gk-required-label .gk-required-mark {
  display: inline-block !important;
  flex: 0 0 auto;
  margin-left: 0 !important;
  white-space: nowrap;
  color: var(--accent);
}
.gk-appeal-form:hover {
  transform: none !important;
  box-shadow: 0 2px 12px rgba(45, 35, 25, .06) !important;
}
@media (max-width: 767px) {
  .gk-appeal-legal > summary {
    padding: 1rem .9rem;
  }
  .gk-appeal-legal .gk-details-body {
    padding: 0 .9rem 1rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .gk-appeal-legal > summary {
    transition: none !important;
  }
  .gk-appeal-legal > summary:active {
    transform: none;
  }
}


/* gk-desktop-mobile-menu-hidden: preserve the CTA slot while hiding the mobile trigger on desktop. */
@media (min-width: 1280px) {
  body:not(.bvi-font-150):not(.bvi-font-200) .gk-header button[aria-label="Открыть меню"] {
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

.gk-appeal-form #appealMessage {
  height: auto;
  min-height: 9rem;
  resize: none;
  overflow-y: hidden;
  field-sizing: content;
}
@supports not (field-sizing: content) {
  .gk-appeal-form #appealMessage { overflow-y: auto; }
}

.gk-sched .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.gk-sched {
  min-width: 0;
  max-width: 100%;
}
.gk-sched-stub {
  text-align: center;
  padding: 2.5rem 1.5rem;
  border-radius: 20px;
}
.gk-sched-stub-title {
  font-family: Nunito, sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0 0 .4rem;
}
.gk-sched-stub-text {
  color: var(--text-secondary);
  max-width: 36rem;
  margin: 0 auto 1.25rem;
}
.gk-sched-stub-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
}
.gk-sched-banner {
  background: var(--accent-soft);
  color: var(--text);
  border-radius: 14px;
  padding: .85rem 1rem;
  margin-bottom: 1rem;
  font-size: .92rem;
}
.gk-sched-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  margin-bottom: .5rem;
}
.gk-sched-search {
  flex: 1 1 16rem;
}
.gk-sched-search input {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: .7rem 1rem;
  background: var(--bg-card);
  color: var(--text);
}
.gk-sched-toggle {
  position: relative;
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  isolation: isolate;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--bg-card);
}
.gk-sched-toggle-pill {
  position: absolute;
  top: 3px;
  bottom: 3px;
  left: 3px;
  width: calc(50% - 3px);
  border-radius: 9px;
  background: var(--warm);
  transform: translateX(0);
  transition: transform 180ms var(--ease-out);
  pointer-events: none;
  z-index: 0;
}
.gk-sched-toggle[data-mode="today"] .gk-sched-toggle-pill {
  transform: translateX(100%);
}
.gk-sched-toggle button {
  position: relative;
  z-index: 1;
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  padding: .65rem 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 160ms ease;
}
.gk-sched-toggle button.is-on {
  background: transparent;
  color: #fff;
}
.gk-sched-toggle button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.gk-sched-list {
  transition: opacity 160ms var(--ease-out);
}
.gk-sched-list.is-switching {
  opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
  .gk-sched-toggle-pill,
  .gk-sched-list {
    transition: none;
  }
}
.gk-sched-meta {
  color: var(--text-secondary);
  font-size: .85rem;
  margin-bottom: 1rem;
}
.gk-sched-dd {
  position: relative;
  width: min(100%, 40rem);
  margin-bottom: 1.25rem;
  z-index: 5;
}
.gk-dd-inline.gk-sched-dd {
  width: 100%;
  margin-bottom: 0;
}
.gk-sched-dd-label {
  color: var(--text-secondary);
  font-size: .85rem;
  font-weight: 600;
  margin: 0 0 .4rem;
}
.gk-sched-dd-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  border: 1px solid var(--border);
  background: var(--bg-card);
  color: var(--text);
  border-radius: 12px;
  padding: .75rem 1rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition:
    transform 160ms var(--ease-out),
    border-color 160ms ease,
    background-color 160ms ease;
}
.gk-sched-dd-btn-text {
  min-width: 0;
  overflow-wrap: anywhere;
}
.gk-sched-dd-chev {
  flex: 0 0 auto;
  transition: transform 180ms var(--ease-out);
}
.gk-sched-dd.is-open .gk-sched-dd-chev {
  transform: rotate(180deg);
}
.gk-sched-dd-btn:active {
  transform: scale(.97);
}
.gk-sched-dd-panel {
  position: absolute;
  z-index: 6;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  max-height: min(22rem, 70vh);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(45, 35, 25, .12);
  transform-origin: 24px top;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px) scale(.97);
  transition:
    opacity 180ms var(--ease-out),
    transform 180ms var(--ease-out),
    visibility 0s linear 180ms;
}
.gk-sched-dd.is-open .gk-sched-dd-panel {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  transition-delay: 0s;
}
.gk-sched-dd-list {
  display: grid;
  gap: 2px;
  padding: .4rem;
}
.gk-sched-dd-list [role="option"] {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--text);
  border-radius: 10px;
  padding: .7rem .85rem;
  text-align: left;
  cursor: pointer;
  overflow-wrap: anywhere;
  transition: background-color 160ms ease, color 160ms ease;
}
.gk-sched-dd-list [role="option"].is-on {
  background: var(--primary-soft);
  color: var(--primary-dark);
  font-weight: 600;
}
@media (hover: hover) and (pointer: fine) {
  .gk-sched-dd-btn:hover {
    border-color: var(--primary-light);
  }
  .gk-sched-dd-list [role="option"]:hover {
    background: var(--bg-section);
  }
  .gk-sched-dd-list [role="option"].is-on:hover {
    background: var(--primary-soft);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gk-sched-dd-btn,
  .gk-sched-dd-chev,
  .gk-sched-dd-panel,
  .gk-sched-dd-list [role="option"] {
    transition: none;
  }
  .gk-sched-dd-btn:active {
    transform: none;
  }
  .gk-sched-dd-panel {
    transform: none;
  }
  .gk-sched-dd.is-open .gk-sched-dd-panel {
    transform: none;
  }
}
.gk-sched-dept {
  margin-bottom: 2rem;
}
.gk-sched-dept h2 {
  font-size: 1.25rem;
  margin: 0 0 .75rem;
}
.gk-sched-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--bg-card);
}
.gk-sched-table {
  width: max(100%, 58rem);
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  font-size: .9rem;
}
.gk-sched-table th,
.gk-sched-table td {
  border-bottom: 1px solid var(--border);
  padding: .8rem .7rem;
  vertical-align: top;
}
.gk-sched-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bg-section);
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
}
.gk-sched-table thead th:first-child {
  text-align: left;
  width: 12.5rem;
}
.gk-sched-table thead th span {
  display: block;
  color: var(--text-secondary);
  font-weight: 500;
  font-size: .78rem;
  margin-top: .1rem;
}
.gk-sched-table tbody th {
  position: sticky;
  left: 0;
  z-index: 1;
  width: 12.5rem;
  font-weight: 600;
  text-align: left;
  background: var(--bg-card);
  box-shadow: 1px 0 0 var(--border);
}
.gk-sched-table tbody td {
  text-align: center;
}
.gk-sched-table tbody tr:nth-child(even) th,
.gk-sched-table tbody tr:nth-child(even) td {
  background: var(--bg-section);
}
.gk-sched-table tbody tr:hover th,
.gk-sched-table tbody tr:hover td {
  background: var(--warm-light);
}
.gk-sched-slot {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  align-items: center;
  margin: 0 0 .45rem;
}
.gk-sched-slot:last-child {
  margin-bottom: 0;
}
.gk-sched-time {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  letter-spacing: .01em;
}
.gk-sched-place {
  color: var(--text-secondary);
  font-size: .8rem;
  line-height: 1.3;
}
.gk-sched-empty {
  color: var(--text-secondary);
  text-align: center;
}
.gk-sched-table tbody td.is-weekend,
.gk-sched-table tbody tr:nth-child(even) td.is-weekend {
  background: #f3eee6;
}
.gk-sched-empty-copy {
  color: var(--text-secondary);
}
.gk-sched-today {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .45rem;
}
.gk-sched-today li {
  display: grid;
  grid-template-columns: 7.5rem 1fr auto;
  gap: .6rem;
  padding: .7rem .85rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-card);
}
.gk-sched-today .gk-sched-time {
  font-weight: 700;
}
.gk-sched-mobile {
  display: none;
  gap: .75rem;
}
.gk-sched-mcard {
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: .9rem;
  background: var(--bg-card);
}
.gk-sched-mcard h3 {
  margin: 0 0 .55rem;
  font-size: 1rem;
}
.gk-sched-mday {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  padding: .4rem 0;
  border-top: 1px solid var(--border);
  font-size: .86rem;
}
.gk-sched-mday .gk-sched-slot {
  align-items: flex-start;
}
.gk-sched-mday.is-off {
  color: var(--text-secondary);
}
@media (max-width: 900px) {
  .gk-sched-table-wrap { display: none !important; }
  .gk-sched-mobile { display: grid !important; }
  .gk-sched-today li { grid-template-columns: 1fr; }
  .gk-sched-dd { width: 100%; }
  .gk-sched-toolbar { flex-direction: column; align-items: stretch; }
  .gk-sched-search { flex: none; }
  .gk-sched-toggle { width: 100%; box-sizing: border-box; }
  .gk-sched-toggle button { flex: 1; min-width: 0; }
}

/* BVI: расписание. селекторы нарочно тяжелее глобального
   `body.bvi-active > :not(...) *` (0,4,2), иначе фон/цвет не пробиваются. */
body.bvi-active .gk-sched .gk-sched-banner,
body.bvi-active .gk-sched .gk-sched-stub,
body.bvi-active .gk-sched .gk-sched-mcard,
body.bvi-active .gk-sched .gk-sched-today li {
  color: var(--bvi-text) !important;
  background: var(--bvi-surface) !important;
  border: 2px solid var(--bvi-border) !important;
  box-shadow: none !important;
  max-width: none !important;
}
body.bvi-active .gk-sched .gk-sched-toolbar {
  gap: .6rem;
}
body.bvi-active .gk-sched .gk-sched-toggle {
  overflow: visible;
  border: 0;
  gap: .4rem;
  display: inline-flex;
  flex-wrap: wrap;
}
body.bvi-active .gk-sched .gk-sched-toggle button,
body.bvi-active .gk-sched .gk-sched-dd-btn,
body.bvi-active .gk-sched .gk-sched-dd-list [role="option"] {
  min-height: 44px !important;
  border-radius: 6px !important;
  font-weight: 700 !important;
  white-space: normal !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
body.bvi-active .gk-sched .gk-sched-toggle-pill {
  display: none !important;
}
body.bvi-active .gk-sched .gk-sched-toggle button.is-on,
body.bvi-active .gk-sched .gk-sched-dd-list [role="option"].is-on {
  color: var(--bvi-bg) !important;
  background: var(--bvi-text) !important;
  border-color: var(--bvi-text) !important;
}
body.bvi-active .gk-sched .gk-sched-dd-panel,
body.bvi-active .gk-sched .gk-sched-dd-btn {
  color: var(--bvi-text) !important;
  background: var(--bvi-surface) !important;
  border: 2px solid var(--bvi-border) !important;
  box-shadow: none !important;
}
body.bvi-active .gk-sched .gk-sched-dd-list [role="option"] {
  color: var(--bvi-text) !important;
  background: transparent !important;
}
body.bvi-active .gk-sched .gk-sched-meta,
body.bvi-active .gk-sched .gk-sched-place,
body.bvi-active .gk-sched .gk-sched-empty,
body.bvi-active .gk-sched .gk-sched-empty-copy,
body.bvi-active .gk-sched .gk-sched-mday.is-off,
body.bvi-active .gk-sched .gk-sched-table thead th span {
  color: var(--bvi-muted) !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 2px solid var(--bvi-border) !important;
  border-radius: 0 !important;
  background: var(--bvi-bg) !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table {
  display: table !important;
  width: max(100%, 64rem) !important;
  max-width: none !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
  font-size: 1em !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table thead { display: table-header-group !important; }
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tbody { display: table-row-group !important; }
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tr { display: table-row !important; }
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table th,
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table td {
  display: table-cell !important;
  color: var(--bvi-text) !important;
  background: var(--bvi-bg) !important;
  border: 2px solid var(--bvi-border) !important;
  padding: .65em .55em !important;
  white-space: normal !important;
  vertical-align: top !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bvi-control-bg) !important;
  font-weight: 800 !important;
  text-align: center !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table thead th:first-child,
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tbody th {
  position: sticky;
  left: 0;
  z-index: 3;
  min-width: 9em;
  max-width: 16em;
  text-align: left !important;
  font-weight: 800 !important;
  background: var(--bvi-control-bg) !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tbody tr:nth-child(even) th,
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tbody tr:nth-child(even) td {
  background: var(--bvi-control-bg) !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tbody td.is-weekend,
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tbody tr:nth-child(even) td.is-weekend {
  background: var(--bvi-control-bg) !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tbody tr:hover th,
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table tbody tr:hover td {
  background: var(--bvi-control-bg) !important;
}
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table thead th span,
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table .gk-sched-slot,
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table .gk-sched-time,
body.bvi-active .gk-sched .gk-sched-table-wrap .gk-sched-table .gk-sched-place {
  background-color: transparent !important;
}
body.bvi-active .gk-sched .gk-sched-slot {
  align-items: flex-start;
}
body.bvi-active .gk-sched .gk-sched-time {
  font-weight: 800 !important;
  color: var(--bvi-text) !important;
}
body.bvi-active .gk-sched .gk-sched-today li {
  grid-template-columns: minmax(7rem, auto) 1fr;
}
body.bvi-active .gk-sched .gk-sched-mday {
  border-top-color: var(--bvi-border) !important;
}

/* крупный шрифт: недельная сетка не влезает — карточки, как на узком экране */
body.bvi-active.bvi-font-150 .gk-sched .gk-sched-table-wrap,
body.bvi-active.bvi-font-200 .gk-sched .gk-sched-table-wrap { display: none !important; }
body.bvi-active.bvi-font-150 .gk-sched .gk-sched-mobile,
body.bvi-active.bvi-font-200 .gk-sched .gk-sched-mobile { display: grid !important; }
body.bvi-active.bvi-font-150 .gk-sched .gk-sched-today li,
body.bvi-active.bvi-font-200 .gk-sched .gk-sched-today li { grid-template-columns: 1fr !important; }
