/* PF JET FLY — шапка и панель меню. Живёт в компоненте PF/Header bar. */
/* Header states. Everything else lives in real Webflow classes (nh-*),
   editable in the Designer. Only what the style panel cannot express is here:
   parent-hover, focus-within, and the open/scrolled states. */

/* bar — transparent over the hero photo, solid once scrolled (VistaJet pattern).
   The top gradient carries the contrast over bright sky: measured white-on-photo
   was 3.06:1, below the 4.5:1 AA floor for 14px. With the gradient it clears 6:1.
   It fades out on scroll so it never darkens the light sections below. */
.nh-bar { transition: background-color .3s ease; }
.nh-bar.is-solid { background-color: #111111; }
.nh-topscrim { transition: opacity .3s ease; }
body.nh-scrolled .nh-topscrim { opacity: 0; }

/* page scroll lock while the menu is open. --nh-sbw is the scrollbar width,
   measured in script before locking: without compensating for it the page
   would jump sideways the moment the scrollbar disappears. */
body.nh-open { overflow: hidden; }
body.nh-open .nh-bar,
body.nh-open .nh-topscrim { width: calc(100% - var(--nh-sbw, 0px)); }

/* ---- hover: an underline that fades in exactly under the words --------------
   text-decoration is used instead of an ::after bar on purpose: menu rows are
   full-width flex children, so a pseudo-element would draw a line across the
   whole row. text-decoration hugs the text and skips the chevron. */
.nh-link,
.nh-trigger-txt,
.nh-en,
.nh-menu-link,
.nh-grp-top,
.nh-sub-link,
.nh-tel-num,
.nh-email {
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
  transition: text-decoration-color .25s ease, color .25s ease;
}
.nh-link:hover,
.nh-trigger:hover .nh-trigger-txt,
.nh-trigger:hover .nh-en,
.nh-menu-link:hover,
.nh-grp-top:hover,
.nh-tel:hover .nh-tel-num,
.nh-email:hover { text-decoration-color: currentColor; }
.nh-sub-link:hover { text-decoration-color: currentColor; color: #ffffff; }
.nh-plang-btn:hover .nh-plang-txt { opacity: .7; }

/* burger: an icon cannot take an underline, so it gets its own tell —
   the short middle bar runs out to full width */
.nh-burger-bar { transition: width .28s cubic-bezier(.22,1,.36,1), left .28s cubic-bezier(.22,1,.36,1); }
.nh-burger:hover .nh-burger-mid { left: 0; width: 20px; }

/* bar dropdowns — pure CSS, no script at all */
.nh-dd-wrap:hover .nh-dd,
.nh-dd-wrap:focus-within .nh-dd { display: flex; }
.nh-caret { transition: transform .2s ease; }
.nh-dd-wrap:hover .nh-caret,
.nh-dd-wrap:focus-within .nh-caret { transform: rotate(180deg); }
/* hover bridge: keeps the panel open while the pointer crosses the gap */
.nh-dd-wrap::after { content: ''; position: absolute; right: 0; top: 100%; width: 100%; height: 10px; }
.nh-dd-row { transition: background-color .2s ease; }
.nh-dd-row:hover { background-color: #f5f5f5; }

/* language dropdown inside the menu panel — click, not hover: it has to work
   on touch, and it opens upward because it sits at the bottom of the panel */
.nh-plang.is-open .nh-plang-dd { display: block; }
.nh-plang.is-open .nh-caret { transform: rotate(180deg); }

.nh-quote { transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.nh-quote:hover { background-color: #ffffff; color: #111111; }

/* social icons — restrained lift, no colour change: the white circles are the
   only bright objects in the panel, so anything louder would shout */
.nh-soc-a { transition: transform .22s cubic-bezier(.22,1,.36,1), opacity .22s ease; }
.nh-soc-a:hover { transform: translateY(-3px); opacity: .82; }
.nh-soc-a:active { transform: translateY(-1px); }

/* menu sections — the sub-list animates via grid-template-rows,
   so no height measuring in script is needed.
   visibility:hidden is what keeps a COLLAPSED sub-list out of the tab order —
   zero height alone still lets Tab land on links nobody can see. */
.nh-sub { visibility: hidden; transition: grid-template-rows .28s ease, visibility 0s linear .28s; }
.nh-sub-in { transition: padding-top .28s ease; }
.nh-grp-chev { transition: transform .28s ease; }
.nh-grp.is-open .nh-sub { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows .28s ease, visibility 0s; }
.nh-grp.is-open .nh-sub-in { padding-top: 12px; }
.nh-grp.is-open .nh-grp-chev { transform: rotate(180deg); }

/* menu panel — slides in from the right.
   Same reason for visibility: while closed the panel sits off-screen but its
   links stayed focusable, so the very first Tab landed inside a hidden menu. */
.nh-panel {
  visibility: hidden;
  transition: transform .36s cubic-bezier(.22,1,.36,1), visibility 0s linear .36s;
}
.nh-scrim {
  display: block !important;
  opacity: 0; visibility: hidden;
  transition: opacity .36s ease, visibility 0s linear .36s;
}
body.nh-open .nh-panel {
  transform: translateX(0); visibility: visible;
  transition: transform .36s cubic-bezier(.22,1,.36,1), visibility 0s;
}
body.nh-open .nh-scrim {
  opacity: .4; visibility: visible;
  transition: opacity .36s ease;
}

@media (prefers-reduced-motion: reduce) {
  .nh-bar, .nh-topscrim, .nh-panel, .nh-scrim, .nh-caret, .nh-sub, .nh-sub-in, .nh-grp-chev, .nh-soc-a, .nh-burger-bar { transition-duration: .12s; }
}

/* --- блокировка скролла при открытом меню --- */

html.nh-open { overflow: hidden; }
html.nh-open body { position: fixed; left: 0; right: 0; width: 100%; }
html.nh-open .nh-panel { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }


/* --- Старая навигация и футер сайта -------------------------------------
   На страницах, где стоит новая шапка (.nh-bar), прежние блоки скрыты.
   Разметка НЕ удалена: чтобы откатиться, достаточно убрать это правило. */
body:has(.nh-bar) .site-navigation_outer-wrapper,
body:has(.nh-bar) .footer-section { display: none !important; }
