/*
 * Premium layer — ASD.
 * Аккуратный слой поверх оригинальных стилей: плавность, воздух, премиальность
 * в духе современных архитектурных студий. Ничего не ломает в исходной сетке —
 * только типографика, ховеры, тени и анимации появления.
 */

:root {
  --asd-ink: #101218;
  --asd-muted: #818da3;
  --asd-hairline: rgba(16, 18, 24, 0.12);
  --asd-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --asd-slow: 900ms;
}

html {
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ---------- Навигация: тонкая, разряженная, премиальная ---------- */

.top-menu__item a,
.head-menu__item-link,
.footer-menu__item a {
  position: relative;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: color 400ms var(--asd-ease), opacity 400ms var(--asd-ease);
}

.top-menu__item a::after,
.head-menu__item-link::after,
.footer-menu__item a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.35em;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  opacity: 0.55;
  transition: transform 600ms var(--asd-ease);
}

.top-menu__item a:hover::after,
.head-menu__item-link:hover::after,
.footer-menu__item a:hover::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.langs .lang {
  opacity: 0.45;
  transition: opacity 400ms var(--asd-ease);
}

.langs .lang.active,
.langs .lang:hover {
  opacity: 1;
}

/* ---------- Кнопки: капсула с плавной заливкой ---------- */

.btn,
.feedback__btn,
.compliance-form-clean__btn,
.business-center__button {
  position: relative;
  overflow: hidden;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  border-radius: 999px;
  transition: color 500ms var(--asd-ease), border-color 500ms var(--asd-ease),
    box-shadow 500ms var(--asd-ease), transform 500ms var(--asd-ease);
}

.btn::before,
.feedback__btn::before,
.compliance-form-clean__btn::before,
.business-center__button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--asd-ink);
  transform: translateY(101%);
  transition: transform 600ms var(--asd-ease);
  z-index: 0;
}

.btn > *,
.feedback__btn > *,
.compliance-form-clean__btn > *,
.business-center__button > * {
  position: relative;
  z-index: 1;
}

.btn:hover,
.feedback__btn:hover,
.compliance-form-clean__btn:hover,
.business-center__button:hover {
  color: #fff;
  border-color: var(--asd-ink);
  box-shadow: 0 18px 40px -22px rgba(16, 18, 24, 0.55);
  transform: translateY(-1px);
}

.btn:hover::before,
.feedback__btn:hover::before,
.compliance-form-clean__btn:hover::before,
.business-center__button:hover::before {
  transform: translateY(0);
}

.btn_link {
  border-radius: 0;
}

.btn_link::before {
  display: none;
}

/* ---------- Изображения: спокойный кинематографичный зум ---------- */

.sred-gallery__item,
.residence-block__image,
.apart-block__side-item,
.business-center__image,
.business-center__thumb,
.eco-quarter__image,
.horeca-block__image,
.industrial-block__pair,
.industrial-block__wide,
.industrial-block__tall,
.render-feature__image,
.competencies-showcase__poster,
.masterplan-block__inner,
.main-block__content {
  overflow: hidden;
}

.sred-gallery__item img,
.residence-block__image img,
.apart-block__side-item img,
.business-center__image img,
.business-center__thumb img,
.eco-quarter__image img,
.horeca-block__image img,
.industrial-block__pair img,
.industrial-block__wide img,
.industrial-block__tall img,
.render-feature__image img,
.main-block__content img {
  transition: transform 1400ms var(--asd-ease), filter 1400ms var(--asd-ease);
  will-change: transform;
}

.sred-gallery__item:hover img,
.residence-block__image:hover img,
.apart-block__side-item:hover img,
.business-center__image:hover img,
.business-center__thumb:hover img,
.eco-quarter__image:hover img,
.horeca-block__image:hover img,
.industrial-block__pair:hover img,
.industrial-block__wide:hover img,
.industrial-block__tall:hover img,
.render-feature__image:hover img {
  transform: scale(1.045);
  filter: saturate(1.05);
}

/* ---------- Карточки и блоки: мягкая глубина ---------- */

.business-center__card,
.eco-quarter__card,
.competencies-showcase__item,
.horeca-block__inner,
.residence-block__inner,
.apart-block__inner {
  transition: box-shadow 700ms var(--asd-ease), transform 700ms var(--asd-ease);
}

.business-center__card:hover,
.eco-quarter__card:hover,
.competencies-showcase__item:hover {
  box-shadow: 0 40px 80px -60px rgba(16, 18, 24, 0.65);
  transform: translateY(-2px);
}

/* ---------- Заголовки: чуть больше воздуха ---------- */

.residence-block__title,
.apart-block__title,
.business-center__title,
.eco-quarter__title,
.estate-video__caption-title,
.competencies-showcase__title,
.feedback__title {
  letter-spacing: 0.02em;
}

.residence-block__subtitle,
.apart-block__subtitle,
.eco-quarter__subtitle,
.estate-video__caption-subtitle,
.concepts-video-caption {
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--asd-muted);
}

/* ---------- Формы: тихие поля, аккуратный фокус ---------- */

.compliance-form-clean__field input,
.compliance-form-clean__field textarea,
.form-field input,
.form-field textarea,
.feedback__form input,
.feedback__form textarea,
.business-center__form input,
.business-center__form textarea {
  border-radius: 0;
  background: transparent;
  transition: border-color 450ms var(--asd-ease), box-shadow 450ms var(--asd-ease);
}

.compliance-form-clean__field input:focus,
.compliance-form-clean__field textarea:focus,
.form-field input:focus,
.form-field textarea:focus,
.feedback__form input:focus,
.feedback__form textarea:focus,
.business-center__form input:focus,
.business-center__form textarea:focus {
  outline: none;
  border-color: var(--asd-ink);
  box-shadow: 0 1px 0 0 var(--asd-ink);
}

/* ---------- Появление секций при скролле ---------- */

[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--asd-slow) var(--asd-ease),
    transform var(--asd-slow) var(--asd-ease);
  will-change: opacity, transform;
}

[data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

[data-reveal][data-reveal-delay="1"] { transition-delay: 90ms; }
[data-reveal][data-reveal-delay="2"] { transition-delay: 180ms; }
[data-reveal][data-reveal-delay="3"] { transition-delay: 270ms; }

/* ---------- Прогресс чтения и линия шапки ---------- */

.asd-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  background: var(--asd-ink);
  opacity: 0.85;
  z-index: 9999;
  pointer-events: none;
}

.line_horizontal,
.line_vertical,
.compliance__line {
  background-color: var(--asd-hairline);
}

/* ---------- Уважение к системным настройкам ---------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .sred-gallery__item img,
  .residence-block__image img,
  .business-center__image img,
  .eco-quarter__image img,
  .horeca-block__image img,
  .render-feature__image img {
    transition: none;
  }
}

/* ---------- Экран загрузки ---------- */

html.is-loading,
html.is-loading body {
  overflow: hidden;
}

#nprogress {
  transition: opacity .6s ease, visibility .6s ease;
}

#nprogress.is-done {
  opacity: 0;
  visibility: hidden;
}

#nprogress .loader__bar {
  transition: transform .35s cubic-bezier(.22,.61,.36,1);
}

/* Плавное появление первого экрана — без рывка левой плашки */
.main-block__title-overlay,
.main-block__line {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 1s cubic-bezier(.22,.61,.36,1), transform 1s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}

html:not(.is-loading) .main-block__title-overlay,
html:not(.is-loading) .main-block__line {
  opacity: 1;
  transform: none;
}

html:not(.is-loading) .main-block__title-overlay { transition-delay: .12s; }
html:not(.is-loading) .main-block__line { transition-delay: .22s; }

@media (prefers-reduced-motion: reduce) {
  .main-block__title-overlay,
  .main-block__line {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ---------- Кнопка «Отправить запрос»: чёрная заливка поверх голубой, текст сверху ---------- */

.page_main .compliance-form-clean__btn button {
  background: linear-gradient(#101218, #101218) 0 100% / 100% 0% no-repeat, #a6b4cf;
  transition: background-size 550ms var(--asd-ease), color 550ms var(--asd-ease);
}

.page_main .compliance-form-clean__btn button:hover {
  background-size: 100% 100%;
  color: #fff;
}

/* Форма в блоке компетенций: анимация только внутри самой кнопки */

.page_main .compliance-form-clean__btn {
  overflow: visible;
  border-radius: 0;
}

.page_main .compliance-form-clean__btn::before {
  display: none;
}

.page_main .compliance-form-clean__btn:hover {
  transform: none;
  box-shadow: none;
  border-color: transparent;
}

/* Скрытый блок проверочного вопроса не должен перекрывать кнопку */

.page_main .compliance-form-clean__captcha {
  display: none;
}
