
    /* Products specific */
    .filter-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:44px;justify-content:center}
    .filter-btn{padding:9px 22px;border-radius:100px;border:1px solid rgba(255,255,255,0.15);background:transparent;color:rgba(255,255,255,0.65);font-family:'Montserrat',sans-serif;font-size:0.8rem;font-weight:700;cursor:pointer;transition:all 0.2s;text-transform:uppercase;letter-spacing:1px}
    .filter-btn:hover,.filter-btn.active{background:var(--gold);color:var(--dark);border-color:var(--gold)}

    .product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:32px}
    .prod-card{background:var(--dark3);border-radius:16px;border:1px solid rgba(255,255,255,0.06);overflow:hidden;transition:all 0.35s;display:flex;flex-direction:column}
    .prod-card:hover{border-color:rgba(201,168,76,0.45);transform:translateY(-7px);box-shadow:0 28px 64px rgba(0,0,0,0.55)}
    .prod-img{aspect-ratio:16/10;overflow:hidden;position:relative;background:#f4f0e8}
    .prod-img img{width:100%;height:100%;object-fit:contain;transition:transform 0.45s}
    .prod-card:hover .prod-img img{transform:scale(1.06)}
    .prod-badge{position:absolute;top:14px;left:14px;background:var(--gold);color:var(--dark);font-family:'Montserrat',sans-serif;font-weight:800;font-size:0.7rem;letter-spacing:1.5px;text-transform:uppercase;padding:5px 12px;border-radius:100px}
    .prod-body{padding:26px;flex:1;display:flex;flex-direction:column;gap:14px}
    .prod-name{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.25rem;line-height:1.2;color:var(--white)}
    .prod-desc{color:var(--gray);font-size:0.88rem;line-height:1.7;flex:1}
    .prod-specs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .spec-item{background:rgba(255,255,255,0.04);border-radius:8px;padding:10px 12px}
    .spec-key{font-size:0.65rem;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:1px;margin-bottom:3px}
    .spec-val{font-size:0.88rem;font-weight:600;color:var(--white)}
    .prod-finishes{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
    .finish-tag{font-size:0.7rem;padding:4px 10px;border-radius:100px;background:rgba(201,168,76,0.08);border:1px solid rgba(201,168,76,0.25);color:rgba(255,255,255,0.7)}
    .prod-actions{display:flex;gap:10px;margin-top:8px}
    .prod-actions a,.prod-actions button{flex:1;text-align:center;padding:12px;border-radius:8px;font-weight:800;font-size:0.85rem;text-decoration:none;transition:all 0.2s;cursor:pointer;font-family:'Montserrat',sans-serif}
    .prod-quote{background:var(--gold);color:var(--dark);border:none}
    .prod-quote:hover{background:var(--gold-light)}
    .prod-detail{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.2)}
    .prod-detail:hover{border-color:var(--gold);color:var(--gold)}

    /* Modal Styling */
    .modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.85);z-index:2000;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(6px)}
    .modal-overlay.open{display:flex}
    .modal{background:var(--dark2);border-radius:20px;border:1px solid rgba(201,168,76,0.2);max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative}
    .modal-close{position:absolute;top:20px;right:20px;background:rgba(255,255,255,0.1);border:none;color:var(--white);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:background 0.2s;z-index:10}
    .modal-grid{display:grid;grid-template-columns:1fr 1fr}
    .modal-img{background:#f4f0e8}
    .modal-img img{width:100%;height:100%;object-fit:contain;display:block}
    .modal-info{padding:40px 36px;display:flex;flex-direction:column;gap:18px}
    .modal-tag{display:inline-block;background:rgba(201,168,76,0.1);color:var(--gold);font-size:0.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:5px 12px;border-radius:100px}
    .modal-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.6rem;line-height:1.15}
    .modal-desc{color:var(--gray);font-size:0.92rem;line-height:1.75}
    .modal-specs-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .modal-spec{background:var(--dark3);border-radius:8px;padding:12px 14px}
    .modal-spec-key{font-size:0.65rem;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}
    .modal-spec-val{font-size:0.92rem;font-weight:600}
    .modal-section-title{font-family:'Montserrat',sans-serif;font-weight:700;font-size:0.8rem;letter-spacing:1px;color:rgba(255,255,255,0.4);text-transform:uppercase;margin-top:6px}
    .modal-list{display:flex;flex-wrap:wrap;gap:7px}
    .modal-chip{font-size:0.78rem;padding:5px 12px;border-radius:100px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.75)}
    .modal-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}

    @media(max-width:768px){
      .product-grid{grid-template-columns:1fr;gap:22px}
      .prod-body{padding:22px}
      .prod-specs{grid-template-columns:1fr!important}
      .prod-actions{flex-direction:column}
      .modal-grid{grid-template-columns:1fr}
      .modal-img{height:220px}
      .modal-specs-grid{grid-template-columns:1fr!important}
    }
  
/* nav-fix 内联,移除渲染阻塞的外部 CSS 请求 */
.nav-dropdown{position:relative}.nav-dropdown::after{content:"";display:none;position:absolute;left:-24px;right:-24px;top:100%;height:18px;z-index:1999}.nav-dropdown:hover::after,.nav-dropdown:focus-within::after{display:block}.nav-dropdown .dropdown-menu{display:none;position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);background:rgba(10,10,15,.97);border:1px solid rgba(201,168,76,.22);border-radius:10px;padding:8px 0;min-width:185px;list-style:none;margin:0;z-index:2000;box-shadow:0 16px 48px rgba(0,0,0,.5);backdrop-filter:blur(12px)}.nav-dropdown:hover .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu{display:block}.nav-dropdown .dropdown-menu li{list-style:none;margin:0;padding:0}.nav-dropdown .dropdown-menu li a{display:block;margin:0!important;padding:10px 20px!important;color:rgba(255,255,255,.76);font-size:.84rem;font-weight:600;text-transform:none;letter-spacing:0;white-space:nowrap;text-decoration:none}.nav-dropdown .dropdown-menu li a::after{display:none!important;content:none!important}.nav-dropdown .dropdown-menu li a:hover{color:var(--gold,#C9A84C);background:rgba(201,168,76,.08)}.nav-toggle{display:none;flex-direction:column;gap:5px;align-items:center;justify-content:center;width:42px;height:38px;padding:7px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:rgba(255,255,255,.04);cursor:pointer}.nav-toggle span{display:block;width:24px;height:2px;background:#fff;border-radius:2px}@media(max-width:768px){nav{min-height:65px}nav .nav-links{display:none!important;position:fixed!important;top:65px!important;left:0!important;right:0!important;width:100%!important;max-height:calc(100vh - 65px);overflow-y:auto;background:rgba(10,10,15,.98);flex-direction:column!important;align-items:flex-start!important;gap:14px!important;padding:22px 6% 26px!important;border-bottom:1px solid rgba(201,168,76,.18);box-shadow:0 20px 50px rgba(0,0,0,.45);z-index:1999}nav .nav-links.open{display:flex!important}nav .nav-links>li{width:100%}nav .nav-links a{margin-left:0!important}.nav-toggle{display:flex!important;flex-shrink:0}.nav-dropdown>a::after{content:none!important}.nav-dropdown .dropdown-menu{display:none!important;position:static!important;transform:none!important;width:100%;min-width:0;margin-top:8px;padding:0 0 0 14px!important;border:0;border-left:1px solid rgba(201,168,76,.25);border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}.nav-dropdown::after{display:none!important}.nav-dropdown .dropdown-menu li a{padding:7px 0!important}}
  
/* ux.css 内联,消除渲染阻塞请求 */
/* ===== UX Pack — motion & interaction layer =====
   Loaded on every page after page styles. Only touches ux-* classes
   plus a few safe hover deepeners. */

/* 1. Scroll reveal */
.ux-reveal { opacity: 0; transform: translateY(26px); transition: opacity .6s ease var(--ux-d, 0ms), transform .6s cubic-bezier(.22,.61,.36,1) var(--ux-d, 0ms); }
.ux-reveal.ux-in { opacity: 1; transform: none; }

/* 2. FAQ accordion (progressive enhancement over static .faq-item) */
.ux-faq .faq-q { cursor: pointer; position: relative; padding-right: 42px; user-select: none; }
.ux-faq .faq-q::after { content: '+'; position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-size: 1.35rem; font-weight: 700; color: var(--gold, #C9A84C); transition: transform .3s; line-height: 1; }
.ux-faq.ux-open .faq-q::after { transform: translateY(-50%) rotate(45deg); }
.ux-faq .faq-a { overflow: hidden; max-height: 0; opacity: 0; transition: max-height .45s cubic-bezier(.33,1,.68,1), opacity .35s, padding-top .3s, padding-bottom .3s, margin-top .3s, margin-bottom .3s; }
.ux-faq:not(.ux-open) .faq-a { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.ux-faq.ux-open .faq-a { opacity: 1; }
.ux-faq .faq-q:focus-visible { outline: 2px solid var(--gold, #C9A84C); outline-offset: 3px; border-radius: 4px; }

/* 3. Lightbox */
.ux-zoomable { cursor: zoom-in; transition: transform .35s ease; }
.ux-zoomable:hover { transform: scale(1.015); }
.ux-lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(4,4,8,.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 14px; opacity: 0; pointer-events: none; transition: opacity .3s; padding: 4vh 4vw; }
.ux-lightbox.ux-lb-on { opacity: 1; pointer-events: auto; }
.ux-lightbox img { max-width: 92vw; max-height: 80vh; border-radius: 10px; box-shadow: 0 30px 90px rgba(0,0,0,.7); transform: scale(.94); transition: transform .35s cubic-bezier(.22,.61,.36,1); cursor: zoom-out; }
.ux-lightbox.ux-lb-on img { transform: scale(1); }
.ux-lb-cap { color: rgba(255,255,255,.78); font-size: .88rem; text-align: center; max-width: 640px; line-height: 1.5; }
.ux-lb-close { position: absolute; top: 16px; right: 22px; background: none; border: none; color: #fff; font-size: 2.4rem; cursor: pointer; line-height: 1; opacity: .7; transition: opacity .2s, transform .25s; z-index: 1; }
.ux-lb-close:hover { opacity: 1; transform: rotate(90deg); }

/* 4. Back to top */
.ux-top { position: fixed; bottom: 112px; right: 30px; z-index: 997; width: 44px; height: 44px; border-radius: 50%; background: rgba(28,28,40,.9); border: 1px solid rgba(201,168,76,.45); color: var(--gold, #C9A84C); font-size: 1.05rem; cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity .3s, transform .3s, background .2s, color .2s; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ux-top.ux-top-on { opacity: 1; pointer-events: auto; transform: none; }
.ux-top:hover { background: var(--gold, #C9A84C); color: #0A0A0F; }
@media (max-width: 768px) { .ux-top { display: none; } }

/* 5. Responsive tables */
.ux-tscroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ux-tscroll > table { min-width: 560px; }

/* 6. Card image micro-interaction (deepens existing hover) */
.card { overflow: hidden; }
.card img, .prod-img img { transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.card:hover img, .prod-card:hover .prod-img img { transform: scale(1.05); }

/* 7. Button press feedback */
.btn-primary:active, .btn-submit:active, .btn-gold:active, .btn-outline:active, .btn-gold-outline:active { transform: translateY(0) scale(.97); transition-duration: .08s; }

/* 8. Reduced motion: disable everything */
@media (prefers-reduced-motion: reduce) {
  .ux-reveal { opacity: 1; transform: none; transition: none; }
  .ux-zoomable, .card img, .prod-img img, .ux-lightbox img { transition: none; }
  .ux-faq .faq-a { transition: none; }
  html { scroll-behavior: auto; }
}
