/* ===== CSS VARIABLES ===== */ :root { /* Bakery Color Palette */ --color-primary: #F4B8C3; /* Soft pink frosting */ --color-primary-dark: #E8A2AE; /* Deeper pink */ --color-secondary: #FFF5E6; /* Cream/vanilla */ --color-accent: #8B4B73; /* Rich berry */ --color-accent-light: #A65D8A; --color-chocolate: #4A2C2A; /* Dark chocolate brown */ --color-caramel: #D4A574; /* Golden caramel */ --color-mint: #B8D4C2; /* Soft mint green */ /* Neutral Colors */ --color-white: #FFFFFF; --color-cream: #FAF8F5; --color-light-gray: #F8F6F3; --color-gray: #E5E1DC; --color-dark-gray: #8B8680; --color-text: #3D3530; /* Warm dark brown */ --color-text-light: #6B6560; /* Status Colors */ --color-success: #7FB069; --color-error: #E07A5F; --color-warning: #F4A261; --color-info: #457B9D; /* Gradients */ --gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); --gradient-hero: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-cream) 50%, #FDF4E8 100%); --gradient-accent: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-light) 100%); /* Typography */ --font-display: 'Playfair Display', serif; --font-body: 'Inter', sans-serif; --font-size-xs: 0.75rem; --font-size-sm: 0.875rem; --font-size-base: 1rem; --font-size-lg: 1.125rem; --font-size-xl: 1.25rem; --font-size-2xl: 1.5rem; --font-size-3xl: 1.875rem; --font-size-4xl: 2.25rem; --font-size-5xl: 3rem; --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; /* Spacing */ --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --spacing-2xl: 3rem; --spacing-3xl: 4rem; /* Layout */ --container-max-width: 1200px; --header-height: 80px; --border-radius-sm: 0.5rem; --border-radius-md: 0.75rem; --border-radius-lg: 1rem; --border-radius-xl: 1.5rem; /* Shadows */ --shadow-sm: 0 2px 8px rgba(61, 53, 48, 0.08); --shadow-md: 0 4px 16px rgba(61, 53, 48, 0.12); --shadow-lg: 0 8px 32px rgba(61, 53, 48, 0.16); --shadow-xl: 0 16px 64px rgba(61, 53, 48, 0.2); /* Transitions */ --transition-fast: 0.2s ease; --transition-normal: 0.3s ease; --transition-slow: 0.5s ease; /* Z-index */ --z-modal: 1000; --z-header: 100; --z-dropdown: 50; } /* ===== RESET & BASE ===== */ * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; font-size: 16px; } body { font-family: var(--font-body); font-size: var(--font-size-base); font-weight: var(--font-weight-normal); line-height: 1.6; color: var(--color-text); background-color: var(--color-cream); overflow-x: hidden; } /* ===== TYPOGRAPHY ===== */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: var(--font-weight-semibold); line-height: 1.2; margin-bottom: var(--spacing-md); color: var(--color-chocolate); } h1 { font-size: var(--font-size-5xl); font-weight: var(--font-weight-bold); } h2 { font-size: var(--font-size-4xl); } h3 { font-size: var(--font-size-3xl); } h4 { font-size: var(--font-size-2xl); } p { margin-bottom: var(--spacing-md); line-height: 1.7; } a { color: var(--color-accent); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: var(--color-accent-light); } /* ===== UTILITY CLASSES ===== */ .container { max-width: var(--container-max-width); margin: 0 auto; padding: 0 var(--spacing-lg); } .section__header { text-align: center; margin-bottom: var(--spacing-3xl); } .section__title { font-size: var(--font-size-4xl); margin-bottom: var(--spacing-md); position: relative; } .section__title::after { content: ''; position: absolute; bottom: -0.5rem; left: 50%; transform: translateX(-50%); width: 60px; height: 3px; background: var(--gradient-primary); border-radius: 2px; } .section__subtitle { font-size: var(--font-size-lg); color: var(--color-text-light); max-width: 600px; margin: 0 auto; } /* ===== BUTTONS ===== */ .btn { display: inline-flex; align-items: center; justify-content: center; padding: var(--spacing-md) var(--spacing-xl); font-family: var(--font-body); font-size: var(--font-size-base); font-weight: var(--font-weight-medium); text-decoration: none; border: none; border-radius: var(--border-radius-md); cursor: pointer; transition: all var(--transition-normal); position: relative; overflow: hidden; min-height: 48px; } .btn--primary { background: var(--gradient-primary); color: var(--color-white); box-shadow: var(--shadow-sm); } .btn--primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); color: var(--color-white); } .btn--secondary { background: transparent; color: var(--color-accent); border: 2px solid var(--color-accent); } .btn--secondary:hover { background: var(--color-accent); color: var(--color-white); transform: translateY(-2px); } .btn--full { width: 100%; } .btn__loading { display: none; } .btn.loading .btn__text { display: none; } .btn.loading .btn__loading { display: flex; } /* ===== HEADER ===== */ .header { position: fixed; top: 0; left: 0; width: 100%; height: var(--header-height); background: rgba(250, 248, 245, 0.95); backdrop-filter: blur(10px); border-bottom: 1px solid var(--color-gray); z-index: var(--z-header); transition: all var(--transition-normal); } .nav { display: flex; align-items: center; justify-content: space-between; height: 100%; } .nav__logo { display: flex; align-items: center; gap: var(--spacing-sm); font-family: var(--font-display); font-size: var(--font-size-xl); font-weight: var(--font-weight-bold); color: var(--color-chocolate); } .nav__logo i { font-size: var(--font-size-2xl); color: var(--color-primary); } .nav__menu { display: flex; align-items: center; } .nav__list { display: flex; list-style: none; gap: var(--spacing-xl); margin: 0; } .nav__link { font-weight: var(--font-weight-medium); color: var(--color-text); transition: color var(--transition-fast); position: relative; } .nav__link::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 2px; background: var(--gradient-primary); transition: width var(--transition-fast); } .nav__link:hover::after, .nav__link.active-link::after { width: 100%; } .nav__actions { display: flex; align-items: center; gap: var(--spacing-md); } .nav__cart { position: relative; background: none; border: none; font-size: var(--font-size-xl); color: var(--color-accent); cursor: pointer; transition: color var(--transition-fast); padding: var(--spacing-sm); } .nav__cart:hover { color: var(--color-accent-light); } .cart-count { position: absolute; top: -4px; right: -4px; background: var(--color-accent); color: var(--color-white); font-size: var(--font-size-xs); font-weight: var(--font-weight-bold); padding: 2px 6px; border-radius: 50px; min-width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; } .nav__toggle, .nav__close { display: none; background: none; border: none; font-size: var(--font-size-xl); color: var(--color-text); cursor: pointer; } /* ===== HERO SECTION ===== */ .hero { background: var(--gradient-hero); padding: calc(var(--header-height) + var(--spacing-3xl)) 0 var(--spacing-3xl); min-height: 100vh; display: flex; align-items: center; } .hero__container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-3xl); align-items: center; } .hero__title { font-size: var(--font-size-5xl); margin-bottom: var(--spacing-lg); background: linear-gradient(135deg, var(--color-chocolate), var(--color-accent)); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .hero__description { font-size: var(--font-size-lg); color: var(--color-text-light); margin-bottom: var(--spacing-xl); line-height: 1.8; } .hero__buttons { display: flex; gap: var(--spacing-lg); flex-wrap: wrap; } .hero__image { position: relative; } .hero__image img { width: 100%; height: auto; border-radius: var(--border-radius-xl); box-shadow: var(--shadow-lg); } /* ===== PRODUCTS SECTION ===== */ .products { padding: var(--spacing-3xl) 0; background: var(--color-white); } .products__controls { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--spacing-lg); margin-bottom: var(--spacing-2xl); align-items: end; } .search__container { position: relative; } .search__input { width: 100%; padding: var(--spacing-md) var(--spacing-md) var(--spacing-md) var(--spacing-3xl); border: 2px solid var(--color-gray); border-radius: var(--border-radius-md); font-size: var(--font-size-base); background: var(--color-white); transition: border-color var(--transition-fast); } .search__input:focus { outline: none; border-color: var(--color-primary); } .search__icon { position: absolute; left: var(--spacing-md); top: 50%; transform: translateY(-50%); color: var(--color-dark-gray); } .filter__select, .sort__select { width: 100%; padding: var(--spacing-md); border: 2px solid var(--color-gray); border-radius: var(--border-radius-md); font-size: var(--font-size-base); background: var(--color-white); cursor: pointer; transition: border-color var(--transition-fast); } .filter__select:focus, .sort__select:focus { outline: none; border-color: var(--color-primary); } .loading { text-align: center; padding: var(--spacing-3xl); } .loading__spinner { width: 40px; height: 40px; border: 4px solid var(--color-gray); border-top: 4px solid var(--color-primary); border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto var(--spacing-md); } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .products__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--spacing-xl); } .product__card { background: var(--color-white); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; transition: all var(--transition-normal); cursor: pointer; } .product__card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); } .product__image { position: relative; overflow: hidden; height: 250px; } .product__image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); } .product__card:hover .product__image img { transform: scale(1.05); } .product__badge { position: absolute; top: var(--spacing-md); left: var(--spacing-md); background: var(--gradient-accent); color: var(--color-white); padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--border-radius-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .product__content { padding: var(--spacing-lg); } .product__category { font-size: var(--font-size-sm); color: var(--color-accent); font-weight: var(--font-weight-medium); margin-bottom: var(--spacing-xs); } .product__name { font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); margin-bottom: var(--spacing-sm); color: var(--color-chocolate); } .product__description { color: var(--color-text-light); font-size: var(--font-size-sm); margin-bottom: var(--spacing-md); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .product__meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--spacing-md); font-size: var(--font-size-sm); color: var(--color-text-light); } .product__footer { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); } .product__price { font-family: var(--font-display); font-size: var(--font-size-2xl); font-weight: var(--font-weight-bold); color: var(--color-accent); } .add-to-cart { background: var(--gradient-primary); color: var(--color-white); border: none; padding: var(--spacing-sm) var(--spacing-md); border-radius: var(--border-radius-md); font-weight: var(--font-weight-medium); cursor: pointer; transition: all var(--transition-fast); display: flex; align-items: center; gap: var(--spacing-xs); } .add-to-cart:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); } .no-results { text-align: center; padding: var(--spacing-3xl); color: var(--color-text-light); } .no-results i { font-size: var(--font-size-4xl); margin-bottom: var(--spacing-lg); color: var(--color-dark-gray); } /* ===== ABOUT SECTION ===== */ .about { padding: var(--spacing-3xl) 0; background: var(--color-light-gray); } .about__container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-3xl); align-items: center; } .about__description { font-size: var(--font-size-lg); line-height: 1.8; margin-bottom: var(--spacing-xl); } .about__features { display: grid; gap: var(--spacing-lg); } .feature { display: flex; gap: var(--spacing-md); align-items: flex-start; } .feature i { font-size: var(--font-size-2xl); color: var(--color-primary); margin-top: var(--spacing-xs); } .feature h3 { font-size: var(--font-size-lg); margin-bottom: var(--spacing-xs); } .feature p { color: var(--color-text-light); margin: 0; } .about__image { position: relative; } .about__image img { width: 100%; height: auto; border-radius: var(--border-radius-xl); box-shadow: var(--shadow-lg); } /* ===== PROCESS SECTION ===== */ .process { padding: var(--spacing-3xl) 0; background: var(--color-white); } .process__steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--spacing-xl); } .step { text-align: center; padding: var(--spacing-xl); border-radius: var(--border-radius-lg); background: var(--color-light-gray); position: relative; } .step__number { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; background: var(--gradient-primary); color: var(--color-white); border-radius: 50%; font-family: var(--font-display); font-size: var(--font-size-2xl); font-weight: var(--font-weight-bold); margin-bottom: var(--spacing-lg); } .step h3 { font-size: var(--font-size-xl); margin-bottom: var(--spacing-md); } .step p { color: var(--color-text-light); margin: 0; } /* ===== GALLERY SECTION ===== */ .gallery { padding: var(--spacing-3xl) 0; background: var(--color-light-gray); } .gallery__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--spacing-lg); } .gallery__item { position: relative; overflow: hidden; border-radius: var(--border-radius-lg); aspect-ratio: 1; cursor: pointer; } .gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); } .gallery__item:hover img { transform: scale(1.05); } /* ===== CONTACT SECTION ===== */ .contact { padding: var(--spacing-3xl) 0; background: var(--color-white); } .contact__container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-3xl); } .contact__description { font-size: var(--font-size-lg); margin-bottom: var(--spacing-xl); } .contact__info { display: grid; gap: var(--spacing-lg); } .contact__item { display: flex; gap: var(--spacing-md); align-items: flex-start; } .contact__item i { font-size: var(--font-size-xl); color: var(--color-primary); margin-top: var(--spacing-xs); min-width: 24px; } .contact__item h4 { font-size: var(--font-size-lg); margin-bottom: var(--spacing-xs); } .contact__item p { color: var(--color-text-light); margin: 0; } /* ===== FORMS ===== */ .contact__form, .checkout__form { background: var(--color-light-gray); padding: var(--spacing-xl); border-radius: var(--border-radius-lg); } .form__group { position: relative; margin-bottom: var(--spacing-lg); } .form__input { width: 100%; padding: var(--spacing-md); border: 2px solid var(--color-gray); border-radius: var(--border-radius-md); font-size: var(--font-size-base); font-family: var(--font-body); background: var(--color-white); transition: all var(--transition-fast); } .form__input:focus { outline: none; border-color: var(--color-primary); } .form__input:focus + .form__label, .form__input:not(:placeholder-shown) + .form__label { transform: translateY(-100%) scale(0.85); color: var(--color-primary); } .form__label { position: absolute; left: var(--spacing-md); top: 50%; transform: translateY(-50%); color: var(--color-dark-gray); font-size: var(--font-size-base); pointer-events: none; transition: all var(--transition-fast); background: var(--color-white); padding: 0 var(--spacing-xs); } .form__textarea { min-height: 120px; resize: vertical; } .form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-lg); } /* ===== FOOTER ===== */ .footer { background: var(--color-chocolate); color: var(--color-white); padding: var(--spacing-3xl) 0 var(--spacing-xl); } .footer__container { display: grid; gap: var(--spacing-xl); } .footer__content { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--spacing-xl); } .footer__logo { display: flex; align-items: center; gap: var(--spacing-sm); font-family: var(--font-display); font-size: var(--font-size-xl); font-weight: var(--font-weight-bold); margin-bottom: var(--spacing-lg); } .footer__logo i { font-size: var(--font-size-2xl); color: var(--color-primary); } .footer__description { color: rgba(255, 255, 255, 0.8); margin-bottom: var(--spacing-lg); } .footer__social { display: flex; gap: var(--spacing-md); } .footer__social-link { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: rgba(255, 255, 255, 0.1); border-radius: 50%; color: var(--color-white); transition: all var(--transition-fast); } .footer__social-link:hover { background: var(--color-primary); transform: translateY(-2px); } .footer__title { font-size: var(--font-size-lg); margin-bottom: var(--spacing-md); color: var(--color-white); } .footer__links { list-style: none; } .footer__links li { margin-bottom: var(--spacing-sm); } .footer__links a { color: rgba(255, 255, 255, 0.8); transition: color var(--transition-fast); } .footer__links a:hover { color: var(--color-primary); } .newsletter__form { display: flex; margin-top: var(--spacing-md); } .newsletter__input { flex: 1; padding: var(--spacing-sm) var(--spacing-md); border: none; border-radius: var(--border-radius-md) 0 0 var(--border-radius-md); background: var(--color-white); } .newsletter__btn { padding: var(--spacing-sm) var(--spacing-md); background: var(--gradient-primary); border: none; border-radius: 0 var(--border-radius-md) var(--border-radius-md) 0; color: var(--color-white); cursor: pointer; transition: all var(--transition-fast); } .newsletter__btn:hover { background: var(--color-accent); } .footer__bottom { display: flex; justify-content: space-between; align-items: center; padding-top: var(--spacing-xl); border-top: 1px solid rgba(255, 255, 255, 0.2); color: rgba(255, 255, 255, 0.8); } .footer__legal { display: flex; gap: var(--spacing-lg); } .footer__legal a { color: rgba(255, 255, 255, 0.6); font-size: var(--font-size-sm); } /* ===== MODALS ===== */ .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: none; align-items: center; justify-content: center; z-index: var(--z-modal); padding: var(--spacing-lg); } .modal.active { display: flex; } .modal__content { background: var(--color-white); border-radius: var(--border-radius-lg); max-width: 500px; width: 100%; max-height: 90vh; overflow-y: auto; animation: modalSlideIn 0.3s ease; } .modal__content--large { max-width: 800px; } @keyframes modalSlideIn { from { transform: scale(0.8); opacity: 0; } to { transform: scale(1); opacity: 1; } } .modal__header { display: flex; justify-content: space-between; align-items: center; padding: var(--spacing-lg); border-bottom: 1px solid var(--color-gray); } .modal__title { margin: 0; font-size: var(--font-size-xl); } .modal__close { background: none; border: none; font-size: var(--font-size-xl); color: var(--color-text); cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: all var(--transition-fast); } .modal__close:hover { background: var(--color-gray); } .modal__body { padding: var(--spacing-lg); } .modal__footer { padding: var(--spacing-lg); border-top: 1px solid var(--color-gray); } /* ===== CART ===== */ .cart__items { max-height: 400px; overflow-y: auto; } .cart__item { display: flex; gap: var(--spacing-md); padding: var(--spacing-md) 0; border-bottom: 1px solid var(--color-gray); } .cart__item:last-child { border-bottom: none; } .cart__item-image { width: 80px; height: 80px; border-radius: var(--border-radius-md); object-fit: cover; } .cart__item-content { flex: 1; } .cart__item-name { font-weight: var(--font-weight-medium); margin-bottom: var(--spacing-xs); } .cart__item-price { color: var(--color-accent); font-weight: var(--font-weight-semibold); } .cart__item-controls { display: flex; align-items: center; gap: var(--spacing-sm); margin-top: var(--spacing-sm); } .quantity-btn { width: 30px; height: 30px; border: 1px solid var(--color-gray); background: var(--color-white); border-radius: var(--border-radius-sm); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all var(--transition-fast); } .quantity-btn:hover { background: var(--color-primary); color: var(--color-white); border-color: var(--color-primary); } .quantity-input { width: 50px; text-align: center; border: 1px solid var(--color-gray); border-radius: var(--border-radius-sm); padding: var(--spacing-xs); } .remove-item { background: var(--color-error); color: var(--color-white); border: none; padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--border-radius-sm); font-size: var(--font-size-xs); cursor: pointer; transition: all var(--transition-fast); } .remove-item:hover { background: #d4624a; } .cart__total { display: flex; justify-content: space-between; align-items: center; font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); margin-bottom: var(--spacing-md); } .cart__empty { text-align: center; padding: var(--spacing-3xl); color: var(--color-text-light); } .cart__empty i { font-size: var(--font-size-4xl); margin-bottom: var(--spacing-md); } /* ===== CHECKOUT ===== */ .checkout__section { margin-bottom: var(--spacing-xl); padding-bottom: var(--spacing-lg); border-bottom: 1px solid var(--color-gray); } .checkout__section:last-child { border-bottom: none; margin-bottom: 0; } .checkout__section h4 { margin-bottom: var(--spacing-md); color: var(--color-chocolate); } .order__summary { margin-bottom: var(--spacing-lg); } .order__item { display: flex; justify-content: space-between; align-items: center; padding: var(--spacing-sm) 0; border-bottom: 1px solid var(--color-gray); } .order__item:last-child { border-bottom: none; } .order__total { background: var(--color-light-gray); padding: var(--spacing-md); border-radius: var(--border-radius-md); } .total__row { display: flex; justify-content: space-between; margin-bottom: var(--spacing-sm); } .total__final { font-weight: var(--font-weight-semibold); font-size: var(--font-size-lg); border-top: 1px solid var(--color-gray); padding-top: var(--spacing-sm); margin-bottom: 0; } .checkout__note { text-align: center; font-size: var(--font-size-sm); color: var(--color-text-light); margin-top: var(--spacing-md); display: flex; align-items: center; justify-content: center; gap: var(--spacing-sm); } /* ===== NOTIFICATIONS ===== */ .notification { position: fixed; top: 20px; right: 20px; background: var(--color-white); padding: var(--spacing-md) var(--spacing-lg); border-radius: var(--border-radius-md); box-shadow: var(--shadow-lg); display: none; align-items: center; gap: var(--spacing-sm); z-index: calc(var(--z-modal) + 1); max-width: 400px; animation: slideInRight 0.3s ease; } .notification.show { display: flex; } .notification.success { border-left: 4px solid var(--color-success); } .notification.error { border-left: 4px solid var(--color-error); } .notification.warning { border-left: 4px solid var(--color-warning); } .notification.info { border-left: 4px solid var(--color-info); } @keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } /* ===== RESPONSIVE DESIGN ===== */ @media (max-width: 1024px) { .hero__container { grid-template-columns: 1fr; text-align: center; } .hero__image { order: -1; } .about__container { grid-template-columns: 1fr; } .contact__container { grid-template-columns: 1fr; } .products__controls { grid-template-columns: 1fr; } } @media (max-width: 768px) { :root { --font-size-5xl: 2.5rem; --font-size-4xl: 2rem; --font-size-3xl: 1.5rem; } .container { padding: 0 var(--spacing-md); } .nav__menu { position: fixed; top: var(--header-height); left: -100%; width: 100%; height: calc(100vh - var(--header-height)); background: var(--color-white); transition: left var(--transition-normal); flex-direction: column; justify-content: flex-start; padding: var(--spacing-xl); } .nav__menu.show-menu { left: 0; } .nav__list { flex-direction: column; gap: var(--spacing-lg); width: 100%; } .nav__toggle, .nav__close { display: block; } .hero { padding: calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl); } .hero__buttons { justify-content: center; } .products__grid { grid-template-columns: 1fr; } .process__steps { grid-template-columns: 1fr; } .gallery__grid { grid-template-columns: repeat(2, 1fr); } .form__row { grid-template-columns: 1fr; } .footer__content { grid-template-columns: 1fr; text-align: center; } .footer__bottom { flex-direction: column; gap: var(--spacing-md); text-align: center; } .modal { padding: var(--spacing-md); } .modal__content { max-height: 95vh; } } @media (max-width: 480px) { .hero__buttons { flex-direction: column; align-items: center; } .btn { width: 100%; max-width: 280px; } .gallery__grid { grid-template-columns: 1fr; } .cart__item { flex-direction: column; align-items: flex-start; } .cart__item-controls { justify-content: space-between; width: 100%; } }