/* =========================================================================
   layout.css — шапка, подвал, служебные обёртки
   ========================================================================= */

/* ============================================================ ШАПКА (135px) */
.site-header {
  height: 13.5rem;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 30;
}
.site-header--overlay {              /* на главной шапка лежит поверх hero */
  position: absolute;
  inset: 0 0 auto 0;
}
.site-header__inner {
  display: flex;
  align-items: center;
  width: 100%;
}

/* --- основное меню: пункты через 42px, перед каждым точка --- */
.main-nav { padding-left: 1rem; }
.main-nav__list { display: flex; align-items: center; gap: 3.96rem; }
.main-nav__link {
  display: flex;
  align-items: center;
  gap: 1.15rem;
  font-size: 1.6rem;
  line-height: 2.2rem;
  white-space: nowrap;
  transition: color .2s ease;
}
.main-nav__link::before {
  content: '';
  flex: none;
  width: .4rem;
  height: .4rem;
  border-radius: 50%;
  background: currentColor;
}
.main-nav__link:hover { color: var(--accent); }
.main-nav__link.is-active { color: var(--muted); }
.main-nav__link.is-active:hover { color: var(--muted); }

/* --- переключатель языка --- */
/* Переключатель языка — тот же элемент, что в макете: глобус и код языка.
   Список раскрывается наведением; падинг снизу с равным отрицательным
   margin'ом продлевает область наведения на зазор до списка, не меняя
   внешний размер элемента — ширина шапки остаётся макетной. */
.lang {
  position: relative;
  margin-left: 6rem;
  padding-bottom: 1.2rem;
  margin-bottom: -1.2rem;
  font-size: 1.6rem;
}
.lang__toggle {
  display: flex;
  align-items: center;
  gap: 1.3rem;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.lang__icon { width: 2.2rem; height: 2.2rem; }

.lang__menu {
  display: none;
  position: absolute;
  /* top: 100% — это низ падинг-бокса .lang, то есть ровно 1.2rem под кнопкой:
     зазор до списка даёт сам падинг, и мёртвой зоны для курсора не остаётся */
  top: 100%;
  left: 0;
  z-index: 40;
  min-width: 8.6rem;
  padding: .8rem 0;
  background: var(--bg-deep);
  border: 1px solid var(--hairline);
}
/* :focus-within рядом с ховером — чтобы список открывался с клавиатуры и на
   тач-экранах шириной от 1024px, где ховера нет, а тап даёт фокус кнопке */
.lang:hover .lang__menu,
.lang:focus-within .lang__menu { display: block; }
.lang__link {
  display: block;
  padding: .8rem 1.6rem;
  transition: color .2s ease, background .2s ease;
}
.lang__link:hover { color: var(--accent); background: rgba(255,255,255,.06); }

/* --- правая группа: соцсети (32px) + 62px + две кнопки --- */
.header-aside {
  margin-left: auto;
  display: flex;
  align-items: center;
}
.header-socials { display: flex; gap: 1.05rem; }
.header-socials__link {
  width: 3.2rem;
  height: 3.2rem;
  transition: transform .2s ease;
}
.header-socials__link img { width: 100%; height: 100%; }
.header-socials__link:hover { transform: translateY(-.2rem); }

.header-cta {
  margin-left: 6.2rem;
  display: flex;
  gap: .2rem;
}

/* --- мобильное меню скрыто на десктопе --- */
.mobile-nav { display: none; }

/* --- бургер (только на мобильных) --- */
.nav-toggle {
  display: none;
  width: 4.4rem;
  height: 4.4rem;
  margin-left: auto;
  position: relative;
  z-index: 60;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: currentColor;
  transition: transform .25s ease, opacity .2s ease;
}
.nav-toggle span { top: 50%; margin-top: -1px; }
.nav-toggle span::before { content: ''; top: -11px; }
.nav-toggle span::after  { content: ''; top: 11px; }
.nav-open .nav-toggle span { background: transparent; }
.nav-open .nav-toggle span::before { transform: translateY(11px) rotate(45deg); }
.nav-open .nav-toggle span::after  { transform: translateY(-11px) rotate(-45deg); }

/* ==================================================================== ПОДВАЛ */
.site-footer {
  position: relative;
  z-index: 2;
  padding-top: 17rem;
  padding-bottom: var(--footer-pb);
  overflow: hidden;
}
.site-footer__inner { position: relative; }

/* «ANDREY KHAZBULATOV» — от самого левого края, без гаттера */
.footer-wm {
  position: absolute;
  left: calc(var(--gutter) - .3rem);
  top: -2.9rem;
  font-size: 17.2rem;
  line-height: 16.9rem;
  font-weight: 300;
  letter-spacing: 0;
  color: var(--watermark);
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
.footer-wm span { display: block; }

.footer-main {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

/* навигация подвала — те же 42px, выравнивание по правому краю */
.footer-nav__list {
  display: flex;
  align-items: center;
  gap: 3.96rem;
}
.footer-nav__link {
  display: flex;
  align-items: center;
  gap: 1.15rem;
  font-size: 1.6rem;
  line-height: 2.2rem;
  white-space: nowrap;
  transition: color .2s ease;
}
.footer-nav__link::before {
  content: '';
  flex: none;
  width: .4rem; height: .4rem;
  border-radius: 50%;
  background: currentColor;
}
.footer-nav__link:hover { color: var(--accent); }
.footer-nav__link.is-active { color: var(--muted); }

.footer-contacts { margin-top: 4.7rem; display: grid; gap: 2.5rem; }
.footer-contacts__row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.3rem;
  font-size: 2rem;
  line-height: 2.4rem;
}
.footer-contacts__row img { width: 2.2rem; height: 2.2rem; flex: none; }

.footer-socials {
  margin-top: 4.4rem;
  display: flex;
  gap: 1rem;
}
.footer-socials__link {
  width: 5.4rem; height: 5.4rem;
  transition: transform .2s ease;
}
.footer-socials__link img { width: 100%; height: 100%; }
.footer-socials__link:hover { transform: translateY(-.3rem); }

.footer-copy {
  margin-top: 4.6rem;
  font-size: 1.4rem;
  line-height: 1.8rem;
  color: #3F3B55;
}
