/* =================== HEADER (устойчивый и чистый) ======================= */
:root{
  --hdr-h: clamp(56px, 6.2vw, 70px);
  --hdr-pad-x: clamp(14px, 3vw, 24px);
  --hdr-top-pad: 0px;
  --hdr-blur: 10px;

  --hdr-bg-light: rgba(255,255,255,.86);
  --hdr-bg-dark: rgba(12,16,18,.54);

  --hdr-line: color-mix(in srgb, currentColor 18%, transparent);
  --hdr-shadow: 0 6px 20px rgba(0,0,0,.06);
  --hdr-hairline: color-mix(in srgb, currentColor 18%, transparent);
}

/* База */
.site-header{
  position: sticky; top: 0; z-index: 1000; isolation:isolate;
  padding-top: var(--hdr-top-pad);
  background: var(--header-bg, var(--hdr-bg-light));
  -webkit-backdrop-filter: blur(var(--hdr-blur));
  backdrop-filter: blur(var(--hdr-blur));
  border-bottom: 1px solid var(--header-line, var(--hdr-line));
  box-shadow: var(--hdr-shadow);
  color: var(--header-text, #0b0d0e);
}
[data-theme="dark"] .site-header{ --header-bg: var(--hdr-bg-dark); }

/* ===== ВЕРХНИЙ ЭТАЖ ===== */
.site-header .utilitybar{
  position: relative;
  min-height: var(--hdr-h);
  padding-inline: var(--hdr-pad-x);
  display: flex; align-items: center; justify-content: center; gap: 12px;
}
.site-header .utilitybar__left,
.site-header .utilitybar__right{
  position: absolute; inset-block: 0;
  display: flex; align-items: center; gap: 12px;
}
.site-header .utilitybar__left { left:  var(--hdr-pad-x); }
.site-header .utilitybar__right{ right: var(--hdr-pad-x); }

.site-header .logo.brand--center{
  position: relative; transform: none;
  display: inline-flex; align-items: center; z-index: 2;
  margin-inline: 0; float: none;
}

/* ===== НИЖНИЙ ЭТАЖ (desktop) ===== */
.site-header .mainnav{
  position: relative;
  min-height: clamp(46px, 5.2vw, 58px);
  padding-inline: var(--hdr-pad-x);
  max-width: var(--container, 1320px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  border-top: 1px solid var(--hdr-hairline);
  box-shadow: none;
}
.site-header .mainnav .primary{
  grid-column: 2; justify-self: center;
  display:flex; align-items:center; column-gap: clamp(14px,1.6vw,20px); flex-wrap:nowrap;
}
.site-header .mainnav > .brand{ grid-column:1; justify-self:start; }
.site-header .mainnav > .burger,
.site-header .mainnav > .nav-toggle{ grid-column:3; justify-self:end; }

.site-header .primary a{
  position:relative; color:#0B1A1D; white-space:nowrap; text-decoration:none;
  font-size: clamp(14px, 1.05vw, 16px);
  padding:10px 12px; border-radius:10px; transition:color .2s ease;
}
.site-header .primary a::after{
  content:""; position:absolute; left:50%; bottom:4px; width:0; height:2px;
  background:#123C43; opacity:.9; transition:width .25s,left .25s;
}
.site-header .primary a:hover{ color:#123C43; }
.site-header .primary a:hover::after,
.site-header .primary a[aria-current="page"]::after{ width:100%; left:0; }

/* ===== Поиск/телефон/чипы (общие стили) ===== */
.site-header .u-search{
  display:inline-flex; align-items:center; gap:8px;
  background:#fff; border:1px solid rgba(0,0,0,.12);
  border-radius:999px; padding:4px;
}
.site-header .u-search__toggle{ inline-size:36px; block-size:36px; display:grid; place-items:center; border:none; background:transparent; color:#0B1A1D; }
.site-header .u-search__input{
  inline-size: clamp(0px, 16vw, 280px); max-width:280px;
  padding:9px 10px; border:none; outline:none; background:transparent; color:#0B1A1D; font-size:14px;
  transition: inline-size .25s ease;
}
.site-header .u-search--collapsed .u-search__input{ inline-size:0; padding-inline:0; }
.site-header .u-search__submit{ padding:8px 12px; border-radius:12px; border:1px solid rgba(0,0,0,.18); background:transparent; color:#0B1A1D; }
@media (max-width:1100px){ .site-header .u-search__submit{ display:none; } }

@media (max-width:1280px){
  .site-header .u-search__input{
    inline-size: clamp(0px, 14vw, 220px);
    max-width:220px;
  }
}

.site-header .u-phone{ color:#0B1A1D; text-decoration:none; font-weight:800; white-space:nowrap; }

.site-header .chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 12px; border:1px solid rgba(0,0,0,.12); border-radius:999px;
  background:#fff; color:#0B1A1D; text-decoration:none;
  transition:border-color .2s, background-color .2s, transform .1s;
}
.site-header .chip:hover{ background:#F6F8F9; border-color:rgba(18,60,67,.35); }
.site-header .chip:active{ transform:translateY(1px); }
.site-header .chip__badge{ background:#123C43; color:#fff; border-radius:12px; padding:0 6px; font-size:12px; line-height:18px; }
.site-header .chip__ico{ display:block; }

/* ===== BURGER (premium squircle with robust icon) ======================= */
.site-header .burger{
  --ico-w: 20px;
  --ico-h: 2px;
  --ico-gap: 6px;
  position: relative;
  inline-size:44px; block-size:44px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:14px;
  background: color-mix(in srgb, #ffffff 92%, transparent);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border:1px solid rgba(12,16,18,.10);
  box-shadow:
    0 6px 18px rgba(0,0,0,.10),
    inset 0 0 0 1px rgba(255,255,255,.55);
  color:#0b0d0e;
  transition: box-shadow .2s ease, border-color .2s ease, background-color .2s ease, transform .12s ease;
  padding:0; overflow:hidden; z-index:3;
}
.site-header .burger::before,
.site-header .burger::after{
  content:"";
  position:absolute; left:50%; top:50%;
  width:var(--ico-w); height:var(--ico-h);
  background: currentColor; border-radius:2px;
  transform: translate(-50%,-50%);
  transition: transform .24s cubic-bezier(.2,.8,.2,1), opacity .18s ease;
}
.site-header .burger::before{
  box-shadow:
    0 calc(-1*var(--ico-gap)) 0 0 currentColor,
    0 0 0 0 currentColor,
    0 var(--ico-gap) 0 0 currentColor;
}
.site-header .burger::after{ opacity:0; }
.site-header .burger:hover{
  border-color: color-mix(in srgb, #0c7a43 24%, transparent);
  box-shadow:
    0 8px 22px rgba(0,0,0,.12),
    inset 0 0 0 1px rgba(255,255,255,.60),
    0 0 0 3px color-mix(in srgb, #0c7a43 20%, transparent);
}
.site-header .burger:active{ transform: translateY(.5px); }
.site-header .burger[aria-expanded="true"]::before{
  box-shadow:none;
  transform: translate(-50%,-50%) rotate(45deg);
}
.site-header .burger[aria-expanded="true"]::after{
  opacity:1;
  transform: translate(-50%,-50%) rotate(-45deg);
}
[data-theme="dark"] .site-header .burger{
  background: color-mix(in srgb, #0f1417 82%, transparent);
  border-color: rgba(255,255,255,.08);
  color:#e6eef2;
  box-shadow:
    0 10px 24px rgba(0,0,0,.35),
    inset 0 0 0 1px rgba(255,255,255,.06);
}
[data-theme="dark"] .site-header .burger:hover{
  box-shadow:
    0 12px 30px rgba(0,0,0,.42),
    inset 0 0 0 1px rgba(255,255,255,.10),
    0 0 0 3px color-mix(in srgb, #0c7a43 22%, transparent);
}

/* ===== Адрес-пилюля (desktop) ===== */
.site-header .utilitybar{ padding-bottom: 4px; }
.site-header .logo-subline{
  position:absolute; bottom:6px; font-size:11.5px; line-height:1.2;
  color:#0f172a; text-decoration:none; white-space:nowrap;
  padding:4px 10px 4px 22px; border-radius:999px; border:1px solid var(--hdr-line);
  background: color-mix(in oklab, var(--surface, #fff) 96%, transparent);
  box-shadow:0 1px 0 rgba(0,0,0,.03);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path fill='%23123C43' d='M12 2a7 7 0 0 1 7 7c0 4.2-4.5 9.5-6.3 11.5a1 1 0 0 1-1.4 0C9.5 18.5 5 13.2 5 9a7 7 0 0 1 7-7zm0 4a3 3 0 1 0 0 6 3 3 0 0 0 0-6z'/></svg>");
  background-repeat:no-repeat; background-size:12px 12px; background-position:8px 50%;
}

/* Фокус */
.site-header .primary a:focus-visible,
.chip:focus-visible{ outline: none; box-shadow: 0 0 0 3px rgba(18,60,67,.18); border-radius: 10px; }
@media (max-width:1120px){ .site-header .primary a{ font-size:14px; padding:8px 8px; } }

/* =================== МОБИЛЬНАЯ КОМПОНОВКА =================== */
@media (max-width:1024px){
  .site-header .mainnav,
  .site-header > nav{ display:inline-flex; }

  .site-header .utilitybar{
    position: relative;
    display:grid;
    grid-template-columns: 1fr auto;          /* центр | бургер */
    grid-template-rows: auto auto auto;
    grid-template-areas:
      "brand burger"
      "addr  burger"
      "act   burger";
    justify-items:center; align-items:center;
    gap: 2px 12px;
    padding: max(10px, env(safe-area-inset-top)) var(--hdr-pad-x) 10px;
    border-bottom: none;
  }
  /* лёгкая тень при прокрутке */
  .site-header.scrolled{ box-shadow: var(--hdr-shadow); }
  /* тонкая линия-разделитель — гарантированно видна на любом фоне */
  .site-header .utilitybar::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
    background: var(--hdr-hairline); pointer-events:none;
  }

  .site-header .utilitybar__left,
  .site-header .utilitybar__right{ display:none; }

  .site-header .brand, .site-header .logo{ grid-area: brand; }
  .site-header .brand img, .site-header .logo img{ height:42px; width:auto; }

  .site-header .logo-subline{
    grid-area: addr; position: static; transform:none; margin:0;
    font-size:11px; line-height:1.15;
    padding:3px 9px 3px 20px; border-radius:999px;
    max-width:max-content; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }

  .site-header .action-strip{
    grid-area: act;
    display:flex; align-items:center; gap:10px;
    width:100%; padding-right:64px;           /* вырез под увеличенный бургер */
  }
  .site-header .action-strip .chip{ height:30px; padding:6px 8px; border-radius:12px; font-size:0; }
  .site-header .action-strip .chip__badge{ font-size:11px; line-height:16px; padding:0 6px; }

  .site-header .action-strip :is([href^="tel:"], .u-phone, .phone, .tel){
    margin-left:auto; display:inline-flex; align-items:center;
    min-height:34px; font-weight:800; font-size:12.5px; letter-spacing:-.01em;
    padding:8px 12px; border-radius:12px;
    border:1px solid var(--hdr-line);
    background:color-mix(in srgb, currentColor 6%, transparent);
    color:inherit; text-decoration:none;
  }

  .site-header .utilitybar{ position:relative; }
  .site-header .utilitybar .burger,
  .site-header .utilitybar .nav-toggle{
    position:absolute; right:8px; top:8px;
    width:48px; height:48px;
    display:inline-flex; align-items:center; justify-content:center;
    z-index:6;
  }

  .site-header .mainnav{ display:none; }

  .site-header :not(.action-strip) > :is([href^="tel:"], .u-phone, .phone, .tel),
  .site-header .u-search, .site-header .u-search__toggle{ display:none; }
}

/* На десктопе бургер/полосу не показываем */
@media (min-width:1025px){
  .site-header .action-strip{ display:none; }
  .site-header .burger{ display:none; }
  .site-header [data-burger],
  .site-header .nav-toggle{ z-index: 1300; }
  .site-header .mainnav{ display:grid; }
}

/* Страховка */
.u-search__submit{ display:none; }
.site-header .utilitybar{ box-shadow:none; }
.sr-only{
  position:absolute!important;
  width:1px!important; height:1px!important;
  padding:0!important; margin:-1px!important;
  overflow:hidden!important; clip:rect(0,0,0,0)!important;
  white-space:nowrap!important; border:0!important;
}

.theme-fab{
  position:fixed;
  right:clamp(16px,3vw,32px);
  bottom:clamp(18px,3vw,40px);
  width:52px;
  height:52px;
  border-radius:999px;
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--surface) 96%, transparent);
  color:var(--text);
  display:grid;
  place-items:center;
  z-index:1100;
  cursor:pointer;
  box-shadow:var(--shadow-soft);
  transition:transform .18s ease, box-shadow .18s ease, background .2s ease;
}
.theme-fab svg{width:22px;height:22px;display:block;}
.theme-fab:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.15);}
.theme-fab:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:3px;}
[data-theme="dark"] .theme-fab{
  background:color-mix(in oklab, var(--surface) 72%, transparent);
  border-color:rgba(255,255,255,.18);
  box-shadow:0 10px 28px rgba(0,0,0,.45);
}

/* ===== Glass CTA: только мобайл кнопка звонка ===== */
.hdr-cta{
  --size: 46px;
  --r: 14px;
  inline-size: var(--size);
  block-size: var(--size);
  display:inline-flex; align-items:center; justify-content:center;
  border-radius: var(--r);
  background: color-mix(in srgb, #ffffff 92%, transparent);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  box-shadow: 0 8px 22px rgba(0,0,0,.12), inset 0 0 0 1px rgba(255,255,255,.55);
  color: currentColor; text-decoration:none;
  transition: transform .08s ease, box-shadow .18s ease, border-color .18s ease;
}
.hdr-cta svg{ width:18px; height:18px; display:block; }
.hdr-cta:hover{ transform: translateY(-1px); }
.hdr-cta:active{ transform: translateY(.5px); }
.hdr-cta:focus-visible{ outline: none; box-shadow:
  0 10px 26px rgba(0,0,0,.16), inset 0 0 0 1px rgba(255,255,255,.7), 0 0 0 4px color-mix(in srgb, #0c7a43 26%, transparent);
}

/* Позиционирование: мобайл слева от бургера, скрыто на ПК */
.hdr-cta--mobile{
  position:absolute; right:64px; top:8px; z-index:6; display:inline-flex;
}
@media (min-width:1025px){
  .hdr-cta--mobile{ display:none; }
}
/* Позиция моб.кнопки звонка и скрытие на ПК/ноутбуках */
.hdr-cta--mobile{
  position:absolute;
  right:64px;  /* левее бургера (48px + 8px отступ) */
  top:8px;
  z-index:6;
  display:inline-flex;
}
.hdr-cta svg{ width:18px; height:18px; } /* компактная иконка */
@media (min-width:1025px){
  .hdr-cta--mobile{ display:none; }
}
/* === FIX: стабильное позиционирование и скрытие круглой кнопки вызова === */
.hdr-cta{
  --size: 46px; --r: 14px;
  inline-size: var(--size); block-size: var(--size);
  display:inline-flex; align-items:center; justify-content:center;
  border-radius: var(--r);
  background: color-mix(in srgb, #ffffff 92%, transparent);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  box-shadow: 0 8px 22px rgba(0,0,0,.12), inset 0 0 0 1px rgba(255,255,255,.55);
  color: currentColor; text-decoration:none;
  transition: transform .08s ease, box-shadow .18s ease, border-color .18s ease;
}
.hdr-cta svg{ width:18px; height:18px; display:block; }
.hdr-cta:hover{ transform: translateY(-1px); }
.hdr-cta:active{ transform: translateY(.5px); }
.hdr-cta:focus-visible{
  outline: none;
  box-shadow: 0 10px 26px rgba(0,0,0,.16), inset 0 0 0 1px rgba(255,255,255,.07), 0 0 0 4px color-mix(in srgb, #0c7a43 26%, transparent);
}

/* Позиция: слева от бургера (48px) на мобилке */
@media (max-width:1024px){
  .hdr-cta--mobile{
    position:absolute; right:64px; top:8px; z-index:6; display:inline-flex;
  }
}
/* Прятать на ПК/ноутах */
@media (min-width:1025px){
  .hdr-cta--mobile{ display:none !important; }
}

/* Улучшаем overlay (совместимо с имеющимся CSS под #nav-overlay.show) */
#nav-overlay{
  position: fixed; inset: 0;
  background: rgba(0,0,0,.38);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  opacity: 0; pointer-events: none; transition: opacity .18s ease;
}
#nav-overlay.show{ opacity:1; pointer-events:auto; }
/* === FIX: мобильная стеклянная кнопка звонка не должна скрываться общим правилом */
@media (max-width:1024px){
  .site-header .utilitybar > .hdr-cta-call{ display:inline-flex; } /* перекрывает rule, скрывающее все tel: */
}

/* Позиция и скрытие на десктопе (если ещё нет ниже) */
@media (max-width:1024px){
  .hdr-cta--mobile{ position:absolute; right:64px; top:8px; z-index:6; }
}
@media (min-width:1025px){
  .hdr-cta--mobile{ display:none; }
}

/* Оверлей (совместимо с JS, который ставит .show) */
#nav-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.38);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  opacity:0; pointer-events:none; transition:opacity .18s;
}
#nav-overlay.show{ opacity:1; pointer-events:auto; }
@media (max-width:1024px){
  /* показываем мобильную кнопку как прямого ребёнка utilitybar */
  .site-header .utilitybar > a.hdr-cta-call[href^="tel:"]{
    display:inline-flex;
  }
}

/* ===== Drawer footer: theme switch sticky bottom ===== */
#site-drawer.drawer{ display:flex; flex-direction:column; min-height:100svh; }
#site-drawer .drawer__content{ flex:1 1 auto; overflow:auto; -webkit-overflow-scrolling:touch; padding:16px var(--hdr-pad-x); }
#site-drawer .drawer__footer{ margin-top:auto; position:sticky; bottom:0; }

.drawer__footer{
  padding:12px var(--hdr-pad-x);
  border-top:1px solid var(--header-line, var(--hdr-line));
  background: var(--header-bg, rgba(255,255,255,.86));
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  z-index:5;
}
[data-theme="dark"] .drawer__footer{ background: var(--header-bg, rgba(14,27,29,.72)); }
.theme-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.theme-row__label{ font-size:14px; color: var(--muted, color-mix(in srgb, currentColor 56%, transparent)); white-space:nowrap; }
.theme-seg{ display:inline-flex; gap:6px; align-items:center; padding:4px; border:1px solid var(--header-line, var(--hdr-line)); border-radius:12px; background: color-mix(in srgb, currentColor 4%, transparent); }
.theme-seg .seg{ display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border:0; background:transparent; color:inherit; border-radius:10px; cursor:pointer; transition:background-color .18s ease, transform .06s ease; }
.theme-seg .seg[aria-pressed="true"]{ background: color-mix(in srgb, var(--accent, #0c7a43) 18%, transparent); }
.theme-seg .seg:active{ transform: translateY(.5px); }
.theme-seg .seg svg{ display:block; }
/* ===== Drawer: приглушённый светлый фон и читаемые ховеры ===== */
#site-drawer {
  background: var(--drawer-bg, var(--header-bg, #fff));
  color: var(--text);
}

/* Светлая тема: не чисто белая, а мягкая поверхность */
:root[data-theme="light"] #site-drawer {
  --drawer-bg: #F6F7F8; /* меньше блика/«пересвета» */
}

/* Тёмная тема берёт стеклянный графит из токена */
:root[data-theme="dark"] #site-drawer {
  --drawer-bg: var(--header-bg, rgba(14,27,29,.72));
}

/* Внутренние отступы секций дровера */
#site-drawer .drawer-head,
#site-drawer .drawer-brand,
#site-drawer .drawer-contacts,
#site-drawer .drawer-actions,
#site-drawer .drawer-search,
#site-drawer .nav-list { padding-inline: var(--hdr-pad-x); }

/* «Вбитые» контакты под логотипом */
#site-drawer .drawer-contacts{
  margin-top: 6px;
  padding: 6px 0 8px;
  border-bottom: 1px solid var(--header-line, rgba(0,0,0,.08));
}
#site-drawer .drawer-contacts .drawer-tel{
  display: block;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: .2px;
  color: var(--text);
  text-decoration: none;
}
#site-drawer .drawer-contacts .drawer-addr{
  margin-top: 2px;
  font-size: 12px;
  color: var(--muted, #5F6B75);
}

/* Поля поиска — соответствуют теме */
#site-drawer .drawer-search input{
  width: 100%;
  background: var(--surface, #fff);
  color: var(--text);
  border: 1px solid var(--header-line, rgba(0,0,0,.08));
}
:root[data-theme="dark"] #site-drawer .drawer-search input{
  background: #0F1317;
  border-color: #2b3238;
}

/* Кнопки-элементы меню — одинаково читабельные в обеих темах */
#site-drawer .nav-list li a{
  display: block;
  padding: 14px 16px;
  border-radius: var(--radius-md, 14px);
  background: var(--nav-chip-bg, #E6E9ED);
  color: var(--nav-chip-text, #0B0D0E);
  border: 1px solid color-mix(in srgb, var(--nav-chip-bg, #E6E9ED) 30%, transparent);
  transition: transform .04s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
:root[data-theme="light"] #site-drawer {
  --nav-chip-bg: #E6E9ED;
  --nav-chip-text: #0B0D0E;
}
:root[data-theme="light"] #site-drawer .nav-list li a:hover,
:root[data-theme="light"] #site-drawer .nav-list li a:focus-visible{
  background: #DDE2E6;
  color: #0B0D0E;
  border-color: #D1D7DC;
}
:root[data-theme="dark"] #site-drawer {
  --nav-chip-bg: #2A2F33;
  --nav-chip-text: #E8EDF1;
}
:root[data-theme="dark"] #site-drawer .nav-list li a:hover,
:root[data-theme="dark"] #site-drawer .nav-list li a:focus-visible{
  background: #32373C;
  color: #E8EDF1;
  border-color: #3A4046;
}

/* Липкий футер темы оставляем как есть (если добавлял ранее) */
