/* KRES Premium Online Ordering — additive layer over the legacy storefront. */
:root{
  --motion-press:120ms;--motion-toast:220ms;--motion-screen:340ms;
  --motion-sheet:420ms;--motion-shared:460ms;
  --ease-standard:cubic-bezier(.2,.8,.2,1);--ease-spring:cubic-bezier(.16,1,.3,1);
  --app-max:720px;
}
button,a,input,textarea,select{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(var(--brand-rgb),.28);outline-offset:2px}
.premium-shell{width:min(var(--app-max),100%);margin:0 auto}

/* Restaurant facts */
.restaurant-info{width:min(var(--app-max),100%);margin:0 auto;padding:12px 12px 2px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.restaurant-fact{min-width:0;display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--border);border-radius:15px;background:var(--card);box-shadow:0 5px 16px rgba(20,30,25,.055)}
.restaurant-fact-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:var(--brand-l);color:var(--brand);font-size:17px}
.restaurant-fact-copy{min-width:0}.restaurant-fact-label{font-size:9px;font-weight:800;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.restaurant-fact-value{margin-top:2px;font-size:12px;font-weight:900;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.restaurant-fact.status-open .restaurant-fact-icon{background:rgba(var(--green-rgb),.12);color:var(--green)}
.restaurant-fact.status-closed .restaurant-fact-icon{background:rgba(198,40,40,.1);color:var(--red)}
.premium-offer{position:relative;isolation:isolate;overflow:hidden;width:calc(min(var(--app-max),100%) - 24px);min-height:118px;margin:12px auto 2px;padding:22px;border-radius:22px;background:linear-gradient(135deg,var(--dark),var(--dark2));color:#fff;box-shadow:0 12px 30px rgba(20,30,25,.14)}
.premium-offer::after{content:'';position:absolute;z-index:-1;width:160px;height:160px;inset-block-start:-65px;inset-inline-end:-42px;border-radius:50%;background:var(--brand);opacity:.28}.premium-offer-kicker{font-size:10px;font-weight:900;color:rgba(255,255,255,.66)}.premium-offer-title{max-width:75%;margin-top:7px;font-size:20px;font-weight:950;line-height:1.3}.premium-offer-copy{margin-top:6px;font-size:11px;color:rgba(255,255,255,.72)}.premium-offer-countdown{display:inline-flex;margin-top:12px;padding:6px 10px;border:1px solid rgba(255,255,255,.2);border-radius:99px;background:rgba(255,255,255,.1);font-size:10px;font-weight:900;font-variant-numeric:tabular-nums}

/* Personalized rails */
.home-rail{display:none;width:min(var(--app-max),100%);margin:0 auto;padding-top:14px}.home-rail.show{display:block;animation:premiumReveal var(--motion-screen) var(--ease-standard) both}
.home-rail-head{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:0 14px 9px}.home-rail-title{font-size:17px;font-weight:950}.home-rail-hint{font-size:10px;color:var(--muted);margin-top:2px}.home-rail-action{border:0;background:transparent;color:var(--brand);font:inherit;font-size:11px;font-weight:900}
.home-rail-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:min(70vw,245px);gap:10px;padding:0 12px 6px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.home-rail-scroll::-webkit-scrollbar{display:none}
.rail-product{position:relative;min-height:104px;display:grid;grid-template-columns:96px minmax(0,1fr);gap:11px;padding:8px;border:1px solid var(--border);border-radius:18px;background:var(--card);box-shadow:0 5px 17px rgba(20,30,25,.06);scroll-snap-align:start;text-align:start;color:var(--text);font:inherit;overflow:hidden}
.rail-product img,.rail-product-placeholder{width:96px;height:88px;object-fit:cover;border-radius:13px;background:var(--bg)}.rail-product-placeholder{display:grid;place-items:center;font-size:30px}.rail-product-copy{min-width:0;padding:5px 3px}.rail-product-name{font-size:13px;font-weight:900;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rail-product-price{margin-top:9px;color:var(--brand);font-size:13px;font-weight:950}.rail-product-badge{display:inline-flex;margin-top:4px;padding:3px 7px;border-radius:99px;background:var(--brand-l);color:var(--brand);font-size:8px;font-weight:900}
.recent-order-card{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;min-height:112px;padding:14px;border:1px solid var(--border);border-radius:18px;background:var(--card);color:var(--text);text-align:start;font:inherit;box-shadow:0 5px 17px rgba(20,30,25,.06);scroll-snap-align:start}.recent-order-top{display:flex;justify-content:space-between;gap:10px}.recent-order-id{font-size:13px;font-weight:950}.recent-order-date{font-size:9px;color:var(--muted)}.recent-order-meta{font-size:11px;color:var(--muted);margin-top:8px}.recent-order-cta{margin-top:12px;color:var(--brand);font-size:11px;font-weight:900}

/* Catalog cards */
.pcard{min-height:100%;border:1px solid transparent;transition:transform var(--motion-press),box-shadow var(--motion-toast),border-color var(--motion-toast)}
.pcard-body{display:flex;min-height:116px;flex-direction:column}.pcard-footer{margin-top:auto;gap:8px}.pcard-badges{position:absolute;z-index:3;top:8px;inset-inline-start:8px;display:flex;flex-wrap:wrap;gap:4px;max-width:calc(100% - 45px)}
.pcard-badge{padding:4px 7px;border-radius:99px;background:rgba(20,25,22,.78);color:#fff;font-size:8px;font-weight:950;backdrop-filter:blur(8px)}.pcard-badge.featured,.pcard-badge.offer{background:var(--brand)}.pcard-badge.hot{background:#ba321f}.pcard-badge.new{background:#267252}.pcard-badge.vegetarian{background:#2e7d32}
.pcard-favorite{position:absolute;z-index:4;top:8px;inset-inline-end:8px;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(255,255,255,.88);color:#59625e;font-size:17px;box-shadow:0 4px 12px rgba(0,0,0,.12);backdrop-filter:blur(8px)}.pcard-favorite.active{color:#d9234e;background:#fff0f4}.pcard-favorite + .pbadge-count{top:48px;right:auto;inset-inline-end:13px}
.pcard.unavailable{opacity:.76}.pcard.unavailable .pcard-img-wrap::after{content:attr(data-unavailable);position:absolute;z-index:3;inset:0;display:grid;place-items:center;background:rgba(20,24,22,.48);color:#fff;font-size:12px;font-weight:950;backdrop-filter:grayscale(1px)}
.pcard.unavailable .add-btn{background:var(--border);color:var(--muted);box-shadow:none}.add-btn{width:44px;height:44px;font-size:23px}.qty-ctrl button{width:34px;height:34px}.qty-ctrl{gap:6px;padding:3px 6px}
.pcard-price{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}.product-price-current{color:var(--brand);font-weight:950}.product-price-old{margin-top:3px;color:var(--muted);font-size:9px;font-weight:700}.pdm-price .product-price-old{margin-inline-start:8px;font-size:12px}.pdm-price{display:flex;align-items:baseline;flex-wrap:wrap}
.category-card-cover{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2;filter:saturate(.85)}.category-card.has-cover{background:linear-gradient(180deg,rgba(255,255,255,.28),var(--card))}.category-card.has-cover::before{opacity:.2}
.pdm-favorite{position:absolute;z-index:3;top:14px;inset-inline-start:14px;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(255,255,255,.9);color:#59625e;font:inherit;font-size:20px;box-shadow:0 6px 20px rgba(0,0,0,.16)}.pdm-favorite.active{color:#d9234e;background:#fff0f4}.pdm-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}.pdm-badge{padding:5px 9px;border-radius:99px;background:var(--brand-l);color:var(--brand);font-size:9px;font-weight:950}
.pdm-note-label{display:block;margin-top:16px;font-size:11px;font-weight:900;color:var(--muted)}.pdm-note{width:100%;min-height:58px;margin-top:6px;padding:10px 12px;resize:none;border:1.5px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);font:inherit;font-size:12px;outline:0}.pdm-note:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.1)}

/* Full-screen search */
.premium-search{position:fixed;z-index:4700;inset:0;background:var(--bg);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px);transition:opacity var(--motion-screen),transform var(--motion-screen) var(--ease-spring),visibility var(--motion-screen);outline:0}
.premium-search.open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.premium-search-shell{width:min(var(--app-max),100%);height:100%;margin:0 auto;display:flex;flex-direction:column}.premium-search-head{display:flex;align-items:center;gap:8px;padding:calc(12px + env(safe-area-inset-top)) 12px 11px;background:var(--card);border-bottom:1px solid var(--border);box-shadow:0 4px 18px rgba(0,0,0,.06)}
.premium-search-back{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:14px;background:var(--bg);color:var(--text);font:inherit;font-size:21px;font-weight:900}.premium-search-field{height:46px;flex:1;min-width:0;border:1.5px solid var(--border);border-radius:14px;background:var(--bg);padding:0 14px;color:var(--text);font:inherit;font-size:14px;outline:0}.premium-search-field:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.1)}.premium-search-clear{height:42px;padding:0 8px;border:0;background:transparent;color:var(--brand);font:inherit;font-size:11px;font-weight:900}
.premium-search-body{flex:1;min-height:0;overflow-y:auto;padding:16px 12px calc(90px + env(safe-area-inset-bottom));overscroll-behavior:contain}.search-section{margin-bottom:20px}.search-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;font-size:12px;font-weight:900;color:var(--muted)}.search-chips{display:flex;gap:7px;flex-wrap:wrap}.search-chip{padding:8px 12px;border:1px solid var(--border);border-radius:99px;background:var(--card);color:var(--text);font:inherit;font-size:11px;font-weight:800}.search-result{width:100%;display:grid;grid-template-columns:66px minmax(0,1fr) 42px;gap:11px;align-items:center;padding:9px;margin-bottom:8px;border:1px solid var(--border);border-radius:16px;background:var(--card);color:var(--text);font:inherit;text-align:start;cursor:pointer}.search-result img,.search-result-placeholder{width:66px;height:66px;border-radius:12px;object-fit:cover;background:var(--bg)}.search-result-placeholder{display:grid;place-items:center;font-size:23px}.search-result-name{font-size:13px;font-weight:900}.search-result mark{padding:0;background:var(--brand-l);color:var(--brand);border-radius:3px}.search-result-meta{margin-top:4px;font-size:10px;color:var(--muted)}.search-result-price{margin-top:6px;font-size:12px;color:var(--brand);font-weight:950}.search-result-add{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:13px;background:var(--brand);color:#fff;font-size:21px;font-weight:900}.search-result-add:disabled{background:var(--border);color:var(--muted)}.search-empty{text-align:center;padding:46px 16px;color:var(--muted)}

/* A single cart action above bottom navigation */
body.premium-mini-cart .cart-fab{bottom:calc(78px + env(safe-area-inset-bottom));width:calc(min(var(--app-max),100%) - 24px);min-width:0;max-width:696px;min-height:56px;padding:8px 10px 8px 12px;border-radius:17px;gap:10px;box-shadow:0 11px 30px rgba(var(--brand-rgb),.34)}
body.premium-mini-cart .cart-fab.show{display:grid;grid-template-columns:auto minmax(0,1fr) auto}body.premium-mini-cart .cf-count{width:38px;height:38px;border-radius:12px}body.premium-mini-cart .cf-label{text-align:start}body.premium-mini-cart .cf-label-main{display:block;font-size:13px}body.premium-mini-cart .cf-label-hint{display:block;margin-top:2px;font-size:9px;font-weight:700;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.premium-mini-cart .cf-total{padding:9px 10px;border-radius:11px;background:rgba(255,255,255,.14)}
body.premium-mini-cart .app-bottom-nav{grid-template-columns:repeat(4,1fr)}
body.premium-mini-cart .app-nav-btn[data-app-tab="cart"]{display:none}
.app-bottom-nav{transition:transform var(--motion-screen) var(--ease-spring)}

/* Three-step checkout and inline validation */
.checkout-progress{grid-template-columns:repeat(3,1fr)}.checkout-progress-step{font-size:10px}.field-error{display:none;margin:-5px 3px 9px;color:var(--red);font-size:10px;font-weight:750;line-height:1.4}.field-error.show{display:block}.chk-input.invalid,.chk-note.invalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(198,40,40,.08)}
.checkout-type-inline{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}.checkout-type-option{padding:11px;border:1.5px solid var(--border);border-radius:13px;background:var(--card);color:var(--text);font:inherit;font-size:12px;font-weight:900}.checkout-type-option.active{border-color:var(--brand);background:var(--brand-l);color:var(--brand)}
.payment-options{display:grid;gap:8px;margin:0 16px 14px}.payment-option{position:relative;display:flex;align-items:center;gap:10px;padding:13px;border:1.5px solid var(--border);border-radius:14px;background:var(--card);font-size:12px;font-weight:900}.payment-option.active{border-color:var(--brand);background:var(--brand-l);color:var(--brand)}.payment-option input{position:absolute;opacity:0}.payment-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:var(--bg);font-size:17px}.payment-options.unavailable{border:1px solid rgba(214,52,71,.25);border-radius:14px;background:rgba(214,52,71,.07)}.payment-unavailable{padding:12px;color:var(--red);font-size:11px;font-weight:800;line-height:1.65}.quote-status{display:none;margin:0 16px 10px;padding:9px 11px;border-radius:10px;background:var(--brand-l);color:var(--brand);font-size:10px;font-weight:800}.quote-status.show{display:block}.quote-status.error{background:rgba(214,52,71,.08);color:var(--red)}.sum-row.discount{color:var(--green)}
.coupon-box{margin:8px 16px 12px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.coupon-box>label{display:block;margin-bottom:7px;color:var(--muted);font-size:11px;font-weight:850}.coupon-row{display:flex;gap:8px}.coupon-row .chk-input{min-width:0;margin:0;text-transform:uppercase}.coupon-row button{flex:0 0 auto;min-width:72px;padding:0 13px;border:0;border-radius:10px;background:var(--brand);color:#fff;font:inherit;font-size:11px;font-weight:900}.coupon-row button:disabled{opacity:.55}.coupon-feedback{display:none;margin-top:8px;color:var(--green);font-size:10px;font-weight:800}.coupon-feedback.show{display:block}.coupon-feedback.error{color:var(--red)}
.cart-suggestions{display:none;padding:12px 16px 4px}.cart-suggestions.show{display:block}.cart-suggestions-title{margin-bottom:8px;color:var(--text);font-size:13px;font-weight:950}.cart-suggestions-list{display:grid;grid-auto-flow:column;grid-auto-columns:min(76%,260px);gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.cart-suggestions-list::-webkit-scrollbar{display:none}.cart-suggestion{display:flex;align-items:center;gap:9px;min-width:0;padding:8px;border:1px solid var(--border);border-radius:13px;background:var(--card);color:var(--text);text-align:start;font:inherit;scroll-snap-align:start}.cart-suggestion img,.cart-suggestion-placeholder{width:42px;height:42px;flex:0 0 auto;border-radius:10px;object-fit:cover;background:var(--bg);display:grid;place-items:center}.cart-suggestion>span:nth-child(2){min-width:0;flex:1}.cart-suggestion strong,.cart-suggestion small{display:block}.cart-suggestion strong{overflow:hidden;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.cart-suggestion small{margin-top:3px;color:var(--brand);font-size:9px;font-weight:900}.cart-suggestion b{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:var(--brand);color:#fff;font-size:16px}

/* GPU-only product transition and feedback */
.shared-product-ghost,.cart-flight{position:fixed;z-index:9000;object-fit:cover;pointer-events:none;will-change:transform,opacity;border-radius:inherit;box-shadow:0 16px 40px rgba(0,0,0,.2)}
.shared-transitioning #productDetailImage{opacity:0}.cart-flight{z-index:8800;border-radius:16px}.premium-shake{animation:premiumShake .36s var(--ease-standard)}
.kpc-overlay{backdrop-filter:blur(9px)!important;background:rgba(7,12,10,.7)!important}.kpc-dialog{background:var(--card)!important;color:var(--text);animation:premiumChoiceIn var(--motion-sheet) var(--ease-spring) both}.kpc-head,.kpc-footer{background:var(--card)!important;border-color:var(--border)!important}.kpc-title{color:var(--text)!important}.kpc-subtitle{color:var(--muted)!important}.kpc-close{background:var(--bg)!important;color:var(--text)!important}.kpc-body,.kpc-panel,.kpc-section{background:var(--card)!important}.kpc-section{border-color:var(--border)!important}.kpc-section.open{border-color:var(--brand)!important}.kpc-toggle{background:var(--bg)!important;color:var(--text)!important}.kpc-choice{background:var(--card)!important;color:var(--text)!important;border-color:var(--border)!important}.kpc-choice.selected{border-color:var(--brand)!important;background:var(--brand-l)!important;color:var(--brand)!important}.kpc-confirm{background:var(--brand)!important;box-shadow:0 7px 22px rgba(var(--brand-rgb),.28)!important}
@keyframes premiumShake{25%{transform:translateX(-5px)}50%{transform:translateX(5px)}75%{transform:translateX(-2px)}}
@keyframes premiumReveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes premiumChoiceIn{from{opacity:0;transform:translateY(35px) scale(.985)}to{opacity:1;transform:none}}

@media(min-width:701px){.restaurant-info{grid-template-columns:repeat(4,minmax(0,1fr))}.premium-search-shell{border-inline:1px solid var(--border)}.pdm-dialog{width:min(900px,100%)}.pdm-media{min-height:520px}}
@media(max-width:430px){.restaurant-fact{padding:9px}.restaurant-fact-icon{width:30px;height:30px}.restaurant-fact-value{font-size:11px}.home-rail-scroll{grid-auto-columns:78vw}.prod-grid{gap:10px;padding-inline:10px}.pcard-body{min-height:112px}}
@media(max-width:600px){.kpc-dialog{height:100vh;height:100dvh;max-height:none!important;border-radius:0!important}.kpc-overlay{align-items:stretch!important}}
@media(prefers-reduced-motion:reduce){:root{--motion-press:0ms;--motion-toast:0ms;--motion-screen:0ms;--motion-sheet:0ms;--motion-shared:0ms}.premium-search,.home-rail.show,.shared-product-ghost,.cart-flight{animation:none!important;transition:none!important}}
