:root{--on-error: #fff7f6;--primary-fixed: #d2e9ce;--on-primary: #e9ffe4;--on-secondary-fixed: #433f35;--inverse-surface: #0d0f0d;--surface-container: #eceeea;--on-secondary-fixed-variant: #605b50;--tertiary-fixed-dim: #efd6bb;--tertiary-dim: #62503b;--on-secondary-container: #565146;--tertiary: #6e5c46;--tertiary-container: #fee4c8;--outline-variant: #afb3af;--on-background: #2f3330;--surface-variant: #e0e3df;--error-container: #fd795a;--surface: #f9f9f6;--primary-dim: #455843;--on-surface: #2f3330;--surface-container-highest: #e0e3df;--on-tertiary-fixed: #50402c;--on-tertiary: #fff7f3;--on-primary-container: #435742;--inverse-on-surface: #9c9d9b;--secondary: #645e53;--on-surface-variant: #5c605d;--primary: #50644f;--background: #f9f9f6;--on-primary-fixed-variant: #4d614b;--secondary-dim: #585348;--primary-container: #d2e9ce;--secondary-fixed-dim: #dcd3c5;--surface-tint: #50644f;--surface-container-lowest: #ffffff;--on-tertiary-container: #64523d;--on-error-container: #6e1400;--secondary-fixed: #eae1d3;--surface-container-low: #f3f4f0;--on-secondary: #fff8ef;--inverse-primary: #e6fde1;--error-dim: #791903;--outline: #777c78;--surface-container-high: #e6e9e5;--primary-fixed-dim: #c4dbc0;--surface-dim: #d7dbd6;--on-primary-fixed: #314431;--on-tertiary-fixed-variant: #6e5c46;--tertiary-fixed: #fee4c8;--surface-bright: #f9f9f6;--error: #a73b21;--secondary-container: #eae1d3}*{box-sizing:border-box}body{margin:0;font-family:Inter,Noto Sans TC,sans-serif;color:var(--on-background);background:var(--background)}h1,h2,h3,h4{font-family:Manrope,Noto Sans TC,sans-serif;margin:0}.container{width:min(1280px,94vw);margin-inline:auto}.page-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--surface-container-low) 92%,white 8%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 30%,transparent)}.nav-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:.75rem}.brand-btn{border:0;background:transparent;cursor:pointer;font-family:Manrope,Noto Sans TC,sans-serif;font-weight:700;font-size:1.25rem;color:#0f2410}.nav-links{display:flex;align-items:center;gap:.4rem}.desktop-actions{display:flex;align-items:center;gap:.35rem}.mobile-header-actions{display:none;align-items:center;gap:.25rem}.link-btn,.text-btn{border:0;background:transparent;color:var(--on-surface-variant);cursor:pointer;padding:.45rem .7rem;border-radius:.4rem;font-size:.9rem}.link-btn:hover,.text-btn:hover{background:var(--surface-container-high);color:var(--primary)}.link-btn.is-active{color:var(--primary);background:color-mix(in srgb,var(--primary-container) 45%,transparent);font-weight:600}.icon-action-btn{border:0;background:transparent;color:var(--on-surface-variant);cursor:pointer;padding:.42rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.icon-action-btn:hover{background:var(--surface-container-high);color:var(--primary)}.mobile-menu-btn{border:0;background:transparent;color:var(--on-surface);cursor:pointer;padding:.35rem}.mobile-menu{display:none;border-top:1px solid color-mix(in srgb,var(--outline-variant) 30%,transparent);background:color-mix(in srgb,var(--surface-container-low) 95%,white 5%)}.mobile-menu-panel{display:grid;gap:.4rem;padding:.7rem 0 1rem}.mobile-menu-panel .link-btn,.mobile-lang-btn{text-align:left}.btn{border:0;border-radius:.2rem;cursor:pointer;padding:.8rem 1rem;font-weight:600}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-secondary{background:var(--surface-container-low);color:var(--on-surface)}.btn-outline{border:1px solid var(--outline);background:transparent;color:var(--on-surface)}.btn-ghost{border:0;background:transparent;color:var(--primary)}.btn-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--primary-container) 55%,transparent)}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.btn-block{width:100%}.section{padding-block:2rem}.top-banner-wrap{flex-shrink:0;padding:.75rem 0 .55rem;background:var(--surface-container-low);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 28%,transparent)}.top-banner-viewport{width:min(1280px,94vw);margin-inline:auto;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}.top-banner-viewport::-webkit-scrollbar{display:none}.top-banner-viewport:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:2px}.top-banner-slides{display:flex}.top-banner-slide{min-width:0;box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:normal}.top-banner-card{border-radius:.35rem;overflow:hidden;background:var(--surface-container-high);border:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}.top-banner-card img{width:100%;height:220px;object-fit:cover;display:block}.top-banner-dots{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem;margin-top:.65rem;padding-bottom:.15rem}.top-banner-dot{width:.5rem;height:.5rem;padding:0;border:none;border-radius:999px;background:color-mix(in srgb,var(--outline) 38%,var(--surface-container-low));cursor:pointer;transition:background .2s ease,transform .2s ease}.top-banner-dot:hover{background:color-mix(in srgb,var(--primary) 35%,var(--outline))}.top-banner-dot.is-active{background:var(--primary);transform:scale(1.15)}.top-banner-dot:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.top-banner-dot{transition:none}}.page-transition{animation-duration:.32s;animation-timing-function:ease;animation-fill-mode:both}.slide-from-right{animation-name:slideFromRight}.slide-from-left{animation-name:slideFromLeft}.muted{color:var(--on-surface-variant)}.hero-banner{position:relative;min-height:62vh}.hero-banner img{width:100%;height:62vh;object-fit:cover;display:block}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,#f9f9f6b8,#f9f9f638);display:grid;align-items:center}.hero-overlay h1{font-size:clamp(2rem,4vw,4.8rem);margin-bottom:.8rem}.hero-overlay p{max-width:560px;margin:0 0 1.2rem}.btn-row{display:flex;flex-wrap:wrap;gap:.65rem}.products-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.products-grid-large{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card{display:flex;flex-direction:column;background:var(--surface-container-lowest);overflow:hidden;border:1px solid color-mix(in srgb,var(--outline-variant) 36%,transparent)}.product-card--clickable{cursor:pointer}.product-card--clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.product-card img{width:100%;aspect-ratio:4 / 5;object-fit:cover;display:block}.product-meta{flex:1;display:flex;flex-direction:column;padding:.9rem;min-height:0}.product-card-body{flex:1;min-height:0}.product-card-body h3{font-size:1.05rem;margin:0 0 .35rem;line-height:1.35}.product-card-footer{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.5rem .75rem;margin-top:auto;padding-top:.65rem}.product-card-cart-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:.45rem;line-height:0}.product-card-cart-btn:disabled{opacity:.45;cursor:not-allowed}.product-card-cart-icon{width:1.25rem;height:1.25rem;display:block}.service-card-consult-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:.4rem;max-width:min(100%,11rem);padding:.45rem .65rem;font-size:.78rem;font-weight:600;line-height:1.2;text-align:left;color:#fff;background:#25d366;border:0;border-radius:.2rem;cursor:pointer}.service-card-consult-btn:hover{filter:brightness(1.06)}.service-card-consult-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.service-card-consult-icon{flex-shrink:0;width:1.05rem;height:1.05rem;display:block}.service-card-consult-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-card-footer .product-price{margin-left:auto;text-align:right}.product-card-footer.product-card-footer--service{justify-content:flex-end;align-items:flex-end;flex-wrap:nowrap}.service-card-footer-stack{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem;max-width:100%;margin-left:auto}.product-price--service-stack{margin-left:0;text-align:right}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-block:1rem}.chip{font-size:.8rem;padding:.35rem .8rem;border-radius:999px;background:var(--surface-container-low);color:var(--on-surface-variant)}.chip-active{color:var(--on-primary);background:var(--primary)}.products-shop-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.products-count{font-size:.9rem}.shop-layout{display:grid;gap:1.5rem;margin-top:1rem}@media (min-width: 900px){.shop-layout{grid-template-columns:minmax(220px,280px) 1fr;align-items:start}.shop-layout--filters-collapsed{grid-template-columns:minmax(4.5rem,5.75rem) 1fr;align-items:start}}.shop-main-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem 1rem;margin-bottom:1rem}.shop-sidebar--collapsed{min-width:0}@media (min-width: 900px){.shop-sidebar--collapsed{position:sticky;top:1rem;align-self:start}}.shop-filters{display:grid;gap:1rem;padding:1rem;background:var(--surface-container-low);border:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent);border-radius:.35rem}.shop-filters--collapsed{gap:0;padding:.55rem .65rem}.shop-filters--collapsed .shop-filters-header{margin-bottom:0;align-items:center}@media (max-width: 899px){.shop-filters--collapsed .shop-filters-header{flex-direction:row;justify-content:space-between;gap:.75rem}.shop-filters--collapsed .shop-filters-title{flex:1;min-width:0;padding-top:0}}@media (min-width: 900px){.shop-filters--collapsed .shop-filters-header{flex-direction:column;justify-content:flex-start;gap:.35rem}.shop-filters--collapsed .shop-filters-title{flex:none;font-size:.72rem;font-weight:700;text-align:center;line-height:1.25;padding-top:0;max-width:100%;word-break:break-word}.shop-filters--collapsed .shop-filters-fold{margin:0}}.shop-filters-form{display:grid;gap:1rem}.shop-filters-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.shop-filters-title{font-size:1rem;margin:0;flex:1;min-width:0;line-height:1.35;padding-top:.15rem}.shop-filters-fold{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin:-.2rem -.35rem 0 0;padding:0;border:none;border-radius:.25rem;background:transparent;color:var(--on-surface-variant);cursor:pointer}.shop-filters-fold:hover{background:color-mix(in srgb,var(--on-surface) 6%,transparent);color:var(--on-surface)}.shop-filters-fold:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px}.shop-filters-fold-icon-wrap{display:inline-flex;animation:shop-filters-fold-nudge 1.35s ease-in-out infinite}.shop-filters-fold-icon{display:block;transition:transform .32s cubic-bezier(.4,0,.2,1)}.shop-filters-fold--expanded .shop-filters-fold-icon{transform:rotate(180deg)}@keyframes shop-filters-fold-nudge{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@media (prefers-reduced-motion: reduce){.shop-filters-fold-icon-wrap{animation:none}.shop-filters-fold-icon{transition-duration:.01ms}}.shop-field,.shop-field span{display:block}.shop-field span{font-size:.78rem;font-weight:600;color:var(--on-surface-variant);margin-bottom:.35rem}.shop-field input,.shop-field select{width:100%;padding:.55rem .65rem;border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);border-radius:.25rem;font:inherit;background:var(--surface-container-lowest);color:var(--on-surface)}.shop-field input:focus,.shop-field select:focus{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px}.shop-field-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.shop-filter-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.shop-toolbar{margin-bottom:.75rem}.shop-toolbar-hint{font-size:.82rem;margin:0;line-height:1.45}.shop-error{padding:.85rem 1rem;margin-bottom:1rem;background:color-mix(in srgb,var(--error-container) 22%,var(--surface));border:1px solid color-mix(in srgb,var(--error) 35%,transparent);border-radius:.3rem;font-size:.9rem}.shop-error-inline{margin-bottom:.85rem}.shop-error-hint{font-size:.82rem;margin:.35rem 0 0;line-height:1.45}.shop-error-detail{margin:.5rem 0 0;font-size:.75rem;white-space:pre-wrap;word-break:break-word;color:var(--on-surface-variant)}.shop-empty{margin:1rem 0}.shop-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .65rem;margin-top:1.75rem;padding-bottom:.5rem}.shop-pagination--top{margin-top:0;padding-bottom:0;flex:1 1 auto;justify-content:flex-end}@media (max-width: 639px){.shop-main-toolbar .shop-pagination--top{justify-content:center;width:100%}}.shop-pagination-pages{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.25rem}.shop-pagination-edge{flex-shrink:0}.shop-page-btn{min-width:2.25rem;height:2.25rem;padding:0 .45rem;border-radius:.25rem;font:inherit;font-size:.88rem;font-weight:600;border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--surface-container-lowest);color:var(--on-surface);cursor:pointer}.shop-page-btn:hover:not(:disabled){background:var(--surface-container-low);border-color:color-mix(in srgb,var(--primary) 35%,var(--outline-variant))}.shop-page-btn:disabled{opacity:.45;cursor:not-allowed}.shop-page-btn.is-current{background:color-mix(in srgb,var(--primary) 18%,var(--surface-container-lowest));border-color:color-mix(in srgb,var(--primary) 45%,transparent);color:var(--primary)}.shop-pagination-ellipsis{display:inline-flex;align-items:center;padding:0 .2rem;font-size:.9rem;color:var(--on-surface-variant);-webkit-user-select:none;user-select:none}.product-price{font-weight:700;color:var(--primary);white-space:nowrap}.service-price-unit{font-weight:600;font-size:.82rem;color:var(--on-surface-variant)}.product-card-subtitle{font-size:.85rem;margin:0 0 .35rem}.product-card-desc{font-size:.8rem;line-height:1.45;margin:0 0 .65rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-card-skeleton{pointer-events:none}.skeleton-img{width:100%;aspect-ratio:4 / 5;background:linear-gradient(90deg,var(--surface-container-high) 0%,var(--surface-container) 50%,var(--surface-container-high) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-line{height:.75rem;border-radius:.2rem;background:var(--surface-container-high);margin-bottom:.45rem;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-line-title{width:70%;height:1rem}.skeleton-line-short{width:40%}.skeleton-line-cart-btn{width:2.15rem;height:2.15rem;margin-bottom:0;border-radius:.2rem}.skeleton-line-service-consult-btn{width:6.75rem;height:2.15rem;margin-bottom:0;border-radius:.2rem}.skeleton-line-price{width:4.25rem;height:.95rem;margin-bottom:0;margin-left:auto}.skeleton-line-price--service-stack{margin-left:0;align-self:flex-end}@keyframes skeleton-shimmer{0%{opacity:1}50%{opacity:.65}to{opacity:1}}.product-detail-breadcrumb{margin-bottom:1rem}.product-detail-back{display:inline-flex;align-items:center;gap:.35rem;padding-inline:.2rem}.product-detail-back .material-symbols-outlined{font-size:1.25rem}.product-detail-layout{display:grid;gap:1.75rem;align-items:start}@media (min-width: 768px){.product-detail-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem}}.product-detail-media{position:relative}.product-detail-image{width:100%;display:block;aspect-ratio:4 / 5;object-fit:cover;border:1px solid color-mix(in srgb,var(--outline-variant) 36%,transparent)}.product-detail-title{font-size:clamp(1.5rem,3vw,2.25rem);margin-bottom:.5rem}.product-detail-price{font-size:1.35rem;font-weight:700;color:var(--primary);margin:0 0 1rem}.product-detail-type{margin:0 0 1.25rem;font-size:.95rem}.product-detail-label{font-weight:600;color:var(--on-surface-variant)}.product-detail-block{margin-bottom:1.25rem}.product-detail-block-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--on-surface-variant);margin:0 0 .45rem}.product-detail-description{margin:0;line-height:1.55;white-space:pre-wrap}.product-detail-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}.product-detail-tag{font-size:.8rem;padding:.3rem .75rem;border-radius:999px;background:var(--primary-container);color:var(--on-primary-container)}.product-detail-remarks p{margin:0 0 .5rem;font-size:.9rem;line-height:1.5}.product-detail-cta{margin-top:.5rem}.product-detail-not-found{margin:2rem 0;font-size:1.05rem}.product-detail-skeleton-img{aspect-ratio:4 / 5;max-height:520px}.product-detail-skel-title{width:75%;height:1.75rem}.admin-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}.admin-card{background:var(--surface-container-lowest);border:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent);padding:1rem}.admin-card p{margin:.5rem 0 0;font-size:1.4rem;font-weight:700}.hero{position:relative;flex:1;display:grid;place-items:center;padding:2rem 0}.blob{position:absolute;border-radius:100%;filter:blur(90px);pointer-events:none}.blob-top{top:-10%;right:-6%;width:20rem;height:20rem;background:color-mix(in srgb,var(--primary-container) 36%,transparent)}.blob-bottom{bottom:-6%;left:-4%;width:16rem;height:16rem;background:color-mix(in srgb,var(--tertiary-container) 24%,transparent)}.site-footer{background:#052008;color:#fff;margin-top:auto}.footer-grid{display:grid;gap:2rem;padding:3rem 0;grid-template-columns:repeat(1,1fr)}.footer-grid h3,.footer-grid h4{margin:0 0 .7rem;font-family:Manrope,Noto Sans TC,sans-serif}.footer-grid a,.footer-grid p{display:block;margin:0 0 .5rem;color:color-mix(in srgb,white 74%,transparent);text-decoration:none}.footer-note{align-self:end}@keyframes slideFromRight{0%{opacity:.45;transform:translate(36px)}to{opacity:1;transform:translate(0)}}@keyframes slideFromLeft{0%{opacity:.45;transform:translate(-36px)}to{opacity:1;transform:translate(0)}}@keyframes whatsappFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes whatsappPulse{0%,to{box-shadow:0 4px 14px #25d36673}50%{box-shadow:0 6px 22px #25d366a6}}.whatsapp-float{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:45;pointer-events:none}.whatsapp-float__link{pointer-events:auto;display:flex;align-items:flex-end;flex-direction:row-reverse;gap:.55rem;text-decoration:none;animation:whatsappFloat 2.8s ease-in-out infinite}.whatsapp-float__bubble{max-width:min(200px,52vw);padding:.55rem .75rem;font-size:.78rem;line-height:1.35;color:var(--on-surface);background:var(--surface-container-lowest);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);border-radius:.75rem;box-shadow:0 6px 20px #0000001a;position:relative}.whatsapp-float__bubble:after{content:"";position:absolute;left:-6px;right:auto;bottom:calc(1.675rem - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:7px solid var(--surface-container-lowest);border-left:0;filter:drop-shadow(-1px 0 0 color-mix(in srgb,var(--outline-variant) 45%,transparent))}.whatsapp-float__btn{flex-shrink:0;width:3.35rem;height:3.35rem;border-radius:50%;background:#25d366;color:#fff;display:inline-flex;align-items:center;justify-content:center;animation:whatsappPulse 2s ease-in-out infinite}.whatsapp-float__icon{display:block}.whatsapp-float__link:hover .whatsapp-float__btn,.whatsapp-float__link:focus-visible .whatsapp-float__btn{filter:brightness(1.06)}.whatsapp-float__link:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:999px}@keyframes bagFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes bagPulse{0%,to{box-shadow:0 4px 14px #50644f61}50%{box-shadow:0 6px 22px #50644f94}}.bag-float{position:fixed;left:max(1rem,env(safe-area-inset-left));bottom:max(1rem,env(safe-area-inset-bottom));z-index:44;pointer-events:none}.bag-float__trigger{pointer-events:auto;position:relative;flex-shrink:0;width:3.35rem;height:3.35rem;margin:0;padding:0;border:0;border-radius:50%;background:var(--primary);color:var(--on-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font:inherit;text-align:center;animation:bagFloat 2.8s ease-in-out infinite,bagPulse 2s ease-in-out infinite}.bag-float__trigger:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.bag-float__material-icon{font-size:1.65rem;line-height:1}.bag-float__badge{position:absolute;top:-3px;right:-3px;min-width:1.2rem;height:1.2rem;padding:0 4px;font-size:.62rem;font-weight:800;line-height:1.2rem;text-align:center;background:var(--error-container);color:var(--on-error);border-radius:999px;box-shadow:0 1px 4px #0003}.bag-float__trigger:hover,.bag-float__trigger:focus-visible{filter:brightness(1.06)}.bag-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f140f61;display:flex;align-items:flex-end;justify-content:flex-start;padding:max(.75rem,env(safe-area-inset-left)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom))}.bag-panel{width:min(100%,22rem);max-height:min(78vh,32rem);overflow:auto;background:var(--surface-container-lowest);border-radius:.85rem;box-shadow:0 16px 48px #00000038;border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent)}.bag-panel__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1rem .75rem;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}.bag-panel__title{margin:0;font-family:Manrope,Noto Sans TC,sans-serif;font-size:1.15rem;font-weight:700}.bag-panel__close{flex-shrink:0}.bag-panel__empty{margin:0;padding:1.5rem 1rem 1.75rem}.bag-panel__list{list-style:none;margin:0;padding:.5rem 0 0}.bag-line{display:grid;grid-template-columns:3.5rem 1fr;gap:.65rem;padding:.65rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 28%,transparent)}.bag-line__img{width:3.5rem;height:3.5rem;object-fit:cover;border-radius:.4rem;background:var(--surface-container-low)}.bag-line__body{min-width:0}.bag-line__name{margin:0 0 .15rem;font-size:.88rem;font-weight:600;line-height:1.3}.bag-line__price{margin:0 0 .45rem;font-size:.78rem}.bag-line__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.bag-line__qty{display:inline-flex;align-items:center;gap:.25rem;border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);border-radius:.35rem;overflow:hidden;background:var(--surface-container-low)}.bag-line__qty-btn{width:2rem;height:2rem;border:0;background:transparent;color:var(--on-surface);font-size:1rem;line-height:1;cursor:pointer}.bag-line__qty-btn:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}.bag-line__qty-val{min-width:1.5rem;text-align:center;font-size:.85rem;font-weight:600}.bag-line__remove{font-size:.78rem;padding:0}.bag-panel__footer{padding:.85rem 1rem 1rem;border-top:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}.bag-panel__subtotal{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;font-size:.95rem}.bag-panel__subtotal strong{font-size:1.05rem}.bag-panel__note{margin:0 0 .75rem;font-size:.72rem;line-height:1.4}.icon-action-btn--bag{position:relative}.header-bag-badge{position:absolute;top:2px;right:1px;min-width:1rem;height:1rem;padding:0 3px;font-size:.58rem;font-weight:800;line-height:1rem;text-align:center;background:var(--error-container);color:var(--on-error);border-radius:999px;pointer-events:none}@media (max-width: 767px){.nav-links,.desktop-actions{display:none}.mobile-header-actions{display:inline-flex}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center}.mobile-menu.is-open{display:block}.hero-banner,.hero-banner img{height:56vh;min-height:56vh}.top-banner-card img{height:148px}.whatsapp-float__link{flex-direction:column;align-items:flex-end}.whatsapp-float__bubble{max-width:70vw}.whatsapp-float__bubble:after{left:calc(100% - 1.675rem);right:auto;bottom:-6px;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--surface-container-lowest);border-bottom:0;filter:drop-shadow(0 1px 0 color-mix(in srgb,var(--outline-variant) 45%,transparent))}}@media (prefers-reduced-motion: reduce){.page-transition,.whatsapp-float__link,.whatsapp-float__btn,.bag-float__trigger{animation:none}}@media (min-width: 1024px){.footer-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 768px){.products-grid{gap:1rem}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1024px){.products-grid-large{grid-template-columns:repeat(3,minmax(0,1fr))}}.payment-page{max-width:34rem;margin-inline:auto;padding-block:1.5rem 3rem}.payment-nav{margin-bottom:1.25rem}.payment-back{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem}.payment-title{margin:0 0 1.5rem;font-family:Manrope,Noto Sans TC,sans-serif;font-size:2rem}.payment-empty{margin:0}.payment-section-title{margin:0 0 .75rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--on-surface-variant)}.payment-summary{background:var(--surface-container-lowest);border:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent);border-radius:.5rem;padding:1rem 1.25rem;margin-bottom:1.5rem}.payment-summary-list{list-style:none;margin:0 0 .85rem;padding:0}.payment-summary-line{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem 0;font-size:.88rem;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 20%,transparent)}.payment-summary-line:last-child{border-bottom:none}.payment-summary-item{display:flex;align-items:center;gap:.6rem;min-width:0}.payment-summary-img{width:2.25rem;height:2.25rem;object-fit:cover;border-radius:.3rem;background:var(--surface-container-low);flex-shrink:0}.payment-summary-qty{color:var(--on-surface-variant)}.payment-summary-price{flex-shrink:0;font-weight:600}.payment-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:.85rem;border-top:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent);font-size:.95rem}.payment-total strong{font-size:1.1rem;font-family:Manrope,Noto Sans TC,sans-serif}.payment-methods{display:grid;gap:.85rem}.payment-method-btn{width:100%;display:flex;align-items:center;gap:.85rem;padding:1.1rem 1.25rem;border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);border-radius:.5rem;background:var(--surface-container-lowest);color:var(--on-surface);cursor:pointer;font:inherit;font-size:1.05rem;font-weight:700;font-family:Manrope,Noto Sans TC,sans-serif;text-align:left;transition:filter .12s}.payment-method-btn--bank{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.payment-method-btn--bank:hover:not(:disabled){filter:brightness(1.06)}.payment-method-icon{font-size:1.75rem;flex-shrink:0}.payment-method-icon--epay{display:contents}.payment-method-label{flex:1}.payment-method-chevron{font-size:1.35rem;opacity:.65}.payment-method-btn--epay{cursor:default;flex-wrap:wrap;row-gap:.5rem;opacity:.72}.epay-logos{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.epay-logo{height:1.65rem;width:auto;max-width:6rem;object-fit:contain}.epay-coming-soon{width:100%;font-size:.68rem;font-weight:400;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;color:var(--on-surface-variant);padding-left:2.6rem}.bank-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0f140f85;display:flex;align-items:center;justify-content:center;padding:1rem}.bank-modal{width:min(100%,26rem);background:var(--surface-container-lowest);border-radius:.85rem;box-shadow:0 24px 60px #00000052;overflow:hidden}.bank-modal__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1.1rem 1.25rem .9rem;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}.bank-modal__title{margin:0;font-family:Manrope,Noto Sans TC,sans-serif;font-size:1.05rem;font-weight:700}.bank-modal__body{padding:.5rem 1.25rem .75rem}.bank-detail-row{display:grid;grid-template-columns:7rem 1fr 2rem;align-items:center;gap:.5rem;padding:.65rem 0;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 22%,transparent)}.bank-detail-row:last-child{border-bottom:none}.bank-detail-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--on-surface-variant)}.bank-detail-value{font-size:.9rem;font-weight:600;word-break:break-all;color:var(--on-surface)}.bank-detail-copy{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:.3rem;background:transparent;color:var(--on-surface-variant);cursor:pointer;padding:0;flex-shrink:0;transition:background .12s,color .12s}.bank-detail-copy:hover{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary)}.bank-detail-copy--done{color:var(--primary)}.bank-detail-copy .material-symbols-outlined{font-size:1.1rem}.bank-detail-copy-placeholder{display:block;width:2rem;height:2rem}.bank-modal__actions{display:grid;gap:.6rem;padding:.9rem 1.25rem 1.25rem;border-top:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}.bank-modal__whatsapp{display:flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none}.bank-modal__wa-icon{flex-shrink:0}.bank-modal__mark-paid{width:100%}.bank-modal__error{margin:0;padding:.45rem .7rem;font-size:.8rem;color:#b91c1c;background:#fef2f2;border-radius:.35rem}.payment-method-btn:disabled{opacity:.42;cursor:not-allowed;filter:none}.payment-form{margin-bottom:2rem}.payment-form__required-hint{margin:0 0 1rem;font-size:.78rem}.payment-form-section{background:var(--surface-container-lowest);border:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent);border-radius:.5rem;padding:1rem 1.25rem;margin:0 0 1rem;min-inline-size:0}.payment-form-section-title{margin:0 0 .9rem;padding:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--on-surface-variant)}.payment-form-field{display:grid;gap:.3rem;margin-bottom:.8rem}.payment-form-field:last-child{margin-bottom:0}.payment-form-field label{font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant)}.payment-form input[type=text],.payment-form input[type=tel],.payment-form input[type=email],.payment-form input[type=date],.payment-form select,.payment-form textarea{width:100%;box-sizing:border-box;padding:.62rem .75rem;font-size:.9rem;font-family:inherit;background:var(--surface-container-low);color:var(--on-surface);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);border-radius:.35rem;outline:none;transition:border-color .12s}.payment-form input:focus,.payment-form select:focus,.payment-form textarea:focus{border-color:var(--primary)}.payment-form textarea{resize:vertical;min-height:4rem;line-height:1.5}.payment-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.payment-form-row--three{grid-template-columns:repeat(3,1fr)}.payment-form-radio-group{display:flex;gap:1.5rem;margin-bottom:.75rem}.payment-form-radio{display:flex;align-items:center;gap:.4rem;font-size:.92rem;font-weight:500;cursor:pointer;color:var(--on-surface);text-transform:none;letter-spacing:0}.payment-form-radio input[type=radio]{width:1.1rem;height:1.1rem;accent-color:var(--primary);cursor:pointer}.payment-form-address{border-top:1px solid color-mix(in srgb,var(--outline-variant) 28%,transparent);padding-top:.8rem}.payment-form-field-remark{font-size:.73rem;color:var(--on-surface-variant);line-height:1.4;margin-top:.1rem}.payment-form-row--two{grid-template-columns:1fr 1fr}.success-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;background:#0f140f8c;display:flex;align-items:center;justify-content:center;padding:1rem}.success-modal{width:min(100%,24rem);background:var(--surface-container-lowest);border-radius:.85rem;box-shadow:0 24px 60px #00000052;overflow:hidden;text-align:center;padding:2rem 1.5rem 1.5rem}.success-modal__icon{margin-bottom:.75rem;color:var(--primary)}.success-modal__icon .material-symbols-outlined{font-size:3.5rem;display:block;font-variation-settings:"FILL" 1}.success-modal__title{margin:0 0 .75rem;font-family:Manrope,Noto Sans TC,sans-serif;font-size:1.3rem;font-weight:700}.success-modal__order-no{margin:0 0 .55rem;font-size:.9rem}.success-modal__body{margin:0 0 1.25rem;font-size:.85rem;color:var(--on-surface-variant);line-height:1.55}.success-modal__actions{display:grid;gap:.65rem}.success-modal__whatsapp{display:flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none}@media (max-width: 599px){.payment-form-row{grid-template-columns:1fr}.payment-form-row--three{grid-template-columns:1fr 1fr}}
