.shop-page{max-width:1280px;margin:0 auto;padding:0 80px 96px}.shop-category+.shop-category{margin-top:56px}.shop-category-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--line)}.shop-category-head h2{font-family:var(--font-display);font-size:36px;line-height:1;letter-spacing:-.01em;color:var(--ink-900);margin:0}.shop-category-head .count{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-500)}.shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.shop-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.shop-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.shop-card .shop-photo{position:relative;aspect-ratio:1 / 1;display:block;overflow:hidden;background:var(--cream-50)}.shop-card .shop-photo img{width:100%;height:100%;object-fit:contain;padding:18px;display:block;transition:transform var(--dur-slow) var(--ease-out)}.shop-card:hover .shop-photo img{transform:scale(1.04)}.shop-card .shop-photo .tag{position:absolute;top:12px;left:12px}.shop-card .body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:10px;flex:1}.shop-card .body h4{font-family:var(--font-display);font-size:22px;margin:0;line-height:1.05;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:46.2px}.shop-card .body h4 a{color:var(--ink-900);text-decoration:none}.shop-card .body h4 a:hover{color:var(--wine-700)}.shop-card .body .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;color:var(--ink-700)}.shop-card .body .meta{flex:1;color:var(--ink-500);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shop-card .body .price{color:var(--wine-700);font-weight:600;font-size:17px;flex-shrink:0}.shop-card .body .btn{width:100%;justify-content:center;margin-top:auto}.shop-card .body .btn[disabled]{opacity:.55;cursor:not-allowed}.shop-card.placeholder{background:var(--cream-50);border-style:dashed}.shop-card.placeholder .shop-photo{background:repeating-linear-gradient(135deg,var(--cream-200) 0 8px,var(--cream-100) 8px 16px)}.shop-card.placeholder .shop-photo img{display:none}.shop-card.placeholder .body{color:var(--ink-500)}.product{max-width:1100px;margin:0 auto;padding:32px 80px 96px;display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}.product .gallery-wrap{position:sticky;top:96px;display:grid;gap:14px}.product .gallery{background:var(--cream-50);border:1px solid var(--line);border-radius:24px;aspect-ratio:1 / 1;overflow:hidden;display:grid;place-items:center;padding:32px}.product .gallery img{width:100%;height:100%;object-fit:contain;transition:opacity var(--dur-fast)}.product .gallery-thumbs{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:var(--ink-300) transparent}.product .gallery-thumbs::-webkit-scrollbar{height:6px}.product .gallery-thumbs::-webkit-scrollbar-thumb{background:var(--ink-300);border-radius:999px}.product .gallery-thumb{flex:0 0 auto;width:64px;height:64px;padding:0;background:var(--cream-50);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;scroll-snap-align:start;transition:border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-fast)}.product .gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.product .gallery-thumb:hover{transform:translateY(-1px);border-color:var(--line-strong)}.product .gallery-thumb.is-active{border-color:var(--wine-600);box-shadow:0 0 0 2px #a1241b1f}.product-info h1{font-family:var(--font-display);font-size:clamp(40px,5vw,64px);line-height:1;letter-spacing:-.015em;margin:0 0 16px;color:var(--ink-900)}.product-info .price{font-family:var(--font-display);font-size:32px;color:var(--wine-700);margin:0 0 24px}.product-info .summary{font-size:18px;line-height:1.5;color:var(--ink-700);font-weight:300;margin:0 0 24px}.product-info .description{font-size:16px;line-height:1.65;color:var(--ink-900)}.product-info .description p{margin:0 0 1em;max-width:60ch}.product-info .description a{color:var(--wine-700)}.product-info .actions{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap}.product-info .actions .btn{padding:14px 28px;font-size:15px}.product-info .variants{margin:4px 0 24px}.product-info .variants-label{display:flex;align-items:baseline;gap:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-500);margin-bottom:12px}.product-info .variants-current{color:var(--ink-900);letter-spacing:.04em;text-transform:none;font-family:var(--font-body);font-size:13px}.product-info .variants-swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:32px;height:32px;border-radius:999px;border:1px solid var(--line);background:var(--swatch-color, #888);padding:0;cursor:pointer;position:relative;transition:transform var(--dur-fast),box-shadow var(--dur-fast)}.swatch:hover{transform:scale(1.08)}.swatch.is-active{box-shadow:0 0 0 2px var(--cream-100),0 0 0 4px var(--ink-900)}.product-info .small-print{margin-top:18px;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-500)}.lang-note{margin:0 0 24px;padding:12px 16px;font-size:14px;line-height:1.5;color:var(--ink-700);background:var(--cream-50);border-left:3px solid var(--wine-600);border-radius:4px}.product-info .lang-note{margin-top:-8px}.shop-category .lang-note{max-width:60ch;margin:0 0 20px}@media(max-width:960px){.shop-page{padding:0 24px 64px}.shop-grid{grid-template-columns:repeat(2,1fr);gap:16px}.product{grid-template-columns:1fr;padding:24px 24px 64px;gap:32px}.product .gallery-wrap,.product .gallery{position:relative;top:0}}@media(max-width:720px){.product{padding:24px 24px 48px;gap:24px}.product .gallery{padding:16px;border-radius:18px}.product-info .price{font-size:26px;margin-bottom:18px}.product-info .summary{font-size:16px}.product-info .actions{margin-top:24px;gap:10px;flex-direction:column;align-items:stretch}.product-info .actions .btn{padding:14px 22px;font-size:15px;width:100%;justify-content:center;text-align:center}.product-info .variants-swatches{gap:12px;padding:2px}}@media(max-width:600px){.shop-page{padding:0 16px 48px}.shop-category+.shop-category{margin-top:40px}.shop-category-head{margin-bottom:16px;padding-bottom:10px}.shop-category-head h2{font-size:28px}.shop-grid{grid-template-columns:1fr;gap:14px}.shop-card .shop-photo img{padding:12px}.shop-card .body{padding:14px 16px 16px}}
