:root{--bg:#f5f6f3;--paper:#fff;--ink:#29392f;--muted:#6b796f;--line:#e2e7e0;--green:#315447;--red:#a82920;--accent:#edf3ed;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","Microsoft JhengHei",sans-serif;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #94c5a9;outline-offset:2px}[hidden]{display:none!important}.header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{max-width:920px;margin:auto;padding:12px 16px;display:flex;align-items:center;gap:11px;min-height:75px}.logo{width:43px;height:43px;background:var(--green);border-radius:12px;display:grid;place-items:center;color:white;font-size:25px;font-weight:900}.brand{font-weight:850;font-size:17px}.brand-sub{font-size:11px;color:var(--muted);margin-top:2px}.header-tag{margin-left:auto;color:#8b5734;background:#fdf3e5;padding:6px 11px;border-radius:30px;font-size:12px;white-space:nowrap}.main{max-width:920px;margin:0 auto;padding:0 15px 160px}.intro{padding:23px 4px 10px}.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:850;color:var(--red);margin:0}.intro h1{font-size:clamp(25px,5vw,34px);line-height:1.34;margin:8px 0}.intro>p:not(.eyebrow){font-size:13px;line-height:1.8;color:var(--muted);margin:0}.connection{font-size:12px;color:var(--muted);margin-top:10px;min-height:16px}.connection.ok:before{content:'●';font-size:11px;color:#2f9b70;margin-right:6px}.connection.error{color:#a82920}.notice{border:1px solid #efddc6;background:#fff9f0;border-radius:12px;color:#87643e;padding:11px 13px;font-size:12px;line-height:1.85;margin:12px 0 16px}.tabs{display:flex;gap:4px;padding:5px;background:#e6ece5;border-radius:12px}.tabs button{flex:1;border:0;background:transparent;padding:12px 5px;border-radius:9px;color:#6d7b71;font-size:13px;font-weight:750}.tabs button.active{background:white;color:var(--green);box-shadow:0 2px 9px #26372913}.section-head{margin:20px 1px 13px;display:flex;align-items:center;justify-content:space-between;gap:9px}.section-head h2{font-size:20px;margin:0 0 3px}.section-head p{font-size:12px;color:var(--muted);margin:0}.count-pill{background:white;border:1px solid var(--line);border-radius:30px;padding:5px 10px;font-size:12px;color:var(--muted)}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product{background:#fff;border:1px solid #e6e8e1;border-radius:16px;overflow:hidden;box-shadow:0 5px 17px #273a2208}.product button{display:block;width:100%;text-align:left;background:none;border:0;color:inherit;padding:0}.product-img{aspect-ratio:1.48;background:#fff9f3}.product-img img{width:100%;height:100%;object-fit:contain}.product-text{padding:11px 12px 14px}.product-name{font-weight:850;font-size:14px;line-height:1.48;min-height:43px}.product-price{font-size:20px;color:var(--red);font-weight:900;margin-top:8px}.product-link{border-top:1px solid #edf0eb;padding:10px 12px;color:var(--green);font-weight:800;font-size:12px;display:flex;justify-content:space-between}.product-link:after{content:'→'}.button{border:1px solid var(--green);background:var(--green);color:white;padding:12px 17px;border-radius:12px;font-weight:800;font-size:14px;min-height:46px}.button.secondary{color:var(--green);background:white;border-color:#cddcd2}.button.full{width:100%}.text-link{background:none;border:0;color:var(--green);font-size:13px;font-weight:800;padding:8px}.cart-list{display:flex;flex-direction:column;gap:10px}.cart-item{display:flex;gap:12px;background:white;padding:12px;border:1px solid var(--line);border-radius:15px}.cart-img{width:86px;height:84px;object-fit:contain;background:#fff9f2;border-radius:10px;flex-shrink:0}.cart-main{flex:1;min-width:0}.cart-name{font-weight:850;font-size:14px}.cart-meta{font-size:12px;color:var(--muted);margin:4px 0}.cart-actions{display:flex;justify-content:space-between;align-items:center;gap:6px;margin:9px 0 2px}.cart-subtotal{color:var(--red);font-weight:850;font-size:14px}.remove{padding:6px 0;color:#b4443a;border:0;background:none;font-size:12px;text-decoration:underline}.quantity{display:flex;gap:6px;align-items:center}.quantity button{width:36px;height:37px;border:1px solid #d5e2d8;border-radius:9px;background:#eef4ef;color:var(--green);font-size:23px;font-weight:800;line-height:1}.quantity input{border:1px solid #d9e1d9;border-radius:8px;width:48px;height:37px;text-align:center;font-size:15px;font-weight:800;color:var(--ink)}.card-summary{background:white;border:1px solid var(--line);padding:18px;border-radius:16px;margin-top:13px}.sumrow{display:flex;align-items:center;justify-content:space-between;margin:5px 0 13px;color:var(--muted);font-size:13px}.sumtotal{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;font-size:16px;font-weight:850}.sumtotal strong{color:var(--red);font-size:24px}.empty{text-align:center;background:white;border:1px dashed #d1dcd0;padding:44px 20px;border-radius:16px;color:var(--muted)}.empty h3{color:var(--ink)}.order-form{background:white;border:1px solid var(--line);border-radius:18px;padding:19px;max-width:640px;margin:auto}.field{display:flex;flex-direction:column;gap:7px;margin:0 0 17px}.field label{font-size:13px;font-weight:800}.field b{color:var(--red)}.field input{border:1px solid #d5e0d4;border-radius:10px;padding:12px;min-height:46px;width:100%;background:#fff}.order-summary{background:#f5f8f4;border-radius:12px;padding:14px;margin:20px 0;line-height:1.8;font-size:13px}.consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.75;color:var(--muted);margin:14px 0}.consent input{margin-top:4px;accent-color:var(--green)}.consent a{color:var(--green)}.hint{font-size:12px;color:var(--muted);line-height:1.8}.success-card{background:#fff;border:1px solid var(--line);border-radius:18px;text-align:center;padding:28px 20px;margin:18px auto;max-width:600px}.success-card h2{font-size:22px}.success-card p{color:var(--muted);line-height:1.9;font-size:14px}.success-icon{width:68px;height:68px;border-radius:50%;background:#e1f1e5;color:var(--green);display:grid;place-items:center;margin:0 auto;font-size:38px}.success-number{background:#f5f8f5;border-radius:10px;padding:12px;margin:15px auto;font-weight:800;word-break:break-all}.privacy{font-size:11px;color:var(--muted);line-height:1.9;margin-top:34px}.privacy h3{font-size:13px;color:var(--ink)}.footer-note{text-align:center;font-size:12px;color:#87948b;line-height:1.8;margin-top:25px}.bottom-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px #253c2915;z-index:12;padding:12px max(15px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(15px,env(safe-area-inset-left))}.bottom-inner{max-width:890px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.bottom-caption{font-size:11px;color:var(--muted)}.bottom-inner strong{font-size:21px;color:var(--red)}.modal-backdrop{position:fixed;inset:0;background:#15281db3;z-index:30}.modal{position:fixed;z-index:31;bottom:0;left:0;right:0;width:min(580px,100%);margin:auto;height:min(92dvh,900px);background:white;border-radius:23px 23px 0 0;display:flex;flex-direction:column;box-shadow:0 -12px 35px #14241c45}.modal-header{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);flex-shrink:0}.modal-close{background:#f1f5f1;border:1px solid var(--line);border-radius:50%;font-size:24px;width:35px;height:35px;line-height:1}.modal-scroll{overflow:auto;flex:1}.modal-photo{width:100%;height:195px;object-fit:contain;background:#fff9f3}.modal-body{padding:17px}.modal-body h2{margin:0 0 5px;font-size:22px}.modal-meta{font-size:12px;color:var(--muted)}.modal-price{color:var(--red);font-weight:900;font-size:26px;margin:10px 0}.flavor-text{color:var(--muted);font-size:13px;line-height:1.8}.accordion{border:1px solid var(--line);border-radius:12px;margin:10px 0;overflow:hidden}.accordion-button{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border:0;width:100%;text-align:left;background:#fbfcfa;font-size:14px;font-weight:800;color:var(--ink)}.accordion-body{padding:0 14px 14px;font-size:13px;color:var(--muted);white-space:pre-line;line-height:1.85}.modal-buy{padding:12px 16px calc(13px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.modal-buy-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px;gap:12px}.modal-buy small{font-size:11px;color:var(--muted);display:block;margin-bottom:7px}.modal-subtotal{text-align:right}.modal-subtotal b{color:var(--red);font-size:19px}.modal-buy .quantity input{width:53px}.modal-buy .quantity button{width:41px;height:41px}.modal-buy .quantity input{height:41px}.toast{position:fixed;z-index:50;bottom:calc(98px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#2f5141;color:white;padding:12px 16px;border-radius:12px;font-size:13px;line-height:1.7;max-width:90vw;text-align:center;box-shadow:0 8px 26px #213d2e39}.busy button:not(.modal-close){opacity:.6;pointer-events:none}@media(min-width:660px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.product-name{min-height:0;font-size:16px}.modal{height:min(90vh,850px);bottom:3vh;border-radius:20px}}@media(max-width:345px){.product-grid{gap:8px}.product-text{padding:10px}.product-price{font-size:18px}.cart-img{width:72px;height:75px}.bottom-inner .button{padding-inline:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Hide the empty toast; JS unhides it only when there is a message. */
.toast:empty{display:none!important}
