:root{--red:#d71920;--dark:#111827;--muted:#6b7280;--line:#e5e7eb;--bg:#fff7f7;--soft:#fff1f2}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:linear-gradient(180deg,#fff,#fff5f5);color:var(--dark)}button,input,select,textarea{font:inherit}button{cursor:pointer}
.web-hero{background:linear-gradient(135deg,#b91c1c,#ef4444);color:white;padding:18px 16px 34px;border-bottom-left-radius:34px;border-bottom-right-radius:34px;box-shadow:0 20px 60px rgba(185,28,28,.25)}
.web-nav{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center}.brand-mark{display:flex;gap:12px;align-items:center}.brand-mark span{width:48px;height:48px;border-radius:16px;background:white;color:var(--red);display:grid;place-items:center;font-weight:900}.brand-mark strong{display:block;font-size:18px}.brand-mark small{opacity:.85}.admin-link{color:white;text-decoration:none;border:1px solid rgba(255,255,255,.35);padding:10px 13px;border-radius:999px;font-weight:800}
.hero-grid{max-width:1180px;margin:34px auto 0;display:grid;grid-template-columns:1.5fr .8fr;gap:22px;align-items:end}.hero-pill{display:inline-flex;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:8px 12px;font-weight:900}.web-hero h1{font-size:clamp(34px,7vw,70px);line-height:.95;margin:18px 0 12px}.web-hero p{font-size:18px;max-width:620px;opacity:.92}.hero-meta{display:flex;gap:10px;flex-wrap:wrap}.hero-meta span,.hero-card{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:18px;padding:12px 14px;font-weight:800}.hero-card strong{font-size:28px;display:block}.hero-card span{display:block;margin-top:8px;opacity:.9}
.web-shell{max-width:1180px;margin:24px auto 120px;padding:0 16px}.web-alert{background:#fff;border:1px solid #fecaca;color:#991b1b;border-radius:18px;padding:14px 16px;font-weight:800;margin-bottom:14px;box-shadow:0 12px 34px rgba(0,0,0,.06)}
.menu-layout{display:grid;grid-template-columns:230px 1fr;gap:18px}.category-rail{position:sticky;top:12px;align-self:start;background:white;border:1px solid var(--line);border-radius:24px;padding:12px;box-shadow:0 14px 40px rgba(0,0,0,.06)}.cat-btn{width:100%;border:0;background:#fff;color:#374151;text-align:left;padding:13px 14px;border-radius:15px;font-weight:900}.cat-btn.active,.cat-btn:hover{background:var(--red);color:white}.search-card{background:white;border:1px solid var(--line);border-radius:22px;padding:12px;box-shadow:0 10px 34px rgba(0,0,0,.05);margin-bottom:16px}.search-card input{width:100%;border:1px solid var(--line);border-radius:16px;padding:14px 16px;outline:none}
.category-section{margin-bottom:28px}.category-section h2{margin:0 0 12px;font-size:26px}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.product-card{background:white;border:1px solid var(--line);border-radius:22px;padding:16px;min-height:170px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 14px 36px rgba(0,0,0,.06)}.product-card h3{margin:0 0 7px;font-size:18px}.product-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.35}.product-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.product-bottom strong{font-size:20px;color:var(--red)}.product-bottom button,.primary{border:0;background:var(--red);color:white;border-radius:14px;padding:12px 15px;font-weight:900}.full{width:100%}
.cart-fab{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;background:#111827;color:white;border:0;border-radius:999px;padding:14px 18px;display:flex;gap:18px;align-items:center;box-shadow:0 20px 60px rgba(0,0,0,.30);z-index:30}.cart-fab span{font-weight:900}.cart-fab strong{background:var(--red);padding:8px 12px;border-radius:999px}
.modal[hidden]{display:none}.modal{position:fixed;inset:0;background:rgba(17,24,39,.62);display:grid;place-items:center;z-index:50;padding:16px}.modal-card{background:white;border-radius:26px;width:min(560px,100%);max-height:92vh;overflow:auto;padding:22px;position:relative;box-shadow:0 30px 90px rgba(0,0,0,.25)}.checkout-card{width:min(760px,100%)}.modal-close{position:absolute;right:16px;top:14px;border:0;background:#f3f4f6;border-radius:50%;width:38px;height:38px;font-size:24px}.modal-card h2{margin:0 44px 10px 0}.modal-card label{display:block;margin:12px 0 7px;font-weight:900}.modal-card input,.modal-card select,.modal-card textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px 14px;outline:none}.modal-card textarea{min-height:84px}.qty-row{display:flex;align-items:center;gap:12px;margin:16px 0}.qty-row button,.cart-row-actions button{border:0;background:#fee2e2;color:#991b1b;border-radius:12px;width:42px;height:42px;font-weight:900}.checkout-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cart-items{display:grid;gap:10px}.cart-row{display:flex;justify-content:space-between;gap:12px;padding:12px;background:#fff7f7;border:1px solid #fecaca;border-radius:16px}.cart-row span{display:block;color:var(--muted);font-size:12px}.cart-row-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.cart-row-actions em{font-style:normal;font-weight:900;color:var(--red)}.cart-total,.min-info{display:flex;justify-content:space-between;background:#f9fafb;border:1px solid var(--line);border-radius:16px;padding:14px;margin:12px 0;font-weight:900}.empty-cart{color:var(--muted)}
.track-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#fff,#fee2e2);padding:20px}.track-card{width:min(540px,100%);background:white;border-radius:30px;padding:28px;box-shadow:0 30px 90px rgba(185,28,28,.18);text-align:center}.track-card h1{font-size:54px;margin:14px 0;color:var(--red)}.track-status{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:22px 0}.track-status div{padding:12px;border-radius:16px;background:#f3f4f6;font-weight:900;color:#6b7280}.track-status .active{background:var(--red);color:white}.track-info{background:#f9fafb;border-radius:18px;padding:16px;line-height:1.8;text-align:left}.track-btn{display:inline-flex;margin-top:18px;background:var(--red);color:white;text-decoration:none;border-radius:16px;padding:13px 17px;font-weight:900}
@media(max-width:820px){.hero-grid{grid-template-columns:1fr}.menu-layout{grid-template-columns:1fr}.category-rail{position:relative;top:auto;display:flex;overflow:auto;gap:8px;border-radius:18px}.cat-btn{width:auto;white-space:nowrap}.product-grid{grid-template-columns:1fr}.checkout-grid{grid-template-columns:1fr}.web-nav{gap:12px}.admin-link{font-size:13px}.cart-row{display:block}.cart-row-actions{margin-top:10px}.track-status{grid-template-columns:1fr}.hero-card{display:none}}


/* V35 closed-hours ordering lock */
.closed-big-v35{
  display:grid;
  gap:6px;
  font-size:15px;
}
.closed-big-v35 strong{
  font-size:18px;
  color:#7f1d1d;
}
.closed-big-v35 span{
  color:#991b1b;
}
.disabled-add-v35{
  background:#9ca3af !important;
  color:white !important;
  cursor:not-allowed !important;
  opacity:.85;
}
.closed-fab-v35{
  background:#7f1d1d !important;
  cursor:pointer;
}
.closed-fab-v35 strong{
  background:white !important;
  color:#b91c1c !important;
}


/* V36 custom closed-hours popup */
.nice-toast-v36[hidden]{display:none}
.nice-toast-v36{
  position:fixed;
  inset:0;
  z-index:120;
}
.nice-toast-backdrop-v36{
  position:absolute;
  inset:0;
  background:rgba(17,24,39,.58);
  backdrop-filter:blur(4px);
}
.nice-toast-card-v36{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(460px, calc(100% - 24px));
  background:linear-gradient(180deg,#ffffff,#fff5f5);
  border:1px solid rgba(220,38,38,.16);
  border-radius:24px;
  box-shadow:0 30px 90px rgba(17,24,39,.28);
  padding:24px 22px 20px;
  animation:toastPopV36 .18s ease-out;
}
@keyframes toastPopV36{
  from{opacity:0; transform:translate(-50%,-46%) scale(.97)}
  to{opacity:1; transform:translate(-50%,-50%) scale(1)}
}
.nice-toast-icon-v36{
  width:58px;
  height:58px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-size:28px;
  background:linear-gradient(135deg,#fee2e2,#fecaca);
  color:#b91c1c;
  margin-bottom:14px;
}
.nice-toast-content-v36 h3{
  margin:0 0 8px;
  font-size:24px;
  line-height:1.1;
  color:#111827;
}
.nice-toast-content-v36 p{
  margin:0;
  color:#7f1d1d;
  font-size:15px;
  line-height:1.55;
}
.nice-toast-btn-v36{
  margin-top:18px;
  width:100%;
  border:0;
  border-radius:16px;
  padding:14px 18px;
  font-weight:900;
  color:#fff;
  background:linear-gradient(135deg,#dc2626,#ef4444);
  box-shadow:0 14px 34px rgba(220,38,38,.28);
}
.nice-toast-btn-v36:hover{
  filter:brightness(1.03);
}
@media(max-width:640px){
  .nice-toast-card-v36{
    padding:20px 18px 18px;
    border-radius:22px;
  }
  .nice-toast-content-v36 h3{
    font-size:22px;
  }
}


/* V37 location sharing */
.location-btn-v37{
  width:100%;
  border:1px solid #fecaca;
  background:#fff1f2;
  color:#991b1b;
  border-radius:16px;
  padding:13px 16px;
  font-weight:900;
  margin:10px 0 6px;
}
.location-status-v37{
  font-size:13px;
  color:#6b7280;
  background:#f9fafb;
  border:1px solid #e5e7eb;
  padding:10px 12px;
  border-radius:14px;
}
.location-status-v37.ok{
  color:#166534;
  background:#f0fdf4;
  border-color:#bbf7d0;
}
.location-status-v37.error{
  color:#991b1b;
  background:#fff1f2;
  border-color:#fecaca;
}


/* V38 premium 3D hero visual */
.hero-grid{
  grid-template-columns:1.05fr .95fr;
  min-height:430px;
}
.hero-grid > div:first-child{
  position:relative;
  z-index:2;
}
.hero-visual-v38{
  position:relative;
  min-height:360px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:visible;
}
.hero-visual-v38::before{
  content:"";
  position:absolute;
  width:74%;
  height:34%;
  left:18%;
  bottom:12px;
  background:radial-gradient(circle, rgba(127,29,29,.45), transparent 68%);
  filter:blur(18px);
  opacity:.75;
}
.hero-visual-v38 img{
  position:relative;
  z-index:1;
  width:min(100%, 780px);
  max-height:405px;
  object-fit:contain;
  filter:drop-shadow(0 28px 38px rgba(69,10,10,.36));
  transform:translateY(26px);
  pointer-events:none;
  user-select:none;
}
.hero-card-v38{
  position:absolute;
  right:2%;
  bottom:30px;
  z-index:2;
  width:min(330px, 55%);
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.30);
  border-radius:22px;
  padding:18px 18px;
  backdrop-filter:blur(10px);
  box-shadow:0 20px 54px rgba(127,29,29,.22);
}
.hero-card-v38 strong{
  display:block;
  color:#fff;
  font-size:24px;
  line-height:1.05;
}
.hero-card-v38 span{
  display:block;
  margin-top:8px;
  color:rgba(255,255,255,.92);
  font-weight:800;
  font-size:14px;
  line-height:1.35;
}
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;min-height:0}
  .hero-visual-v38{
    min-height:260px;
    margin-top:6px;
  }
  .hero-visual-v38 img{
    width:min(96%, 620px);
    max-height:300px;
    transform:translateY(12px);
  }
  .hero-card-v38{
    right:50%;
    transform:translateX(50%);
    bottom:12px;
    width:min(420px, 88%);
  }
}
@media(max-width:640px){
  .hero-visual-v38{min-height:210px}
  .hero-visual-v38 img{max-height:235px}
  .hero-card-v38{
    position:relative;
    right:auto;
    bottom:auto;
    transform:none;
    width:100%;
    margin-top:-8px;
  }
}


/* V39 hero cleanup */
.hero-grid{
  align-items:center;
}
.hero-visual-v38{
  min-height:310px;
  justify-content:flex-end;
  align-items:flex-end;
}
.hero-visual-v38::before{
  width:68%;
  height:28%;
  left:24%;
  bottom:6px;
  opacity:.55;
}
.hero-visual-v38 img{
  width:min(100%, 700px);
  max-height:340px;
  transform:translateY(8px);
}
.hero-card-v38{
  right:-6px;
  bottom:34px;
  width:min(320px, 46%);
}
@media(max-width:980px){
  .hero-visual-v38{
    min-height:220px;
    justify-content:center;
  }
  .hero-visual-v38 img{
    width:min(96%, 560px);
    max-height:250px;
    transform:translateY(2px);
  }
  .hero-card-v38{
    width:min(420px, 88%);
    right:50%;
    bottom:8px;
  }
}
@media(max-width:640px){
  .hero-visual-v38{
    min-height:180px;
  }
  .hero-visual-v38 img{
    max-height:200px;
  }
}


/* V40: hero card moved to upper empty area + public admin button removed */
.web-nav{
  justify-content:flex-start;
}
.hero-visual-v38{
  position:relative;
  min-height:355px;
  padding-top:72px;
  align-items:flex-end;
  justify-content:center;
}
.hero-visual-v38 img{
  width:min(100%, 690px);
  max-height:320px;
  transform:translateY(8px);
}
.hero-card-v38{
  top:6px;
  left:6%;
  right:auto;
  bottom:auto;
  width:min(390px, 68%);
  padding:20px 22px;
  border-radius:24px;
}
.hero-card-v38 strong{
  font-size:28px;
}
.hero-card-v38 span{
  font-size:15px;
}

@media(max-width:980px){
  .web-nav{
    justify-content:space-between;
  }
  .hero-visual-v38{
    min-height:300px;
    padding-top:82px;
  }
  .hero-card-v38{
    position:absolute;
    top:8px;
    left:50%;
    right:auto;
    bottom:auto;
    transform:translateX(-50%);
    width:min(430px, 92%);
  }
  .hero-visual-v38 img{
    max-height:250px;
    transform:translateY(6px);
  }
}
@media(max-width:640px){
  .hero-visual-v38{
    min-height:auto;
    padding-top:0;
    display:block;
  }
  .hero-card-v38{
    position:relative;
    left:auto;
    top:auto;
    right:auto;
    bottom:auto;
    transform:none;
    width:100%;
    margin:16px 0 10px;
  }
  .hero-visual-v38 img{
    width:100%;
    max-height:220px;
    transform:none;
  }
}


/* V41: hero card shifted right + scooter motion feel */
.hero-visual-v38{
  overflow:visible;
}
.hero-card-v38{
  left:18%;
  top:8px;
  right:auto;
  bottom:auto;
}
.hero-visual-v38 img{
  animation:heroRideV41 4s ease-in-out infinite;
  transform-origin:42% 78%;
  will-change:transform;
}
.hero-visual-v38::after{
  content:"";
  position:absolute;
  right:4%;
  top:115px;
  width:130px;
  height:12px;
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.16), rgba(255,255,255,0));
  filter:blur(2px);
  opacity:.35;
  border-radius:999px;
  animation:speedGlowV41 2.4s linear infinite;
  pointer-events:none;
}
@keyframes heroRideV41{
  0%,100%{transform:translate(0,8px) rotate(0deg)}
  20%{transform:translate(6px,6px) rotate(-0.45deg)}
  40%{transform:translate(12px,8px) rotate(0deg)}
  60%{transform:translate(7px,10px) rotate(0.35deg)}
  80%{transform:translate(2px,7px) rotate(-0.2deg)}
}
@keyframes speedGlowV41{
  0%{transform:translateX(-18px); opacity:.12}
  50%{transform:translateX(12px); opacity:.36}
  100%{transform:translateX(30px); opacity:.12}
}
@media (prefers-reduced-motion: reduce){
  .hero-visual-v38 img,
  .hero-visual-v38::after{animation:none !important}
}
@media(max-width:980px){
  .hero-card-v38{
    left:50%;
  }
}
@media(max-width:640px){
  .hero-visual-v38::after{display:none}
}
