 :root {
 /* Основные цвета */
 --primary-color: #3498db;
 --secondary-color: #2c3e50;
 --text-color: #333;
 --bg-color: #fff;
 
 /* Шрифты */
 --font-main: 'Roboto', sans-serif;
 --font-heading: 'Montserrat', sans-serif;
 
 /* Отступы и радиусы */
 --spacing: 1.5rem;
 --radius: 0.3rem;
}

/* Общие стили */
*, *::before, *::after {
 box-sizing: border-box;
}

body {
 font-family: var(--font-main);
 color: var(--text-color);
 background-color: var(--bg-color);
 margin: 0;
 padding: 0;
}

.container {
 max-width: 1200px;
 margin: 0 auto;
 padding: 0 1.5rem;
}

/* Header styles */
.header {
 padding: 1rem 0;
}

.header__logo {
 display: block;
 margin: 0 auto;
}

/* Hero section */
.hero {
 padding: 5rem 0;
 position: relative;
}

.hero__title {
 font-family: var(--font-heading);
 font-size: 2.5rem;
 margin-bottom: 1rem;
}

.hero__subtitle {
 font-size: 1.2rem;
 margin-bottom: 2rem;
}

.hero__image {
 width: 100%;
 max-width: 800px;
 margin-top: 3rem;
}

/* Benefits section */
.benefits {
 padding: 4rem 0;
}

.benefits__list {
 display: grid;
 gap: 2rem;
 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.benefits__item {
 display: flex;
 flex-direction: column;
 align-items: center;
}

/* Reviews section */
.reviews {
 padding: 4rem 0;
}

.reviews__list {
 display: grid;
 gap: 2rem;
 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.reviews__item {
 background: var(--secondary-color);
 color: #fff;
 padding: 1.5rem;
 border-radius: var(--radius);
}

.reviews__item img {
 border-radius: 50%;
 margin-bottom: 1rem;
}

/* FAQ section */
.faq {
 padding: 4rem 0;
}

.faq__title {
 font-family: var(--font-heading);
 font-size: 2rem;
 margin-bottom: 2rem;
}

.faq__list {
 display: grid;
 gap: 2rem;
}

.faq__item {
 padding: 1.5rem;
 background: var(--secondary-color);
 color: #fff;
 border-radius: var(--radius);
 cursor: pointer;
}

.faq__item:not(:last-child) {
 margin-bottom: 1rem;
}

/* CTA section */
.cta {
 padding: 4rem 0;
 background: var(--primary-color);
 color: #fff;
}

.cta__title {
 font-family: var(--font-heading);
 font-size: 2rem;
 margin-bottom: 1rem;
}

.cta__text {
 font-size: 1.2rem;
 margin-bottom: 2rem;
}

/* Order section */
.order {
 padding: 4rem 0;
}

.order__title {
 font-family: var(--font-heading);
 font-size: 2rem;
 margin-bottom: 2rem;
}

.order__form {
 display: flex;
 flex-direction: column;
 gap: 1rem;
}

 .order__form input {
 padding: 1rem;
 border: 1px solid var(--secondary-color);
 border-radius: var(--radius);
 font-size: 1rem;
}

.order__form input:focus {
 outline: none;
 border-color: var(--primary-color);
}

/* Button styles */
.button {
 display: inline-block;
 padding: 1rem 2rem;
 font-size: 1.1rem;
 font-family: var(--font-heading);
 color: #fff;
 background: var(--primary-color);
 border: none;
 border-radius: var(--radius);
 cursor: pointer;
 transition: all 0.3s ease;
}

.button:hover {
 background: darken(var(--primary-color), 10%);
}

.button:focus {
 outline: none;
 box-shadow: 0 0 0 3px rgba(var(--primary-color), 0.5);
}

/* Footer styles */
.footer {
 padding: 2rem 0;
 background: var(--secondary-color);
 color: #fff;
}

.footer__logo {
 margin-bottom: 2rem;
}

.footer__contact,
.footer__copyright {
 font-size: 0.9rem;
 margin-bottom: 1rem;
}

/* Animations */
.fade-in {
 opacity: 0;
 transform: translateY(20px);
 animation: fadeIn 0.5s ease-out forwards;
}

@keyframes fadeIn {
 0% {
 opacity: 0;
 transform: translateY(20px);
 }
 100% {
 opacity: 1;
 transform: translateY(0);
 }
}

/* Media queries */
@media (min-width: 768px) {
 .hero {
 padding: 8rem 0;
 }

 .hero__title {
 font-size: 3rem;
 }

 .hero__subtitle {
 font-size: 1.5rem;
 }

 .container {
 padding: 0 2rem;
 }
}

@media (min-width: 1024px) {
 .container {
 padding: 0 4rem;
 }
}

/* Accessibility */
.visually-hidden {
 position: absolute;
 width: 1px;
 height: 1px;
 margin: -1px;
 padding: 0;
 border: 0;
 clip: rect(0 0 0 0);
 overflow: hidden;
}

/* Lazy loading */
.lazyload {
 opacity: 0;
 transition: opacity 0.3s;
}

.lazyloaded {
 opacity: 1;
}