/* B2 editorial skin; source: Kelly's TemplateB2 and Ishana optimized reference.
   Shared renderer DOM stays unchanged. Detail pages continue to use buy.css. */
body.tpl-b2{margin:0;background:#fbfaf7;color:#1f1d1a;font:400 15px/1.85 "Noto Sans TC","PingFang TC",sans-serif;-webkit-font-smoothing:antialiased}
.tpl-b2 *,.tpl-b2 *::before,.tpl-b2 *::after{box-sizing:border-box}
.tpl-b2 h1,.tpl-b2 h2,.tpl-b2 h3{margin:0;font-family:"Noto Serif TC",serif;font-weight:400;line-height:1.5}
.tpl-b2 p{margin:0}.tpl-b2 a{color:inherit;text-decoration:none}.tpl-b2 button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
.tpl-b2 svg{width:20px;height:20px;flex-shrink:0}.tpl-b2 img{display:block;max-width:100%;object-fit:cover}
.tpl-b2 :focus-visible{outline:2px solid #6f6a60;outline-offset:4px}
.tpl-b2 [hidden],.tpl-b2 .off{display:none!important}
.tpl-b2 .site-header{display:flex;align-items:center;gap:12px;padding:3px 24px;border-bottom:1px solid #e3dfd4;position:sticky;top:0;background:#fbfaf7}
.tpl-b2 .brand{font:400 18px/1.5 "Noto Serif TC",serif;letter-spacing:.06em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tpl-b2 .brand-logo{max-height:32px;max-width:160px;width:auto;height:auto;object-fit:contain;flex:0 0 auto}
.tpl-b2 .site-header:has(.brand.off) .brand-logo{max-width:100%;min-width:0;flex:0 1 auto}
.tpl-b2 .menu-open{margin-left:auto}.tpl-b2 .menu-open,.tpl-b2 .menu-close{display:grid;place-items:center;min-width:48px;min-height:48px}
.tpl-b2 .menu{position:fixed;inset:0;z-index:50}.tpl-b2 .menu-scrim{position:absolute;inset:0;background:#0006}
.tpl-b2 .menu-sheet{position:relative;background:#fbfaf7;padding:32px 24px;max-height:100dvh;overflow:auto}
.tpl-b2 .menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.tpl-b2 .menu-item{display:flex;align-items:center;gap:20px;min-height:62px;border-top:1px solid #e3dfd4}
.tpl-b2 .menu-no{font-size:12px;color:#6f6a60;letter-spacing:.08em}.tpl-b2 .menu-label{font:400 18px/1.5 "Noto Serif TC",serif;letter-spacing:.04em}
.tpl-b2 .hero{display:flex;flex-direction:column;padding:24px 24px 0}.tpl-b2 .hero-media{display:contents}
.tpl-b2 .hero-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:4px;order:0}
.tpl-b2 .hero-track::-webkit-scrollbar{display:none}.tpl-b2 .hero-img{flex:0 0 100%;width:100%;min-width:0;aspect-ratio:4/5;scroll-snap-align:start}
.tpl-b2 .hero-strip{order:1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;color:#6f6a60;font-size:12px}
.tpl-b2 .dots{display:flex;gap:6px;align-items:center;flex-shrink:0}.tpl-b2 .dots i{display:block;width:5px;height:5px;border-radius:5px;background:#c9c4ba}.tpl-b2 .dots i.on{width:18px;background:#1f1d1a}
.tpl-b2 .hero-text{order:2;position:static;padding:32px 0 8px}.tpl-b2 .hero-title{font-size:36px;letter-spacing:.02em;line-height:1.55}.tpl-b2 .hero-sub{margin-top:18px;max-width:34em;color:#6f6a60;line-height:1.85}
.tpl-b2 .sec{padding:48px 24px;scroll-margin-top:84px}.tpl-b2 .sec-title{font-size:28px;letter-spacing:.03em}.tpl-b2 .sec-head{margin-bottom:24px}
.tpl-b2 .eyebrow{font-size:12px;letter-spacing:.14em;color:#6f6a60}.tpl-b2 .sec-about>.eyebrow,.tpl-b2 .sec-products .eyebrow,.tpl-b2 .sec-faq>.eyebrow{display:none}
.tpl-b2 .rule{width:32px;height:1px;border:0;background:#1f1d1a;margin:20px 0}.tpl-b2 .sec-text{color:#6f6a60;line-height:1.95;margin-top:20px}.tpl-b2 .sec-photo{width:100%;aspect-ratio:3/2;border-radius:4px;margin-top:24px}
.tpl-b2 .sec-gallery{padding-top:0;padding-bottom:0}.tpl-b2 .sec-gallery .sec-head{display:flex;justify-content:space-between;align-items:center}.tpl-b2 .hint{font-size:12px;color:#6f6a60}
.tpl-b2 .gallery-scroller,.tpl-b2 .video-scroller{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:10px}
.tpl-b2 .gallery-img{flex:0 0 88%;width:88%;min-width:0;aspect-ratio:3/2;border-radius:4px;scroll-snap-align:start}
.tpl-b2 .product-card{position:relative;display:flex;flex-direction:column;gap:14px;margin-bottom:44px;min-width:0}
.tpl-b2 .product-photo{object-fit:contain;background:#fff;width:100%;aspect-ratio:3/2;border-radius:4px}.tpl-b2 .product-name{font-size:25px}.tpl-b2 .product-desc{color:#6f6a60;line-height:1.85;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* 首頁商品卡：手機 5:4＝商品照裁切的比例（Kelly 2026-09-25）；桌機 3:2 */
@media(max-width:767px){.tpl-b2 .product-photo{aspect-ratio:5/4}}
.tpl-b2 .product-rule{border:0;border-top:1px solid #e3dfd4;width:100%;margin:0}.tpl-b2 .product-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tpl-b2 .product-duration{display:flex;align-items:center;gap:6px;font-size:13px;color:#6f6a60}.tpl-b2 .product-duration svg{width:16px;height:16px}.tpl-b2 .product-price{font:400 21px/1.5 "Noto Serif TC",serif;white-space:nowrap}
.tpl-b2 .product-cta{align-self:flex-end;border:1px solid #1f1d1a;border-radius:999px;min-height:48px;padding:9px 24px;display:flex;align-items:center}.tpl-b2 .product-open{display:none}
.tpl-b2 .is-soldout .product-photo{opacity:.45}
.tpl-b2 .sec-faq{border-top:1px solid #e3dfd4}.tpl-b2 .sec-faq>.sec-title{margin-bottom:24px}.tpl-b2 .faq-item{border-bottom:1px solid #e3dfd4}
.tpl-b2 .faq-q{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;text-align:left;min-height:64px;padding:18px 0}.tpl-b2 .faq-q h3{font:400 16px/1.7 "Noto Sans TC",sans-serif}
.tpl-b2 .faq-toggle::before{content:'+'}.tpl-b2 .open .faq-toggle::before{content:'−'}.tpl-b2 .faq-a{display:none;color:#6f6a60;padding:0 24px 22px 0}.tpl-b2 .open .faq-a{display:block}
.tpl-b2 .links-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.tpl-b2 .link-item{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 16px;border:1px solid #e3dfd4;border-radius:4px}.tpl-b2 .link-label{font-weight:400}.tpl-b2 .link-arrow{display:none}
.tpl-b2 .video-item{flex:0 0 88%;width:88%;aspect-ratio:16/9;border:0;border-radius:4px;scroll-snap-align:start}
.tpl-b2 .site-footer{display:flex;flex-direction:column;gap:28px;border-top:1px solid #e3dfd4;padding:40px 24px 28px}.tpl-b2 .copyright{font-size:11px;color:#6f6a60}
.tpl-b2 .list-nav{display:flex;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid #e3dfd4}.tpl-b2 .list-back{display:grid;place-items:center;min-width:48px;min-height:48px}.tpl-b2 .list-body{padding:40px 24px}.tpl-b2 .list-body .sec-products{padding:24px 0 0}
.tpl-b2 .product-filters{display:flex;gap:8px;overflow-x:auto;padding:8px 0}.tpl-b2 .product-filter{display:flex;align-items:center;gap:8px;white-space:nowrap;min-height:48px;padding:8px 18px;border:1px solid #e3dfd4;border-radius:999px}.tpl-b2 .product-filter.on{color:#fbfaf7;background:#1f1d1a;border-color:#1f1d1a}.tpl-b2 .product-filter-count{font-style:normal;font-size:12px}
/* Same floating cart geometry as A2 and the shared product detail page. */
.tpl-b2 .cart-fab{position:fixed;right:20px;bottom:24px;z-index:40;display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:#1a1c1a;color:#faf9f6;box-shadow:0 4px 14px rgba(26,28,26,.28)}
.tpl-b2 .cart-count{position:absolute;top:-3px;right:-3px;display:flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#bc5816;color:#faf9f6;border:2px solid #faf9f6;font-size:12px}
@media(hover:hover){.tpl-b2 .menu-item:hover,.tpl-b2 .link-item:hover,.tpl-b2 .product-card:hover .product-cta{background:#efede6}}
@media(prefers-reduced-motion:reduce){.tpl-b2 *{scroll-behavior:auto!important}}

/* Full-height editorial menu, with member access anchored below navigation. */
.tpl-b2 .menu-sheet { display: flex; flex-direction: column; height: 100dvh; background: #fff; color: #1a1c1a; padding: 30px 24px calc(20px + env(safe-area-inset-bottom, 0px)); overscroll-behavior: contain; }
.tpl-b2 .menu-head { flex-shrink: 0; margin-bottom: 8px; }
.tpl-b2 .menu-links { flex-shrink: 0; padding-bottom: 28px; }
.tpl-b2 .menu-links::before { content: "MENU"; display: block; margin-bottom: 12px; font-size: 11px; letter-spacing: .18em; color: #6b6d68; }
.tpl-b2 .menu-links .menu-item { min-height: 69px; border-top: 0; border-bottom: 1px solid #e3dfd4; }
.tpl-b2 .menu-no { color: #6b6d68; }
.tpl-b2 .menu-label { font-size: 28px; }
.tpl-b2 .menu-footer { flex-shrink: 0; margin-top: auto; padding-top: 20px; border-top: 1px solid #e3dfd4; }
.tpl-b2 .menu-footer .member-entry { justify-content: center; min-height: 50px; padding: 12px 20px; border: 0; border-radius: 999px; background: #1a1c1a; color: #fff; font: 500 15px/1.5 "Noto Sans TC", sans-serif; letter-spacing: .06em; }
@media(hover:hover) { .tpl-b2 .menu-links .menu-item:hover { background: #f4f1ea; } }
