/* NIKA Premium 2.3.0 — точечные требования ТЗ НИКА8. */

/* Подменю расположено ниже шапки, прозрачный мост сохраняет hover и focus. */
.site-header { z-index: 120; }
.desktop-nav { align-self: stretch; }
.desktop-menu { height: 100%; }
.desktop-menu > li { display: flex; align-items: center; }
.header-services { position: relative; height: 100%; display: flex; align-items: center; }
.header-services__trigger { display: inline-flex !important; align-items: center; gap: 6px; }
.header-services__panel {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  position: absolute !important;
  top: calc(100% + 12px) !important;
  left: 50%;
  z-index: 130;
  width: 620px;
  min-width: 520px;
  padding: 14px;
  background: #fff !important;
  border: 1px solid var(--nika-gray-200) !important;
  border-top: 3px solid var(--nika-accent) !important;
  border-radius: 0 !important;
  box-shadow: 0 28px 60px rgba(45,55,64,.16) !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-42%, 10px) !important;
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.header-services__panel::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  height: 14px;
}
.header-services:hover .header-services__panel,
.header-services:focus-within .header-services__panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-42%, 0) !important;
}
.header-services__panel a { min-height: 74px; padding: 14px 16px !important; border-radius: 0 !important; background: #f7f9fa; }
.header-services__panel a:hover,
.header-services__panel a:focus-visible { background: #eef2f4 !important; }
.header-services__panel b { display: block; color: var(--nika-graphite); }
.header-services__panel small { color: #6b7780; }

/* Первые экраны помещаются вместе с шапкой в типичный desktop viewport. */
.home-hero,
.home-hero__content,
.karkas-hero,
.karkas-hero__content {
  min-height: clamp(520px, calc(100svh - 150px), 610px) !important;
}
.home-hero__content { padding-top: clamp(30px, 4.5vh, 48px); padding-bottom: 18px; }
.home-hero h1,
.karkas-hero h1 {
  margin-top: 12px;
  margin-bottom: 15px;
  font-size: clamp(40px, 4.7vw, 64px);
  line-height: .98;
}
.home-hero__content > p:not(.eyebrow),
.karkas-hero__lead { font-size: clamp(14px, 1.18vw, 16px); line-height: 1.5; }
.home-hero__actions,
.karkas-hero__actions { margin-top: 18px; }
.home-hero__proof,
.karkas-hero__facts { padding-top: 14px; }
.karkas-hero__content { padding-top: 24px; padding-bottom: 18px; }
.karkas-breadcrumbs { margin-bottom: clamp(12px, 2vh, 22px); }
.karkas-hero__facts { gap: 20px; }
.karkas-hero__facts li { padding-top: 12px !important; }
.karkas-hero__facts b { font-size: 16px; }

.catalog-hero,
.articles-hero { padding: clamp(48px, 5vw, 68px) 0 !important; }
.about-hero { padding: clamp(46px, 5vw, 66px) 0 !important; }
.about-hero img { min-height: 390px !important; }
.inner-hero { min-height: 520px !important; }
.nika-managed-hero { min-height: clamp(520px, calc(100svh - 150px), 610px) !important; }
:is(.catalog-hero,.articles-hero,.about-hero,.inner-hero,.nika-managed-hero) h1 {
  font-size: clamp(40px, 5vw, 64px) !important;
  line-height: 1 !important;
}

/* Правая часть подвала: логичная навигация, ровные колонки и выразительный CTA. */
.footer-grid {
  grid-template-columns: minmax(280px, 1.42fr) minmax(160px, .72fr) minmax(190px, .82fr) minmax(230px, 1fr) !important;
  gap: clamp(32px, 4vw, 62px) !important;
  align-items: start;
  padding-top: 54px;
}
.footer-nav,
.footer-contact { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 0; }
.footer-nav b,
.footer-contact b {
  margin: 0 0 20px;
  color: #344b5b !important;
  font-size: 10px !important;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.footer-nav a {
  position: relative;
  width: fit-content;
  padding: 6px 0;
  color: #536975 !important;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.35;
}
.footer-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 1px;
  background: #e85d2a;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
}
.footer-nav a:hover,
.footer-nav a:focus-visible { color: #e85d2a !important; }
.footer-nav a:hover::after,
.footer-nav a:focus-visible::after { transform: scaleX(1); }
.footer-contact {
  padding-left: clamp(24px, 3vw, 42px);
  border-left: 1px solid #d4dee3;
}
.footer-contact .footer-phone {
  margin: -4px 0 8px;
  color: #2d4351 !important;
  font-size: clamp(24px, 2.2vw, 30px) !important;
  line-height: 1.08;
}
.footer-contact .footer-email {
  overflow-wrap: anywhere;
  color: #536975 !important;
  font-size: 14px;
  font-weight: 650;
}
.footer-contact p { margin: 8px 0 0; color: #71818a !important; font-size: 13px; line-height: 1.5; }
.footer-contact .footer-callback {
  width: fit-content;
  min-height: 0;
  margin-top: 20px;
  padding: 0 0 7px;
  border-bottom: 2px solid #e85d2a;
  color: #e85d2a !important;
  font-size: 10px !important;
  font-weight: 850;
  letter-spacing: .12em;
  line-height: 1.4;
}
.footer-contact .footer-callback:hover,
.footer-contact .footer-callback:focus-visible { color: #c9471b !important; border-bottom-color: #c9471b; }
.footer-bottom {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  gap: 28px;
  align-items: center;
}
.footer-bottom > :last-child { justify-self: end; }
.footer-bottom a { color: #657984 !important; font-weight: 700; }
.footer-bottom a:hover,
.footer-bottom a:focus-visible { color: #e85d2a !important; }

@media (max-width: 1180px) {
  .header-services__panel { width: 560px; }
  .footer-grid { grid-template-columns: minmax(250px, 1.2fr) repeat(2, minmax(150px, .75fr)) minmax(210px, 1fr) !important; gap: 30px !important; }
  .footer-contact { padding-left: 24px; }
}
@media (max-width: 1000px) {
  .home-hero,.home-hero__content,.karkas-hero,.karkas-hero__content { min-height: 570px !important; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 42px 48px !important; }
  .footer-contact { padding-left: 0; border-left: 0; }
}
@media (max-width: 680px) {
  .home-hero,.home-hero__content,.karkas-hero,.karkas-hero__content { min-height: 620px !important; }
  .home-hero__content,.karkas-hero__content { padding-top: 24px; padding-bottom: 17px; }
  .home-hero h1,.karkas-hero h1 { font-size: clamp(36px, 10.8vw, 48px); }
  .about-hero img { min-height: 0 !important; }
  .inner-hero { min-height: 480px !important; }
  .nika-managed-hero { min-height: 590px !important; }
  .footer-grid { grid-template-columns: 1fr !important; gap: 34px !important; }
  .footer-nav,
  .footer-contact { padding-top: 28px; border-top: 1px solid #d4dee3; }
  .footer-contact { padding-left: 0; border-left: 0; }
  .footer-bottom { grid-template-columns: 1fr; gap: 10px; }
  .footer-bottom > :last-child { justify-self: start; }
}
@media (max-width: 390px) {
  .home-hero,.home-hero__content,.karkas-hero,.karkas-hero__content { min-height: 650px !important; }
}
