/*Document CSS*/

		:root {
			/* Light Theme (Default) - Beam Group */
			--primary: #004FB7;
			--bg: #ffffff;
			--text: #1E2530;
			--header-bg: rgba(214,222,234,0.79);
			--card-bg: #ffffff;
			--light-gray: #F5F7FA;
			--dark-gray: #004FB7;
			--footer-bg: #0B0E14;
			--transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
		}

		body.dark-mode {
			/* Dark Theme - Premium Corporate */
			--bg: #0B0E14;
			--text: #E2E8F0;
			--header-bg: rgba(26,35,51,0.79);
			--card-bg: #131A26;
			--light-gray: #1A2333;
			--dark-gray: #ffffff;
			--footer-bg: #07090D;	
		}

		/* Адаптация логотипа для темной темы */
		body.dark-mode .logo img[src="images/logo.svg"] {
			filter: brightness(1.4) contrast(1.1);
			transition: var(--transition);
		}
		
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
        }

        html { 
			scroll-behavior: smooth;
			scroll-padding-top: 80px;
		}

        body {
            background-color: var(--bg);
            color: var(--text);
            line-height: 1.6;
            transition: background-color 0.4s, color 0.4s;
            overflow-x: hidden;
        }

        .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

        section { padding: 100px 0; opacity: 0; transform: translateY(30px); transition: all 0.8s ease-out; }
        section.visible { opacity: 1; transform: translateY(0); }

        /* Header & Nav */
        header {
            position: fixed;
            top: 10px !important; /* Удерживаем исходную позицию */
            /*width: 100%;*/
            background: var(--header-bg);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            z-index: 1000;
			
			/*Регулировка по ширине*/
         	left: 50%;
            transform: translateX(-50%) scale(1); /* Центрируем капсулу строго посередине экрана */
            width: calc(100% - 40px); /* Даем небольшие зазоры по бокам на экранах поменьше */
			
			border-radius: 20px; /* Скругления */
			padding: 0 20px; /* Добавляем внутренние боковые отступы для лого и навигации */
			
			/* Элегантная тень и тонкая премиальная рамка */
            box-shadow: 0 8px 32px rgba(50,50,50,0.48);
            border: 1px solid rgba(0,0,0,0.31);
           
			
			/* ЗАПУСКАЕМ АНИМАЦИЮ ОТСКОКА ВВЕРХ (когда возвращаемся в ноль) */
            animation: headerBounceUp 0.8s ease-in-out forwards;
        }

		/* Эффект затухающего подпружинивания при скролле вниз */
        header.scrolled {
            top: 10px !important;
            background-color: var(--header-bg);
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
            
            /* ЗАПУСКАЕМ АНИМАЦИЮ ОТСКОКА ВНИЗ */
            animation: headerBounceDown 0.8s ease-in-out forwards;
        }

        /* --------------------------------------------------------------------------
           АНИМАЦИЯ 1: Шапка падает вниз и пружинит (Скролл ниже 50px)
           -------------------------------------------------------------------------- */
        @keyframes headerBounceDown {
            0% {
                top: 20px !important;
                transform: translateX(-50%) scale(1);
            }
            20% {
                top: 6px !important; /* Пролетает целевую точку 10px выше */
                transform: translateX(-50%) scale(0.96); /* Упруго сжимается */
            }
            40% {
                top: 13px !important; /* Отскок ниже */
                transform: translateX(-50%) scale(0.98);
            }
            60% {
                top: 8px !important; /* Микро-отскок выше */
                transform: translateX(-50%) scale(0.965);
            }
            80% {
                top: 11px !important; /* Микро-отскок ниже */
                transform: translateX(-50%) scale(0.975);
            }
            100% {
                top: 10px !important; /* Финал */
                transform: translateX(-50%) scale(0.97);
            }
        }

        /* --------------------------------------------------------------------------
           АНИМАЦИЯ 2: Шапка возвращается наверх и пружинит (Скролл в самый верх)
           -------------------------------------------------------------------------- */
        @keyframes headerBounceUp {
            0% {
                top: 10px !important;
                transform: translateX(-50%) scale(0.97);
            }
            20% {
                top: 25px !important; /* Пролетает исходную точку 20px ниже */
                transform: translateX(-50%) scale(1.02); /* Слегка растягивается от инерции */
            }
            40% {
                top: 17px !important; /* Отскок выше */
                transform: translateX(-50%) scale(0.99);
            }
            60% {
                top: 22px !important; /* Микро-отскок ниже */
                transform: translateX(-50%) scale(1.01);
            }
            80% {
                top: 19px !important; /* Микро-отскок выше */
                transform: translateX(-50%) scale(0.995);
            }
            100% {
                top: 20px !important; /* Финал */
                transform: translateX(-50%) scale(1);
            }
        }

		body.dark-mode header {
            border: 1px solid rgba(255,255,255,0.4);
            box-shadow: 0 8px 32px rgba(80,80,80,0.30);
        }

        nav { 
			display: flex; 
			justify-content: space-between; 
			align-items: center; 
			height: 100px; 
		}

        /* Поведение для кнопок вверху*/
		.logo {
			text-decoration: none; /* Убирает подчеркивание ссылки */
			color: inherit;        /* Оставляет цвет текста как у темы */
			font-size: 1.2rem;
			font-weight: 800;
			text-transform: uppercase;
			letter-spacing: 1px;
			margin: 0px 0px 0px -30px;

			/* Объединяем: flex дает красивое выравнивание, 
			   а transform будет работать, так как flex-контейнеры это позволяют */
			display: flex; 
			align-items: center;
			gap: 5px;

			/* Один плавный переход для всего (и для цвета, и для размера) */
			transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		}
		.logo:hover {
			transform: scale(1.05); /* Увеличение на 5% */
			opacity: 0.9;           /* Легкое изменение прозрачности для отклика */
			/*text-shadow: 0 0 10px rgba(243, 156, 18, 0.3); /* Мягкое оранжевое свечение */
		}
        .logo span { 
			color: var(--primary);		
		}
        .nav-right {
			display: flex; 
			align-items: center; 
			gap: 30px;
		}
        .nav-links { 
			display: flex; 
			gap: 25px;
			border-radius: 20px;
		}
        .nav-links a { 
			text-decoration: none; 
			color: var(--text); 
			font-weight: 500; 
			font-size: 0.9rem; 
			display: inline-block;
			padding: 5px 0; /* Добавляем немного места для линии */
			border-bottom: 2px solid transparent; /* Резервируем место, чтобы верстка не прыгала */
			transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); 
		}
		
		/* Стиль для активного пункта меню */
		.nav-links a.active {
			color: var(--primary);
			transform: scale(1.1);
			border-bottom: 2px solid var(--primary); /* Опционально: полоска под активной ссылкой */
		}
		
        .nav-links a:hover { 
			color: var(--primary);
    		transform: scale(1.1); /* Увеличиваем текст на 10% */
		}

        /* Theme Toggle */
        #theme-toggle {
            background: none;
            border: none;
            cursor: pointer;
            color: var(--text);
            display: flex;
            align-items: center;
            transition: var(--transition);
            padding: 5px;
            border-radius: 50%;
        }
        #theme-toggle:hover { background: var(--light-gray); transform: rotate(15deg); }

        /* Hero Section */
        .hero {
			position: relative;
			/* Задаем внешние отступы со всех сторон */
			margin: 125px 20px 20px 20px; /* Сверху 95px, чтобы плавающий хедер не перекрывал контент */

			/* Рассчитываем высоту: 100% экрана минус верхний и нижний отступы */
			height: calc(100vh - 115px); 
			min-height: 600px;

			display: flex;
			align-items: center;
			justify-content: center;
			text-align: center;
			color: #ffffff;

			/* Скругление и изоляции слайдера */
            border: 1px solid rgba(0,0,0,0.58);
			border-radius: 24px; /* Красивое глубокое скругление для главного экрана */
			overflow: hidden;    /* Жёстко режет картинки слайдера по контуру скругления */
			box-shadow: 0 8px 32px rgba(50,50,50,0.48);
		}

		body.dark-mode .hero {
            border: 1px solid rgba(255,255,255,0.4);
            box-shadow: 0 8px 32px rgba(80,80,80,0.30);
        }

        .hero h1 { font-size: 2.5rem; margin-bottom: 20px; color: #fff;}
        .hero p { font-size: 1.2rem; max-width: 700px; margin: 0 auto 30px; opacity: 0.9; }

		/* Контейнер для слайдера — строго подложка */
		.hero-slider {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			overflow: hidden; /* Жестко режет картинки, если они захотят вылезти за экран */
			z-index: 1;       /* Самый нижний уровень */
			
		}

		/* Базовые стили для каждого слайда */
		.hero-slide {
			position: absolute;
			top: 0;
			left: 0;
			width: 100% !important;
			height: 100% !important;
			object-fit: cover;
			opacity: 0;       /* Изначально скрыты */
			z-index: 1;       /* Внутри контейнера */
			
			/* Запуск бесконечной анимации на 20 сек */
			animation: heroSlideshow 20s infinite linear;
		}

		/* Настройка задержки для поочередного включения */
		.hero-slide:nth-child(1) { animation-delay: 0s; }
		.hero-slide:nth-child(2) { animation-delay: 4s; }
		.hero-slide:nth-child(3) { animation-delay: 8s; }
		.hero-slide:nth-child(4) { animation-delay: 12s; }
		.hero-slide:nth-child(5) { animation-delay: 16s; }

		/* Темный полупрозрачный оверлей поверх слайдера для читаемости текста */
		.hero::before {
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background: linear-gradient(rgba(11,14,20,0.6), rgba(11,14,20,0.85));
			z-index: 2; /* Ложится строго МЕЖДУ слайдами и текстом */
		}

		/* Выталкиваем контент на самый передний план */
		.hero .container {
			position: relative;
			z-index: 3; /* Самый высокий уровень слоев — кнопки будут отлично кликаться */
			width: 100%;
		}

		/* Ключевые кадры: плавное появление + микро-зум */
		@keyframes heroSlideshow {
			0% {
				opacity: 0;
				transform: scale(1);
			}
			/* Каждая картинка плавно проявляется за первые 2% времени цикла */
			2% {
				opacity: 1;
			}
			/* Слайд держится на экране полностью видимым */
			25% {
				opacity: 1;
			}
			/* Плавно растворяется, пока из-под неё УЖЕ горит следующий слайд */
			27% {
				opacity: 0;
				transform: scale(1.04);
			}
			100% {
				opacity: 0;
			}
		}

        /* Buttons */
		
		/* Эффект нажатия (сжатие) */
		.btn:active, .contact-btn:active, #theme-toggle:active, .burger-btn:active {
			transform: scale(0.95);
			transition: transform 0.1s ease;
		}

		/* Стили для волны (Ripple) */
		.ripple {
			position: absolute;
			border-radius: 50%;
			background: rgba(27,27,27,0.60);
			transform: scale(0);
			animation: ripple-animation 0.6s linear;
			pointer-events: none;
		}

		@keyframes ripple-animation {
			to {
				transform: scale(4);
				opacity: 0;
			}
		}

		/* Нужно добавить кнопкам position: relative, чтобы волна не вылетала за края */
		.btn, .contact-btn {
			position: relative;
			overflow: hidden;
		}
		
		/* Базовые стили кнопки бургера */
		.burger-btn {
			display: none; /* Скрыта на компьютерах */
			flex-direction: column;
			gap: 6px;
			background: none;
			border: none;
			cursor: pointer;
			padding: 10px;
			z-index: 1100;
		}

		.burger-btn span {
			display: block;
			width: 25px;
			height: 3px;
			background: var(--text); /* Подстраивается под темную/светлую тему */
			transition: var(--transition);
			border-radius: 2px;
		}

		/* Анимация крестика при открытии */
		.burger-btn.active span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
		.burger-btn.active span:nth-child(2) { opacity: 0; }
		.burger-btn.active span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
		
		
		/* Стили и анимация кнопок "Наши услуги" и "Обсудить проект" */
        .btn { display: inline-block; padding: 15px 35px; background: var(--primary); color: #fff; text-decoration: none; border-radius: 50px; font-weight: 600; transition: var(--transition); border: 2px solid var(--primary); }
		.btn .ripple { background: rgba(255, 255, 255, 0.6); } /* Светлая волна специально для кнопки "Наши услуги" */
        .btn:hover { background: transparent; color: var(--primary); transform: translateY(-5px); }
        .btn-outline { background: transparent; border-color: #fff; color: #fff; }
		.btn-outline .ripple { background: rgba(27, 27, 27, 0.60) !important; }
        .btn-outline:hover { background: #fff; color: #1a1a1a; }

        /* Sections Branding */

		.section {
			padding: 100px 0;
		}
        .section-title { 
			font-size: 2.5rem; 
			margin-bottom: 10px; 
			color: var(--text); 
			transition: var(--transition);
		}
        .section-title::after { 
			content: ''; 
			display: block; 
			width: 60px; 
			height: 4px; 
			background: var(--primary); 
			margin-top: 15px; 
		}
		
		/* ========================
		   БЛОК О КОМПАНИИ (ABOUT)
		   ========================*/

		.about-grid { 
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 50px;
			align-items: center;
			justify-content: center;
			min-height: 60vh;
			padding: 80px 0;
		}

		.about-image {
			position: relative;
			height: 400px; /* Фиксированная базовая высота для десктопа */
			border: 1px solid rgba(0,0,0,0.31);
			border-radius: 20px;
			overflow: hidden;
			background-color: #1a2333; 
			padding: 0 !important; 
			margin: 0;
			display: flex;
			box-shadow: 0 8px 32px rgba(50,50,50,0.48);
			transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.6s cubic-bezier(0.4, 0, 0.2, 1);
		}

		body.dark-mode .about-image {
			border: 1px solid rgba(255,255,255,0.4);
            box-shadow: 0 8px 32px rgba(80,80,80,0.30);
		}

		/* Ховер-эффект на само окно */
		.about-image:hover {
			box-shadow: 0 15px 40px rgba(0,0,0,0.2);
			transform: scale(1.03);
		}

		.about-image .about-slider {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
		}

		.about-image .about-slide {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			object-fit: cover;
			object-position: center;
			opacity: 0;
			display: block;
			filter: grayscale(20%);
			transition: filter 0.6s ease;
			animation: aboutSlideshow 12s infinite ease-in-out;
			will-change: opacity, transform;
		}

		.about-image:hover .about-slide {
			filter: grayscale(0%);
		}

		/* Сдвиг анимации для 3-х картинок */
		.about-image .about-slide:nth-child(1) { animation-delay: 0s; }
		.about-image .about-slide:nth-child(2) { animation-delay: 4s; }
		.about-image .about-slide:nth-child(3) { animation-delay: 8s; }

		/* Плавное перетекание внахлест */
		@keyframes aboutSlideshow {
			0% {
				opacity: 0;
				transform: scale(1.01) translate3d(0, 0, 0);
			}
			10% {
				opacity: 1;
			}
			33.33% {
				opacity: 1;
			}
			43.33% {
				opacity: 0;
				transform: scale(1.05) translate3d(0, 0, 0);
			}
			100% {
				opacity: 0;
			}
		}
		
        .services { 
			background-color: var(--light-gray); 
			transition: var(--transition);
			padding-top: 80px;     /* Отступ сверху */
    		padding-bottom: 100px;  /* Отступ снизу */
		}
        .services-grid { 
			display: grid;
			/*grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));*/
			grid-template-columns: repeat(3, 1fr);
			padding-top: 10px;     /* Отступ сверху */
			gap: 30px; 
		}
        .service-card {
            background: var(--card-bg);
            padding: 40px;
            border-radius: 20px;
			box-shadow: 0 8px 15px rgba(50,50,50,0.48);
            border: 1px solid rgba(0,0,0,0.31);
			border-top: 3px solid transparent; /* Добавляет толщину полоски сверху при наведении */
			opacity: 0;
			transform: translateY(30px);
			transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
        }

		body.dark-mode .service-card {
			border: 1px solid rgba(255,255,255,0.4);
			border-top: 3px solid transparent;
            box-shadow: 0 8px 32px rgba(80,80,80,0.30);
        }

		/* Класс, который будет добавлять JavaScript */
		.service-card.show {
			opacity: 1;
			transform: translateY(0);
		}
        .service-card:hover { 
			transform: translateY(10px);
			border-top-color: var(--primary); /* Добавляет цвет полоски снизу при наведении */
			box-shadow: 0 15px 30px rgba(0,0,0,0.15); 
		}

		body.dark-mode .service-card:hover {
			border-top-color: var(--primary);
			box-shadow: 0 15px 30px rgba(255,255,255,0.13);
        }
		
        .service-card h3 { 
			margin-bottom: 15px; 
			color: var(--text);
			hyphens: auto; /* Автоматический перенос слов */
    		word-wrap: break-word;
		}

        /* Cases */

		#cases { 
			padding-top: 80px; 
		}

		.cases-grid {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 30px;
			margin-top: 20px;
			padding-bottom: 100px;
		}

		.case-item {
			position: relative;
			height: 400px;
			border-radius: 20px;
			overflow: hidden;
			cursor: pointer;
			box-shadow: 0 8px 32px rgba(50,50,50,0.48);
			transition: transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1);
			background: transparent;
		}

		.case-slider {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			overflow: hidden;
			z-index: 1;
		}

		.case-slide {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			object-fit: cover;
			object-position: center;
			opacity: 0;
			/* Изменили linear на ease-in-out для более мягкого проявления */
			
			animation: caseSlideshow 20s infinite linear;
		}

		/* Важно: даем первому слайду начальный z-index повыше, 
		   чтобы при старте страницы до начала анимации не было пустоты.
		*/
		.case-slide:nth-child(1) { animation-delay: 0s; z-index: 2; }
		.case-slide:nth-child(2) { animation-delay: 5s; }
		.case-slide:nth-child(3) { animation-delay: 10s; }
		.case-slide:nth-child(4) { animation-delay: 15s; }

		@keyframes caseSlideshow {
			0% {
				opacity: 0;
				/* Начинаем с исходного размера чуть раньше проявления */
				transform: scale(1); 
			}
			4% {
				opacity: 1;
				/* Картинка появилась, но продолжает плавно расти */
				transform: scale(1.015); 
			}
			25% {
				opacity: 1;
				/* К моменту начала растворения она заметно увеличилась */
				transform: scale(1.08); 
			}
			29% {
				opacity: 0;
				/* Заканчиваем анимацию на пике увеличения в момент полного скрытия */
				transform: scale(1.1); 
			}
			100% {
				opacity: 0;
			}
		}

		/* Hover эффекты */
		.case-item:hover {
			transform: scale(1.03);
		}

		.case-overlay {
			position: absolute;
			inset: 0;
			display: flex;
			flex-direction: column;
			justify-content: flex-end;
			padding: 30px;
			color: #fff;
			z-index: 2;
			background: linear-gradient(
				to top, 
				rgba(0,0,0,0.85) 0%, 
				rgba(0,0,0,0.6) 50%, 
				rgba(0,0,0,0.25) 100%
			);
			transition: background 0.5s ease;
		}

		.case-item:hover .case-overlay {
			background: linear-gradient(
				to top, 
				rgba(0,0,0,0.75) 0%, 
				rgba(0,0,0,0.4) 55%, 
				transparent 100%
			);
		}

		.case-overlay-content {
			min-height: 110px;
			display: flex;
			flex-direction: column;
			justify-content: flex-end;
		}

		.case-overlay h4 {
			margin: 0 0 10px 0;
			font-size: 1.5rem;
			color: var(--primary);
			text-transform: uppercase;
			letter-spacing: 1px;
			line-height: 1.2;
		}

		.case-overlay p {
			margin: 0;
			font-size: 0.95rem;
			line-height: 1.5;
			color: #ddd;
			transform: translateY(20px);
			opacity: 0;
			transition: all 0.5s ease 0.1s;
		}

		.case-item:hover .case-overlay p {
			transform: translateY(0);
			opacity: 1;
		}

        /* Contacts */
		
		/* Центрируем заголовок и полоску только в секции контактов */

		#contacts {
			background-color: var(--light-gray); 
		}

		#contacts .section-title {
			text-align: center;
		}

		#contacts .section-title::after {
			margin-left: auto;
			margin-right: auto;
		}
		
		.feedback-link {
			color: var(--primary);
			text-decoration: none;
			font-weight: 600;
			border-bottom: 2px dashed var(--primary); /* Пунктирная линия подчеркивает, что это действие */
			padding-bottom: 1px;
			transition: var(--transition);
			cursor: pointer;
		}

		.feedback-link:hover {
			border-bottom-style: solid; /* При наведении линия становится цельной */
			opacity: 0.8;
		}
		
		.contacts-grid {
			display: flex; 
			justify-content: center; 
			gap: 20px; 
			flex-wrap: wrap;
			margin-top: 60px;
			margin-bottom: 60px;
		}

		/* Общие настройки для всех кнопок контактов */
		.contact-btn {
			display: flex; 
			align-items: center; 
			gap: 12px; 
			padding: 16px 32px;
			text-decoration: none;
			border-radius: 50px; 
			font-weight: 700; /* Делаем текст увереннее */
			transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* Эффект "пружины" */
			box-shadow: 0 4px 15px rgba(0,0,0,0.1);
			border: 1px solid rgba(255,255,255,0.1);
		}

		.contact-btn:hover { 
			transform: translateY(-5px) scale(1.03); /* Выплывает выше и чуть увеличивается */
		}

		/* Telegram - Глубокий синий градиент */
		.contact-btn.tg { 
			background: linear-gradient(135deg, #2AABEE 0%, #229ED9 100%); 
			color: #fff; 
		}
		.contact-btn.tg:hover { 
			box-shadow: 0 12px 24px rgba(34, 158, 217, 0.3);
		}
		
		/* WhatsApp - Сочный зеленый */
		.contact-btn.wa { 
			background: linear-gradient(135deg, #25D366 0%, #128C7E 100%); 
			color: #fff; 
		}
		.contact-btn.wa:hover { 
			box-shadow: 0 12px 24px rgba(37, 211, 102, 0.3);
		}

		/* Почта в стиле Gmail (улучшенный овал) */
		.contact-btn.email-gmail {
			background: #ffffff;
			border: 1px solid #dcdcdc; 
			box-shadow: 0 4px 15px rgba(0,0,0,0.08);
		}

		.contact-btn.email-gmail:hover {
			background: #ffffff;
			/* Кнопка заметно приподнимается */
			border-color: #EA4335;
			/* Красное свечение тени */
			box-shadow: 0 12px 24px rgba(234, 67, 53, 0.15), 0 6px 6px rgba(0,0,0,0.05);
		}

		/* Делаем надпись чуть жирнее для баланса */
		.contact-btn.email-gmail span {
			font-weight: 700;
			letter-spacing: 0.2px;
		}

		/* Телефон - "зелененькая" кнопка */
		.contact-btn.call {
			background: linear-gradient(135deg, #F08787 0%, #EB5757  100%); 
			color: #fff;
		}
		.contact-btn.call:hover {
			box-shadow: 0 12px 24px rgba(243,18,18,0.30);
		}

		/* Иконки внутри кнопок */
		.contact-btn svg {
			flex-shrink: 0;
		}

        /* Footer */
        /* Обновленный футер */
		footer { 
			background: var(--footer-bg); 
			color: #64748B; 
			padding: 60px 0 60px; /* Немного увеличили отступы для "воздуха" */
			text-align: center; 
			transition: var(--transition); 
			border-top: 1px solid rgba(255,255,255,0.05); /* Тонкая линия разделения */
		}

		.footer-links { 
			margin-bottom: 30px; 
			display: flex; 
			justify-content: center; 
			gap: 40px; /* Больше пространства между ссылками */
		}

		.footer-links a { 
			color: #64748B; 
			text-decoration: none; 
			font-size: 0.9rem; 
			font-weight: 500;
			transition: all 0.3s ease;
			position: relative; /* Для эффекта подчеркивания */
		}

		.footer-links a:hover { 
			color: var(--primary);
			transform: translateY(-2px);
		}

		/* Элегантное подчеркивание при наведении */
		.footer-links a::after {
			content: '';
			position: absolute;
			width: 0;
			height: 1px;
			bottom: -5px;
			left: 0;
			background-color: var(--primary);
			transition: width 0.3s ease;
		}

		.footer-links a:hover::after {
			width: 100%;
		}

        /* Utilities */

		/* #scrollTop*/
        #scrollTop {
			position: fixed;
			bottom: 30px;
			right: 30px;
			width: 50px;
			height: 50px;
			background: var(--primary);
			color: #fff;
			border: none;
			border-radius: 50%;
			cursor: pointer;
			z-index: 1001;
			font-size: 20px;
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 0; /* Убираем лишние отступы, если они были */
			/* Скрываем кнопку по умолчанию через прозрачность */
			opacity: 0;
			visibility: hidden;
			transform: translateY(20px); /* Смещение вниз для эффекта выплывания */
			/* Плавность для всех изменений */
			transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
			box-shadow: 0 4px 15px rgba(0,0,0,0.2);
		}
		#scrollTop svg {
			transition: transform 0.3s ease; /* Для плавной анимации */
		}

		/* Состояние, когда кнопка видна (добавляется через JS) */
		#scrollTop.show {
			opacity: 1;
			visibility: visible;
			transform: translateY(0);
		}

		/* Эффект при наведении */
		#scrollTop:hover {
			transform: scale(1.15); /* Плавное увеличение на 15% */
			box-shadow: 0 6px 20px rgba(0,0,0,0.3);
		}

		#scrollTop:active {
			transform: scale(0.95); /* Небольшое сжатие при клике */
		}
		
        /* --- Стилизация Модального окна (Обсудить проект) --- */

		.modal {
			background: var(--bg);
			color: var(--text);
			max-width: 600px;
			width: 95%; /* Чтобы не прилипало к краям на мобилках */
			padding: 40px;
			border-radius: 20px; /* Чуть мягче скругление */
			position: relative;
			box-shadow: 0 20px 50px rgba(0,0,0,0.3);
			transition: var(--transition);
			transform: translateY(-30px);
    		opacity: 0;
			pointer-events: none;
		}
		
		.modal h2,
		.modal h3 {
			color: var(--text);
			font-size: 2rem;
			margin-bottom: 45px;
			font-weight: 700;
			text-align: left;
		}

		/* Стили формы внутри модалки */
		.modal-form {
			display: flex;
			flex-direction: column;
			gap: 15px; /* Управляет отступами между полями */
		}

		/* Стили полей ввода */
		.modal-form input, 
		.modal-form textarea {
			width: 100%;
			padding: 12px;
			border: 1px solid #ddd;
			border-radius: 20px;
			background: var(--card-bg); /* Поддерживает вашу темную тему! */
			color: var(--text);
			font-size: 1rem;
			transition: var(--transition);
		}

		/* Эффект при клике в поле (фокус) */
		.modal-form input:focus, 
		.modal-form textarea:focus {
			border-color: var(--primary);
			box-shadow: 0 0 0 3px rgba(18,57,243,0.10); /* Мягкое свечение */
		}

		/* Фиксированная высота для текстового поля */
		.modal-form textarea {
			height: 120px;
			resize: none; /* Запрещаем менять размер вручную */
		}
		
		/* Кнопка в модалке */
		.modal-form .btn-submit {
			position: relative; /* Чтобы волна была внутри */
    		overflow: hidden;    /* Чтобы волна не вылезала за края */
			width: 100%;
			background: var(--primary);
			color: #fff;
			padding: 18px;
			border: none;
			border-radius: 50px;
			font-size: 1.1rem;
			font-weight: 700;
			cursor: pointer;
			transition: var(--transition);
			margin-top: 10px;
		}

		.modal-form .btn-submit:hover {
			filter: brightness(1.1);
			transform: translateY(-2px);
			box-shadow: 0 5px 15px rgba(243, 156, 18, 0.3);
		}

		/* Кнопка закрытия (крестик) */
		.close-modal {
			position: absolute;
			top: 7.5px;
			right: 20px;
			font-size: 30px;
			color: var(--text);
			opacity: 0.5;
			cursor: pointer;
			transition: opacity 0.3s;
		}

		.close-modal:hover {
			opacity: 1;
		}
		
		.modal-overlay {
			position: fixed; top: 0; left: 0; width: 100%; height: 100%;
			background: rgba(0,0,0,0.85); 
			display: flex; 
			justify-content: center;
			align-items: center; z-index: 2000; padding: 20px;
			opacity: 0;
			visibility: hidden;
			transition: opacity 0.4s ease, visibility 0.4s ease;
		}

		.modal-overlay.active {
			opacity: 1;
			visibility: visible;
		}

		.modal-overlay.active .modal {
			opacity: 1;
			transform: translateY(0);
			pointer-events: auto;
		}

		/* --- ОКНО COOKIE (Плавающий вид) --- */
		.cookie-box-wrapper {
			position: fixed;
			bottom: -200px; /* Изначально спрятано внизу за экраном */
			right: 30px;    /* Аккуратный отступ от правого края */
			max-width: 360px;
			width: calc(100% - 40px); /* Чтобы не прилипало к краям на мобильных */
			background-color: var(--card-bg);
			border-radius: 20px; /* Трендовое глубокое скругление */
			z-index: 9999; /* Поверх абсолютно всего на сайте */
			transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.5s ease;
			opacity: 0;
			pointer-events: none; /* Пока скрыто — клики проходят насквозь */
			box-shadow: 0 8px 32px rgba(50,50,50,0.48);
            border: 1px solid rgba(0,0,0,0.31);
		}

		/* Состояние, когда скрипт добавляет класс .active */
		.cookie-box-wrapper.active {
			bottom: 30px; /* Всплывает на 30px от нижнего края */
			opacity: 1;
			pointer-events: auto; /* Включаем кликабельность */
		}

		/* Внутренний контейнер: текст сверху, кнопка снизу */
		.cookie-box-content {
			padding: 24px;
			display: flex;
			flex-direction: column;
			gap: 16px;
		}

		.cookie-box-content p {
			margin: 0;
			font-size: 0.9rem;
			line-height: 1.5;
			color: var(--text);
			opacity: 0.9;
		}

		/* Кнопка-капсула в стиле Beam Group */
		.btn-capsule {
			align-self: flex-end; /* Выравниваем кнопку по правому краю окошка */
			padding: 8px 28px !important;
			font-size: 0.85rem !important;
			font-weight: 600;
			border-radius: 50px !important; /* Делает кнопку идеальной капсулой */
			background-color: var(--primary) !important;
			color: #ffffff !important;
			border: none;
			cursor: pointer;
			transition: var(--transition);
		}

		.btn-capsule:hover {
			transform: translateY(-2px);
			box-shadow: 0 5px 15px rgba(0, 79, 183, 0.3);
		}

        /* ================= АДАПТИВНОСТЬ ================= */

		/* 1. Большие мониторы (от 1680px до 1980px) */
		@media (max-width: 1980px) {
			.container { max-width: 1680px; }
			.hero h1 { font-size: 4rem; }
		}
		
		/* 2. Большие мониторы (от 1366px до 1680px) */
		@media (max-width: 1680px) {
			.container { max-width: 1420px; }
			.hero h1 { font-size: 3.8rem; }
		}
		
		/* 3. Мониторы и ноутбуки (от 1280px до 1366px) */
		@media (max-width: 1366px) {
			.container { max-width: 1280px; }
			.about-grid { align-items: center; }
			.hero h1 { font-size: 3.4rem; }
		}

		/* 4. Стандартные ноутбуки (от 1024px до 1280px) */
		@media (max-width: 1280px) {
			.container { max-width: 1144px; }
			.about-grid { align-items: center; }
			.hero h1 { font-size: 3rem; }
		}

		/* 5. Планшеты и нетбуки (от 768px до 1024px) */
		@media (max-width: 1024px) {
			.case-overlay h4 { font-size: 1.3rem; }
    		.case-overlay-content { min-height: 130px; } /* Чуть больше места для переносов */
			.container { max-width: 960px; }
		}
		/* 6. Экраны 968px */
		@media (max-width: 968px) {
			.about-grid {
				grid-template-columns: 1fr;
				gap: 40px;
				padding: 60px 0;
			}
			.about-image {
				height: 320px; 
				max-width: 100%;
			}
		}

		/* 7. Портретные планшеты (до 768px) */
		/* "Бургер" для данного размера экрана */
		@media (max-width: 768px) {
			/* 1. Группируем кнопки управления */
			.nav-right { 
				display: flex !important;

				flex-direction: row !important;
				align-items: center !important;
				gap: 5px !important; /* Минимальный зазор между луной и бургером */
				margin-left: auto; 
			}

			/* 2. Настраиваем порядок: Луна (1), Бургер (2) */
			#theme-toggle { 
				order: 1 !important; 
				padding: 8px;
				margin: 0;
			}

			.burger-btn { 
				display: flex !important; 
				order: 2 !important; 
				margin: 0;
				padding: 8px;
			}

			/* 3. Мобильное меню (выезжающая панель) */
			.nav-links {
				position: fixed;
				top: 0;
				right: -100vw; 
				width: 100%;
				height: 100vh;
				background: var(--header-bg);
				backdrop-filter: blur(15px);
				flex-direction: column;
				justify-content: center;
				align-items: center;
				gap: 30px;
				transition: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
				z-index: 1050;
			}

			.nav-links.active {
				right: 0;
			}

			.nav-links a {
				font-size: 1.5rem;
			}
			
			.about-grid { grid-template-columns: 1fr; text-align: center; } /* Фото под текст */
			.services-grid { grid-template-columns: 1fr; } /* В одну колонку */
			.section-title { text-align: center; } /* Центрируем сам текст заголовка */
			.section-title::after { margin: 15px auto 0; } /* Центрируем полоску */
			.cases-grid { grid-template-columns: 1fr; }
			#modal-cookie .modal { flex-direction: column; text-align: center; padding: 20px; }
			
		}

		/* 8. Для мобильных устройств (до 600px) */
		@media (max-width: 600px) {
			.about-grid {
				gap: 30px; /* Уменьшаем разрыв между фото и текстом */
				padding: 40px 0;
			}

			.services-grid {
				grid-template-columns: 1fr; /* Строго одна колонка */
				gap: 20px;
			}

			.service-card {
				padding: 25px; /* Уменьшаем внутренние отступы, чтобы текст не был слишком узким */
			}

			.cases-grid {
				grid-template-columns: 1fr;
				gap: 20px;
			}
		}

		/* 9. Для самых маленьких экранов (до 480px) */
		@media (max-width: 480px) {
			.section-title {
				font-size: 1.8rem; /* Уменьшаем заголовки, чтобы они не переносились некрасиво */
			}

			.hero {
				margin: 125px 20px 15px 20px;
				height: calc(100vh - 95px);
				border-radius: 20px;
			}

			/* Уменьшаем заголовок Hero, чтобы он не занимал весь экран */
			.hero h1 {
				font-size: 2rem !important;
				padding: 0 15px;
			}
			
			/* Уменьшаем кнопки Hero, чтобы они встали в ряд или были компактнее */
			.hero .btn {
				padding: 12px 20px;
				font-size: 0.9rem;
			}

			.hero p {
				font-size: 1rem;
			}
			
			.modal {
				padding: 30px 20px;
			}
			.modal h2 {
				font-size: 1.5rem;
			}
			
			.case-item {
				height: 280px; /* Делаем карточки работ чуть компактнее */
			}

			/* Делаем кнопки контактов на весь экран для удобства нажатия пальцем */
			.contacts-grid {
				flex-direction: column;
			}

			.contact-btn {
				width: 100%;
				justify-content: center;
			}
			
			.cookie-box-wrapper {
				right: 20px;
				bottom: -200px;
			}
			.cookie-box-wrapper.active {
				bottom: 20px;
			}
			.cookie-box-content {
				padding: 20px;
			}
			.btn-capsule {
				width: 100%; /* На мобилках кнопка во всю ширину смотрится удобнее для пальца */
				text-align: center;
			}
			
			.about-grid {
				padding: 40px 0;
				gap: 30px;
			}

			/* На смартфонах делаем окно чуть компактнее, чтобы не занимало весь экран */
			.about-image {
				height: 250px;
			}
		}
		
		/* Визуальный акцент для «Проекта в работе», чтобы карточка, где еще нет реального фото, не смотрелась «пустой» или недоделанной */
		/*.case-item.case-2 {
			filter: grayscale(0.8);
			border: 1px dashed var(--primary);
			transition: all 0.5s ease;
		}

		.case-item.case-2:hover {
			filter: grayscale(0);
			border-style: solid;
		}

		.case-item.case-2 h4::after {
			content: ' (в процессе)';
			font-size: 0.7rem;
			vertical-align: middle;
			opacity: 0.7;
		}*/

		/* ==========================================================================
		   Секция локации и контактов
		   ========================================================================== */

		.location-section {
			padding: 100px 0;
			background-color: var(--bg);
			transition: var(--transition);
		}

		.location-grid {
			display: grid;
			grid-template-columns: 1fr 1.2fr;
			gap: 40px;
			align-items: stretch;
			margin-top: 20px;
		}

		/* Карточка информации */
		.location-info-card {
			background-color: var(--card-bg);
			padding: 40px;
			border-radius: 20px;
			box-shadow: 0 8px 32px rgba(50,50,50,0.48);
            border: 1px solid rgba(0,0,0,0.31);
			display: flex;
			flex-direction: column;
			justify-content: center;
			transition: var(--transition);
		}

		.location-info-card:hover{
			transform: translateY(-10px);
			box-shadow: 0 10px 40px rgba(0,0,0,0.2);
		}

		body.dark-mode .location-info-card {
			border: 1px solid rgba(255,255,255,0.4);
            box-shadow: 0 8px 32px rgba(80,80,80,0.30);
		}

		.location-info-card h3 {
			font-size: 1.6rem;
			color: var(--text);
			margin-bottom: 30px;
			font-weight: 700;
		}

		/* Строки с иконками */
		.info-item {
			display: flex;
			gap: 20px;
			align-items: flex-start;
			margin-bottom: 25px;
		}

		.info-item svg {
			color: var(--primary);
			flex-shrink: 0;
			margin-top: 3px;
		}

		.info-label {
			font-size: 0.85rem;
			text-transform: uppercase;
			letter-spacing: 1px;
			color: #888;
			margin-bottom: 4px;
			font-weight: 600;
		}

		.info-value {
			font-size: 1.1rem;
			color: var(--text);
			font-weight: 500;
			line-height: 1.4;
		}

		.info-subvalue {
			font-size: 0.95rem;
			color: #666;
			margin-top: 2px;
		}

		body.dark-mode .info-subvalue {
			color: #94A3B8;
		}

		/* Контейнер интерактивной карты */
		.map-wrapper {
			position: relative;
			border-radius: 20px;
			overflow: hidden;
			min-height: 450px;
			box-shadow: 0 8px 32px rgba(50,50,50,0.48);
            border: 1px solid rgba(0,0,0,0.31);
			transition: var(--transition);
		}

		.map-wrapper:hover {
			transform: translateY(-10px);
			box-shadow: 0 10px 40px rgba(0,0,0,0.2);
		}

		/*body.dark-mode .map-wrapper { /* Варинант 1
			border-color: rgba(255, 255, 255, 0.05);
			filter: grayscale(0.3) invert(0.9) hue-rotate(180deg) brightness(0.9);
		}*/

		body.dark-mode .map-wrapper { /* Варинант 2 */
			border: 1px solid rgba(255,255,255,0.4);
            box-shadow: 0 8px 32px rgba(80,80,80,0.30);
			filter: grayscale(0.4) brightness(0.8);
		}

		/* Модификация сетки кнопок внутри карточки */
		.location-info-card .contacts-grid {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 12px;
			margin-top: auto;
		}

		/* Прямоугольные кнопки */
		.location-info-card .contact-btn {
			padding: 12px 15px;
			font-size: 0.95rem;
			justify-content: center;
			border-radius: 50px;
			cursor: pointer;
		}

		/* ==========================================================================
		   Адаптивность для блока локации
		   ========================================================================== */

		@media (max-width: 968px) {
			.location-grid {
				grid-template-columns: 1fr;
			}

			.map-wrapper {
				min-height: 380px;
			}
		}

		@media (max-width: 480px) {
			.location-info-card {
				padding: 25px 20px;
			}

			.location-info-card .contacts-grid {
				grid-template-columns: 1fr;
			}
		}

		/* --- БЕГУЩАЯ СТРОКА ПАРТНЕРОВ (БЕСШОВНАЯ) --- */
		.about-partners {
			grid-column: 1 / -1; /* Расправляем блок на всю ширину сетки секции #about */
			margin-top: 50px;
			width: 100%;
			overflow: hidden;
		}

		/* Окошко-маска, скрывающее вылеты и мягко размывающее логотипы по краям экрана */
		.marquee-container {
			position: relative;
			width: 100%;
			overflow: hidden;
			padding: 25px 0;
			display: flex;
			mask-image: linear-gradient(to right, transparent, #000 15%, #000 85%, transparent);
			-webkit-mask-image: linear-gradient(to right, transparent, #000 15%, #000 85%, transparent);
		}

		/* Бегущая дорожка-лента */
		.marquee-track {
			display: flex;
			align-items: center;
			gap: 80px; /* Свободный премиальный зазор между логотипами */
			width: max-content;
			animation: marqueeRun 28s linear infinite; /* Время полного круга. Нужна скорость повыше? Сделай 20s */
		}

		/* Обертка каждого логотипа */
		.partner-logo {
			display: flex;
			align-items: center;
			justify-content: center;
			flex-shrink: 0;
			height: 40px; /* Фиксированная высота для идеального выравнивания в ряд */
		}

		.partner-logo img {
			height: 100%;
			width: auto;
			object-fit: contain;
			opacity: 0.55;
			filter: grayscale(1); /* Идеальный монохром, чтобы логотипы не пестрили */
			transition: transform 0.3s ease, opacity 0.3s ease, filter 0.3s ease; /* Добавили transform */
		}

		/* По умолчанию (в светлой теме) скрываем темные версии картинок */
		.partner-logo .dark-logo {
			display: none !important;
		}

		/* Ховер-эффект: при наведении конкретный логотип плавно оживает и увеличивается */
		.partner-logo img:hover {
			opacity: 1;
			filter: grayscale(0);
			transform: scale(1.2); /* Увеличиваем изображение на 10% */
		}

		/* Интеграция с темной темой */
		body.dark-mode .partner-logo img {
			filter: grayscale(1) brightness(2);
			opacity: 0.5;
		}

		/* Настройки для темной темы сайта */
		body.dark-mode .partner-logo .light-logo {
			display: none !important; /* Прячем дневной логотип с черным текстом */
		}		

		body.dark-mode .partner-logo img:hover {
			filter: grayscale(0) brightness(2.2);
			opacity: 1;
			transform: scale(1.2); /* То же увеличение для темной темы */
		}

		body.dark-mode .partner-logo .dark-logo {
			display: block !important; /* Показываем подготовленный в Фотошопе логотип */
			height: 100%;
			width: auto;
			object-fit: contain;
		}

		/* Умная пауза: если навести курсор на блок, лента мягко замрет, давая рассмотреть бренд */
		.marquee-container:hover .marquee-track {
			animation-play-state: paused;
		}

		/* Математика бесконечного цикла */
		@keyframes marqueeRun {
			0% {
				transform: translateX(0);
			}
			100% {
				transform: translateX(-50%); /* Сдвиг ровно на длину первой копии списка */
			}
		}