* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Montserrat', 'Segoe UI', Arial, sans-serif; color:#2D2D2D; background:#FAFAFA; display:flex; flex-direction:column; min-height:100vh; }
.container { max-width:1200px; margin:0 auto; padding:0 16px; }

.header { background:#3B1068; padding:14px 0; position:sticky; top:0; z-index:1000; }
.header-inner { display:flex; align-items:center; justify-content:space-between; }
.logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.logo img { width:44px; height:44px; border-radius:50%; border:2px solid #E8C8FF; }
.logo span { font-size:24px; font-weight:bold; color:white; }
.nav { display:flex; align-items:center; gap:20px; }
.nav a { color:white; text-decoration:none; font-size:15px; }
.nav .cart-count { background:#9C4FD4; padding:2px 6px; border-radius:10px; font-size:11px; }
.nav .btn-login { border:2px solid rgba(255,255,255,0.7); padding:8px 20px; border-radius:30px; color:white; font-weight:500; }
.nav .btn-login:hover { background:white; color:#7B2FBE; }
.burger { display:none; background:none; border:none; color:white; font-size:26px; cursor:pointer; }
.nav-actions { display:none; align-items:center; gap:12px; }
.cart-icon { position:relative; color:white; text-decoration:none; font-size:22px; }
.cart-icon .cart-count { position:absolute; top:-8px; right:-10px; background:#FF6B6B; color:white; font-size:10px; width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:bold; }
.btn-login-mobile { background:white; color:#3B1068; padding:6px 14px; border-radius:20px; text-decoration:none; font-size:13px; font-weight:600; }
.mobile-menu { position:fixed; top:0; left:-100%; width:260px; height:100vh; background:white; z-index:1000; padding:60px 24px; transition:left 0.3s; }
.mobile-menu.open { left:0; }
.mobile-menu a { display:block; color:#2D2D2D; text-decoration:none; font-size:17px; padding:14px 0; border-bottom:1px solid #eee; }
.mobile-close { position:absolute; top:12px; right:16px; background:none; border:none; font-size:22px; cursor:pointer; color:#2D2D2D; }

.hero { background:linear-gradient(135deg, #4A3A6E, #7B6BA8); padding:50px 0; }
.hero-inner { display:flex; gap:30px; align-items:center; }
.hero-left { flex:1; }
.hero-right { flex:1; display:flex; justify-content:center; align-items:center; }
.hero-img-circle { width:400px; height:400px; border-radius:50%; border:4px solid rgba(255,255,255,0.4); overflow:hidden; box-shadow:0 0 30px rgba(232,200,255,0.3); }
.hero-img-circle img { width:100%; height:100%; object-fit:cover; }
.hero-badge { display:inline-block; background:rgba(255,255,255,0.15); color:white; padding:8px 20px; border-radius:20px; font-size:13px; margin-bottom:16px; border:1px solid rgba(255,255,255,0.4); }
.hero h1 { font-size:42px; font-weight:300; color:white; line-height:1.2; margin-bottom:16px; letter-spacing:1px; }
.hero h1 em { color:rgba(255,255,255,0.7); font-style:normal; font-weight:600; }
.hero p { font-size:16px; color:rgba(255,255,255,0.9); margin-bottom:28px; font-weight:300; }
.hero-buttons { display:flex; gap:12px; margin-bottom:32px; }
.hero-stats { display:flex; gap:30px; color:white; }
.hero-stats span { display:block; }
.hero-stats .num { font-size:28px; font-weight:bold; }
.hero-stats .label { font-size:13px; opacity:0.6; }

.btn { display:inline-block; padding:12px 28px; border-radius:30px; font-weight:600; font-size:15px; text-decoration:none; }
.btn-primary { background:white; color:#7B2FBE; }
.btn-primary:hover { background:#F0E6FF; }
.btn-outline { border:2px solid rgba(255,255,255,0.8); color:white; }
.btn-outline:hover { background:white; color:#7B2FBE; }
.btn-ghost { border:2px solid #E9D8FF; color:#7B2FBE; background:transparent; }

.section { padding:50px 0; }
.section-gray { background:#F3EDF9; }
.section-title { font-size:28px; font-weight:bold; color:#3B1068; margin-bottom:6px; }
.section-subtitle { font-size:14px; color:#6B6B6B; }
.section-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:30px; }

.cats { display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; }
.cat-card { background:white; border-radius:16px; text-decoration:none; color:#2D2D2D; border:2px solid #E9D8FF; padding:30px 20px; display:flex; align-items:center; gap:20px; }
.cat-card:hover { border-color:#7B2FBE; }
.cat-icon { width:100px; height:100px; background:#F0E6FF; border-radius:50%; flex-shrink:0; overflow:hidden; }
.cat-icon img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.cat-info { text-align:left; }
.cat-name { font-weight:600; font-size:18px; margin-bottom:6px; }
.cat-count { font-size:14px; color:#6B6B6B; }

.bens { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; padding:40px 0; }
.ben { display:flex; gap:12px; }
.ben-icon { font-size:32px; }
.ben-title { font-weight:600; margin-bottom:4px; }
.ben-text { font-size:13px; color:#6B6B6B; }

.prods { display:grid; grid-template-columns:repeat(4, 1fr); gap:18px; }

.catalog-layout { display:flex; gap:24px; margin-top:30px; }
.filters { width:260px; flex-shrink:0; }
.filter-block { background:white; border-radius:12px; padding:20px; margin-bottom:16px; border:1px solid #E9D8FF; }
.filter-title { font-weight:600; font-size:15px; color:#3B1068; margin-bottom:12px; }
.filter-group { margin-bottom:12px; }
.filter-group select,
.filter-group input { width:100%; padding:8px 12px; border:1px solid #E9D8FF; border-radius:8px; font-size:14px; font-family:'Montserrat', sans-serif; }
.filter-group input:focus,
.filter-group select:focus { outline:none; border-color:#7B2FBE; }
.price-inputs { display:flex; gap:8px; }
.price-inputs input { width:50%; }
.btn-filter { width:100%; padding:10px; background:#7B2FBE; color:white; border:none; border-radius:25px; font-weight:600; cursor:pointer; font-family:'Montserrat', sans-serif; }
.btn-filter:hover { background:#9C4FD4; }
.btn-reset { display:block; text-align:center; margin-top:8px; color:#7B2FBE; font-size:13px; text-decoration:none; }
.products-area { flex:1; }
.sort-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.sort-bar select { padding:8px 12px; border:1px solid #E9D8FF; border-radius:8px; font-size:14px; font-family:'Montserrat', sans-serif; }
.products-count { font-size:14px; color:#6B6B6B; }
.catalog-products-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
.no-products { text-align:center; padding:60px 20px; color:#6B6B6B; }

.product-detail { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.btn-back { display:inline-block; margin-bottom:20px; color:#7B2FBE; text-decoration:none; font-size:14px; }

.checkout-grid { display:grid; grid-template-columns:1fr 380px; gap:30px; align-items:start; }

.footer { background:#3B1068; color:rgba(255,255,255,0.7); padding:40px 0 20px; margin-top:auto; }
.footer-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:25px; margin-bottom:25px; }
.footer h4 { color:white; margin-bottom:10px; }
.footer a { display:block; color:rgba(255,255,255,0.7); text-decoration:none; font-size:14px; padding:3px 0; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.15); padding-top:20px; text-align:center; font-size:13px; }

/* Карточка товара */
.product-gallery { }
.product-main-img { width:100%; border-radius:16px; max-height:450px; object-fit:cover; }
.product-thumbs { display:flex; gap:10px; margin-top:12px; }
.product-thumb { width:70px; height:70px; border-radius:10px; object-fit:cover; cursor:pointer; border:2px solid transparent; }
.product-thumb:hover { border-color:#7B2FBE; }
.product-category { color:#7B2FBE; font-size:14px; font-weight:600; text-decoration:none; }
.product-category:hover { text-decoration:underline; }
.product-title { font-size:28px; font-weight:600; color:#3B1068; margin:8px 0 16px; }
.product-variety-line { font-size:15px; color:#6B6B6B; margin-bottom:16px; }
.product-variety-line span { font-weight:600; color:#2D2D2D; }
.product-price-block { display:flex; align-items:baseline; gap:12px; margin-bottom:20px; }
.product-price-current { font-size:32px; font-weight:700; color:#3B1068; }
.product-price-old { font-size:18px; color:#bbb; text-decoration:line-through; }
.product-size-block { margin-bottom:20px; }
.size-badge { display:inline-block; padding:8px 16px; background:#F0E6FF; border-radius:20px; font-size:14px; color:#3B1068; }
.product-stock { font-size:14px; margin-bottom:20px; }
.stock-in { color:#2E7D32; }
.stock-out { color:#D32F2F; }
.product-occasions { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.occasion-tag { padding:6px 14px; background:#F3EDF9; border-radius:20px; font-size:13px; color:#7B2FBE; }
.product-description { margin:24px 0; line-height:1.7; color:#4A4A4A; }
.btn-add-cart { padding:14px 40px; background:#7B2FBE; color:white; border:none; border-radius:30px; font-size:16px; font-weight:600; cursor:pointer; font-family:'Montserrat', sans-serif; }
.btn-add-cart:hover { background:#9C4FD4; }
.related-section { margin-top:50px; }
.related-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:18px; }
/* Корзина */
.cart-empty { text-align:center; padding:60px 20px; }
.cart-empty h3 { font-size:24px; color:#3B1068; margin-bottom:12px; }
.cart-empty p { color:#6B6B6B; margin-bottom:16px; }
.cart-items { display:flex; flex-direction:column; gap:16px; }
.cart-item { display:flex; align-items:center; gap:20px; background:white; border-radius:14px; padding:16px; border:1px solid #E9D8FF; }
.cart-item-img { width:100px; height:100px; border-radius:10px; object-fit:cover; background:#F0E6FF; flex-shrink:0; }
.cart-item-info { flex:1; }
.cart-item-name { font-weight:600; font-size:16px; margin-bottom:4px; }
.cart-item-price { font-size:18px; font-weight:bold; color:#3B1068; }
.cart-item-qty { display:flex; align-items:center; gap:8px; }
.cart-item-qty button { width:32px; height:32px; border-radius:50%; border:2px solid #E9D8FF; background:white; cursor:pointer; font-size:18px; display:flex; align-items:center; justify-content:center; }
.cart-item-subtotal { font-weight:bold; font-size:18px; color:#3B1068; white-space:nowrap; }
.cart-item-remove { background:none; border:none; color:#D32F2F; cursor:pointer; font-size:20px; padding:4px; }
.cart-summary { margin-top:30px; text-align:right; }
.cart-total { font-size:24px; font-weight:bold; color:#3B1068; }
.btn-checkout { display:inline-block; padding:14px 40px; background:#7B2FBE; color:white; border:none; border-radius:30px; font-size:16px; font-weight:600; text-decoration:none; margin-top:16px; }
.btn-checkout:hover { background:#9C4FD4; }

@media (max-width:768px) {
    .nav { display:none; }
    .burger { display:block; }
    .nav-actions { display:flex; }
    .hero-inner { flex-direction:column; text-align:center; }
    .hero-right { display:none; }
    .hero h1 { font-size:28px; }
    .hero-buttons { justify-content:center; }
    .hero-stats { justify-content:center; }
    .cats { grid-template-columns:1fr; }
    .cat-card { padding:20px 16px; }
    .cat-icon { width:70px; height:70px; }
    .cat-name { font-size:16px; }
    .prods { grid-template-columns:repeat(2, 1fr); }
    .bens { grid-template-columns:repeat(2, 1fr); }
    .footer-grid { grid-template-columns:repeat(2, 1fr); }
    .catalog-layout { flex-direction:column; }
    .filters { width:100%; }
    .catalog-products-grid { grid-template-columns:repeat(1, 1fr); }
    .product-detail { grid-template-columns:1fr; }
    .checkout-grid { grid-template-columns:1fr !important; }
.profile-grid { grid-template-columns:1fr !important; }
 .product-title { font-size:22px; }
    .product-price-current { font-size:26px; }
    .related-grid { grid-template-columns:repeat(2, 1fr); }
.cart-item { flex-wrap:wrap !important; gap:12px !important; padding:12px !important; }
.cart-item-img { width:70px !important; height:70px !important; }
.cart-item-info { flex:1; min-width:120px; }
.cart-item-name { font-size:14px !important; }
.cart-item-price { font-size:16px !important; }
.cart-item-qty { gap:6px; }
.cart-item-qty button { width:28px; height:28px; font-size:16px; }
.cart-total { font-size:20px; }
.btn-checkout { width:100% !important; text-align:center !important; }
}