diff --git a/index.html b/index.html new file mode 100644 index 0000000..57c594d --- /dev/null +++ b/index.html @@ -0,0 +1,443 @@ + + + + + +Formula For You Kazakhstan — Премиум косметика + + + + + + + + + + + +
+
+
+
+

Formula For You

+

Мінсіз терінің формуласы

+

Премиум косметика — табиғи сұлулықты ашу үшін. Ғылыми тәсіл, табиғи компоненттер және көрінетін нәтиже.

+ +
+
+ +
+
+

Біз туралы

+

Formula For You Kazakhstan — премиум косметика брендінің ресми өкілі. Біз жоғары сапалы бет және дене күтімі өнімдерін ұсынамыз.

+
+
+
🌿
+

Табиғи компоненттер

+

Нәзік күтім үшін тек сенімді табиғи ингредиенттер

+
+
+
🔬
+

Ғылыми тәсіл

+

Дерматологтар әзірлеген, косметология жетістіктері

+
+
+
✨
+
Көрінетін нәтиже
+

Алғашқы өзгерістер бірнеше қолданудан кейін байқалады

+
+
+
🚚
+

Қазақстан бойынша жеткізу

+

Елдің кез келген қаласына жылдам және мұқият жеткізу

+
+
+
+
+ +
+
+

Өнім каталогы

+
+ + + + + +
+
+
+
+ +
+
+

Неге бізді таңдайды

+
+
+
01
+

Премиум сапа

+

Халықаралық стандарттарға сәйкес сертификатталған өнім

+
+
+
02
+

Түпнұсқа өнім

+

Әр тауардың түпнұсқалығына кепілдік. Өндірушімен тікелей жұмыс

+
+
+
03
+

Жылдам жеткізу

+

Тапсырысты сол күні жіберу. Алматы бойынша 1-2 күн, Қазақстан бойынша 3-7 күн

+
+
+
04
+

Қайтару кепілдігі

+

Тауар сәйкес келмесе, ақшаны қайтарамыз

+
+
+
05
+

Ыңғайлы тапсырыс

+

Сайт, Instagram немесе WhatsApp арқылы тапсырыс беріңіз

+
+
+
06
+

Клиенттерге қолдау

+

Жеке менеджер өнімді таңдауға және сұрақтарға жауап беруге көмектеседі

+
+
+
+
+ +
+
+

Біз Instagram-да

+

Жаңа өнімдер, акциялар және тері күтімі бойынша пайдалы кеңестер үшін Instagram-ға жазылыңыз.

+
+
Instagram post
+
Instagram post
+
Instagram post
+
Instagram post
+
Instagram post
+
Instagram post
+
+ + +Instagram-ға жазылу + +
+
+ +
+
+

Клиенттердің пікірлері

+
+
+
+ + +
+
+
+
+ +
+
+

Жеткізу және төлем

+
+
+

📍 Алматы бойынша жеткізу

+
    +
  • Курьермен есікке дейін — 1 500 ₸
  • +
  • Өзіңіз алу пунктінен — тегін
  • +
  • Жеткізу мерзімі — 1-2 жұмыс күні
  • +
  • Экспресс жеткізу 3 сағат — 3 000 ₸
  • +
+
+
+

🚚 Қазақстан бойынша

+
    +
  • Қазпошта — 1 200 ₸
  • +
  • CDEK — 1 500 ₸-тен
  • +
  • Жеткізу мерзімі — 3-7 жұмыс күні
  • +
  • 50 000 ₸ тапсырыстан тегін
  • +
+
+
+

💳 Төлем тәсілдері

+
    +
  • Алған кезде қолма-қол
  • +
  • Онлайн картамен
  • +
  • Картаға аудару
  • +
  • Бөліп төлеу 0-0-12 (Алматы)
  • +
+
+
+
+
+ +
+
+

Жиі қойылатын сұрақтар

+
+
+ +
+

Сайт арқылы тауарларды себетке қосып, тапсырыс ресімдеңіз. Instagram немесе WhatsApp арқылы да жазуға болады — менеджер көмектеседі.

+
+
+
+ +
+

Біз қолма-қол, онлайн картамен, картаға аудару арқылы төлем қабылдаймыз. Алматы тұрғындарына 0-0-12 бөліп төлеу қолжетімді.

+
+
+
+ +
+

Иә, біз Қазпошта және CDEK арқылы бүкіл Қазақстанға жеткіземіз. Жеткізу құны қалаға және салмаққа байланысты. 50 000 ₸ тапсырыстан тегін.

+
+
+
+ +
+

Алматы бойынша 1-2 жұмыс күні (экспресс 3 сағат). Қазақстан бойынша 3-7 жұмыс күні.

+
+
+
+ +
+

Әрине! @formulaforyou.kaz Instagram немесе WhatsApp жазыңыз — менеджер өнімді таңдауға және тапсырыс ресімдеуге көмектеседі.

+
+
+
+ +
+

WhatsApp жазу, телефон соғу немесе Instagram жазу арқылы байланысуға болады. Жұмыс күні бойы жауап береміз.

+
+
+
+
+
+ +
+
+

Байланыс

+
+
+
+
📱
+
+

Телефон

+

+7 (777) 123-45-67

+
+
+
+
💬
+
+

WhatsApp

+

WhatsApp жазу

+
+
+
+
📷
+
+

Instagram

+

@formulaforyou.kaz

+
+
+
+
📍
+
+

Мекенжай

+

Алматы қ., Абай даңғылы 10

+
+
+
+
🕐
+
+

Жұмыс кестесі

+

Дс-Жм: 9:00 - 18:00
Сн-Жс: 10:00 - 16:00

+
+
+
+
+ +
+
+ +
+
+
+ + + + + + + + + + + +
+ + + + diff --git a/script.js b/script.js new file mode 100644 index 0000000..554e41f --- /dev/null +++ b/script.js @@ -0,0 +1,371 @@ +const PRODUCTS = [ +{id: 1, title: "Ылғалдандырғыш бет кремі", category: "face", price: 18900, image: "https://picsum.photos/seed/ffup1/600/600", badge: "Хит", description: "Барлық тері түрлеріне арналған қарқынды ылғалдандыру. Гиалурон қышқылы мен табиғи майлар.", specs: {"Көлемі": "50 мл", "Тері түрі": "Барлығы", "Әсері": "Ылғалдандыру"}}, +{id: 2, title: "С C дәрумені сарысуы", category: "face", price: 24500, image: "https://picsum.photos/seed/ffup2/600/600", badge: "Жаңа", description: "Пигментацияны ағартады, тері түсін тегістейді, коллаген өндірісін ынталандырады.", specs: {"Көлемі": "30 мл", "Тері түрі": "Барлығы", "Әсері": "Ағарту"}}, +{id: 3, title: "Тазартушы гель", category: "care", price: 12900, image: "https://picsum.photos/seed/ffup3/600/600", description: "Қорғаныс кедергісін бұзбай нәзік тазартады. Күнделікті қолдануға жарамды.", specs: {"Көлемі": "200 мл", "Тері түрі": "Майлы, аралас", "Әсері": "Тазарту"}}, +{id: 4, title: "Түнгі қалпына келтіруші крем", category: "face", price: 21900, image: "https://picsum.photos/seed/ffup4/600/600", description: "Ұйқы кезінде жұмыс істейді, теріні қалпына келтіреді және қартаю белгілерін азайтады.", specs: {"Көлемі": "50 мл", "Тері түрі": "Құрғақ, қалыпты", "Әсері": "Қалпына келтіру"}}, +{id: 5, title: "Дене сүті", category: "body", price: 16500, image: "https://picsum.photos/seed/ffup5/600/600", description: "Бүкіл денеге нәзік ылғалдандыру. Жабыспай тез сіңеді.", specs: {"Көлемі": "250 мл", "Тері түрі": "Барлығы", "Әсері": "Ылғалдандыру"}}, +{id: 6, title: "Дене скрабы", category: "body", price: 14900, image: "https://picsum.photos/seed/ffup6/600/600", description: "Нәзік эксфолиация, теріні жұмсақ әрі тегіс етеді. Тропиктік жеміс хош иісі.", specs: {"Көлемі": "200 мл", "Тері түрі": "Барлығы", "Әсері": "Эксфолиация"}}, +{id: 7, title: "Бет тонигі", category: "care", price: 11900, image: "https://picsum.photos/seed/ffup7/600/600", description: "Тазартудан кейін терінің pH-ын теңестіреді, крем жағуға дайындайды.", specs: {"Көлемі": "200 мл", "Тері түрі": "Барлығы", "Әсері": "Тонус"}}, +{id: 8, title: "Қол кремі", category: "body", price: 8900, image: "https://picsum.photos/seed/ffup8/600/600", description: "Құрғақ қол терісіне арналған қарқынды қорек. Тез сіңеді.", specs: {"Көлемі": "75 мл", "Тері түрі": "Құрғақ", "Әсері": "Қорек"}}, +{id: 9, title: "'Базалық күтім' жиынтығы", category: "sets", price: 45900, image: "https://picsum.photos/seed/ffup9/600/600", badge: "15% үнемдеу", description: "Жиынтықта: тазартушы гель, тоник, ылғалдандырғыш крем. Күнделікті күтімге қажеттінің бәрі.", specs: {"Құрамы": "3 өнім", "Тері түрі": "Барлығы", "Үнемдеу": "15%"}}, +{id: 10, title: "Бет маскасы", category: "care", price: 9900, image: "https://picsum.photos/seed/ffup10/600/600", description: "Қарқынды қорек және ылғалдандыру. Аптасына 2-3 рет 15 минут жағу.", specs: {"Көлемі": "75 мл", "Тері түрі": "Барлығы", "Әсері": "Қорек"}}, +{id: 11, title: "Көз айналасына крем", category: "face", price: 19900, image: "https://picsum.photos/seed/ffup11/600/600", description: "Қара шеңберлер мен ісінуді азайтады. Нәзік аймаққа арналған формула.", specs: {"Көлемі": "15 мл", "Тері түрі": "Барлығы", "Әсері": "Жасарту"}}, +{id: 12, title: "'Тері жылтыры' жиынтығы", category: "sets", price: 52900, image: "https://picsum.photos/seed/ffup12/600/600", badge: "Премиум", description: "Жиынтықта: С дәрумені сарысуы, түнгі крем, маска. Жылтыр реңк үшін.", specs: {"Құрамы": "3 өнім", "Тері түрі": "Барлығы", "Әсері": "Жылтыр"}} +]; + +const REVIEWS = [ +{name: "Алия К.", avatar: "https://picsum.photos/seed/r1/100/100", rating: 5, text: "Ылғалдандырғыш кремді тапсырыс бердім — бірінші қолданудан ғашықпын! Тері жұмсақ, ылғалды болды. Тағы тапсырыс беремін."}, +{name: "Мария В.", avatar: "https://picsum.photos/seed/r2/100/100", rating: 5, text: "Formula For You өнімдерін жарты жыл қолданамын. Сапасы жоғары, терім өзгерді. Жеткізу жылдам, қаптама әдемі."}, +{name: "Елена С.", avatar: "https://picsum.photos/seed/r3/100/100", rating: 5, text: "С дәрумені сарысуы ғажайып! Пигментация айтарлықтай ағарды. Барлық құрбыларға ұсынамын."}, +{name: "Динара Т.", avatar: "https://picsum.photos/seed/r4/100/100", rating: 5, text: "'Базалық күтім' жиынтығын алдым — бәрін бірден сынап көруге тамаша мүмкіндік. Бәрі сәйкес келді, тері риза!"} +]; + +let cart = JSON.parse(localStorage.getItem('ffu_cart')) || []; +let currentFilter = 'all'; +let currentSlide = 0; + +document.addEventListener('DOMContentLoaded', () => { +initHeader(); +renderCatalog(); +renderReviews(); +initFilters(); +initModals(); +initFAQ(); +initScrollAnimations(); +updateCartCount(); +initPhoneValidation(); +}); + +function initHeader() { +const header = document.getElementById('header'); +const burgerBtn = document.getElementById('burgerBtn'); +const nav = document.getElementById('nav'); +window.addEventListener('scroll', () => { +if (window.scrollY > 50) header.classList.add('scrolled'); +else header.classList.remove('scrolled'); +}); +burgerBtn.addEventListener('click', () => { +burgerBtn.classList.toggle('active'); +nav.classList.toggle('active'); +}); +document.querySelectorAll('.nav__link').forEach(link => { +link.addEventListener('click', () => { +burgerBtn.classList.remove('active'); +nav.classList.remove('active'); +}); +}); +document.getElementById('headerOrderBtn').addEventListener('click', () => { +document.getElementById('catalog').scrollIntoView({ behavior: 'smooth' }); +}); +} + +function renderCatalog(filter = 'all') { +const grid = document.getElementById('catalogGrid'); +const filtered = filter === 'all' ? PRODUCTS : PRODUCTS.filter(p => p.category === filter); +grid.innerHTML = filtered.map(product => ` +
+
+${product.title} +${product.badge ? `${product.badge}` : ''} +
+
+${getCategoryName(product.category)} +

${product.title}

+

${product.description}

+ +
+
+`).join(''); +} + +function getCategoryName(cat) { +const names = {face: 'Бет', body: 'Дене', care: 'Күтім', sets: 'Жиынтықтар'}; +return names[cat] || cat; +} + +function formatPrice(price) { +return price.toLocaleString('ru-RU') + ' ₸'; +} + +function initFilters() { +document.querySelectorAll('.filter-btn').forEach(btn => { +btn.addEventListener('click', () => { +document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active')); +btn.classList.add('active'); +currentFilter = btn.dataset.filter; +renderCatalog(currentFilter); +}); +}); +} + +function openProductModal(id) { +const product = PRODUCTS.find(p => p.id === id); +if (!product) return; +const modalBody = document.getElementById('modalBody'); +modalBody.innerHTML = ` +
+
${product.title}
+
+

${product.title}

+

${formatPrice(product.price)}

+

${product.description}

+
+

Сипаттамасы

+
    +${Object.entries(product.specs).map(([key, value]) => `
  • ${key}${value}
  • `).join('')} +
+
+
+ +1 + +
+ +
+
+`; +openModal('productModal'); +} + +function changeQuantity(delta) { +const el = document.getElementById('modalQuantity'); +let val = parseInt(el.textContent) + delta; +if (val < 1) val = 1; +el.textContent = val; +} + +function addToCartFromModal(id) { +const qty = parseInt(document.getElementById('modalQuantity').textContent); +addToCart(id, qty); +closeModal('productModal'); +} + +function addToCart(id, qty = 1) { +const existing = cart.find(item => item.id === id); +if (existing) existing.quantity += qty; +else { +const product = PRODUCTS.find(p => p.id === id); +cart.push({...product, quantity: qty}); +} +saveCart(); +updateCartCount(); +showNotification('Тауар себетке қосылды', 'success'); +} + +function saveCart() { +localStorage.setItem('ffu_cart', JSON.stringify(cart)); +} + +function updateCartCount() { +const count = cart.reduce((sum, item) => sum + item.quantity, 0); +document.getElementById('cartCount').textContent = count; +} + +function initModals() { +document.getElementById('cartBtn').addEventListener('click', openCart); +document.getElementById('modalOverlay').addEventListener('click', () => closeModal('productModal')); +document.getElementById('modalClose').addEventListener('click', () => closeModal('productModal')); +document.getElementById('cartOverlay').addEventListener('click', () => closeModal('cartModal')); +document.getElementById('cartModalClose').addEventListener('click', () => closeModal('cartModal')); +document.getElementById('checkoutOverlay').addEventListener('click', () => closeModal('checkoutModal')); +document.getElementById('checkoutModalClose').addEventListener('click', () => closeModal('checkoutModal')); +document.getElementById('successClose').addEventListener('click', () => { +closeModal('successModal'); +cart = []; +saveCart(); +updateCartCount(); +renderCart(); +}); +document.getElementById('checkoutBtn').addEventListener('click', openCheckout); +document.addEventListener('keydown', (e) => { +if (e.key === 'Escape') document.querySelectorAll('.modal.active').forEach(modal => modal.classList.remove('active')); +}); +} + +function openModal(id) { +document.getElementById(id).classList.add('active'); +document.body.style.overflow = 'hidden'; +} + +function closeModal(id) { +document.getElementById(id).classList.remove('active'); +document.body.style.overflow = ''; +} + +function openCart() { +renderCart(); +openModal('cartModal'); +} + +function renderCart() { +const empty = document.getElementById('cartEmpty'); +const content = document.getElementById('cartContent'); +const itemsContainer = document.getElementById('cartItems'); +if (cart.length === 0) { +empty.style.display = 'block'; +content.style.display = 'none'; +return; +} +empty.style.display = 'none'; +content.style.display = 'block'; +itemsContainer.innerHTML = cart.map(item => ` +
+
${item.title}
+
+

${item.title}

+

${formatPrice(item.price)} × ${item.quantity}

+
+
+ +${item.quantity} + +
+ +
+
+
+`).join(''); +const subtotal = cart.reduce((sum, item) => sum + item.price * item.quantity, 0); +document.getElementById('cartTotalCount').textContent = cart.reduce((sum, item) => sum + item.quantity, 0); +document.getElementById('cartSubtotal').textContent = formatPrice(subtotal); +document.getElementById('cartTotal').textContent = formatPrice(subtotal); +} + +function updateCartQuantity(id, delta) { +const item = cart.find(i => i.id === id); +if (!item) return; +item.quantity += delta; +if (item.quantity <= 0) { removeFromCart(id); return; } +saveCart(); +updateCartCount(); +renderCart(); +} + +function removeFromCart(id) { +cart = cart.filter(item => item.id !== id); +saveCart(); +updateCartCount(); +renderCart(); +showNotification('Тауар себеттен жойылды', 'success'); +} + +function openCheckout() { +const subtotal = cart.reduce((sum, item) => sum + item.price * item.quantity, 0); +document.getElementById('checkoutTotal').textContent = formatPrice(subtotal); +closeModal('cartModal'); +openModal('checkoutModal'); +} + +function initPhoneValidation() { +const phoneInput = document.getElementById('checkoutPhone'); +phoneInput.addEventListener('input', (e) => { +let value = e.target.value.replace(/\D/g, ''); +if (value.length > 11) value = value.slice(0, 11); +if (value.length > 0 && (value[0] === '7' || value[0] === '8')) value = value.slice(1); +let formatted = '+7'; +if (value.length > 0) formatted += ' (' + value.slice(0, 3); +if (value.length >= 3) formatted += ') ' + value.slice(3, 6); +if (value.length >= 6) formatted += '-' + value.slice(6, 8); +if (value.length >= 8) formatted += '-' + value.slice(8, 10); +e.target.value = formatted; +}); +} + +document.getElementById('checkoutForm').addEventListener('submit', (e) => { +e.preventDefault(); +const formData = { +name: document.getElementById('checkoutName').value, +phone: document.getElementById('checkoutPhone').value, +city: document.getElementById('checkoutCity').value, +address: document.getElementById('checkoutAddress').value, +comment: document.getElementById('checkoutComment').value, +items: [...cart], +total: cart.reduce((sum, item) => sum + item.price * item.quantity, 0) +}; +const message = `Сәлем! Тапсырыс: ${formData.name}\nТелефон: ${formData.phone}\nҚала: ${formData.city}\nМекенжай: ${formData.address}\nСомма: ${formatPrice(formData.total)}`; +window.open('https://wa.me/77771234567?text=' + encodeURIComponent(message)); +closeModal('checkoutModal'); +openModal('successModal'); +document.getElementById('checkoutForm').reset(); +}); + +function initFAQ() { +document.querySelectorAll('.faq-item__header').forEach(header => { +header.addEventListener('click', () => { +const expanded = header.getAttribute('aria-expanded') === 'true'; +document.querySelectorAll('.faq-item__header').forEach(h => h.setAttribute('aria-expanded', 'false')); +document.querySelectorAll('.faq-item__content').forEach(content => content.style.maxHeight = null); +if (!expanded) { +header.setAttribute('aria-expanded', 'true'); +const content = header.nextElementSibling; +content.style.maxHeight = content.scrollHeight + 'px'; +} +}); +}); +} + +function initScrollAnimations() { +const observer = new IntersectionObserver((entries) => { +entries.forEach(entry => { if (entry.isIntersecting) entry.target.classList.add('in'); }); +}, { threshold: 0.1 }); +document.querySelectorAll('.reveal').forEach(el => observer.observe(el)); +} + +function renderReviews() { +const track = document.getElementById('reviewsTrack'); +track.innerHTML = REVIEWS.map(review => ` +
+
+${review.name} +
+

${review.name}

+
${'★'.repeat(review.rating)}${'☆'.repeat(5 - review.rating)}
+
+
+

"${review.text}"

+
+`).join(''); +updateReviewsSlider(); +document.getElementById('reviewsPrev').addEventListener('click', () => { +currentSlide = Math.max(0, currentSlide - 1); +updateReviewsSlider(); +}); +document.getElementById('reviewsNext').addEventListener('click', () => { +const maxSlide = Math.max(0, Math.ceil(REVIEWS.length / getVisibleReviews()) - 1); +currentSlide = Math.min(maxSlide, currentSlide + 1); +updateReviewsSlider(); +}); +} + +function getVisibleReviews() { +if (window.innerWidth <= 768) return 1; +if (window.innerWidth <= 1024) return 2; +return 3; +} + +function updateReviewsSlider() { +const track = document.getElementById('reviewsTrack'); +const cardWidth = track.querySelector('.review-card')?.offsetWidth || 0; +const gap = 30; +track.style.transform = `translateX(-${currentSlide * (cardWidth + gap)}px)`; +} + +function showNotification(message, type = 'success') { +const notification = document.getElementById('notification'); +notification.textContent = message; +notification.className = 'notification show ' + type; +setTimeout(() => notification.classList.remove('show'), 3000); +} + +window.openProductModal = openProductModal; +window.changeQuantity = changeQuantity; +window.addToCartFromModal = addToCartFromModal; +window.addToCart = addToCart; +window.updateCartQuantity = updateCartQuantity; +window.removeFromCart = removeFromCart; diff --git a/style.css b/style.css new file mode 100644 index 0000000..416f4ff --- /dev/null +++ b/style.css @@ -0,0 +1,287 @@ +:root { +--primary: #1a1a2e; +--primary-light: #16213e; +--accent: #d4a574; +--accent-hover: #c49564; +--white: #ffffff; +--off-white: #f8f6f4; +--gray-100: #f5f5f5; +--gray-200: #e8e8e8; +--gray-300: #d0d0d0; +--gray-500: #757575; +--gray-700: #424242; +--black: #1a1a1a; +--success: #27ae60; +--error: #e74c3c; +--shadow-sm: 0 2px 8px rgba(0,0,0,0.06); +--shadow-md: 0 4px 16px rgba(0,0,0,0.08); +--shadow-lg: 0 8px 32px rgba(0,0,0,0.12); +--shadow-xl: 0 12px 48px rgba(0,0,0,0.15); +--radius-sm: 8px; +--radius-md: 12px; +--radius-lg: 16px; +--radius-xl: 24px; +--transition: all 0.3s ease; +} + +* { box-sizing: border-box; margin: 0; padding: 0; } +html { scroll-behavior: smooth; } +body { font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--black); background: var(--white); line-height: 1.6; overflow-x: hidden; } +h1, h2, h3, h4, h5, h6 { font-family: 'Playfair Display', serif; font-weight: 700; line-height: 1.2; } +a { text-decoration: none; color: inherit; transition: var(--transition); } +img { max-width: 100%; height: auto; display: block; } +button { font-family: inherit; cursor: pointer; border: none; background: none; } + +.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; } +.section { padding: 100px 0; } +.section__title { font-size: 42px; text-align: center; margin-bottom: 20px; color: var(--primary); } +.section__desc { text-align: center; color: var(--gray-500); font-size: 18px; max-width: 700px; margin: 0 auto 60px; } + +.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 28px; border-radius: var(--radius-sm); font-weight: 600; font-size: 15px; transition: var(--transition); cursor: pointer; border: 2px solid transparent; } +.btn--primary { background: var(--accent); color: var(--white); } +.btn--primary:hover { background: var(--accent-hover); transform: translateY(-2px); box-shadow: var(--shadow-md); } +.btn--outline { background: transparent; border-color: var(--white); color: var(--white); } +.btn--outline:hover { background: var(--white); color: var(--primary); } +.btn--large { padding: 16px 36px; font-size: 16px; } +.btn--full { width: 100%; } +.btn--instagram { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); color: var(--white); margin-top: 40px; } +.btn--instagram:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(220, 39, 67, 0.4); } +.btn--whatsapp { background: #25D366; color: var(--white); } +.btn--whatsapp:hover { background: #20bd5a; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4); } + +.header { position: fixed; top: 0; left: 0; right: 0; background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(10px); z-index: 1000; box-shadow: var(--shadow-sm); transition: var(--transition); } +.header.scrolled { box-shadow: var(--shadow-md); } +.header__container { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; max-width: 1400px; margin: 0 auto; } +.logo { display: flex; flex-direction: column; } +.logo__text { font-family: 'Playfair Display', serif; font-size: 22px; font-weight: 700; color: var(--primary); letter-spacing: -0.5px; } +.logo__sub { font-size: 11px; color: var(--accent); letter-spacing: 2px; text-transform: uppercase; font-weight: 600; } +.logo--light .logo__text { color: var(--white); } +.logo--light .logo__sub { color: var(--accent); } +.nav { display: flex; gap: 30px; } +.nav__link { font-size: 14px; font-weight: 500; color: var(--gray-700); text-transform: uppercase; letter-spacing: 0.5px; position: relative; } +.nav__link::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background: var(--accent); transition: var(--transition); } +.nav__link:hover { color: var(--accent); } +.nav__link:hover::after { width: 100%; } +.header__actions { display: flex; align-items: center; gap: 15px; } +.cart-btn { position: relative; width: 44px; height: 44px; border-radius: 50%; background: var(--gray-100); display: flex; align-items: center; justify-content: center; color: var(--primary); transition: var(--transition); } +.cart-btn:hover { background: var(--accent); color: var(--white); } +.cart-count { position: absolute; top: -2px; right: -2px; width: 20px; height: 20px; background: var(--accent); color: var(--white); font-size: 11px; font-weight: 700; border-radius: 50%; display: flex; align-items: center; justify-content: center; } +.header__order-btn { display: block; } +.burger { display: none; flex-direction: column; gap: 5px; width: 30px; padding: 5px; } +.burger span { width: 100%; height: 2px; background: var(--primary); transition: var(--transition); } + +.hero { position: relative; min-height: 100vh; display: flex; align-items: center; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%); overflow: hidden; } +.hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('https://picsum.photos/seed/ffuhero/1920/1080') center/cover; opacity: 0.15; } +.hero__overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, rgba(26,26,46,0.7) 0%, rgba(22,33,62,0.8) 100%); } +.hero__content { position: relative; z-index: 1; text-align: center; max-width: 900px; margin: 0 auto; padding-top: 80px; } +.hero__title { font-size: 72px; color: var(--white); margin-bottom: 20px; letter-spacing: -1px; animation: fadeInUp 0.8s ease 0.2s both; } +.hero__subtitle { font-size: 24px; color: var(--accent); margin-bottom: 25px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; animation: fadeInUp 0.8s ease 0.4s both; } +.hero__desc { font-size: 18px; color: rgba(255,255,255,0.8); max-width: 650px; margin: 0 auto 40px; line-height: 1.8; animation: fadeInUp 0.8s ease 0.6s both; } +.hero__buttons { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; animation: fadeInUp 0.8s ease 0.8s both; } +@keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } + +.about { background: var(--off-white); } +.about__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin-top: 50px; } +.feature-card { background: var(--white); padding: 40px 30px; border-radius: var(--radius-lg); text-align: center; box-shadow: var(--shadow-sm); transition: var(--transition); } +.feature-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-xl); } +.feature-card__icon { font-size: 48px; margin-bottom: 20px; } +.feature-card__title { font-size: 20px; margin-bottom: 15px; color: var(--primary); } +.feature-card__text { color: var(--gray-500); font-size: 15px; line-height: 1.7; } + +.catalog__filters { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-bottom: 50px; } +.filter-btn { padding: 12px 24px; border-radius: 30px; background: var(--gray-100); color: var(--gray-700); font-weight: 600; font-size: 14px; transition: var(--transition); } +.filter-btn:hover, .filter-btn.active { background: var(--accent); color: var(--white); } +.catalog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; } +.product-card { background: var(--white); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: var(--transition); } +.product-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-xl); } +.product-card__image { position: relative; height: 320px; overflow: hidden; background: var(--gray-100); } +.product-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } +.product-card:hover .product-card__image img { transform: scale(1.08); } +.product-card__badge { position: absolute; top: 15px; left: 15px; background: var(--accent); color: var(--white); padding: 6px 14px; border-radius: 20px; font-size: 12px; font-weight: 700; text-transform: uppercase; } +.product-card__content { padding: 25px; } +.product-card__category { font-size: 12px; color: var(--accent); text-transform: uppercase; letter-spacing: 1px; font-weight: 600; margin-bottom: 8px; } +.product-card__title { font-size: 20px; color: var(--primary); margin-bottom: 10px; font-family: 'Playfair Display', serif; } +.product-card__desc { color: var(--gray-500); font-size: 14px; margin-bottom: 20px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } +.product-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; } +.product-card__price { font-size: 22px; font-weight: 700; color: var(--primary); } +.product-card__actions { display: flex; gap: 10px; } +.btn--small { padding: 10px 18px; font-size: 13px; } +.btn--secondary { background: var(--gray-200); color: var(--primary); } +.btn--secondary:hover { background: var(--gray-300); } + +.benefits { background: var(--primary); color: var(--white); } +.benefits .section__title { color: var(--white); } +.benefits .section__desc { color: rgba(255,255,255,0.7); } +.benefits__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 50px; } +.benefit-card { position: relative; padding: 40px 30px; background: rgba(255,255,255,0.05); border-radius: var(--radius-lg); border: 1px solid rgba(255,255,255,0.1); transition: var(--transition); } +.benefit-card:hover { background: rgba(255,255,255,0.08); transform: translateY(-5px); } +.benefit-card__number { font-size: 56px; font-weight: 700; color: rgba(212, 165, 116, 0.3); line-height: 1; margin-bottom: 20px; font-family: 'Playfair Display', serif; } +.benefit-card__title { font-size: 22px; margin-bottom: 15px; color: var(--white); } +.benefit-card__text { color: rgba(255,255,255,0.7); font-size: 15px; line-height: 1.7; } + +.instagram { background: var(--off-white); } +.instagram__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 15px; margin-top: 50px; } +.instagram__item { position: relative; aspect-ratio: 1; border-radius: var(--radius-md); overflow: hidden; cursor: pointer; } +.instagram__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } +.instagram__item:hover img { transform: scale(1.1); } +.instagram__item::after { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.3); opacity: 0; transition: var(--transition); } +.instagram__item:hover::after { opacity: 1; } + +.reviews { background: var(--white); } +.reviews__slider { position: relative; overflow: hidden; margin-top: 50px; } +.reviews__track { display: flex; gap: 30px; transition: transform 0.5s ease; } +.review-card { min-width: calc(33.333% - 20px); background: var(--off-white); padding: 40px; border-radius: var(--radius-lg); } +.review-card__header { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; } +.review-card__avatar { width: 60px; height: 60px; border-radius: 50%; background: var(--gray-200); object-fit: cover; } +.review-card__info h4 { font-size: 18px; color: var(--primary); margin-bottom: 5px; } +.review-card__stars { display: flex; gap: 3px; color: #f1c40f; font-size: 16px; } +.review-card__text { color: var(--gray-700); line-height: 1.8; font-style: italic; } +.reviews__nav { display: flex; justify-content: center; gap: 15px; margin-top: 30px; } +.reviews__nav-btn { width: 50px; height: 50px; border-radius: 50%; background: var(--gray-100); color: var(--primary); font-size: 20px; display: flex; align-items: center; justify-content: center; transition: var(--transition); } +.reviews__nav-btn:hover { background: var(--accent); color: var(--white); } + +.delivery__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 50px; } +.delivery-card { background: var(--off-white); padding: 40px; border-radius: var(--radius-lg); } +.delivery-card__title { font-size: 22px; color: var(--primary); margin-bottom: 25px; font-family: 'Playfair Display', serif; } +.delivery-card__list { list-style: none; } +.delivery-card__list li { padding: 12px 0; border-bottom: 1px solid var(--gray-200); color: var(--gray-700); display: flex; justify-content: space-between; } +.delivery-card__list li:last-child { border-bottom: none; } + +.faq { background: var(--off-white); } +.faq__list { max-width: 800px; margin: 50px auto 0; } +.faq-item { background: var(--white); border-radius: var(--radius-md); margin-bottom: 15px; overflow: hidden; box-shadow: var(--shadow-sm); } +.faq-item__header { width: 100%; padding: 25px 30px; display: flex; justify-content: space-between; align-items: center; text-align: left; font-size: 17px; font-weight: 600; color: var(--primary); background: none; transition: var(--transition); } +.faq-item__header:hover { background: var(--gray-50); } +.faq-item__header[aria-expanded="true"] { background: var(--gray-50); } +.faq-item__icon { font-size: 24px; color: var(--accent); transition: transform 0.3s ease; } +.faq-item__header[aria-expanded="true"] .faq-item__icon { transform: rotate(45deg); } +.faq-item__content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; } +.faq-item__content p { padding: 0 30px 25px; color: var(--gray-700); line-height: 1.8; } + +.contacts__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; margin-top: 50px; } +.contact-item { display: flex; gap: 20px; padding: 25px 0; border-bottom: 1px solid var(--gray-200); } +.contact-item:first-child { padding-top: 0; } +.contact-item__icon { font-size: 32px; } +.contact-item__content h4 { font-size: 16px; color: var(--primary); margin-bottom: 8px; font-family: 'Playfair Display', serif; } +.contact-item__content p { color: var(--gray-700); } +.contact-item__content a { color: var(--accent); font-weight: 600; } +.contact-item__content a:hover { text-decoration: underline; } +.contacts__map { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); } +.contacts__cta { text-align: center; margin-top: 50px; } + +.footer { background: var(--primary); color: var(--white); padding: 80px 0 30px; } +.footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 60px; margin-bottom: 60px; } +.footer__desc { color: rgba(255,255,255,0.7); margin-top: 20px; line-height: 1.8; } +.footer__nav-title { font-size: 16px; color: var(--accent); margin-bottom: 25px; font-family: 'Playfair Display', serif; } +.footer__nav { display: flex; flex-direction: column; gap: 15px; } +.footer__nav a { color: rgba(255,255,255,0.8); font-size: 15px; } +.footer__nav a:hover { color: var(--accent); } +.footer__contacts p { margin-bottom: 15px; color: rgba(255,255,255,0.8); } +.footer__contacts a { color: rgba(255,255,255,0.8); } +.footer__contacts a:hover { color: var(--accent); } +.footer__bottom { padding-top: 30px; border-top: 1px solid rgba(255,255,255,0.1); text-align: center; color: rgba(255,255,255,0.5); font-size: 14px; } + +.modal { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; } +.modal.active { display: flex; } +.modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.7); backdrop-filter: blur(5px); } +.modal__content { position: relative; background: var(--white); border-radius: var(--radius-xl); max-width: 600px; width: 90%; max-height: 90vh; overflow-y: auto; padding: 50px 40px; z-index: 1; animation: modalIn 0.3s ease; } +.modal__content--cart { max-width: 800px; } +.modal__content--success { text-align: center; padding: 60px 40px; } +@keyframes modalIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } +.modal__close { position: absolute; top: 20px; right: 20px; width: 36px; height: 36px; border-radius: 50%; background: var(--gray-100); color: var(--primary); font-size: 24px; display: flex; align-items: center; justify-content: center; transition: var(--transition); } +.modal__close:hover { background: var(--gray-200); } +.modal__title { font-size: 28px; text-align: center; margin-bottom: 30px; color: var(--primary); } +.modal__body { position: relative; } +.product-modal { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; } +.product-modal__image { border-radius: var(--radius-lg); overflow: hidden; background: var(--gray-100); } +.product-modal__image img { width: 100%; height: 100%; object-fit: cover; } +.product-modal__info h3 { font-size: 28px; color: var(--primary); margin-bottom: 15px; font-family: 'Playfair Display', serif; } +.product-modal__price { font-size: 32px; font-weight: 700; color: var(--accent); margin-bottom: 25px; } +.product-modal__desc { color: var(--gray-700); line-height: 1.8; margin-bottom: 25px; } +.product-modal__specs { margin-bottom: 25px; } +.product-modal__specs-title { font-size: 16px; font-weight: 700; color: var(--primary); margin-bottom: 15px; } +.product-modal__specs-list { list-style: none; } +.product-modal__specs-list li { padding: 10px 0; border-bottom: 1px solid var(--gray-100); color: var(--gray-700); font-size: 14px; display: flex; justify-content: space-between; } +.product-modal__specs-list li:last-child { border-bottom: none; } +.product-modal__quantity { display: flex; align-items: center; gap: 15px; margin-bottom: 25px; } +.quantity-btn { width: 40px; height: 40px; border-radius: var(--radius-sm); background: var(--gray-100); color: var(--primary); font-size: 20px; font-weight: 700; display: flex; align-items: center; justify-content: center; transition: var(--transition); } +.quantity-btn:hover { background: var(--accent); color: var(--white); } +.quantity-value { font-size: 18px; font-weight: 700; min-width: 40px; text-align: center; } +.cart__empty { text-align: center; padding: 60px 20px; } +.cart__empty p { color: var(--gray-500); margin-bottom: 25px; font-size: 18px; } +.cart__items { display: flex; flex-direction: column; gap: 20px; margin-bottom: 30px; max-height: 400px; overflow-y: auto; } +.cart-item { display: flex; gap: 20px; padding: 20px; background: var(--gray-50); border-radius: var(--radius-md); } +.cart-item__image { width: 100px; height: 100px; border-radius: var(--radius-sm); overflow: hidden; background: var(--gray-100); flex-shrink: 0; } +.cart-item__image img { width: 100%; height: 100%; object-fit: cover; } +.cart-item__content { flex: 1; } +.cart-item__title { font-size: 16px; font-weight: 600; color: var(--primary); margin-bottom: 8px; } +.cart-item__price { color: var(--accent); font-weight: 700; margin-bottom: 15px; } +.cart-item__actions { display: flex; align-items: center; gap: 15px; } +.cart-item__remove { color: var(--error); font-size: 13px; font-weight: 600; transition: var(--transition); } +.cart-item__remove:hover { text-decoration: underline; } +.cart__summary { border-top: 2px solid var(--gray-200); padding-top: 25px; } +.cart__summary-row { display: flex; justify-content: space-between; padding: 12px 0; color: var(--gray-700); } +.cart__summary-row--total { font-size: 20px; font-weight: 700; color: var(--primary); border-top: 1px solid var(--gray-200); margin-top: 15px; padding-top: 20px; } +.checkout-form { display: flex; flex-direction: column; gap: 20px; } +.form-group { display: flex; flex-direction: column; gap: 8px; } +.form-group label { font-size: 14px; font-weight: 600; color: var(--primary); } +.form-group input, .form-group textarea { padding: 14px 18px; border: 2px solid var(--gray-200); border-radius: var(--radius-sm); font-size: 15px; font-family: inherit; transition: var(--transition); } +.form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--accent); } +.form-group textarea { resize: vertical; min-height: 100px; } +.checkout__total { display: flex; justify-content: space-between; align-items: center; padding: 20px; background: var(--gray-50); border-radius: var(--radius-md); font-size: 18px; } +.checkout__total strong { font-size: 24px; color: var(--accent); } +.success-icon { width: 80px; height: 80px; margin: 0 auto 25px; background: var(--success); color: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 40px; animation: scaleIn 0.5s ease; } +@keyframes scaleIn { from { transform: scale(0); } to { transform: scale(1); } } +.notification { position: fixed; bottom: 30px; right: 30px; background: var(--primary); color: var(--white); padding: 18px 28px; border-radius: var(--radius-md); box-shadow: var(--shadow-xl); z-index: 3000; transform: translateX(150%); transition: transform 0.3s ease; } +.notification.show { transform: translateX(0); } +.notification.success { background: var(--success); } +.notification.error { background: var(--error); } +.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease, transform 0.6s ease; } +.reveal.in { opacity: 1; transform: translateY(0); } + +@media (max-width: 1024px) { +.catalog__grid { grid-template-columns: repeat(2, 1fr); } +.instagram__grid { grid-template-columns: repeat(3, 1fr); } +.review-card { min-width: calc(50% - 15px); } +.benefits__grid, .delivery__grid { grid-template-columns: repeat(2, 1fr); } +.footer__grid { grid-template-columns: 1fr 1fr; } +} + +@media (max-width: 768px) { +.section { padding: 60px 0; } +.section__title { font-size: 32px; } +.section__desc { font-size: 16px; } +.nav { position: fixed; top: 80px; left: 0; right: 0; background: var(--white); flex-direction: column; padding: 30px; gap: 20px; box-shadow: var(--shadow-lg); transform: translateY(-150%); transition: var(--transition); } +.nav.active { transform: translateY(0); } +.burger { display: flex; } +.burger.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); } +.burger.active span:nth-child(2) { opacity: 0; } +.burger.active span:nth-child(3) { transform: rotate(-45deg) translate(7px, -6px); } +.header__order-btn { display: none; } +.hero__title { font-size: 42px; } +.hero__subtitle { font-size: 18px; } +.hero__desc { font-size: 16px; } +.hero__buttons { flex-direction: column; } +.btn--large { width: 100%; } +.about__grid { grid-template-columns: 1fr; } +.catalog__grid { grid-template-columns: 1fr; } +.benefits__grid, .delivery__grid, .instagram__grid { grid-template-columns: 1fr; } +.review-card { min-width: 100%; } +.contacts__grid { grid-template-columns: 1fr; } +.footer__grid { grid-template-columns: 1fr; gap: 40px; } +.product-modal { grid-template-columns: 1fr; } +.modal__content { padding: 40px 25px; } +.cart-item { flex-direction: column; text-align: center; } +.cart-item__image { margin: 0 auto; } +.cart-item__actions { justify-content: center; } +} + +@media (max-width: 480px) { +.hero__title { font-size: 32px; } +.section__title { font-size: 26px; } +.catalog__filters { flex-direction: column; } +.filter-btn { width: 100%; } +.product-card__footer { flex-direction: column; align-items: stretch; } +.product-card__actions { flex-direction: column; } +.benefit-card__number { font-size: 40px; } +}