:root { --primary: #E0E7FF; --secondary: #374151; --accent: #FCD34D; --background: #FFFFFF; --text-color: #1F2937; --text-on-accent: #ffffff; --light-bg: #f8f9fa; --font-primary: 'Poppins', sans-serif; --font-secondary: 'Roboto', sans-serif; } /* Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--font-secondary); background: var(--background); color: var(--text-color); line-height: 1.6; } .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-primary); margin-bottom: 1rem; color: var(--text-color); } /* Header & Navigation */ .main-header { background-color: var(--background); padding: 1rem 0; box-shadow: 0 2px 5px rgba(0,0,0,0.1); position: sticky; top: 0; z-index: 1000; } .header-container { display: flex; justify-content: space-between; align-items: center; } .logo { font-family: var(--font-primary); font-size: 1.8rem; font-weight: bold; color: var(--primary); } .main-nav ul { list-style: none; display: flex; gap: 1.5rem; } .main-nav a { text-decoration: none; color: var(--text-color); font-weight: 500; transition: color 0.3s ease; } .main-nav a:hover, .main-nav a.active { color: var(--accent); } /* --- Стили для выпадающего меню --- */ .main-nav li { position: relative; /* Необходимо для позиционирования подменю */ } .main-nav ul ul { display: block; /* Отображаем как блок, а не flex */ position: absolute; top: 100%; /* Позиционируем под родительским элементом */ left: 0; background-color: var(--background, #ffffff); /* Фон */ list-style: none; padding: 10px 0; /* Отступы внутри */ margin: 0; min-width: 200px; /* Минимальная ширина */ box-shadow: 0 4px 8px rgba(0,0,0,0.1); border-radius: 4px; z-index: 100; /* Скрываем по умолчанию */ visibility: hidden; opacity: 0; transition: visibility 0.2s ease, opacity 0.2s ease; } .main-nav ul li:hover > ul { /* Показываем при наведении на родительский li */ visibility: visible; opacity: 1; } .main-nav ul ul li { /* Сбрасываем gap, чтобы пункты шли друг под другом */ margin: 0; padding: 0; } .main-nav ul ul li a { display: block; /* Ссылки занимают всю ширину li */ padding: 8px 15px; /* Отступы для ссылок */ color: var(--text-color); white-space: nowrap; /* Запрещаем перенос текста */ transition: background-color 0.2s ease, color 0.2s ease; border-bottom: 1px solid #eee; /* Добавляем нижнюю границу-разделитель */ } /* Убираем границу у последнего элемента для аккуратности */ .main-nav ul ul li:last-child a { border-bottom: none; } .main-nav ul ul li a:hover { background-color: var(--primary); color: var(--text-on-accent, #ffffff); } /* --- Конец стилей для выпадающего меню --- */ /* Гамбургер кнопка */ .hamburger-btn { display: none; background: none; border: none; color: var(--text-color); font-size: 1.8rem; cursor: pointer; } /* Мобильное меню */ .mobile-nav { position: fixed; top: 0; right: -100%; width: 80%; max-width: 320px; height: 100vh; background-color: var(--background); box-shadow: -5px 0 15px rgba(0,0,0,0.2); z-index: 1001; transition: right 0.3s ease; padding: 2rem; } .mobile-nav.active { right: 0; } .mobile-nav .close-btn { position: absolute; top: 1rem; right: 1rem; background: none; border: none; font-size: 1.5rem; color: var(--text-color); cursor: pointer; } .mobile-nav ul { list-style: none; margin-top: 2rem; } .mobile-nav li { margin-bottom: 1rem; } .mobile-nav a { text-decoration: none; color: var(--text-color); font-size: 1.2rem; display: block; padding: 0.5rem 0; } .mobile-nav a:hover { color: var(--accent); } /* Медиа-запросы для адаптивности */ @media (max-width: 768px) { /* ИЗМЕНЕНИЕ: Используем .main-nav вместо .desktop-nav */ .main-nav { display: none; } .hamburger-btn { display: block; } } @media (min-width: 769px) { .mobile-nav { display: none; } } /* Кнопка "Наверх" */ .scroll-top-btn { display: none; position: fixed; bottom: 20px; right: 20px; z-index: 999; border: none; outline: none; background-color: var(--primary); color: white; cursor: pointer; padding: 10px 13px; border-radius: 50%; font-size: 1.2rem; box-shadow: 0 4px 8px rgba(0,0,0,0.2); transition: background-color 0.3s ease; } .scroll-top-btn:hover { background-color: var(--accent); } /* Buttons */ .btn-primary { display: inline-block; background: var(--accent); color: var(--text-on-accent); font-family: var(--font-primary); padding: 10px 25px; border-radius: 4px; text-decoration: none; transition: all 0.3s ease; font-weight: bold; border: none; cursor: pointer; } .btn-primary:hover { background: var(--primary); } /* Sections common styles */ section { padding: 4rem 0; scroll-margin-top: 80px; } .section-subtitle { text-align: center; margin-bottom: 3rem; color: var(--secondary); font-size: 1.1rem; } h2 { text-align: center; font-size: 2.5rem; margin-bottom: 1rem; } /* Hero Section */ .hero { background-size: cover; background-position: center; color: white; text-align: center; padding: 6rem 0; position: relative; display: flex; align-items: center; justify-content: center; min-height: 70vh; } .hero::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.2); } .hero .container { position: relative; z-index: 1; } .hero h1 { font-size: 3.5rem; margin-bottom: 1rem; color: wheat; text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; } .hero .subtitle { font-size: 1.4rem; margin-bottom: 2.5rem; max-width: 700px; margin-left: auto; margin-right: auto; } .cta-container { display: flex; justify-content: center; gap: 1rem; } /* Services Section */ .services { background-color: var(--light-bg); } .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 3rem; } .service-card { background: var(--background); color: var(--text-color); box-shadow: 0 4px 10px rgba(0,0,0,0.08); padding: 2rem 1.5rem; border-radius: 8px; transition: transform 0.3s ease, box-shadow 0.3s ease; text-align: center; } .service-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0,0,0,0.12); } .service-icon { font-size: 2.5rem; color: var(--primary); margin-bottom: 1rem; } .service-card h3 { font-size: 1.3rem; margin-bottom: 0.8rem; text-align: center; color: var(--text-color); } .services-image { margin-top: 3rem; text-align: center; } .services-image img { max-width: 100%; height: auto; border-radius: 8px; } /* About Section */ .about-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 3rem; align-items: center; margin-top: 3rem; } .about-image img { max-width: 100%; height: auto; border-radius: 8px; } /* Gallery Section */ .gallery { padding: 60px 0; background-color: #f8f9fa; } .gallery-grid { display: grid; grid-template-columns: repeat(1, 1fr); gap: 20px; margin-top: 30px; } @media (min-width: 576px) { .gallery-grid { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 768px) { .gallery-grid { grid-template-columns: repeat(3, 1fr); } } @media (min-width: 992px) { .gallery-grid { grid-template-columns: repeat(4, 1fr); } } .gallery-item { position: relative; overflow: hidden; border-radius: 5px; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease; } .gallery-item:not(.empty-item):hover { transform: translateY(-5px); } .gallery-item img { width: 100%; height: 250px; object-fit: cover; display: block; transition: transform 0.5s ease; } .gallery-item:not(.empty-item):hover img { transform: scale(1.05); } .gallery-item a { display: block; height: 100%; width: 100%; } .gallery-caption { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.7); color: white; padding: 10px; opacity: 0; transition: opacity 0.3s; } .gallery-item:hover .gallery-caption { opacity: 1; } /* Пустые элементы галереи для выравнивания сетки */ .gallery-item.empty-item { box-shadow: none; background: transparent; } /* Стили для GLightbox */ .glightbox-container { z-index: 10000; } .glightbox-clean .gslide-description { background: rgba(0, 0, 0, 0.7); } .glightbox-clean .gslide-title { color: white; font-weight: 600; font-size: 1.2em; } .glightbox-clean .gslide-desc { color: rgba(255, 255, 255, 0.9); font-size: 0.9em; } /* Улучшенные стрелки навигации */ .glightbox-clean .gclose, .glightbox-clean .gnext, .glightbox-clean .gprev { background-color: rgba(0, 0, 0, 0.4); border-radius: 50%; width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; transition: background-color 0.3s; } .glightbox-clean .gclose:hover, .glightbox-clean .gnext:hover, .glightbox-clean .gprev:hover { background-color: rgba(0, 0, 0, 0.7); } /* Индикатор загрузки */ .glightbox-mobile .goverlay, .gloader { background: rgba(0, 0, 0, 0.85); } /* Testimonials Section */ .testimonials { background-color: var(--light-bg); } .testimonials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .testimonial-card { background: var(--background); color: var(--text-color); border-radius: 8px; padding: 2rem; box-shadow: 0 4px 10px rgba(0,0,0,0.08); } .testimonial-text { font-style: italic; margin-bottom: 1.5rem; position: relative; color: var(--text-color); opacity: 0.8; } .testimonial-text::before { content: '\201C'; font-size: 4rem; position: absolute; left: -15px; top: -25px; opacity: 0.1; font-family: serif; color: var(--accent); } .testimonial-author { display: flex; align-items: center; border-top: 1px solid #eee; padding-top: 1rem; margin-top: 1rem; } .author-info h4 { margin-bottom: 0.1rem; color: var(--text-color); font-size: 1rem; } .position { font-size: 0.9rem; color: color-mix(in srgb, var(--background) 60%, white); opacity: 0.9; } /* Blog Section */ .blog { padding: 5rem 0; } .blog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .blog-card { background: var(--background); color: var(--text-color); border-radius: 8px; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.08); transition: transform 0.3s ease, box-shadow 0.3s ease; } .blog-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0,0,0,0.12); } .blog-image { height: 200px; overflow: hidden; } .blog-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; } .blog-card:hover .blog-image img { transform: scale(1.05); } .blog-content { padding: 1.5rem; } .blog-date { font-size: 0.8rem; color: var(--secondary); margin-bottom: 0.5rem; text-transform: uppercase; } .blog-card h3 { font-size: 1.2rem; margin-bottom: 0.8rem; color: var(--text-color); text-align: left; } .blog-card p { color: var(--text-color); opacity: 0.8; margin-bottom: 1rem; line-height: 1.6; } .blog-read-more { display: inline-block; color: var(--primary); font-weight: bold; text-decoration: none; position: relative; font-size: 0.9rem; } .blog-read-more::after { content: ' →'; transition: transform 0.3s ease; display: inline-block; } .blog-read-more:hover { color: var(--accent); } .blog-read-more:hover::after { transform: translateX(4px); } /* Contact Section */ .contact { background-color: var(--light-bg); } .contact-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 3rem; margin-top: 3rem; } .contact-details p { margin-bottom: 1rem; } .contact-form .form-group { margin-bottom: 1.5rem; } .contact-form label { display: block; margin-bottom: 0.5rem; font-weight: 500; } .contact-form input, .contact-form textarea { width: 100%; padding: 0.8rem 1rem; border: 1px solid #ccc; border-radius: 4px; font-family: var(--font-secondary); font-size: 1rem; } .contact-form textarea { min-height: 120px; } .contact-form button { width: 100%; } /* Menu Section */ .menu { padding: 5rem 0; } .menu-category { margin-bottom: 3rem; } .menu-category-title { text-align: left; margin-bottom: 1.5rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--primary); display: inline-block; } .menu-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .menu-item-card { background: var(--background); color: var(--text-color); border-radius: 8px; overflow: hidden; box-shadow: 0 4px 10px rgba(0,0,0,0.08); display: flex; flex-direction: column; } .menu-item-image { width: 100%; height: 200px; object-fit: cover; } .menu-item-content { padding: 1.5rem; flex-grow: 1; display: flex; flex-direction: column; } .menu-item-name { font-size: 1.25rem; color: var(--text-color); margin-bottom: 0.5rem; text-align: left; } .menu-item-description { color: var(--text-color); opacity: 0.8; margin-bottom: 1rem; flex-grow: 1; } .menu-item-price { font-weight: bold; color: var(--primary); font-size: 1.1rem; margin-top: auto; } /* Portfolio Section (similar to Gallery) */ .portfolio { padding: 5rem 0; } .portfolio h2 { text-align: center; } .portfolio-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.5rem; margin-top: 3rem; } .portfolio-item { position: relative; overflow: hidden; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); aspect-ratio: 4/3; transition: transform 0.3s ease; } .portfolio-item:hover { transform: scale(1.03); } .portfolio-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; } .portfolio-item:hover img { transform: scale(1.1); } /* Optional caption styles */ .portfolio-caption { position: absolute; bottom: 0; left: 0; width: 100%; background: rgba(0,0,0,0.7); color: white; padding: 0.5rem 1rem; font-size: 0.9rem; opacity: 0; transition: opacity 0.3s ease; } .portfolio-item:hover .portfolio-caption { opacity: 1; } /* Footer */ .main-footer { background-color: var(--primary); color: white; text-align: center; padding: 1.5rem 0; margin-top: 4rem; } .main-footer p { margin: 0; font-size: 0.9rem; } .main-footer a { color: white; text-decoration: underline; transition: opacity 0.3s; } .main-footer a:hover { opacity: 0.8; } /* Responsive */ @media (max-width: 992px) { h2 { font-size: 2.2rem; } .hero h1 { font-size: 3rem; } } @media (max-width: 768px) { .desktop-nav { display: none; } .hamburger-btn { display: block; } .mobile-nav { display: block; } .header-container { flex-direction: row; } .main-header .container { flex-direction: column; gap: 0.5rem; } .main-nav ul { gap: 1rem; flex-wrap: wrap; justify-content: center; } section { padding: 3rem 0; } h2 { font-size: 2rem; } .hero h1 { font-size: 2.5rem; } .hero .subtitle { font-size: 1.2rem; } .services-grid, .testimonials-grid, .blog-grid, .contact-info { grid-template-columns: 1fr; } .about-content { grid-template-columns: 1fr; text-align: center; } .about-image { order: -1; } .gallery-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } .menu-grid { grid-template-columns: 1fr; } .portfolio-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); } .reservation-form .form-row, .booking-form .form-row { grid-template-columns: 1fr; } .pricing-tables-grid, .memberships-grid, .team-grid, .catalog-grid { grid-template-columns: 1fr; } .schedule-table th, .schedule-table td { padding: 0.8rem 0.5rem; font-size: 0.9rem; } } /* Reservations Section */ .reservations { background-color: var(--light-bg); } .reservation-form { max-width: 700px; margin: 3rem auto 0; background: var(--background); color: var(--text-color); padding: 2rem; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .reservation-form .form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; } /* Specials & Promotions Section (using similar styles) */ .specials { /* padding: 5rem 0; */ } .specials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .special-card { background: var(--background); color: var(--text-color); border-radius: 8px; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.08); transition: transform 0.3s ease, box-shadow 0.3s ease; } .special-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0,0,0,0.12); } .special-image { width: 100%; height: 200px; object-fit: cover; } .special-content { padding: 1.5rem; } .special-content h3 { text-align: left; margin-bottom: 0.8rem; color: var(--text-color); } .special-description { color: var(--text-color); opacity: 0.8; margin-bottom: 1rem; } .special-price { font-weight: bold; color: var(--primary); font-size: 1.1rem; margin-bottom: 0.5rem; } .special-validity { font-size: 0.85rem; color: #888; } .promo-code { font-weight: bold; margin-bottom: 0.5rem; color: var(--secondary); } /* Pricing Section */ .pricing { background-color: var(--light-bg); } .pricing-tables-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .pricing-table { background: var(--background); color: var(--text-color); padding: 2rem; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .pricing-table-title { text-align: center; color: var(--primary); margin-bottom: 1.5rem; } .pricing-table ul, .pricing-list ul { list-style: none; padding: 0; margin: 0; } .pricing-table li, .pricing-list li { display: flex; justify-content: space-between; align-items: baseline; padding: 0.8rem 0; border-bottom: 1px dashed #eee; } .pricing-table li:last-child, .pricing-list li:last-child { border-bottom: none; } .pricing-item-name { flex-grow: 1; padding-right: 1rem; } .pricing-item-dots { flex-grow: 1; border-bottom: 1px dotted #ccc; position: relative; bottom: 4px; margin: 0 0.5rem; } .pricing-item-price { font-weight: bold; color: var(--primary); } .pricing-table-note { font-size: 0.9rem; color: #777; margin-top: 1.5rem; text-align: center; } /* Booking Section */ .booking { /* Styles similar to reservations if using form */ } .booking-widget { margin-top: 3rem; text-align: center; } .booking-widget iframe { border: 1px solid #ddd; border-radius: 8px; } .booking-link { text-align: center; margin-top: 3rem; } .booking-form { max-width: 700px; margin: 3rem auto 0; background: var(--background); color: var(--text-color); padding: 2rem; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .booking-form .form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; } /* Classes Section (Schedule Table) */ .classes { background-color: var(--light-bg); } .schedule-table-container { overflow-x: auto; margin-top: 3rem; } .schedule-table { width: 100%; border-collapse: collapse; background: var(--background); box-shadow: 0 5px 15px rgba(0,0,0,0.1); border-radius: 8px; overflow: hidden; } .schedule-table th, .schedule-table td { border: 1px solid #eee; padding: 1rem; text-align: center; min-width: 120px; } .schedule-table thead { background-color: var(--primary); color: white; } .schedule-table th { font-family: var(--font-primary); } .schedule-table tbody tr:nth-child(even) { background-color: #f9f9f9; } .schedule-table .instructor { font-size: 0.9rem; color: #777; display: block; margin-top: 0.3rem; } /* Memberships Section */ .memberships { /* padding: 5rem 0; */ } .memberships-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 3rem; align-items: stretch; } .membership-card { background: var(--background); color: var(--text-color); border-radius: 8px; padding: 2rem; box-shadow: 0 5px 15px rgba(0,0,0,0.1); text-align: center; display: flex; flex-direction: column; border: 2px solid transparent; transition: transform 0.3s ease, border-color 0.3s ease; position: relative; } .membership-card.featured { border-color: var(--accent); transform: scale(1.05); } .featured-badge { position: absolute; top: 10px; right: 10px; background: var(--accent); color: var(--text-on-accent); padding: 3px 8px; font-size: 0.8rem; border-radius: 4px; font-weight: bold; } .membership-card h3 { color: var(--primary); margin-bottom: 1rem; } .plan-price { font-size: 2rem; font-weight: bold; margin-bottom: 1.5rem; } .plan-features { list-style: none; padding: 0; margin-bottom: 2rem; text-align: left; flex-grow: 1; } .plan-features li { margin-bottom: 0.8rem; padding-left: 1.5rem; position: relative; } .plan-features li::before { content: '✓'; color: var(--accent); position: absolute; left: 0; font-weight: bold; } .membership-card .btn-primary { margin-top: auto; } /* Team Section */ .team { background-color: var(--light-bg); } .team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; margin-top: 3rem; } .team-member-card { background: var(--background); color: var(--text-color); border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); text-align: center; padding: 1.5rem; } .team-member-photo { width: 150px; height: 150px; border-radius: 50%; overflow: hidden; margin: 0 auto 1rem; border: 4px solid var(--accent); } .team-member-photo img { width: 100%; height: 100%; object-fit: cover; } .team-member-name { font-size: 1.3rem; margin-bottom: 0.3rem; } .team-member-position { color: var(--secondary); font-weight: 500; margin-bottom: 1rem; } .team-member-bio { font-size: 0.95rem; color: var(--text-color); opacity: 0.8; } /* FAQ Section */ .faq { /* padding: 5rem 0; */ } .faq-list { max-width: 800px; margin: 3rem auto 0; } .faq-item { border-bottom: 1px solid #eee; } .faq-item summary { padding: 1.5rem 0; font-weight: bold; cursor: pointer; list-style: none; position: relative; padding-right: 2rem; } .faq-item summary::after { content: '+'; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--primary); transition: transform 0.3s ease; } .faq-item[open] summary::after { transform: translateY(-50%) rotate(45deg); } .faq-answer { padding-bottom: 1.5rem; color: var(--text-color); line-height: 1.7; } /* Catalog Section */ .catalog { background-color: var(--light-bg); } .catalog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 2rem; margin-top: 3rem; } .catalog-item-card { background: var(--background); color: var(--text-color); border-radius: 8px; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.1); transition: box-shadow 0.3s ease; } .catalog-item-card:hover { box-shadow: 0 8px 25px rgba(0,0,0,0.15); } .catalog-item-link { text-decoration: none; color: inherit; display: flex; flex-direction: column; height: 100%; } .catalog-item-image-wrapper { height: 250px; overflow: hidden; background: #f8f8f8; } .catalog-item-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; } .catalog-item-card:hover .catalog-item-image { transform: scale(1.05); } .catalog-item-content { padding: 1.5rem; flex-grow: 1; display: flex; flex-direction: column; } .catalog-item-name { font-size: 1.2rem; margin-bottom: 0.5rem; text-align: left; color: var(--text-color); } .catalog-item-description { font-size: 0.95rem; color: var(--text-color); opacity: 0.8; margin-bottom: 1rem; flex-grow: 1; line-height: 1.5; } .catalog-item-price { font-weight: bold; color: var(--primary); font-size: 1.2rem; margin-bottom: 0.5rem; } .catalog-item-category { display: inline-block; background: var(--accent); color: var(--text-on-accent); padding: 0.3rem 0.8rem; border-radius: 4px; font-size: 0.85rem; margin-bottom: 0.8rem; } .catalog-item-features { list-style: none; padding: 0; margin: 0.5rem 0; font-size: 0.9rem; } .catalog-item-features li { color: var(--text-color); margin-bottom: 0.3rem; padding-left: 1.5rem; position: relative; } .catalog-item-features li::before { content: '•'; color: var(--accent); position: absolute; left: 0; } /* Key Features Section */ .key-features { background-color: #fff; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 3rem; } .feature-item { display: flex; align-items: flex-start; gap: 1.5rem; background: var(--light-bg); padding: 1.5rem; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); } .feature-icon { font-size: 2rem; color: var(--accent); flex-shrink: 0; } .feature-content h4 { font-size: 1.1rem; margin-bottom: 0.5rem; color: var(--primary); } .feature-content p { color: var(--text-color); opacity: 0.8; line-height: 1.6; margin: 0; } /* Стили для секций со светлым фоном */ .about-us, .services, .testimonials, .contact, .pricing, .classes, .team, .catalog, .key-features { background-color: var(--light-bg); color: var(--text-color); } /* Стили для карточек внутри секций */ .service-card, .testimonial-card, .blog-card, .special-card, .pricing-table, .membership-card, .team-member-card, .catalog-item-card, .faq-answer, .feature-content { background: var(--background); color: var(--text-color); } /* Стили для заголовков */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-primary); margin-bottom: 1rem; color: var(--text-color); } /* Стили для текста в карточках */ .catalog-item-name, .service-card h3, .testimonial-author h4, .blog-card h3, .special-content h3, .pricing-table-title, .membership-card h3, .team-member-name, .feature-content h4 { color: var(--text-color); } /* Стили для описаний */ .catalog-item-description, .service-card p, .testimonial-text, .blog-card p, .special-description, .team-member-bio, .feature-content p { color: var(--text-color); opacity: 0.8; } /* Стили для цен и акцентов */ .catalog-item-price, .menu-item-price, .special-price, .pricing-item-price { color: var(--primary); font-weight: bold; } /* Стили для категорий и бейджей */ .catalog-item-category, .featured-badge { background: var(--accent); color: var(--text-on-accent); } /* Стили для ссылок */ a { color: var(--primary); text-decoration: none; transition: color 0.3s ease; } a:hover { color: var(--accent); } /* Стили для кнопок */ .btn-primary { background: var(--accent); color: var(--text-on-accent); } .btn-primary:hover { background: var(--primary); } /* Styles for Process Section */ .process-section { padding: 60px 0; background-color: #ffffff; } .process-steps { display: flex; flex-wrap: wrap; justify-content: space-between; margin-top: 40px; gap: 30px; } .process-step { flex: 1 1 300px; margin-bottom: 30px; padding: 25px; background-color: #ffffff; border-radius: 10px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; } .process-step:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12); } .process-step-icon { width: 60px; height: 60px; line-height: 60px; text-align: center; background-color: #E0E7FF; color: white; border-radius: 50%; font-size: 24px; margin-bottom: 20px; display: flex; align-items: center; justify-content: center; } .process-step-number { width: 40px; height: 40px; line-height: 40px; text-align: center; background-color: #E0E7FF; color: white; border-radius: 50%; font-size: 20px; font-weight: bold; margin-bottom: 20px; display: flex; align-items: center; justify-content: center; } .process-step-title { font-size: 20px; font-weight: 600; margin-bottom: 15px; color: #333333; } .process-step-description { line-height: 1.6; margin-bottom: 20px; color: #1F2937; } .process-step-image-container { width: 100%; height: 150px; overflow: hidden; border-radius: 8px; margin-top: 15px; } .process-step-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .process-step:hover .process-step-image { transform: scale(1.05); } .process-overview-image { margin-top: 50px; text-align: center; border-radius: 8px; overflow: hidden; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); } .process-overview-image img { max-width: 100%; height: auto; display: block; margin: 0 auto; } .process-content { margin-top: 30px; line-height: 1.8; } .process-content h1, .process-content h2, .process-content h3, .process-content h4, .process-content h5, .process-content h6 { margin-bottom: 15px; color: #333333; } .process-content p { margin-bottom: 20px; } .process-content ul, .process-content ol { margin-bottom: 20px; padding-left: 20px; } .process-content li { margin-bottom: 10px; } /* --- Конец стилей для Process Section --- */ /* Стили для секции Партнеры/Клиенты */ .partners-section { background-color: var(--background); /* Обычно белый фон для логотипов */ padding: 4rem 0; } .partners-grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2.5rem; margin-top: 3rem; } .partner-item { flex: 0 0 auto; max-width: 180px; height: 100px; display: flex; align-items: center; justify-content: center; padding: 1rem; transition: transform 0.3s ease; } .partner-item:hover { transform: translateY(-5px); } .partner-logo { max-width: 100%; max-height: 100%; object-fit: contain; filter: grayscale(100%); opacity: 0.7; transition: filter 0.3s ease, opacity 0.3s ease; } .partner-item:hover .partner-logo { filter: grayscale(0%); opacity: 1; } .partner-name { font-weight: bold; color: var(--text-color); text-align: center; font-size: 1.1rem; opacity: 0.7; transition: opacity 0.3s ease; } .partner-item:hover .partner-name { opacity: 1; } .partner-link { display: block; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; } .partners-placeholder { text-align: center; margin: 3rem 0; font-style: italic; color: var(--text-color); opacity: 0.7; } @media (max-width: 768px) { .partners-grid { gap: 1.5rem; } .partner-item { max-width: 140px; height: 80px; } } /* --- Конец стилей для секции Партнеры --- */ /* Стили для секции Статистика/Цифры */ .stats-section { background-color: var(--primary); color: var(--text-on-accent); padding: 5rem 0; position: relative; } .stats-section::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: linear-gradient(rgba(0,0,0,0.1), rgba(0,0,0,0.1)); z-index: 1; } .stats-section .container { position: relative; z-index: 2; } .stats-section .section-title, .stats-section .section-subtitle { color: var(--text-on-accent); } .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 3rem; margin-top: 3rem; text-align: center; } .stat-item { display: flex; flex-direction: column; align-items: center; justify-content: center; } .stat-icon { font-size: 2.5rem; margin-bottom: 1rem; color: var(--accent); } .stat-value { font-family: var(--font-primary); font-size: 3rem; font-weight: bold; margin-bottom: 0.5rem; line-height: 1; color: var(--text-on-accent); } .stat-title { font-size: 1.2rem; font-weight: bold; margin-bottom: 0.5rem; color: var(--text-on-accent); } .stat-description { font-size: 0.95rem; opacity: 0.8; max-width: 250px; margin: 0 auto; } .stats-placeholder { text-align: center; margin: 3rem 0; font-style: italic; color: var(--text-on-accent); opacity: 0.8; } @media (max-width: 768px) { .stats-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 2rem; } .stat-value { font-size: 2.5rem; } .stat-title { font-size: 1rem; } } /* --- Конец стилей для секции Статистика --- */ /* Стили для секции Карта / Местоположение */ .map-section { background-color: var(--light-bg); padding: 4rem 0; } .map-container { margin-top: 3rem; display: grid; grid-template-columns: 2fr 1fr; gap: 2rem; } .map-frame { width: 100%; height: 450px; border-radius: 8px; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .map-frame iframe { width: 100%; height: 100%; display: block; } .map-placeholder { width: 100%; height: 450px; background-color: #f0f0f0; display: flex; align-items: center; justify-content: center; font-style: italic; color: #777; text-align: center; border-radius: 8px; } .location-info { background-color: var(--background); color: var(--text-color); padding: 2rem; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); display: flex; flex-direction: column; justify-content: center; } .address-block, .contact-block { margin-bottom: 2rem; } .address-block:last-child, .contact-block:last-child { margin-bottom: 0; } .location-info h3 { color: var(--primary); margin-bottom: 1rem; font-size: 1.3rem; } .location-info p { margin-bottom: 0.8rem; line-height: 1.6; color: var(--text-color); } .location-info a { color: var(--primary); text-decoration: none; transition: color 0.3s ease; } .location-info a:hover { color: var(--accent); } @media (max-width: 992px) { .map-container { grid-template-columns: 1fr; } .map-frame, .map-placeholder { height: 350px; } } @media (max-width: 768px) { .map-frame, .map-placeholder { height: 300px; } } /* --- Конец стилей для секции Карта --- */ /* Стили для секции Видео */ .video-section { background-color: var(--background); padding: 5rem 0; } .video-container { margin-top: 3rem; max-width: 900px; margin-left: auto; margin-right: auto; } .video-wrapper { position: relative; width: 100%; padding-bottom: 56.25%; /* Соотношение сторон 16:9 */ height: 0; overflow: hidden; border-radius: 8px; box-shadow: 0 5px 20px rgba(0,0,0,0.15); } .video-wrapper iframe, .video-wrapper video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 8px; } .video-description { margin-top: 2rem; text-align: center; font-size: 1.1rem; color: var(--text-color); line-height: 1.6; max-width: 700px; margin-left: auto; margin-right: auto; } .video-placeholder { margin-top: 3rem; width: 100%; height: 400px; background-color: #f0f0f0; display: flex; align-items: center; justify-content: center; font-style: italic; color: #777; text-align: center; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); } /* Дополнительные стили для кнопки проигрывания при использовании тумбнейла */ .video-thumbnail { position: relative; cursor: pointer; } .video-thumbnail img { width: 100%; height: auto; border-radius: 8px; display: block; } .play-button { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80px; height: 80px; background-color: rgba(0,0,0,0.7); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .play-button::after { content: ''; display: block; width: 0; height: 0; border-style: solid; border-width: 15px 0 15px 25px; border-color: transparent transparent transparent white; margin-left: 5px; } .video-thumbnail:hover .play-button { background-color: var(--accent); transform: translate(-50%, -50%) scale(1.1); } @media (max-width: 768px) { .video-description { font-size: 1rem; } .play-button { width: 60px; height: 60px; } .play-button::after { border-width: 10px 0 10px 20px; } } /* --- Конец стилей для секции Видео --- */ /* Стили для секции Призыв к действию (CTA) */ .cta-section { background-color: var(--accent); color: var(--text-on-accent); padding: 4rem 0; position: relative; } .cta-section::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: linear-gradient(45deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 100%); z-index: 1; } .cta-container { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 2rem; } .cta-content { flex: 1; } .cta-title { color: var(--text-on-accent); margin-bottom: 1rem; font-size: 2.2rem; text-align: left; } .cta-text { color: var(--text-on-accent); font-size: 1.1rem; opacity: 0.9; margin-bottom: 0; max-width: 700px; } .cta-button .btn-primary { background-color: var(--text-on-accent); color: var(--accent); font-size: 1.1rem; padding: 0.8rem 2rem; border: 2px solid var(--text-on-accent); transition: all 0.3s ease; } .cta-button .btn-primary:hover { background-color: transparent; color: var(--text-on-accent); } @media (max-width: 768px) { .cta-container { flex-direction: column; text-align: center; } .cta-title { text-align: center; font-size: 1.8rem; } .cta-text { text-align: center; } .cta-button { width: 100%; margin-top: 1rem; } .cta-button .btn-primary { display: block; width: 100%; } } /* --- Конец стилей для секции CTA --- */ /* Стили для секции История / Таймлайн */ .timeline-section { background-color: var(--background); color: var(--text-color); padding: 5rem 0; } .timeline-container { position: relative; max-width: 1000px; margin: 4rem auto 0; } .timeline-container::before { content: ''; position: absolute; width: 4px; background-color: var(--primary); top: 0; bottom: 0; left: 50%; transform: translateX(-50%); border-radius: 2px; } .timeline-item { padding: 10px 40px; position: relative; width: 50%; box-sizing: border-box; margin-bottom: 3rem; } .timeline-left { left: 0; } .timeline-right { left: 50%; } .timeline-item::after { content: ''; position: absolute; width: 20px; height: 20px; background-color: var(--accent); border: 4px solid var(--primary); top: 20px; border-radius: 50%; z-index: 1; } .timeline-left::after { right: -14px; } .timeline-right::after { left: -14px; } .timeline-content { background-color: var(--light-bg); padding: 1.5rem; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); position: relative; } .timeline-content::before { content: ''; position: absolute; border: 15px solid transparent; top: 16px; } .timeline-left .timeline-content::before { border-left-color: var(--light-bg); right: -30px; } .timeline-right .timeline-content::before { border-right-color: var(--light-bg); left: -30px; } .timeline-date { display: inline-block; background-color: var(--primary); color: var(--text-on-accent); padding: 0.3rem 1rem; border-radius: 20px; font-weight: bold; margin-bottom: 1rem; } .timeline-title { color: var(--primary); margin-bottom: 0.8rem; font-size: 1.3rem; } .timeline-description { margin-bottom: 1rem; line-height: 1.6; } .timeline-image { border-radius: 6px; overflow: hidden; margin-top: 1rem; } .timeline-image img { width: 100%; height: auto; display: block; } .timeline-placeholder { text-align: center; margin: 3rem 0; font-style: italic; color: var(--text-color); opacity: 0.7; } @media (max-width: 768px) { .timeline-container::before { left: 20px; } .timeline-item { width: 100%; padding-left: 50px; padding-right: 10px; left: 0; } .timeline-item::after { left: 11px; } .timeline-content::before { display: none; } } /* --- Конец стилей для секции Таймлайн --- */ /* Стили для секции Вакансии / Карьера */ .careers-section { background-color: var(--light-bg); color: var(--text-color); padding: 5rem 0; } .careers-intro { max-width: 800px; margin: 2rem auto; text-align: center; font-size: 1.1rem; line-height: 1.7; } .benefits-container, .jobs-container, .careers-contact { margin-top: 4rem; } .benefits-title, .jobs-title, .contact-title { text-align: center; margin-bottom: 2.5rem; color: var(--primary); } .benefits-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; } .benefit-item { background-color: var(--background); padding: 2rem; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); text-align: center; transition: transform 0.3s ease; } .benefit-item:hover { transform: translateY(-5px); } .benefit-icon { font-size: 2.5rem; color: var(--accent); margin-bottom: 1.5rem; } .benefit-title { font-size: 1.25rem; margin-bottom: 1rem; color: var(--primary); } .benefit-text { font-size: 0.95rem; line-height: 1.6; } .jobs-list { display: flex; flex-direction: column; gap: 2rem; } .job-card { background-color: var(--background); padding: 2rem; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); } .job-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(0,0,0,0.1); } .job-title { font-size: 1.4rem; color: var(--primary); margin-bottom: 0.5rem; } .job-meta { display: flex; gap: 1rem; font-size: 0.9rem; } .job-location, .job-type { background: var(--light-bg); padding: 0.3rem 1rem; border-radius: 20px; } .job-description { margin-bottom: 1.5rem; line-height: 1.6; } .requirements-title { font-size: 1.1rem; margin-bottom: 1rem; color: var(--primary); } .requirements-list { padding-left: 1.5rem; margin-bottom: 1.5rem; } .requirements-list li { margin-bottom: 0.5rem; } .job-apply { margin-top: 1.5rem; } .careers-contact { text-align: center; max-width: 700px; margin: 4rem auto 0; padding: 2rem; background-color: var(--background); border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); } .contact-text { margin-bottom: 1.5rem; line-height: 1.6; } .contact-email, .contact-phone { font-weight: bold; margin-bottom: 0.5rem; } .jobs-placeholder { text-align: center; padding: 3rem; background-color: var(--background); border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); font-style: italic; color: var(--text-color); opacity: 0.7; } @media (max-width: 768px) { .job-header { flex-direction: column; } .job-meta { margin-top: 0.5rem; } } /* --- Конец стилей для секции Вакансии --- */ /* Стили для секции Ресурсы / Загрузки */ .resources-section { background-color: var(--background); color: var(--text-color); padding: 5rem 0; } .resources-intro { max-width: 800px; margin: 2rem auto; text-align: center; font-size: 1.1rem; line-height: 1.7; } .resources-tabs { max-width: 800px; margin: 3rem auto 2rem; } .tabs-container { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; } .tab-btn { padding: 0.8rem 1.5rem; background-color: var(--light-bg); border: none; border-radius: 4px; font-family: var(--font-primary); font-size: 1rem; cursor: pointer; transition: all 0.3s ease; } .tab-btn.active { background-color: var(--primary); color: var(--text-on-accent); } .resources-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .resource-card { background-color: var(--light-bg); border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.08); display: flex; flex-direction: column; transition: transform 0.3s ease; } .resource-card:hover { transform: translateY(-5px); } .resource-icon { background-color: var(--primary); color: var(--text-on-accent); font-size: 2.5rem; height: 120px; display: flex; align-items: center; justify-content: center; } .resource-content { padding: 1.5rem; flex-grow: 1; } .resource-title { font-size: 1.2rem; margin-bottom: 0.8rem; color: var(--primary); } .resource-description { font-size: 0.95rem; margin-bottom: 1rem; line-height: 1.6; } .resource-size { font-size: 0.85rem; color: var(--text-color); opacity: 0.7; } .resource-action { padding: 0 1.5rem 1.5rem; } .btn-download { display: inline-block; background-color: var(--accent); color: var(--text-on-accent); padding: 0.5rem 1.5rem; border-radius: 4px; text-decoration: none; transition: background-color 0.3s ease; font-weight: bold; width: 100%; text-align: center; } .btn-download:hover { background-color: var(--primary); } .resources-placeholder { text-align: center; padding: 3rem; background-color: var(--light-bg); border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); font-style: italic; color: var(--text-color); opacity: 0.7; margin-top: 3rem; } /* JavaScript functionality for tabs */ .resource-card[data-category] { display: none; } .resource-card[data-category].show, .resource-card:not([data-category]) { display: flex; } @media (max-width: 768px) { .tab-btn { font-size: 0.9rem; padding: 0.6rem 1rem; } .resources-grid { grid-template-columns: 1fr; } } /* --- Конец стилей для секции Ресурсы --- */ /* Стили для секции Подписка на рассылку */ .newsletter-section { background-color: var(--light-bg); color: var(--text-color); padding: 5rem 0; } .newsletter-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 3rem; align-items: center; } .newsletter-title { font-size: 2.2rem; margin-bottom: 1.5rem; color: var(--primary); text-align: left; } .newsletter-text { font-size: 1.1rem; line-height: 1.7; margin-bottom: 1.5rem; } .newsletter-benefits { list-style: none; padding: 0; margin: 2rem 0; } .newsletter-benefits li { margin-bottom: 0.8rem; display: flex; align-items: flex-start; } .newsletter-benefits i { color: var(--accent); margin-right: 0.8rem; margin-top: 0.3rem; } .newsletter-form-container { background-color: var(--background); padding: 2.5rem; border-radius: 8px; box-shadow: 0 5px 20px rgba(0,0,0,0.1); } .newsletter-form .form-group { margin-bottom: 1.5rem; } .newsletter-form input { width: 100%; padding: 1rem; border: 1px solid rgba(0,0,0,0.1); border-radius: 4px; font-size: 1rem; transition: border-color 0.3s ease; } .newsletter-form input:focus { border-color: var(--primary); outline: none; } .newsletter-form .btn-primary { width: 100%; padding: 1rem; font-size: 1.1rem; } .privacy-notice { margin-top: 1.5rem; font-size: 0.85rem; color: var(--text-color); opacity: 0.7; text-align: center; } .visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } @media (max-width: 768px) { .newsletter-title { font-size: 1.8rem; text-align: center; } .newsletter-text, .newsletter-benefits { text-align: center; } .newsletter-benefits li { justify-content: center; } } /* --- Конец стилей для секции Подписка --- */ /* ========================================= Portfolio Section Styles ========================================= */ .portfolio-section { background-color: var(--background); /* Or choose a suitable background */ color: var(--text); } .portfolio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); /* Responsive grid */ gap: 1.5rem; /* Spacing between items */ margin-top: 2rem; } @media (min-width: 768px) { .portfolio-grid { grid-template-columns: repeat(4, 1fr); /* 4 columns on larger screens */ } } .portfolio-item-card { position: relative; overflow: hidden; /* Hides overflowing parts of the overlay */ border-radius: 8px; /* Optional: rounded corners */ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); /* Optional: subtle shadow */ transition: transform 0.3s ease, box-shadow 0.3s ease; } .portfolio-item-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); } .portfolio-item-link { display: block; text-decoration: none; color: inherit; /* Inherit text color */ } .portfolio-item-image-wrapper { position: relative; width: 100%; padding-bottom: 75%; /* Aspect ratio 4:3. Adjust as needed */ background-color: #f0f0f0; /* Placeholder background */ } .portfolio-item-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; /* Cover the area without distortion */ transition: transform 0.4s ease; } .portfolio-item-card:hover .portfolio-item-image { transform: scale(1.05); /* Slight zoom on hover */ } .portfolio-item-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 100%); /* Gradient overlay */ color: #fff; padding: 1.5rem 1rem 1rem; /* Padding for text */ opacity: 0; transform: translateY(20px); transition: opacity 0.4s ease, transform 0.4s ease; text-align: left; } .portfolio-item-card:hover .portfolio-item-overlay { opacity: 1; transform: translateY(0); } .portfolio-item-title { margin: 0 0 0.5rem 0; font-size: 1.1rem; font-weight: bold; color: #fff; } .portfolio-item-description { font-size: 0.9rem; color: rgba(255, 255, 255, 0.85); line-height: 1.4; max-height: 4.2em; /* Limit description height (approx 3 lines) */ overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; } /* Ensure Lightbox description uses the one from data attribute */ .glightbox-container .gdesc { padding: 1rem; } /* --- Стили для секции 'О нас' (About Us) --- */ .about-us .about-content { display: flex; flex-wrap: wrap; /* Позволяет переносить на новую строку на маленьких экранах */ align-items: center; gap: 2rem; margin-top: 2rem; } .about-us .about-text, .about-us .about-image { flex: 1 1 45%; /* Позволяет элементам расти и сжиматься, базовая ширина 45% */ min-width: 280px; /* Минимальная ширина для адаптивности */ } .about-us .about-image img { max-width: 100%; height: auto; display: block; border-radius: var(--border-radius-medium); } /* Порядок для Изображение + Текст */ .about-image-text .about-text { order: 1; /* Текст будет справа */ } /* Текст на всю ширину для Текст-Только */ .about-text-only .about-content { display: block; /* Отменяем flex для этого варианта */ } .about-text-only .about-text { flex-basis: 100%; /* Занимает всю доступную ширину */ max-width: 100%; } /* Адаптация для маленьких экранов (для всех вариантов с flex) */ @media (max-width: 768px) { .about-us .about-content { flex-direction: column; /* Элементы друг под другом */ } .about-image-text .about-text { order: 0; /* Возвращаем стандартный порядок на мобильных */ } } /* Стили для плейсхолдеров портфолио */ .portfolio-item-placeholder { border-radius: 8px; background-color: var(--light-bg); border: 1px dashed var(--primary); height: 250px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 2rem; } .placeholder-content { max-width: 100%; } .portfolio-empty-message { text-align: center; margin: 3rem 0; font-size: 1.1rem; color: var(--text-color); opacity: 0.8; } /* Стили для выпадающего меню */ .main-nav .has-dropdown { position: relative; } .main-nav .dropdown-toggle { display: flex; align-items: center; gap: 5px; } .main-nav .dropdown-toggle i { font-size: 0.8em; transition: transform 0.3s ease; margin-left: 5px; opacity: 0.7; } .main-nav .has-dropdown:hover .dropdown-toggle i { transform: rotate(180deg); } .main-nav .dropdown-menu { position: absolute; top: 100%; left: 0; min-width: 220px; background-color: var(--background); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease; z-index: 100; padding: 10px 0; border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.08); } .main-nav .has-dropdown:hover .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); } .main-nav .dropdown-menu li { padding: 0; margin: 0; display: block; width: 100%; } .main-nav .dropdown-menu a { padding: 10px 20px; display: block; color: var(--text-color); transition: background-color 0.3s ease, color 0.3s ease; font-size: 0.95rem; text-decoration: none; } .main-nav .dropdown-menu a:hover { background-color: rgba(0, 0, 0, 0.03); color: var(--accent); } /* Стили для мобильного выпадающего меню */ .mobile-nav .has-dropdown { position: relative; } .mobile-nav .dropdown-toggle { display: flex; justify-content: space-between; align-items: center; width: 100%; } .mobile-nav .dropdown-menu { display: none; background-color: rgba(0, 0, 0, 0.03); padding: 0; margin-top: 10px; border-left: 2px solid var(--accent); } .mobile-nav .has-dropdown.active .dropdown-menu { display: block; } .mobile-nav .dropdown-menu li a { padding-left: 30px; font-size: 1.1rem; } /* Медиа запросы для выпадающего меню */ @media (max-width: 991px) { .main-nav .dropdown-menu { position: static; opacity: 1; visibility: visible; transform: none; display: none; box-shadow: none; border: none; background-color: rgba(0, 0, 0, 0.03); padding: 0; } .main-nav .has-dropdown.active .dropdown-menu { display: block; } .main-nav .dropdown-toggle { width: 100%; justify-content: space-between; } .main-nav .has-dropdown .dropdown-toggle i { transition: transform 0.3s ease; } .main-nav .has-dropdown.active .dropdown-toggle i { transform: rotate(180deg); } } /* Выпадающее меню */ .main-nav .has-dropdown { position: relative; } .main-nav .dropdown-toggle { padding-right: 1.5rem; position: relative; } .main-nav .dropdown-toggle i { font-size: 0.8rem; position: absolute; right: 0; top: 50%; transform: translateY(-50%); transition: transform var(--transition-speed); } .main-nav .has-dropdown:hover .dropdown-toggle i { transform: translateY(-50%) rotate(180deg); } .main-nav .dropdown-menu { position: absolute; top: 100%; left: 0; background-color: var(--bg-darker); min-width: 200px; padding: 0.5rem 0; border: 1px solid var(--primary-color); box-shadow: var(--box-shadow), 0 0 10px var(--primary-color); visibility: hidden; opacity: 0; transform: translateY(10px); transition: all var(--transition-speed); z-index: 100; border-radius: var(--border-radius); } .main-nav .has-dropdown:hover .dropdown-menu { visibility: visible; opacity: 1; transform: translateY(0); } .main-nav .dropdown-menu li { padding: 0; margin: 0; } .main-nav .dropdown-menu a { display: block; padding: 0.5rem 1rem; color: var(--text-light); font-size: 0.9rem; transition: all var(--transition-speed); } .main-nav .dropdown-menu a:hover { background-color: rgba(255, 255, 255, 0.1); padding-left: 1.5rem; color: var(--primary-color); } @media (max-width: 991px) { .main-nav .has-dropdown { display: none; /* Скрываем выпадающие меню на мобильных, оставляем только мобильное меню */ } }