:root {
  --brand: #111111; --brand-strong: #000000; --brand-soft: rgba(0,0,0,.06); --brand-glow: rgba(0,0,0,.14);
  --accent: #666666; --page: #fafafa; --panel: rgba(255,255,255,.92); --panel-solid: #fff; --panel-soft: rgba(250,250,250,.96);
  --ink: #18181b; --ink-strong: #000000; --muted: #6b7280; --faint: #9ca3af; --line: rgba(0,0,0,.1); --line-strong: rgba(0,0,0,.2);
  --shadow-sm: 0 12px 28px -18px rgba(0,0,0,.18); --shadow-md: 0 24px 56px -32px rgba(0,0,0,.24); --shadow-lg: 0 36px 90px -42px rgba(0,0,0,.32);
  --radius-xl: 22px; --radius-lg: 18px; --radius-md: 14px; --radius-sm: 10px; --ease: cubic-bezier(.22,1,.36,1); --ease-soft: cubic-bezier(.4,0,.2,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: linear-gradient(180deg,rgba(0,0,0,.05),transparent 22%),linear-gradient(135deg,rgba(102,102,102,.05),transparent 28%),linear-gradient(180deg,#f8fbfb,#f2f6f4); font-family: "Aptos","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; line-height: 1.6; letter-spacing: 0; overflow-x: hidden; color-scheme: light; -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; background: linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px) 0 0/64px 64px,linear-gradient(rgba(0,0,0,.022) 1px,transparent 1px) 0 0/64px 64px; mask-image: linear-gradient(180deg,rgba(0,0,0,.16),rgba(0,0,0,.04) 40%,transparent); z-index: 0; }
button,input,select,textarea { font: inherit; } button { cursor: pointer; } a { color: inherit; text-decoration: none; } img { max-width: 100%; display: block; } h1,h2,h3,h4,p { margin: 0; }
.market-shell { width: min(1280px,calc(100% - 40px)); margin: 0 auto; position: relative; z-index: 1; }
.site-nav,.glass-panel,.product-card,.purchase-modal .modal-window,.cart-modal .modal-window { background: var(--panel); border: 1px solid var(--line); box-shadow: var(--shadow-sm); backdrop-filter: blur(18px) saturate(120%); -webkit-backdrop-filter: blur(18px) saturate(120%); }
.site-nav { min-height: 78px; border-radius: var(--radius-lg); display: grid; grid-template-columns: auto minmax(260px,1fr) auto; align-items: center; gap: 14px; padding: 12px 16px 12px 20px; position: sticky; top: 14px; z-index: 20; }
.nav-floating { position: relative; top: 0; margin-bottom: 20px; }
.brand { display: flex; align-items: center; gap: 12px; font-weight: 700; letter-spacing: -.02em; min-width: 0; }
.brand-mark { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(145deg,var(--brand),var(--brand-strong)); color: #fff; box-shadow: 0 16px 28px -18px rgba(0,0,0,.7); overflow: hidden; flex: 0 0 auto; }
.logo-img img { width: 100%; height: 100%; object-fit: contain; } .brand-initial { font-size: 21px; font-weight: 800; line-height: 1; letter-spacing: -.02em; } .brand small { display: block; color: var(--muted); font-size: 11px; line-height: 1.1; font-weight: 700; letter-spacing: .08em; }
.brand > span:last-child { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.nav-links { display: flex; justify-content: center; gap: 4px; flex-wrap: wrap; }
.nav-links a { position: relative; border-radius: 12px; padding: 10px 14px; color: var(--muted); font-weight: 600; transition: color .2s var(--ease-soft),background .2s var(--ease-soft),transform .2s var(--ease); }
.nav-links a:hover,.nav-links a.active { color: var(--brand-strong); background: rgba(0,0,0,.08); } .nav-links a:hover { transform: translateY(-1px); }
.commerce-switcher { display: flex; justify-content: flex-end; gap: 8px; align-items: center; } .commerce-switcher .custom-select { position: relative; }
.commerce-switcher .custom-select-trigger { min-height: 40px; border-radius: 12px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; background: var(--panel-soft); border: 1px solid var(--line); color: var(--muted); font-size: 12px; font-weight: 600; transition: border-color .2s var(--ease-soft),box-shadow .2s var(--ease-soft),transform .2s var(--ease); }
.commerce-switcher .custom-select-trigger:hover { border-color: var(--line-strong); box-shadow: var(--shadow-sm); transform: translateY(-1px); } .commerce-switcher .custom-select-trigger:focus-visible,.commerce-switcher .custom-select[data-open] .custom-select-trigger { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-glow); }
.commerce-switcher .custom-select-tag { color: var(--faint); text-transform: uppercase; letter-spacing: .08em; } .commerce-switcher .custom-select-value { color: var(--ink); font-weight: 700; font-size: 13px; }
.commerce-switcher .custom-select-caret { width: 11px; height: 6px; background-image: linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); background-position: left center,right center; background-repeat: no-repeat; background-size: 50% 100%; transition: transform .2s var(--ease-soft); }
.commerce-switcher .custom-select[data-open] .custom-select-caret { transform: rotate(180deg); }
.commerce-switcher .custom-select-panel { position: absolute; top: calc(100% + 10px); right: 0; z-index: 60; min-width: 174px; padding: 6px; display: flex; flex-direction: column; gap: 2px; background: rgba(255,255,255,.98); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-md); opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.98); transform-origin: top right; pointer-events: none; transition: opacity .18s var(--ease-soft),transform .18s var(--ease-soft),visibility 0s .18s; }
.commerce-switcher .custom-select[data-open] .custom-select-panel { opacity: 1; visibility: visible; transform: translateY(0) scale(1); pointer-events: auto; transition: opacity .18s var(--ease-soft),transform .18s var(--ease-soft),visibility 0s; }
.commerce-switcher .custom-select-option { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 0; border-radius: 12px; background: transparent; color: var(--ink); font-size: 13px; font-weight: 600; text-align: left; cursor: pointer; transition: background-color .15s var(--ease-soft),color .15s var(--ease-soft); }
.commerce-switcher .custom-select-option:hover,.commerce-switcher .custom-select-option.is-active { background: rgba(0,0,0,.09); color: var(--brand-strong); }
.commerce-switcher .custom-select-option::after { content: ""; flex-shrink: 0; width: 7px; height: 12px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: 0; } .commerce-switcher .custom-select-option.is-active::after { opacity: 1; }
.nav-toggle { display: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel-soft); flex-direction: column; justify-content: center; align-items: center; gap: 5px; margin-left: auto; } .nav-toggle span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--ink); transition: transform .25s var(--ease),opacity .25s var(--ease); }
.btn { min-height: 46px; border-radius: var(--radius-md); padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid transparent; font-weight: 700; letter-spacing: 0; transition: transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease-soft),border-color .2s var(--ease-soft),color .2s var(--ease-soft); will-change: transform; position: relative; overflow: hidden; }
.btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg,transparent,rgba(255,255,255,.22),transparent); transform: translateX(-120%); transition: transform .55s var(--ease); } .btn:hover { transform: translateY(-2px); } .btn:hover::after { transform: translateX(120%); } .btn:active { transform: translateY(0) scale(.98); }
.btn-dark,.btn-signal,.lime-chip { background: linear-gradient(145deg,var(--brand),var(--brand-strong)); color: #fff; box-shadow: 0 16px 34px -16px rgba(0,0,0,.55); } .btn-dark:hover,.btn-signal:hover { box-shadow: 0 20px 40px -18px rgba(0,0,0,.68); }
.btn-ghost { background: rgba(255,255,255,.84); color: var(--ink); border-color: var(--line-strong); } .btn-ghost:hover { background: rgba(0,0,0,.08); border-color: rgba(0,0,0,.28); color: var(--brand-strong); }
.icon-btn { width: 44px; height: 44px; border-radius: var(--radius-md); border: 1px solid var(--line); background: rgba(255,255,255,.92); } .lime-chip { border-radius: 999px; padding: 9px 14px; font-weight: 700; font-size: 12px; }
.hero-banner { margin-top: 20px; min-height: 580px; border-radius: var(--radius-xl); padding: 24px; display: grid; grid-template-columns: .92fr 1.08fr; gap: 26px; overflow: hidden; position: relative; background: linear-gradient(145deg,rgba(255,255,255,.95),rgba(245,248,247,.92)); }
.hero-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg,rgba(0,0,0,.02) 25%,transparent 25% 50%,rgba(0,0,0,.02) 50% 75%,transparent 75%); background-size: 56px 56px; opacity: .5; pointer-events: none; }
.hero-slider { width: 100vw; margin-left: calc(50% - 50vw); margin-top: 0; border-radius: 0 0 var(--radius-xl) var(--radius-xl); padding: 40px max(28px,calc((100vw - 1280px)/2 + 22px)); grid-template-rows: auto 1fr; grid-template-columns: minmax(320px,.88fr) minmax(500px,1.12fr); align-items: stretch; } .hero-slider .site-nav { grid-column: 1/-1; }
.hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 26px 8px; position: relative; } .eyebrow,.section-kicker,.card-label { color: var(--brand-strong); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; } .eyebrow { display: inline-flex; align-items: center; gap: 9px; }
.hero-copy h1 { font-size: clamp(34px,4.2vw,60px); line-height: 1.08; margin: 14px 0 18px; letter-spacing: -.03em; font-weight: 700; } .hero-copy h1 em { font-style: normal; color: var(--brand-strong); }
.hero-copy p,.section-copy,.product-card p,.muted { color: var(--muted); line-height: 1.7; } .hero-copy p { font-size: 17px; max-width: 44ch; } .hero-actions { display: flex; gap: 11px; flex-wrap: wrap; margin-top: 22px; }
.hero-media { position: relative; min-height: 500px; border-radius: var(--radius-lg); overflow: hidden; background: linear-gradient(160deg,rgba(0,0,0,.1),rgba(102,102,102,.08)); box-shadow: var(--shadow-md); } .hero-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); } .hero-media:hover img { transform: scale(1.04); } .hero-media::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 56%,rgba(0,0,0,.14)); pointer-events: none; }
.hero-copy > *,.hero-media { opacity: 0; animation: rise .7s var(--ease) forwards; } .hero-copy > *:nth-child(1) { animation-delay: .05s; } .hero-copy > *:nth-child(2) { animation-delay: .14s; } .hero-copy > *:nth-child(3) { animation-delay: .24s; } .hero-copy > *:nth-child(4) { animation-delay: .34s; } .hero-media { animation-delay: .12s; }
@keyframes rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } } @keyframes modal-in { from { opacity: 0; transform: translateY(22px) scale(.96); } to { opacity: 1; transform: none; } }
.section { margin-top: 20px; border-radius: var(--radius-xl); padding: 28px; } .section-head { display: flex; justify-content: space-between; gap: 18px; align-items: end; margin-bottom: 22px; } .section-head h2 { font-size: clamp(20px,2.2vw,26px); margin-top: 6px; letter-spacing: -.02em; font-weight: 700; } .section-kicker { display: inline-flex; align-items: center; gap: 8px; }
.grid-3,.grid-4,.value-grid,.ad-grid,.social-cards,.stats { display: grid; gap: 18px; } .grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); } .grid-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.product-card { border-radius: var(--radius-lg); padding: 12px; background: rgba(255,255,255,.96); display: flex; flex-direction: column; min-height: 100%; transition: transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease-soft); position: relative; overflow: hidden; } .product-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: rgba(0,0,0,.2); } .square-card { display: flex; flex-direction: column; }
.product-image { aspect-ratio: 1.08; border-radius: var(--radius-md); overflow: hidden; background: linear-gradient(135deg,rgba(0,0,0,.08),rgba(102,102,102,.08)); position: relative; isolation: isolate; } .square-card .product-image { aspect-ratio: 1; min-height: 0; } .product-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 58%,rgba(0,0,0,.18)); opacity: 0; transition: opacity .35s var(--ease-soft); } .product-card:hover .product-image::after { opacity: 1; } .product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s var(--ease); } .product-card:hover .product-image img { transform: scale(1.06); }
.product-body { padding: 16px 6px 5px; display: grid; gap: 10px; flex: 1; } .product-title { display: flex; justify-content: space-between; gap: 12px; align-items: start; } .product-title h3 { font-size: 18px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; } .price { font-weight: 800; white-space: nowrap; letter-spacing: -.02em; color: var(--ink-strong); } .product-card p { font-size: 14px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.about-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 22px; align-items: stretch; } .about-photo { min-height: 320px; max-height: 400px; border-radius: var(--radius-lg); overflow: hidden; position: relative; box-shadow: var(--shadow-md); } .about-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg,transparent 62%,rgba(0,0,0,.12)); pointer-events: none; } .about-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); } .about-panel:hover .about-photo img { transform: scale(1.04); }
.about-copy { border-radius: var(--radius-lg); padding: 28px; background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,250,248,.96)); border: 1px solid var(--line); } .about-copy h2 { font-size: clamp(28px,3.2vw,40px); margin: 6px 0 14px; letter-spacing: -.03em; font-weight: 700; } .about-copy .section-copy { font-size: 16px; } .about-panel--flip { grid-template-columns: 1.15fr .85fr; } .about-panel--single { grid-template-columns: 1fr; } .about-copy--hero h2 { font-size: clamp(24px,3vw,32px); }
.stats { grid-template-columns: repeat(4,1fr); margin-top: 24px; } .stat,.value-card,.ad-card,.contact-item,.social-card,.spec-item,.rule-panel,.cart-empty,.cart-item { border-radius: var(--radius-lg); background: rgba(255,255,255,.94); border: 1px solid var(--line); } .stat,.value-card,.ad-card,.contact-item,.social-card,.spec-item { padding: 18px 16px; transition: transform .26s var(--ease),box-shadow .26s var(--ease),border-color .26s var(--ease-soft); } .stat:hover,.value-card:hover,.ad-card:hover,.contact-item:hover,.social-card:hover,.spec-item:hover { transform: translateY(-4px); box-shadow: var(--shadow-sm); border-color: rgba(0,0,0,.18); }
.stat strong { display: block; font-size: 32px; font-weight: 800; letter-spacing: -.03em; line-height: 1; color: var(--brand-strong); } .stat span { display: block; margin-top: 8px; color: var(--muted); font-size: 13px; font-weight: 600; } .value-card { position: relative; overflow: hidden; } .value-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg,var(--brand),var(--accent)); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--ease); } .value-card:hover::before { transform: scaleX(1); } .value-card h3 { margin: 0 0 10px; font-size: 18px; font-weight: 700; } .value-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.ad-grid { grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 24px; counter-reset: ad; } .ad-grid--flush { margin-top: 0; } .ad-card { counter-increment: ad; position: relative; overflow: hidden; } .ad-card::before { content: counter(ad,decimal-leading-zero); display: block; margin-bottom: 14px; color: var(--brand-strong); font-size: 13px; font-weight: 800; letter-spacing: .08em; } .ad-card h4 { margin: 0 0 8px; font-size: 17px; font-weight: 700; } .ad-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.contact-block { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 24px; } .contact-item small { display: block; color: var(--faint); margin-bottom: 8px; font-weight: 700; letter-spacing: .05em; } .contact-item strong { display: block; font-size: 17px; font-weight: 700; line-height: 1.5; word-break: break-word; }
.contact-layout { display: grid; grid-template-columns: .86fr 1.14fr; gap: 24px; align-items: start; margin-top: 20px; } .contact-layout .order-form { margin-top: 0; } .contact-info { border-radius: var(--radius-lg); padding: 26px; background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,250,248,.96)); border: 1px solid var(--line); } .contact-info h3 { margin: 0 0 18px; font-size: 20px; font-weight: 700; } .contact-info-list { display: grid; gap: 12px; } .contact-info-item { border-radius: var(--radius-md); padding: 16px 18px; background: rgba(255,255,255,.9); border: 1px solid var(--line); } .contact-info-item small { display: block; color: var(--faint); margin-bottom: 6px; font-weight: 700; font-size: 12px; } .contact-info-item strong { font-size: 15px; font-weight: 700; line-height: 1.55; word-break: break-word; }
.social-cards { grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 20px; } .social-card { display: grid; gap: 8px; } .social-card strong { font-size: 16px; font-weight: 700; color: var(--brand-strong); } .social-card span { color: var(--muted); font-size: 13px; word-break: break-all; line-height: 1.5; }
.shop-layout { display: grid; grid-template-columns: 260px 1fr; gap: 20px; margin-top: 24px; } .filters { border-radius: var(--radius-lg); padding: 20px; align-self: start; position: sticky; top: 112px; } .filter-group { display: grid; gap: 8px; margin-top: 16px; } .filter-chip { min-height: 42px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel-soft); color: var(--muted); font-weight: 700; display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 16px; transition: background .2s var(--ease-soft),color .2s var(--ease-soft),border-color .2s var(--ease-soft),transform .2s var(--ease); } .filter-chip:hover { border-color: rgba(0,0,0,.28); color: var(--brand-strong); transform: translateX(2px); } .filter-chip.active,.filter-chip.active:hover { background: linear-gradient(145deg,var(--brand),var(--brand-strong)); color: #fff; border-color: transparent; transform: none; }
.list-toolbar { display: flex; justify-content: space-between; gap: 14px; align-items: center; margin-bottom: 18px; } .list-toolbar .list-count { color: var(--muted); font-weight: 600; font-size: 14px; }
.list-toolbar .sort-select { position: relative; margin-left: auto; min-width: 236px; }
.list-toolbar .sort-select .custom-select-trigger { width: 100%; min-height: 44px; border-radius: 12px; display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; background: var(--panel-solid); border: 1px solid var(--line); color: var(--ink); font-size: 14px; font-weight: 600; transition: border-color .2s var(--ease-soft), box-shadow .2s var(--ease-soft); }
.list-toolbar .sort-select .custom-select-trigger:hover { border-color: var(--line-strong); box-shadow: var(--shadow-sm); }
.list-toolbar .sort-select .custom-select-trigger:focus-visible, .list-toolbar .sort-select[data-open] .custom-select-trigger { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-glow); }
.list-toolbar .sort-select .custom-select-tag { color: var(--faint); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.list-toolbar .sort-select .custom-select-value { color: var(--ink); font-weight: 700; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.list-toolbar .sort-select .custom-select-caret { flex-shrink: 0; margin-left: auto; width: 11px; height: 6px; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: left center, right center; background-repeat: no-repeat; background-size: 50% 100%; transition: transform .2s var(--ease-soft); }
.list-toolbar .sort-select[data-open] .custom-select-caret { transform: rotate(180deg); }
.list-toolbar .sort-select .custom-select-panel { position: absolute; top: calc(100% + 10px); right: 0; z-index: 60; min-width: 100%; padding: 6px; display: flex; flex-direction: column; gap: 2px; background: rgba(255,255,255,.98); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-md); opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.98); transform-origin: top right; pointer-events: none; transition: opacity .18s var(--ease-soft), transform .18s var(--ease-soft), visibility 0s .18s; }
.list-toolbar .sort-select[data-open] .custom-select-panel { opacity: 1; visibility: visible; transform: translateY(0) scale(1); pointer-events: auto; transition: opacity .18s var(--ease-soft), transform .18s var(--ease-soft), visibility 0s; }
.list-toolbar .sort-select .custom-select-option { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 14px; border: 0; border-radius: 12px; background: transparent; color: var(--ink); font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; transition: background-color .15s var(--ease-soft), color .15s var(--ease-soft); }
.list-toolbar .sort-select .custom-select-option:hover, .list-toolbar .sort-select .custom-select-option.is-active { background: rgba(0,0,0,.09); color: var(--brand-strong); }
.list-toolbar .sort-select .custom-select-option::after { content: ""; flex-shrink: 0; width: 7px; height: 12px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: 0; }
.list-toolbar .sort-select .custom-select-option.is-active::after { opacity: 1; }
.detail-layout { margin-top: 20px; display: grid; grid-template-columns: 1.04fr .96fr; gap: 24px; } .detail-gallery { border-radius: var(--radius-xl); padding: 18px; } .main-product-image { border-radius: var(--radius-lg); overflow: hidden; height: 580px; background: linear-gradient(135deg,rgba(0,0,0,.08),rgba(102,102,102,.08)); box-shadow: var(--shadow-md); } .main-product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); } .main-product-image:hover img { transform: scale(1.03); } .thumb-row { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; margin-top: 14px; } .thumb-row img { height: 90px; width: 100%; object-fit: cover; border-radius: var(--radius-sm); cursor: pointer; border: 2px solid transparent; transition: transform .26s var(--ease),box-shadow .26s var(--ease),border-color .26s var(--ease-soft); } .thumb-row img:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); } .thumb-row img.is-active { border-color: var(--brand); }
.detail-info { border-radius: var(--radius-xl); padding: 30px; align-self: start; position: sticky; top: 112px; } .detail-info h1 { font-size: clamp(32px,3.6vw,52px); line-height: 1.05; margin: 0 0 12px; letter-spacing: -.03em; font-weight: 700; } .detail-info .section-copy { font-size: 16px; } .detail-info .intro-short { max-width: 36ch; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .detail-info .price { display: block; font-size: 26px; margin: 14px 0; color: var(--brand-strong); }
.spec-list { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin: 22px 0; } .spec-item small { color: var(--faint); display: block; margin-bottom: 6px; font-weight: 700; } .spec-item strong { font-weight: 700; } .qty-box { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; } .qty-box button { width: 44px; height: 44px; border-radius: var(--radius-sm); border: 0; background: linear-gradient(145deg,var(--brand),var(--brand-strong)); color: #fff; font-size: 18px; font-weight: 700; box-shadow: 0 14px 30px -18px rgba(0,0,0,.65); } .qty-box input { width: 72px; height: 44px; text-align: center; border-radius: var(--radius-sm); border: 1px solid var(--line-strong); background: #fff; font-weight: 700; } .detail-order-btn { width: 100%; min-width: 0; margin-top: 4px; } .detail-actions { display: flex; gap: 10px; margin-top: 4px; } .detail-actions .btn { flex: 1 1 0; min-width: 0; width: auto; }
.detail-images { display: flex; flex-direction: column; margin-top: 20px; gap: 12px; } .detail-images img { width: 100%; border-radius: var(--radius-md); display: block; box-shadow: var(--shadow-sm); } .rules-tabs { margin-top: 20px; } .rules-tab-list { display: flex; flex-wrap: wrap; gap: 8px; } .rule-tab { min-height: 42px; border-radius: 12px; padding: 0 18px; border: 1px solid var(--line); background: var(--panel-soft); color: var(--muted); font-weight: 700; font-size: 14px; } .rule-tab.active { background: linear-gradient(145deg,var(--brand),var(--brand-strong)); color: #fff; border-color: transparent; } .rules-panel-list { margin-top: 16px; } .rule-panel { display: none; padding: 18px 20px; color: var(--muted); line-height: 1.85; font-size: 15px; } .rule-panel.active { display: block; } .rule-panel p { color: var(--muted); line-height: 1.85; font-size: 15px; } .rich-text { max-width: none; } .rich-text p { max-width: 860px; color: var(--muted); line-height: 1.9; font-size: 16px; }
.search-form { margin-top: 18px; gap: 16px; } .search-form .modal-actions { justify-content: flex-start; } .search-input { min-height: 56px; border-radius: 18px; border: 1px solid var(--line); background: rgba(255,255,255,.96); padding: 0 18px; box-shadow: inset 0 1px 0 rgba(255,255,255,.9); } .search-input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-glow); }
.purchase-modal,.cart-modal { position: fixed; inset: 0; display: none; place-items: center; padding: 24px; background: rgba(0,0,0,.56); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); z-index: 40; } .purchase-modal.is-open,.cart-modal.is-open { display: grid; } .purchase-modal .modal-window,.cart-modal .modal-window { width: min(660px,100%); max-height: calc(100vh - 48px); overflow-y: auto; border-radius: var(--radius-xl); padding: 30px 30px 28px; background: rgba(255,255,255,.98); border: 1px solid rgba(255,255,255,.4); box-shadow: var(--shadow-lg); animation: modal-in .3s var(--ease); } .purchase-modal .modal-window { width: min(600px,100%); }
.modal-top,.cart-modal .modal-top { display: flex; justify-content: space-between; align-items: center; color: var(--brand-strong); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; } .modal-top button,.cart-modal .modal-top button { border: 0; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: rgba(0,0,0,.1); color: var(--muted); font-size: 18px; line-height: 1; } .modal-top button:hover,.cart-modal .modal-top button:hover { color: #fff; background: linear-gradient(145deg,var(--brand),var(--brand-strong)); transform: rotate(90deg); } .purchase-modal .modal-window h2,.cart-modal .modal-window h2 { margin: 16px 0 2px; font-size: 26px; font-weight: 700; letter-spacing: -.03em; line-height: 1.15; }
.order-form { display: grid; gap: 15px; margin-top: 20px; } .field { display: grid; gap: 8px; } .field label { color: var(--muted); font-size: 13px; font-weight: 700; letter-spacing: .04em; } .field input,.field select,.field textarea { width: 100%; min-height: 50px; border-radius: var(--radius-sm); border: 1px solid var(--line-strong); background: var(--panel-soft); padding: 0 16px; outline: 0; color: var(--ink); font-weight: 600; transition: border-color .2s var(--ease-soft),box-shadow .2s var(--ease-soft),background .2s var(--ease-soft); } .field input::placeholder,.field textarea::placeholder { color: var(--faint); font-weight: 500; } .field input:focus,.field select:focus,.field textarea:focus { border-color: var(--brand); background: #fff; box-shadow: 0 0 0 4px var(--brand-glow); } .field textarea { min-height: 96px; padding-top: 13px; resize: vertical; line-height: 1.6; } .field-row { display: grid; grid-template-columns: repeat(2,1fr); gap: 13px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 14px; } .purchase-modal .modal-actions,.cart-form .modal-actions { display: grid; grid-template-columns: 1fr 1fr; } .purchase-modal .modal-actions .btn,.cart-form .modal-actions .btn { width: 100%; min-width: 0; } .modal-price-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; border-radius: var(--radius-md); background: rgba(0,0,0,.08); border: 1px solid var(--line); } .modal-price-row .price { font-size: 22px; color: var(--brand-strong); }
.site-footer { margin: 24px 0; border-radius: var(--radius-xl); padding: 28px; display: block; color: var(--muted); position: relative; overflow: hidden; background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,250,248,.95)); } .footer-main { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; align-items: flex-start; } .footer-brand strong { color: var(--ink); font-size: 18px; font-weight: 800; display: block; margin-bottom: 8px; } .footer-brand p { max-width: 46ch; line-height: 1.7; font-size: 14px; } .footer-contact { display: grid; gap: 8px; font-size: 14px; text-align: right; } .footer-contact span { display: block; line-height: 1.6; color: var(--muted); } .footer-bottom { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; } .footer-links { display: flex; gap: 8px; flex-wrap: wrap; } .footer-links a { border-radius: 10px; padding: 8px 13px; font-weight: 700; font-size: 13px; } .footer-links a:hover { background: linear-gradient(145deg,var(--brand),var(--brand-strong)); color: #fff; }
.live-toast { position: fixed; right: 24px; bottom: 24px; transform: translateY(18px); opacity: 0; pointer-events: none; transition: 200ms var(--ease); background: linear-gradient(145deg,var(--brand),var(--brand-strong)); color: #fff; border-radius: var(--radius-md); padding: 15px 18px; box-shadow: 0 18px 40px -12px rgba(0,0,0,.5); z-index: 50; border-left: 3px solid rgba(255,255,255,.5); } .live-toast.is-visible { opacity: 1; transform: translateY(0); }
.cart-entry { position: relative; min-height: 40px; border-radius: var(--radius-sm); display: inline-flex; align-items: center; gap: 6px; padding: 0 11px; background: var(--panel-soft); border: 1px solid var(--line); color: var(--muted); } .cart-entry svg { width: 18px; height: 18px; } .cart-count { position: absolute; top: -6px; right: -7px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: linear-gradient(145deg,var(--brand),var(--brand-strong)); color: #fff; font-size: 11px; font-weight: 800; line-height: 1; display: grid; place-items: center; }
.cart-list { display: grid; gap: 12px; } .cart-empty { padding: 28px 16px; text-align: center; color: var(--muted); border: 1px dashed var(--line-strong); } .cart-item { display: grid; grid-template-columns: 52px 1fr auto auto 32px; grid-template-areas: "img info qty sub del"; align-items: center; gap: 12px; padding: 12px 14px; background: var(--panel-soft); } .cart-item-img { grid-area: img; width: 52px; height: 52px; border-radius: var(--radius-sm); object-fit: cover; background: rgba(0,0,0,.08); } .cart-item-info { grid-area: info; min-width: 0; } .cart-item-name { font-weight: 700; font-size: 14px; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cart-item-price { color: var(--muted); font-size: 12px; font-weight: 600; margin-top: 2px; } .cart-item-subtotal { grid-area: sub; font-weight: 800; color: var(--brand-strong); white-space: nowrap; font-size: 15px; } .cart-qty { grid-area: qty; margin-bottom: 0; } .cart-qty button { width: 32px; height: 32px; border-radius: var(--radius-sm); font-size: 14px; } .cart-qty input { width: 46px; height: 32px; } .cart-item-del { grid-area: del; border: 0; width: 32px; height: 32px; border-radius: var(--radius-sm); background: rgba(0,0,0,.1); color: var(--muted); font-size: 18px; line-height: 1; } .cart-item-del:hover { color: #fff; background: linear-gradient(145deg,var(--brand),var(--brand-strong)); } .cart-summary { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding: 16px 18px; border-radius: var(--radius-md); background: rgba(0,0,0,.08); border: 1px solid var(--line); } .cart-summary > span:first-child { color: var(--muted); font-weight: 600; font-size: 14px; } .cart-total { font-size: 22px; font-weight: 800; color: var(--brand-strong); } .cart-form { display: grid; gap: 15px; margin-top: 16px; }
@media (max-width: 1040px) { .hero-banner,.hero-slider,.about-panel,.shop-layout,.detail-layout,.contact-layout { grid-template-columns: 1fr; } .filters,.detail-info { position: static; } .filters { padding: 18px; } .filters .filter-group { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; } .filters .filter-chip { min-height: 40px; padding: 0 16px; } .grid-4,.stats,.value-grid,.ad-grid,.social-cards { grid-template-columns: repeat(2,1fr); } .hero-media { min-height: 420px; } }
@media (max-width: 720px) { .market-shell { width: min(100% - 24px,1280px); } .site-nav { grid-template-columns: 1fr auto; position: static; padding: 12px 14px; border-radius: var(--radius-lg); } .nav-toggle { display: flex; } .site-nav .nav-links,.site-nav .commerce-switcher { display: none; } .site-nav.nav-open .nav-links,.site-nav.nav-open .commerce-switcher { display: flex; } .site-nav.nav-open .nav-links { grid-column: 1/-1; flex-direction: column; align-items: stretch; gap: 2px; } .site-nav.nav-open .nav-links a { padding: 12px 14px; border-radius: 10px; } .site-nav.nav-open .commerce-switcher { grid-column: 1/-1; justify-content: flex-start; flex-wrap: wrap; } .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); } .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; } .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } .hero-slider { width: 100%; margin-left: 0; border-radius: var(--radius-xl); padding: 16px; } .hero-copy h1 { font-size: 30px; } .hero-copy p { font-size: 15px; } .grid-3,.grid-4,.stats,.field-row,.spec-list,.value-grid,.ad-grid,.contact-block,.social-cards { grid-template-columns: 1fr; } .hero-media { min-height: 320px; } .main-product-image { height: 340px; } .thumb-row { grid-template-columns: repeat(4,1fr); } .thumb-row img { height: 70px; } .section { padding: 20px; } .detail-gallery,.detail-info { padding: 16px; } .detail-info h1 { font-size: 30px; } .footer-main { flex-direction: column; } .footer-contact { text-align: left; } .purchase-modal,.cart-modal { padding: 14px; } .purchase-modal .modal-window,.cart-modal .modal-window { padding: 22px 18px; border-radius: var(--radius-lg); } .purchase-modal .modal-actions,.cart-form .modal-actions { grid-template-columns: 1fr; } .cart-item { grid-template-columns: 44px 1fr auto; grid-template-areas: "img info del" "img qty sub"; } .cart-item-img { width: 44px; height: 44px; } .cart-item-subtotal { text-align: right; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } .btn::after { display: none; } }

.site-footer {
  margin: 36px 0 28px;
  padding: 36px 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  color: var(--muted);
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadow-sm);
}
.footer-main {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.footer-brand strong {
  color: var(--ink-strong);
  font-size: 20px;
  font-weight: 800;
  display: block;
  margin-bottom: 8px;
}
.footer-brand p {
  max-width: 46ch;
  line-height: 1.7;
  font-size: 14px;
}
.footer-contact {
  display: grid;
  gap: 6px;
  font-size: 14px;
  text-align: right;
}
.footer-contact span {
  display: block;
  line-height: 1.6;
}
.footer-bottom {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 13px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
@media (max-width: 720px) {
  .site-footer { padding: 24px; margin-bottom: 20px; }
  .footer-main { flex-direction: column; gap: 16px; }
  .footer-contact { text-align: left; }
}

/* 采购弹窗紧凑化：PC 端缩短，确保提交按钮可见 */
.purchase-modal .modal-window { padding: 24px 24px 20px; }
.purchase-modal .modal-window h2 { font-size: 21px; margin: 10px 0 2px; }
.purchase-modal .order-form { gap: 11px; margin-top: 12px; }
.purchase-modal .field label { font-size: 12px; gap: 6px; }
.purchase-modal .field input, .purchase-modal .field select { min-height: 42px; }
.purchase-modal .field textarea { min-height: 68px; padding-top: 9px; }
.purchase-modal .field-row { gap: 10px; }
.purchase-modal .modal-actions { margin-top: 10px; }

/* 购物车加购浮动提示（右下角） */
.cart-toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 55;
  min-width: 240px;
  max-width: 320px;
  max-height: 60vh;
  overflow-y: auto;
  padding: 14px 16px;
  border-radius: var(--radius-md);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
  opacity: 0;
  transform: translateY(18px);
  pointer-events: none;
  transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.cart-toast.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.cart-toast-title { font-weight: 800; font-size: 14px; color: var(--brand-strong); margin-bottom: 8px; }
.cart-toast-item { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--muted); padding: 3px 0; }
.cart-toast-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-toast-sub { flex-shrink: 0; font-weight: 700; color: var(--ink); }
.cart-toast-del { border: 0; background: none; color: inherit; opacity: .6; font-size: 16px; line-height: 1; cursor: pointer; padding: 0; margin-left: 6px; flex-shrink: 0; }
.cart-toast-del:hover { opacity: 1; color: #e5484d; }
.cart-toast-close {
  position: absolute; top: 10px; right: 10px;
  width: 26px; height: 26px; line-height: 24px;
  border: 1px solid var(--line); background: #fff; color: var(--ink);
  font-size: 16px; font-weight: 700; cursor: pointer; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s var(--ease), border-color .15s var(--ease);
}
.cart-toast-close:hover { background: #f2f2f0; border-color: var(--muted); color: var(--ink); }
.cart-toast-items { margin-bottom: 10px; }
.cart-toast-checkout {
  display: block; width: 100%;
  padding: 11px 0; border: none; border-radius: var(--radius-sm);
  background: linear-gradient(145deg, var(--brand), var(--brand-strong)); color: #fff;
  font-weight: 800; font-size: 14px; letter-spacing: .01em; cursor: pointer;
  box-shadow: 0 16px 30px -16px rgba(0,0,0,.55);
  transition: transform .2s var(--ease), box-shadow .2s var(--ease), filter .2s var(--ease);
}
.cart-toast-checkout:hover { transform: translateY(-1px); box-shadow: 0 20px 38px -16px rgba(0,0,0,.68); filter: brightness(1.04); }
.cart-toast-checkout:active { transform: translateY(0) scale(.98); }

/* 购物车弹窗：关闭按钮右上角、提交按钮固定底部、隐藏滚动条 */
.cart-modal .modal-window { position: relative; scrollbar-width: none; -ms-overflow-style: none; }
.cart-modal .modal-window::-webkit-scrollbar { display: none; }
.cart-modal .modal-top { position: absolute; top: 18px; right: 18px; z-index: 3; }
.cart-modal .modal-top button { width: 34px; height: 34px; font-size: 16px; }
.cart-modal .modal-window h2 { margin-top: 0; padding-right: 44px; }
.cart-modal .modal-actions {
  position: sticky;
  bottom: 0;
  margin: 14px -30px -28px;
  padding: 16px 30px;
  background: #fff;
  border-top: 1px solid var(--line);
}
@media (max-width: 720px) {
  .cart-modal .modal-actions { margin: 14px -18px -22px; padding: 16px 18px; }
}

/* 公司新闻板块 */
.news-card .product-image { aspect-ratio: 1.5; }
.news-date { color: var(--muted); font-size: 12px; letter-spacing: .03em; }
.news-list { display: grid; gap: 14px; }
.news-item { display: flex; gap: 14px; align-items: flex-start; border-radius: var(--radius-lg); background: rgba(255,255,255,.94); border: 1px solid var(--line); padding: 18px 20px; }
.news-cover { flex: 0 0 90px; width: 90px; height: 68px; object-fit: cover; border-radius: 8px; }
.news-body { flex: 1; min-width: 0; display: grid; gap: 6px; }
.news-item h3 { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
.news-intro { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.news-card-link { display: flex; flex-direction: column; flex: 1; min-height: 100%; text-decoration: none; color: inherit; cursor: pointer; }
.news-card-link .product-title h3 { transition: color .25s var(--ease-soft); }
.news-card-link:hover .product-title h3 { color: var(--brand); }
.news-item-link { display: block; text-decoration: none; color: inherit; cursor: pointer; }
.news-item-link .news-item h3 { transition: color .25s var(--ease-soft); }
.news-item-link:hover .news-item h3 { color: var(--brand); }
.news-item-link .news-cover { transition: transform .4s var(--ease); }
.news-item-link:hover .news-cover { transform: scale(1.05); }
/* 新闻详情页 */
.news-detail-title { margin: 0 0 12px; font-size: 30px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.news-detail-meta { margin: 0 0 20px; }
.news-detail-cover { width: 100%; max-height: 440px; object-fit: cover; border-radius: var(--radius-lg); margin: 0 0 24px; }
.news-detail-content { line-height: 1.85; font-size: 16px; }
.news-detail-content img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.news-detail-empty { margin: 0; color: var(--muted); }
@media (max-width: 720px) {
  .news-cover { flex: 0 0 72px; width: 72px; height: 56px; }
  .news-item { padding: 14px; }
  .news-item h3 { font-size: 16px; }
}
