:root{--bg:#f5f3ef;--surface:#fff;--text:#1b2430;--muted:#647082;--stroke:#dde3eb;--accent:#f97316;--accent-strong:#d9480f;--dark:#101828;--chip:#fff4eb;--shadow-soft:0 16px 38px rgba(16,24,40,.08)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:Avenir Next,Nunito Sans,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(1100px 520px at 12% -10%,#ffe4cf 0,transparent 70%),radial-gradient(800px 420px at 100% 0,#f6d9ff 0,transparent 62%),var(--bg)}h1,h2,h3{font-family:Trebuchet MS,Avenir Next,Segoe UI,sans-serif;margin:0}.kiosk-shell{width:min(1120px,100% - 1.25rem);margin:0 auto;padding:1rem 0 8rem;animation:page-enter .34s ease-out}.hero-card{background:linear-gradient(130deg,#fff,#fff9f2);border:1px solid var(--stroke);border-radius:22px;padding:1rem;box-shadow:var(--shadow-soft)}.brand-wrap{display:grid;grid-template-columns:72px 1fr;gap:.9rem;align-items:center}.logo-box{position:relative;width:72px;height:72px;border-radius:18px;overflow:hidden;border:2px solid #1f2937;box-shadow:0 10px 24px rgba(15,23,42,.24)}.brand-logo{-o-object-fit:cover;object-fit:cover}.eyebrow{margin:0;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-strong);font-weight:700}.hero-title{margin-top:.3rem;font-size:clamp(1.36rem,4vw,2rem);line-height:1.12}.hero-subtitle{margin:.5rem 0 0;color:var(--muted);max-width:64ch;line-height:1.4}.proof-list{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.55rem}.proof-pill{background:var(--chip);color:#b45309;border:1px solid #fed7aa;font-size:.78rem;font-weight:700;padding:.42rem .7rem;border-radius:999px}.install-app-btn{border:1px solid #86efac;background:linear-gradient(120deg,#16a34a,#22c55e);color:#fff;font-size:.8rem;font-weight:800;padding:.44rem .78rem;border-radius:999px;cursor:pointer;box-shadow:0 10px 20px rgba(22,163,74,.28)}.install-hint{margin:.55rem 0 0;color:#4b5563;font-size:.8rem}.controls-row{margin-top:1rem;display:grid;gap:.7rem}.toggle-group{display:inline-flex;align-items:center;border:1px solid var(--stroke);padding:.2rem;border-radius:14px;background:#fff;width:-moz-max-content;width:max-content}.chip{border:none;background:transparent;color:#475467;padding:.55rem .9rem;border-radius:11px;font-weight:700;font-size:.92rem;cursor:pointer}.chip-active{background:var(--dark);color:#fff}.search-wrap{display:block}.search-input{width:100%;border:1px solid var(--stroke);background:#fff;border-radius:14px;height:46px;padding:0 .92rem;color:var(--text);font-size:.95rem}.search-input:focus-visible{outline:2px solid #fdae6b;outline-offset:2px}.catalog-grid{margin-top:1rem;display:grid;gap:.85rem}.catalog-card{background:#fff;border:1px solid var(--stroke);border-radius:18px;overflow:hidden;box-shadow:0 8px 20px rgba(15,23,42,.06)}.catalog-card-added{animation:card-pop .42s ease}.image-wrap{position:relative;height:188px;background:#f5f5f5}.item-image{-o-object-fit:cover;object-fit:cover}.item-image-fallback{height:100%;width:100%;background:radial-gradient(circle at 20% 20%,#fdba74,transparent 45%),radial-gradient(circle at 80% 70%,#fb7185,transparent 40%),linear-gradient(140deg,#fef3c7,#fecaca)}.badge{position:absolute;top:.6rem;left:.6rem;background:rgba(16,24,40,.82);color:#fff;font-weight:700;font-size:.74rem;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:.3rem .6rem}.card-body{padding:.8rem}.card-body h3{font-size:1.06rem}.category{margin:.2rem 0 0;font-size:.85rem;color:var(--muted)}.composition{margin:.45rem 0 0;color:#374151;font-size:.83rem;line-height:1.3}.card-footer{margin-top:.72rem;display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem}.price{margin:0;font-weight:800;font-size:1.02rem}.saving{margin:.16rem 0 0;color:#0f766e;font-size:.78rem;font-weight:700}.add-btn{border:none;border-radius:12px;background:linear-gradient(120deg,var(--accent),#fb7185);color:#fff;font-weight:800;padding:.6rem .86rem;cursor:pointer}.add-btn-flash{animation:btn-flash .42s ease}.sticky-cart{position:fixed;left:50%;right:auto;transform:translateX(-50%) translateZ(0);width:auto;min-width:236px;max-width:calc(100vw - 2.5rem);bottom:calc(max(1rem, env(safe-area-inset-bottom)) + 1rem);z-index:25;background:linear-gradient(135deg,#111827,#0f172a);color:#fff;border-radius:999px;border:none;padding:.72rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.9rem;box-shadow:0 18px 34px rgba(2,6,23,.42),inset 0 0 0 1px hsla(0,0%,100%,.08);cursor:pointer;backdrop-filter:blur(6px);animation:floating-idle 2.8s ease-in-out infinite;will-change:transform}.sticky-cart-active{background:linear-gradient(135deg,#166534,#22c55e);box-shadow:0 18px 34px rgba(6,78,59,.42),inset 0 0 0 1px hsla(0,0%,100%,.16)}.sticky-cart-pulse{animation:cart-pulse .52s ease}.sticky-label{margin:0;font-size:.74rem;color:#cbd5e1}.sticky-meta{margin:.14rem 0 0;font-weight:700}.cart-feedback{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(max(1rem, env(safe-area-inset-bottom)) + 5.1rem);margin:0;z-index:26;border-radius:999px;background:#065f46;color:#fff;font-weight:700;font-size:.78rem;padding:.34rem .64rem;animation:feedback-fade .44s ease}.cart-drawer{position:fixed;top:0;right:0;width:min(440px,100%);height:100dvh;background:#fff;z-index:45;transform:translateX(102%);transition:transform .22s ease;border-left:1px solid var(--stroke);padding:1rem 1rem 1.25rem;overflow-y:auto}.cart-drawer-open{transform:translateX(0)}.backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);border:none;z-index:40}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.drawer-header h2{font-size:1.2rem}.ghost-btn{border:1px solid var(--stroke);background:#fff;border-radius:10px;padding:.45rem .7rem;font-weight:700;cursor:pointer;color:var(--text);text-decoration:none}.back-link-btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.cart-page-header{margin-top:.6rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.cart-page-panel{margin-top:1rem;background:#fff;border:1px solid var(--stroke);border-radius:20px;box-shadow:var(--shadow-soft);padding:.9rem}.empty-cart-state{display:grid;gap:.75rem}.cart-lines-static{margin-top:0}.cart-page-footer{margin-top:.9rem}.cart-page-actions{display:grid;gap:.55rem}.empty-note{margin-top:1rem;color:var(--muted)}.customer-info-box{margin-top:.9rem;border:1px solid var(--stroke);border-radius:12px;padding:.7rem;display:grid;gap:.6rem;background:#fafafa}.drawer-footer .customer-info-box{margin-top:0}.customer-info-title{margin:0;font-size:.85rem;font-weight:800;color:#334155;text-transform:uppercase;letter-spacing:.03em}.customer-field{display:grid;gap:.28rem}.customer-field span{font-size:.8rem;color:#475569;font-weight:700}.customer-field input{width:100%;border:1px solid var(--stroke);border-radius:10px;height:40px;padding:0 .65rem;font-size:.92rem;color:var(--text);background:#fff}.customer-field input:focus-visible{outline:2px solid #fdae6b;outline-offset:1px}.cart-lines{margin-top:.9rem;display:grid;gap:.65rem}.cart-line{border:1px solid var(--stroke);border-radius:12px;padding:.62rem;display:flex;justify-content:space-between;gap:.7rem}.cart-line-name{margin:0;font-weight:800}.cart-line-details{margin:.22rem 0 0;color:var(--muted);font-size:.78rem}.cart-line-price{margin:.25rem 0 0;font-weight:700}.qty-controls{display:inline-flex;border:1px solid var(--stroke);border-radius:10px;height:-moz-fit-content;height:fit-content}.qty-controls button,.qty-controls span{width:32px;height:32px;border:none;background:#fff;display:grid;place-items:center;font-weight:700}.qty-controls button{cursor:pointer}.upsell-box{margin-top:.95rem;border:1px solid #fed7aa;background:#fff7ed;border-radius:12px;padding:.65rem}.upsell-title{margin:0;font-size:.84rem;font-weight:800;color:#9a3412;text-transform:uppercase;letter-spacing:.03em}.upsell-list{margin-top:.55rem;display:grid;gap:.45rem}.upsell-item{border:1px solid #fdba74;background:#fff;border-radius:10px;padding:.45rem .55rem;display:flex;align-items:center;justify-content:space-between;font-weight:700;cursor:pointer}.drawer-footer{margin-top:1rem;border-top:1px solid var(--stroke);padding-top:.82rem;display:grid;gap:.55rem}.totals-row{display:flex;justify-content:space-between;font-weight:700}.checkout-btn{border:none;text-decoration:none;text-align:center;border-radius:12px;background:linear-gradient(120deg,#10b981,#059669);color:#fff;font-weight:800;padding:.72rem .82rem}.checkout-disabled{pointer-events:none;opacity:.45}.clear-btn{border:1px solid var(--stroke);border-radius:12px;background:#fff;padding:.65rem;font-weight:700;cursor:pointer}@keyframes page-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes card-pop{0%{transform:scale(1);box-shadow:0 8px 20px rgba(15,23,42,.06)}35%{transform:scale(1.015);box-shadow:0 16px 26px rgba(249,115,22,.24)}to{transform:scale(1);box-shadow:0 8px 20px rgba(15,23,42,.06)}}@keyframes btn-flash{0%{transform:scale(1);filter:brightness(1)}40%{transform:scale(1.08);filter:brightness(1.12)}to{transform:scale(1);filter:brightness(1)}}@keyframes cart-pulse{0%{transform:translateX(-50%) scale(1)}30%{transform:translateX(-50%) scale(1.04)}to{transform:translateX(-50%) scale(1)}}@keyframes floating-idle{0%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-3px)}to{transform:translateX(-50%) translateY(0)}}@keyframes feedback-fade{0%{opacity:0;transform:translateY(8px)}18%{opacity:1;transform:translateY(0)}86%{opacity:1}to{opacity:0}}@media (min-width:768px){.kiosk-shell{width:min(1240px,100% - 2.2rem);padding-top:1.4rem}.controls-row{grid-template-columns:auto 1fr;align-items:center}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.sticky-cart{min-width:280px;max-width:380px}.cart-page-actions{grid-template-columns:1fr 1fr}}@media (min-width:1120px){.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.image-wrap-clickable{cursor:zoom-in}.zoom-hint{position:absolute;bottom:.55rem;right:.55rem;background:rgba(16,24,40,.72);color:#fff;font-size:.85rem;border-radius:50%;width:2rem;height:2rem;display:grid;place-items:center;opacity:0;transform:scale(.8);transition:opacity .18s ease,transform .18s ease;pointer-events:none}.image-wrap-clickable:focus-visible .zoom-hint,.image-wrap-clickable:hover .zoom-hint{opacity:1;transform:scale(1)}.image-wrap-clickable:focus-visible{outline:2px solid #fdae6b;outline-offset:2px}.lightbox-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1rem;animation:lightbox-enter .22s ease}.lightbox-backdrop{position:absolute;inset:0;background:rgba(10,15,30,.78);backdrop-filter:blur(6px);border:none;cursor:pointer}.lightbox-panel{position:relative;z-index:1;background:#fff;border-radius:22px;overflow:hidden;width:min(680px,95vw);max-height:min(90dvh,860px);display:flex;flex-direction:column;box-shadow:0 32px 80px rgba(2,6,23,.55);animation:lightbox-panel-in .26s cubic-bezier(.34,1.56,.64,1)}.lightbox-image-wrap{position:relative;width:100%;aspect-ratio:1/1;background:#f5f5f5;flex-shrink:0}.lightbox-image{-o-object-fit:cover;object-fit:cover}.lightbox-badge{position:absolute;top:.75rem;left:.75rem;background:rgba(16,24,40,.82);color:#fff;font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.3rem .7rem}.lightbox-info{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.5rem}.lightbox-name{font-size:clamp(1.15rem,3vw,1.5rem);line-height:1.15;margin:0}.lightbox-composition{margin:0;color:var(--muted);font-size:.88rem;line-height:1.4}.lightbox-footer{margin-top:.4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.lightbox-price{margin:0;font-weight:800;font-size:1.3rem;color:var(--text)}.lightbox-add-btn{font-size:.95rem;padding:.72rem 1.2rem;border-radius:14px;white-space:nowrap}.lightbox-close{position:absolute;top:.65rem;right:.65rem;z-index:2;width:2.2rem;height:2.2rem;border-radius:50%;border:none;background:rgba(16,24,40,.72);color:#fff;font-size:1rem;cursor:pointer;display:grid;place-items:center;transition:background .16s ease,transform .16s ease}.lightbox-close:hover{background:rgba(16,24,40,.92);transform:scale(1.1)}@keyframes lightbox-enter{0%{opacity:0}to{opacity:1}}@keyframes lightbox-panel-in{0%{opacity:0;transform:scale(.88) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}