/**
 * Кастомные стили сайта (поверх Tailwind-сборки assets/index-C_uIzFPh.css).
 * Подключать сразу после index-C_uIzFPh.css.
 *
 * Вёрстка в HTML по-прежнему использует классы Tailwind (utility-first) —
 * они остаются в разметке; здесь только то, что вынесено из inline style=""
 * и специфичные блоки (герой, слайдер, меню).
 */

/* Заголовки: medium (500) вместо bold/700 (в т.ч. с Tailwind .font-bold на h1–h6) */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 500;
}

h1.font-bold,
h2.font-bold,
h3.font-bold,
h4.font-bold,
h5.font-bold,
h6.font-bold {
  font-weight: 500;
}

[data-slot="card-title"] {
  font-weight: 500;
}

/* Токены темы (как в среде сборки / макете) */
:root {
  --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
    "Noto Color Emoji";
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --color-red-500: oklch(63.7% 0.237 25.331);
  --color-red-600: oklch(57.7% 0.245 27.325);
  --color-orange-50: oklch(98% 0.016 73.684);
  --color-orange-200: oklch(90.1% 0.076 70.697);
  --color-orange-500: oklch(70.5% 0.213 47.604);
  --color-orange-600: oklch(64.6% 0.222 41.116);
  --color-orange-700: oklch(55.3% 0.195 38.402);
  --color-orange-900: oklch(40.8% 0.123 38.172);
  --color-green-500: oklch(72.3% 0.219 149.579);
  --color-green-600: oklch(62.7% 0.194 149.214);
  --color-emerald-500: oklch(69.6% 0.17 162.48);
  --color-emerald-600: oklch(59.6% 0.145 163.225);
  --color-blue-50: oklch(97% 0.014 254.604);
  --color-blue-200: oklch(88.2% 0.059 254.128);
  --color-blue-500: oklch(62.3% 0.214 259.815);
  --color-blue-600: oklch(54.6% 0.245 262.881);
  --color-blue-700: oklch(48.8% 0.243 264.376);
  --color-blue-900: oklch(37.9% 0.146 265.522);
  --color-purple-500: oklch(62.7% 0.265 303.9);
  --color-purple-600: oklch(55.8% 0.288 302.321);
  --color-gray-50: oklch(98.5% 0.002 247.839);
  --color-gray-100: oklch(96.7% 0.003 264.542);
  --color-gray-200: oklch(92.8% 0.006 264.531);
  --color-gray-400: oklch(70.7% 0.022 261.325);
  --color-gray-500: oklch(55.1% 0.027 264.364);
  --color-gray-600: oklch(44.6% 0.03 256.802);
  --color-gray-700: oklch(37.3% 0.034 259.733);
  --color-gray-800: oklch(27.8% 0.033 256.848);
  --color-gray-900: oklch(21% 0.034 264.665);
  --color-black: #000;
  --color-white: #fff;
  --spacing: 0.25rem;
  --container-sm: 24rem;
  --container-md: 28rem;
  --container-lg: 32rem;
  --container-2xl: 42rem;
  --container-3xl: 48rem;
  --container-4xl: 56rem;
  --container-5xl: 64rem;
  --container-6xl: 72rem;
  --container-7xl: 80rem;
  --text-xs: 0.75rem;
  --text-xs--line-height: calc(1 / 0.75);
  --text-sm: 0.875rem;
  --text-sm--line-height: calc(1.25 / 0.875);
  --text-base: 1rem;
  --text-base--line-height: 1.5;
  --text-lg: 1.125rem;
  --text-lg--line-height: calc(1.75 / 1.125);
  --text-xl: 1.15rem;
  --text-xl--line-height: calc(1.75 / 1.25);
  --text-2xl: 1.5rem;
  --text-2xl--line-height: calc(2 / 1.5);
  --text-3xl: 1.875rem;
  --text-3xl--line-height: 1.2;
  --text-4xl: 2.25rem;
  --text-4xl--line-height: calc(2.5 / 2.25);
  --text-5xl: 3rem;
  --text-5xl--line-height: 1;
  --text-6xl: 3.75rem;
  --text-6xl--line-height: 1;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --tracking-tight: -0.025em;
  --tracking-widest: 0.1em;
  --leading-tight: 1.25;
  --leading-relaxed: 1.625;
  --radius-xs: 0.125rem;
  --radius-2xl: 1rem;
  --radius-3xl: 1.5rem;
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  --blur-sm: 8px;
  --blur-3xl: 64px;
  --aspect-video: 16 / 9;
  --default-transition-duration: 0.15s;
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  --default-font-family: var(--font-sans);
  --default-mono-font-family: var(--font-mono);
  --font-size: 16px;
  --background: #fff;
  --foreground: oklch(14.5% 0 0);
  --card: #fff;
  --card-foreground: oklch(14.5% 0 0);
  --popover: oklch(100% 0 0);
  --popover-foreground: oklch(14.5% 0 0);
  --primary: #030213;
  --primary-foreground: oklch(100% 0 0);
  --secondary: oklch(95% 0.0058 264.53);
  --secondary-foreground: #030213;
  --muted: #ececf0;
  --muted-foreground: #717182;
  --accent: #e9ebef;
  --accent-foreground: #030213;
  --destructive: #d4183d;
  --destructive-foreground: #fff;
  --border: #0000001a;
  --color-border: var(--border);
  --input: transparent;
  --input-background: #f3f3f5;
  --switch-background: #cbced4;
  --font-weight-medium: 500;
  --font-weight-normal: 400;
  --ring: oklch(70.8% 0 0);
  --chart-1: oklch(64.6% 0.222 41.116);
  --chart-2: oklch(60% 0.118 184.704);
  --chart-3: oklch(39.8% 0.07 227.392);
  --chart-4: oklch(82.8% 0.189 84.429);
  --chart-5: oklch(76.9% 0.188 70.08);
  --radius: 0.625rem;
  --sidebar: oklch(98.5% 0 0);
  --sidebar-foreground: oklch(14.5% 0 0);
  --sidebar-primary: #030213;
  --sidebar-primary-foreground: oklch(98.5% 0 0);
  --sidebar-accent: oklch(97% 0 0);
  --sidebar-accent-foreground: oklch(20.5% 0 0);
  --sidebar-border: oklch(92.2% 0 0);
  --sidebar-ring: oklch(70.8% 0 0);
}

@keyframes pulse {
  50% {
    opacity: 0.5;
  }
}

/* Фиксированная шапка до lg: якоря не прячутся под header (высота h-16 / sm:h-[4.5rem] + запас) */
@media (max-width: 639.98px) {
  html {
    scroll-padding-top: calc(4rem + 12px);
  }
}

@media (min-width: 640px) and (max-width: 1023.98px) {
  html {
    scroll-padding-top: calc(4.5rem + 12px);
  }
}

/* --------------------------------------------------------------------------
 * Главная: hero под новый макет (desktop + mobile)
 * -------------------------------------------------------------------------- */
.site-home-hero {
  box-sizing: border-box;
  margin-top: 1.5rem;
  margin-bottom: 2.5rem;
}

.site-home-hero .group {
  min-height: 500px;
}

.site-home-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.10);
}

.site-home-hero-copy-col {
  box-sizing: border-box;
  min-width: 0;
  padding: 52px 40px 42px;
  color: #fff;
  text-align: left;
}

.site-home-hero-copy-inner {
  max-width: 640px;
}

.site-home-hero__title {
  margin: 0 0 18px;
  font-weight: 500;
  font-size: clamp(1rem, 7.0vw + 1.05rem, 3.5rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #fff;
  text-align: left;
}

.site-home-hero__lead {
  margin: 0 0 38px;
  max-width: 540px;
  font-weight: 300;
  font-size: clamp(1rem, 0.22vw + 0.93rem, 1.125rem);
  text-align: left;
  line-height: 1.35;
  color: #fff;
}

.site-home-hero__cta-row {
  display: flex;
}

.site-home-hero__cta {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 270px;
  min-height: 54px;
  padding: 0.875rem 2rem;
  border-radius: 10px;
  background-color: #18ac67;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.1;
  color: #fff;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.site-home-hero__cta:hover {
  background-color: #138454;
}

.site-home-hero__metrics-wrap {
  /* margin-top: auto; */
  width: 100%;
  max-width: 800px;
  padding-top: 80px;
}

.site-home-hero__metrics {
  gap: 42px;
}

@media (min-width: 768px) {
  .site-home-hero__metrics-wrap {
    max-width: none;
  }

  .site-home-hero .site-home-hero__metrics {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
    max-width: none;
    gap: 16px;
  }

  .site-home-hero .site-home-hero__metrics > div {
    flex: 1 1 0;
    min-width: 0;
    text-align: left;
  }
}

.site-home-hero .site-home-hero-metric-num {
  margin-bottom: 4px;
  font-size: clamp(1.8rem, 0.1vw + 1.05rem, 1.175rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #fff;
  text-align: left;
}

.site-home-hero .site-home-hero-metric-cap {
  font-size: clamp(1rem, 0.22vw + 0.92rem, 1.125rem);
  line-height: 1.3;
  font-weight: 300;
  color: #fff;
  text-align: left;
}

@media (min-width: 1024px) {
  .site-home-hero {
    margin-top: 1.5rem;
    margin-bottom: 5rem;
  }

  .site-home-hero .group {
    height: 748px;
    min-height: 748px;
    max-height: 748px;
    border-radius: 10px;
  }

  .site-home-hero-copy-col {
    padding: 104px 48px 34px 65px;
  }

  .site-home-hero-copy-inner {
    max-width: 820px;
  }

  .site-home-hero__title {
    margin-bottom: 40px;
    font-size: 85px;
    line-height: 0.85;
  }

  .site-home-hero__lead {
    margin-bottom: 50px;
    max-width: 430px;
    font-size: 19px;
    line-height: 1.36;
    text-align:left;
  }

  .site-home-hero__cta {
    width: 373px;
    min-width: 373px;
    height: 64px;
    min-height: 64px;
    border-radius: 10px;
    font-size: 17px;
  }

  .site-home-hero__metrics-wrap {
    padding-top: 110px;
  }

  .site-home-hero .site-home-hero-metric-num {
    margin-bottom: 4px;
    font-size: 40px;
    line-height: 1.02;
  }

  .site-home-hero .site-home-hero-metric-cap {
    font-size: 17px;
    line-height: 1.22;
  }
}

@media (min-width: 768px) and (max-width: 1023.98px) {
  .site-home-hero__metrics {
    gap: 12px;
  }
}

/* Главная — #advantages: иконки на светло-сером фоне */
#advantages [data-slot="card-header"] > .site-home-advantage-icon {
  box-sizing: border-box;
  border-width: 1px;
  background-color: #f3f4f6;
  border-color: #f3f4f6;
}

#advantages [data-slot="card"]:hover .site-home-advantage-icon {
  background-color: #e5e7eb;
  border-color: #e5e7eb;
}

/* Цвет stroke через currentColor (классы text-* из Tailwind в .tpl не попадают в сборку) */
#advantages .site-home-advantage-icon--blue svg {
  color: #2563eb;
}
#advantages .site-home-advantage-icon--green svg {
  color: #16a34a;
}
#advantages .site-home-advantage-icon--orange svg {
  color: #ea580c;
}
#advantages .site-home-advantage-icon--emerald svg {
  color: #059669;
}
#advantages .site-home-advantage-icon--purple svg {
  color: #9333ea;
}
#advantages .site-home-advantage-icon--red svg {
  color: #dc2626;
}

@media (max-width: 767.98px) {
  .site-home-hero {
    margin-top: 0;
    margin-bottom: 45px;
    padding: 0;
  }

  .site-home-hero > .container {
    box-sizing: border-box;
    padding-top: 20px;
  }

  .site-home-hero .group {
    min-height: 550px;
    border-radius: 24px;
  }

  .site-home-hero .group > img {
    object-position: 57% 50%;
    filter: none;
  }

  .site-home-hero-copy-col {
    padding: 45px 25px 40px;
    color: #fff;
  }

  .site-home-hero-copy-inner {
    max-width: 100%;
    order: 1;
  }

  .site-home-hero__title {
    margin-bottom: 25px;
    line-height: 1;
    text-align: left;
  }

  .site-home-hero__lead {
    margin-bottom: 10px;
    max-width: 100%;
    line-height: 1.34;
    text-align: left;
  }

  .site-home-hero__cta-row {
    margin-top: auto;
    order: 3;
  }

  .site-home-hero__cta {
    width: 100%;
    min-width: 0;
    min-height: 57px;
    border-radius: 10px;
    background-color: #18ac67;
    color: #fff;
    font-size: clamp(1.05rem, 1.5vw + 0.9rem, 1rem);
  }

  .site-home-hero__cta:hover {
    background-color: #138454;
    color: #fff;
  }

  .site-home-hero__metrics-wrap {
    display: none;
  }

  /* #advantages: иконка и заголовок в одну линию на mobile */
  #advantages [data-slot="card-header"] {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 4px;
    align-items: center;
  }

  #advantages [data-slot="card-header"] > .mb-4 {
    margin-bottom: 0 !important;
    grid-row: 1 / span 2;
    width: 48px !important;
    height: 48px !important;
    border-radius: 14px !important;
  }

  #advantages [data-slot="card-header"] > .mb-4 svg {
    width: 22px !important;
    height: 22px !important;
  }

  #advantages [data-slot="card-title"] {
    grid-column: 2;
    align-self: center;
    margin: 0 !important;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-size: 20px;
    line-height: 1.12;
  }

  #advantages [data-slot="card-header"] > p {
    grid-column: 1 / -1;
    margin-top: 0.125rem !important;
    margin-left: 0 !important;
  }

  #advantages [data-slot="card-content"] {
    padding-top: 0.5rem !important;
  }

  /* Мобильный выравнивание/размеры чеков в карточках преимуществ */
  .site-home-eco-cards [data-slot="card-title"] {
    margin-bottom: 0.25rem !important; /* было mb-2 */
  }

  .site-home-eco-cards svg.lucide-circle-check-big {
    width: 16px !important;
    height: 16px !important;
    margin-top: 0 !important; /* было mt-0.5 */
  }

  #advantages [data-slot="card-content"] li,
  #advantages [data-slot="card-content"] li span {
    font-size: 15px !important;
    line-height: 1.35 !important;
  }

  /* Мобильная типографика: заголовки <=20px, подзаголовки 17px */
  h2.text-4xl {
    font-size: 170% !important;
    line-height: 1 !important;
    font-weight: 500 !important;
  }

  
  [data-slot="card-title"] {
    font-size: 140% !important;
    line-height: 1 !important;
    font-weight: 500 !important;

    margin-bottom: 10px;
  }

  .text-xl.text-gray-600,
  [data-slot="card-header"] > p,
  [data-slot="card-description"] {
    font-size: 15px !important;
    line-height: 1.35 !important;
  }

  .site-stages-process [data-slot="card-header"] {
    min-height: 14.75rem;
    padding-bottom: 1.25rem;
  }

  .site-stages-process [data-slot="card-content"] {
    padding-top: 1rem !important;
  }
}

/* Mobile hard-override: карточки #advantages */
@media (max-width: 767.98px) {
  #projects {
    padding-bottom: 1.75rem !important;
  }

  #advantages {
    padding-top: 1rem !important;
  }

  #advantages .grid > [data-slot="card"] [data-slot="card-header"] {
    display: flex !important;
    flex-wrap: wrap !important;
    column-gap: 10px !important;
    row-gap: 6px !important;
    align-items: center !important;
    padding: 1rem 1rem 0.5rem !important;
  }

  #advantages .grid > [data-slot="card"] [data-slot="card-header"] > .mb-4 {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    margin: 0 !important;
    border-radius: 14px !important;
    flex: 0 0 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #advantages .grid > [data-slot="card"] [data-slot="card-header"] > .mb-4 svg {
    width: 22px !important;
    height: 22px !important;
  }

  #advantages .grid > [data-slot="card"] [data-slot="card-title"] {
    flex: 1 1 calc(100% - 58px) !important;
    align-self: center !important;
    margin: 0 !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;
  }

  #advantages .grid > [data-slot="card"] [data-slot="card-header"] > p {
    flex: 0 0 100% !important;
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.3 !important;
    text-align: left !important;
    color: #4b5563 !important;
  }

  #advantages .grid > [data-slot="card"] [data-slot="card-content"] {
    padding-top: 0.35rem !important;
  }

  /*
   * Технические преимущества: в шапке один ребёнок — обёртка .mb-4 (flex: иконка + блок с h4/p).
   * Не сжимать её до 48×48 (это ломало вёрстку как у #advantages, где .mb-4 — только иконка).
   */
  .site-tech-advantages [data-slot="card-header"] {
    display: block !important;
  }

  .site-tech-advantages [data-slot="card-header"] > .mb-4 {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    margin: 0 0 0.5rem !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    flex: none !important;
  }

  .site-tech-advantages [data-slot="card-header"] > .mb-4 > div:first-child {
    flex-shrink: 0;
  }

  .site-tech-advantages [data-slot="card-header"] > .mb-4 > div:last-child {
    flex: 1 1 auto;
    min-width: 0;
  }

  .site-tech-advantages [data-slot="card-header"] > .mb-4 svg {
    width: 22px !important;
    height: 22px !important;
  }

  .site-tech-advantages [data-slot="card-title"] {
    margin: 0 !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;
  }

  .site-tech-advantages [data-slot="card-header"] p.text-sm {
    margin: 0.25rem 0 0 !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
    text-align: left !important;
    color: #4b5563 !important;
  }
}

/* Фон hero: масштаб только при hover с мышью */
@media (hover: none), (pointer: coarse) {
  .site-home-hero .group > img {
    transform: none !important;
  }
}

@media (min-width: 768px) {
  .site-home-hero {
    min-height: 0;
    height: auto;
    max-height: none;
  }
}

/* Главная: единый стиль кнопок под блоком оплаты (после карточек как на /etapy) */
.site-home-funnel-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.625rem 1.35rem;
  border-radius: 9999px;
  border: 2px solid #e5e7eb;
  background: #fff;
  color: #374151;
  font-size: 0.9375rem;
  font-weight: 600;
  text-align: center;
  transition:
    border-color 0.15s ease,
    color 0.15s ease,
    background-color 0.15s ease;
}

.site-home-funnel-btn:hover {
  border-color: #18ac67;
  color: #18ac67;
}

.site-home-funnel-btn--primary {
  border-color: #18ac67;
  background: #18ac67;
  color: #fff;
}

.site-home-funnel-btn--primary:hover {
  border-color: #138454;
  background: #138454;
  color: #fff;
}

/* Единый модал вместо системных alert() */
.site-ui-alert {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.site-ui-alert__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3, 6, 20, 0.48);
  backdrop-filter: blur(2px);
}

.site-ui-alert__dialog {
  position: relative;
  width: min(520px, 100%);
  border-radius: 1rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 20px 48px rgba(17, 24, 39, 0.28);
  padding: 1.25rem 1.25rem 1rem;
}

.site-ui-alert__title {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.25;
  color: #111827;
}

.site-ui-alert__message {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.45;
  color: #374151;
}

.site-ui-alert__actions {
  margin-top: 1rem;
  display: flex;
  justify-content: flex-end;
}

.site-ui-alert__ok {
  border: 0;
  border-radius: 9999px;
  background: #18ac67;
  color: #fff;
  min-width: 90px;
  padding: 0.625rem 1.25rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
}

.site-ui-alert__ok:hover {
  background: #138454;
}

.site-home-microclimate-text {
  margin-left: calc(4rem + 1.5rem);
  text-indent: 0;
}

/* Мобильный ритм карточек "Технические преимущества" */
@media (max-width: 767.98px) {
  .site-home-figures {
    padding-block: calc(var(--spacing) * 2);
  }

  .site-home-figures [data-slot='card'] {
    background: #f0fdf7;
    border-color: #d1fae5;
    max-height: 33svh;
    overflow: hidden;
  }

  .site-home-figures [data-slot='card'] [data-slot='card-content'] {
    padding: 0.875rem 0.875rem 1rem !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
  }

  .site-home-figures [data-slot='card'] [class*='w-16'][class*='h-16'] {
    width: 2.375rem !important;
    height: 2.375rem !important;
    margin-bottom: 0.25rem !important;
  }

  .site-home-figures [data-slot='card'] h3 {
    margin-bottom: 0.125rem !important;
    font-size: 20px !important;
    line-height: 1.15 !important;
  }

  .site-home-figures [data-slot='card'] .text-3xl {
    margin-bottom: 0.125rem !important;
    font-size: 40px !important;
    line-height: 1.05 !important;
  }

  .site-home-figures [data-slot='card'] p {
    margin: 0;
    font-size: 1rem !important;
    line-height: 1.25 !important;
    line-clamp: 2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Было pt-20 (5rem); уменьшаем на ~30% для мобильного */
  .site-home-houses {
    padding-top: 3.5rem;
  }

  .site-home-contact {
    padding-top: 3.5rem;
  }

  .site-home-microclimate-text {
    margin-top: calc(var(--spacing) * 5);
    margin-bottom: calc(var(--spacing) * 2);
    margin-left: 0;
    text-indent: 0;
  }

  .site-tech-advantages [data-slot='card'] {
    gap: 0.75rem;
  }

  .site-tech-advantages [data-slot='card-header'] {
    padding: 1rem 1rem 0;
  }

  .site-tech-advantages [data-slot='card-content'] {
    padding: 0 1rem 1.5rem;
  }

  .site-tech-advantages [data-slot='card-header'] .mb-4 {
    margin-bottom: 0.5rem;
  }
}

/* --------------------------------------------------------------------------
 * Главная: слайдер проектов (стилизация точек Slick)
 * -------------------------------------------------------------------------- */
.projects-slider .slick-dots {
  display: block;
  bottom: -35px;
}

.projects-slider .slick-dots li button:before {
  font-size: 12px;
  color: #18ac67;
  opacity: 0.25;
}

.projects-slider .slick-dots li.slick-active button:before {
  color: #18ac67;
  opacity: 1;
}

@media (max-width: 640px) {
  .projects-slider .slick-list {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .projects-slider .slick-list::-webkit-scrollbar {
    display: none;
  }

  .projects-slider .slick-dots {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    padding: 0 10px;
    box-sizing: border-box;
    left: 0;
    right: 0;
    margin: 0 auto;
    scrollbar-width: none;
  }

  .projects-slider .slick-dots::-webkit-scrollbar {
    display: none;
  }

  .projects-slider .slick-dots li {
    margin: 0 1px !important;
    width: auto !important;
    min-width: 0;
  }

  .projects-slider .slick-dots li button {
    width: 8px;
    height: 8px;
    padding: 0;
  }

  .projects-slider .slick-dots li button:before {
    font-size: 8px;
    width: 8px;
    height: 8px;
    line-height: 8px;
    position: static;
    display: block;
  }
}

/* --------------------------------------------------------------------------
 * Шапка, мобильное меню, портфолио, карусели, виджет материалов, альт. блок проектов
 * (раньше инжектилось из site-static.js)
 * -------------------------------------------------------------------------- */
@media (max-width: 1023px) {
  /* Без горизонтального скролла: иначе fixed-шапка на всю ширину окна, а контент визуально «уже» из-за полосы прокрутки */
  html {
    overflow-x: hidden;
  }

  body {
    padding-top: calc(4rem + env(safe-area-inset-top));
    overflow-x: hidden;
  }

  /* fixed на header; якорь для абсолютного nav — внутренний ряд с position: relative, не сам header */
  header.site-static-header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    transition: transform 0.22s ease;
    will-change: transform;
  }

  header.site-static-header.site-header-hidden {
    transform: translateY(-100%);
  }

  header.site-static-header nav.site-nav-open {
    display: flex !important;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
    padding: 1rem;
    gap: 0.75rem;
    z-index: 100;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    max-height: calc(100vh - 4.5rem);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  header.site-static-header nav.site-nav-open .site-header-nav-search {
    width: 100%;
    margin: -0.25rem 0 0.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #e5e7eb;
  }

  header.site-static-header nav.site-nav-open .site-header-region--nav-mobile .site-header-region-select--mobile {
    max-width: none;
    width: 100%;
  }

  header.site-static-header nav.site-nav-open .site-header-search-input {
    height: 2.5rem;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
    font-size: 0.95rem;
  }

  header.site-static-header nav.site-nav-open > .site-header-catalog-menu {
    width: 100%;
  }

  header.site-static-header nav.site-nav-open button,
  header.site-static-header nav.site-nav-open a {
    text-align: left;
    justify-content: flex-start;
    width: 100%;
    padding: 0.5rem 0;
  }

  header.site-static-header nav.site-nav-open .site-header-projects-dd {
    position: static !important;
    margin-top: 0.5rem;
    box-shadow: none;
    border: 1px solid #e5e7eb;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  body {
    padding-top: calc(4.5rem + env(safe-area-inset-top));
  }
}

.site-header-projects-dd a {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  color: #374151;
  text-decoration: none;
}

.site-header-projects-dd {
  overflow: hidden;
}

.site-header-projects-dd a:hover {
  background: #f0fdf7;
  color: #18ac67;
}

.site-header-projects-dd a:first-child:hover {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}

.site-header-projects-dd a:last-child:hover {
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
}

/* Десктоп: выпадение «Проекты» над hero (в main часто z-10); липкая шапка z-50 недостаточна — main рисуется поверх */
@media (min-width: 1024px) {
  header.site-static-header {
    z-index: 500;
    overflow: visible;
  }

  header.site-static-header .container {
    overflow: visible;
  }

  header.site-static-header .container > div.relative {
    overflow: visible;
  }

  #root > div > main {
    position: relative;
    z-index: 0;
  }
}

/* Единый pointer для интерактивных элементов сайта */
button,
a[href],
input[type='button'],
input[type='submit'],
input[type='reset'],
[role='button'],
[data-slot='select-trigger'],
[data-slot='tabs-trigger'],
[data-site-project-main-wrap],
[data-site-project-thumb],
[data-site-package-tab],
.site-home-carousel-dot,
.site-project-modal-close,
.site-project-modal-nav {
  cursor: pointer;
}

[data-site-package-root] [data-site-package-tab] {
  cursor: pointer !important;
}

button[data-slot='button'],
.site-project-cta,
.site-quiz-cta {
  cursor: pointer !important;
}

.site-select-overlay button {
  border: none;
  background: transparent;
  cursor: pointer;
  font: inherit;
}

.site-projects-empty {
  text-align: center;
  padding: 3rem 1rem;
}

/* Каталог (MVC): фильтры свёрнуты в кнопку до lg */
@media (max-width: 1023px) {
  [data-site-catalog-filters-root] [data-site-catalog-filters-panel] {
    display: none;
  }
  [data-site-catalog-filters-root].site-catalog-filters--open [data-site-catalog-filters-panel] {
    display: block;
  }
  [data-site-catalog-filters-root].site-catalog-filters--open .site-catalog-filters-chevron {
    transform: rotate(180deg);
  }
}
@media (min-width: 1024px) {
  [data-site-catalog-filters-root] [data-site-catalog-filters-panel] {
    display: block !important;
  }
}

.site-catalog-pagination {
  margin-top: 1.25rem;
}

.site-catalog-pagination__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.site-catalog-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  padding: 0.35rem 0.55rem;
  border-radius: 0.375rem;
  border: 1px solid #d1d5db;
  color: #374151;
  text-decoration: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.site-catalog-pagination__link:hover {
  border-color: #18ac67;
  color: #138454;
  background: rgba(24, 172, 103, 0.08);
}

.site-catalog-pagination__current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  padding: 0.35rem 0.55rem;
  border-radius: 0.375rem;
  font-weight: 600;
  color: #fff;
  background: #18ac67;
  border: 1px solid #18ac67;
}

.site-catalog-pagination__disabled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  padding: 0.35rem 0.55rem;
  color: #9ca3af;
  user-select: none;
}

.site-catalog-pagination__ellipsis {
  color: #9ca3af;
  padding: 0 0.15rem;
  user-select: none;
}

@media (max-width: 767.98px) {
  .site-catalog-toolbar {
    display: block;
  }

  .site-catalog-toolbar__cats {
    min-width: 0;
  }

  .site-catalog-toolbar__cats-scroll {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    white-space: nowrap;
    padding-bottom: 0.25rem;
  }

  .site-catalog-toolbar__cats-scroll::-webkit-scrollbar {
    display: none;
  }

  .site-catalog-toolbar__cat-btn {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .site-catalog-toolbar__sort {
    width: 100% !important;
    margin-top: 0.75rem;
  }
}

.site-portfolio-card-hidden {
  display: none !important;
}

.site-portfolio-filter-active {
  background: #18ac67 !important;
  color: #fff !important;
  border-color: transparent !important;
}

.site-project-main-fade {
  opacity: 0.5;
  transition: opacity 0.18s ease;
}

[data-site-project-main-photo] {
  transition: opacity 0.18s ease;
  display: block;
  width: 100%;
  height: 360px;
  min-height: 360px;
  object-fit: cover;
}

@media (min-width: 640px) {
  [data-site-project-main-photo] {
    height: 440px;
    min-height: 440px;
  }
}

@media (min-width: 1024px) {
  [data-site-project-main-photo] {
    height: 520px;
    min-height: 520px;
  }
}

.site-project-thumb-active {
  outline: 2px solid #18ac67;
  outline-offset: -2px;
}

.site-project-modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2vh 2vw;
  box-sizing: border-box;
}

.site-project-modal.is-open {
  display: flex;
}

.site-project-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(17, 24, 39, 0.82);
}

.site-project-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(96vw, 1400px);
  height: auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.site-project-modal-img {
  width: auto;
  max-width: 96vw;
  max-height: 92vh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
  display: block;
}

.site-project-modal-close,
.site-project-modal-nav {
  position: absolute;
  border: none;
  cursor: pointer;
  color: #fff;
  background: rgba(17, 24, 39, 0.6);
}

.site-project-modal-close {
  top: 0.5rem;
  right: 0.5rem;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  font-size: 1.75rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-weight: 500;
}

.site-project-modal-nav {
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 3.5rem;
  border-radius: 0.5rem;
  font-size: 2rem;
  line-height: 1;
}

.site-project-modal-nav.is-prev {
  left: 0.75rem;
}

.site-project-modal-nav.is-next {
  right: 0.75rem;
}

body.site-project-modal-open {
  overflow: hidden;
}

img.site-img-fallback-plain {
  background: #f3f4f6;
}

.site-home-carousel-dot {
  flex-shrink: 0;
  height: 0.5rem;
  width: 0.5rem;
  border-radius: 9999px;
  background: rgba(24, 172, 103, 0.28);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: width 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}

.site-home-carousel-dot.is-active {
  width: 1.75rem;
  background: #18ac67;
}

.site-materials-widget [data-site-mat].site-mat-tab-active {
  background: #fff !important;
  color: #111827 !important;
  font-weight: 600 !important;
}

.site-home-projects--multi {
  max-width: 1260px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 48px;
  padding-right: 48px;
}

.site-home-projects--multi .site-home-projects-viewport {
  overflow: hidden;
}

.site-home-projects--multi .site-home-projects-track {
  align-items: stretch;
}

.site-home-projects--multi .site-home-projects-slide [data-slot='card'] {
  border-radius: 14px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.site-home-projects--multi .site-home-projects-slide [data-slot='card'] [data-slot='card-header'] {
  padding: 16px 16px 0;
}

.site-home-projects--multi .site-home-projects-slide [data-slot='card'] [data-slot='card-content'] {
  padding: 0 16px 16px;
}

.site-home-projects--multi .site-home-projects-slide [data-slot='card'] [data-slot='card-title'] {
  font-size: 22px;
  font-weight: 500;
  line-height: 1.1;
}

.site-home-projects--multi .site-home-projects-slide [data-slot='card'] [data-slot='card-description'] {
  margin-top: 6px;
  font-size: 15px;
  color: #6b7280;
}

.site-home-projects--multi .site-home-projects-slide [data-slot='card'] .relative.h-64 {
  height: 206px;
}

.site-home-projects--multi .site-home-projects-slide [data-slot='button'] {
  height: 34px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 600;
}

.site-home-projects--multi .site-home-projects-prev,
.site-home-projects--multi .site-home-projects-next {
  top: 53%;
  width: 36px;
  height: 36px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #111827;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.site-home-projects--multi .site-home-projects-prev {
  left: 6px;
}

.site-home-projects--multi .site-home-projects-next {
  right: 6px;
}

.site-home-projects--multi .site-home-projects-prev svg,
.site-home-projects--multi .site-home-projects-next svg {
  width: 16px;
  height: 16px;
}

.site-home-projects-title {
  font-size: 50px;
  line-height: 1.05;
  font-weight: 800;
  margin-bottom: 12px;
}

.site-home-projects-subtitle {
  font-size: 34px;
  line-height: 1.25;
  color: #4b5563;
  max-width: 980px;
  margin: 0 auto;
}

.site-home-projects-more {
  width: auto;
  height: 48px;
  padding: 0 20px;
  border-radius: 10px;
  font-size: 16px;
}

.site-hero-image {
  object-position: center 38%;
}

@media (max-width: 1279px) {
  .site-home-projects-title {
    font-size: 44px;
  }

  .site-home-projects-subtitle {
    font-size: 20px;
  }
}

@media (max-width: 1023px) {
  .site-home-projects-more {
    width: 100%;
  }

  .site-home-projects--multi {
    padding-left: 34px;
    padding-right: 34px;
  }

  .site-home-projects-title {
    font-size: 42px;
  }

  .site-home-projects-subtitle {
    font-size: 22px;
  }

  .site-home-projects--multi .site-home-projects-slide [data-slot='card'] .relative.h-64 {
    height: 230px;
  }

  .site-hero-image {
    height: 420px !important;
    object-position: center 40%;
  }
}

@media (max-width: 639px) {
  .site-home-projects-mobile-lead {
    font-size: 15px;
    line-height: 1.4;
  }

  .site-home-projects--multi {
    padding-left: 20px;
    padding-right: 20px;
  }

  .site-home-projects--multi .site-home-projects-prev,
  .site-home-projects--multi .site-home-projects-next {
    top: 57%;
    width: 56px;
    height: 56px;
    border-radius: 9999px;
  }

  .site-home-projects--multi .site-home-projects-prev {
    left: -8px;
  }

  .site-home-projects--multi .site-home-projects-next {
    right: -8px;
  }

  .site-home-projects--multi .site-home-projects-prev svg,
  .site-home-projects--multi .site-home-projects-next svg {
    width: 24px;
    height: 24px;
  }

  .site-home-projects--multi .site-home-projects-slide [data-slot='card'] .relative.h-64 {
    height: 250px;
  }

  .site-home-projects-title {
    font-size: 64px;
    line-height: 1.06;
    margin-bottom: 16px;
  }

  .site-home-projects-subtitle {
    font-size: 22px;
    line-height: 1.35;
    max-width: 420px;
  }

  .site-home-projects--multi .site-home-projects-slide [data-slot='card'] [data-slot='card-title'] {
    font-size: 40px;
    line-height: 1.08;
  }

  .site-home-projects--multi .site-home-projects-slide [data-slot='card'] [data-slot='card-description'] {
    font-size: 42px;
  }

  .site-home-projects--multi
    .site-home-projects-slide
    [data-slot='card']
    [data-slot='card-content']
    .text-gray-600
    span {
    font-size: 35px;
    line-height: 1.2;
  }

  .site-home-projects--multi .site-home-projects-slide [data-slot='button'] {
    height: 60px;
    font-size: 40px;
    border-radius: 14px;
  }

  .site-home-projects-more {
    width: 100%;
    height: 44px;
    font-size: 18px;
    border-radius: 12px;
    padding: 0 24px;
  }

  .site-hero-image {
    height: 320px !important;
    object-position: center 42%;
  }
}

/* --------------------------------------------------------------------------
 * Было в HTML как style="" — динамику трека/ширины слайдов задаёт site-app.js
 * -------------------------------------------------------------------------- */
[data-slot='accordion-content'] {
  --radix-accordion-content-height: var(--radix-collapsible-content-height);
  --radix-accordion-content-width: var(--radix-collapsible-content-width);
}

[data-slot='select-value'] {
  pointer-events: none;
}

[data-slot='radio-group'] {
  outline: none;
}

.site-quiz-progress-bar {
  width: 20%;
}

.site-quiz-row {
  position: relative;
}

.site-quiz-row:hover {
  border-color: #18ac67 !important;
}

.site-quiz-row:hover .site-quiz-row__label > div:first-child {
  color: #16a34a;
}

.site-quiz-row .site-quiz-radio {
  display: none;
}

.site-quiz-row__emoji {
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  border-radius: 0.6rem;
  background: #f3f4f6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  line-height: 1;
}

.site-quiz-row__check {
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  background: #18ac67;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(0.9);
  transition:
    opacity 0.15s ease,
    transform 0.15s ease;
}

.site-quiz-row--selected {
  border-color: #18ac67 !important;
  background: #f0fdf7;
  box-shadow:
    0 0 0 1px #18ac67,
    0 1px 2px rgba(17, 24, 39, 0.06);
}

.site-quiz-row--selected .site-quiz-row__emoji {
  background: #dcfce7;
}

.site-quiz-row--selected .site-quiz-row__check {
  opacity: 1;
  transform: scale(1);
}

.site-quiz-area-chip--selected {
  border-color: #18ac67 !important;
  background: #f0fdf7;
  color: #15803d;
  font-weight: 600;
}

.site-quiz-area-chip--selected .site-quiz-area-chip__title,
.site-quiz-area-chip--selected .site-quiz-area-chip__range {
  color: #16a34a;
}

.site-quiz-area-chip:hover {
  border-color: #18ac67 !important;
}

.site-quiz-area-chip:hover .site-quiz-area-chip__title {
  color: #16a34a;
}

/* Квиз на главной: контент без фиксированной min-height — финальный шаг не обрезается */
#quiz [data-slot='card'] {
  overflow: visible;
}

/* Якорь у блока «Онлайн калькулятор»: не вся секция #quiz (иначе на мобилке прокрутка «центрирует» длинный блок) */
#quiz-top {
  scroll-margin-top: calc(4rem + 12px);
}

@media (min-width: 640px) and (max-width: 1023.98px) {
  #quiz-top {
    scroll-margin-top: calc(4.5rem + 12px);
  }
}

@media (min-width: 1024px) {
  #quiz-top {
    scroll-margin-top: 0;
  }
}

#quiz-calc-heading {
  scroll-margin-top: calc(4rem + 12px);
}

@media (min-width: 640px) and (max-width: 1023.98px) {
  #quiz-calc-heading {
    scroll-margin-top: calc(4.5rem + 12px);
  }
}

@media (min-width: 1024px) {
  #quiz-calc-heading {
    scroll-margin-top: 0;
  }
}

/*
 * Квиз: нейтральный фон (slate / off-white), лёгкий мятный низ к следующей секции.
 * Без «лучей», conic, шума и тяжёлых эффектов.
 */
#quiz.site-home-quiz-stage {
  --quiz-aurora: 24, 172, 103;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: clamp(4.25rem, 9vw, 7.5rem);
  padding-bottom: clamp(4.75rem, 10vw, 8.25rem);
  background-color: #f8fafc;
  background-image:
    radial-gradient(ellipse 120% 70% at 50% -15%, rgba(255, 255, 255, 0.92), transparent 52%),
    radial-gradient(ellipse 90% 55% at 50% 115%, rgba(240, 253, 247, 0.55), transparent 58%),
    linear-gradient(
      180deg,
      #f9fafb 0%,
      #f8fafc 22%,
      #fafbfc 55%,
      #f3faf6 100%
    );
}

#quiz.site-home-quiz-stage .site-home-quiz-intro {
  margin-bottom: clamp(2.75rem, 6vw, 4.25rem);
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}

#quiz.site-home-quiz-stage .site-home-quiz-container {
  position: relative;
  z-index: 1;
}

#quiz.site-home-quiz-stage::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(
    ellipse 120% 48% at 50% 52%,
    rgba(var(--quiz-aurora), 0.07),
    transparent 68%
  );
}

#quiz.site-home-quiz-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.22) 48%,
    transparent 96%
  );
  opacity: 0.85;
}

#quiz.site-home-quiz-stage .quiz-card-shell {
  position: relative;
  z-index: 1;
  box-shadow:
    0 1px 2px rgba(24, 72, 52, 0.04),
    0 16px 40px -12px rgba(24, 172, 103, 0.14),
    0 32px 64px -24px rgba(19, 132, 84, 0.1),
    0 0 0 1px rgba(255, 255, 255, 0.95);
}

.quiz-card-shell {
  --quiz-pad-x: 1.5rem;
  --quiz-pad-y: 1.25rem;
  --quiz-pad-bottom: 1.5rem;
}

@media (min-width: 640px) {
  .quiz-card-shell {
    --quiz-pad-x: 2rem;
    --quiz-pad-y: 1.5rem;
    --quiz-pad-bottom: 1.75rem;
  }
}

#quiz .quiz-card-shell__header {
  padding: var(--quiz-pad-y) var(--quiz-pad-x) 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

#quiz .quiz-card-shell__progress-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

#quiz .quiz-card-shell__step-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #111827;
}

#quiz .quiz-card-shell__bar-track {
  height: 0.5rem;
  overflow: hidden;
}

#quiz .quiz-card-shell__body {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0 var(--quiz-pad-x) var(--quiz-pad-bottom);
}

.quiz-card-content {
  min-height: 0;
  overflow: visible;
}

.site-quiz-step {
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
}

.site-quiz-step__head {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.site-quiz-step__question {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.35;
  color: #111827;
}

.site-quiz-step__lead {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #6b7280;
}

.site-quiz-input {
  box-sizing: border-box;
  width: 100%;
  height: 2.75rem;
  padding: 0 0.875rem;
  border: 1px solid #d1d5db;
  border-radius: 0.5rem;
  font-size: 1rem;
  line-height: 1.4;
  color: #111827;
  background: #fff;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.site-quiz-input::placeholder {
  color: #9ca3af;
}

.site-quiz-input:focus {
  outline: none;
  border-color: #18ac67;
  box-shadow: 0 0 0 3px rgba(24, 172, 103, 0.22);
}

.site-quiz-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.site-quiz-chips--area .site-quiz-area-chip {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.125rem;
  min-width: 6.75rem;
  padding: 0.5rem 0.75rem;
}

@media (max-width: 639px) {
  .site-quiz-chips--area {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .site-quiz-chips--area .site-quiz-area-chip {
    width: 100%;
    min-width: 0;
  }
}

.site-quiz-area-chip__title {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.2;
  color: #111827;
}

.site-quiz-area-chip__range {
  font-size: 0.8125rem;
  line-height: 1.25;
  color: #4b5563;
}

.site-quiz-area-panel {
  border: 1px solid #e5e7eb;
  border-radius: 0.9rem;
  background: #fff;
  padding: 1rem;
}

.site-quiz-area-panel__value {
  text-align: center;
  margin-bottom: 0.5rem;
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.1;
  color: #16a34a;
}

.site-quiz-area-panel__unit {
  font-size: 1.15rem;
  color: #374151;
}

/* Без accent-color: иначе WebKit/Safari рисуют системный thumb и игнорируют размер ::-webkit-slider-thumb */
.site-quiz-area-range {
  --site-quiz-range-fill: 30%;
  --site-quiz-range-track-h: 10px;
  --site-quiz-range-thumb: 18px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  height: 2.25rem;
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  cursor: pointer;
  touch-action: manipulation;
}

.site-quiz-area-range:focus {
  outline: none;
}

.site-quiz-area-range:focus-visible {
  outline: 2px solid rgba(24, 172, 103, 0.45);
  outline-offset: 3px;
  border-radius: 0.25rem;
}

.site-quiz-area-range::-webkit-slider-runnable-track {
  width: 100%;
  height: var(--site-quiz-range-track-h);
  border-radius: 999px;
  background: linear-gradient(
    to right,
    #18ac67 0%,
    #18ac67 var(--site-quiz-range-fill),
    #d1d5db var(--site-quiz-range-fill),
    #d1d5db 100%
  );
}

.site-quiz-area-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: var(--site-quiz-range-thumb);
  height: var(--site-quiz-range-thumb);
  margin-top: calc((var(--site-quiz-range-track-h) - var(--site-quiz-range-thumb)) / 2);
  border-radius: 999px;
  background: #18ac67;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.22);
  cursor: pointer;
}

.site-quiz-area-range::-moz-range-track {
  width: 100%;
  height: var(--site-quiz-range-track-h);
  border-radius: 999px;
  background: #d1d5db;
}

.site-quiz-area-range::-moz-range-progress {
  height: var(--site-quiz-range-track-h);
  border-radius: 999px;
  background: #18ac67;
}

.site-quiz-area-range::-moz-range-thumb {
  width: var(--site-quiz-range-thumb);
  height: var(--site-quiz-range-thumb);
  border-radius: 999px;
  background: #18ac67;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.22);
  cursor: pointer;
}

.site-quiz-area-panel__scale {
  margin-top: 0.25rem;
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  color: #6b7280;
}

.site-quiz-area-panel__hint {
  margin-top: 0.6rem;
  border-radius: 0.6rem;
  background: #f0fdf7;
  padding: 0.5rem 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #14532d;
}

.site-quiz-options {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.site-quiz-options--two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.site-quiz-options--floors {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.site-quiz-bedroom-counter {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fff;
  padding: 1.25rem 1rem;
}

.site-quiz-bedroom-btn {
  width: 2.5rem;
  height: 2.5rem;
  border: none;
  border-radius: 999px;
  background: #18ac67;
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  font-weight: 700;
  cursor: pointer;
}

.site-quiz-bedroom-btn:hover {
  background: #138454;
}

.site-quiz-bedroom-value-wrap {
  min-width: 6.5rem;
  text-align: center;
}

.site-quiz-bedroom-value {
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 700;
  color: #18ac67;
}

.site-quiz-bedroom-label {
  margin-top: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.35;
  color: #6b7280;
}

.site-quiz-bedroom-dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
}

.site-quiz-bedroom-dot {
  width: 0.75rem;
  height: 0.75rem;
  border: none;
  border-radius: 999px;
  background: #d1d5db;
  cursor: pointer;
}

.site-quiz-bedroom-dot.is-active {
  background: #18ac67;
}

@media (max-width: 1023px) {
  .site-quiz-area-range {
    --site-quiz-range-track-h: 12px;
    --site-quiz-range-thumb: 42px;
    height: 3rem;
  }

  .site-quiz-area-range::-webkit-slider-thumb {
    border-width: 4px;
  }

  .site-quiz-area-range::-moz-range-thumb {
    border-width: 4px;
  }
}

@media (max-width: 639px) {
  .site-quiz-options--two-col {
    grid-template-columns: 1fr;
  }
}

.site-quiz-row__label > div:first-child {
  font-weight: 600;
  color: #111827;
}

.site-quiz-material-row {
  display: block;
}

.site-quiz-actions {
  margin-top: 0.5rem;
  padding-top: 1.125rem;
  display: flex;
  flex-wrap: nowrap;
  gap: 0.75rem;
  align-items: center;
}

.site-quiz-btn {
  box-sizing: border-box;
  display: inline-flex;
  width: auto;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.5rem 1.25rem;
  border-radius: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}

.site-quiz-btn--primary {
  border: none;
  background: #18ac67;
  color: #fff;
}

.site-quiz-btn--primary:hover {
  background: #138454;
}

.site-quiz-btn--ghost {
  flex: 0 0 auto;
  min-width: 7.25rem;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
}

.site-quiz-btn--ghost:hover {
  border-color: #18ac67;
  color: #15803d;
  background: #f0fdf7;
}

.site-quiz-btn--primary {
  flex: 1 1 auto;
}

@media (min-width: 640px) {
  .site-quiz-btn {
    width: auto;
    min-width: 8rem;
  }

  .site-quiz-btn--primary {
    width: auto;
  }
}

/* Финальный экран квиза: вилка цен и форма */
.site-quiz-result {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  text-align: left;
}

.site-quiz-result__grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 1024px) {
  .site-quiz-result__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
  }
}

.site-quiz-result__col {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.site-quiz-result__summary {
  border-radius: 0.75rem;
  border: 1px solid #bbf7d0;
  background: #f0fdf7;
  padding: 1.25rem 1.375rem;
}

.site-quiz-result__summary-title {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #166534;
  margin: 0 0 0.5rem;
}

.site-quiz-result__summary-price {
  margin: 0;
  font-size: clamp(1.375rem, 4.5vw, 1.875rem);
  font-weight: 700;
  color: #111827;
  line-height: 1.2;
}

.site-quiz-result__summary-note {
  margin: 0.75rem 0 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #4b5563;
}

.site-quiz-result__packs {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}

@media (min-width: 640px) and (max-width: 1023px) {
  .site-quiz-result__packs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    align-items: stretch;
  }
}

@media (min-width: 1024px) {
  .site-quiz-result__packs {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
}

.site-quiz-result__pack {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-height: 100%;
  padding: 1rem 1.125rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fff;
}

.site-quiz-result__pack-title {
  font-weight: 600;
  font-size: 0.9375rem;
  color: #111827;
}

.site-quiz-result__pack-price {
  font-size: 1.125rem;
  font-weight: 700;
  color: #18ac67;
}

.site-quiz-result__pack-note {
  font-size: 0.8rem;
  line-height: 1.35;
  color: #6b7280;
  margin-top: 0;
}

.site-quiz-result__promo {
  margin-top: 0;
  padding: 0.875rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid #fdba74;
  background: #fff7ed;
  color: #9a3412;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.45;
  text-align: center;
}

.site-quiz-result__form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.25rem;
  padding: 1.25rem 1.375rem 1.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fafafa;
}

.site-quiz-result__form-title {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 600;
  color: #111827;
}

.site-quiz-result__form-gift {
  margin: 0 0 0.25rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #4b5563;
}

.site-quiz-result__form-grid {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  font-size: 0.875rem;
  margin-bottom: 2.125rem;
}

/* ≥16px: иначе iOS Safari при фокусе в инпуте зумит всю страницу */
.site-quiz-result__input {
  box-sizing: border-box;
  width: 100%;
  height: 2.75rem;
  padding: 0 0.875rem;
  border: 1px solid #d1d5db;
  border-radius: 0.5rem;
  font-size: 1rem;
  line-height: 1.4;
  background: #fff;
  color: #111827;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.site-quiz-result__input::placeholder {
  color: #9ca3af;
}

.site-quiz-result__input:focus {
  outline: none;
  border-color: #18ac67;
  box-shadow: 0 0 0 3px rgba(24, 172, 103, 0.22);
}

.site-quiz-result__submit {
  box-sizing: border-box;
  width: 100%;
  min-height: 2.875rem;
  margin-top: 0.35rem;
  padding: 0.625rem 1rem;
  border: none;
  border-radius: 0.5rem;
  background: #18ac67;
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease;
}

.site-quiz-result__submit:hover {
  background: #138454;
}

.site-quiz-result__again {
  padding: 0.25rem 0 0.5rem;
  text-align: center;
}

.site-quiz-result__reset {
  padding: 0.25rem 0.5rem;
  border: none;
  background: none;
  font-size: 0.875rem;
  color: #6b7280;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.site-quiz-result__reset:hover {
  color: #18ac67;
}

@media (max-width: 639px) {
  .site-quiz-result {
    gap: 0.75rem;
  }

  .site-quiz-result__grid {
    gap: 0.75rem;
  }

  .site-quiz-result__col {
    gap: 0.65rem;
  }

  .site-quiz-result__summary {
    padding: 0.875rem 1rem;
  }

  .site-quiz-result__summary-price {
    font-size: 1.25rem;
  }

  .site-quiz-result__summary-note {
    font-size: 0.8125rem;
    margin-top: 0.5rem;
  }

  .site-quiz-result__packs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .site-quiz-result__pack:last-child {
    grid-column: 1 / -1;
  }

  .site-quiz-result__pack {
    padding: 0.55rem 0.7rem;
    gap: 0.125rem;
  }

  .site-quiz-result__pack-title {
    font-size: 0.8125rem;
  }

  .site-quiz-result__pack-price {
    font-size: 0.9375rem;
  }

  .site-quiz-result__promo {
    padding: 0.65rem 0.75rem;
    font-size: 0.8125rem;
    line-height: 1.4;
  }

  .site-quiz-result__form {
    padding: 0.875rem 1rem 1rem;
    gap: 0.5rem;
    margin-top: 0;
  }

  .site-quiz-result__form-grid {
    gap: 0.5rem;
    margin-bottom: 1.75rem;
    font-size: 0.875rem;
  }

  .site-quiz-result__form-title {
    font-size: 0.9375rem;
  }

  .site-quiz-result__form-gift {
    font-size: 0.8125rem;
    margin-bottom: 0.125rem;
  }

  .site-quiz-result__input {
    height: 2.75rem;
    font-size: 1rem;
  }

  .site-quiz-result__submit {
    min-height: 2.625rem;
    font-size: 0.875rem;
    margin-top: 0.25rem;
  }

  .site-quiz-result__again {
    padding: 0.125rem 0 0.25rem;
  }
}

.projects-slider .slick-slide-cell {
  width: 100%;
  display: inline-block;
}

.projects-slider .slick-slide {
  outline: none;
}

/* --------------------------------------------------------------------------
 * Шапка: мессенджеры, звонок (без tel в разметке), модалка выбора на мобильных
 * -------------------------------------------------------------------------- */
/* Иконки в шапке (моб. меню / звонок / мессенджер + поиск на десктопе): без круглой обводки */
.site-header-icon-btn,
.site-header-search-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 4px;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: #111827;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.site-header-icon-btn:hover,
.site-header-search-trigger:hover {
  background: #f0fdf7;
  color: #18ac67;
}

.site-header-icon-btn:focus-visible,
.site-header-search-trigger:focus-visible {
  outline: 2px solid #18ac67;
  outline-offset: 2px;
}

@media (max-width: 1023px) {
  /* Не переопределять width/max-width у .container в шапке — иначе шапка на всю ширину
     окна, а остальной сайт остаётся с max-width контейнера Tailwind и «уезжает» влево. */
  .site-header-mobile-actions {
    margin-left: auto;
    position: relative;
    z-index: 25;
  }
}

.site-header-messenger-inline {
  display: flex;
  align-items: center;
  gap: 0;
}

.site-header-catalog-menu {
  position: relative;
}

.site-header-catalog-dropdown {
  position: absolute;
  top: 100%;
  left: 0%;
  /* transform: translateX(-50%); */
  width: min(1120px, calc(40vw - 48px));
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 22px 48px rgba(15, 23, 42, 0.14);
  padding: 20px 35px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.16s ease;
  z-index: 80;
}

.site-header-catalog-menu:hover .site-header-catalog-dropdown,
.site-header-catalog-menu:focus-within .site-header-catalog-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.site-header-catalog-dropdown__inner {
  column-count: 3;
  column-gap: 18px;
  max-height: 68vh;
  overflow: auto;
  padding-right: 4px;
}

.site-header-catalog-dropdown__group {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin-bottom: 14px;
}

.site-header-catalog-dropdown__title {
  display: inline-block;
  margin-bottom: 6px;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 500;
  color: #111827;
}

.site-header-catalog-dropdown__title-link {
  display: inline-block;
  margin-bottom: 6px;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 500;
  color: #111827;
  transition: color 0.15s ease;
}

.site-header-catalog-dropdown__title-link:hover {
  color: #18ac67;
}

.site-header-catalog-dropdown__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-header-catalog-dropdown__link {
  display: block;
  padding: 3px 0;
  font-size: 15px;
  line-height: 1.35;
  color: #4b5563;
  transition: color 0.15s ease;
}

.site-header-catalog-dropdown__link:hover {
  color: #18ac67;
}

.site-header-catalog-mobile-panel {
  display: none;
}

.site-catalog-more-filters-btn {
  border-color: #e5e7eb;
  background: #f3f4f6;
  color: #4b5563;
}

.site-catalog-more-filters-btn:hover {
  background: #e5e7eb;
}

.site-catalog-more-filters-btn.is-active,
.site-catalog-more-filters-btn[aria-expanded='true'] {
  border-color: #86efac;
  background: #bbf7d0;
  color: #166534;
}

.site-catalog-sort-mobile-btn {
  border-color: #e5e7eb;
  background: #f3f4f6;
  color: #4b5563;
  display: none;
}

.site-catalog-sort-mobile-btn:hover {
  background: #e5e7eb;
}

.site-catalog-sort-mobile-btn.is-active {
  border-color: #86efac;
  background: #bbf7d0;
  color: #166534;
}

.site-catalog-etazhnost-chips {
  margin-left: 1.5rem;
}

.site-catalog-toolbar-main {
  flex: 1 1 auto;
  min-width: 0;
}

@media (max-width: 1279px) {
  .site-header-projects-dd {
    display: none !important;
  }

  .site-header-catalog-dropdown {
    display: none !important;
  }

  header.site-static-header nav.site-nav-open .site-header-catalog-menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .site-header-catalog-mobile-panel {
    display: none;
    margin-top: 8px;
    padding-top: 6px;
  }

  .site-header-catalog-menu.is-open .site-header-catalog-mobile-panel {
    display: block;
  }

  .site-header-catalog-mobile-panel__all,
  .site-header-catalog-mobile-panel__title {
    display: block;
    font-size: 1.05rem;
    line-height: 1.25;
    font-weight: 600;
    color: #111827;
  }

  .site-header-catalog-mobile-panel__group {
    margin-top: 12px;
  }

  .site-header-catalog-mobile-panel__list {
    margin: 6px 0 0;
    padding: 0 0 0 24px;
    list-style: none;
  }

  .site-header-catalog-mobile-panel__link {
    display: block;
    position: relative;
    padding: 6px 0;
    color: #4b5563;
    font-size: 1.05rem;
    line-height: 1.35;
  }

  .site-header-catalog-mobile-panel__link::before {
    content: '-';
    position: absolute;
    left: -14px;
    top: 6px;
    color: #9ca3af;
  }

  .site-catalog-etazhnost-chips {
    margin-left: 0;
  }

  .site-catalog-ploshad-chips,
  .site-catalog-etazhnost-chips {
    display: contents;
  }

  .site-catalog-toolbar-controls {
    order: -1;
    width: auto;
    justify-content: flex-start;
    margin-left: 0;
    margin-bottom: 0;
  }

  .site-catalog-sort-inline {
    display: none;
  }

  .site-catalog-sort-mobile-btn {
    display: inline-flex;
  }
}

/* Отступ между Telegram и MAX: только через margin (не зависит от Tailwind gap в разметке) */
.site-header-messenger-inline .site-messenger-link--tg {
  margin-right: 12px;
}

.site-header-region-select {
  box-sizing: border-box;
  line-height: 1.25;
  color: #111827;
  cursor: pointer;
}

/* ПК: без рамки, рядом с иконкой геолокации */
.site-header-region-select--desktop {
  max-width: 9rem;
  padding: 0.25rem 1.5rem 0.25rem 0;
  font-size: 0.875rem;
  font-weight: 600;
  border: none;
  border-radius: 0.375rem;
  background: transparent;
  box-shadow: none;
  color: #111827;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.15rem center;
  background-size: 1rem 1rem;
}

.site-header-region-select--desktop:hover {
  color: #18ac67;
}

.site-header-region-select--desktop:focus,
.site-header-region-select--desktop:focus-visible,
.site-header-region-select--desktop:active {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

@media (min-width: 1280px) {
  .site-header-region-select--desktop {
    max-width: 10rem;
    font-size: 0.9375rem;
  }
}

.site-header-region__pin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #18ac67;
}

.site-header-region__pin--sm svg {
  display: block;
}

.site-header-region-select--mobile {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0.25rem 1.75rem 0.25rem 0.35em;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.25;
  border: none;
  border-radius: 0;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0 center;
  background-size: 1.125rem 1.125rem;
  color: #111827;
  appearance: none;
  box-shadow: none;
  -webkit-tap-highlight-color: transparent;
}

.site-header-region-select--mobile:focus {
  outline: none;
}

.site-header-region-select--mobile:focus-visible {
  outline: none;
  box-shadow: none;
}

.site-messenger-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 0.75rem;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.site-messenger-link:hover {
  transform: scale(1.06);
}

.site-messenger-link__img {
  display: block;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

.site-messenger-link__img--tg {
  width: 26px;
  height: 26px;
}

.site-messenger-link--tg {
  background: #229ed9;
}

.site-messenger-link--max {
  background: linear-gradient(135deg, #6b4eff 0%, #4f39d6 100%);
}

@media (max-width: 1290px) {
  .site-header-call-btn {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 0.75rem;
    gap: 0;
  }

  .site-header-call-btn__label {
    display: none;
  }

  .site-header-call-btn__icon {
    margin-right: 0;
    width: 22px;
    height: 22px;
  }
}

.site-messenger-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}

.site-messenger-modal[hidden] {
  display: none !important;
}

body.site-messenger-modal-open {
  overflow: hidden;
}

.site-messenger-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(17, 24, 39, 0.55);
}

.site-messenger-modal__dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 420px;
  margin: 0;
  padding: 1.25rem 1.25rem 1.5rem;
  background: #fff;
  border-radius: 1rem 1rem 0 0;
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
}

@media (min-width: 480px) {
  .site-messenger-modal {
    align-items: center;
    padding: 1rem;
  }

  .site-messenger-modal__dialog {
    border-radius: 1rem;
  }
}

.site-messenger-modal__title {
  margin: 0 0 1rem;
  font-size: 1.125rem;
  font-weight: 500;
  color: #111827;
  padding-right: 2rem;
}

.site-messenger-modal__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 9999px;
  background: #f3f4f6;
  color: #374151;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.site-messenger-modal__close:hover {
  background: #e5e7eb;
}

.site-messenger-modal__choices {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.site-messenger-modal__choice {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  border: 1px solid #e5e7eb;
  text-decoration: none;
  color: #111827;
  font-weight: 600;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.site-messenger-modal__choice:hover {
  border-color: #18ac67;
  background: #f0fdf7;
}

.site-messenger-modal__choice-icon {
  flex-shrink: 0;
}

/* --------------------------------------------------------------------------
 * Поиск проектов: модалка (ПК), поле в мобильном меню
 * -------------------------------------------------------------------------- */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-search-modal {
  position: fixed;
  inset: 0;
  z-index: 210;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 5rem 1rem 1rem;
}

.site-search-modal[hidden] {
  display: none !important;
}

body.site-search-modal-open {
  overflow: hidden;
}

.site-search-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(17, 24, 39, 0.45);
}

.site-search-modal__dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 520px;
  background: #fff;
  border-radius: 1rem;
  padding: 1.25rem 1.25rem 1.5rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
  border: 1px solid #e5e7eb;
}

.site-search-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 9999px;
  background: #f3f4f6;
  color: #374151;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.site-search-modal__close:hover {
  background: #e5e7eb;
}

.site-search-modal__title {
  margin: 0 0 1rem;
  padding-right: 2rem;
  font-size: 1.125rem;
  font-weight: 500;
  color: #111827;
}

.site-search-modal__form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: stretch;
}

.site-search-modal__input {
  flex: 1 1 200px;
  min-width: 0;
  height: 2.75rem;
  padding: 0 0.875rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 1rem;
  color: #111827;
  background: #fafafa;
}

.site-search-modal__input:focus {
  outline: none;
  border-color: #18ac67;
  box-shadow: 0 0 0 3px rgba(24, 172, 103, 0.2);
  background: #fff;
}

.site-search-modal__submit {
  flex: 0 0 auto;
  height: 2.75rem;
  padding: 0 1.25rem;
  border: none;
  border-radius: 0.5rem;
  background: #18ac67;
  color: #fff;
  font-weight: 600;
  font-size: 0.9375rem;
  cursor: pointer;
}

.site-search-modal__submit:hover {
  background: #138454;
}

/* --------------------------------------------------------------------------
 * Текстовые страницы (cms_information): единая стилистика с главной
 * -------------------------------------------------------------------------- */
.site-information-page.site-article {
  --sa-green: #18ac67;
  --sa-green-dark: #138454;
  --sa-border: #e5e7eb;
  --sa-muted: #6b7280;
}

/* ——— Герой ——— */
.site-article__hero {
  background: #fff;
  border-bottom: 1px solid var(--sa-border);
  padding: 2.25rem 0 2rem;
}

@media (min-width: 768px) {
  .site-article__hero {
    padding: 2.75rem 0 2.25rem;
  }
}

.site-article__hero-inner {
  max-width: 100%;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.site-information-page.site-article .site-article__hero-inner {
  max-width: 100% !important;
  width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
}

.site-article__hero-accent {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.site-article__hero-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, var(--sa-green), var(--sa-green-dark));
  color: #fff;
  flex-shrink: 0;
}

.site-article__hero-icon svg {
  width: 1.5rem;
  height: 1.5rem;
}

.site-article__hero-line {
  flex: 1;
  height: 3px;
  border-radius: 9999px;
  background: linear-gradient(90deg, var(--sa-green), transparent);
  min-width: 2rem;
}

.site-article__h1 {
  margin: 0 0 1rem;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #111827;
}

.site-article__lead {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: #4b5563;
}

.site-article__source {
  margin: 1rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: var(--sa-muted);
}

.site-article__link {
  color: var(--sa-green);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-article__link:hover {
  text-decoration: none;
}

/* ——— Три карточки-преимущества ——— */
.site-article__section--features {
  padding: 2.5rem 0;
  background: #fff;
}

.site-article__feature-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  max-width: 64rem;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 768px) {
  .site-article__feature-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

.site-article__feature {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.5rem 1.25rem;
  border-radius: 1rem;
  border: 1px solid #dcfce7;
  background: #f0fdf7;
  box-shadow: 0 1px 2px rgba(24, 172, 103, 0.06);
}

.site-article__feature-icon {
  width: 4rem;
  height: 4rem;
  border-radius: 9999px;
  background: var(--sa-green);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}

.site-article__feature-icon svg {
  width: 2rem;
  height: 2rem;
}

.site-article__feature-title {
  margin: 0 0 0.5rem;
  font-size: 1.125rem;
  font-weight: 500;
  color: #111827;
}

.site-article__feature-text {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #4b5563;
}

/* ——— Двухколоночный блок + текст ——— */
.site-article__section--content {
  padding: 2.75rem 0 3rem;
  border-top: 1px solid #f3f4f6;
  background: linear-gradient(to bottom, #fafafa 0%, #fff 12%);
}

.site-article__split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  align-items: start;
}

@media (min-width: 1024px) {
  .site-article__split {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
    gap: 2.5rem;
    column-gap: 3rem;
  }

  .site-article__aside {
    position: sticky;
    top: 7rem;
  }
}

.site-article__main {
  display: flex;
  flex-direction: column;
  gap: 2.25rem;
  min-width: 0;
}

.site-article__block {
  margin: 0;
}

.site-article__h2 {
  margin: 0 0 1rem;
  font-size: 1.625rem;
  font-weight: 500;
  line-height: 1.25;
  color: #111827;
  letter-spacing: -0.02em;
}

.site-article__h2--sub {
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
}

.site-article__p {
  margin: 0 0 1rem;
  font-size: 1rem;
  line-height: 1.65;
  color: #374151;
}

.site-article__p:last-child {
  margin-bottom: 0;
}

.site-article__fineprint {
  margin: 1rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--sa-muted);
}

.site-article__table-wrap {
  overflow-x: auto;
  margin-top: 0.5rem;
  border-radius: 0.75rem;
  border: 1px solid var(--sa-border);
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

.site-article__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  text-align: left;
}

.site-article__table thead {
  background: #f9fafb;
  color: #374151;
}

.site-article__table th,
.site-article__table td {
  padding: 0.625rem 1rem;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: top;
}

.site-article__table tbody tr:last-child td {
  border-bottom: none;
}

.site-article__table th {
  font-weight: 600;
}

.site-article__table-num {
  white-space: nowrap;
  font-weight: 600;
  color: #111827;
  text-align: right;
}

.site-article__list {
  margin: 0;
  padding: 0;
  list-style: none;
  color: #374151;
  font-size: 1rem;
  line-height: 1.55;
}

.site-article__list--bullet li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.75rem;
}

.site-article__list--bullet li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 9999px;
  background: var(--sa-green);
}

.site-article__list--bullet li:last-child {
  margin-bottom: 0;
}

.site-article__list--ordered {
  list-style: decimal;
  padding-left: 1.25rem;
}

.site-article__list--ordered li {
  margin-bottom: 0.65rem;
  padding-left: 0.35rem;
}

.site-article__list--ordered li::marker {
  color: var(--sa-green);
  font-weight: 700;
}

.site-article__list--check li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.5rem;
}

.site-article__list--check li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--sa-green);
  font-weight: 700;
  font-size: 0.875rem;
}

.site-article__list--num {
  counter-reset: sa-step;
  list-style: none;
  padding-left: 0;
}

.site-article__list--num li {
  position: relative;
  padding-left: 2rem;
  margin-bottom: 0.5rem;
  counter-increment: sa-step;
}

.site-article__list--num li::before {
  content: counter(sa-step);
  position: absolute;
  left: 0;
  top: 0.1em;
  width: 1.375rem;
  height: 1.375rem;
  border-radius: 9999px;
  background: rgba(24, 172, 103, 0.12);
  color: var(--sa-green-dark);
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.site-article__callout {
  margin: 0;
  padding: 1rem 1.125rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.55;
}

.site-article__callout--amber {
  border: 1px solid #fde68a;
  background: #fffbeb;
  color: #78350f;
}

.site-article__callout--blue {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
}

/* ——— FAQ ——— */
.site-article__section--faq {
  padding: 2.75rem 0 3.5rem;
  background: #fff;
  border-top: 1px solid var(--sa-border);
}

.site-article__faq-inner {
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}

.site-article__faq-title {
  margin: 0 0 1.75rem;
  font-size: 1.625rem;
  font-weight: 500;
  text-align: center;
  color: #111827;
  letter-spacing: -0.02em;
}

.site-article__faq-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.site-article__details {
  border: 1px solid var(--sa-border);
  background: #fff;
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.site-article__details summary {
  list-style: none;
  padding: 1rem 1.25rem;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.9375rem;
  color: #111827;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.site-article__details summary::-webkit-details-marker {
  display: none;
}

.site-article__details-chevron {
  flex-shrink: 0;
  font-size: 0.65rem;
  opacity: 0.45;
  transition: transform 0.2s ease;
}

.site-article__details[open] .site-article__details-chevron {
  transform: rotate(180deg);
}

.site-article__details[open] summary {
  border-bottom: 1px solid #f3f4f6;
}

.site-article__details > p {
  margin: 0;
  padding: 0.75rem 1.25rem 1.125rem;
  color: #4b5563;
  font-size: 0.9375rem;
  line-height: 1.55;
}


.site-lead-card {
  box-shadow:
    0 4px 6px -1px rgba(15, 23, 42, 0.06),
    0 2px 4px -2px rgba(15, 23, 42, 0.05);
}

.site-lead-card__form {
  display: flex;
  flex-direction: column;
  margin: 0;
}

.site-lead-card__header {
  padding: 1.375rem 1.5rem 1rem;
  border-bottom: 1px solid #f3f4f6;
}

@media (min-width: 640px) {
  .site-lead-card__header {
    padding: 1.5rem 1.75rem 1.125rem;
  }
}

.site-lead-card__title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.3;
  color: #111827;
  letter-spacing: -0.02em;
}

@media (min-width: 640px) {
  .site-lead-card__title {
    font-size: 1.375rem;
  }
}

.site-lead-card__lead {
  margin: 0.625rem 0 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #6b7280;
}

.site-lead-card__fields {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.25rem 1.5rem 1rem;
}

@media (min-width: 640px) {
  .site-lead-card__fields {
    padding: 1.375rem 1.75rem 1.125rem;
    gap: 1.125rem;
  }
}

.site-lead-card__field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.site-lead-card__label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151;
  line-height: 1.3;
}

.site-lead-card__input,
.site-lead-card__textarea {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  border: 1px solid #d1d5db;
  border-radius: 0.5rem;
  background: #fafafa;
  color: #111827;
  font-size: 1rem;
  line-height: 1.45;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    background-color 0.15s ease;
}

.site-lead-card__input {
  min-height: 2.75rem;
  padding: 0.5625rem 0.875rem;
}

.site-lead-card__textarea {
  min-height: 5.5rem;
  padding: 0.5625rem 0.875rem;
  resize: vertical;
  max-height: 240px;
}

.site-lead-card__input:hover,
.site-lead-card__textarea:hover {
  border-color: #c4c9d1;
  background: #fff;
}

.site-lead-card__input::placeholder,
.site-lead-card__textarea::placeholder {
  color: #9ca3af;
}

.site-lead-card__input:focus,
.site-lead-card__textarea:focus {
  outline: none;
  border-color: #18ac67;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(24, 172, 103, 0.2);
}

.site-lead-card__footer {
  padding: 0 1.5rem 1.375rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 640px) {
  .site-lead-card__footer {
    padding: 0 1.75rem 1.5rem;
    gap: 1.125rem;
  }
}

.site-lead-card__submit {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0.75rem 1rem;
  border: none;
  border-radius: 0.5rem;
  background: #18ac67;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(24, 172, 103, 0.35);
  transition: background 0.15s ease;
}

.site-lead-card__submit:hover {
  background: #138454;
}

.site-lead-card__note {
  margin: 0;
  padding-top: 0.25rem;
  text-align: center;
  font-size: 0.6875rem;
  line-height: 1.45;
  color: #9ca3af;
}

.site-lead-card__messengers {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .site-lead-card__messengers {
    display: none;
  }
}

.site-project-lead-modal {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.site-project-lead-modal[hidden] {
  display: none;
}

.site-project-lead-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.56);
  backdrop-filter: blur(2px);
}

.site-project-lead-modal__dialog {
  position: relative;
  width: min(560px, 100%);
  max-height: min(90vh, 900px);
  overflow: auto;
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 22px 54px rgba(15, 23, 42, 0.32);
}

.site-project-lead-modal .site-lead-card {
  background: #fff;
  border-radius: 1rem;
}

.site-project-lead-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 2;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 9999px;
  background: #f3f4f6;
  color: #111827;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.site-project-lead-modal__close:hover {
  background: #e5e7eb;
}

body.site-project-lead-modal-open {
  overflow: hidden;
}

@media (max-width: 639.98px) {
  .site-project-lead-modal {
    padding: 0.75rem;
  }

  .site-project-lead-modal__dialog {
    border-radius: 0.875rem;
    max-height: 92vh;
  }
}

/* Главная: вставка страницы материалов без фото в карточках */
.site-home-materials-embed .space-y-12 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

.site-home-materials-embed .space-y-12 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0;
}

.site-home-materials-embed .space-y-12 [data-slot='card'] > .grid {
  grid-template-columns: 1fr;
}

.site-home-materials-embed .space-y-12 [data-slot='card'] > .grid > .relative {
  display: none;
}

.site-home-materials-embed .site-materials-cta {
  display: none;
}

@media (min-width: 1024px) {
  .site-home-materials-embed .space-y-12 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
  }
}

/* Каталог / карточки проектов: свайп по обложке только на ПК; на мобильных — обычный клик по ссылке */
.site-project-card-image-link[data-site-gallery-srcs] {
  touch-action: auto;
}

@media (min-width: 1024px) {
  .site-project-card-image-link[data-site-gallery-srcs] {
    touch-action: pan-y pinch-zoom;
  }
}

@media (hover: hover) and (pointer: fine) {
  .site-project-card-image-link--multi {
    cursor: ew-resize;
  }
}

@media (max-width: 1023px) {
  .site-project-card-image-link--multi {
    cursor: pointer;
  }

  .site-project-card-slider-dots {
    display: none !important;
  }
}

/* Точки слайдера по обложке карточки проекта */
.site-project-card-slider-dots {
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 6px;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}

.site-project-card-slider-dot {
  width: 7px;
  height: 7px;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.5);
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.25);
  flex-shrink: 0;
  transition: transform 0.15s ease, background 0.15s ease;
}

.site-project-card-slider-dot.is-active {
  background: #fff;
  transform: scale(1.18);
}

/* Главная — «Экологичность и комфорт»: нижний отступ у блока с текстом в карточке */
.site-home-eco-cards > [data-slot='card'] [data-slot='card-header'] {
  padding-bottom: 1rem;
}

@media (max-width: 767.98px) {
  .site-home-eco-cards > [data-slot='card'] [data-slot='card-header'] {
    padding-bottom: 0.75rem;
  }
}

