@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;600;700;800;900&display=swap');


/* Жирный (Bold) */
/* @font-face {
   font-family: 'Roboto';
   src: url('../fonts/roboto-bold.woff2') format('woff2'); */
   /* font-weight: 700; Жирный шрифт */
   /* font-style: normal;
   font-display: block;
} */

/* Курсив (Italic) */
/* @font-face {
   font-family: 'Roboto';
   src: url('../fonts/roboto-italic.woff2') format('woff2');
   font-weight: 400; */
   /* font-style: italic;
   font-display: block;
} */



/* --- RESET --- */

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
   font-family: sans-serif, 'Roboto';
   color: var(--text-dark);
   line-height: 1.6;
   background-color: var(--bg-body);
}

/* VOID a { text-decoration: none; color: inherit; transition: color 0.3s; } */


ul { list-style: none; }
h1, h2, h3 { 
   font-weight: 800;
   font-family: sans-serif, 'Roboto'; 
   text-align: center;
}

h1 {
   font-size: var(--fs-h1);
   color: var(--clr-h1);
   line-height: 1.2;
}

h2 {
   font-size: var(--fs-h2);
   color: var(--clr-h2);
   /* text-align: center; */
   margin: 3rem 0 1.5rem 0;
   position: relative;
}


h3 {
   color: var(--clr-h3);
   /* text-align: center; */
   font-size: 1.5rem;
   /* margin-bottom: 1rem; */
   position: relative;
}


/* Декоративная линия под заголовками */
h2::after {
   content: '';
   display: block;
   width: 70px;
   height: 3px;
   background: var(--accent);
   margin: 10px auto 0;
}

.wrapper {
   background-color: transparent;
}

.content {
  flex-grow: 1; /* Заставляет правую часть занимать все свободное место */
  background-color: #ffffff;
}


/* --- КОНТЕНТ --- */
/* VOID ?
.content-area { 
   grid-column: 2;
   display: flex;
   flex-direction: column;
   min-height: 100vh;
   overflow-y: auto;
} */


/* 2 столбца: для sidevar слева и содержимого страницы справа */
.container { 
  display: grid;
  grid-template-columns: var(--sidebar-width) 1fr; /* 1fr = "одна свободная доля" */
}





/* НОВЫЙ ДИЗАЙН - КОЛЛАЖ */
.collage-container {
   display: flex;
   width: 100%;
   height: 100vh;
   padding: 2px;
}
.main-container, .right-col, .right-bottom {
   gap: 2px; /* зазор между картинками */
}

/* Левая часть контейнера изображений */
.left-col {
   flex: 0 0 55%;
   background-size: cover;
   background-position: center;
   position: relative; /* Контейнер должен иметь position: relative, чтобы текст летал внутри него */
   overflow: hidden; /* Чтобы текст не "вываливался" за пределы картинки */
}


/* Правая часть — она сама становится Flex-контейнером, но вертикальным (column) */
.right-col {
   flex: 0 0 45%;
   display: flex;
   flex-direction: column; 
}

/* Верхняя картинка справа */
.right-top {
   flex: 1; /* Занимает половину высоты (или сколько дадите) */
   position: relative; /* контейнер position: relative, чтобы текст "О НАС" летал внутри него */
   background-size: cover;
   background-position: center;
}

/* Нижний ряд справа — снова Flex, но уже горизонтальный */
.right-bottom {
   flex: 1; 
   display: flex;
}

/* "НАШИ УСЛУГИ" */
.img-55 {
   flex: 0 0 50%;
   background-size: cover;
   position: relative; /* контейнер position: relative, чтобы текст летал внутри него */
   background-position: left;
}
/* КОНТАКТЫ */
.img-45 {
   flex: 0 0 50%;
   background-size: cover;
   position: relative; /* контейнер position: relative, чтобы текст летал внутри него */
   background-position: center;
   text-align: left;
}


/* =========================== */
/* АНИМАЦИЯ ВЫПАДАЮЩЕГО ТЕКСТА */
.animated-text {
   position: absolute;
   width: 100%;
   padding: 0 30px;
   /* text-align: center; */
   /* font-size: 1rem; */
   font-weight: bold;
   
   /* настройки анимации */
   /* animation-name: slideDown;       /* Название анимации (см. ниже) */
   animation-duration: 2s;         /* СКОРОСТЬ: чем больше секунд, тем плавнее */
   animation-delay: 0ms;           /* ЗАДЕРЖКА перед стартом */
   animation-timing-function: ease;   /* ПЛАВНОСТЬ: ease (мягко), linear (равномерно) */
   animation-fill-mode: forwards;    /* Чтобы текст остался внизу после спуска */
   
   top: -110px; /* Начальная позиция (спрятан выше границы) */
}

.anim1 {
   font-size: vaf(--fs-h1);
   color: var(--golden-rod);
   /* настройки анимации */
   animation-name: slideDown1;
   animation-duration: 2s;
   animation-delay: 0ms;
}
.anim2 {
   font-size: var(--fs-h2);
   color: var(--text-dark);
   font-weight: bold;
   text-align: center;
   /* настройки анимации */
   animation-name: slideDown2;
   animation-duration: 2s;
   animation-delay: 1200ms;
}

.anim3 {
   z-index: 10;
   font-size: 2rem;
   font-weight: bold;
   text-align: center;
   color: white;
   /* настройки анимации */
   animation-name: slideDown3;
   animation-duration: 2s;
   animation-delay: 0ms;
}


/* Описание самого движения slideDown*/
@keyframes slideDown1 {
   from {
      top: -110px; /* Старт: за пределами экрана */
      opacity: 0;   /* Можно добавить появление из прозрачности */
   }
   to {
      top: 10%;   /* Финиш */
      opacity: 1;
   }
}

@keyframes slideDown2 {
   from {
      top: -110px; /* Старт: за пределами экрана */
      opacity: 0;   /* Можно добавить появление из прозрачности */
   }
   to {
      top: 75%;   /* Финиш (или в px) */
      opacity: 1;
   }
}
@keyframes slideDown3 {
   from {
      top: -110px; /* Старт: за пределами экрана */
      opacity: 0;   /* Можно добавить появление из прозрачности */
   }
   to {
      top: 70%;   /* Финиш (или в px) */
      opacity: 1;
   }
}

/* === END: АНИМАЦИЯ ====== */


/* END: КОЛЛАЖ */
/* END: НОВЫЙ ДИЗАЙН ГЛАВНОЙ СТРАНИЦЫ */ 
/* ===================================*/
 



/* --- HEADER --- */
/*  VOID
.main-header {
   width: 100%;
   background: var(--secondary);
   padding: 20px 30px;
   z-index: 10;
   position: relative;
   text-align: center;
   color: var(--clr-text-regular);
} */

/* VOID
.header-text h1 {
   font-size: clamp(2rem, 5vw, 3.5rem); Гибкий размер шрифта
   margin: 0 0 10px 0;
   text-align: left;
}

.header-text p {
   margin: 0;
   opacity: 0.5;
   font-size: 1.3rem;
   color: var(--clr-text-regular);
} */

/* На мобилках выравниваем все по центру */
/* VOID
@media (max-width: 768px) {
   .header-container_ {
      flex-direction: column;
      text-align: center;
   }
} */

.canvas {
  width: 100%;
  height: 400px;
  /* Применяем переменную */
  background-image: var(--bg-img);
  /* Добавляем темный фон, чтобы увидеть светлые круги */
  background-color: #1a1a2e; 
  border-radius: 12px;
}


/* --- БЛОК HERO --- */
.hero {
   color: var(--text-light);
   /* padding: 0px 40px 10px; */
   position: relative;
   overflow: hidden;
   background-color: var(--third);

   /* Grid texture */
   background-image:
   linear-gradient(rgba(201,153,58,.07) 1px,transparent 1px),
   linear-gradient(90deg,rgba(201,153,58,.07) 1px,transparent 1px);
   background-size:48px 48px;

   /* фон с градиентами, имитирующий светлые круги - Glow эффект */
  /* background-image: var(--bg-img); */
  /* background-color: #1a1a2e;  */
}


.hero-content {
   max-width: 1000px;
   margin: 0 auto;
}

/* VOID .hero h1 {
   font-size: var(--fs-hero-h1);
   font-weight: 700;
   margin-bottom: 25px;
   line-height: 1.1;
} */
.hero p {
   font-size: 1.4rem;
   color: var(--clr_hero-p);
   /* margin-bottom: 50px; */
   opacity: 0.9;
   font-weight: 300;
}





/* Блок с Группами товаров на Главной */
.hero-group-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Автоматически подстроит колонки */
   gap: 25px;
   margin: 40px 0;
}





/* Стили большой карточки */
.category-card-large {
   height: 300px; /* Увеличили высоту */
   position: relative;
   overflow: hidden;
   border-radius: 12px;
   display: flex;
   flex-direction: column;
   /* justify-content: space-between; */
   justify-content: flex-end; /* Текст внизу */
   padding: 20px;
   border: none;
     background: var(--clr-group-card);
   transition: transform 0.3s ease, box-shadow 0.3s ease;
   z-index: 10;
}

.category-card-large:hover {
   transform: translateY(-10px);
   box-shadow: 3px 3px 15px rgba(236, 214, 214, 0.9);
}

/* Стили изображения внутри карточки */
.card-image {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   z-index: 1;
}

.card-image img {
   width: 100%;
   height: 100%;
   object-fit: cover; /* Заполняет всё пространство */
   opacity: 0.6; /* Затемняем, чтобы текст читался */
   transition: opacity 0.3s ease, transform 0.5s ease;
}

.category-card-large:hover .card-image img {
   opacity: 0.8;
   transform: scale(1.07); /* Эффект приближения при наведении */

   background: var(--clr-group-card-hover);
   border-color: var(--secondary);
   color: var(--clr-text-hover);
}



/* Контент поверх картинки */
.card-content {
   position: relative;
   z-index: 2; /* Поверх изображения */
}

.category-card-large .group-title {
   font-size: 1.7rem; /* Крупнее текст */
   font-weight: 700;
   color: var(--clr-text-regular);
   line-height: 1.2;
   text-shadow: 2px 2px 4px rgba(0,0,0,0.5); /* Чтобы текст не терялся на фоне */
}

/* Специальный стиль для "Всего каталога", если там нет картинки */
.all-cat-special {
   background: linear-gradient(135deg, var(--secondary), var(--third));
   justify-content: center;
   text-align: center;
}


/* Декоративный круг внутри карточки */
.category-card-large::before {
   content: '';
   position: absolute;
   top: -50px; right: -50px;
   width: 150px; height: 150px;
   background: var(--primary);
   opacity: 0.2;
   border-radius: 50%;
   transition: all 0.4s ease;
}


.group-title {
   font-size: 1.5rem;
   font-weight: 700;
   text-align: center;
   z-index: 2;
}
.product-arrow {
   font-size: 2.5rem;
   font-weight: bolder;
   align-self: flex-end;
   text-align: center;
   z-index: 2;
}





/* --- СЕКЦИИ --- */

.bg-section {
   background-color: var(--secondary);
   background-image: radial-gradient(circle at 20% 50%, rgba(0, 168, 232, 0.4) 0%, transparent 50%),
   radial-gradient(circle at 80% 80%, rgba(255, 187, 0, 0.15) 0%, transparent 40%);
   color: var(--text-light);
   padding: 40px 40px 100px;
   position: relative;
   /* overflow: hidden; */
}





/* --- ФОРМЫ (Минимализм) --- */
/* .form-wrapper {
   background: var(--bg-gray);
   padding: 50px;
   border-radius: 20px;
   box-shadow: var(--shadow-soft);
   max-width: 700px;
   margin: 30px auto;
} */
/* 
.form-group input, .form-group textarea {
   width: 100%;
   padding: 15px 20px;
   border: 2px solid #eefaff;
   background: #f8fdff;
   border-radius: 10px;
   font-family: inherit;
   font-size: 1rem;
   transition: border 0.3s;
   margin-bottom: 20px;
}
.form-group input:focus, .form-group textarea:focus {
   outline: none;
   border-color: var(--primary);
   background: #fff;
} */





.di-flex-inline {
   display: inline-flex;
   background-color: var(--bg-gray);
   padding: 20px 0 10px 20px;
     /* justify-content: space-between;
     align-items: flex-start; */
   gap: 30px;
}





/* --- АДАПТИВНОСТЬ --- */
@media (max-width: 900px) {
   .main-layout { grid-template-columns: 1fr; }
   /* .content-area { grid-column: 1; }void */
   .main-header { position: relative; width: 100%; background: var(--secondary); justify-content: center; }
   .hero { padding-top: 60px; text-align: center; }
   .hero h1 { font-size: 2.5rem; }
   .hero-group-grid { grid-template-columns: 1fr; }
}





/* СЕКЦИЯ "Всего 4 шага до стабильной связи"  */
:root {
   /* Переменная для интервала появления (в секундах) */
   --step-interval: 0.5s; 
}
.steps-section-title {
     text-align: center;
     margin-bottom: 20px; 
     color: var(--clr-steps-section-title);
}
.steps-wrapper {
   display: flex;
   align-items: flex-start;
   gap: 50px;
   position: relative;
   overflow: hidden; /* Чтобы фото не вылетало за границы сайта */
   padding: 10px 0;
}
/* Стили фото */
.steps-image-box {
   flex: 1;
   transform: translate(-100%, 50%); /* изначально спрятано слева и внизу */
   opacity: 0;
   transition: transform 1s ease-out, opacity 1s ease-out;
}

.steps-image-box img {
   width: 100%;
   border-radius: 15px;
   box-shadow: 0 10px 30px rgba(0,0,0,0.1);
   filter: saturate(1.5); /* сделаем цвета на фото чуть сочнее в момент появления*/
}

/* Стили списка шагов */
.steps-vertical-list {
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 5px;
}

.step-num {
   font-size: 1.7rem;
   font-weight: bold;
   color: var(--third);
   margin-left: 10px;
}

.step-item h3 {
   color: var(--clr-text-regular-inverted);
   text-align: left;
   font-size: 1.5rem;
   margin: 0 12px;
   position: relative;
}
.step-item p{
   font-size: 1.1rem;
}

.step-item {
   opacity: 0;
   transform: translateX(30px);
   transition: all 0.6s ease-out;
   /* Задержка: номер шага * интервал из переменной */
   transition-delay: calc(var(--delay) * var(--step-interval));
}


.steps-section {
   position: relative;
   padding: 0px 30px;
   /* добавляем границу по бокам - так красивее выглядит*/
   /* border-right: 65px solid var(--secondary);
   border-left: 50px solid var(--secondary); */
}
/* Состояние после активации (когда доскроллили) */
.steps-section.active .steps-image-box {
   transform: translate(0, 0);
   opacity: 1;
}

.steps-section.active .step-item {
   opacity: 1;
   transform: translateX(0);
}

/* Адаптив для мобилок */
@media (max-width: 768px) {
   .steps-wrapper { flex-direction: column; }
   .steps-image-box { transform: translate(-100%, 0); }
}
/* END: СЕКЦИЯ "Всего 4 шага до стабильной связи"  */



@media (max-width: 768px) {
   .container {
     margin: 0 15px;
     padding: 0 10px;
   }
   .products-catalog-2cols {
     grid-template-columns: 1fr; /* Один столбец на мобильных */
   }
}