:root { color-scheme: light; --ink:#202020; --muted:#818181; --line:#e9e9e9; --sale:#c5203e; --soft:#f7f7f7; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:Arial, "Noto Sans TC", "PingFang TC", sans-serif; font-size:14px; }
button, input { font:inherit; }
a { color:inherit; text-decoration:none; }
.announcement { height:45px; display:grid; place-items:center; background:#5b5b5b; color:white; font-size:13px; font-weight:600; }
.site-header { position:sticky; top:0; z-index:10; background:#fff; box-shadow:0 1px 4px rgb(0 0 0 / 8%); }
.header-inner { min-height:80px; max-width:1390px; margin:auto; padding:0 26px; display:flex; align-items:center; gap:28px; }
.brand { flex:0 0 160px; height:54px; display:flex; align-items:center; justify-content:center; }
.brand img { display:block; width:154px; height:auto; max-height:42px; object-fit:contain; }
.primary-nav { display:flex; align-items:center; justify-content:center; gap:24px; flex:1; white-space:nowrap; font-size:15px; }
.primary-nav a:hover, .sidebar a:hover { color:#9c2941; }
.nav-dropdown { position:relative; display:inline-flex; align-items:center; height:80px; }
.dropdown-menu { position:absolute; top:68px; left:-18px; z-index:2; display:none; min-width:220px; padding:10px 0; background:#fff; border:1px solid #eee; box-shadow:0 8px 24px rgb(0 0 0 / 12%); }
.dropdown-menu a { display:block; padding:10px 18px; }
.nav-dropdown:hover .dropdown-menu, .nav-dropdown:focus-within .dropdown-menu { display:block; }
.header-actions { display:flex; align-items:center; gap:13px; white-space:nowrap; }
.language-button, .icon-button { border:0; background:none; color:#252525; padding:4px; cursor:pointer; }
.language-button { display:none; font-size:13px; }
.icon-button { position:relative; font-size:23px; line-height:1; }
.cart-count { position:absolute; right:-2px; bottom:0; min-width:13px; height:13px; display:grid; place-items:center; border-radius:50%; background:#262626; color:#fff; font-size:8px; }
.mobile-menu-button, .mobile-menu { display:none; }
.search-panel { max-width:1390px; margin:auto; padding:0 26px 18px; }
.search-panel label { display:block; margin-bottom:7px; font-size:12px; color:var(--muted); }
.search-panel input { width:100%; padding:11px 13px; border:1px solid #d0d0d0; outline-color:#444; }
.breadcrumb { max-width:1390px; margin:0 auto; padding:11px 26px; color:#777; font-size:13px; }
.hero { position:relative; overflow:hidden; background:#111; }
.hero img { display:block; width:100%; height:auto; aspect-ratio:3/1; object-fit:cover; }
.catalogue { max-width:1320px; margin:0 auto; padding:70px 24px 100px; display:grid; grid-template-columns:215px minmax(0,1fr); gap:42px; }
.sidebar { color:#777; font-size:16px; line-height:1.45; }
.sidebar h2 { margin:0 0 28px; color:#3e3e3e; font-size:15px; font-weight:600; }
.sidebar details { margin:0 0 21px; }
.sidebar summary { list-style:none; color:#4c4c4c; cursor:pointer; margin-bottom:13px; }
.sidebar summary::after { content:'⌃'; float:right; font-size:13px; }
.sidebar details:not([open]) summary::after { content:'›'; }
.sidebar a { display:block; padding:8px 7px; }
.sidebar-strong { color:#4c4c4c; font-weight:600; margin:18px 0; }
.catalogue-toolbar { min-height:35px; display:flex; align-items:flex-start; justify-content:space-between; color:#555; font-size:14px; }
.catalogue-toolbar button { border:0; background:none; color:#777; cursor:pointer; text-decoration:underline; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:11px; row-gap:103px; }
.product-card { min-width:0; text-align:center; }
.product-link { display:block; }
.product-image-wrap { position:relative; aspect-ratio:1/1; overflow:hidden; background:var(--soft); }
.product-image-wrap img { width:100%; height:100%; display:block; object-fit:cover; }
.product-label { position:absolute; top:0; left:0; background:#c9302c; color:#fff; padding:7px 7px 6px; font-size:11px; font-weight:700; }
.sold-out { position:absolute; right:5px; bottom:2px; color:#fff; font-size:13px; font-weight:700; text-shadow:0 1px 2px #333; }
.product-card h3 { margin:12px 5px 7px; min-height:20px; font-size:15px; font-weight:500; line-height:1.4; }
.price { display:flex; justify-content:center; gap:6px; align-items:baseline; font-weight:700; font-size:16px; }
.price.sale { color:var(--sale); }
.price s { color:#777; font-weight:400; }
.empty-state { padding:60px 0; color:#777; text-align:center; }
.pagination { display:flex; justify-content:center; align-items:center; gap:0; margin:80px 0 10px; }
.pagination a { width:37px; height:37px; display:grid; place-items:center; color:#888; border:1px solid #e5e5e5; margin-left:-1px; }
.pagination a:hover, .pagination a.active { color:#fff; background:#555; border-color:#555; }
.sidebar a.active { color:#202020; font-weight:600; }
.product-page { max-width:970px; margin:0 auto; padding:55px 20px 100px; display:grid; grid-template-columns:520px 400px; gap:38px; }
.product-gallery { display:grid; grid-template-columns:75px 1fr; gap:24px; }
.product-thumbnails { display:flex; flex-direction:column; gap:10px; }
.product-thumb { width:73px; height:73px; padding:0; border:1px solid transparent; background:#eee; cursor:pointer; }
.product-thumb.active { border-color:#bd294b; }
.product-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.product-main-image { width:415px; height:415px; background:#f2f2f2; }
.product-main-image img { width:100%; height:100%; object-fit:cover; display:block; }
.product-info h1 { margin:0 0 16px; font-size:30px; line-height:1.35; font-weight:500; }
.product-bullets { margin:0 0 18px; padding:0 0 18px 19px; border-bottom:1px solid #e5e5e5; font-size:15px; line-height:1.55; }
.shipping-note { margin:42px 0 23px; padding-left:10px; border-left:3px solid #bd294b; line-height:1.8; }
.product-price { display:flex; gap:18px; align-items:baseline; margin:18px 0; color:#bd294b; font-size:22px; font-weight:700; }
.product-price s { color:#aaa; font-size:16px; font-weight:400; }
.variant-label { display:block; margin:0 0 10px; color:#777; }
.variant-select { width:100%; height:40px; padding:0 10px; border:1px solid #ddd; background:#fff; color:#777; }
.stock-state { margin:22px 0; text-align:center; color:#999; font-size:20px; }
.buy-button { width:100%; height:44px; border:0; background:#bd294b; color:#fff; cursor:pointer; }
.buy-button:active { transform:translateY(1px); }
.wishlist { display:block; margin:18px auto; border:0; background:none; color:#555; cursor:pointer; }
.product-description { max-width:1254px; margin:0 auto; padding:20px 20px 90px; }
.product-description img { display:block; width:100%; height:auto; margin:30px auto; }
.content-page { max-width:1050px; margin:0 auto; min-height:620px; padding:65px 24px 100px; }
.content-page h1 { margin:0 0 30px; font-size:30px; font-weight:500; }
.content-page h2 { margin:34px 0 13px; font-size:20px; }
.content-page p, .content-page li { color:#666; font-size:16px; line-height:1.9; }
.site-footer { display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px; padding:48px max(24px,calc((100vw - 1272px)/2)); background:#202020; color:#f8f8f8; }
.site-footer strong { display:block; margin-bottom:14px; letter-spacing:1px; }
.site-footer p { color:#bfbfbf; }
.site-footer a { display:block; margin:9px 0; color:#c4c4c4; }
.back-to-top { position:fixed; right:26px; bottom:26px; width:38px; height:38px; border:1px solid #ddd; background:#fff; color:#999; cursor:pointer; font-size:22px; }
.home-main { padding:115px 0 0; }
.home-header { position:relative; }
.home-banner { display:block; width:min(1110px,calc(100% - 48px)); margin:0 auto 90px; }
.home-banner img { display:block; width:100%; height:auto; }
.category-spotlight { position:relative; overflow:hidden; background:#080808; color:#fff; }
.category-spotlight::after { content:''; position:absolute; inset:0; background:radial-gradient(circle at 50% 15%,rgb(0 0 0 / 58%),transparent 34%); pointer-events:none; }
.category-spotlight > img { transition:transform .45s ease,filter .45s ease; }
.category-spotlight:hover > img { transform:scale(1.012); filter:brightness(.92); }
.spotlight-copy { position:absolute; top:7%; left:50%; z-index:1; display:flex; width:min(46%,470px); transform:translateX(-50%); align-items:center; flex-direction:column; text-align:center; text-shadow:0 2px 16px #000; }
.spotlight-copy > img { width:min(205px,54%); filter:invert(1); }
.spotlight-copy strong { margin-top:10px; color:#f2ede5; font-family:"Noto Serif TC","Songti TC",serif; font-size:clamp(25px,3vw,43px); font-weight:700; letter-spacing:.08em; line-height:1.2; }
.spotlight-copy span { margin-top:10px; color:#e4d4bf; font-size:clamp(10px,1.2vw,16px); letter-spacing:.18em; }
.spotlight-copy b { margin-top:18px; padding:8px 24px; border:1px solid rgb(255 255 255 / 68%); color:#fff; font-size:12px; letter-spacing:.18em; }
.home-guide { width:min(1110px,calc(100% - 48px)); margin:0 auto 105px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:90px; }
.home-guide img { display:block; width:100%; height:auto; }
.home-guide div { text-align:center; }
.home-guide h2 { margin:0 0 24px; font-size:24px; font-weight:500; }
.home-guide p { margin:0 0 34px; color:#777; font-size:18px; }
.home-cta { display:block; max-width:240px; margin:auto; padding:12px 20px; background:#bd294b; color:#fff; font-weight:700; }
.home-products { width:min(1110px,calc(100% - 48px)); margin:0 auto; padding:0 0 110px; text-align:center; }
.home-products h2 { margin:0 0 44px; font-size:25px; font-weight:500; }
.home-product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); row-gap:70px; text-align:center; }
.home-more { display:inline-block; margin-top:70px; min-width:220px; padding:13px 24px; border:1px solid #333; }
@media (max-width:1320px) { .primary-nav { gap:10px; font-size:12px; } .header-inner { gap:10px; padding-inline:16px; } .brand { flex-basis:138px; } .brand img { width:132px; } .language-button { display:none; } .header-actions { gap:8px; } }
@media (max-width:970px) { .header-inner { min-height:68px; padding:0 18px; justify-content:space-between; } .primary-nav { display:none; } .mobile-menu-button { display:grid; place-content:center; gap:5px; width:44px; height:44px; padding:8px; border:0; background:none; cursor:pointer; } .mobile-menu-button span { width:22px; height:1px; background:#222; display:block; transition:transform .2s ease,opacity .2s ease; } .mobile-menu-button[aria-expanded="true"] span:nth-child(1) { transform:translateY(6px) rotate(45deg); } .mobile-menu-button[aria-expanded="true"] span:nth-child(2) { opacity:0; } .mobile-menu-button[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); } .brand { flex:initial; height:50px; } .brand img { width:128px; height:auto; max-height:38px; } .header-actions { gap:7px; } .mobile-menu { padding:0 18px 16px; border-top:1px solid var(--line); background:#fff; } .mobile-menu:not([hidden]) { display:block; } .mobile-menu a, .mobile-search-button { display:block; width:100%; padding:14px 0; border:0; border-bottom:1px solid var(--line); background:none; color:inherit; text-align:left; cursor:pointer; } .catalogue { grid-template-columns:1fr; padding-top:40px; } .sidebar { display:none; } .product-page { grid-template-columns:1fr; max-width:600px; } .product-info { padding:0 20px; } .home-main { padding-top:55px; } .home-banner { margin-bottom:52px; } .home-guide { gap:35px; margin-bottom:70px; } .home-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .announcement { height:35px; font-size:12px; } .header-actions .icon-button:nth-of-type(2) { display:none; } .breadcrumb { padding:9px 16px; font-size:12px; } .hero img { min-height:220px; object-position:center; } .catalogue { padding:32px 12px 68px; } .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px 7px; } .product-card h3 { min-height:40px; font-size:13px; } .price { font-size:14px; } .site-footer { grid-template-columns:1fr; padding:36px 24px; gap:22px; } .back-to-top { right:15px; bottom:15px; } .product-page { padding:35px 12px 70px; } .product-gallery { grid-template-columns:1fr; } .product-thumbnails { order:2; flex-direction:row; overflow:auto; } .product-main-image { width:100%; height:auto; aspect-ratio:1; } .product-info h1 { font-size:24px; } .home-main { padding-top:28px; } .home-banner, .home-guide, .home-products { width:calc(100% - 24px); } .home-banner { margin-bottom:38px; } .category-spotlight::after { background:linear-gradient(180deg,rgb(0 0 0 / 72%) 0%,transparent 45%); } .spotlight-copy { top:5%; width:68%; } .spotlight-copy > img { width:112px; } .spotlight-copy strong { margin-top:7px; font-size:21px; letter-spacing:.04em; } .spotlight-copy span { margin-top:6px; font-size:9px; letter-spacing:.08em; } .spotlight-copy b { margin-top:10px; padding:6px 14px; font-size:9px; } .home-guide { grid-template-columns:1fr; gap:27px; margin-bottom:62px; } .home-guide h2 { font-size:21px; } .home-products h2 { margin-bottom:30px; } .home-more { margin-top:50px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .product-image-wrap img { transition:none; } }

.utility-open { overflow:hidden; }
.utility-overlay { position:fixed; inset:0; z-index:80; background:rgb(20 20 20 / 52%); }
.utility-dialog { position:fixed; top:50%; left:50%; z-index:82; width:min(480px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; transform:translate(-50%,-50%); padding:34px; border:1px solid #ddd; background:#fff; box-shadow:0 22px 70px rgb(20 20 20 / 24%); }
.utility-dialog[hidden], .utility-overlay[hidden] { display:none; }
.utility-dialog h2, .drawer-heading h2 { margin:0; font-size:24px; font-weight:600; }
.utility-close { width:42px; height:42px; padding:0; border:0; background:none; color:#333; cursor:pointer; font-size:28px; line-height:1; }
.utility-dialog > .utility-close { position:absolute; top:16px; right:16px; }
.utility-intro { margin:12px 42px 24px 0; color:#666; line-height:1.7; }
.global-search-form, .profile-form { display:grid; gap:10px; }
.global-search-form label, .profile-form label { margin-top:8px; color:#444; font-size:13px; font-weight:600; }
.global-search-form input, .profile-form input { width:100%; min-height:46px; padding:10px 12px; border:1px solid #aaa; background:#fff; color:#222; outline:0; }
.global-search-form input:focus, .profile-form input:focus { border-color:#202020; box-shadow:0 0 0 2px rgb(32 32 32 / 16%); }
.global-search-form button, .profile-form button, .drawer-primary { min-height:46px; margin-top:10px; padding:10px 18px; border:1px solid #202020; background:#202020; color:#fff; cursor:pointer; font-weight:700; }
.global-search-form button:active, .profile-form button:active, .drawer-primary:active, .drawer-secondary:active { transform:translateY(1px); }
.cart-drawer { position:fixed; top:0; right:0; z-index:82; width:min(430px,100%); height:100dvh; display:flex; flex-direction:column; padding:26px; visibility:hidden; transform:translateX(100%); background:#fff; box-shadow:-20px 0 60px rgb(20 20 20 / 18%); transition:transform .24s ease,visibility .24s; }
.cart-drawer.is-open { visibility:visible; transform:translateX(0); }
.drawer-heading { display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid var(--line); }
.cart-items { flex:1; overflow:auto; padding:8px 0; }
.cart-item { display:grid; grid-template-columns:82px 1fr; gap:15px; padding:16px 0; border-bottom:1px solid var(--line); }
.cart-item img { width:82px; height:82px; display:block; object-fit:cover; background:var(--soft); }
.cart-item a { display:block; margin-bottom:8px; line-height:1.45; }
.cart-item strong { display:block; color:var(--sale); }
.quantity-control { display:flex; align-items:center; gap:7px; margin-top:12px; }
.quantity-control button { min-width:30px; height:30px; padding:0 8px; border:1px solid #ccc; background:#fff; cursor:pointer; }
.quantity-control .cart-remove { margin-left:auto; border:0; color:#666; text-decoration:underline; }
.cart-summary { display:flex; justify-content:space-between; padding:18px 0 8px; border-top:1px solid #202020; font-size:16px; }
.drawer-primary { width:100%; }
.drawer-primary:disabled { cursor:not-allowed; opacity:.45; }
.drawer-secondary { display:grid; min-height:44px; margin-top:10px; place-items:center; border:1px solid #333; }
.drawer-note { margin:14px 0 0; color:#666; font-size:12px; line-height:1.6; }
.drawer-empty { padding:70px 20px; text-align:center; }
.drawer-empty p { color:#777; }
.wishlist-summary { margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }
.wishlist-summary h3 { margin:0 0 12px; font-size:16px; }
.wishlist-summary a { display:block; padding:9px 0; border-bottom:1px solid var(--line); }
.wishlist.active { color:#bd294b; }
.site-toast { position:fixed; left:50%; bottom:28px; z-index:90; transform:translateX(-50%); padding:12px 18px; background:#202020; color:#fff; box-shadow:0 8px 30px rgb(20 20 20 / 22%); font-weight:600; }
.product-care, .product-not-found { max-width:780px; margin:20px auto; padding:42px 24px; text-align:center; }
.product-care h2, .product-not-found h1 { margin:0 0 16px; font-size:25px; }
.product-care p, .product-not-found p { color:#666; font-size:16px; line-height:1.8; }
.product-not-found { min-height:520px; }
.product-not-found .home-cta { margin-top:28px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline:2px solid #202020; outline-offset:3px; }

@media (max-width:560px) {
  .utility-dialog { width:calc(100% - 24px); padding:28px 20px; }
  .cart-drawer { padding:20px 16px; }
  .cart-item { grid-template-columns:72px 1fr; }
  .cart-item img { width:72px; height:72px; }
  .site-toast { bottom:18px; white-space:nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  .cart-drawer { transition:none; }
}
