button, input, select, textarea {
    font-family: inherit;
}

html {
  scroll-behavior: smooth;
}

section[id] {
  scroll-margin-top: 100px; /* подстройка под высоту .header-fixed */
}

/* === Базовые стили === */
body {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    background-color: #fff;
    color: #333;
}
  
/* === Шапка сайта === */
.header-fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background-color: #ffffff;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    z-index: 50;
}
  
.header-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: nowrap;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 1.5rem; /* расстояние между логотипом и меню */
}
  
/* Логотип */
.logo-image img {
  height: 45px;
  object-fit: contain;
}

.logo-image-white img {
  height: 60px;
  object-fit: contain;
}

.logo-text {
    font-family: 'Pacifico', cursive, sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    color: #e31e24;
    margin-right: 2rem;
}
  
/* Меню */
.main-nav {
    display: none;
    gap: 0.8rem;
}

@media (min-width: 1024px) {
  .main-nav {
    display: flex;
  }
}
  
@media (min-width: 768px) {
    .main-nav {
      display: flex;
    }
}
  
.main-nav a {
    text-decoration: none;
    color: #4a5568;
    font-weight: 600;
    transition: color 0.3s ease;
    font-size: 0.95rem;
    white-space: nowrap;
}
  
.main-nav a:hover {
    color: #e31e24;
}
  
/* Контактная информация в шапке */
.contact-flex {
    display: flex;
    align-items: center;
    gap: 1rem;
}
  
.contact-block {
    display: none;
    flex-direction: column;
    align-items: flex-end;
}
  
@media (min-width: 768px) {
    .contact-block {
      display: flex;
    }
}
  
.contact-phone {
    color: #e31e24;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.contact-phone:hover {
    opacity: 0.8;
    text-decoration: none;
}

.desktop-phone {
  display: inline;
}

.mobile-phone {
  display: none;
}

@media (max-width: 767px) {
  .desktop-phone {
    display: none;
  }

  .mobile-phone {
    display: inline;
  }
}
  
.contact-schedule {
    font-size: 0.875rem;
    color: #6b7280;
}
  
/* Кнопка обратного звонка в шапке */
.callback-button {
    background-color: #e31e24;
    color: #ffffff;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    white-space: nowrap;
    font-weight: 500;
    font-family: inherit;
    font-size: 1rem;
    border: 2px solid #e31e24;
    cursor: pointer;
    display: none;
    transition: all 0.3s ease;
}
  
.callback-button:hover {
    background-color: #ffffff;
    color: #e31e24;
    border: 2px solid #e31e24;
}
  
@media (min-width: 768px) {
    .callback-button {
      display: block;
    }
}

/* Модальное окно "Обратный звонок" */
.callback-modal {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.callback-modal.open {
  display: flex;
}

.callback-modal-content {
  background: white;
  border-radius: 12px;
  padding: 2rem;
  width: 90%;
  max-width: 400px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  position: relative;
}

.callback-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}

.callback-modal-header h3 {
  font-size: 1.25rem;
  margin: 0;
}

.close-modal {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #9ca3af;
  cursor: pointer;
}

.close-modal:hover {
  color: #4b5563;
}

.form-group {
  margin-bottom: 1rem;
}

.form-group label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 500;
}

.form-group input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-family: inherit;
  font-size: 1rem;
}

.callback-submit {
  width: 100%;
  padding: 0.75rem;
  background-color: #e31e24;
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.callback-submit:hover {
  background-color: #c1171b;
}

/* Ошибки валидации формы "Обратный звонок" */
.input-error {
  border: 1px solid #e31e24 !important;
}

.error-message {
  color: #e31e24;
  font-size: 0.875rem;
  margin-top: 4px;
  display: block;
}
  
/* === Бургер-меню === */
.burger-button {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  right: 1.5rem;
  cursor: pointer;
  width: 40px;
  height: 40px;
}

/* Скрытие десктопного меню */
@media (max-width: 1023px) {
  .main-nav {
    display: none;
  }
}
  
@media (min-width: 768px) {
    .burger-button {
      display: none;
      position: absolute;
      right: 30rem;
    }
}

/* Показываем Бургер-меню на планшетах */
@media (max-width: 1023px) {
  .burger-button {
    display: flex;
  }
}
  
.burger-button i {
    color: #e31e24;
}

/* Модальное бургер-меню */
.mobile-nav-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: none;
  z-index: 999;
}

.mobile-nav-overlay.active {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding-top: 0.5rem; /* отступ от шапки */
}

.mobile-nav-content {
  background-color: #fff;
  border-radius: 12px;
  padding: 1.5rem 1rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  width: 90%;
  max-width: 320px;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.mobile-nav-content a {
  font-size: 1rem;
  color: #4a5568;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.3s ease;
}

.mobile-nav-content a:hover {
  color: #e31e24;
}

@keyframes slideDown {
  from {
    transform: translateY(-20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@media (min-width: 1024px) {
  .mobile-nav-overlay {
    display: none !important;
  }
}

  
/* === Поиск и иконки === */
.search-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0.5rem 1rem;
    border-top: 1px solid #f3f4f6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    background-color: #fff;
}
  
.search-wrapper {
    position: relative;
    width: 100%;
    max-width: 28rem;
    margin-bottom: 0.5rem;
}
  
.search-input {
    width: 100%;
    padding: 0.5rem 1rem;
    padding-left: 2.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    outline: none;
    font-size: 1rem;
    font-family: inherit;
}
  
.search-input:focus {
    box-shadow: 0 0 0 2px rgba(227, 30, 36, 0.2);
}
  
.search-icon {
    position: absolute;
    top: 50%;
    left: 0.75rem;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
}
  
/* Иконки корзины и пользователя */

.header-icons {
    display: flex;
    align-items: center;
    gap: 1rem;
}
  
.cart-icon,
.user-icon {
    position: relative;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
  
.cart-icon i,
.user-icon i {
    color: #4a5568;
}

.cart-icon:hover i,
.user-icon:hover i {
    color: #e31e24;
    transition: color 0.3s ease;
}

@media (max-width: 767px) {
    .search-container {
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
        justify-content: space-between;
        width: 100%;
        padding: 0.5rem 0;
    }

    .search-wrapper {
        flex: 1 1 auto;
        max-width: calc(100% - 100px); /* место для иконок */
        margin-bottom: 0;
        padding-left: 0.5rem;
    }

    .search-input {
        font-size: 0.9rem;
        padding-left: 2.5rem;
        padding-right: 1rem;
        width: 80%;
    }

    .header-icons {
        display: flex;
        gap: 0.5rem;
        min-width: 80px;
        flex-shrink: 0;
        justify-content: flex-end;
    }

    .cart-icon,
    .user-icon {
        align-items: center;
        justify-content: right;
        position: absolute;
        margin-left: 6rem;
    }
}
  
/* Счётчик корзины */
.cart-counter {
    position: absolute;
    top: -6px;
    right: -6px;
    background-color: #e31e24;
    color: #fff;
    font-size: 0.75rem;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: none; /* 👈 скрыт изначально */
    align-items: center;
    justify-content: center;
    font-weight: bold;
}

/* === Hero Section === */
.hero-section {
    background-image: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
      url('../images/6043f3c2762333aec5d73af6540e881e.jpg');
    background-size: cover;
    background-position: center;
    padding: 4rem 1rem;
}
  
.hero-content {
    max-width: 1280px; /*max-width: 1280px;*/
    margin: 0 auto;
    text-align: center;
}

.hero-content-promo {
  max-width: 900px;
  background-color: #fff;
  padding: 0.8rem;
  border-radius: 20px;
  margin: 2rem auto;
}
  
.hero-content h1 {
  font-size: 3.5rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 1rem;
}
  
.hero-content p {
  max-width: 800px;
  margin: 2rem auto;
}

.hero-content-p1 {
  font-size: 1.8rem;
  color: #b91c1c;
  font-weight: 600;
}

.hero-content-p2 {
  font-size: 1rem;
  font-weight: 600;
  color: #374151;
}
  
.hero-buttons {
    display: flex;
    justify-content: center;   /* центрируем группу */
    align-items: center;
    gap: 1.5rem;               /* расстояние между кнопками */
    flex-wrap: wrap;
    margin-top: 2rem;
}
  
.btn-hero {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem 2.5rem;
    color: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
    font-weight: 600;
    font-size: 1rem;
    border-radius: 15px;
    white-space: nowrap;
    transition: all 0.3s;
}

@media (max-width: 640px) {
    .hero-buttons {
        flex-direction: column;   /* кнопки друг под другом */
        gap: 1rem;
    }

    .btn-hero {
        width: 50%;    /* было 100% */
        max-width: 320px;         /* аккуратная ширина */
        text-align: center;
    }
}

.btn-promo1 {
  background: linear-gradient(45deg, #ec003f, #e7000b, #c70036);
}

.btn-promo2 {
  background: linear-gradient(45deg, #009966, #00a63e, #007a55);
}

/* SVG снежинки (одинаковая форма, разный размер/позиция) */
:root {
  --snowflake-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='4' stroke-linecap='round'%3E%3Cpath d='M32 6v52'/%3E%3Cpath d='M10 19l44 26'/%3E%3Cpath d='M54 19L10 45'/%3E%3Cpath d='M32 6l-6 8'/%3E%3Cpath d='M32 6l6 8'/%3E%3Cpath d='M32 58l-6-8'/%3E%3Cpath d='M32 58l6-8'/%3E%3Cpath d='M10 19l10 0'/%3E%3Cpath d='M54 19l-10 0'/%3E%3Cpath d='M10 45l10 0'/%3E%3Cpath d='M54 45l-10 0'/%3E%3C/g%3E%3C/svg%3E");
  --snowflake-svg-blue: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23bfe7ff' stroke-width='4' stroke-linecap='round'%3E%3Cpath d='M32 6v52'/%3E%3Cpath d='M10 19l44 26'/%3E%3Cpath d='M54 19L10 45'/%3E%3Cpath d='M32 6l-6 8'/%3E%3Cpath d='M32 6l6 8'/%3E%3Cpath d='M32 58l-6-8'/%3E%3Cpath d='M32 58l6-8'/%3E%3Cpath d='M10 19l10 0'/%3E%3Cpath d='M54 19l-10 0'/%3E%3Cpath d='M10 45l10 0'/%3E%3Cpath d='M54 45l-10 0'/%3E%3C/g%3E%3C/svg%3E");
   --gift-svg: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHJlY3QgeD0iMyIgeT0iOSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiByeD0iMiIgZmlsbD0iI2ZmYjcwMyIvPjxwYXRoIGQ9Ik0zIDEyaDE4IiBzdHJva2U9IiNkOTA0MjkiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik0xMiA5djEyIiBzdHJva2U9IiNkOTA0MjkiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik03LjUgOWMtMi4yIDAtMy42LTIuNi0xLjYtMy45QzcuNCA0IDkuNyA1LjYgMTIgOWMyLjMtMy40IDQuNi01IDYuMS0zLjkgMiAxLjMuNiAzLjktMS42IDMuOUg3LjV6IiBmaWxsPSIjZDkwNDI5Ii8+PC9zdmc+");
  --snowflake-svg-gray: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGJlN2YxIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDJ2MjAiLz48cGF0aCBkPSJNNC45IDQuOWwxNC4yIDE0LjIiLz48cGF0aCBkPSJNMTkuMSA0LjlMNC45IDE5LjEiLz48cGF0aCBkPSJNMiAxMmgyMCIvPjwvc3ZnPg==");
}

.btn-hero::before,
.btn-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
}

/* 2 снежинки в ::before */
.btn-hero::before {
  background-image: var(--snowflake-svg), var(--snowflake-svg);
  background-repeat: no-repeat;
  background-size: 18px 18px, 14px 14px;
  background-position: 10% 55%, 78% 32%;
}

/* 1 снежинка в ::after */
.btn-hero::after {
  background-image: var(--snowflake-svg);
  background-repeat: no-repeat;
  background-size: 16px 16px;
  background-position: 55% 83%;
}

.btn-hero:hover {
  transform: scale(1.04);
}

/* Появление/исчезновение снежинок при hover */
.btn-hero:hover::before {
  opacity: 1;
  animation: snowPulseA 1.2s ease-in-out infinite;
}

.btn-hero:hover::after {
  opacity: 1;
  animation: snowPulseB 1.05s ease-in-out infinite;
}

@keyframes snowPulseA {
  0%   { opacity: 0; transform: translateY(2px) scale(0.95); }
  45%  { opacity: 0.9; transform: translateY(-2px) scale(1.02); }
  100% { opacity: 0; transform: translateY(-6px) scale(1.06); }
}

@keyframes snowPulseB {
  0%   { opacity: 0; transform: translateY(0) scale(0.9); }
  50%  { opacity: 0.85; transform: translateY(-3px) scale(1.03); }
  100% { opacity: 0; transform: translateY(-7px) scale(1.08); }
}

/* Безопасность для пользователей с отключенной анимацией */
@media (prefers-reduced-motion: reduce) {
  .btn-hero,
  .btn-hero::before,
  .btn-hero::after {
    transition: none !important;
    animation: none !important;
  }

  .btn-hero:hover {
    transform: none;
  }

  .btn-hero:hover::before,
  .btn-hero:hover::after {
    opacity: 1; /* просто показать снежинки без анимации */
  }
}

  
.btn-primary:hover {
    background-color: #c1171b;
}
  
.btn-outline {
    background-color: transparent;
    color: #e31e24;
    border: 2px solid #e31e24;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-weight: 600;
    font-family: inherit;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
}
  
.btn-outline:hover {
    background-color: #e31e24;
    color: #fff;
}

a.btn-outline {
  text-decoration: none;
}

a.btn-outline:hover {
  text-decoration: none;
}

/* Hero: плашка "Акция действует ограниченное время" */
.price-download {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

.hero-deadline {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;

  padding: 0.85rem 1.4rem;
  border-radius: 9999px;

  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(252, 218, 124, 0.95);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);

  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.hero-deadline__icon {
  width: 2rem;
  height: 2rem;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 0.75rem;
  background: #fff;
  border: 1px solid rgba(227, 30, 36, 0.25);
  color: #e31e24;

  flex: 0 0 auto;
}

.hero-deadline__icon i {
  font-size: 1.25rem;
  line-height: 1;
}

.hero-deadline__text {
  font-weight: 600;
  color: #111827;
  line-height: 1.2;
}

/* Адаптив */
@media (max-width: 480px) {
  .hero-deadline {
    padding: 0.75rem 1rem;
    gap: 0.6rem;
    max-width: 92vw;
  }

  .hero-deadline__text {
    font-size: 0.95rem;
    text-align: center;
  }
}

/* === Блок Новогодние акции === */
/* === Новогодние акции: блок с карточками и снегом (CSS-only) === */
.ny-offers {
  position: relative;
  overflow: hidden;
  padding: 4rem 1rem;
  background: linear-gradient(180deg, #fff0f0 0%, #fff6f6 100%);
}

/* JS-снег в фоне для секции .ny-offers */
.ny-snow {
  position: absolute;
  inset: 0;
  z-index: 0;            /* фон */
  pointer-events: none;
  overflow: hidden;
}

.ny-snow__flake {
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;           /* базово, JS будет менять на 14/16/18 */
  height: 16px;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.7;
  will-change: transform;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,0.15));
}

/* prefers-reduced-motion: JS сам не стартует, но на всякий случай скрываем слой */
@media (prefers-reduced-motion: reduce) {
  .ny-snow { display: none !important; }
}

.ny-offers__container {
  position: relative;
  z-index: 1;
  max-width: 1180px; /*max-width: 900px;*/
  margin: 0 auto;
}

/* 2) ПЛАШКА-ПИСЬМО + ДЕКОР ИКОНКИ */
.ny-letter {
  position: relative;
  overflow: hidden;
  max-width: 980px;
  margin: 3rem auto 2.5rem;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(252, 218, 124, 0.85);
  border-radius: 18px;
  padding: 3rem 2.5rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  text-align: center;
}

.ny-letter__decor {
  position: absolute;
  z-index: 0;
  opacity: 0.22;
  pointer-events: none;
  font-size: 4.2rem;
  line-height: 1;
  filter: blur(0.2px);
}

.ny-letter__decor i {
  font-size: 4.2rem;
  line-height: 1;
  display: block;
}

.ny-letter__decor--gift {
  top: 1.2rem;
  right: 1.6rem;
  transform: rotate(8deg);
}

.ny-letter__decor--tree {
  left: 1.4rem;
  bottom: 1.2rem;
  transform: rotate(-8deg);
  color: #16a34a;
}

.ny-letter__title,
.ny-letter__text,
.ny-letter__sign {
  position: relative;
  z-index: 1;
}

.ny-letter__title {
  margin: 0 0 1rem;
  font-size: 2.2rem;
  font-weight: 900;
  color: #9b1c1c;
}

.ny-letter__text {
  margin: 0 0 1rem;
  font-size: 1.15rem;
  color: #374151;
  line-height: 1.7;
}

.ny-letter__sign {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800;
  color: #9b1c1c;
}

.ny-heading {
  text-align: center;
  margin-bottom: 2rem;
  padding: 2rem 0;
}

.ny-heading__title {
  margin: 0 0 0.5rem;
  font-size: 2.2rem;
  font-weight: 900;
  color: #9b1c1c;
}

.ny-heading__subtitle {
  margin: 0;
  color: #6b7280;
  font-weight: 600;
}

/* Сетка карточек */
.ny-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
  justify-items: center;
}

.ny-card {
  width: 100%;
  display: flex;
  flex-direction: column;
  height: 100%;
  max-width: 360px;               /* шире */
  background: rgba(255,255,255,0.92);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.12);
  overflow: hidden;
  transform: translateZ(0);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ny-card:hover {
  transform: translateY(-10px);   /* оставить */
  box-shadow: 0 18px 40px rgba(0,0,0,0.18);
}

.ny-card__top {
  padding: 1.5rem 1rem;          /* больше */
  font-size: 0.95rem;            /* больше */
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  text-align: center;
  background: linear-gradient(90deg, #e7000b, #c70036);
}

.ny-card--green .ny-card__top {
  background: linear-gradient(90deg, #00a63e, #007a55);
}

.ny-card__top--orange {
  background: linear-gradient(90deg, #f97316, #ea580c);
}

/* “витрина” под картинку как на скриншоте */
.ny-card__media {
  margin: 1rem;
  border-radius: 14px;
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ny-card--red .ny-card__media { background: rgba(231, 0, 11, 0.06); }
.ny-card--green .ny-card__media { background: rgba(0, 166, 62, 0.06); }
.ny-card--orange .ny-card__media { background: rgba(249, 115, 22, 0.06); }

.ny-card__media img {
  width: 250px;
  height: 250px;
  object-fit: contain;
  display: block;
}

.ny-card__body {
  padding: 0.75rem 1.25rem 1.25rem;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.ny-card__title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1rem;
  font-size: 1.35rem;
  font-weight: 900;
  color: #111827;
}

.ny-card__badge {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  color: #fff;
  font-size: 22px;
  flex: 0 0 auto;
  box-shadow: 0 10px 22px rgba(0,0,0,0.12);
}

.ny-card__badge--red { background: #e7000b; }
.ny-card__badge--green { background: #00a63e; }
.ny-card__badge--orange { background: #f97316; }

.ny-card__text {
  margin: 0 0 1.25rem;
  color: #6b7280;
  font-size: 1rem;
  line-height: 1.65;
}

/* Кнопка в карточке */
.ny-card__btn {
  box-sizing: border-box;
  display: inline-flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  gap: 0.6rem;
  margin-top: auto;
  padding: 1.05rem 1rem;
  border-radius: 14px;
  font-weight: 800;
  color: #fff;
  text-decoration: none;
  transition: box-shadow 0.3s ease, filter 0.3s ease; /* без transform */
}



.btn-snow--red { background: linear-gradient(45deg, #ec003f, #e7000b, #c70036); }
.btn-snow--green { background: linear-gradient(45deg, #009966, #00a63e, #007a55); }
.btn-snow--orange { background: linear-gradient(45deg, #f97316, #ea580c); }

.btn-snow {
  position: relative;
  overflow: hidden;
}

/* снежинки на кнопке */
.btn-snow::before,
.btn-snow::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
}

.btn-snow::before {
  background-image: var(--snowflake-svg), var(--snowflake-svg);
  background-repeat: no-repeat;
  background-size: 18px 18px, 14px 14px;
  background-position: 18% 55%, 78% 32%;
}

.btn-snow::after {
  background-image: var(--snowflake-svg);
  background-repeat: no-repeat;
  background-size: 16px 16px;
  background-position: 55% 78%;
}

.btn-snow:hover {
  /* ВАЖНО: не увеличиваем, чтобы не вылезало из контейнера */
  transform: none;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
  filter: brightness(1.02);
}

.btn-snow:hover::before {
  opacity: 1;
  animation: snowPulseA 1.2s ease-in-out infinite;
}

.btn-snow:hover::after {
  opacity: 1;
  animation: snowPulseB 1.05s ease-in-out infinite;
}

/* 6) Адаптив */
@media (max-width: 980px) {
  .ny-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ny-letter { padding: 1.6rem 1.6rem; }
}

@media (max-width: 640px) {
  .ny-offers { padding: 3rem 1rem; }
  .ny-grid { grid-template-columns: 1fr; }
  .ny-letter__title { font-size: 1.7rem; }
  .ny-letter__text { font-size: 1rem; }
  .ny-letter__sign { font-size: 1.05rem; }
  .ny-letter__decor i { font-size: 3.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ny-snow { display: none !important; }
  .ny-card,
  .btn-snow,
  .btn-snow::before,
  .btn-snow::after {
    animation: none !important;
    transition: none !important;
  }
}

/* === Блок "Заморозь цену..." в конце .ny-offers === */
.ny-freeze {
  position: relative;
  overflow: hidden;
  max-width: 980px;
  margin: 3rem auto 0;

  background: rgba(255, 255, 255, 0.30); /* чтобы было видно снег за блоком */
  border: 1px solid rgba(252, 218, 124, 0.75);
  border-radius: 22px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.14);

  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.ny-freeze__inner {
  position: relative;
  z-index: 1;
  padding: 2.8rem 2.6rem 2.3rem;
  text-align: center;
}

.ny-freeze__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0.55rem 1.2rem;
  border-radius: 9999px;

  font-weight: 800;
  color: #fff;
  background: linear-gradient(45deg, #ec003f, #e7000b, #c70036);
  box-shadow: 0 10px 26px rgba(231, 0, 11, 0.25);
}

.ny-freeze__title {
  margin: 1.4rem 0 1.4rem;
  font-size: 2.2rem;
  font-weight: 900;
  line-height: 1.12;
  color: #9b1c1c;
}

.ny-freeze__note {
  max-width: 760px;
  margin: 0 auto;

  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 14px;

  padding: 1.25rem 1.3rem;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.10);

  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.ny-freeze__note-text {
  margin: 0 0 0.75rem;
  color: #374151;
  line-height: 1.7;
}

.ny-freeze__note-strong {
  margin: 0;
  font-weight: 900;
  color: #9b1c1c;
}

.ny-freeze__features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 2rem;
}

.ny-freeze-feature {
  display: block;               /* вместо flex */
  text-align: left;

  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(0, 0, 0, 0.07);
  border-radius: 14px;

  padding: 1.35rem 1.35rem 1.25rem;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.10);

  transform: translateZ(0);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.ny-freeze-feature:hover {
  transform: translateY(-6px) scale(1.03); /* как карточка "приподнялась" и увеличилась */
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.16);
  border-color: rgba(252, 218, 124, 0.95); /* рамка ярче */
}

.ny-freeze-feature__icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: #fff;
  font-size: 22px;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);

  margin-bottom: 1rem; /* чтобы заголовок был ниже иконки */
}

.ny-freeze-feature__icon--red { background: #e7000b; }
.ny-freeze-feature__icon--green { background: #00a63e; }
.ny-freeze-feature__icon--orange { background: #f97316; }

.ny-freeze-feature__title {
  margin: 0 0 0.55rem;
  font-weight: 900;
  font-size: 1.1rem;
  color: #111827;
}

.ny-freeze-feature__text {
  margin: 0;
  color: #6b7280;
  line-height: 1.55;
  font-size: 0.98rem;
}

/* Кнопка — используем существующие .hero-buttons + .btn-hero */
.ny-freeze__actions {
  justify-content: center;
  margin-top: 2rem;
}

/* Декор по углам */
.ny-freeze__decor {
  position: absolute;
  z-index: 0;
  opacity: 0.22;
  pointer-events: none;
  line-height: 1;
  filter: blur(0.2px);
}

.ny-freeze__decor--gift {
  top: 1.2rem;
  left: 1.4rem;
  font-size: 4.2rem;
  transform: rotate(-8deg);
}

.ny-freeze__decor--tree {
  top: 1.1rem;
  right: 1.4rem;
  font-size: 4.2rem;
  transform: rotate(8deg);
}

.ny-freeze__decor--snow {
  font-size: 3.6rem;
  opacity: 0.18;
}

.ny-freeze__decor--snow-l {
  left: 1.5rem;
  bottom: 1.2rem;
}

.ny-freeze__decor--snow-r {
  right: 1.5rem;
  bottom: 1.2rem;
}

/* Адаптив */
@media (max-width: 980px) {
  .ny-freeze__features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ny-freeze__inner {
    padding: 2rem 1.25rem 1.6rem;
  }

  .ny-freeze__title {
    font-size: 1.75rem;
  }

  .ny-freeze__features {
    grid-template-columns: 1fr;
  }

  .ny-freeze__decor--gift,
  .ny-freeze__decor--tree {
    font-size: 3.4rem;
  }

  .ny-freeze__decor--snow {
    font-size: 3.0rem;
  }
}

/* === Секция "Почему мы заботимся о вас" === */
.care-section {
  background: #f6feff;
  padding: 4rem 1rem;
}

.care-container {
  max-width: 1180px;
  margin: 0 auto;
}

.care-heading {
  text-align: center;
  margin-bottom: 2.6rem;
}

.care-title {
  margin: 0 0 0.75rem;
  font-size: 2.6rem;
  line-height: 1.1;
  font-weight: 900;
  color: #8b1a24;
}

.care-subtitle {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: #6b7280;
}

.care-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.care-card {
  background: #fff;
  border-radius: 18px;
  padding: 2.2rem 2rem;
  text-align: center;

  border: 1px solid rgba(17, 24, 39, 0.10);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.10);

  transform: translateZ(0);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.care-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 44px rgba(0, 0, 0, 0.14);
}

.care-icon {
  width: 78px;
  height: 78px;
  border-radius: 18px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin: 0 auto 1.35rem;
  color: #fff;
  font-size: 34px;

  box-shadow: 0 14px 26px rgba(0, 0, 0, 0.16);
}

.care-icon--red { background: #e7000b; }
.care-icon--green { background: #00a63e; }
.care-icon--orange { background: #f97316; }

.care-card--red { border-color: rgba(231, 0, 11, 0.18); }
.care-card--green { border-color: rgba(0, 166, 62, 0.18); }
.care-card--orange { border-color: rgba(249, 115, 22, 0.18); }

.care-card--red:hover { border-color: rgba(231, 0, 11, 0.28); }
.care-card--green:hover { border-color: rgba(0, 166, 62, 0.28); }
.care-card--orange:hover { border-color: rgba(249, 115, 22, 0.28); }

.care-card__title {
  margin: 0 0 0.9rem;
  font-size: 1.35rem;
  font-weight: 900;
  color: #111827;
}

.care-card__text {
  margin: 0;
  color: #6b7280;
  line-height: 1.65;
  font-size: 1rem;
}

/* Адаптив */
@media (max-width: 980px) {
  .care-grid {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .care-title {
    font-size: 2rem;
  }
}



/* === Корзина (справа) === */
/* Плавное появление корзины */
.cart-modal {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: 100%;
    max-width: 400px;
    background: #fff;
    box-shadow: -4px 0 10px rgba(0, 0, 0, 0.1);
    transform: translateX(100%);
    transition: transform 0.3s ease, opacity 0.3s ease;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    opacity: 0;
    pointer-events: none;
}
  
.cart-modal.open {
    transform: translateX(0);
    opacity: 1;
    pointer-events: all;
}
  
.cart-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid #e5e7eb;
}

.cart-items {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}

.cart-items.empty {
    overflow-y: hidden;
}
  
.cart-footer {
    border-top: 1px solid #e5e7eb;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.cart-actions button {
  margin-top: 0.5rem;
}

.cart-actions button:first-of-type {
  margin-top: 1rem;
}

#checkout-btn {
    width: 100%;
    background: #e31e24;
    color: white;
    padding: 0.75rem;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

#checkout-btn:hover {
    background: #c1171b;
    color: #ffffff;
}

#checkout-btn:disabled {
    background-color: #d1d5db;
    color: #ffffff;
    cursor: not-allowed;
}

#continue-shopping-btn {
    width: 100%;
    background: #ffffff;
    color: #e31e24;
    padding: 0.75rem;
    border: 2px solid #e31e24;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

#continue-shopping-btn:hover {
    background: #e31e24;
    color: #ffffff;
}

#download-offer {
  width: 100%;
  font-size: 0.8rem;
}

#download-offer:disabled {
    background-color: #d1d5db;
    border: 2px solid #d1d5db;
    color: #ffffff;
    cursor: not-allowed;
}

.cart-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
  
.cart-item-title {
    font-weight: 500;
}

.cart-item button {
    background: none;
    border: none;
    color: #9ca3af;
    font-size: 1.2rem;
    cursor: pointer;
    margin-left: 0.5rem;
}
  
.cart-item button:hover {
    color: #4b5563;
}
  
.cart-quantity {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
  
.cart-quantity button {
    background: #f3f4f6;
    border: none;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    border-radius: 4px;
}
  
.cart-quantity span {
    min-width: 20px;
    text-align: center;
}

.cart-modal-content {
    display: flex;
    flex-direction: column;
    height: 100%;
    max-height: 90vh;
    overflow-y: auto;
    scroll-behavior: smooth;
}

/* Пустая корзина */
.cart-empty {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: #6b7280; /* мягкий серый */
    font-size: 1rem;
    padding: 2rem;
    text-align: center;
}
  
.cart-empty i {
    font-size: 3rem;
    color: #d1d5db;
    margin-bottom: 1rem;
    display: inline-block;
}

#close-cart-modal {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: #9ca3af; /* мягкий серый */
    cursor: pointer;
    transition: color 0.2s ease;
}
  
#close-cart-modal:hover {
    color: #4b5563; /* чуть темнее при наведении */
}
  
/* === Всплывающие уведомления корзины === */
/* Контейнер для уведомлений */
.toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 1100;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Уведомление о добавлении товара */
.toast-add {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 1rem;
  min-width: 300px;
  max-width: 400px;
  animation: slideIn 0.3s ease forwards;
}

.toast-add-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}

.toast-add-title {
  font-weight: 600;
  color: #111827;
}

.toast-add-product {
  color: #6b7280;
  font-size: 0.95rem;
  margin-bottom: 0.75rem;
}

.toast-add-btn {
  background: #e31e24;
  color: white;
  border: none;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  font-weight: 500;
  width: 100%;
  cursor: pointer;
}

.toast-add-close {
  background: none;
  border: none;
  font-size: 1.25rem;
  color: #9ca3af;
  cursor: pointer;
}

.toast-add-close:hover {
  color: #4b5563;
}

/* Уведомление об удалении товара */
.toast-remove {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  padding: 0.75rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 300px;
  max-width: 400px;
  animation: slideIn 0.3s ease forwards;
}

.toast-remove-title {
  flex: 1;
  font-weight: 500;
  color: #111827;
}

.toast-remove-undo {
  background: none;
  border: none;
  color: #e31e24;
  font-weight: 500;
  cursor: pointer;
}

.toast-remove-close {
  background: none;
  border: none;
  font-size: 1.25rem;
  color: #9ca3af;
  cursor: pointer;
}

.toast-remove-close:hover {
  color: #4b5563;
}

/* Анимация */
@keyframes slideIn {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

/* ======= Модальное окно Проверки батарейки в корзине ======= */
#battery-check-modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0; top: 0;
  width: 100%; height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  align-items: center;
  justify-content: center;
}

#battery-check-modal .modal-content {
  background: #fff;
  padding: 2rem;
  border-radius: 1rem;
  max-width: 460px;
  width: 90%;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

#battery-check-modal .modal-content p {
  margin: 0.5rem 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #333;
}

#battery-check-modal .modal-note {
  color: #6b7280;
  font-size: 0.85rem;
}

#battery-check-modal .modal-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
  flex-wrap: nowrap; /* ключевой момент: не переносить */
}

#battery-check-modal button {
  flex: 1 1 auto;
  min-width: 180px;
  max-width: 220px;
  padding: 0.7rem 1.2rem;
  height: 45px; /* фиксируем высоту */
  border: none;
  border-radius: 0.5rem;
  background-color: #e31e24;
  color: #fff;
  cursor: pointer;
  font-size: 0.95rem;
  transition: background 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

#battery-check-modal button.secondary {
  background-color: #ccc;
  color: #333;
}

#battery-check-modal button:hover {
  background-color: #c61a1f;
}

#battery-check-modal button.secondary:hover {
  background-color: #bbb;
}

/* ======= Модальное окно "Оформление заказа" ======= */
.order-form-wrapper {
  background-color: #ffffff;
  padding: 2rem;
  border-radius: 12px;
  max-width: 600px;
  margin: 0 auto;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.order-form-wrapper h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 1.5rem;
  text-align: center;
}

.order-form-group {
  margin-bottom: 1rem;
}

.order-form-group label {
  display: block;
  font-weight: 500;
  margin-bottom: 0.5rem;
  color: #374151;
}

.order-form-group input,
.order-form-group textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 1rem;
  font-family: inherit;
  color: #111827;
}

.order-form-group input[type="file"] {
  padding: 0.5rem;
  font-size: 0.95rem;
}

.order-form-group textarea {
  resize: vertical;
  min-height: 100px;
}

.order-summary {
  margin-top: 2rem;
  border-top: 1px solid #e5e7eb;
  padding-top: 1rem;
}

.order-summary h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.order-summary ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem 0;
}

.order-summary li {
  display: flex;
  justify-content: space-between;
  padding: 0.25rem 0;
  font-size: 0.95rem;
}

.order-total {
  font-weight: 700;
  color: #e31e24;
  text-align: right;
  margin-top: 1rem;
  font-size: 1.1rem;
}

.order-form-buttons {
  display: flex;
  justify-content: space-between;
  margin-top: 2rem;
  gap: 1rem;
}

.order-form-buttons button {
  flex: 1;
  padding: 0.75rem 1.25rem;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.3s;
}

.order-form-buttons .back-to-cart {
  background-color: #f3f4f6;
  color: #374151;
}

.order-form-buttons .back-to-cart:hover {
  background-color: #e5e7eb;
}

.order-form-buttons .submit-order {
  background-color: #e31e24;
  color: #ffffff;
}

.order-form-buttons .submit-order:hover {
  background-color: #c71a20;
}

.form-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.form-actions button {
  width: 100%;
  padding: 0.75rem;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}

#back-to-cart {
  background: #ffffff;
  color: #e31e24;
  border: 2px solid #e31e24;
}

#back-to-cart:hover {
  background: #e31e24;
  color: #ffffff;
}

.btn-primary {
  background: #e31e24;
  font-size: 0.9rem;
  font-weight: 600;
  color: white;
}

.btn-primary:hover {
  background: #c1171b;
}




/* === Наши услуги === */
.services-section {
  padding: 2rem 1rem;
  background-color: #ffffff;
  max-width: 1280px;
  margin: 0 auto;
}

.services-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.services-header h2 {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.services-header p {
  color: #6b7280;
  font-size: 1rem;
  max-width: 700px;
  margin: 0 auto;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  align-items: stretch; /* растягивает карточки по высоте */
}

.service-card {
  background-color: #fff;
  border: 1px solid #ececec;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.3s ease;
  height: 100%; /* чтобы занимала всю высоту ячейки */
}

.service-card:hover {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.service-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.service-content {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.service-content h3 {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: #111827;
}

.service-content p {
  font-size: 0.95rem;
  color: #6b7280;
  margin-bottom: 1.25rem;
  flex-grow: 1;
}

.service-content a {
  font-weight: 500;
  color: #0f766e;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  transition: color 0.3s ease;
}

.service-content a:hover {
  color: #c1171b;
}

/* Показать еще */
.services-more {
  margin-top: 2rem;
  text-align: center;
}

.show-more-btn {
    padding: 0.75rem 2rem;
    background-color: #0f766e;
    border: 1px solid #0f766e;
    border-radius: 8px;
    color: #fff;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}
  
.show-more-btn:hover {
    background-color: #0c645d;
    color: #ffffff;
}

/* Для скрытия карточек услуг */
.hidden {
  display: none;
}

@media (max-width: 1024px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
}




/* === О компании === */
.about-section {
  background-color: #f8fafc;
  padding: 4rem 1rem;
  max-width: 100%;
}

.about-container {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
}

.about-text {
  flex: 1 1 500px;
}

.about-text h2 {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: #111827;
}

.about-text h2 span {
  color: #0f766e;
}

.about-text p {
  font-size: 1rem;
  color: #4b5563;
  margin-bottom: 1rem;
  line-height: 1.6;
}

.about-list {
  list-style: none;
  padding: 0;
  margin: 1rem 0 2rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 0.5rem 1.5rem;
}

.about-list li {
  font-size: 1rem;
  color: #1f2937;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.about-list i {
  color: #0f766e;
  font-weight: bold;
  font-size: 1.2rem;
}

.about-btn {
  display: inline-block;
  background-color: #e31e24;
  color: #fff;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.3s ease;
}

.about-btn:hover {
  background-color: #c1171b;
}

.about-image {
  flex: 1 1 400px;
  text-align: center;
}

.about-image img {
  max-width: 100%;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

/* === Каталог поверки приборов === */
.catalog-section {
    padding: 3rem 1rem;
    max-width: 1280px;
    margin: 0 auto;
    text-align: center;
    background-color: #fff;
}
  
.catalog-title h2 {
    font-size: 1.75rem;
    margin-bottom: 0.5rem;
}
  
.catalog-title p {
    color: #6b7280;
    font-size: 1rem;
    margin-bottom: 1rem;
}
  
/* Сетка */
.catalog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.5rem;
}

/* Фильтр */
.catalog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
  justify-content: center;
  background-color: #f9fafb;
  padding: 1.5rem 1rem;
  border: 1px solid #ebebeb;
  border-radius: 15px;
}

.filter-group {
  display: flex;
  flex-direction: column;
  flex: 1 1 200px; /* адаптивная ширина */
  min-width: 200px;
  max-width: 400px;
}

.filter-group label {
  text-align: left;
  font-size: 0.8rem;
  color: #4b5563; /* сероватый */
  margin-bottom: 0.4rem;
  font-weight: 500;
}

.catalog-filters select {
  padding: 0.6rem 0.75rem;
  font-size: 0.9rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background-color: #fff;
  transition: border-color 0.2s ease;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg fill='gray' height='16' viewBox='0 0 24 24' width='16' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 1rem;
  padding-right: 2rem;
}

.catalog-filters select:hover {
  outline: none;
  border-color: #e31e24; /* Нужен ли этот стиль?*/
  box-shadow: none;
}

.catalog-filters select:focus {
  outline: none;
  border-color: #d1d5db; /* без glow, просто тонкая рамка */ /* Нужен ли этот стиль?*/
  box-shadow: none;
}

.hidden-option {
  display: none !important;
}

/* === Кнопка "Сбросить фильтр" === */
.reset-filter-btn {
  background-color: #4b5563;
  color: #ffffff;
  border: 1px solid #4b5563;
  padding: 0.55rem 0.75rem;
  font-size: 0.9rem;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.reset-filter-btn:hover {
  background-color: #38404b;
  color: #fff;
}

.reset-filter-btn:active {
  transform: scale(0.98);
}


  
/* Карточка товара */
.catalog-card {
    background-color: #fff;
    border-radius: 12px;
    border: 1px solid #ffe4e6;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    padding: 1rem;
    text-align: left;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
}
  
.catalog-card:hover {
    border: 1px solid #f3848b;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
}
  
.catalog-card img {
    width: 100%;
    border-radius: 8px;
    margin-bottom: 0.75rem;
    object-fit: cover;
}
  
.catalog-info h3 {
    font-size: 1rem;
    font-weight: 600;
    color: #1d1d1b;
    margin-bottom: 0.25rem;
    transition: color 0.3s ease;
}
  
.catalog-card:hover .catalog-info h3 {
    color: #e31e24;
}
  
.catalog-info p {
    font-size: 0.875rem;
    color: #6b7280;
    margin-bottom: 0.75rem;
}
  
.catalog-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
}
  
.catalog-price {
    color: #e31e24;
    font-size: 1.1rem;
    font-weight: 700;
}
  
.catalog-btn{
  color: #fff;
  border: none;
  padding: 0.6rem 1.2rem;
  border-radius: 0.5rem;
  cursor: pointer;
  font-weight: 600;

  background: linear-gradient(90deg, #ec003f, #e7000b, #c70036);
  background-size: 200% 200%;
  background-position: 0% 50%;
  transition: background-position 0.35s ease, box-shadow 0.25s ease, filter 0.25s ease;
}

.catalog-btn:hover{
  background-position: 100% 50%;
  filter: brightness(1.05);
  box-shadow: 0 10px 22px rgba(0,0,0,0.14);
}
  
/* Показать ещё */
.catalog-more {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
}
  
.show-more-btn-catalog {
    display: inline-block;
    padding: 0.75rem 2rem;
    background-color: #ffffff;
    border: 1px solid #e31e24;
    border-radius: 8px;
    color: #e31e24;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}
  
.show-more-btn-catalog:hover {
    background-color: #e31e24;
    color: #ffffff;
}

/* Скачать прайс */
.catalog-header {
    gap: 16px;
    flex-wrap: wrap;
    margin: 1rem 2rem;
}

.download-price-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: #0f766e;
  color: #fff;
  padding: 0.5rem 1.5rem;
  border: 1px solid #0f766e;
  border-radius: 8px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s ease;
}

.download-price-btn:hover {
  background-color: #0c645d;
  color: #ffffff;
}

/* Исправление размера иконки */
.download-price-btn svg {
  width: 25px !important;
  height: 25px !important;
  flex-shrink: 0;
}

/* Иконка всегда белая (и в обычном состоянии, и при hover) */
.download-price-btn svg,
.download-price-btn svg path {
  fill: #fff !important;
}

.download-price-btn:hover svg,
.download-price-btn:hover svg path {
  fill: #fff !important;
}

/* === Новогодние иконки внутри карточки каталога === */
.catalog-media{
  position: relative;
  margin-bottom: 1rem;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.catalog-media picture,
.catalog-media img{
  display: block;
  width: 100%;
  height: auto;
}

.catalog-media img{
  object-fit: contain;
}

/* СНЕЖИНКА слева-сверху (по умолчанию) */
.catalog-media::before{
  content: "";
  position: absolute;
  top: 12px;
  left: 12px;
  width: 28px;
  height: 28px;
  background-image: var(--snowflake-svg-gray);
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.95;
  pointer-events: none;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,0.12));
  transition: transform 0.25s ease, opacity 0.25s ease, background-image 0.25s ease;
}

/* СНЕЖИНКА справа-снизу (по умолчанию) */
.catalog-media::after{
  content: "";
  position: absolute;
  bottom: 12px;
  right: 12px;
  width: 24px;
  height: 24px;
  background-image: var(--snowflake-svg-gray);
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.55;
  pointer-events: none;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,0.10));
  transition: transform 0.25s ease, opacity 0.25s ease;
}

/* СНЕЖИНКА справа-сверху (только при hover) */
.catalog-icon{
  position: absolute;
  top: 12px;
  right: 12px;
  width: 26px;
  height: 26px;
  background-image: var(--snowflake-svg-blue);
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0;
  transform: translateY(2px) scale(0.95);
  pointer-events: none;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,0.12));
  transition: opacity 0.25s ease, transform 0.25s ease;
}

/* HOVER: подарок слева-сверху + появляется снежинка справа-сверху */
.catalog-card:hover .catalog-media::before{
  background-image: var(--gift-svg);
  opacity: 1;
  transform: translateY(-1px) scale(1.05);
}

.catalog-card:hover .catalog-icon{
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* На всякий случай для людей с reduced-motion */
@media (prefers-reduced-motion: reduce){
  .catalog-media::before,
  .catalog-media::after,
  .catalog-icon{
    transition: none !important;
  }
}




/* === Контактная форма и информация === */
.contact-section--cards {
  background-color: #ffffff;
  padding: 4rem 1rem;
  overflow-x: clip; /* чтобы “вылеты” не давали горизонтальный скролл */
}

.contact-section--cards .contact-container {
  max-width: 1320px;
  width: 100%;
  margin: 0 auto;

  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas:
    "heading heading"
    "sub sub"
    "info form";
  gap: 1.25rem 2.5rem;

  align-items: stretch;
}

/* Заголовок и описание над карточками */
.contact-section--cards .contact-container > h2 {
  grid-area: heading;
  margin: 0;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 900;
  color: #8b1a24;
}

.contact-section--cards .contact-container > p {
  grid-area: sub;
  margin: 0 0 1rem;
  text-align: center;
  color: #6b7280;
  font-weight: 600;
}

/* Размещение карточек в сетке */
.contact-section--cards .contact-card--info { grid-area: info; }
.contact-section--cards .contact-card--form { grid-area: form; }

.contact-section--cards .contact-card {
  width: 100%;
  min-width: 0;
  height: 100%;
  box-sizing: border-box;

  display: flex;
  flex-direction: column;

  background: #f8fafc;
  border: 1px solid rgba(17, 24, 39, 0.10);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.10);
  padding: 2rem;
}

.contact-section--cards .contact-card__title {
  margin: 0 0 1.4rem;
  font-size: 1.35rem;
  font-weight: 900;
  color: #111827;
}

/* Левая карточка: список */
.contact-section--cards .contact-list {
  display: grid;
  gap: 1.05rem;
}

.contact-section--cards .contact-item {
  display: flex;
  gap: 0.95rem;
  align-items: flex-start;
}

.contact-section--cards .contact-item__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;

  background: rgba(16, 185, 129, 0.14);
  color: #0f766e;
  font-size: 20px;
}

.contact-section--cards .contact-item__label {
  font-weight: 800;
  color: #111827;
  margin-bottom: 0.2rem;
  font-size: 0.95rem;
}

.contact-section--cards .contact-item__value {
  color: #6b7280;
  line-height: 1.45;
  font-size: 0.95rem;
}

.contact-section--cards .contact-item__value a {
  color: #e31e24;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.contact-section--cards .contact-item__value a:hover {
  opacity: 0.8;
  text-decoration: none;
}

.contact-section--cards .contact-link {
  color: #0f766e;
  text-decoration: none;
  font-weight: 700;
}

.contact-section--cards .contact-link:hover {
  text-decoration: underline;
}

.contact-section--cards .contact-divider {
  margin: 1.4rem 0 1.6rem;
  height: 1px;
  background: rgba(17, 24, 39, 0.10);
}

/* QR — вниз, чтобы высоты карточек “смотрелись ровно” */
.contact-section--cards .contact-qr {
  text-align: center;
  margin-top: auto;
}

.contact-section--cards .contact-qr__title {
  font-weight: 800;
  color: #111827;
  margin-bottom: 1rem;
}

.contact-section--cards .contact-qr__box {
  width: 220px;
  height: auto;
  margin: 0 auto; /*margin: 0 auto 0.75rem;*/
  padding: 14px 14px 12px;
  border-radius: 16px;

  background: rgb(255, 255, 255);
  border: 2px solid rgba(16, 185, 129, 0.20);

  display: flex;
  flex-direction: column;    /* QR сверху, текст снизу */
  align-items: center;
  gap: 10px;
  text-align: center;
  overflow: hidden;
  transition: all 0.3s;
}

.contact-section--cards .contact-qr__box a{
  display: block;
  line-height: 0;            /* убирает лишний “зазор” вокруг картинки */
}

.contact-section--cards .contact-qr__box:hover {
  border: 2px solid rgba(17, 182, 127, 0.966);
}

.contact-section--cards .contact-qr__box img {
  width: 180px;
  height: 180px;
  object-fit: contain;
  display: block;
}

.contact-section--cards .contact-qr__hint {
  color: #6b7280;
  font-size: 0.9rem;
}

/* Правая карточка: форма */
.contact-section--cards form {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.contact-section--cards .form-group {
  margin-bottom: 1.15rem;
}

.contact-section--cards .form-group label {
  display: block;
  margin-bottom: 0.55rem;
  font-weight: 700;
  color: #111827;
  font-size: 0.95rem;
}

.contact-section--cards .form-group input,
.contact-section--cards .form-group textarea {
  width: 100%;
  box-sizing: border-box;

  border: 1px solid rgba(17, 24, 39, 0.18);
  border-radius: 12px;
  padding: 0.95rem 1rem;

  font-size: 0.95rem;
  color: #111827;
  background: #fff;

  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-section--cards .form-group textarea {
  resize: none;
  min-height: 160px;
}

.contact-section--cards .form-group input:focus,
.contact-section--cards .form-group textarea:focus {
  border-color: rgba(16, 185, 129, 0.55);
  box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.18);
}

.contact-section--cards .char-counter {
  margin-top: 0.5rem;
  font-size: 0.85rem;
  color: #9ca3af;
  text-align: left;
}

.contact-section--cards .form-check {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0.9rem 0 1.4rem;
  color: #6b7280;
  font-size: 0.92rem;
}

.contact-section--cards .form-check input {
  width: 18px;
  height: 18px;
}

/* Кнопка отправки: hover только цвет (без подъёма/transform) */
.contact-section--cards .contact-submit,
.contact-section--cards .contact-btn {
  width: 100%;
  border: none;
  border-radius: 12px;
  padding: 1.05rem 1rem;

  background: #0f8f7a;
  color: #fff;
  font-weight: 800;
  cursor: pointer;

  box-shadow: 0 14px 28px rgba(15, 143, 122, 0.28);
  transition: background-color 0.2s ease;
}

.contact-section--cards .contact-submit:hover,
.contact-section--cards .contact-btn:hover {
  background-color: #0b7e6b;
}

/* Ошибки валидации (оставляем) */
.contact-section--cards .error {
  border: 1px solid #e31e24 !important;
}

.contact-section--cards .error + label,
.contact-section--cards .error-message {
  color: #e31e24;
}

/* Адаптив */
@media (max-width: 980px) {
  .contact-section--cards .contact-container {
    grid-template-columns: 1fr;
    grid-template-areas:
      "heading"
      "sub"
      "info"
      "form";
    gap: 1.25rem;
  }

  .contact-section--cards .contact-container > h2 {
    font-size: 1.9rem;
  }
}

/* Ошибки валидации контактной формы */
.error {
    border: 1px solid #e31e24 !important;
}

.error + label, .error-message {
    color: #e31e24;
}

/* === Футтер === */
.site-footer {
  background-color: #1f2937;
  color: #fff;
  padding: 4rem 1rem 2rem;
  font-size: 0.95rem;
}

.footer-brand {
  padding: 0 3rem;
}

.footer-column {
  padding: 0 6rem;
}

.footer-inner {
  max-width: 1280px;
  margin: 0 auto;
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem;
  margin-bottom: 2rem;
}

.footer-logo {
  font-family: 'Pacifico', cursive;
  font-size: 1.5rem;
  margin-bottom: 1rem;
  color: #fff;
}

.footer-description {
  color: #9ca3af;
  margin-bottom: 1.5rem;
  line-height: 1.4;
}

.footer-socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #374151;
  color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  margin-right: 0.5rem;
  text-decoration: none;
  transition: background-color 0.3s ease;
}

.footer-socials a:hover {
  background-color: #e31e24;
}

.footer-column h4 {
  font-size: 1.1rem;
  margin-bottom: 1rem;
}

.footer-column ul {
  list-style: none;
  padding: 0;
}

.footer-column ul li {
  margin-bottom: 0.5rem;
}

.footer-column ul li a {
  color: #9ca3af;
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-column ul li a:hover {
  color: #fff;
}

.footer-contacts li {
  margin-bottom: 0.75rem;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  color: #9ca3af;
}

.footer-contacts li a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-contacts li a:hover {
  color: #e31e24;
  text-decoration: none;
}

.footer-contacts i {
  margin-top: 3px;
  color: #e5e7eb;
}

.footer-bottom {
  border-top: 1px solid #374151;
  padding-top: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  color: #9ca3af;
  font-size: 0.9rem;
}

.footer-bottom .footer-links a {
  color: #9ca3af;
  margin: 0 0.75rem;
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-bottom .footer-links a:hover {
  color: #fff;
}

@media (min-width: 768px) {
  .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
  }
}

@media (max-width: 767px) {
  .footer-bottom .footer-links {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem; /* Отступ между ссылками */
  }

  .footer-bottom .footer-links a {
    margin: 0; /* Убираем боковые отступы на мобильных */
  }

  .footer-brand,
  .footer-column {
    padding: 0;
  }

  .footer-brand,
  .footer-column {
    text-align: center;
  }

  .footer-logo {
    display: flex;
    justify-content: center;
  }

  .footer-socials {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }

  .footer-socials a {
    margin-right: 0;
  }

  .footer-column ul {
    display: inline-block;
    text-align: center;
    margin: 0;
  }

  .footer-contacts {
    max-width: 360px;
    margin: 0 auto;
  }
}

/* === Новогодний футтер (только для .site-footer--ny) === */
.site-footer.site-footer--ny {
  position: relative;
  overflow: hidden;

  /* градиент как на скрине */
  background: linear-gradient(180deg, #8b1b2b 0%, #7a1323 55%, #65101f 100%);
  color: #fff;
}

.site-footer.site-footer--ny::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* лёгкая “дымка”, чтобы фон выглядел глубже */
  background:
    radial-gradient(900px 420px at 50% 10%, rgba(255,255,255,0.08), transparent 60%),
    radial-gradient(700px 360px at 20% 80%, rgba(255,255,255,0.06), transparent 60%),
    radial-gradient(700px 360px at 80% 80%, rgba(255,255,255,0.06), transparent 60%);
}

.site-footer.site-footer--ny .footer-inner,
.site-footer.site-footer--ny .footer-grid,
.site-footer.site-footer--ny .footer-bottom,
.site-footer.site-footer--ny .footer-greeting {
  position: relative;
  z-index: 1;
}

.site-footer.site-footer--ny .footer-description {
  color: rgba(255, 255, 255, 0.70);
}

.site-footer.site-footer--ny .footer-column ul li a,
.site-footer.site-footer--ny .footer-bottom,
.site-footer.site-footer--ny .footer-bottom .footer-links a,
.site-footer.site-footer--ny .footer-contacts li {
  color: rgba(255, 255, 255, 0.72);
}

.site-footer.site-footer--ny .footer-contacts li a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.site-footer.site-footer--ny .footer-contacts li a:hover {
  opacity: 1;
  text-decoration: none;
}

.site-footer.site-footer--ny .footer-column ul li a:hover,
.site-footer.site-footer--ny .footer-bottom .footer-links a:hover {
  color: rgba(255, 255, 255, 0.95);
}

.site-footer.site-footer--ny .footer-socials a {
  background-color: rgba(255, 255, 255, 0.14);
  transition: background-color 0.25s ease, transform 0.25s ease;
}

.site-footer.site-footer--ny .footer-socials a:hover {
  background-color: rgba(255, 255, 255, 0.22);
}

/* Плашка поздравления (между grid и footer-bottom) */
.site-footer.site-footer--ny .footer-greeting {
  display: flex;
  justify-content: center;
  margin: 2.25rem 0 1.6rem;
}

.site-footer.site-footer--ny .footer-greeting__inner {
  width: min(980px, 100%);
  text-align: center;

  padding: 1.25rem 1.6rem;
  border-radius: 14px;

  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 16px 46px rgba(0, 0, 0, 0.20);

  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.site-footer.site-footer--ny .footer-greeting__title {
  margin: 0 0 0.35rem;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.95);
}

.site-footer.site-footer--ny .footer-greeting__text {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.45;
}

/* Разделительная линия */
.site-footer.site-footer--ny .footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

/* Декор по углам */
.site-footer.site-footer--ny .footer-decor {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  line-height: 1;
  opacity: 0.16;
  filter: drop-shadow(0 14px 30px rgba(0,0,0,0.22));
}

.site-footer.site-footer--ny .footer-decor--gift {
  top: 1.0rem;
  left: 1.2rem;
  font-size: 3.2rem;
  transform: rotate(-10deg);
}

.site-footer.site-footer--ny .footer-decor--tree {
  top: 1.0rem;
  right: 1.2rem;
  font-size: 3.2rem;
  transform: rotate(10deg);
}

.site-footer.site-footer--ny .footer-decor--snow {
  bottom: 1.15rem;
  font-size: 2.6rem;
  opacity: 0.14;
}

.site-footer.site-footer--ny .footer-decor--snow-l {
  left: 1.2rem;
}

.site-footer.site-footer--ny .footer-decor--snow-r {
  right: 1.2rem;
}

/* Адаптив */
@media (max-width: 640px) {
  .site-footer.site-footer--ny .footer-greeting__inner {
    padding: 1.05rem 1.1rem;
    border-radius: 12px;
  }

  .site-footer.site-footer--ny .footer-decor--gift,
  .site-footer.site-footer--ny .footer-decor--tree {
    font-size: 2.6rem;
  }

  .site-footer.site-footer--ny .footer-decor--snow {
    font-size: 2.2rem;
  }
}

/* Модальное окно страниц благодарности и ошибки*/
.result-modal {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.result-modal.open {
  display: flex;
}

.result-modal-content {
  background-color: #fff;
  padding: 2rem;
  border-radius: 12px;
  text-align: center;
  max-width: 400px;
  width: 90%;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}

.result-modal-content h3 {
  margin-bottom: 1rem;
  font-size: 1.5rem;
  color: #e31e24;
}

.result-modal-content p {
  margin-bottom: 1.5rem;
  color: #333;
}

.result-modal-content button {
  padding: 0.5rem 1rem;
  background-color: #e31e24;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-weight: 500;
  cursor: pointer;
}



/* === Блог === */
.blog-section {
  padding: 4rem 1rem;
  background-color: #fff;
  max-width: 1280px;
  margin: 0 auto;
}

.blog-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.blog-header h2 {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.blog-header p {
  color: #6b7280;
  font-size: 1rem;
  max-width: 700px;
  margin: 0 auto;
}

.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 2rem;
  justify-content: center;
}

.blog-card {
  background-color: #f9fafb;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.3s ease;
}

.blog-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}

.blog-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.blog-content {
  padding: 1.5rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.blog-date {
  font-size: 0.85rem;
  color: #9ca3af;
  margin-bottom: 0.5rem;
}

.blog-content h3 {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 0.75rem;
}

.blog-content p {
  font-size: 0.95rem;
  color: #6b7280;
  margin-bottom: 1.25rem;
  flex-grow: 1;
}

.blog-content a {
  font-weight: 500;
  color: #e31e24;
  text-decoration: none;
  transition: color 0.3s ease;
}

.blog-content a:hover {
  color: #c1171b;
}

/* Фильтр статей */
.blog-filter-wrapper {
  margin-bottom: 2.5rem;
  text-align: center;
}

.blog-filter-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: #1f2937;
}

.blog-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.filter-btn {
  background-color: #f3f4f6;
  border: 1px solid #f3f4f6;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 500;
  color: #374151;
  cursor: pointer;
  transition: all 0.3s ease;
}

.filter-btn:hover {
  background-color: #f3f4f6;
  border: 1px solid #e31e24;
}

.filter-btn.active {
  background-color: #e31e24;
  border: 1px solid #e31e24;
  color: #fff;
}

/* === Подписка === */
.subscribe-section {
  background-color: #f9fafb;
  padding: 3rem 1rem;
}

.subscribe-container {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

.subscribe-text h2 {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.subscribe-text p {
  color: #6b7280;
  margin-bottom: 1.5rem;
  font-size: 1rem;
}

/* Общий ряд: поле + кнопка */
.subscribe-form-row {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}

/* Обёртка: input + ошибка */
.subscribe-input-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 400px;
}

/* Поле ввода */
#subscribe-email {
  padding: 0.75rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 1rem;
  width: 92%;
}

#subscribe-email.error {
  border-color: #e31e24;
}

/* Сообщение об ошибке */
.form-error {
  color: #e31e24;
  font-size: 0.875rem;
  margin-top: 0.25rem;
  display: none;
  text-align: left;
}

/* Кнопка */
.subscribe-form button {
  height: 46px;
  padding: 0 1.5rem;
  background-color: #e31e24;
  color: #fff;
  border: 1px solid #e31e24;
  border-radius: 8px;
  font-weight: 500;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
}

.subscribe-form button:hover {
  background-color: #ffffff;
  color: #e31e24;
  border: 1px solid #e31e24;
}

/* Модальное окно после отправки */
#subscribe-modal {
  position: fixed;
  display: none;
  justify-content: center;
  align-items: center;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9999;
}

#subscribe-modal.open {
  display: flex;
}

.result-modal-content {
  background: white;
  padding: 2rem;
  border-radius: 12px;
  max-width: 400px;
  text-align: center;
}


/* === Страницы Услуг === */
/* === Хлебные крошки === */
.breadcrumb {
  background-color: #f9fafb;
  padding: 1rem 0;
  border-bottom: 1px solid #e5e7eb;
}

.breadcrumb-arshin {
  padding-top: 5rem;
  padding-left: 2rem;
  background: rgba(255, 255, 255, 0.70); /* 70% */
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.breadcrumb-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0, 0, 0, 0.5rem;
  list-style: none;
  font-size: 0.9rem;
}

.breadcrumb-item {
  display: flex;
  align-items: center;
}

.breadcrumb-link {
  color: #4a5568;
  text-decoration: none;
  transition: color 0.2s ease;
}

.breadcrumb-link:hover {
  color: #e31e24;
}

.breadcrumb-divider {
  color: #9ca3af;
  margin: 0 0.25rem;
}

.breadcrumb-item.active {
  color: #e31e24;
  font-weight: 500;
}

/* Адаптация для мобильных */
@media (max-width: 480px) {
  .breadcrumb {
    padding: 0.75rem 0;
  }
  
  .breadcrumb-list {
    font-size: 0.8rem;
  }
}

/* Главный баннер - финальная версия */
.hero-banner {
  position: relative;
  background-color: #2b3b4e; /* Фолбэк цвет */
  padding: 4rem 1rem;
  overflow: hidden;
}

.banner-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  opacity: 0.8;
}

/* Фоновое наложение на Главный баннер Ремонт и промывка теплообменников */
.banner-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(43, 59, 78, 0.9) 0%, rgba(43, 59, 78, 0.5) 100%);
  z-index: 1;
}

/* Фоновое наложение на Главный баннер Ремонт приборов учета */
.banner-overlay-pribory {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 100%);
  z-index: 1;
}

.banner-container {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.banner-text-content {
  color: white;
}

.banner-title {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
  line-height: 1.2;
}

.banner-description {
  font-size: 1.1rem;
  opacity: 0.9;
  margin-bottom: 2rem;
  max-width: 600px;
}

.banner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.banner-actions a {
  text-decoration: none;
}

.btn-outline-dark {
    background-color: transparent;
    color: #fff;
    border: 2px solid #fff;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-weight: 600;
    font-family: inherit;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
}
  
.btn-outline-dark:hover {
    background-color: #e31e24;
    color: #fff;
    border: 2px solid #e31e24;
}

.banner-image-container {
  display: none;
}

.banner-image {
  width: 100%;
  max-width: 500px;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

/* Десктопная версия */
@media (min-width: 768px) {
  .hero-banner {
    padding: 6rem 1rem;
  }
  
  .banner-container {
    flex-direction: row;
    align-items: center;
  }
  
  .banner-text-content {
    flex: 1;
    padding-right: 3rem;
    text-align: left;
  }
  
  .banner-image-container {
    display: block;
    flex: 1;
    text-align: right;
  }
  
  .banner-title {
    font-size: 2.5rem;
  }
}

@media (min-width: 1024px) {
  .banner-title {
    font-size: 3rem;
  }
}

/* === Блок "Об услуге" === */
.service-about {
  padding: 2rem 0;
  background-color: #fff;
}

.section-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 3rem;
}

.section-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
  margin-bottom: 1rem;
}

.section-subtitle {
  font-size: 1rem;
  color: #6b7280;
  line-height: 1.6;
}

/* Сетка Преимущества Ремонт и промывка теплообменников */
.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  padding: 0 2rem;
  margin-bottom: 3rem;
}

/* Сетка Преимущества Ремонт приборов учета */
.features-grid-pribory {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  padding: 0 2rem;
  margin-bottom: 3rem;
}

.feature-card {
  background-color: #f9fafb;
  border-radius: 12px;
  padding: 2rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.feature-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

.feature-icon {
  width: 56px;
  height: 56px;
  background-color: #e31e24;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
  color: #fff;
  font-size: 1.5rem;
}

.feature-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 0.75rem;
}

.feature-text {
  color: #6b7280;
  line-height: 1.6;
}

.service-notes {
  background-color: #f9fafb;
  border-radius: 12px;
  padding: 1rem 7rem;
  max-width: 800px;
}

.notes-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 1rem;
}

.notes-list {
  list-style-type: disc;
  padding-left: 1.5rem;
  color: #6b7280;
  line-height: 1.8;
}

.notes-list li {
  margin-bottom: 0.5rem;
}

/* Адаптация для мобильных */
@media (max-width: 768px) {
  .service-about {
    padding: 2rem 0;
  }
  
  .section-title {
    font-size: 1.75rem;
  }
  
  .features-grid {
    grid-template-columns: 1fr;
  }

  .service-notes {
    padding: 1rem 2rem;
  }
}

/* ===== Этапы ремонта ===== */
.repair-steps {
  background: #fff;
  padding: 2rem 2rem;
}

.section-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 700;
  color: #333;
  margin-bottom: 1rem;
}

.timeline-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 60px;
  margin-top: 60px;
}

.timeline-line {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 4px;
  background-color: #e31e24;
  transform: translateX(-50%);
  z-index: 0;
}

.timeline-row {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

/*.timeline-row.reverse {
  flex-direction: row-reverse;
}*/

.timeline-col {
  flex: 1;
  padding: 20px;
}

.timeline-col.image img {
  width: 100%;
  max-width: 400px;
  border-radius: 12px;
}

.timeline-col.middle {
  width: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
}

.circle {
  width: 60px;
  height: 60px;
  background-color: #e31e24;
  color: #fff;
  font-weight: bold;
  font-size: 1.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.timeline-col.text h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 10px;
  color: #111827;
}

.timeline-col.text p {
  font-size: 0.95rem;
  color: #374151;
  line-height: 1.6;
}

/* Мобильная версия */
@media (max-width: 768px) {
  .timeline-row,
  .timeline-row.reverse {
    flex-direction: column;
    text-align: center;
  }

  .timeline-col.middle {
    order: -1;
    width: auto;
    height: auto;
    margin: 20px 0;
  }

  .timeline-line {
    display: none;
  }

  .circle {
    margin: 0 auto;
  }

  .timeline-col.image img {
    max-width: 100%;
  }
}

/*=== Стоимость услуг по ремонту теплообменников ===*/
.price-table-wrapper {
  background-color: #ffffff;
  padding: 2rem 2rem;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
  overflow-x: auto;
}

.price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}

.price-table th {
  background-color: #1f2937;
  color: #fff;
  text-align: left;
  padding: 1rem;
  font-weight: 600;
}

.price-table .view {
  border-top-left-radius: 8px;
}

.price-table .cost {
  border-top-right-radius: 8px;
}

.price-table td {
  padding: 1rem;
  border-top: 1px solid #e5e7eb;
  color: #374151;
}

.price-note {
  margin-top: 1.5rem;
  font-size: 0.9rem;
  color: #4b5563;
  background-color: #f9fafb;
  padding: 1rem;
  border-radius: 8px;
  line-height: 1.6;
}

@media (max-width: 768px) {
  .price-table-wrapper {
    padding: 1rem;
  }

  .price-table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .price-table thead {
    display: none; /* Скрываем заголовки на мобиле */
  }

  .price-table tr {
    display: block;
    margin-bottom: 1.5rem;
    background-color: #f9fafb;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
    padding: 1rem;
  }

  .price-table td {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
    font-size: 0.95rem;
    border: none;
    border-bottom: 1px solid #e5e7eb;
  }

  .price-table span {
    text-align: right;
  }

  .price-table td::before {
    content: attr(data-label);
    font-weight: 600;
    color: #1f2937;
    flex: 1;
    margin-right: 0.75rem;
  }

  .price-table td:last-child {
    border-bottom: none;
  }

  .price-note {
    font-size: 0.85rem;
    padding: 1rem;
  }
}

/*=== Секция: Промо-предложение по ремонту теплообменников ===*/
.section-promo {
  background-color: #f9fafb;
  padding: 2rem 1rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  margin: 2rem auto;
}

.promo-container {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.promo-container .section-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 1rem;
}

.promo-container .section-subtitle {
  font-size: 1rem;
  color: #6b7280;
  line-height: 1.6;
  margin-bottom: 2rem;
}

.promo-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.promo-button {
  display: inline-block;
  padding: 0.75rem 2rem;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.3s ease, color 0.3s ease;
  min-width: 180px;
}

.promo-button-primary {
  background-color: #e31e24;
  color: #ffffff;
  border: 2px solid #e31e24;
}

.promo-button-primary:hover {
  background-color: #c7211e;
  border-color: #c7211e;
}

.promo-button-secondary {
  background-color: transparent;
  color: #e31e24;
  border: 2px solid #e31e24;
}

.promo-button-secondary:hover {
  background-color: #e31e24;
  color: #ffffff;
}

/* Адаптив */
@media (max-width: 640px) {
  .promo-container .section-title {
    font-size: 1.5rem;
  }

  .promo-container .section-subtitle {
    font-size: 0.95rem;
  }

  .promo-buttons {
    flex-direction: column;
  }

  .btn-primary {
    font-size: 1rem;
  }
}

/*=== Преимущества по ремонту теплообменников ===*/
/*=== Преимущества по ремонту теплообменников (ТОЛЬКО для страницы ремонта) ===*/
.repair-advantages {
  padding: 1rem 1rem;
  background-color: #ffffff;
}

.repair-advantages .contact-container {
  max-width: 700px;
  margin: 0 auto;
  background-color: #ffffff;
  padding: 2.5rem;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.repair-advantages .center-form {
  text-align: center;
}

.repair-advantages .section-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 1rem;
}

.repair-advantages .section-subtitle {
  font-size: 1rem;
  color: #6b7280;
  margin-bottom: 2rem;
}

.repair-advantages .repair-form {
  margin-top: 2rem;
  text-align: left;
}

.repair-advantages .form-group {
  margin-bottom: 1.5rem;
}

.repair-advantages .form-group label {
  display: block;
  font-weight: 600;
  color: #374151;
  margin-bottom: 0.5rem;
}

.repair-advantages .form-input,
.repair-advantages .form-textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 1rem;
  transition: border-color 0.3s ease;
}

.repair-advantages .form-input:focus,
.repair-advantages .form-textarea:focus {
  outline: none;
  border-color: #e31e24;
}

.repair-advantages .form-textarea {
  min-height: 120px;
  resize: vertical;
}

.repair-advantages .form-check {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: #4b5563;
  margin-bottom: 1.5rem;
}

.repair-advantages .form-check input[type="checkbox"] {
  margin-top: 0.25rem;
  accent-color: #e31e24;
}

.repair-advantages .contact-btn {
  display: inline-block;
  width: 100%;
  padding: 0.875rem 1.25rem;
  background-color: #e31e24;
  color: #ffffff;
  font-weight: 600;
  font-size: 1rem;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.repair-advantages .contact-btn:hover {
  background-color: #c7211e;
}

/* Адаптив */
@media (max-width: 640px) {
  .repair-advantages .contact-container {
    padding: 1.5rem;
  }
}

/*=== FAQ ===*/
.faq-section {
  padding: 2rem 1rem;
  background-color: #ffffff;
}

.faq-container {
  max-width: 800px;
  margin: 0 auto;
}

.faq-container .section-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 2.5rem;
}

.faq-item {
  margin-bottom: 1.5rem;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 1.25rem;
}

.faq-question {
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  padding-left: 2rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: #1f2937;
  position: relative;
  cursor: pointer;
  transition: color 0.2s ease;
}

.faq-question::before {
  content: "+";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 1.5rem;
  color: #e31e24;
  transition: transform 0.3s ease;
}

.faq-question.active::before {
  content: "−";
  transform: rotate(180deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
  padding-left: 2rem;
  margin-top: 1rem;
  color: #4b5563;
  font-size: 1rem;
  line-height: 1.6;
}

.faq-answer p {
  margin-bottom: 0.75rem;
}

@media (max-width: 640px) {
  .faq-container .section-title {
    font-size: 1.5rem;
  }

  .faq-question {
    font-size: 1rem;
  }

  .faq-answer {
    font-size: 0.95rem;
  }
}

/*=== Обслуживаемые приборы учета ===*/
.devices-category {
  margin-bottom: 3rem;
}

.category-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111827;
  margin: 0 0 1.5rem 2rem;
  padding: 1rem 0;
}

.devices-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin: 0 2rem;
}

.device-item {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background-color: #ffffff;
  border-radius: 0.75rem;
  padding: 1.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 90%;
}

.device-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
}

.device-image {
  margin-bottom: 1rem;
  border-radius: 0.5rem;
  overflow: hidden;
}

.device-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.device-name {
  font-size: 1.125rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 0.75rem;
}

.device-description {
  color: #6b7280;
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 1rem;
  flex-grow: 1;
}

.details-link {
  display: inline-block;
  font-weight: 600;
  font-size: 0.95rem;
  color: #e31e24;
  text-decoration: none;
  transition: color 0.3s ease;
  margin-top: auto;
}

.details-link:hover {
  text-decoration: underline;
  color: #c1171b;
}

/*=== Модальное окно для карточек ремонта приборов учета ===*/
.device-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 1000;
}

.device-modal.open {
  display: block;
}

.device-modal-overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(17, 24, 39, 0.5);
  z-index: 1;
}

.device-modal-content {
  position: relative;
  z-index: 2;
  max-width: 800px;
  max-height: 80vh;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  margin: 5vh auto;
  background: #fff;
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  animation: fadeInUp 0.3s ease;
}

.device-modal-content::-webkit-scrollbar {
  width: 0px;                     /* Chrome/Safari/Edge */
  height: 0px;
  background: transparent;
}

.device-modal-content::-webkit-scrollbar-thumb {
  background: transparent;
}

.device-modal-content::-webkit-scrollbar-track {
  background: transparent;
}

.device-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #e31e24;
  cursor: pointer;
}

.device-modal-header {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.device-modal-image {
  flex: 1 1 250px;
}

.device-image-full {
  width: 100%;
  border-radius: 8px;
  object-fit: cover;
}

.device-modal-info {
  flex: 2 1 300px;
}

.device-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 0.75rem;
}

.device-characteristics {
  list-style: none;
  font-size: 0.8rem;
  color: #374151;
  padding-left: 1rem;
}

.device-characteristics li {
  padding-top: 0.5rem;
}

.device-modal-description {
  border-top: 1px solid #e5e7eb;
  padding-top: 1rem;
}

.device-full-description {
  font-size: 0.95rem;
  color: #6b7280;
  line-height: 1.6;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 640px) {
  .device-modal-content {
    width: 92%;
    padding: 1.5rem;
  }

  .device-modal-header {
    flex-direction: column;
  }

  .device-characteristics {
    padding-left: 0;
  }
}

/*=== Блок: Процесс ремонта ===*/
.repair-process-cards {
  background-color: #ffffff;
}

.repair-process-cards .process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  position: relative;
  padding: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.section-title-repaire {
  padding-top: 2rem;
}

/* Карточка */
.process-card {
  background-color: #f9fafb;
  border-radius: 12px;
  padding: 2rem 1.5rem 1.5rem;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  position: relative;
  z-index: 1;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.process-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

/* Номер */
.step-badge {
  width: 40px;
  height: 40px;
  background-color: #e31e24;
  color: #fff;
  font-weight: 600;
  font-size: 1.125rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  transition: background-color 0.3s ease;
}

.process-card:hover .step-badge {
  background-color: #c1171b;
}

.step-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 0.75rem;
}

.step-text {
  font-size: 0.95rem;
  color: #6b7280;
  line-height: 1.6;
}

/* === Линия справа — между карточками (1, 2, 4) === */
.process-card:not(:last-child)::after {
  content: "";
  position: absolute;
  background-color: #e31e24;
  z-index: 1;
}

/* Адаптация */
@media (max-width: 768px) {
  .process-grid::before {
    display: none;
  }

  .step-badge {
    width: 36px;
    height: 36px;
    font-size: 1rem;
  }

  .step-title {
    font-size: 1rem;
  }

  .step-text {
    font-size: 0.95rem;
  }
}

/* Горизонтальные линии — только на >=769px */
@media (min-width: 769px) {
  .process-grid {
    grid-template-columns: repeat(3, 1fr); /* или подбери нужное количество */
  }

  .process-card:not(:last-child)::after {
    top: 42px;
    right: -2rem;
    width: 3rem;
    height: 2px;
  }

  /* Если вторая строка — оставшиеся карточки, подстрой вручную */
  .process-card:nth-child(3)::after {
    display: none; /* чтобы не соединять 3 и 4 на новой строке */
  }
}

/* Вертикальные линии — только на мобилке */
@media (max-width: 768px) {
  .process-card:not(:last-child)::after {
    left: 20px;
    bottom: -2rem;
    width: 2px;
    height: 3rem;
  }
}

/*=== Стоимость услуг по ремонту приборов учета ===*/
/* Общий стиль */
.price-section {
  background-color: #f9fafb;
  padding: 2rem 2rem;
}

.tab-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin: 2rem 0;
  flex-wrap: wrap;
}

.tab-btn {
  padding: 0.6rem 1.5rem;
  border: 2px solid #e31e24;
  background-color: transparent;
  color: #e31e24;
  font-weight: 600;
  font-size: 1rem;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.tab-btn.active,
.tab-btn:hover {
  background-color: #e31e24;
  color: #fff;
}

.tab-content {
  display: none;
}

.tab-content.active {
  display: block;
}

.price-table {
  width: 100%;
  border-collapse: collapse;
}

.price-table th,
.price-table td {
  padding: 1rem;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
}

.price-table th {
  background-color: #1f2937;
  color: white;
  font-weight: 600;
}

.price-table-th1 {
  border-top-left-radius: 12px;
}

.price-table-th2 {
  border-top-right-radius: 12px;
}

.price-note {
  font-size: 0.9rem;
  color: #6b7280;
  text-align: center;
  margin-top: 1.5rem;
}

/* Мобильные карточки */
.price-cards {
  display: none;
  gap: 1rem;
  flex-direction: column;
}

.price-card {
  background-color: #f9fafb;
  padding: 1rem;
  border-radius: 0.75rem;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.price-card p {
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
}

/* Видимость для разных экранов */
@media (max-width: 768px) {
  .desktop-only {
    display: none;
  }

  .mobile-only {
    display: flex;
  }
}

/*=== Баннер Промывки опрессовки ===*/
.btn-outline-promyvka {
    background-color: #fff;
    color: #e31e24;
}

.btn-outline-promyvka:hover {
  border: 2px solid #fff;
}

.btn-primary-promyvka {
    border: 2px solid #fff;
}

/*=== Что в ходит в услугу Промывки опрессовки ===*/
.section {
  padding: 2rem 0;
  background-color: #f9fafb;
}

.section-title {
  font-size: 1.75rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 20px;
  color: #111827;
}

.section-subtitle {
  font-size: 1rem;
  text-align: center;
  max-width: 800px;
  margin: 0 auto 50px;
  color: #6b7280;
  line-height: 1.6;
}

/* Сетка карточек */
.card-grid {
  display: grid;
  gap: 30px;
  padding: 0 2rem;
}

.card-grid--services {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

/* Карточка услуги */
.card--service {
  background-color: #fff;
  border-radius: 16px;
  padding: 30px 25px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.card--service:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

/* Иконка */
.card-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #ef4444; /* красный */
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: #fff;
}

/* Заголовок и текст */
.card-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: #111827;
  margin: 0;
}

.card-text {
  font-size: 16px;
  color: #4b5563;
  line-height: 1.5;
  margin: 0;
}

/* Адаптив */
@media (max-width: 768px) {
  .section-title {
    font-size: 30px;
  }

  .section-subtitle {
    font-size: 16px;
  }

  .card--service {
    padding: 25px;
  }
}

@media (max-width: 480px) {
  .section-title {
    font-size: 26px;
  }

  .card-title {
    font-size: 17px;
  }

  .card-text {
    font-size: 15px;
  }
}

/*=== Этапы Промывки опрессовки ===*/
.section--process {
  background-color: #fff;
}
.card--step {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background-color: #f8f9fa;
  border-radius: 16px;
  padding: 30px 25px;
  position: relative;
  counter-increment: step-counter;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  transition: all 0.3s ease;
}

.card--step:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

/* Номер шага */
.card--step::before {
  content: counter(step-counter);
  position: absolute;
  top: -18px;
  left: 25px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background-color: #ef4444;
  color: #fff;
  font-weight: bold;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* Контейнеры */
.card-body {
  flex-grow: 1;
}

.card-footer {
  border-top: 1px solid #e5e7eb;
  margin-top: 20px;
  padding-top: 15px;
}

/* Контент */
.card-title {
  font-size: 20px;
  font-weight: 600;
  color: #111827;
  margin: 10px 0 15px;
}

.card-text {
  font-size: 16px;
  color: #4b5563;
  line-height: 1.5;
}

.card-duration {
  font-size: 16px;
  color: #ef4444;
  font-weight: 600;
  margin: 0;
}

/* Сетка */
.card-grid--process {
  display: grid;
  gap: 30px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  counter-reset: step-counter;
  align-items: stretch; /* Важно! все карточки одинаковой высоты, но без overflow */
}

/* Адаптив */
@media (max-width: 768px) {
  .section-title {
    font-size: 30px;
  }

  .section-subtitle {
    font-size: 16px;
    margin-bottom: 40px;
  }

  .card--step {
    padding: 25px;
  }

  .card--step::before {
    left: 20px;
  }
}

@media (max-width: 480px) {
  .section-title {
    font-size: 26px;
  }

  .card-title {
    font-size: 18px;
  }

  .card-text,
  .card-duration {
    font-size: 15px;
  }
}

/*=== Стоимость Промывки опрессовки ===*/
/* Секция */
.section--pricing {
  background-color: #f5f5f5;
  padding: 2rem 2rem;
}

/* Заголовки */
.section-title {
  font-size: 1.75rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 15px;
  color: #333;
}

.section-subtitle {
  font-size: 1.1rem;
  text-align: center;
  color: #6b7280;
  max-width: 800px;
  margin: 0 auto 40px;
  line-height: 1.6;
}

/* Обёртка для прокрутки таблицы */
.table-wrapper {
  overflow-x: auto;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  margin-bottom: 25px;
}

/* Таблица */
.pricing-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  min-width: 600px;
}

.pricing-table th {
  background-color: #1f2937;
  color: #fff;
  font-weight: 600;
  padding: 16px 12px;
  text-align: center;
  white-space: nowrap;
}

.pricing-table th:first-child {
  text-align: left;
}

.pricing-table td {
  padding: 14px 12px;
  border-bottom: 1px solid #e5e7eb;
  text-align: center;
}

.pricing-table td:first-child {
  text-align: left;
  font-weight: 500;
  color: #111827;
}

.pricing-table tr:nth-child(even) {
  background-color: #f9fafb;
}

.pricing-table tr:last-child td {
  border-bottom: none;
}

/* Примечание */
.pricing-note {
  text-align: center;
  font-size: 14px;
  color: #6b7280;
  font-style: italic;
}

/* Адаптив */
@media (max-width: 768px) {
  .section--pricing {
  padding: 2rem 1rem;
  }
  .section-title {
    font-size: 30px;
  }

  .section-subtitle {
    font-size: 16px;
  }

  .pricing-table th,
  .pricing-table td {
    padding: 12px 8px;
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .section-title {
    font-size: 26px;
  }

  .section-subtitle {
    font-size: 15px;
  }

  .pricing-note {
    font-size: 13px;
  }
}

/*=== Преимущества Промывки опрессовки ===*/
.icon-promyvka {
  margin: 0 auto;
}

.title-promyvka {
  text-align: center;
}

.text-promyvka {
  text-align: center;
}

/*=== FAQ Промывки опрессовки ===*/
.faq-list {
  list-style: none;
}

.faq-list li {
  align-items: center;
}

.faq-list i {
  color: #e31e24;
  font-weight: bold;
  font-size: 1.2rem;
  padding-right: 0.5rem;
}


/* Политика конфиденциальности  */
.privacy-main {
  padding: 2.5rem 0;
}

.privacy-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
}

.privacy-layout {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.privacy-sidebar {
  width: 100%;
}

.sidebar-content {
  background-color: #f9fafb;
  padding: 1.5rem;
  border-radius: 0.5rem;
  position: sticky;
  top: 1.5rem;
}

.sidebar-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.toc-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  list-style: none;
}

.toc-link {
  color: #4b5563;
  text-decoration: none;
  display: block;
  transition: color 0.2s;
}

.toc-link:hover {
  color: #E31E24;
}

.sidebar-footer {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e5e7eb;
}

.back-link {
  display: flex;
  align-items: center;
  color: #E31E24;
  text-decoration: none;
}

.back-link:hover {
  text-decoration: underline;
}

.back-link i {
  margin-right: 0.5rem;
}

.privacy-content {
  width: 100%;
}

.privacy-title {
  font-size: 1.675rem;
  font-weight: bold;
  margin-bottom: 1.5rem;
}

.privacy-subtitle {
  color: #4b5563;
  margin-bottom: 2rem;
}

.privacy-text {
  max-width: none;
}

.privacy-intro {
  margin-bottom: 1.5rem;
}

.privacy-section {
  margin-bottom: 2.5rem;
}

.section-title {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.section-text {
  margin-bottom: 1rem;
  line-height: 1.6;
}

.section-list {
  list-style-type: disc;
  padding-left: 1.5rem;
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.section-list li {
  line-height: 1.6;
}

.privacy-divider {
  border: none;
  border-top: 1px solid #e5e7eb;
  margin: 2rem 0 1.5rem;
}

.privacy-note {
  color: #6b7280;
  font-size: 0.95rem;
  line-height: 1.6;
}

.privacy-note a {
  color: #e31e24;
  text-decoration: underline;
}

.icon-list {
  list-style: none;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.icon-list li {
  display: flex;
  align-items: flex-start;
  color: #374151;
  font-size: 1rem;
  line-height: 1.5;
}

.icon-list i {
  color: #e31e24;
  font-size: 1.25rem;
  margin-right: 0.5rem;
  flex-shrink: 0;
  line-height: 1.4;
}

.privacy-link {
  color: #e31e24;
  text-decoration: underline;
}

.mobile-only-phone {
  pointer-events: none;
  color: inherit;
  text-decoration: none;
  cursor: none;
}

.privacy-container,
.privacy-main,
.privacy-text {
  max-width: 100%;
  overflow-x: hidden;
  box-sizing: border-box;
}

/* Responsive Styles */
@media (min-width: 1024px) {
  .privacy-layout {
    flex-direction: row;
  }
  
  .privacy-sidebar {
    width: 25%;
  }
  
  .privacy-content {
    width: 75%;
  }
}

@media (max-width: 768px) {
  .mobile-only-phone {
    pointer-events: auto;
    color: #e31e24; /* или другой цвет ссылки */
    cursor: pointer;
  }
}

/*=== Проектированиеузлов учета тепловой энергии ===*/
/* Об услуге */
.banner-proekt {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(20, 24, 29, 0.9) 0%, rgba(43, 59, 78, 0.5) 100%);
  z-index: 1;
}

.uut-section {
  padding: 2rem 0;
}

.uut-flex {
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding: 0 2rem;
}

.uut-text {
  flex: 1;
  font-size: 16px;
  color: #333;
}

.uut-description {
  margin-bottom: 20px;
}

.uut-list {
  list-style: none;
  padding-left: 0;
  margin: 20px 0;
}
.uut-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: 16px;
  font-size: 15px;
  color: #444;
}
.uut-list i {
  color: #f87171;
  font-size: 18px;
  margin-right: 10px;
  flex-shrink: 0;
  margin-top: 2px;
}

.uut-image {
  flex: 1;
  max-width: 500px;
  align-self: center;
}
.uut-image img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.08);
}

/* Карточки */
.uut-cards {
  margin: 2.5rem 2rem 0 2rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

.uut-card {
  background: #fff;
  border-radius: 12px;
  padding: 25px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
  text-align: left;
}

.uut-card h3 {
  font-size: 18px;
  margin-bottom: 10px;
  font-weight: 600;
}

.uut-card p {
  font-size: 14px;
  color: #555;
}

.uut-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 15px;
  font-size: 20px;
}

.uut-icon.green {
  background-color: #e6f4ea;
  color: #1e7e34;
}

.uut-icon.blue {
  background-color: #e6f0fb;
  color: #0d6efd;
}

.uut-icon.purple {
  background-color: #f2e6fa;
  color: #6f42c1;
}

/* Адаптив */
@media (min-width: 768px) {
  .uut-flex {
    flex-direction: row;
    align-items: center;
  }
  .uut-cards {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Этапы проектирования */
.project-steps {
  padding: 3.75rem 0;
  background-color: #ffffff;
}

.section-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 600;
  margin-bottom: 2.5rem;
  color: #1f2937;
}

.steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13.75rem, 1fr));
  gap: 1.875rem;
  margin: 0 2rem;
}

.step-item {
  background: #f3f4f6;
  border-radius: 0.5rem;
  padding: 1.5625rem 1.25rem;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.step-item:hover {
  transform: translateY(-0.3125rem);
  box-shadow: 0 0.25rem 0.625rem rgba(0, 0, 0, 0.06);
}

.step-icon {
  font-size: 2.25rem;
  color: #ef4444;
  background: rgba(239, 68, 68, 0.1);
  border-radius: 50%;
  width: 4rem;
  height: 4rem;
  line-height: 4rem;
  margin: 0 auto 0.9375rem;
}

.step-item h3 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.625rem;
  color: #111827;
}

.step-item p {
  font-size: 0.875rem;
  color: #4b5563;
  line-height: 1.5;
}

/* Преимущества проектирования */
.benefits-section {
  padding: 2rem 0;
  background-color: #f3f4f6;
}

.section-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 2.5rem;
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16.25rem, 1fr));
  gap: 1.875rem;
  margin: 0 2rem;
}

.benefit-item {
  background-color: #ffffff;
  border-radius: 20px;
  padding: 1.875rem 1.25rem;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.benefit-item:hover {
  transform: translateY(-0.3125rem);
  box-shadow: 0 0.25rem 0.625rem rgba(0, 0, 0, 0.06);
}

.benefit-icon {
  font-size: 2.5rem;
  color: #ef4444;
  background-color: rgba(239, 68, 68, 0.1);
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  line-height: 4rem;
  margin: 0 auto 1rem;
}

.benefit-item h3 {
  font-size: 1rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 0.625rem;
}

.benefit-item p {
  font-size: 0.875rem;
  color: #4b5563;
  line-height: 1.5;
}

/* Стоимость услуг проектирования */
.project-price {
  background-color: #f9fafb;
}

.project-note {
  text-align: left;
}

/* Дистанционное снятие данных Поддерживаемые приборы */
.supported-devices {
  background-color: #f9fafb;
  padding: 2rem 1rem;
}

.section-title {
  text-align: center;
  font-size: 1.75rem;
  margin-bottom: 2rem;
  font-weight: 600;
  color: #111827;
}

.device-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.device-card {
  background-color: #ffffff;
  padding: 2rem 1.2rem;
  border-radius: 1rem;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  transition: transform 0.3s ease;
}

.device-card:hover {
  transform: translateY(-4px);
}

.icon-box {
  font-size: 2rem;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  margin: 0 auto 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #e5e7eb;
}

.icon-box.pink {
  background-color: #fdecea;
  color: #f43f5e;
}

.icon-box.blue {
  background-color: #e0f2fe;
  color: #0284c7;
}

.icon-box.orange {
  background-color: #fff7ed;
  color: #f97316;
}

.icon-box.yellow {
  background-color: #fefce8;
  color: #eab308;
}

.device-card h3 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.device-card p {
  font-size: 0.95rem;
  color: #6b7280;
}

.device-card a {
  text-decoration: none;
  color: #333;
}

/* Модалка для поддерживаемых приборов */
.device-modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.6);
}

/* Контент */
.device-modal-content {
  background: #fff;
  margin: 5% auto;
  padding: 20px 25px;
  border-radius: 12px;
  max-width: 1000px;
  box-shadow: 0 8px 25px rgba(0,0,0,0.2);
  animation: fadeIn 0.3s ease;
}

.device-modal-content h3 {
  margin-top: 0;
  font-size: 1.3rem;
  margin-bottom: 15px;
  color: #333;
  text-align: center;
}

/* Закрыть */
.device-modal-close {
  float: right;
  font-size: 24px;
  font-weight: bold;
  cursor: pointer;
  color: #555;
}
.device-modal-close:hover {
  color: #000;
}

/* Список приборов */
.device-modal-table {
  margin-top: 10px;
}

.device-modal-list {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 1; /* по умолчанию для мобилы */
  -webkit-columns: 1;
  -moz-columns: 1;
  column-gap: 20px;
}

.device-modal-list li {
  padding: 6px 0;
  font-size: 0.95rem;
  color: #333;
  break-inside: avoid;
  border-bottom: 1px dotted #ddd;
}

.device-modal-list li:last-child {
  border-bottom: none;
}

/* Иконка в заголовке модалки */
#deviceModalIcon i {
  font-size: 1.8rem;       /* размер иконки */
  vertical-align: middle;   /* выравнивание по центру текста */
  color: inherit;           /* цвет наследуется от заголовка */
}

/* Если нужно чуть отступить от текста */
#deviceModalIcon {
  display: inline-block;
  margin-right: 8px;       /* отступ справа от текста */
  vertical-align: middle;
}

/* Планшет: 2 колонки */
@media (min-width: 600px) {
  .device-modal-list {
    columns: 2;
    -webkit-columns: 2;
    -moz-columns: 2;
  }
}

/* Десктоп: 3 колонки */
@media (min-width: 992px) {
  .device-modal-list {
    columns: 3;
    -webkit-columns: 3;
    -moz-columns: 3;
  }
}

@keyframes fadeIn {
  from {opacity: 0; transform: translateY(-20px);}
  to {opacity: 1; transform: translateY(0);}
}

/* Преимущества услуги Сбора данных */
.advantages-section {
  background-color: #f9fafb;
  padding: 2rem 1rem;
}

.advantages-title {
  text-align: center;
  font-size: 1,75rem;
  font-weight: 600;
  margin-bottom: 2rem;
  color: #1f2937;
}

.advantages-grid-sbor {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}

.advantage-card {
  background-color: #ffffff;
  border-radius: 12px;
  padding: 1,5rem 1rem;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.03);
  text-align: center;
  transition: transform 0.3s ease;
}

.advantage-card:hover {
  transform: translateY(-4px);
}

.icon {
  font-size: 36px;
  color: #e31e24;
  margin-bottom: 0,9rem;
}

.advantage-card h3 {
  font-size: 1rem;
  color: #111827;
  margin-bottom: 10px;
}

.advantage-card p {
  font-size: 0,75rem;
  color: #6b7280;
  line-height: 1.5;
}

/* Адаптивность */
@media (max-width: 1024px) {
  .advantages-grid-sbor {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .advantages-grid-sbor {
    grid-template-columns: 1fr;
  }
}

/* Блок Результаты внедрения системы */
.system-result {
  background: #f7fafe;
  padding: 2rem 1rem;
  text-align: center;
  border-radius: 12px;
  margin: 2rem auto;
  max-width: 1200px;
}

.system-result h2 {
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.system-result .subheading {
  font-size: 1rem;
  margin-bottom: 2rem;
  color: #6b7280;
}

.result-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem;
}

.result-item {
  background: #fff;
  padding: 1rem;
  border-radius: 10px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.result-item .value {
  font-size: 1.8rem;
  font-weight: 700;
  display: block;
  margin-bottom: 0.5rem;
}

.value.blue {
  color: #0d47a1;
}

.value.green {
  color: #e31e24;
}

.value.teal {
  color: #388e3c;
}

.value.orange {
  color: #d84315;
}

@media (max-width: 600px) {
  .result-item .value {
    font-size: 1.5rem;
  }

  .system-result h2 {
    font-size: 1.3rem;
  }

  .system-result .subheading {
    font-size: 0.95rem;
  }
}

/* Преимущества метрологической поверки */
.data-collection-section {
  padding: 2rem 1rem;
  background-color: #f5f5f5;
}

.data-collection-container {
  max-width: 1200px;
  margin: 0 auto;
}

.data-collection-title {
  text-align: center;
  font-size: 1.75rem;
  margin-bottom: 2.5rem;
}

.data-collection-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}

.data-collection-card {
  background: #fff;
  padding: 1rem;
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
  transition: transform 0.2s ease;
}

.data-collection-card:hover {
  transform: translateY(-5px);
}

.data-collection-icon {
  font-size: 40px;
  color: #e53935;
  margin-bottom: 1rem;
}

.data-collection-card-title {
  font-size: 1rem;
  margin-bottom: 0.75rem;
}

.data-collection-card-text {
  font-size: 0.875rem;
  color: #555;
}

/* Об услуге метрологическая поверка */
.heat-metering-project-section {
  padding: 2rem 0;
  background-color: #fff;
}

.heat-metering-project-title {
  text-align: center;
  font-size: 1.75rem;
  margin-bottom: 2rem;
  font-weight: 600;
  color: #111827;
}

.heat-metering-project-subtitle {
  font-size: 1rem;
  text-align: center;
  color: #6b7280;
  max-width: 800px;
  margin: 0 auto 40px;
  padding: 0 2rem;
  line-height: 1.6;
}

.heat-metering-project-flex {
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding: 0 2rem;
}

.heat-metering-project-text {
  flex: 1;
  font-size: 16px;
  color: #333;
}

.heat-metering-project-list {
  list-style: none;
  padding-left: 0;
  margin: 20px 0;
}

.heat-metering-project-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: 16px;
  font-size: 15px;
  color: #444;
}

.heat-metering-project-list i {
  color: #f87171;
  font-size: 18px;
  margin-right: 10px;
  flex-shrink: 0;
  margin-top: 2px;
}

.heat-metering-project-image {
  flex: 1;
  max-width: 500px;
  align-self: center;
}

.heat-metering-project-image img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.08);
}

/* Адаптивность */
@media (min-width: 768px) {
  .heat-metering-project-flex {
    flex-direction: row;
    align-items: center;
  }
}

/* Блок Типы поверяемых приборов */
.devices-section {
    padding: 50px 0;
    background-color: #f5f5f5;
}

.devices-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}

.devices-title {
    font-size: 1.75rem;
    font-weight: bold;
    margin-bottom: 1.5rem;
    color: #1a1a1a;
}

.devices-subtitle {
    font-size: 1rem;
    color: #555;
    margin-bottom: 2.5rem;
}

.devices-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

.devices-card {
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    text-align: left;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.devices-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
}

.devices-icon {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: #fff;
    margin-bottom: 15px;
}

.devices-icon-blue {
    background-color: #3b82f6;
}

.devices-icon-red {
    background-color: #ef4444;
}

.devices-icon-green {
    background-color: #10b981;
}

.devices-card-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.devices-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.devices-list li {
    position: relative;
    padding-left: 0.8rem;
    margin-bottom: 0.05rem;
    font-size: 0.9rem;
    color: #444;
}

.ri-check-line-t {
  padding-right: 0.2rem;
  color: #3b82f6;
}

.ri-check-line-r {
  padding-right: 0.2rem;
  color: #ef4444;
}

.ri-check-line-d {
  padding-right: 0.2rem;
  color: #10b981;
}

/* === Монтаж/демонтаж услуга === */
/* Блок об услуге */
.services-about {
  padding: 50px 0;
}

.services-about .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

.services-grid-montag {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}

.services-text h2 {
  font-size: 26px;
  margin-bottom: 15px;
}

.services-text p {
  margin-bottom: 15px;
  line-height: 1.6;
}

.services-list {
  background: #fff;
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.services-list h3 {
  font-size: 20px;
  margin-bottom: 15px;
}

.services-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.services-list li {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  font-size: 16px;
}

.services-list li i {
  color: #007bff;
  font-size: 18px;
  margin-right: 8px;
}

/* Адаптив */
@media (max-width: 768px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
}

/* === Техническое обслуживание услуга === */
/* Этапы ТО */
.stages-section {
  padding: 2rem 1rem;
  background: #f9fafb;
}

.stages-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 600;
  margin-bottom: 3rem;
  color: #111827;
}

.stages-timeline {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  padding-left: 3rem;
  border-left: 2px solid #d1d5db;
}

.stage-item {
  position: relative;
  margin-bottom: 3rem;
  padding-left: 3rem;
}

.stage-number {
  position: absolute;
  left: -20px;
  top: 0;
  width: 40px;
  height: 40px;
  background: #e31e24;
  color: #fff;
  font-weight: bold;
  font-size: 1rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stage-content h3 {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: #1f2937;
}

.stage-content p {
  color: #4b5563;
  margin-bottom: 0.5rem;
  line-height: 1.5;
}

.stage-time {
  font-size: 0.9rem;
  color: #6b7280;
  font-style: italic;
}

/* Адаптивность */
/*@media (max-width: 768px) {
  .stages-title {
    font-size: 22px;
  }

  .stage-content h3 {
    font-size: 18px;
  }

  .stage-content p {
    font-size: 14px;
  }

  .stage-number {
    width: 32px;
    height: 32px;
    font-size: 14px;
  }

  .stages-timeline {
    padding-left: 20px;
  }
}*/

.advantages-section {
  background: #f9fafb;
  padding: 2rem 1rem;
}
.advantages-section .section-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 600;
  margin-bottom: 2rem;
  color: #111827;
}
.advantages-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  max-width: 1100px;
  margin: 0 auto;
}
.advantage-card {
  background: #fff;
  border-radius: 12px;
  padding: 1rem 1rem;
  text-align: center;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  transition: transform 0.3s ease;
}
.advantage-card:hover {
  transform: translateY(-5px);
}
.advantage-card .icon {
  font-size: 36px;
  color: #e31e24;
  margin-bottom: 0.8rem;
}
.advantage-card h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 1rem;
}
.advantage-card p {
  font-size: 1rem;
  color: #4b5563;
  line-height: 1.5;
}

/* === СТАТЬИ ДЛЯ БЛОГА === */
/* Общий контейнер */
.blog-article-page .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

.content-wrapper {
  display: flex;
  gap: 30px;
  align-items: flex-start;
}

/* Основной контент */
.article-content {
  flex: 3;
  background: #fff;
  padding: 25px;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

.article-content h1 {
  font-size: 2.5rem;
  margin-bottom: 15px;
}

.article-meta {
  font-size: 14px;
  color: #777;
  margin-bottom: 15px;
}

.article-content img {
  width: 100%;
  border-radius: 8px;
  margin: 20px 0;
}

.akcent {
  margin-top: 25px;
  font-size: 1.5rem;
  border-left: 4px solid #c21f1f; /* под цвет акцента сайта */
  padding-left: 10px;
}

.text-h {
  font-weight: 600;
}

.ri-blue {
  padding-right: 0.2rem;
  color: #3b82f6;
  font-weight: 600;
  font-size: 1.25rem;
}

.ri-loki {
  padding-left: 1.5rem;
}

/* Сайдбар */
.sidebar {
  flex: 1;
  position: sticky;
  top: 20px;
}

.sidebar-block {
  background: #fff;
  padding: 20px;
  margin-bottom: 20px;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

.sidebar-block h3 {
  font-size: 18px;
  margin-bottom: 15px;
  border-bottom: 2px solid #eee;
  padding-bottom: 8px;
}

.sidebar-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sidebar-list li {
  margin-bottom: 10px;
}

.sidebar-list li a {
  text-decoration: none;
  color: #333;
  transition: color 0.3s;
}

.sidebar-list li a:hover {
  color: #c21f1f; /* акцент */
}

/* Подписка */
.subscribe-block p {
  font-size: 14px;
  margin-bottom: 12px;
}

.subscribe-block input {
  width: 100%;
  padding: 10px;
  margin-bottom: 10px;
  border-radius: 6px;
  border: 1px solid #ccc;
}

.subscribe-block button {
  width: 100%;
  padding: 10px;
  background: #c21f1f;
  border: none;
  color: #fff;
  font-weight: bold;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.3s;
}

.subscribe-block button:hover {
  background: #a81a1a;
}

/* Тэги */
.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tags a {
  background: #f2f2f2;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 13px;
  color: #333;
  text-decoration: none;
  transition: background 0.3s;
}

.tags a:hover {
  background: #c21f1f;
  color: #fff;
}

/* Кнопки в блоках */
.more-btn, .contact-btn {
  display: inline-block;
  margin-top: 10px;
  padding: 10px 15px;
  border-radius: 6px;
  background: #c21f1f;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  transition: background 0.3s;
}

.more-btn:hover, .contact-btn:hover {
  background: #a81a1a;
}

/* Контакты */
.contact-block p {
  margin: 6px 0;
  font-size: 14px;
}

.contact-block a {
  color: #333;
  text-decoration: none;
}

.contact-block a:hover {
  color: #c21f1f;
}

/* Адаптив */
@media (max-width: 992px) {
  .content-wrapper {
    flex-direction: column;
  }
  .sidebar {
    position: static;
    width: 100%;
  }
}


/* === ФГИС АРШИН === */

.arshin-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

/* Сетка */
.search-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-bottom: 2rem;
}

/* Поля */
.search-field label {
    display: block;
    font-size: 0.875rem; /* 14px */
    font-weight: 600;
    margin-bottom: 0.375rem; /* 6px */
    color: #374151;
}

.search-field input {
    width: 90%;
    height: 2rem;
    padding: 0.625rem 0.875rem; /* 10px 14px */
    border: 0.0625rem solid #d1d5db; /* 1px */
    border-radius: 0.5rem; /* 8px */
    font-size: 0.9375rem; /* 15px */
    background: #fff;
    color: #111827;
    transition: border-color 0.2s ease;
}

.search-field input:focus {
    outline: none;
    border-color: #ef4444;
    box-shadow: 0 0 0 2px rgba(239,68,68,.25);
}

/* Поля даты — два в ряд */
.date-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem; /* 12px */
}

/* Расширенные поля */
.hidden {
  display: none !important;
}

/* Кнопки */
.form-buttons {
    margin-top: 0.625rem; /* 10px */
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Очистить */
.btn-reset {
    padding: 0.75rem 1.875rem; /* 12px 30px */
    border: 1px solid #e31e24;
    border-radius: 0.5rem; /* 8px */
    background: #fff;
    color: #e31e24;
    cursor: pointer;
    font-size: 1rem; /* 16px */
    font-weight: 600;
    transition: all 0.3s;
}

.btn-reset:hover {
    background: #e31e24;
    color: #fff;
}

/* Правый блок */
.buttons-right {
    display: flex;
    align-items: center;
    gap: 0.875rem; /* 14px */
}

/* Расширенный поиск */
.btn-advanced {
    padding: 0.75rem 1rem; /* 10px 16px */
    border: 1px solid #d1d5db; /* 1px */
    border-radius: 0.5rem; /* 8px */
    background: #fff;
    cursor: pointer;
    font-size: 0.9375rem; /* 15px */
    color: #374151;
    display: flex;
    align-items: center;
    gap: 0.375rem; /* 6px */
    transition: all 0.3s;
}

.btn-advanced:hover {
    background: #f3f4f6;
}

/* Кнопка поиска */
.btn-search {
    padding: 0.75rem 1.875rem; /* 12px 30px */
    border: 1px solid #dc2626;
    border-radius: 0.5rem; /* 8px */
    background: #dc2626;
    color: #fff;
    cursor: pointer;
    font-size: 1rem; /* 16px */
    font-weight: 600;
    transition: all 0.3s;
}

.btn-search:hover {
    background: #fff;
    color: #e31e24;
    border: 1px solid #e31e24;
}

/* Базовые стили спиннера */
.spinner-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 50;
    display: none;
}

.spinner-backdrop {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(17, 24, 39, 0.3);
    backdrop-filter: blur(4px);
}

.spinner-container {
    position: relative;
    z-index: 10;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.spinner-card {
    background-color: #ffffff;
    border-radius: 0.75rem;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    padding: 1.5rem;
    max-width: 24rem;
    width: 100%;
}

.spinner-content {
    text-align: center;
}

.spinner-icon-wrapper {
    position: relative;
    margin-bottom: 1rem;
}

.spinner-circle {
    border-radius: 9999px;
    height: 3rem;
    width: 3rem;
    border-width: 4px;
    border-style: solid;
    border-color: #e5e7eb;
    border-top-color: #dc2626;
    margin-left: auto;
    margin-right: auto;
    animation: spin 1s linear infinite;
}

.spinner-icon {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.spinner-icon i {
    color: #dc2626;
    font-size: 1.125rem;
}

.spinner-title {
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
    color: #111827;
    margin-bottom: 0.5rem;
}

.spinner-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #4b5563;
}

.spinner-progress-track {
    margin-top: 1rem;
    background-color: #f3f4f6;
    border-radius: 9999px;
    height: 0.5rem;
    overflow: hidden;
}

.spinner-progress-bar {
    background: linear-gradient(to right, #ef4444, #f97316);
    height: 100%;
    border-radius: 9999px;
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Анимации */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

/* Класс для показа спиннера */
.spinner-overlay.active {
    display: block;
}

/* Стили для секции результатов */
.results-header {
    padding: 1.25rem 1.25rem;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.results-title {
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
}

.results-count {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #475569;
}

.results-count b {
    font-weight: 600;
}

/* Обертка таблицы с прокруткой */
.table-wrapper {
    width: 100%;
    overflow-x: auto;
}

/* Основная таблица */
.results-table {
    width: 100%;
    border-collapse: collapse;
}

/* Ширины колонок через colgroup */
.col-num { width: 50px; }
.col-status { width: 80px; }
.col-reg { width: 120px; }
.col-name { width: 200px; }
.col-model { width: 150px; }
.col-serial { width: 120px; }
.col-date { width: 100px; }
.col-cert { width: 140px; }
.col-org { width: 200px; }

/* Заголовки таблицы */
.results-table thead {
    background-color: #f9fafb;
}

.results-table th {
    padding: 0.75rem 1rem;
    text-align: left;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: #374151;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

/* Особые стили для некоторых заголовков */
.th-num {
    text-align: center;
}

.th-model {
    min-width: 120px;
}

.th-org {
    min-width: 180px;
}

/* Тело таблицы */
.results-table tbody {
    background-color: #ffffff;
}

.results-table tbody tr {
    border-bottom: 1px solid #e5e7eb;
}

.results-table tbody tr:last-child {
    border-bottom: none;
}

.results-table td {
    padding: 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #1f2937;
    vertical-align: top;
    white-space: nowrap;
}

/* Первая колонка (№) */
.results-table td:first-child {
    text-align: center;
    font-weight: 500;
    color: #6b7280;
}

/* Строка-заглушка при отсутствии данных */
.results-table tbody .empty-row td {
    padding: 2rem;
    text-align: center;
    color: #9ca3af;
    font-style: italic;
}

/* Адаптивность */
@media (max-width: 1024px) {
    .col-name { width: 180px; }
    .col-org { width: 180px; }
}

@media (max-width: 768px) {
    .results-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .results-table th,
    .results-table td {
        padding: 0.75rem 0.5rem;
        font-size: 0.75rem;
    }
    
    .col-num { width: 40px; }
    .col-status { width: 70px; }
    .col-reg { width: 100px; }
    .col-name { width: 150px; }
    .col-model { width: 120px; }
    .col-serial { width: 100px; }
    .col-date { width: 90px; }
    .col-cert { width: 120px; }
    .col-org { width: 150px; }
}

@media (max-width: 640px) {
    .results-header {
        padding: 1rem;
    }

    .arshin-page .logo-image img {
      height: 30px;
      object-fit: contain;
    }
}

/* Стили для пагинации */
.pagination-section {
    padding: 1rem;
    border-top: 1px solid #e5e7eb;
}

.pagination-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

@media (min-width: 640px) {
    .pagination-wrapper {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
}

/* Информация о странице */
.page-info {
    font-size: 0.875rem;
    color: #6b7280;
    text-align: center;
}

@media (min-width: 640px) {
    .page-info {
        text-align: left;
    }
}

/* Контейнер пагинации */
.pagination {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* Общие стили для кнопок пагинации */
.pagination-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 2.25rem;
    min-width: 2.25rem;
    padding: 0 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
    background-color: #ffffff;
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
}

.pagination-btn:hover:not(:disabled) {
    background-color: #f9fafb;
    border-color: #9ca3af;
}

.pagination-btn:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5);
}

.pagination-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Кнопки навигации (вперед/назад) */
.pagination-prev,
.pagination-next {
    padding: 0 1rem;
}

.pagination-prev .icon,
.pagination-next .icon {
    width: 1.25rem;
    height: 1.25rem;
}

.pagination-prev {
    margin-right: 0.5rem;
}

.pagination-next {
    margin-left: 0.5rem;
}

/* Номер страницы */
.pagination-page {
    font-weight: 500;
}

.pagination-page.active {
    background-color: #3b82f6;
    color: #ffffff;
    border-color: #3b82f6;
}

.pagination-page.active:hover {
    background-color: #2563eb;
    border-color: #2563eb;
}

/* Многоточие */
.pagination-ellipsis {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 2.25rem;
    min-width: 2.25rem;
    color: #6b7280;
    font-size: 0.875rem;
    user-select: none;
}

/* Мобильная версия пагинации */
.pagination-mobile {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pagination-mobile-select {
    padding: 0.375rem 1.5rem 0.375rem 0.75rem;
    font-size: 0.875rem;
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    appearance: none;
}

.pagination-mobile-select:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    border-color: #3b82f6;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5);
}

/* Адаптивность */
@media (max-width: 640px) {
    .pagination-desktop {
        display: none;
    }
    
    .pagination-mobile {
        display: flex;
    }
}

@media (min-width: 641px) {
    .pagination-desktop {
        display: flex;
    }
    
    .pagination-mobile {
        display: none;
    }
}

/* Дополнительные стили для иконок (если нужно) */
.icon {
    display: inline-block;
    vertical-align: middle;
}

.icon-prev {
    margin-right: 0.25rem;
}

.icon-next {
    margin-left: 0.25rem;
}

/* Стили для сообщения "Нет результатов" */
.empty-icon {
    font-size: 3rem;
    color: #94a3b8;
    margin-bottom: 0.75rem;
    display: block;
}

.empty-title {
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #1e293b;
}

.empty-message {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #64748b;
    max-width: 24rem;
    margin: 0 auto;
}

.arshin-page #empty .arshin-empty-actions{
  margin-top: 14px;
  display: flex;
  justify-content: center;
}
.arshin-page #empty .arshin-empty-actions.hidden{ display:none; }

/* С дополнительными действиями */
.empty-actions {
    margin-top: 1.5rem;
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
}

.empty-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 0.375rem;
    transition: all 0.2s ease;
    cursor: pointer;
    border: 1px solid transparent;
}

.empty-btn-primary {
    background-color: #3b82f6;
    color: #ffffff;
}

.empty-btn-primary:hover {
    background-color: #2563eb;
}

.empty-btn-secondary {
    background-color: #ffffff;
    color: #374151;
    border-color: #d1d5db;
}

.empty-btn-secondary:hover {
    background-color: #f9fafb;
}

.empty-btn-icon {
    margin-right: 0.375rem;
    font-size: 1rem;
}

/* Адаптивность */
@media (max-width: 640px) {
    .empty-icon {
        font-size: 2.5rem;
        margin-bottom: 0.5rem;
    }
    
    .empty-title {
        font-size: 1rem;
    }
    
    .empty-actions {
        flex-direction: column;
        align-items: stretch;
    }
    
    .empty-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Анимация появления */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==== HAPPY NEW YEAR ==== */
.noshow {
  display: none;
}

.new-year-promo {
  width: 20rem;
  background: linear-gradient(to right,rgba(225, 29, 72, 0.9), rgba(220, 38, 38, 0.9), rgba(190, 18, 60, 0.9));
  border-radius: 30px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  font-family: 'Arial', sans-serif;
  color: #ffffff;
  font-weight: 600;
  text-align: center;
  padding: 1rem 0;
  margin: 20px auto;
}

.text-xl {
  padding: 0 1rem;
}

.hero-content-ng h1 {
  font-size: 3.5rem;
}

@media (max-width: 640px) {
    .hero-content-ng h1 {
        font-size: 2.5rem;
    }
}




/* ========== ARSHIN HERO (фон елочки уже задан в .hero-section) ========== */

.arshin-page .arshin-hero {
  padding-top: 4.5rem;
  padding-bottom: 4rem;
}

.arshin-page .arshin-hero-content {
  padding: 2rem 1rem;
}

.arshin-page .arshin-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 0.85rem 1.35rem;
  border-radius: 9999px;
  background: linear-gradient(45deg, #ec003f, #e7000b, #c70036);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 14px 36px rgba(0,0,0,0.16);
  font-size: 1rem;
}

/* ARSHIN: hover-эффект как у кнопок главной (scale + снежинки) */
.arshin-page .arshin-hero-badge{
  position: relative;
  overflow: hidden;
  will-change: transform;
  transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
}

.arshin-page .arshin-hero-badge::before,
.arshin-page .arshin-hero-badge::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
}

/* 2 снежинки */
.arshin-page .arshin-hero-badge::before{
  background-image: var(--snowflake-svg), var(--snowflake-svg);
  background-repeat: no-repeat;
  background-size: 18px 18px, 14px 14px;
  background-position: 12% 55%, 82% 32%;
}

/* 1 снежинка */
.arshin-page .arshin-hero-badge::after{
  background-image: var(--snowflake-svg);
  background-repeat: no-repeat;
  background-size: 16px 16px;
  background-position: 55% 83%;
}

.arshin-page .arshin-hero-badge:hover{
  transform: scale(1.04);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
  filter: brightness(1.02);
}

.arshin-page .arshin-hero-badge:hover::before{
  opacity: 1;
  animation: snowPulseA 1.2s ease-in-out infinite;
}

.arshin-page .arshin-hero-badge:hover::after{
  opacity: 1;
  animation: snowPulseB 1.05s ease-in-out infinite;
}

/* Доступность: без анимации */
@media (prefers-reduced-motion: reduce) {
  .arshin-page .arshin-hero-badge,
  .arshin-page .arshin-hero-badge::before,
  .arshin-page .arshin-hero-badge::after{
    transition: none !important;
    animation: none !important;
  }

  .arshin-page .arshin-hero-badge:hover{
    transform: none;
  }

  .arshin-page .arshin-hero-badge:hover::before,
  .arshin-page .arshin-hero-badge:hover::after{
    opacity: 1;
  }
}

.arshin-page .arshin-hero-badge__icon {
  filter: drop-shadow(0 6px 14px rgba(0,0,0,0.18));
}

.arshin-page .arshin-hero-badge__arrow {
  margin-left: 6px;
  opacity: 0.95;
}

.arshin-page .arshin-hero-title {
  font-size: 3rem;
  margin: 1.4rem 0 0;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.arshin-page .arshin-hero-note {
  max-width: 700px;
  margin: 1.5rem auto 0;
  background: rgba(255,255,255,0.85);
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 16px;
  padding: 1.4rem 1.6rem;
  box-shadow: 0 14px 40px rgba(0,0,0,0.12);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.arshin-page .arshin-hero-note__title {
  margin: 0 0 0.6rem;
  font-weight: 600;
  color: #374151;
}

.arshin-page .arshin-hero-note__line {
  margin: 0;
  font-weight: 600;
  color: #6b7280;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* Адаптив HERO */
@media (max-width: 640px){
  .arshin-page .arshin-hero{ padding: 3.2rem 1rem 3rem; }
  .arshin-page .arshin-hero-title{ font-size: 2.1rem; }
  .arshin-page .arshin-hero-note{ padding: 1.05rem 1rem; }
  .arshin-page .arshin-hero-badge{ font-size: 0.8rem; }
}

/* ARSHIN: блок подсказок под формой */
.arshin-page .arshin-help{
  margin-top: 1.5rem;
}

.arshin-page .arshin-help__card{
  position: relative;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(0,0,0,0.10);
  padding: 2rem 2rem 1.75rem;
  overflow: hidden;
  text-align: center;
}

.arshin-page .arshin-help__decor{
  position: absolute;
  right: 16px;
  top: 14px;
  opacity: 0.18;
  font-size: 2.2rem;
  pointer-events: none;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,0.18));
}

.arshin-page .arshin-help__icons{
  display: inline-flex;
  gap: 14px;
  font-size: 30px;
  margin-bottom: 0.8rem;
}

.arshin-page .arshin-help__title{
  margin: 0;
  font-size: 1.4rem;
  font-weight: 800;
  color: #111827;
}

.arshin-page .arshin-help__subtitle{
  margin: 0.6rem auto 0;
  max-width: 820px;
  color: #6b7280;
  font-weight: 600;
}

.arshin-page .arshin-help__tips{
  margin: 1.2rem auto 0;
  max-width: 720px;
  background: rgba(255, 235, 240, 0.55);
  border: 1px solid rgba(227, 30, 36, 0.12);
  border-radius: 14px;
  padding: 1rem 1.1rem;
  text-align: left;
}

.arshin-page .arshin-help__tips-title{
  font-weight: 800;
  color: #b91c1c;
  margin-bottom: 0.6rem;
}

.arshin-page .arshin-help__tips-list{
  margin: 0;
  padding-left: 1.2rem;
  color: #374151;
  font-weight: 600;
}

.arshin-page .arshin-help__tips-list li{
  margin: 0.35rem 0;
}

.arshin-page .arshin-help__greeting{
  margin: 1.3rem auto 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0.55rem 1rem;
  border-radius: 9999px;
  background: rgba(255, 240, 245, 0.9);
  border: 1px solid rgba(227, 30, 36, 0.16);
  color: #374151;
  font-weight: 700;
}

/* Адаптив блока под формой */
@media (max-width: 640px){
  .arshin-page .arshin-help__card{ padding: 1.35rem 1.05rem 1.15rem; }
  .arshin-page .arshin-help__icons{ font-size: 26px; }
  .arshin-page .arshin-help__tips{ padding: 0.9rem 0.95rem; }
}

/* ARSHIN: скрытие блока "Подсказка", когда показаны результаты */
.arshin-page .arshin-help.is-hidden{
  display: none !important;
}

/* ==========================================================================
   ARSHIN /arshin (файл: /arshin/index.php)
   Перенос инлайн-стилей из index.php в общий /style.css
   Важно: почти всё заскоуплено через .arshin-page, чтобы:
   1) не влиять на другие страницы,
   2) уверенно перебивать blocks-enhance.css (он подключён ПОСЛЕ style.css).
   ========================================================================== */

/* Каркас страницы: прижать футер вниз */
.arshin-page{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.arshin-page main{ flex: 1 0 auto; }
.arshin-page .site-footer{ margin-top: auto; }

/* Контентная секция со снегом (как на других NY-блоках) */
.arshin-page .arshin-offers{
  padding: 0;          /* убрать двойные отступы */
  background: #f9fafb; /* аналог bg-gray-50 */
}

.arshin-page .arshin-offers .ny-offers__container{
  max-width: 1280px;
  margin: 0 auto;
}

/* ARSHIN: вернуть "узкую" ширину только для блока Поиска и блока Подсказки
   (остальные секции, включая результаты/таблицу, остаются широкими как сейчас) */
.arshin-page .arshin-offers .container-narrow > section.p-6,
.arshin-page #filtersWrap,
.arshin-page #empty,
.arshin-page .arshin-help{
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 1280px){
  .arshin-page .arshin-offers .container-narrow > section.p-6,
  .arshin-page #filtersWrap,
  .arshin-page #empty,
  .arshin-page .arshin-help{
    max-width: 1040px;
  }
}

@media (min-width: 1536px){
  .arshin-page .arshin-offers .container-narrow > section.p-6,
  .arshin-page #filtersWrap,
  .arshin-page #empty,
  .arshin-page .arshin-help{
    max-width: 1100px;
  }
}

/* Высота инпутов (используется класс h-13 в форме) */
.arshin-page .h-13{ height: 3.25rem; }


.arshin-page .container-narrow{
  max-width: none;
  width: 100%;
}

/* ARSHIN: кнопки поиска — мобильный вид (в одну линию) */
@media (max-width: 640px){
  /* контейнер с кнопками внизу формы */
  .arshin-page #searchForm > div:last-child{
    width: 100%;
    flex-direction: row;          /* одна линия */
    align-items: stretch;
    justify-content: stretch;
    gap: .75rem;
  }

  /* "Очистить" делаем полноценной кнопкой и задаём долю */
  .arshin-page #resetBtn{
    flex: 1 1 40%;
    width: auto;
    padding: .85rem 1rem;
    border: 1px solid #e5e7eb;
    border-radius: .75rem;
    background: #fff;
    text-align: center;
    line-height: 1.1;
  }

  /* обёртка у "Поиск" должна растягиваться */
  .arshin-page #searchForm > div:last-child > div{
    flex: 2 1 60%;
    width: 100%;
  }

  /* сама кнопка "Поиск" — на всю ширину своей колонки */
  .arshin-page #searchBtn{
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .85rem 1rem;
    line-height: 1.1;
  }
}

/* =========================
   ARSHIN: Фильтры (UI)
   ========================= */

.arshin-page .arshin-filters{
  margin-top: 1.5rem;
}

.arshin-page .arshin-filters__card{
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(16,24,40,.06);
  overflow: visible;
}

.arshin-page .arshin-filters__head{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.arshin-page .arshin-filters__head-left{
  display: flex;
  align-items: center;
  gap: 0.9rem;
  min-width: 0;
}

.arshin-page .arshin-filters__icon{
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.6rem;
  background: #e11d2e;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.arshin-page .arshin-filters__titles{
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.arshin-page .arshin-filters__title{
  font-weight: 700;
  color: #111827;
  line-height: 1.2;
}

.arshin-page .arshin-filters__subtitle{
  font-size: 0.85rem;
  color: #6b7280;
  line-height: 1.2;
}

.arshin-page .arshin-filters__chevron{
  color: #6b7280;
  font-size: 1.25rem;
  flex: 0 0 auto;
}

.arshin-page .arshin-filters__body{
  border-top: 1px solid #e5e7eb;
  padding: 1.5rem 1.1rem 1.1rem;
  overflow: visible;
}

.arshin-page .arshin-filters__fields{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.9rem;
}

@media (max-width: 1024px){
  .arshin-page .arshin-filters__fields{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  .arshin-page .arshin-filters__head{
    padding: 0.9rem 0.95rem;
  }
  .arshin-page .arshin-filters__body{
    padding: 0.95rem 0.95rem 1rem;
  }
  .arshin-page .arshin-filters__fields{
    grid-template-columns: 1fr;
  }
}

/* ARSHIN: плавное раскрытие тела фильтра */
.arshin-page #filtersBody{
  max-height: 0;
  opacity: 0;
  transform: translateY(-6px);
  overflow: hidden;

  /* важно: в закрытом состоянии вертикальные padding = 0 */
  padding-top: 0;
  padding-bottom: 0;

  transition:
    max-height .35s ease,
    opacity .22s ease,
    transform .22s ease,
    padding .22s ease;
}

/* открыто */
.arshin-page #filtersWrap.is-open #filtersBody{
  opacity: 1;
  transform: translateY(0);
   /* ВАЖНО: чтобы popover не обрезался */
  overflow: visible;

  /* возвращаем padding как было */
  padding-top: 1rem;
  padding-bottom: 1.1rem;
}

/* (рекомендовано) чтобы подсказки перекрывали таблицу/другие блоки */
.arshin-page #filtersWrap{
  position: relative;
  z-index: 50;
}

/* Плавная стрелка на заголовке фильтров */
.arshin-page .arshin-filters__chevron i{
  display: inline-block;
  transition: transform .22s ease;
}
.arshin-page #filtersWrap.is-open .arshin-filters__chevron i{
  transform: rotate(180deg);
}


/* Поля */
.arshin-page .af-field{
  position: relative;
  overflow: visible;
}

.arshin-page .af-label{
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
  position: relative;
}

.arshin-page .af-label__text{
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #374151;
}

.arshin-page .af-label__text i{
  color: #e11d2e;
  font-size: 1rem;
}

.arshin-page .af-control{
  width: 100%;
  height: 3.25rem; /* как h-13 */
  padding: 0.75rem 1rem;
  border-radius: 0.6rem;
}

/* Кнопка подсказки (красный круг с i) */
.arshin-page .af-help-btn{
  margin-left: auto;
  width: 1.25rem;
  height: 1.25rem;
  /*border-radius: 999px;
  background: rgba(225,29,46,.12);*/
  color: #e11d2e;
  /*border: 1px solid rgba(225,29,46,.22);*/
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex: 0 0 auto;
}

.arshin-page .af-help-btn i{
  font-size: 0.9rem;
}

/* =========================================
   ARSHIN: Кастомный календарь (date picker)
   (для единых стилей вместо <input type="date">)
========================================= */

.arshin-page .af-control.af-date{
  padding-right: 2.75rem;
  background-repeat: no-repeat;
  background-position: right 0.95rem center;
  background-size: 16px 16px;
  /* простая иконка календаря (inline SVG) */
  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='%23111827' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}

.arshin-page .arshin-datepicker{
  position: absolute;
  z-index: 9999;
  width: 320px;
  padding: 12px 12px 10px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  box-shadow: 0 18px 60px rgba(17,24,39,.15);
}

.arshin-page .arshin-datepicker.is-hidden{ display:none; }

.arshin-page .arshin-datepicker .adp-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.arshin-page .arshin-datepicker .adp-title{
  font-weight: 600;
  color: #111827;
  line-height: 1.2;
}

.arshin-page .arshin-datepicker .adp-nav{
  width: 38px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  cursor: pointer;
  color: #111827;
  font-size: 18px;
  line-height: 1;
}

.arshin-page .arshin-datepicker .adp-nav:hover{
  background: #f3f4f6;
}

.arshin-page .arshin-datepicker .adp-dow{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 6px;
}

.arshin-page .arshin-datepicker .adp-dow__item{
  text-align:center;
  font-size: 12px;
  color: #6b7280;
}

.arshin-page .arshin-datepicker .adp-grid{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.arshin-page .arshin-datepicker .adp-day{
  height: 36px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
  color: #111827;
}

.arshin-page .arshin-datepicker .adp-day:hover{
  background: #f3f4f6;
}

.arshin-page .arshin-datepicker .adp-day.is-selected{
  background: #e11d2e;
  color: #fff;
}

.arshin-page .arshin-datepicker .adp-day.is-empty{
  background: transparent;
  cursor: default;
}

.arshin-page .arshin-datepicker .adp-foot{
  display:flex;
  justify-content:space-between;
  gap: 10px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #e5e7eb;
}

.arshin-page .arshin-datepicker .adp-action{
  border: none;
  background: transparent;
  font-weight: 600;
  color: #e11d2e;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 8px;
}

.arshin-page .arshin-datepicker .adp-action:hover{
  background: rgba(225,29,46,.08);
}

@media (max-width: 640px){
  .arshin-page .arshin-datepicker{
    width: min(360px, calc(100vw - 24px));
  }
  .arshin-page .arshin-datepicker .adp-day{
    height: 38px;
  }
}

/* Popover */
.arshin-page .af-popover{
  display: none;
  position: absolute;
  z-index: 40;
  top: calc(100% + 10px);
  left: 0;
  width: min(380px, calc(100vw - 40px));
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  box-shadow: 0 16px 40px rgba(15,23,42,.18);
  padding: 0.9rem 0.95rem 0.9rem;
}

.arshin-page .af-field.is-pop-open .af-popover{
  display: block;
}

@media (max-width: 640px){
  .arshin-page .af-popover{
    left: 50%;
    transform: translateX(-50%);
    max-height: calc(100vh - 24px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  .arshin-page .af-popover[data-popover="org"]{
    top: auto;
    bottom: calc(100% + 10px);
  }
}

.arshin-page .af-popover__close{
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  width: 2rem;
  height: 2rem;
  border-radius: 0.55rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
  cursor: pointer;
}

.arshin-page .af-popover__head{
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding-right: 2.2rem;
  margin-bottom: 0.55rem;
}

.arshin-page .af-popover__icon{
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.6rem;
  background: #e11d2e;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.arshin-page .af-popover__title{
  font-weight: 800;
  color: #111827;
  line-height: 1.2;
  margin-bottom: 0.2rem;
}

.arshin-page .af-popover__text{
  font-size: 0.9rem;
  color: #6b7280;
  line-height: 1.35;
}

.arshin-page .af-popover__list{
  margin: 0.55rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.35rem;
  color: #374151;
  font-size: 0.9rem;
  line-height: 1.35;
}

.arshin-page .af-pill{
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  margin-right: 0.4rem;
  border: 1px solid transparent;
}

.arshin-page .af-pill--ok{
  background: rgba(22,163,74,.12);
  border-color: rgba(22,163,74,.22);
  color: #16a34a;
}

.arshin-page .af-pill--bad{
  background: rgba(220,38,38,.12);
  border-color: rgba(220,38,38,.22);
  color: #dc2626;
}

/* ARSHIN: кастомный select "Статус" со стрелкой, которая поворачивается */
.arshin-page .af-select{
  position: relative;
}

.arshin-page .af-select select{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 3.25rem; /* место под стрелку */
  background-image: none; /* на всякий случай */
}

.arshin-page .af-select__arrow{
  position: absolute;
  top: 50%;
  right: 1rem; /* регулирует расстояние от правого края */
  width: 18px;
  height: 18px;
  transform: translateY(-50%) rotate(0deg);
  transform-origin: center;
  pointer-events: none;
  transition: transform .18s ease;

  background-repeat: no-repeat;
  background-size: 18px 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%236b7280' d='M5.3 7.7a1 1 0 0 1 1.4 0L10 11l3.3-3.3a1 1 0 1 1 1.4 1.4l-4 4a1 1 0 0 1-1.4 0l-4-4a1 1 0 0 1 0-1.4z'/%3E%3C/svg%3E");
}

/* Поворот стрелки, когда селект открыт (мы поставим класс из JS) */
.arshin-page .af-select.is-open .af-select__arrow{
  transform: translateY(-50%) rotate(180deg);
}



/* =========================
   Таблица результатов
   ========================= */

/* Прокрутка таблицы */
.arshin-page .table-wrap{ overflow-x: auto; }

/* Базовые настройки таблицы (важно для текущего поведения/верстки) */
.arshin-page .table-results{
  min-width: 900px;                 /* как было в index.php */
  table-layout: auto;               /* как было в index.php (последнее правило) */
  font-variant-numeric: tabular-nums;
}

/* Ширины колонок (colgroup) */
.arshin-page .table-results col.col-num    { width: 54px; }
.arshin-page .table-results col.col-status { width: 100px; }
.arshin-page .table-results col.col-reg    { width: 96px; }
.arshin-page .table-results col.col-name   { width: auto; min-width: 220px; }
.arshin-page .table-results col.col-model  { width: 110px; }
.arshin-page .table-results col.col-serial { width: 90px; }
.arshin-page .table-results col.col-date   { width: 100px; }
.arshin-page .table-results col.col-cert   { width: 220px; }
.arshin-page .table-results col.col-org    { width: 200px; }

/* Заголовок/ячейки */
.arshin-page .table-results thead th{
  font-size: 11px;
  line-height: 16px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6b7280;
  padding: 8px 10px;
  text-align: left;
}
.arshin-page .table-results thead th.th-num{ text-align: center; }

.arshin-page .table-results tbody td{
  font-size: 13px;
  line-height: 18px;
  color: #0f172a;
  padding: 10px;
  vertical-align: top;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* Колонка № */
.arshin-page .td-num{ text-align: center; color: #374151; }

/* Скрытие колонки "Поверитель" на узких экранах (как было) */
@media (max-width: 1150px){
  .arshin-page .table-results col.col-org,
  .arshin-page .table-results th.th-org,
  .arshin-page .table-results td.td-org{ display: none; }
}

/* Статус (годен/не годен) */
.arshin-page .table-results .status-ok,
.arshin-page .table-results .status-bad{
  display: inline-flex;
  align-items: center;
  font-weight: 600;
  font-size: 13px;
  line-height: 18px;
}
.arshin-page .table-results .status-ok{ color: #16a34a; }
.arshin-page .table-results .status-bad{ color: #dc2626; }
.arshin-page .table-results .status-ok i,
.arshin-page .table-results .status-bad i{
  font-size: 16px;
  margin-right: 6px;
  transform: translateY(-1px);
}

/* Перенос текста в "Свидетельство" (span.break-anywhere) */
.arshin-page .table-results .break-anywhere{
  overflow-wrap: anywhere;
  word-break: break-word;
}
.arshin-page .td-cert .break-anywhere{
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Запрет переноса для дат/серийника — классы назначаются скриптом */
.arshin-page .td-date,
.arshin-page .td-serial{ white-space: nowrap; }

/* Последняя колонка с кнопками — минимальная ширина (класс назначается скриптом) */
/*.arshin-page .td-actions{ min-width: 120px; }*/

/* Доп. правила (как было в index.php): nowrap для 6/7/8 колонок */
.arshin-page .table-results td:nth-child(6),
.arshin-page .table-results th:nth-child(6),
.arshin-page .table-results td:nth-child(7),
.arshin-page .table-results th:nth-child(7),
.arshin-page .table-results td:nth-child(8),
.arshin-page .table-results th:nth-child(8){ white-space: nowrap; }

/* "Свидетельство" (9-я колонка) переносим где угодно */
.arshin-page .table-results td:nth-child(9) span{
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Первая колонка (№) — доп. фиксация (как было) */
.arshin-page .table-results td:first-child,
.arshin-page .table-results th:first-child{
  text-align: center;
  white-space: nowrap;
  min-width: 44px;
  width: 44px;
}

/* Мобильная адаптация таблицы */
@media (max-width: 640px){
  .arshin-page .table-results{
    min-width: 760px;   /* как было */
    font-size: 13px;
  }
  .arshin-page .table-results th,
  .arshin-page .table-results td{
    padding: 10px 8px;  /* как было (последнее правило) */
  }

  .arshin-page .table-results td:first-child,
  .arshin-page .table-results th:first-child{
    min-width: 40px;
    width: 40px;
  }

  /* На мобилке позволяем этим колонкам быть auto по ширине (как было) */
  .arshin-page .table-results col.col-status,
  .arshin-page .table-results col.col-reg,
  .arshin-page .table-results col.col-serial,
  .arshin-page .table-results col.col-date{
    width: auto;
  }
}


/* =========================
   Кнопки 3-в-ряд (скачать/печать/копировать) + подсказки
   ========================= */

.arshin-page .btn3-group{
  display: inline-flex;
  border-radius: 8px;
  overflow: visible; /* важно для подсказок */
}

.arshin-page .btn3{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 32px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-left-width: 0;
}

.arshin-page .btn3:first-child{
  border-left-width: 1px;
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
}
.arshin-page .btn3:last-child{
  border-top-right-radius: 8px;
  border-bottom-right-radius: 8px;
}

/* Цветовые варианты */
.arshin-page .btn3.red{ color:#ef4444; border-color:#fecaca; }
.arshin-page .btn3.red:hover{ background:#fff1f2; }

.arshin-page .btn3.blue{ color:#2563eb; border-color:#bfdbfe; }
.arshin-page .btn3.blue:hover{ background:#eff6ff; }

.arshin-page .btn3.green{ color:#16a34a; border-color:#bbf7d0; }
.arshin-page .btn3.green:hover{ background:#ecfdf5; }

.arshin-page .btn3[aria-disabled="true"]{
  opacity: .5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Подсказка при наведении (без title) */
.arshin-page .has-tip::after{
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  top: -8px;
  transform: translate(-50%,-6px);
  white-space: nowrap;
  background: #f8fafc;
  color: #111827;
  font-size: 12px;
  line-height: 1;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  opacity: 0;
  pointer-events: none;
  transition: opacity .12s, transform .12s;
  z-index: 9999;
}
.arshin-page .has-tip:hover::after{
  opacity: 1;
  transform: translate(-50%,-12px);
}

/* Тост "скопировано" */
.arshin-page .bubble{
  position: fixed;
  z-index: 60;
  padding: 6px 10px;
  border-radius: 10px;
  font-size: 13px;
  color: #fff;
  background: #10b981;
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
  transform: translate(-50%,-12px);
  transition: opacity .25s, transform .25s;
}


/* =========================
   Инпуты: базовый стиль + подсветка заполненных
   ========================= */

.arshin-page .input-base{
  border: 1px solid #d1d5db;
  background: #fff;
  border-radius: .5rem;
  transition: box-shadow .12s ease, border-color .12s ease, background .12s ease;
}
.arshin-page .input-base:focus{
  outline: none;
  border-color: #ef4444;
  box-shadow: 0 0 0 2px rgba(239,68,68,.25);
}
.arshin-page .input-filled{
  background: #eaf3ff;
  border-color: #c7dbff;
  box-shadow: inset 0 0 0 1.5px #b91c1c;
}


/* =========================
   Пагинация
   ========================= */

.arshin-page .pager-wrap{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
@media (max-width: 640px){
  .arshin-page .pager-wrap{
    flex-direction: column;
    align-items: center;
  }
}

.arshin-page .page-info{
  color: #6b7280;
  font-size: 14px;
}

.arshin-page .pager{
  display: flex;
  align-items: center;
  gap: .4rem;
}

.arshin-page .pager .btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 .55rem;
  border-radius: 10px;
  background: #fff;
  color: #374151;
  border: 1px solid #e5e7eb;
  transition: all .15s ease;
}

.arshin-page .pager .btn:hover{
  background: #f8fafc;
  border-color: #d1d5db;
}
.arshin-page .pager .btn[disabled]{
  color: #9ca3af;
  background: #f9fafb;
  pointer-events: none;
}
.arshin-page .pager .btn.active{
  background: #e11d48;
  color: #fff;
  border-color: #e11d48;
}


/* =========================
   Спиннер (оверлей загрузки)
   ========================= */

@keyframes t154_spin{ to{ transform: rotate(360deg); } }

#spinner .force-animate{
  animation: t154_spin 1s linear infinite;
}
@media (prefers-reduced-motion: reduce){
  #spinner .force-animate{
    animation: t154_spin 1s linear infinite !important;
  }
}



/* ============== QR-Контакты ============== */
.qr-contacts-page .qr-main {
  /* фиксированная шапка уже есть; делаем отступ, чтобы контент не уезжал под header */
  padding-top: 0.1rem;
}

.qr-contacts-page .qr-header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.qr-contacts-page .qr-home-link {
  text-decoration: none;
  font-weight: 600;
  color: #111827;
  padding: 10px 14px;
  border-radius: 12px;
  transition: all 0.3s ease, color 0.3s ease;
}

.qr-contacts-page .qr-home-link:hover {
  color: #e31e24;
}

/* Лого (текст + иконка) */
.qr-contacts-page .qr-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #111827;
  text-decoration: none;
}

.qr-contacts-page .qr-logo i {
  color: #e31e24;
  font-size: 20px;
  line-height: 1;
}

.qr-contacts-page .qr-logo__text {
  font-weight: 800;
  letter-spacing: 0.2px;
}

.qr-contacts-page .qr-logo__num {
  color: #e31e24;
}

/* HERO tweaks */
.qr-contacts-page .qr-hero {
  padding-top: 4.5rem; /* чуть больше воздуха как на скрине */
  padding-bottom: 4rem;
}

.qr-hero-content {
  padding: 2rem;
}

.qr-contacts-page .qr-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 0.85rem 1.35rem;
  border-radius: 9999px;
  background: linear-gradient(45deg, #ec003f, #e7000b, #c70036);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 14px 36px rgba(0,0,0,0.16);
}

.qr-contacts-page .qr-hero-badge__icon {
  filter: drop-shadow(0 6px 14px rgba(0,0,0,0.18));
}

.qr-contacts-page .qr-hero-title {
  font-size: 3rem;
  margin-top: 1.4rem;
}

.qr-contacts-page .qr-hero-note {
  max-width: 700px;
  margin: 1.5rem auto 0;
  background: rgba(255,255,255,0.85);
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 16px;
  padding: 1.4rem 1.6rem;
  box-shadow: 0 14px 40px rgba(0,0,0,0.12);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.qr-contacts-page .qr-hero-note__title {
  margin: 0 0 0.6rem;
  font-weight: 600;
  color: #374151;
}

.qr-contacts-page .qr-hero-note__line {
  margin: 0;
  font-weight: 600;
  color: #6b7280;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* Cards grid */
.qr-contacts-section {
  padding: 5rem 1.5rem; /* десктоп/планшет: нормальные боковые отступы */
}

.qr-contacts-page .qr-cards {
  display: grid;
  gap: 1.75rem;
}

.qr-contacts-page .qr-cards-row {
  display: grid;
  gap: 1.75rem;
}

.qr-contacts-page .qr-cards-row--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.qr-contacts-page .qr-cards-row--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.qr-contacts-page .qr-card {
  --qr-border: rgba(0, 0, 0, 0.08);
  --qr-border-hover: rgba(0, 0, 0, 0.18);

  position: relative;
  background: rgba(255,255,255,0.92);
  border: 1px solid var(--qr-border);
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(0,0,0,0.10);
  text-decoration: none;
  color: #111827;
  overflow: hidden;

  transform: translateZ(0);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.qr-contacts-page .qr-card:hover,
.qr-contacts-page .qr-card:focus-visible {
  transform: translateY(-3px) scale(1.02);
  border-color: var(--qr-border-hover);
  box-shadow: 0 18px 46px rgba(0,0,0,0.14);
}

.qr-contacts-page .qr-card:focus-visible {
  outline: none;
}

/* Цветные бледные границы по типам карточек */
.qr-contacts-page .qr-card--phone { --qr-border: rgba(227, 30, 36, 0.22); --qr-border-hover: rgba(227, 30, 36, 0.55); }
.qr-contacts-page .qr-card--email { --qr-border: rgba(0, 166, 62, 0.22); --qr-border-hover: rgba(0, 166, 62, 0.55); }
.qr-contacts-page .qr-card--max   { --qr-border: rgba(124, 58, 237, 0.22); --qr-border-hover: rgba(124, 58, 237, 0.55); }
.qr-contacts-page .qr-card--tg    { --qr-border: rgba(14, 165, 233, 0.22); --qr-border-hover: rgba(14, 165, 233, 0.55); }
.qr-contacts-page .qr-card--save  { --qr-border: rgba(66, 53, 248, 0.22); --qr-border-hover: rgba(53, 89, 248, 0.55); }

/* Иконка тоже “подхватывает” hover (доп. масштаб) */
.qr-contacts-page .qr-card__icon,
.qr-contacts-page .qr-card__mini-icon,
.qr-contacts-page .qr-card__mini-icon img {
  transition: transform 0.3s ease;
  transform-origin: center;
}

.qr-contacts-page .qr-card:hover .qr-card__icon,
.qr-contacts-page .qr-card:hover .qr-card__mini-icon,
.qr-contacts-page .qr-card:hover .qr-card__mini-icon img {
  transform: scale(1.06);
}

.qr-contacts-page .qr-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.7;
  background:
    radial-gradient(520px 260px at 20% 30%, rgba(227, 30, 36, 0.08), transparent 60%),
    radial-gradient(520px 260px at 80% 70%, rgba(0, 166, 62, 0.06), transparent 60%);
}

/* Wide cards */
.qr-contacts-page .qr-card--wide {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.55rem 1.6rem;
  min-height: 140px;
}

.qr-contacts-page .qr-card__icon {
  width: 76px;
  height: 76px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 14px 34px rgba(0,0,0,0.16);
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
}

.qr-contacts-page .qr-card__icon i {
  font-size: 34px;
  line-height: 1;
}

.qr-contacts-page .qr-card__icon--red {
  background: linear-gradient(45deg, #ec003f, #e7000b, #c70036);
}

.qr-contacts-page .qr-card__icon--green {
  background: linear-gradient(45deg, #009966, #00a63e, #007a55);
}

.qr-contacts-page .qr-card__body {
  position: relative;
  z-index: 1;
}

.qr-contacts-page .qr-card__title {
  font-weight: 800;
  font-size: 1.35rem;
  margin: 0 0 0.25rem;
}

.qr-contacts-page .qr-card__value {
  font-weight: 700;
  color: #b91c1c;
  margin: 0 0 0.35rem;
}

.qr-contacts-page .qr-card__value--green {
  color: #047857;
}

.qr-contacts-page .qr-card__hint {
  font-size: 0.95rem;
  color: #6b7280;
  margin: 0;
}

.qr-contacts-page .qr-card__decor {
  position: absolute;
  right: 16px;
  top: 14px;
  opacity: 0.18;
  font-size: 2.2rem;
  pointer-events: none;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,0.18));
}

/* Mini cards */
.qr-contacts-page .qr-card--mini {
  padding: 2.1rem 1.6rem;
  text-align: center;
  cursor: pointer;
}

.qr-contacts-page button.qr-card--mini {
  width: 100%;
  border: 1px solid var(--qr-border);
  background: rgba(255,255,255,0.92);
}

.qr-contacts-page .qr-card__mini-icon {
  width: 66px;
  height: 66px;
  margin: 0 auto 0.9rem;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 14px 34px rgba(0,0,0,0.14);
  position: relative;
  z-index: 1;
}

.qr-contacts-page .qr-card__mini-icon i {
  font-size: 34px;
  line-height: 1;
}

.qr-contacts-page .qr-card__mini-icon--max {
  background: transparent;
  box-shadow: none;
  width: 70px;
  height: 70px;
  border-radius: 18px;
}

.qr-contacts-page .qr-max-img {
  width: 70px;
  height: 70px;
  display: block;
}

.qr-contacts-page .qr-card__mini-icon--tg {
  background: linear-gradient(45deg, #2563eb, #0ea5e9);
}

.qr-contacts-page .qr-card__mini-icon--save {
  background: linear-gradient(45deg, #7c3aed, #a855f7);
}

.qr-contacts-page .qr-card--mini .qr-card__title {
  font-size: 1.15rem;
}

.qr-contacts-page .qr-card--mini .qr-card__hint {
  margin-top: 0.35rem;
}

/* Office card */
.qr-contacts-page .qr-office {
  margin-top: 3rem;
}

.qr-contacts-page .qr-office-card {
  position: relative;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(0,0,0,0.10);
  padding: 2rem 2rem 1.9rem;
  overflow: hidden;
}

.qr-contacts-page .qr-office-title {
  text-align: center;
  margin: 0 0 1.4rem;
  font-size: 2rem;
  font-weight: 800;
  color: #111827;
}

.qr-contacts-page .qr-office-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 1.75rem;
  align-items: start;
}

.qr-contacts-page .qr-office-item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 1rem;
}

.qr-contacts-page .qr-office-item__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 22px rgba(0,0,0,0.10);
  flex: 0 0 auto;
}

.qr-contacts-page .qr-office-item__icon i {
  font-size: 22px;
  color: #111827;
}

.qr-contacts-page .qr-office-item__icon--pink { background: rgba(244, 114, 182, 0.25); }
.qr-contacts-page .qr-office-item__icon--mint { background: rgba(52, 211, 153, 0.25); }

.qr-contacts-page .qr-office-item__label {
  font-weight: 800;
  margin-bottom: 0.2rem;
}

.qr-contacts-page .qr-office-item__value {
  color: #4b5563;
  font-weight: 600;
  line-height: 1.35;
}

.qr-contacts-page .qr-office-route {
  margin-top: 1.2rem;
  width: 50%;
  max-width: 520px;
  gap: 10px;
}

.qr-contacts-page .qr-map-embed {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.06);
  background: #fff;
}

.qr-contacts-page .qr-map-embed iframe {
  width: 100% !important;
  height: 320px !important;
  border: 0 !important;
  display: block;
}

.qr-contacts-page .qr-office-decor {
  position: absolute;
  right: 18px;
  top: 16px;
  opacity: 0.16;
  font-size: 2.3rem;
  pointer-events: none;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,0.18));
}

/* Footer mini align */
.qr-contacts-page .qr-footer-mini {
  text-align: center;
  padding: 0 1rem 1.2rem;
}

.qr-contacts-page .qr-footer-logo {
  display: inline-flex;
  align-items: center;
}

.qr-footer-logo img {
  height: 60px;
  object-fit: contain;
}

.qr-contacts-page .qr-footer-logo i {
  color: rgba(255,255,255,0.92);
}

.qr-contacts-page .qr-footer-logo__num {
  color: rgba(255,255,255,0.92);
}

.qr-contacts-page .qr-footer-tagline {
  margin-top: 0.65rem;
  color: rgba(255,255,255,0.78);
  font-weight: 600;
}

/* Footer-bottom center on this page */
.qr-contacts-page .site-footer.site-footer--ny .footer-bottom {
  justify-content: center;
}

/* === QR header: transparent -> white on scroll (добавлено) === */
.qr-contacts-page .header-fixed.qr-header{
  background: transparent !important;
  box-shadow: none !important;
  border-bottom: 1px solid transparent !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.qr-contacts-page .header-fixed.qr-header.is-scrolled{
  background: rgba(255,255,255,0.96) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08) !important;
  border-bottom-color: rgba(0,0,0,0.06) !important;
}

/* Responsive */
@media (max-width: 980px) {
  .qr-contacts-page .qr-cards-row--2 {
    grid-template-columns: 1fr;
  }
  .qr-contacts-page .qr-cards-row--3 {
    grid-template-columns: 1fr;
  }
  .qr-contacts-page .qr-office-grid {
    grid-template-columns: 1fr;
  }
  .qr-contacts-page .qr-office-route {
  width: 100%;
  max-width: 100%;
}
}

@media (max-width: 640px) {
  .qr-contacts-page .qr-main {
    padding-top: 72px;
  }
  .qr-contacts-page .qr-hero {
    padding-top: 1.5rem;
    padding-bottom: 3.0rem;
  }
  .qr-contacts-page .qr-hero-note {
    padding: 1.1rem 1.1rem;
    margin: 0 auto;
  }
  .qr-contacts-page .qr-card--wide {
    padding: 1.2rem 1.1rem;
    gap: 1rem;
  }
  .qr-contacts-page .qr-card__icon {
    width: 66px;
    height: 66px;
    border-radius: 16px;
  }
  .qr-contacts-page .qr-card__icon i {
    font-size: 30px;
  }
  .qr-contacts-page .qr-office-card {
    padding: 1.4rem 1.1rem 1.2rem;
  }
  .qr-contacts-page .qr-map-embed iframe {
    height: 260px !important;
  }
  .qr-contacts-page .qr-hero-title {
    font-size: 2.2rem;
  }
  .qr-contacts-section {
    padding: 3rem 1rem; /* мобильные: контент шире, как на скринах нужно */
  }

  .qr-contacts-page .qr-office-route.btn-hero {
    width: 100%;
    max-width: 100%;
    white-space: normal;      /* разрешаем перенос */
    padding: 1rem 0.3rem;     /* чуть компактнее */
    line-height: 1.2;
  }

  /* Убираем лишнее сужение hero-контента на мобильном */
  .qr-contacts-page .qr-hero-content {
    padding: 0.5rem 1rem; /* было 2rem */
  }

  /* Делаем плашку на всю доступную ширину */
  .qr-contacts-page .qr-hero-note {
    width: 100%;
    max-width: 100%;
    margin: 1.1rem auto 0;   /* по центру */
    box-sizing: border-box;  /* чтобы 100% + padding не “уезжали” */
  }
}


/* ======================   PROMOTIONS PAGE   ====================== */

.promotions-page .promotions-main{
  background: linear-gradient(180deg, #f7e9e8 0%, #f9fafb 35%, #ffffff 100%);
  padding: 0rem 0 4rem;
}

.promotions-page .promotions-container{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* HERO */
.promotions-page .promo-hero{
  padding: 6.5rem 0 2rem;
  text-align: center;
}

.promotions-page .promo-hero__badge{
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 1.1rem;
  border-radius: 999px;
  background: #d11f1f;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(209, 31, 31, 0.25);
}

.promotions-page .promo-hero__badge-icon{
  display: inline-flex;
  width: 1.6rem;
  height: 1.6rem;
  align-items: center;
  justify-content: center;
}

.promotions-page .promo-hero__title{
  margin: 1.6rem 0 0.9rem;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #111827;
  font-size: clamp(2rem, 4.2vw, 4rem);
}

.promotions-page .promo-hero__subtitle{
  margin: 0;
  color: #6b7280;
  line-height: 1.7;
  font-size: 1.05rem;
}

/* GRID SECTION */
.promotions-page .promo-grid-section{
  padding: 2rem 0 1rem;
}

.promotions-page .promo-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem;
}

/* CARD (base) */
.promotions-page .promo-card{
  border-radius: 22px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 20px 60px rgba(17, 24, 39, 0.12);
  border: 2px solid var(--promo-border);
}

.promotions-page .promo-card__media{
  position: relative;
  padding: 1.6rem 1.6rem 0.8rem;
  min-height: 280px;
  background: rgba(255, 255, 255, 0.55);
}

.promotions-page .promo-card__media img{
  width: 100%;
  height: 220px;
  object-fit: contain;
  display: block;
}

.promotions-page .promo-card__tag{
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  padding: 0.65rem 1.25rem;
  border-radius: 999px;
  font-weight: 800;
  color: #fff;
  background: var(--promo-main);
  box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}

.promotions-page .promo-card__body{
  padding: 1.4rem 1.6rem 1.6rem;
}

.promotions-page .promo-card__title-row{
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 0.6rem;
  min-width: 0;            /* важно для flex-контейнера */
}

.promotions-page .promo-card__icon{
  width: 52px;
  height: 52px;
  flex: 0 0 52px;        /* ключевое: запрет сжатия */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: var(--promo-soft);
  color: var(--promo-main);
}

.promotions-page .promo-card__icon i{
  display: block;
  line-height: 1;
  font-size: 1.3rem;     /* чуть крупнее и стабильнее визуально */
}

.promotions-page .promo-card__title{
  margin: 0;
  font-size: 1.6rem;
  font-weight: 800;
  color: #111827;
  line-height: 1.15;
  min-width: 0;            /* важно для flex-элемента */
  overflow-wrap: anywhere; /* чтобы длинные слова не вылезали */
  word-break: normal;
}

.promotions-page .promo-card__text{
  margin: 0.4rem 0 1.1rem;
  color: #6b7280;
  line-height: 1.7;
}

.promotions-page .promo-card__list{
  margin: 0 0 1.25rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.75rem;
}

.promotions-page .promo-card__list li{
  position: relative;
  padding-left: 1.7rem;
  color: #374151;
  line-height: 1.5;
}

.promotions-page .promo-card__list li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0.05rem;
  color: var(--promo-main);
  font-weight: 900;
}

.promotions-page .promo-card__price{
  text-align: center;
  padding: 1rem 1rem;
  border-radius: 16px;
  background: var(--promo-soft2);
  color: #374151;
  font-weight: 700;
  margin-bottom: 1rem;
}

.promotions-page .promo-card__btn{
  display: block;
  text-align: center;
  text-decoration: none;
  padding: 1.05rem 1rem;
  border-radius: 16px;
  background: var(--promo-main);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 16px 32px rgba(0,0,0,0.18);
  transition: transform 0.15s ease, filter 0.15s ease;
}

.promotions-page .promo-card__btn:hover{
  transform: translateY(-1px);
  filter: brightness(0.98);
}

/* CARD THEMES */
.promotions-page .promo-card--red{
  --promo-main: #b91c1c;
  --promo-border: rgba(185, 28, 28, 0.28);
  --promo-soft: rgba(185, 28, 28, 0.10);
  --promo-soft2: rgba(185, 28, 28, 0.07);
}

.promotions-page .promo-card--blue{
  --promo-main: #1d4ed8;
  --promo-border: rgba(29, 78, 216, 0.28);
  --promo-soft: rgba(29, 78, 216, 0.10);
  --promo-soft2: rgba(29, 78, 216, 0.07);
}

/* FEATURE (green block) */
.promotions-page .promo-feature-section{
  padding: 2rem 0 1.5rem;
}

.promotions-page .promo-feature{
  background: rgba(209, 250, 229, 0.55);
  border: 2px solid rgba(16, 185, 129, 0.22);
  border-radius: 24px;
  box-shadow: 0 24px 60px rgba(17, 24, 39, 0.12);
  padding: 1.5rem 1.6rem 1.6rem;
  overflow: hidden;
}

.promotions-page .promo-feature__badge{
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 1.1rem;
  border-radius: 999px;
  background: #0f766e;
  color: #fff;
  font-weight: 800;
}

.promotions-page .promo-feature__badge-icon{
  display: inline-flex;
  width: 1.4rem;
  height: 1.4rem;
  align-items: center;
  justify-content: center;
}

.promotions-page .promo-feature__grid{
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 1.6rem;
  align-items: center;
  margin-top: 1.25rem;
}

.promotions-page .promo-feature__title{
  margin: 0 0 0.6rem;
  font-size: 2.2rem;
  font-weight: 900;
  color: #111827;
  line-height: 1.1;
}

.promotions-page .promo-feature__text{
  margin: 0 0 1.1rem;
  color: #374151;
  line-height: 1.7;
}

.promotions-page .promo-feature__list{
  margin: 0 0 1.2rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.7rem;
}

.promotions-page .promo-feature__list li{
  position: relative;
  padding-left: 1.7rem;
  color: #374151;
}

.promotions-page .promo-feature__list li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0.05rem;
  color: #059669;
  font-weight: 900;
}

.promotions-page .promo-pricebox{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: #fff;
  border-radius: 18px;
  padding: 1rem 1.1rem;
  box-shadow: 0 12px 30px rgba(17, 24, 39, 0.10);
  margin-bottom: 1rem;
}

.promotions-page .promo-pricebox__old{
  color: #6b7280;
  font-size: 0.95rem;
}

.promotions-page .promo-pricebox__old span{
  text-decoration: line-through;
}

.promotions-page .promo-pricebox__new{
  font-size: 2rem;
  font-weight: 900;
  color: #047857;
  margin-top: 0.25rem;
}

.promotions-page .promo-pricebox__discount{
  padding: 0.75rem 1rem;
  border-radius: 14px;
  background: rgba(16, 185, 129, 0.18);
  color: #047857;
  font-weight: 900;
  min-width: 80px;
  text-align: center;
}

.promotions-page .promo-feature__btn{
  display: inline-block;
  text-decoration: none;
  background: #047857;
  color: #fff;
  font-weight: 900;
  padding: 0.95rem 1.4rem;
  border-radius: 14px;
  box-shadow: 0 16px 34px rgba(4, 120, 87, 0.25);
}

.promotions-page .promo-feature__image{
  background: rgba(255,255,255,0.35);
  border-radius: 22px;
  padding: 1.2rem;
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.promotions-page .promo-feature__image img{
  width: 100%;
  height: 320px;
  object-fit: contain;
  display: block;
}

/* MINI CARDS */
.promotions-page .promo-mini-section{
  padding: 1.6rem 0 2rem;
}

.promotions-page .promo-mini-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem;
}

.promotions-page .promo-mini{
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 20px 60px rgba(17, 24, 39, 0.12);
  border: 2px solid var(--mini-border);
  padding: 1.5rem 1.6rem 1.6rem;
}

.promotions-page .promo-mini__icon{
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--mini-soft);
  color: var(--mini-main);
  font-size: 1.1rem;
}

.promotions-page .promo-mini__title{
  margin: 1rem 0 0.6rem;
  font-size: 1.55rem;
  font-weight: 900;
  color: #111827;
}

.promotions-page .promo-mini__text{
  margin: 0 0 1.1rem;
  color: #6b7280;
  line-height: 1.7;
}

.promotions-page .promo-mini__price{
  background: var(--mini-soft2);
  color: var(--mini-main);
  font-weight: 900;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  margin-bottom: 1rem;
}

.promotions-page .promo-mini__btn{
  display: block;
  text-align: center;
  text-decoration: none;
  padding: 1rem 1rem;
  border-radius: 16px;
  background: var(--mini-main);
  color: #fff;
  font-weight: 900;
  box-shadow: 0 16px 32px rgba(0,0,0,0.18);
}

/* MINI THEMES */
.promotions-page .promo-mini--orange{
  --mini-main: #d35400;
  --mini-border: rgba(211, 84, 0, 0.25);
  --mini-soft: rgba(211, 84, 0, 0.10);
  --mini-soft2: rgba(211, 84, 0, 0.07);
}

.promotions-page .promo-mini--purple{
  --mini-main: #7c3aed;
  --mini-border: rgba(124, 58, 237, 0.22);
  --mini-soft: rgba(124, 58, 237, 0.10);
  --mini-soft2: rgba(124, 58, 237, 0.07);
}

/* CTA */
.promotions-page .promo-cta-section{
  padding: 1.8rem 0 0.5rem;
}

.promotions-page .promo-cta{
  border-radius: 26px;
  padding: 3rem 1.6rem;
  text-align: center;
  background: linear-gradient(135deg, #d11f1f 0%, #e15a18 100%);
  color: #fff;
  box-shadow: 0 30px 80px rgba(17, 24, 39, 0.22);
  max-width: 980px;
  margin: 0 auto;
}

.promotions-page .promo-cta__title{
  margin: 0 0 0.8rem;
  font-size: 2.1rem;
  font-weight: 900;
}

.promotions-page .promo-cta__text{
  margin: 0 0 1.6rem;
  font-size: 1.05rem;
  opacity: 0.95;
}

.promotions-page .promo-cta__actions{
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.promotions-page .promo-cta__btn{
  display: inline-block;
  text-decoration: none;
  font-weight: 900;
  padding: 0.95rem 1.4rem;
  border-radius: 14px;
  min-width: 220px;
}

.promotions-page .promo-cta__btn--light{
  background: #ffffff;
  color: #b91c1c;
  box-shadow: 0 16px 34px rgba(255,255,255,0.18);
}

.promotions-page .promo-cta__btn--dark{
  background: rgb(177, 9, 9);
  color: #ffffff;
  border: 1px solid rgba(255,255,255,0.25);
}

/* RESPONSIVE */
@media (max-width: 980px){
  .promotions-page .promo-grid{
    grid-template-columns: 1fr;
  }
  .promotions-page .promo-feature__grid{
    grid-template-columns: 1fr;
  }
  .promotions-page .promo-mini-grid{
    grid-template-columns: 1fr;
  }
  .promotions-page .promo-feature__title{
    font-size: 2rem;
  }
}

@media (max-width: 520px){
  .promotions-page .promotions-main{
    padding: 4rem 0 4rem;
  }
  .promotions-page .promo-hero{
    padding: 2rem 0 1.2rem;
  }
  .promotions-page .promo-hero__subtitle{
    font-size: 1rem;
  }
  .promotions-page .promo-card__body{
    padding: 1.2rem 1.1rem 1.3rem;
  }
  .promotions-page .promo-card__media{
    padding: 1.2rem 1.1rem 0.6rem;
  }
  .promotions-page .promo-cta{
    padding: 2.2rem 1.1rem;
  }
  .promotions-page .promo-cta__title{
    font-size: 1.8rem;
  }
  .promotions-page .promo-cta__btn{
    width: 100%;
    min-width: 0;
  }
}

/* =========================
   PROMOTIONS — FIXES (images / hover / mobile widths)
   Вставить в самый конец style.css
   ========================= */

/* 0) На всякий случай — убрать горизонтальный выезд на мобилках */
.promotions-page .promotions-main{
  overflow-x: hidden;
}

.promotions-page .promo-card,
.promotions-page .promo-feature,
.promotions-page .promo-mini,
.promotions-page .promo-cta{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 1) Увеличить изображения в карточках (большие 2 карточки + зелёный блок) */
.promotions-page .promo-card__media{
  min-height: 340px;
}

.promotions-page .promo-card__media img{
  height: 270px;
}

.promotions-page .promo-feature__image img{
  height: 360px;
}

/* 2) На мобилке карточки 3 и 4 (и вообще все) — строго в ширину контейнера */
@media (max-width: 520px){
  .promotions-page .promotions-container{
    padding-left: 14px;
    padding-right: 14px;
  }

  .promotions-page .promo-card__media{
    min-height: 300px;
  }

  .promotions-page .promo-card__media img{
    height: 240px;
  }

  .promotions-page .promo-feature__image{
    min-height: 260px;
  }

  .promotions-page .promo-feature__image img{
    height: 300px;
  }
}

/* 3) Рамка ярче при наведении (все 5 карточек) */
.promotions-page .promo-card,
.promotions-page .promo-feature,
.promotions-page .promo-mini{
  transition: border-color 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.promotions-page .promo-card:hover{
  border-color: var(--promo-border-hover, var(--promo-border));
  box-shadow: 0 26px 70px rgba(17, 24, 39, 0.18);
}

.promotions-page .promo-mini:hover{
  border-color: var(--mini-border-hover, var(--mini-border));
  box-shadow: 0 26px 70px rgba(17, 24, 39, 0.18);
}

.promotions-page .promo-feature:hover{
  border-color: rgba(16, 185, 129, 0.45);
  box-shadow: 0 26px 70px rgba(17, 24, 39, 0.18);
}

/* Уточнение цветов hover-рамок по темам */
.promotions-page .promo-card--red{
  --promo-border-hover: rgba(185, 28, 28, 0.55);
}
.promotions-page .promo-card--blue{
  --promo-border-hover: rgba(29, 78, 216, 0.55);
}
.promotions-page .promo-mini--orange{
  --mini-border-hover: rgba(211, 84, 0, 0.45);
}
.promotions-page .promo-mini--purple{
  --mini-border-hover: rgba(124, 58, 237, 0.45);
}

/* 4) Кнопки в карточках:
      - не поднимаются при hover
      - становятся темнее
      - снежинки как на Главной (через ::before/::after) */
.promotions-page .promo-card__btn,
.promotions-page .promo-feature__btn,
.promotions-page .promo-mini__btn{
  position: relative;
  overflow: hidden;
  transition: filter 0.18s ease, background-color 0.18s ease;
}

/* снежинки (логика как у .btn-hero) */
.promotions-page .promo-card__btn::before,
.promotions-page .promo-card__btn::after,
.promotions-page .promo-feature__btn::before,
.promotions-page .promo-feature__btn::after,
.promotions-page .promo-mini__btn::before,
.promotions-page .promo-mini__btn::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
}

.promotions-page .promo-card__btn::before,
.promotions-page .promo-feature__btn::before,
.promotions-page .promo-mini__btn::before{
  background-image: var(--snowflake-svg), var(--snowflake-svg);
  background-repeat: no-repeat;
  background-size: 18px 18px, 14px 14px;
  background-position: 12% 55%, 82% 32%;
}

.promotions-page .promo-card__btn::after,
.promotions-page .promo-feature__btn::after,
.promotions-page .promo-mini__btn::after{
  background-image: var(--snowflake-svg);
  background-repeat: no-repeat;
  background-size: 16px 16px;
  background-position: 55% 83%;
}

/* hover: снежинки + затемнение, без подъёма */
.promotions-page .promo-card__btn:hover,
.promotions-page .promo-feature__btn:hover,
.promotions-page .promo-mini__btn:hover{
  transform: none;        /* убрать любые подъёмы */
  filter: brightness(0.92);
}

.promotions-page .promo-card__btn:hover::before,
.promotions-page .promo-feature__btn:hover::before,
.promotions-page .promo-mini__btn:hover::before{
  opacity: 1;
  animation: snowPulseA 1.2s ease-in-out infinite;
}

.promotions-page .promo-card__btn:hover::after,
.promotions-page .promo-feature__btn:hover::after,
.promotions-page .promo-mini__btn:hover::after{
  opacity: 1;
  animation: snowPulseB 1.05s ease-in-out infinite;
}

/* 5) Последний блок (CTA):
      - "Оставить заявку" увеличивается
      - "Узнать о заморозке" темнее и ещё темнее при hover, НЕ поднимается */
.promotions-page .promo-cta__btn{
  transition: transform 0.18s ease, filter 0.18s ease, background-color 0.18s ease;
}

.promotions-page .promo-cta__btn--light:hover{
  transform: scale(1.05);
}

.promotions-page .promo-cta__btn--dark:hover{
  transform: none;              /* не поднимается */
  background: rgb(122, 5, 5);
}

/* =========================
   PROMOTIONS — overflow fix for MINI cards (4–5)
   Вставить в самый конец style.css
   ========================= */

/* 1) Жёстко фиксируем box-sizing для ВСЕХ элементов promotions-страницы */
.promotions-page *,
.promotions-page *::before,
.promotions-page *::after{
  box-sizing: border-box;
}

/* 2) На всякий случай запрещаем grid-элементам раздуваться по содержимому */
.promotions-page .promo-mini-grid{
  min-width: 0;
}

.promotions-page .promo-mini{
  min-width: 0;
  max-width: 100%;
  width: 100%;
  overflow: hidden; /* чтобы никакие внутренние эффекты/тени не создавали горизонтальный выезд */
}

/* 3) Контейнер — строго в пределах экрана */
.promotions-page .promotions-container{
  max-width: 1280px; /* как у вас уже задано :contentReference[oaicite:4]{index=4} */
  width: 100%;
}

@media (max-width: 520px){
  .promotions-page .promo-mini__title{
    font-size: 1.35rem;
    line-height: 1.15;
    letter-spacing: -0.01em;
    word-break: normal;
    overflow-wrap: anywhere;
  }

  .promotions-page .promo-card__title{
    font-size: 1.4rem;
  }
}



/* ===================   PRICE FREEZE PAGE ===================== */

.price-freeze-page .pf-main{
  background: linear-gradient(180deg, #f3f9ff 0%, #ffffff 55%, #f3f9ff 100%);
  padding-top: 0;
}

.price-freeze-page .pf-section{
  padding: 4.2rem 0;
}

.price-freeze-page .pf-h2{
  margin: 0 0 2.2rem;
  text-align: center;
  font-size: clamp(1.8rem, 3.6vw, 3rem);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #111827;
}

.price-freeze-page .pf-h2--inside{
  margin-bottom: 2rem;
}

/* HERO */
.price-freeze-page .pf-hero{
  position: relative;
  padding: 5.2rem 0 4.8rem;
  background: linear-gradient(180deg, #eef7ff 0%, #f7fbff 65%, #ffffff 100%);
  overflow: hidden;
}

.price-freeze-page .pf-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.55;
  background-image:
    var(--snowflake-svg-blue),
    var(--snowflake-svg-blue),
    var(--snowflake-svg-blue),
    var(--snowflake-svg-blue),
    var(--snowflake-svg-blue),
    var(--snowflake-svg-blue);
  background-repeat: no-repeat;
  background-size: 18px 18px, 14px 14px, 16px 16px, 12px 12px, 18px 18px, 14px 14px;
  background-position:
    8% 22%,
    22% 62%,
    45% 34%,
    68% 26%,
    78% 62%,
    92% 22%;
}

.price-freeze-page .pf-hero-content{
  position: relative;
  text-align: center;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.price-freeze-page .pf-hero-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.4rem;
  border-radius: 9999px;
  background: linear-gradient(90deg, #2563eb, #0ea5e9);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 14px 34px rgba(17, 24, 39, 0.14);
}

.price-freeze-page .pf-hero-title{
  margin: 1.6rem 0 1.2rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: #111827;
  line-height: 1.02;
  font-size: clamp(2.2rem, 5.2vw, 4.3rem);
}

.price-freeze-page .pf-hero-subtitle{
  margin: 0 auto;
  max-width: 820px;
  color: #4b5563;
  line-height: 1.75;
  font-size: 1.05rem;
}

.price-freeze-page .pf-hero-actions{
  margin-top: 2.2rem;
  display: flex;
  justify-content: center;
}

.price-freeze-page .pf-hero-btn{
  min-width: 280px;
  justify-content: center;
  background: linear-gradient(90deg, #2563eb, #0ea5e9);
  box-shadow: 0 18px 44px rgba(2, 132, 199, 0.22);
}

/* PRICE FREEZE: единый фон для блоков 1–3 + слой снега */
.price-freeze-page .pf-top{
  position: relative;
  overflow: hidden;
  padding: 0;
  background: linear-gradient(180deg, #eef7ff 0%, #f7fbff 65%, #ffffff 100%);
}

.price-freeze-page .pf-top .ny-offers__container{
  position: relative;
  z-index: 1;
}

/* HERO внутри общего фона: убираем свой фон и псевдо-снежинки, чтобы не дублировать JS-снег */
.price-freeze-page .pf-top .pf-hero{
  background: transparent;
}

.price-freeze-page .pf-top .pf-hero::before{
  display: none;
}

/* Steps */
.price-freeze-page .pf-how{
  padding-top: 3.6rem;
}

.price-freeze-page .pf-steps{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
}

.price-freeze-page .pf-step{
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 18px;
  box-shadow: 0 20px 55px rgba(17, 24, 39, 0.12);
  padding: 2.2rem 2rem 2rem;
  text-align: center;
}

.price-freeze-page .pf-step-num{
  width: 64px;
  height: 64px;
  margin: 0 auto 1.15rem;
  border-radius: 9999px;
  display: grid;
  place-items: center;
  font-weight: 900;
  font-size: 1.7rem;
  color: #2563eb;
  background: rgba(191, 231, 255, 0.55);
}

.price-freeze-page .pf-step-title{
  margin: 0 0 0.65rem;
  font-weight: 900;
  font-size: 1.45rem;
  color: #111827;
}

.price-freeze-page .pf-step-text{
  margin: 0;
  color: #6b7280;
  line-height: 1.65;
}

/* Guarantee */
.price-freeze-page .pf-guarantee{
  padding-top: 1.6rem;
}

.price-freeze-page .pf-guarantee-card{
  border-radius: 26px;
  padding: 3.2rem 2.4rem;
  background: linear-gradient(90deg, #2563eb, #0ea5e9);
  color: #fff;
  box-shadow: 0 24px 70px rgba(17, 24, 39, 0.20);
  text-align: center;
}

.price-freeze-page .pf-guarantee-icon{
  width: 62px;
  height: 62px;
  margin: 0 auto 1.2rem;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,0.18);
}

.price-freeze-page .pf-guarantee-icon i{
  font-size: 1.9rem;
  line-height: 1;
}

.price-freeze-page .pf-guarantee-title{
  margin: 0 0 0.75rem;
  font-weight: 900;
  font-size: 2rem;
}

.price-freeze-page .pf-guarantee-text{
  margin: 0 auto;
  max-width: 900px;
  color: rgba(255,255,255,0.92);
  line-height: 1.7;
  font-size: 1.05rem;
}

/* Benefits */
.price-freeze-page .pf-benefits-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
}

.price-freeze-page .pf-benefit{
  border-radius: 18px;
  padding: 2rem 2rem 2.1rem;
  box-shadow: 0 18px 50px rgba(17, 24, 39, 0.12);
  border: 2px solid rgba(17, 24, 39, 0.08);
  background: rgba(255,255,255,0.9);
}

.price-freeze-page .pf-benefit-icon{
  width: 56px;
  height: 56px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  margin-bottom: 1.1rem;
  font-size: 1.5rem;
}

.price-freeze-page .pf-benefit-title{
  margin: 0 0 0.65rem;
  font-weight: 900;
  font-size: 1.35rem;
  color: #111827;
}

.price-freeze-page .pf-benefit-text{
  margin: 0;
  color: #6b7280;
  line-height: 1.65;
}

.price-freeze-page .pf-benefit--blue{
  background: rgba(191, 231, 255, 0.35);
  border-color: rgba(37, 99, 235, 0.22);
}
.price-freeze-page .pf-benefit--blue .pf-benefit-icon{
  background: #2563eb;
  color: #fff;
}

.price-freeze-page .pf-benefit--green{
  background: rgba(187, 247, 208, 0.30);
  border-color: rgba(16, 185, 129, 0.22);
}
.price-freeze-page .pf-benefit--green .pf-benefit-icon{
  background: #059669;
  color: #fff;
}

.price-freeze-page .pf-benefit--orange{
  background: rgba(254, 215, 170, 0.30);
  border-color: rgba(249, 115, 22, 0.22);
}
.price-freeze-page .pf-benefit--orange .pf-benefit-icon{
  background: #f97316;
  color: #fff;
}

.price-freeze-page .pf-benefit--purple{
  background: rgba(237, 233, 254, 0.55);
  border-color: rgba(139, 92, 246, 0.22);
}
.price-freeze-page .pf-benefit--purple .pf-benefit-icon{
  background: #7c3aed;
  color: #fff;
}

.price-freeze-page .pf-benefit--red{
  background: rgba(254, 202, 202, 0.30);
  border-color: rgba(239, 68, 68, 0.22);
}
.price-freeze-page .pf-benefit--red .pf-benefit-icon{
  background: #dc2626;
  color: #fff;
}

.price-freeze-page .pf-benefit--indigo{
  background: rgba(224, 231, 255, 0.45);
  border-color: rgba(99, 102, 241, 0.22);
}
.price-freeze-page .pf-benefit--indigo .pf-benefit-icon{
  background: #4f46e5;
  color: #fff;
}

/* PRICE FREEZE: локальный контейнер (чтобы карточки не прилипали к краям) */
.price-freeze-page .container{
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1rem;
}

@media (min-width: 768px){
  .price-freeze-page .container{
    padding: 0 1.5rem;
  }
}

/* Как работает: hover-увеличение карточек (только для устройств с hover) */
.price-freeze-page .pf-step{
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  will-change: transform;
}

@media (hover: hover) and (pointer: fine){
  .price-freeze-page .pf-step:hover{
    transform: translateY(-6px) scale(1.03);
    box-shadow: 0 26px 70px rgba(17, 24, 39, 0.16);
  }
}

/* Преимущества: равные отступы между карточками + безопасные боковые отступы */
.price-freeze-page .pf-benefits-grid{
  box-sizing: border-box;
  width: 100%;
  gap: 1.6rem;
}

/* Мобилка: аккуратнее расстояния */
@media (max-width: 640px){
  .price-freeze-page .pf-main{
    padding-top: 3rem;
  }
  .price-freeze-page .pf-steps{
    gap: 1.1rem;
  }

  .price-freeze-page .pf-benefits-grid{
    gap: 1.1rem; /* если ругнётся — замени на gap: 1.1rem; */
  }
}

/* Included */
.price-freeze-page .pf-included.ny-offers{
  background: linear-gradient(180deg, #eef7ff 0%, #ffffff 100%);
}

.price-freeze-page .pf-final.ny-offers{
  background: linear-gradient(180deg, #eef7ff 0%, #ffffff 100%);
}

.price-freeze-page .pf-included-card{
  max-width: 1120px;
  margin: 0 auto;
  border-radius: 22px;
  padding: 3.2rem 2.6rem 2.6rem;

  background: #f3f4f6;
  border: 1px solid rgba(17, 24, 39, 0.08);
  box-shadow: 0 22px 70px rgba(17, 24, 39, 0.14);

  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.price-freeze-page .pf-included-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem 4rem;
}

.price-freeze-page .pf-include{
  display: flex;
  gap: 1.05rem;
  align-items: flex-start;
}

.price-freeze-page .pf-include-icon{
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #2563eb;
  color: #fff;
  flex: 0 0 46px;
  box-shadow: 0 12px 26px rgba(37, 99, 235, 0.22);
}

.price-freeze-page .pf-include-icon i{
  font-size: 1.2rem;
  line-height: 1;
}

.price-freeze-page .pf-include-title{
  font-weight: 900;
  color: #111827;
  margin: 0 0 0.28rem;
}

.price-freeze-page .pf-include-text{
  color: #6b7280;
  line-height: 1.6;
}

/* Adaptive */
@media (max-width: 980px){
  .price-freeze-page .pf-included-grid{
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
}

@media (max-width: 640px){
  .price-freeze-page .pf-included-card{
    padding: 2.2rem 1.4rem 2rem;
  }
}

/* Form */
.price-freeze-page .pf-form-card{
  background: rgba(255,255,255,0.95);
  border: 1px solid rgba(17, 24, 39, 0.10);
  border-radius: 22px;
  box-shadow: 0 26px 80px rgba(17, 24, 39, 0.14);
  padding: 3rem 2.4rem 2.3rem;
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}

.price-freeze-page .pf-form-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1.35rem;
  border-radius: 9999px;
  font-weight: 900;
  color: #fff;
  background: linear-gradient(90deg, #2563eb, #0ea5e9);
  box-shadow: 0 12px 30px rgba(2, 132, 199, 0.22);
}

.price-freeze-page .pf-form-title{
  margin: 1.2rem 0 0.5rem;
  font-size: clamp(1.9rem, 3.6vw, 2.7rem);
  font-weight: 900;
  color: #111827;
  letter-spacing: -0.02em;
}

.price-freeze-page .pf-form-subtitle{
  margin: 0 0 2.2rem;
  color: #6b7280;
  line-height: 1.7;
}

.price-freeze-page .pf-form{
  text-align: left;
}

/* PRICE FREEZE — form layout */
.price-freeze-page .pf-form-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  align-items: start;
}

.price-freeze-page .pf-form-grid .form-group{
  margin: 0;
  min-width: 0;
}

.price-freeze-page .pf-form-grid .form-group.full-width{
  grid-column: 1 / -1;
}

.price-freeze-page .pf-form-grid input,
.price-freeze-page .pf-form-grid select,
.price-freeze-page .pf-form-grid textarea{
  width: 100%;
  box-sizing: border-box;
  display: block;
}

@media (max-width: 980px){
  .price-freeze-page .pf-form-grid{
    grid-template-columns: 1fr;
  }
}

.price-freeze-page .pf-form .form-group label span{
  color: #e31e24;
}

.price-freeze-page .pf-form select{
  width: 100%;
  padding: 0.75rem 3rem 0.75rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-family: inherit;
  font-size: 1rem;

  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;

  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%236b7280' d='M7 10l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 16px 16px;
  background-position: right 1.25rem center;
}

.price-freeze-page .pf-form textarea{
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-family: inherit;
  font-size: 1rem;
  resize: vertical;
}

.price-freeze-page .pf-after-box{
  margin: 1.6rem 0 1.6rem;
  border-radius: 14px;
  border: 2px solid rgba(37, 99, 235, 0.18);
  background: rgba(191, 231, 255, 0.25);
  padding: 1.25rem 1.25rem 1.1rem;
}

.price-freeze-page .pf-after-title{
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 900;
  color: #111827;
  margin-bottom: 0.7rem;
}

.price-freeze-page .pf-after-i{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: rgba(37, 99, 235, 0.14);
  color: #2563eb;
  flex: 0 0 34px;
}

.price-freeze-page .pf-after-list{
  margin: 0;
  padding-left: 1.2rem;
  color: #374151;
  line-height: 1.7;
}

.price-freeze-page .pf-submit{
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 1.05rem 1.2rem;
  font-weight: 900;
  font-size: 1.05rem;
  color: #fff;
  cursor: pointer;
  background: linear-gradient(90deg, #2563eb, #0ea5e9);
  box-shadow: 0 20px 55px rgba(2, 132, 199, 0.22);
  transition: transform 0.3s ease, filter 0.3s ease, box-shadow 0.3s ease;
  will-change: transform;
}

.price-freeze-page .pf-submit:hover{
  filter: brightness(1.03);
}

@media (hover: hover) and (pointer: fine){
  .price-freeze-page .pf-submit:hover{
    transform: translateY(-2px) scale(1.02);
  }
}

/* Price Freeze — note under submit */
.price-freeze-page .pf-form-note{
  margin: 0.9rem 0 0;
  text-align: center;
  font-size: 0.95rem;
  color: #9ca3af;
}

.price-freeze-page .pf-form-note-link{
  color: #2563eb;
  text-decoration: none;
  font-weight: 500;
}

.price-freeze-page .pf-form-note-link:hover{
  text-decoration: underline;
}

/* FAQ */
.price-freeze-page .pf-faq{
  padding-top: 3.6rem;
}

.price-freeze-page .pf-faq-list{
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
  max-width: 980px;
  margin: 0 auto;
}

.price-freeze-page .pf-faq-item{
  border-radius: 16px;
  padding: 1.55rem 1.75rem 1.45rem;
  border: 2px solid rgba(37, 99, 235, 0.20);
  background: rgba(191, 231, 255, 0.22);
  box-shadow: 0 18px 50px rgba(17, 24, 39, 0.10);
}

.price-freeze-page .pf-faq-q{
  margin: 0 0 0.6rem;
  font-weight: 900;
  font-size: 1.35rem;
  color: #111827;
}

.price-freeze-page .pf-faq-a{
  margin: 0;
  color: #6b7280;
  line-height: 1.7;
}

/* Bottom CTA */
.price-freeze-page .pf-final{
  padding-top: 2.8rem;
  padding-bottom: 5rem;
}

.price-freeze-page .pf-final-card{
  border-radius: 26px;
  padding: 4.2rem 2.4rem;
  text-align: center;
  color: #fff;
  background: linear-gradient(90deg, #2563eb, #0ea5e9);
  box-shadow: 0 26px 80px rgba(17, 24, 39, 0.20);
}

.price-freeze-page .pf-final-title{
  margin: 0 0 0.65rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  font-size: clamp(2.1rem, 4.2vw, 3.4rem);
}

.price-freeze-page .pf-final-subtitle{
  margin: 0 0 1.9rem;
  color: rgba(255,255,255,0.92);
  font-size: 1.1rem;
  line-height: 1.65;
}

.price-freeze-page .pf-final-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.95rem 2.2rem;
  border-radius: 14px;
  background: #fff;
  color: #2563eb;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 0 18px 44px rgba(17, 24, 39, 0.18);
  transition: all 0.3s;
}

.price-freeze-page .pf-final-btn:hover{
  background: #f3f4f6;
}

/* Adaptive */
@media (max-width: 980px){
  .price-freeze-page .pf-steps{ grid-template-columns: 1fr; }
  .price-freeze-page .pf-benefits-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .price-freeze-page .pf-included-grid{ grid-template-columns: 1fr; }
  .price-freeze-page .pf-form-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 640px){
  .price-freeze-page .pf-hero{ padding: 3.4rem 0 3.2rem; }
  .price-freeze-page .pf-hero-subtitle{ font-size: 1rem; }
  .price-freeze-page .pf-guarantee-card{ padding: 2.4rem 1.4rem; }
  .price-freeze-page .pf-guarantee-title{ font-size: 1.55rem; }
  .price-freeze-page .pf-benefits-grid{ grid-template-columns: 1fr; }
  .price-freeze-page .pf-included-card{ padding: 2.2rem 1.4rem 2rem; }
  .price-freeze-page .pf-form-card{ padding: 2.2rem 1.4rem 1.8rem; }
}

@media (max-width: 640px){
  .price-freeze-page .pf-faq-item{
    padding: 1.25rem 1.15rem 1.15rem;
  }

  .price-freeze-page .pf-faq-q{
    font-size: 1.15rem;
  }

  .price-freeze-page .pf-final-card{
    padding: 3.2rem 1.4rem;
  }

  .price-freeze-page .pf-final-subtitle{
    font-size: 1rem;
  }
}

/* Шапка: прозрачная в начале -> белая при скролле (через .is-scrolled) */
.promotions-page .header-fixed,
.price-freeze-page .header-fixed,
.arshin-page .header-fixed,
body#top .header-fixed {
  background-color: transparent;
  box-shadow: none;
  border-bottom: 1px solid transparent;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.promotions-page .header-fixed.is-scrolled,
.price-freeze-page .header-fixed.is-scrolled,
.arshin-page .header-fixed.is-scrolled,
body#top .header-fixed.is-scrolled {
  background-color: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  border-bottom-color: rgba(0,0,0,0.06);
}

/* Новогоднее модальное окно "Оставить заявку" */
.request-modal-ny {
  background-color: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

.request-modal-content-ny {
  position: relative;
  overflow: visible;
  background: linear-gradient(180deg, #fff0f0 0%, #fff6f6 100%);
  border: 2px solid rgba(239, 68, 68, 0.2);
  box-shadow: 0 20px 40px rgba(239, 68, 68, 0.15), 0 0 30px rgba(239, 68, 68, 0.1);
  max-width: 500px;
  width: 90%;
  padding: 0;
}

.request-modal-content-ny.ny-offers {
  padding: 0;
  overflow: visible;
}

.request-modal-snow {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.request-modal-content-ny .ny-snow {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
}

.request-modal-content-ny .ny-snow__flake {
  position: absolute;
  will-change: transform;
}

.request-modal-inner {
  position: relative;
  z-index: 1;
  padding: 2.5rem 2.5rem;
  display: flex;
  flex-direction: column;
}

.form-group-with-santa {
  position: relative;
  margin-bottom: 2rem;
  padding-top: 60px;
}

.input-wrapper-santa {
  position: relative;
}

.santa-in-input {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -70px;
  width: 130px;
  height: auto;
  z-index: 3;
  pointer-events: none;
  filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.2));
}

.request-modal-content-ny .form-group-with-santa input {
  padding-right: 1rem;
}

/* Модальное окно "Отправлено!" */
.thanks-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  z-index: 10000;
  align-items: center;
  justify-content: center;
}

.thanks-modal-content {
  position: relative;
  background: linear-gradient(180deg, #fff0f0 0%, #fff6f6 100%);
  border: 2px solid rgba(239, 68, 68, 0.2);
  box-shadow: 0 20px 40px rgba(239, 68, 68, 0.15), 0 0 30px rgba(239, 68, 68, 0.1);
  border-radius: 20px;
  max-width: 450px;
  width: 90%;
  padding: 0;
  overflow: hidden;
}

.thanks-modal-content .ny-snow {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.thanks-modal-inner {
  position: relative;
  z-index: 1;
  padding: 3rem 2.5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.thanks-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
  color: white;
  font-size: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  box-shadow: 0 10px 25px rgba(16, 185, 129, 0.3);
  animation: scaleIn 0.3s ease-out;
}

@keyframes scaleIn {
  from {
    transform: scale(0);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

.thanks-title {
  font-size: 2rem;
  font-weight: 700;
  color: #dc2626;
  margin: 0;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.thanks-message {
  font-size: 1.25rem;
  color: #374151;
  margin: 0;
  font-weight: 500;
}

.thanks-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background-color: rgba(239, 68, 68, 0.1);
  border: 2px solid rgba(239, 68, 68, 0.3);
  color: #dc2626;
  font-size: 1.5rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  transition: all 0.3s ease;
}

.thanks-modal-close:hover {
  background-color: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.5);
  transform: scale(1.1);
}

@media (max-width: 768px) {
  .thanks-modal-inner {
    padding: 2.5rem 2rem;
  }
  
  .thanks-title {
    font-size: 1.75rem;
  }
  
  .thanks-message {
    font-size: 1.1rem;
  }
  
  .thanks-icon {
    width: 70px;
    height: 70px;
    font-size: 2.5rem;
  }
}


.request-modal-header-ny {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid rgba(239, 68, 68, 0.15);
  display: flex;
  justify-content: center;
  align-items: center;
}

.request-modal-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #dc2626;
  margin: 0;
  text-align: center;
}

.request-modal-subtitle {
  text-align: center;
  color: #6b7280;
  font-size: 0.95rem;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}

.request-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: rgba(239, 68, 68, 0.1);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #dc2626;
  font-size: 1.5rem;
  transition: all 0.3s ease;
  z-index: 10;
  border: 2px solid rgba(239, 68, 68, 0.2);
}

.request-modal-close:hover {
  background: rgba(239, 68, 68, 0.2);
  transform: rotate(90deg);
}

.request-modal-submit {
  margin-top: 0.5rem;
  width: 100%;
  box-sizing: border-box;
}


.request-modal-content-ny .form-group {
  margin-bottom: 1.25rem;
}

.request-modal-content-ny .form-group input {
  border: 2px solid rgba(239, 68, 68, 0.15);
  transition: all 0.3s ease;
  padding: 0.875rem 1rem;
  border-radius: 8px;
  font-size: 1rem;
  width: 100%;
  box-sizing: border-box;
}

.request-modal-content-ny .form-group input:focus {
  outline: none;
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.request-modal-content-ny .form-group label {
  color: #374151;
  font-weight: 600;
  margin-bottom: 0.5rem;
  display: block;
}

@media (max-width: 768px) {
  .request-modal-content-ny {
    max-width: 95%;
    margin: 1rem;
  }
  
  .request-modal-inner {
    padding: 2rem 1.5rem;
  }
  
  .request-modal-title {
    font-size: 1.3rem;
  }
  
  .santa-in-input {
    left: 50%;
    transform: translateX(-50%);
    top: -60px;
    width: 100px;
  }
  
  .form-group-with-santa {
    margin-bottom: 1.5rem;
    padding-top: 50px;
  }
}

@media (max-width: 480px) {
  .santa-in-input {
    display: none;
  }
}