/* Единая оболочка gor-nn.ru — header/footer/nav/CTA. Не заменяет контентные стили страниц. */
:root {
  --gs-brand: #C2410C;
  --gs-brand-2: #EA580C;
  --gs-brand-soft: #FFF7ED;
  --gs-ink: #0F172A;
  --gs-muted: #475569;
  --gs-line: #E2E8F0;
  --gs-bg: #FFFFFF;
  --gs-radius: 14px;
  --gs-max: 1200px;
  --gs-font: 'Inter', 'Open Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
.gs-skip {
  position: absolute; left: 12px; top: -80px; z-index: 10001;
  background: #fff; color: var(--gs-ink); padding: 10px 16px; border-radius: 10px;
  font: 600 14px/1.2 var(--gs-font); box-shadow: 0 8px 24px rgba(15,23,42,.18);
}
.gs-skip:focus { top: 12px; }
#cookieNotice[hidden], #acceptCookies[hidden], #cookieAccept[hidden] { display: none !important; }
.gs-container { width: 100%; max-width: var(--gs-max); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }

/* top bar */
.gs-topbar { background: var(--gs-ink); color: #E2E8F0; font: 500 12.5px/1.4 var(--gs-font); }
.gs-topbar__in { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.gs-topbar__left, .gs-topbar__right { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.gs-topbar a { color: #fff; text-decoration: none; font-weight: 700; }
.gs-topbar a:hover { color: #FDBA74; }
.gs-topbar__dot { color: #FB923C; }

/* header */
.gs-header {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--gs-line);
  box-shadow: 0 6px 24px rgba(15,23,42,.06);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.gs-header__in { min-height: 74px; display: flex; align-items: center; gap: 22px; }
.gs-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--gs-ink); font: 800 21px/1 var(--gs-font); letter-spacing: -.4px; white-space: nowrap; }
.gs-brand__mark {
  width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--gs-brand-2), var(--gs-brand)); color: #fff;
  font: 800 16px/1 var(--gs-font); box-shadow: 0 6px 14px rgba(194,65,12,.25);
}
.gs-brand__plus { color: var(--gs-brand-2); }
.gs-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.gs-nav a {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 11px;
  border-radius: 9px; color: #1E293B; text-decoration: none;
  font: 600 14px/1.2 var(--gs-font); white-space: nowrap;
}
.gs-nav a:hover, .gs-nav a[aria-current="page"] { background: var(--gs-brand-soft); color: var(--gs-brand); }
.gs-header__side { display: flex; align-items: center; gap: 12px; margin-left: 12px; }
.gs-phone { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; white-space: nowrap; }
.gs-phone a { color: var(--gs-ink); text-decoration: none; font: 800 15px/1.2 var(--gs-font); }
.gs-phone span { color: var(--gs-muted); font: 500 11px/1.3 var(--gs-font); }
.gs-cta, .gs-mobilebar__cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 42px; padding: 0 17px; border: 0; border-radius: 10px;
  background: var(--gs-brand); color: #fff; text-decoration: none;
  font: 700 13.5px/1.2 var(--gs-font); cursor: pointer;
  box-shadow: 0 6px 14px rgba(194,65,12,.18);
}
.gs-cta:hover, .gs-mobilebar__cta:hover { background: #9A3412; color: #fff; }
.gs-burger { display: none; width: 42px; height: 42px; border: 1px solid var(--gs-line); border-radius: 10px; background: #fff; color: var(--gs-ink); font-size: 22px; cursor: pointer; }

/* mobile nav */
@media (max-width: 1100px) {
  .gs-header__in { min-height: 66px; gap: 14px; }
  .gs-phone { display: none; }
  .gs-burger { display: inline-grid; place-items: center; margin-left: auto; }
  .gs-nav {
    display: none; position: fixed; left: 12px; right: 12px; top: 104px; z-index: 1001;
    flex-direction: column; align-items: stretch; gap: 2px; margin: 0; padding: 12px;
    background: #fff; border: 1px solid var(--gs-line); border-radius: 16px;
    box-shadow: 0 22px 50px rgba(15,23,42,.18); max-height: calc(100vh - 140px); overflow: auto;
  }
  .gs-nav.open, .gs-nav.active, .gs-nav.nav--open, .gs-nav.is-open { display: flex; }
  .gs-nav a { min-height: 44px; padding: 0 14px; font-size: 15px; }
  .gs-cta { display: none; }
  .gs-header__side { margin-left: 0; }
}
@media (max-width: 520px) {
  .gs-container { padding: 0 16px; }
  .gs-topbar__left { display: none; }
  .gs-topbar__in { justify-content: center; min-height: 31px; }
  .gs-topbar__right { gap: 10px; font-size: 11.5px; }
  .gs-brand { font-size: 19px; }
  .gs-brand__mark { width: 34px; height: 34px; }
  .gs-nav { top: 98px; }
}

/* footer */
.gs-footer { background: #0B1220; color: #CBD5E1; margin-top: 56px; font: 400 14px/1.65 var(--gs-font); }
.gs-footer__main { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1.15fr; gap: 38px; padding: 48px 0 34px; }
.gs-footer h3 { margin: 0 0 14px; color: #fff; font: 700 15px/1.2 var(--gs-font); }
.gs-footer p { margin: 0 0 10px; color: #94A3B8; }
.gs-footer a { color: #CBD5E1; text-decoration: none; }
.gs-footer a:hover { color: #FDBA74; }
.gs-footer__brand { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; color: #fff; font: 800 20px/1 var(--gs-font); }
.gs-footer__nav { display: grid; gap: 7px; }
.gs-footer__contacts { display: grid; gap: 7px; }
.gs-footer__contacts a { font-weight: 700; color: #fff; }
.gs-footer__bottom { border-top: 1px solid rgba(148,163,184,.2); padding: 18px 0 24px; display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; color: #94A3B8; font-size: 12.5px; }
.gs-footer__bottom a { color: #CBD5E1; }
@media (max-width: 900px) {
  .gs-footer__main { grid-template-columns: 1fr 1fr; gap: 28px; padding-top: 36px; }
}
@media (max-width: 560px) {
  .gs-footer__main { grid-template-columns: 1fr; gap: 24px; }
  .gs-footer { margin-bottom: 58px; }
  .gs-footer__bottom { padding-bottom: 18px; }
}

/* mobile action bar */
.gs-mobilebar { display: none; }
@media (max-width: 700px) {
  .gs-mobilebar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1200;
    display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 1px;
    background: var(--gs-line); border-top: 1px solid var(--gs-line);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .gs-mobilebar a {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    min-height: 54px; background: #fff; color: var(--gs-ink);
    text-decoration: none; font: 700 12.5px/1.2 var(--gs-font);
  }
  .gs-mobilebar a:first-child { color: var(--gs-brand); }
  .gs-mobilebar .gs-mobilebar__cta { color: #fff; background: var(--gs-brand); }
  body.gs-shell-ready { padding-bottom: 0; }
}

/* ── Мобильная панель и cookie-баннер: панель всегда сверху и кликабельна ── */
.gs-mobilebar { z-index: 200000; }

@media (max-width: 700px) {
  /* место под фиксированную панель, чтобы футер не уезжал под неё */
  body.gs-shell-ready { padding-bottom: calc(58px + env(safe-area-inset-bottom)) !important; }
  .gs-footer { margin-bottom: 0; }

  /* cookie-баннер стоит НАД панелью, не перекрывает её и не занимает полэкрана */
  .cookie-consent {
    bottom: calc(58px + env(safe-area-inset-bottom)) !important;
    z-index: 190000 !important;
    max-height: 40vh;
    overflow: auto;
    padding: 8px 12px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }
  .cookie-consent__in { gap: 8px !important; }
  .cookie-consent__btns { width: 100%; }
  .cookie-consent__btns button { flex: 1 1 46%; min-height: 44px; }
  .cookie-settings-btn { bottom: calc(66px + env(safe-area-inset-bottom)) !important; z-index: 190001; }

  /* тач-таргеты: ссылки в футере и карточках — не меньше 44 px по высоте */
  .gs-footer__nav a,
  .gs-footer__contacts a,
  .gs-footer__bottom a,
  .service-link,
  .breadcrumbs a,
  .breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }

  .gs-mobilebar a { min-height: 54px; }

  /* чат-кнопки не должны прятаться за панелью */
  #chatWidget, .chat-widget, #chatToggle { z-index: 200001; }
  #chatWidget, .chat-widget { bottom: calc(66px + env(safe-area-inset-bottom)) !important; }
}

/* Тёмная тема старого шаблона не должна «съедать» контраст панели */
@media (prefers-color-scheme: dark) {
  .gs-mobilebar a { background: #0B1220; color: #E2E8F0; }
  .gs-mobilebar .gs-mobilebar__cta { background: var(--gs-brand); color: #fff; }
}
