:root{--business-primary:#2563eb;--business-secondary:#64748b;--business-bg:#f8fafc;--business-surface:#ffffff;--business-text:#111827;--business-text-muted:#64748b;--business-border:#e5e7eb;--business-header:#ffffff;--business-header-text:#111827;--business-product-card:#ffffff;--business-product-border:#e5e7eb;--business-price:#2563eb;--business-button:#2563eb;--business-button-text:#ffffff;--business-button-hover:#1d4ed8;--business-cart:#ffffff;--business-cart-text:#111827;--business-form:#f8fafc;--business-input:#ffffff;--business-input-text:#111827;--business-whatsapp:#22c55e;--business-cta:#2563eb;--business-cta-text:#ffffff;--business-offer:#dc2626;--business-success:#16a34a;--business-warning:#f59e0b;--business-danger:#dc2626;--business-footer:#111827;--business-footer-text:#f8fafc;--radius-xs:8px;--radius-sm:12px;--radius-md:18px;--radius-lg:26px;--shadow-sm:0 4px 16px rgba(15,23,42,0.08);--shadow-md:0 12px 30px rgba(15,23,42,0.12);--shadow-lg:0 22px 50px rgba(15,23,42,0.18);--container-width:1180px;--transition:180ms ease}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  min-height:100vh;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--business-bg);
  color:var(--business-text);
  line-height:1.5;
  transition:background-color var(--transition),color var(--transition)
}

body.theme-dark{color-scheme:dark}
body.theme-light{color-scheme:light}

img{
  display:block;
  max-width:100%
}

button,input,textarea,select{
  font:inherit
}

button,a{
  -webkit-tap-highlight-color:transparent
}

button{
  cursor:pointer
}

button:disabled{
  cursor:not-allowed;
  opacity:.55
}

a{
  color:inherit
}

[hidden]{
  display:none!important
}

.public-app{
  min-height:100vh
}

.public-main{
  width:min(calc(100% - 32px),var(--container-width));
  margin:0 auto;
  padding:32px 0 56px
}

.public-message{
  margin:0;
  padding:20px;
  text-align:center;
  color:var(--business-text)
}

.public-loading{
  padding:32px 20px;
  text-align:center;
  color:var(--business-text-muted)
}

.section-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:22px
}

.section-heading h2{
  margin:4px 0 0;
  font-size:clamp(1.55rem,4vw,2rem);
  line-height:1.15
}

.section-eyebrow{
  display:inline-block;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--business-primary)
}

.business-header{
  background:var(--business-header);
  color:var(--business-header-text);
  border-bottom:1px solid var(--business-border);
  transition:background-color var(--transition),color var(--transition)
}

.business-header-content{
  width:min(calc(100% - 32px),var(--container-width));
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:20px;
  min-height:150px;
  padding:24px 0
}

.business-logo{
  width:96px;
  height:96px;
  object-fit:contain;
  flex:0 0 auto;
  border-radius:var(--radius-md);
  background:var(--business-surface);
  border:1px solid var(--business-border);
  padding:8px
}

.business-header-info{
  min-width:0
}

.business-name{
  margin:0;
  font-size:clamp(1.8rem,5vw,2.8rem);
  line-height:1.05;
  color:var(--business-header-text)
}

.business-description{
  max-width:720px;
  margin:10px 0 14px;
  color:var(--business-text-muted)
}

.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  font-size:.78rem;
  line-height:1;
  font-weight:800;
  border:1px solid transparent
}

.badge-open{
  color:#166534;
  background:#dcfce7;
  border-color:#86efac
}

.badge-closed{
  color:#991b1b;
  background:#fee2e2;
  border-color:#fecaca
}

.badge-pending{
  color:#92400e;
  background:#fef3c7
}

.badge-accepted{
  color:#1e40af;
  background:#dbeafe
}

.badge-preparing{
  color:#6b21a8;
  background:#f3e8ff
}

.badge-ready{
  color:#166534;
  background:#dcfce7
}

.badge-delivered{
  color:#115e59;
  background:#ccfbf1
}

.badge-cancelled{
  color:#991b1b;
  background:#fee2e2
}

.public-cta{
  margin-bottom:44px;
  padding:34px;
  border-radius:var(--radius-lg);
  color:var(--business-cta-text);
  background:linear-gradient(135deg,var(--business-cta),var(--business-primary));
  box-shadow:var(--shadow-md)
}

.public-cta-content{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}

.public-cta-text{
  max-width:720px
}

.public-cta-eyebrow{
  display:inline-block;
  margin-bottom:6px;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
  opacity:.8
}

.public-cta h2{
  margin:0;
  font-size:clamp(1.7rem,5vw,2.7rem);
  line-height:1.05
}

.public-cta p{
  margin:12px 0 0;
  max-width:620px;
  opacity:.9
}

.public-cta-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 22px;
  flex:0 0 auto;
  text-decoration:none;
  font-weight:800;
  border-radius:999px;
  color:var(--business-cta);
  background:var(--business-cta-text);
  box-shadow:var(--shadow-sm);
  transition:transform var(--transition),box-shadow var(--transition)
}

.public-cta-button:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-md)
}

.catalog-section,
.cart-section,
.checkout-section,
.order-tracking-section,
.business-whatsapp-section{
  margin:0 0 48px
}

.catalog-state{
  padding:28px;
  margin-bottom:18px;
  border:1px dashed var(--business-border);
  border-radius:var(--radius-md);
  text-align:center;
  color:var(--business-text-muted);
  background:var(--business-surface)
}

.catalog-state-error{
  color:var(--business-danger)
}

.catalog{
  display:flex;
  flex-direction:column;
  gap:40px
}

.catalog-category{
  scroll-margin-top:24px
}

.catalog-category-header{
  margin-bottom:16px
}

.catalog-category-title{
  margin:0;
  font-size:1.4rem
}

.products-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px
}

.product-card{
  min-width:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:var(--business-product-card);
  color:var(--business-text);
  border:1px solid var(--business-product-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
  transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)
}

.product-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md)
}

.product-image{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  background:var(--business-form)
}

.product-image-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:3rem;
  color:var(--business-text-muted)
}

.product-card-content{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:18px
}

.product-card-info{
  flex:1
}

.product-name{
  margin:0;
  font-size:1.12rem;
  line-height:1.25
}

.product-description{
  margin:8px 0 0;
  color:var(--business-text-muted);
  font-size:.92rem
}

.product-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:20px
}

.product-price{
  font-size:1.2rem;
  color:var(--business-price)
}

.product-add-btn{
  min-height:42px;
  padding:9px 16px;
  border:0;
  border-radius:999px;
  font-weight:800;
  color:var(--business-button-text);
  background:var(--business-button);
  transition:background-color var(--transition),transform var(--transition)
}

.product-add-btn:hover:not(:disabled){
  background:var(--business-button-hover);
  transform:translateY(-1px)
}

.cart-section{
  padding:26px;
  border-radius:var(--radius-lg);
  background:var(--business-cart);
  color:var(--business-cart-text);
  border:1px solid var(--business-border);
  box-shadow:var(--shadow-sm)
}

.cart-heading-summary{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--business-text-muted);
  font-size:.9rem
}

.cart-heading-summary strong{
  color:var(--business-cart-text)
}

.cart-content{
  display:flex;
  flex-direction:column;
  gap:14px
}

.cart-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px
}

.cart-header h3{
  margin:0
}

#clear-cart-btn{
  border:0;
  background:transparent;
  color:var(--business-danger);
  font-weight:700
}

.cart-empty{
  margin:10px 0 0;
  color:var(--business-text-muted)
}

.cart-items{
  display:flex;
  flex-direction:column;
  gap:12px
}

.cart-item{
  display:grid;
  grid-template-columns:68px minmax(0,1fr) auto auto auto;
  align-items:center;
  gap:14px;
  padding:12px;
  border:1px solid var(--business-border);
  border-radius:var(--radius-sm);
  background:var(--business-surface)
}

.cart-item-unavailable{
  opacity:.72
}

.cart-item-image{
  width:68px;
  height:68px;
  border-radius:var(--radius-xs);
  object-fit:cover;
  background:var(--business-form)
}

.cart-item-info{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px
}

.cart-item-name{
  font-weight:800
}

.cart-item-price{
  font-size:.86rem;
  color:var(--business-text-muted)
}

.cart-item-warning{
  color:var(--business-danger);
  font-weight:700
}

.cart-item-controls{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:1px solid var(--business-border);
  border-radius:999px;
  background:var(--business-surface);
  color:var(--business-text)
}

.cart-item-controls button{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  margin:0;
  padding:0;
  border:0;
  background:var(--business-button)!important;
  color:var(--business-button-text)!important;
  font-size:1.35rem;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  transition:background-color 180ms ease,transform 120ms ease,opacity 180ms ease
}

.cart-item-controls button:hover:not(:disabled){
  background:var(--business-button-hover)!important
}

.cart-item-controls button:active:not(:disabled){
  transform:scale(.92)
}

.cart-item-controls button:disabled{
  opacity:.45;
  cursor:not-allowed
}

.cart-item-qty{
  min-width:46px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  background:var(--business-surface)!important;
  color:var(--business-text)!important;
  font-size:1rem;
  font-weight:900;
  line-height:1
}

.cart-item-subtotal{
  white-space:nowrap;
  color:var(--business-price)
}

.cart-item-remove{
  border:0;
  background:transparent;
  color:var(--business-danger);
  font-weight:700
}

.cart-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:8px;
  padding-top:18px;
  border-top:1px solid var(--business-border);
  font-size:1.15rem
}

.cart-total strong{
  font-size:1.35rem;
  color:var(--business-price)
}

.checkout-section{
  padding:28px;
  border:1px solid var(--business-border);
  border-radius:var(--radius-lg);
  background:var(--business-form)
}

.checkout-form{
  display:flex;
  flex-direction:column;
  gap:20px
}

.checkout-block{
  padding:22px;
  border:1px solid var(--business-border);
  border-radius:var(--radius-md);
  background:var(--business-surface)
}

.checkout-block h3{
  margin:0 0 18px;
  font-size:1.1rem
}

.form-group{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-bottom:16px
}

.form-group:last-child{
  margin-bottom:0
}

.form-group label{
  font-size:.9rem;
  font-weight:750
}

.form-group label span{
  color:var(--business-text-muted);
  font-weight:500
}

.form-group input,
.form-group textarea{
  width:100%;
  border:1px solid var(--business-border);
  outline:none;
  color:var(--business-input-text);
  background:var(--business-input);
  border-radius:var(--radius-sm);
  padding:12px 13px;
  transition:border-color var(--transition),box-shadow var(--transition)
}

.form-group textarea{
  min-height:110px;
  resize:vertical
}

.form-group input:focus,
.form-group textarea:focus{
  border-color:var(--business-primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--business-primary) 18%,transparent)
}

.delivery-type-group{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0;
  padding:0;
  border:0
}

.delivery-type-group legend{
  grid-column:1/-1;
  width:100%;
  margin-bottom:5px;
  font-size:.9rem;
  font-weight:750
}

.delivery-option{
  position:relative;
  display:flex;
  align-items:center;
  min-height:60px;
  padding:14px 16px;
  border:1px solid var(--business-border);
  border-radius:var(--radius-sm);
  background:var(--business-input);
  cursor:pointer;
  transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition)
}

.delivery-option:hover{
  transform:translateY(-1px);
  border-color:var(--business-primary)
}

.delivery-option input{
  width:18px;
  height:18px;
  margin:0 10px 0 0;
  accent-color:var(--business-primary)
}

.delivery-option:has(input:checked){
  border-color:var(--business-primary);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--business-primary) 15%,transparent)
}

.checkout-actions{
  display:flex;
  justify-content:flex-end
}

.checkout-submit-btn{
  width:min(100%,340px);
  min-height:52px;
  border:0;
  border-radius:999px;
  font-weight:900;
  color:var(--business-button-text);
  background:var(--business-button);
  box-shadow:var(--shadow-sm);
  transition:background-color var(--transition),transform var(--transition)
}

.checkout-submit-btn:hover:not(:disabled){
  background:var(--business-button-hover);
  transform:translateY(-1px)
}

.checkout-result{
  min-height:1px
}

.checkout-result.error{
  color:var(--business-danger)
}

.checkout-result.loading{
  color:var(--business-text-muted)
}

.checkout-success{
  padding:20px;
  border:1px solid color-mix(in srgb,var(--business-success) 35%,var(--business-border));
  border-radius:var(--radius-md);
  background:color-mix(in srgb,var(--business-success) 8%,var(--business-surface))
}

.checkout-success h3{
  margin:0 0 12px;
  color:var(--business-success)
}

.checkout-success p{
  margin:7px 0
}

.send-order-whatsapp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:12px;
  min-height:44px;
  padding:10px 17px;
  border-radius:999px;
  text-decoration:none;
  font-weight:800;
  color:#fff;
  background:var(--business-whatsapp)
}

.checkout-whatsapp-note{
  font-size:.82rem;
  color:var(--business-text-muted)
}

.order-tracking-section{
  scroll-margin-top:24px
}

.tracking-card{
  padding:24px;
  border:1px solid var(--business-border);
  border-radius:var(--radius-lg);
  background:var(--business-surface);
  box-shadow:var(--shadow-sm)
}

.tracking-card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px
}

.tracking-label{
  display:block;
  color:var(--business-text-muted);
  font-size:.8rem
}

.tracking-order-id{
  font-size:1.3rem
}

.tracking-information{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:20px 0
}

.tracking-information-item{
  padding:14px;
  border-radius:var(--radius-sm);
  background:var(--business-form)
}

.tracking-information-item span{
  display:block;
  margin-bottom:4px;
  color:var(--business-text-muted);
  font-size:.8rem
}

.tracking-message{
  margin:0 0 16px
}

.tracking-refresh-btn{
  min-height:44px;
  padding:10px 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid var(--business-button);
  border-radius:999px;
  background:var(--business-button)!important;
  color:var(--business-button-text)!important;
  font-weight:800;
  line-height:1.2;
  opacity:1!important;
  visibility:visible!important;
  text-indent:0!important;
  overflow:visible!important;
  position:relative;
  z-index:2;
  transition:background-color 180ms ease,transform 180ms ease,box-shadow 180ms ease
}

.tracking-refresh-btn:hover:not(:disabled){
  background:var(--business-button-hover)!important;
  color:var(--business-button-text)!important;
  transform:translateY(-1px);
  box-shadow:var(--shadow-sm)
}

.tracking-refresh-btn:active:not(:disabled){
  transform:scale(.97)
}

.tracking-refresh-btn:disabled{
  background:var(--business-button)!important;
  color:var(--business-button-text)!important;
  opacity:.55!important
}

.business-whatsapp-section{
  width:100%;
  margin:20px auto 0;
  text-align:center
}

.business-whatsapp-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:11px 22px;
  border-radius:999px;
  text-decoration:none;
  font-weight:850;
  color:#fff;
  background:var(--business-whatsapp);
  box-shadow:var(--shadow-sm)
}

.business-whatsapp-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  padding:26px;
  border-radius:var(--radius-lg);
  border:1px solid var(--business-border);
  background:var(--business-surface)
}

.business-whatsapp-card h2{
  margin:4px 0 6px
}

.business-whatsapp-card p{
  margin:0;
  color:var(--business-text-muted)
}

.business-whatsapp-button{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  padding:11px 20px;
  text-decoration:none;
  font-weight:900;
  border-radius:999px;
  color:#fff;
  background:var(--business-whatsapp);
  box-shadow:var(--shadow-sm)
}

body.business-closed .checkout-section{
  opacity:.92
}

.public-footer{
  margin-top:40px;
  padding:34px 20px;
  text-align:center;
  color:var(--business-footer-text);
  background:var(--business-footer)
}

.public-footer p{
  margin:0 0 3px;
  font-weight:800
}

.public-footer small{
  opacity:.7
}

.btn-primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  color:var(--business-button-text);
  background:var(--business-button);
  font-weight:800;
  transition:background-color var(--transition),transform var(--transition)
}

.btn-primary:hover{
  background:var(--business-button-hover)
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline:3px solid color-mix(in srgb,var(--business-primary) 40%,transparent);
  outline-offset:2px
}

.public-container{
  width:min(calc(100% - 40px),1280px);
  margin:0 auto
}

.business-header{
  width:100%;
  margin:24px auto 0;
  border:1px solid var(--business-border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-sm)
}

.public-business-header-inner{
  width:100%;
  min-height:160px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  padding:30px;
  text-align:center
}

.public-business-header-info{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:0
}

.public-business-header-info h1{
  margin:0;
  font-size:clamp(2rem,5vw,3.2rem);
  line-height:1.05;
  color:var(--business-header-text)
}

.public-business-header-info .business-description{
  max-width:720px;
  margin:10px auto 14px;
  text-align:center
}

.public-business-header-inner .business-logo{
  width:105px;
  height:105px
}

.public-main{
  width:100%;
  max-width:none;
  margin:0;
  padding:38px 0 70px
}

.catalog-section{
  width:100%
}

.catalog{
  width:100%
}

.products-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px
}

.product-card{
  height:100%
}

.checkout-section{
  width:min(100%,850px);
  margin:60px auto 48px;
  padding:32px;
  box-shadow:var(--shadow-sm)
}

.confirm-order-btn{
  width:100%;
  min-height:54px;
  margin-top:8px;
  border:0;
  border-radius:999px;
  font-weight:900;
  color:var(--business-button-text);
  background:var(--business-button);
  box-shadow:var(--shadow-sm);
  transition:transform var(--transition),background-color var(--transition),box-shadow var(--transition)
}

.confirm-order-btn:hover:not(:disabled){
  transform:translateY(-2px);
  background:var(--business-button-hover);
  box-shadow:var(--shadow-md)
}

.cart-backdrop{
  position:fixed;
  inset:0;
  z-index:1990;
  background:rgba(15,23,42,.52);
  backdrop-filter:blur(3px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 220ms ease,visibility 220ms ease
}

.cart-backdrop-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto
}

.cart-drawer{
  position:fixed;
  top:0;
  right:0;
  z-index:2000;
  width:min(92vw,460px);
  height:100dvh;
  display:flex!important;
  flex-direction:column;
  padding:0;
  overflow:hidden;
  color:var(--business-cart-text);
  background:var(--business-cart);
  border-left:1px solid var(--business-border);
  box-shadow:-20px 0 50px rgba(15,23,42,.22);
  transform:translateX(105%);
  visibility:hidden;
  transition:transform 280ms ease,visibility 280ms ease
}

.cart-drawer-open{
  transform:translateX(0);
  visibility:visible
}

.cart-drawer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:22px;
  border-bottom:1px solid var(--business-border)
}

.cart-title-row{
  display:flex;
  align-items:center;
  gap:12px
}

.cart-title-row h2{
  margin:2px 0 0;
  font-size:1.45rem
}

.cart-eyebrow{
  display:block;
  color:var(--business-text-muted);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase
}

.cart-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  height:30px;
  padding:0 8px;
  border-radius:999px;
  color:var(--business-button-text);
  background:var(--business-button);
  font-size:.8rem;
  font-weight:900
}

.cart-close-btn{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:1px solid var(--business-border);
  border-radius:50%;
  color:var(--business-text);
  background:var(--business-surface);
  font-size:1rem
}

.cart-drawer .cart-content{
  flex:1;
  min-height:0;
  overflow-y:auto;
  padding:20px
}

.cart-drawer .cart-items{
  gap:12px
}

.cart-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
  border-top:1px solid var(--business-border);
  font-size:1.05rem
}

.cart-summary strong{
  color:var(--business-price);
  font-size:1.35rem
}

.go-checkout-btn{
  min-height:54px;
  margin:0 22px 22px;
  border:0;
  border-radius:999px;
  color:var(--business-button-text);
  background:var(--business-button);
  font-weight:900;
  box-shadow:var(--shadow-sm);
  transition:background-color var(--transition),transform var(--transition)
}

.go-checkout-btn:hover{
  background:var(--business-button-hover);
  transform:translateY(-1px)
}

.floating-cart-btn{
  position:fixed;
  right:26px;
  bottom:26px;
  z-index:1500;
  min-width:190px;
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  padding:10px 15px;
  border:0;
  border-radius:999px;
  color:var(--business-button-text);
  background:var(--business-button);
  box-shadow:0 18px 45px rgba(15,23,42,.28);
  transition:transform 180ms ease,box-shadow 180ms ease,background-color 180ms ease
}

.floating-cart-btn:hover{
  transform:translateY(-3px);
  background:var(--business-button-hover);
  box-shadow:0 22px 50px rgba(15,23,42,.34)
}

.floating-cart-icon{
  flex:0 0 auto;
  font-size:1.45rem
}

.floating-cart-info{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.1
}

.floating-cart-label{
  font-size:.74rem;
  opacity:.85
}

#floating-cart-total{
  margin-top:3px;
  font-size:1rem;
  white-space:nowrap
}

.floating-cart-count{
  position:absolute;
  top:-7px;
  right:-5px;
  min-width:27px;
  height:27px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 7px;
  border:3px solid var(--business-bg);
  border-radius:999px;
  color:var(--business-button);
  background:var(--business-button-text);
  font-size:.76rem;
  font-weight:900
}

.floating-cart-has-items{
  animation:floatingCartPulse 350ms ease
}

@keyframes floatingCartPulse{
  0%{transform:scale(1)}
  50%{transform:scale(1.06)}
  100%{transform:scale(1)}
}

body.cart-is-open{
  overflow:hidden
}

.order-tracking-section{
  width:min(100%,850px);
  margin:0 auto 48px
}

.tracking-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 0;
  border-bottom:1px solid var(--business-border)
}

.tracking-row:last-of-type{
  border-bottom:0
}

.public-footer{
  margin:30px calc(50% - 50vw) 0
}

body.theme-dark .cart-item-controls{
  border-color:var(--business-border);
  background:var(--business-surface)
}

body.theme-dark .cart-item-controls button{
  background:var(--business-button)!important;
  color:var(--business-button-text)!important
}

body.theme-dark .cart-item-controls button:hover:not(:disabled){
  background:var(--business-button-hover)!important
}

body.theme-dark .cart-item-qty{
  background:var(--business-surface)!important;
  color:var(--business-text)!important
}

.cart-drawer .cart-item{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  grid-template-areas:
    "image info"
    "image controls"
    "image subtotal"
    "image remove";
  align-items:start;
  column-gap:16px;
  row-gap:12px;
  padding:16px
}

.cart-drawer .cart-item-image{
  grid-area:image;
  width:72px;
  height:72px;
  align-self:start
}

.cart-drawer .cart-item-info{
  grid-area:info;
  min-width:0
}

.cart-drawer .cart-item-controls{
  grid-area:controls;
  justify-self:start;
  margin-top:4px
}

.cart-drawer .cart-item-subtotal{
  grid-area:subtotal;
  justify-self:start;
  margin:0;
  font-weight:800
}

.cart-drawer .cart-item-remove{
  grid-area:remove;
  justify-self:start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:38px;
  margin:0;
  padding:6px 0;
  border:0;
  background:transparent!important;
  color:var(--business-danger)!important;
  font-size:.95rem;
  font-weight:800;
  line-height:1.2;
  text-decoration:none;
  position:static!important;
  transform:none!important
}

.cart-drawer .cart-item-remove:hover{
  color:var(--business-danger)!important;
  opacity:.78;
  background:transparent!important
}

#tracking-status{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  width:auto!important;
  min-width:110px;
  min-height:38px;
  padding:8px 16px;
  border-radius:999px;
  font-size:.88rem;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  opacity:1!important;
  visibility:visible!important;
  overflow:visible!important;
  text-indent:0!important;
  position:static!important;
  transform:none!important
}

#tracking-status.badge-pending{
  color:#78350f!important;
  background:#fef3c7!important;
  border:1px solid #f59e0b!important
}

#tracking-status.badge-accepted{
  color:#1e3a8a!important;
  background:#dbeafe!important;
  border:1px solid #60a5fa!important
}

#tracking-status.badge-preparing{
  color:#581c87!important;
  background:#f3e8ff!important;
  border:1px solid #c084fc!important
}

#tracking-status.badge-ready{
  color:#14532d!important;
  background:#dcfce7!important;
  border:1px solid #4ade80!important
}

#tracking-status.badge-delivered{
  color:#134e4a!important;
  background:#ccfbf1!important;
  border:1px solid #2dd4bf!important
}

#tracking-status.badge-cancelled{
  color:#7f1d1d!important;
  background:#fee2e2!important;
  border:1px solid #f87171!important
}

body.theme-dark #tracking-status.badge-pending{
  color:#fde68a!important;
  background:#422006!important;
  border-color:#d97706!important
}

body.theme-dark #tracking-status.badge-accepted{
  color:#bfdbfe!important;
  background:#172554!important;
  border-color:#3b82f6!important
}

body.theme-dark #tracking-status.badge-preparing{
  color:#e9d5ff!important;
  background:#3b0764!important;
  border-color:#a855f7!important
}

body.theme-dark #tracking-status.badge-ready{
  color:#bbf7d0!important;
  background:#052e16!important;
  border-color:#22c55e!important
}

body.theme-dark #tracking-status.badge-delivered{
  color:#99f6e4!important;
  background:#042f2e!important;
  border-color:#14b8a6!important
}

body.theme-dark #tracking-status.badge-cancelled{
  color:#fecaca!important;
  background:#450a0a!important;
  border-color:#ef4444!important
}

body.theme-dark .tracking-card{
  color:var(--business-text);
  background:var(--business-surface);
  border-color:var(--business-border)
}

.tracking-row{
  position:relative;
  z-index:1
}

.tracking-row span,
.tracking-row strong{
  opacity:1;
  visibility:visible
}

body.theme-dark .tracking-refresh-btn{
  background:var(--business-button)!important;
  color:var(--business-button-text)!important;
  border-color:var(--business-button)!important
}

body.theme-dark .tracking-refresh-btn,
body.theme-dark .tracking-refresh-btn *{
  color:var(--business-button-text)!important;
  opacity:1;
  visibility:visible
}

.order-success-section{
  scroll-margin-top:24px;
  padding-bottom:220px!important
}

.order-success-header{
  text-align:center;
  margin-bottom:24px;
  padding:26px 20px;
  border:1px solid var(--business-border);
  border-radius:24px;
  background:var(--business-surface);
  color:var(--business-text);
  box-shadow:var(--shadow-sm)
}

.order-success-icon{
  width:72px;
  height:72px;
  margin:0 auto 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--business-success);
  color:#fff;
  font-size:2.2rem;
  font-weight:900;
  box-shadow:0 12px 28px rgba(0,0,0,.12)
}

.order-success-header .section-eyebrow{
  display:block;
  margin-bottom:8px;
  color:var(--business-primary);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase
}

.order-success-header h2{
  margin:0;
  color:var(--business-text);
  font-size:clamp(1.55rem,4vw,2.2rem);
  line-height:1.15
}

.order-success-description{
  max-width:560px;
  margin:12px auto 0;
  color:var(--business-text-muted);
  line-height:1.6
}

.order-success-card{
  width:min(100%,760px);
  margin:0 auto 20px;
  padding:24px;
  border:1px solid var(--business-border);
  border-radius:24px;
  background:var(--business-surface);
  color:var(--business-text);
  box-shadow:var(--shadow-md)
}

.order-success-card .tracking-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 0;
  border-bottom:1px solid var(--business-border)
}

.order-success-card .tracking-row:first-child{
  padding-top:0
}

.order-success-card .tracking-row span{
  color:var(--business-text-muted);
  font-size:.92rem;
  font-weight:700
}

.order-success-card .tracking-row strong{
  color:var(--business-text);
  text-align:right;
  font-weight:900
}

.order-success-card .tracking-message{
  margin:20px 0 0;
  padding:16px;
  border-radius:16px;
  background:var(--business-bg);
  color:var(--business-text);
  line-height:1.55;
  font-weight:650
}

.order-success-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:20px
}

.order-success-actions button,
.order-success-actions a{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 16px;
  border-radius:999px;
  font-size:.92rem;
  font-weight:850;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  transition:transform 160ms ease,background-color 160ms ease,opacity 160ms ease
}

.order-success-actions .tracking-refresh-btn{
  border:1px solid var(--business-button);
  background:var(--business-button);
  color:var(--business-button-text)
}

.order-success-actions .tracking-whatsapp-btn{
  border:1px solid #22c55e;
  background:#22c55e;
  color:#fff
}

.order-success-actions .tracking-back-store-btn{
  border:1px solid var(--business-border);
  background:var(--business-bg);
  color:var(--business-text)
}

.order-success-actions button:hover:not(:disabled),
.order-success-actions a:hover{
  transform:translateY(-2px)
}

.order-success-note{
  width:min(100%,760px);
  margin:14px auto 0;
  color:var(--business-text-muted);
  font-size:.82rem;
  text-align:center;
  line-height:1.5
}

body.theme-dark .order-success-header,
body.theme-dark .order-success-card{
  background:var(--business-surface);
  color:var(--business-text);
  border-color:var(--business-border)
}

body.theme-dark .order-success-card .tracking-message{
  background:var(--business-bg);
  color:var(--business-text)
}

.product-filters-section{
  width:100%;
  margin:0 0 28px
}

.product-filters{
  width:100%;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px
}

.product-filter-btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  padding:9px 17px;
  border:1px solid var(--business-border);
  color:var(--business-text);
  background:var(--business-surface);
  font-weight:800;
  line-height:1.1;
  white-space:nowrap;
  box-shadow:none;
  transition:color var(--transition),background-color var(--transition),border-color var(--transition),transform var(--transition),box-shadow var(--transition)
}

.product-filter-btn:hover:not(.is-active){
  border-color:var(--business-primary);
  transform:translateY(-1px)
}

.product-filter-btn.is-active{
  color:var(--business-button-text);
  background:var(--business-primary);
  border-color:var(--business-primary);
  box-shadow:0 7px 18px color-mix(in srgb,var(--business-primary) 22%,transparent)
}

.product-filter-btn:active{
  transform:translateY(0)
}

html[data-product-filter-style="pill"] .product-filter-btn{
  border-radius:999px
}

html[data-product-filter-style="rounded"] .product-filter-btn{
  border-radius:14px
}

html[data-product-filter-style="square"] .product-filter-btn{
  border-radius:4px
}

html[data-product-filter-style="outline"] .product-filter-btn{
  color:var(--business-primary);
  background:transparent;
  border-color:var(--business-primary);
  border-width:2px
}

html[data-product-filter-style="outline"] .product-filter-btn.is-active{
  color:var(--business-button-text);
  background:var(--business-primary);
  border-color:var(--business-primary)
}

body.theme-dark .product-filter-btn:not(.is-active){
  background:var(--business-surface);
  color:var(--business-text);
  border-color:var(--business-border)
}


/* ============================================================
   CHECKOUT - DIRECCION O UBICACION ACTUAL
   ============================================================ */

#checkout-address-group{
  position:relative;
  margin-bottom:0;
  padding:18px;
  border:1px solid var(--business-border);
  border-radius:20px;
  background:var(--business-surface);
  box-shadow:0 8px 24px rgba(15,23,42,.05);
  transition:
    border-color var(--transition),
    box-shadow var(--transition),
    background-color var(--transition),
    transform var(--transition);
}

#checkout-address-group::before{
  content:"🏠";
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:12px;
  border-radius:13px;
  background:color-mix(
    in srgb,
    var(--business-primary) 10%,
    var(--business-surface)
  );
  font-size:1.15rem;
}

#checkout-address-group label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:2px;
  color:var(--business-text);
  font-size:.95rem;
  font-weight:850;
}

#checkout-address-group label::after{
  content:"o usá tu ubicación";
  color:var(--business-text-muted);
  font-size:.75rem;
  font-weight:650;
}

#checkout-address-group input{
  min-height:52px;
  padding:13px 15px;
  border-radius:14px;
  background:var(--business-input);
}

#checkout-address-group.checkout-address-required{
  border-color:color-mix(
    in srgb,
    var(--business-primary) 25%,
    var(--business-border)
  );
}

#checkout-address-group.checkout-address-has-location{
  border-color:color-mix(
    in srgb,
    var(--business-success) 55%,
    var(--business-border)
  );

  background:color-mix(
    in srgb,
    var(--business-success) 4%,
    var(--business-surface)
  );

  box-shadow:0 10px 28px color-mix(
    in srgb,
    var(--business-success) 9%,
    transparent
  );
}

#checkout-address-group.checkout-address-has-location::before{
  content:"✓";
  color:#fff;
  background:var(--business-success);
  font-weight:900;
}

#checkout-address-group.checkout-address-has-location label::after{
  content:"opcional";
  color:var(--business-success);
  font-weight:850;
}

.checkout-address-help{
  margin:5px 0 0;
  color:var(--business-text-muted);
  font-size:.8rem;
  line-height:1.4;
}

.checkout-address-help-success{
  color:var(--business-success);
  font-weight:750;
}


/* ============================================================
   SEPARADOR
   ============================================================ */

.checkout-location-group{
  position:relative;
  margin-top:4px;
  margin-bottom:4px;
  padding-top:34px;
}

.checkout-location-group::before{
  content:"O";
  position:absolute;
  top:0;
  left:50%;
  z-index:2;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:26px;
  border:1px solid var(--business-border);
  border-radius:999px;
  color:var(--business-text-muted);
  background:var(--business-form);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.05em;
}

.checkout-location-group::after{
  content:"";
  position:absolute;
  top:13px;
  left:0;
  right:0;
  height:1px;
  background:var(--business-border);
}


/* ============================================================
   TARJETA DE UBICACION
   ============================================================ */

.checkout-location-card{
  position:relative;
  z-index:1;
  overflow:hidden;
  padding:20px;

  border:1px solid color-mix(
    in srgb,
    var(--business-primary) 25%,
    var(--business-border)
  );

  border-radius:20px;

  background:
    linear-gradient(
      145deg,
      color-mix(
        in srgb,
        var(--business-primary) 5%,
        var(--business-surface)
      ),
      var(--business-surface)
    );

  box-shadow:0 10px 28px rgba(15,23,42,.06);

  transition:
    border-color var(--transition),
    background-color var(--transition),
    box-shadow var(--transition),
    transform var(--transition);
}

.checkout-location-card::after{
  content:"";
  position:absolute;
  width:130px;
  height:130px;
  right:-55px;
  top:-55px;
  border-radius:50%;

  background:color-mix(
    in srgb,
    var(--business-primary) 7%,
    transparent
  );

  pointer-events:none;
}

.checkout-location-heading{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  gap:14px;
}

.checkout-location-icon{
  width:48px;
  height:48px;
  flex:0 0 48px;

  display:flex;
  align-items:center;
  justify-content:center;

  border-radius:15px;

  color:var(--business-button-text);
  background:var(--business-primary);

  box-shadow:0 8px 18px color-mix(
    in srgb,
    var(--business-primary) 24%,
    transparent
  );

  font-size:1.25rem;
}

.checkout-location-heading-text{
  min-width:0;
  flex:1;
}

.checkout-location-title{
  display:block;
  margin:1px 0 5px;
  color:var(--business-text);
  font-size:1rem;
  line-height:1.25;
  font-weight:900;
}

.checkout-location-description{
  margin:0;
  color:var(--business-text-muted);
  font-size:.88rem;
  line-height:1.55;
}

.checkout-location-actions{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:17px;
}

.checkout-location-btn{
  min-height:50px;
  flex:1 1 auto;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;

  padding:11px 17px;

  border:0;
  border-radius:14px;

  color:var(--business-button-text);
  background:var(--business-button);

  box-shadow:0 9px 22px color-mix(
    in srgb,
    var(--business-button) 22%,
    transparent
  );

  font-size:.92rem;
  font-weight:900;
  line-height:1.2;

  transition:
    transform var(--transition),
    background-color var(--transition),
    box-shadow var(--transition),
    opacity var(--transition);
}

.checkout-location-btn:hover:not(:disabled){
  transform:translateY(-2px);
  background:var(--business-button-hover);

  box-shadow:0 13px 28px color-mix(
    in srgb,
    var(--business-button) 28%,
    transparent
  );
}

.checkout-location-btn:active:not(:disabled){
  transform:translateY(0) scale(.985);
}

.checkout-location-btn:disabled{
  opacity:.68;
}

.checkout-location-button-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.checkout-location-remove-btn{
  min-height:50px;
  flex:0 0 auto;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:10px 15px;

  border:1px solid var(--business-border);
  border-radius:14px;

  color:var(--business-danger);
  background:var(--business-surface);

  font-size:.86rem;
  font-weight:850;

  transition:
    border-color var(--transition),
    background-color var(--transition),
    transform var(--transition);
}

.checkout-location-remove-btn:hover{
  transform:translateY(-1px);

  border-color:color-mix(
    in srgb,
    var(--business-danger) 45%,
    var(--business-border)
  );

  background:color-mix(
    in srgb,
    var(--business-danger) 5%,
    var(--business-surface)
  );
}


/* ============================================================
   ESTADO DE UBICACION
   ============================================================ */

.checkout-location-status{
  position:relative;
  z-index:1;

  margin:14px 0 0;
  padding:11px 13px;

  border-radius:13px;

  color:var(--business-text-muted);
  background:var(--business-form);

  font-size:.82rem;
  line-height:1.45;
}

.checkout-location-status:empty{
  display:none;
}

.checkout-location-status-success{
  color:color-mix(
    in srgb,
    var(--business-success) 88%,
    #000
  );

  background:color-mix(
    in srgb,
    var(--business-success) 10%,
    var(--business-surface)
  );

  border:1px solid color-mix(
    in srgb,
    var(--business-success) 25%,
    var(--business-border)
  );

  font-weight:750;
}

.checkout-location-status-error{
  color:var(--business-danger);

  background:color-mix(
    in srgb,
    var(--business-danger) 8%,
    var(--business-surface)
  );

  border:1px solid color-mix(
    in srgb,
    var(--business-danger) 22%,
    var(--business-border)
  );

  font-weight:700;
}

.checkout-location-status-loading{
  color:var(--business-primary);

  background:color-mix(
    in srgb,
    var(--business-primary) 8%,
    var(--business-surface)
  );

  border:1px solid color-mix(
    in srgb,
    var(--business-primary) 18%,
    var(--business-border)
  );

  font-weight:700;
}

.checkout-location-privacy{
  position:relative;
  z-index:1;

  display:flex;
  align-items:flex-start;
  gap:6px;

  margin:13px 0 0;

  color:var(--business-text-muted);

  font-size:.75rem;
  line-height:1.45;
}


/* ============================================================
   UBICACION CORRECTA
   ============================================================ */

.checkout-location-has-location .checkout-location-card,
.checkout-location-card.is-success{
  border-color:color-mix(
    in srgb,
    var(--business-success) 55%,
    var(--business-border)
  );

  background:
    linear-gradient(
      145deg,
      color-mix(
        in srgb,
        var(--business-success) 7%,
        var(--business-surface)
      ),
      var(--business-surface)
    );

  box-shadow:0 12px 30px color-mix(
    in srgb,
    var(--business-success) 10%,
    transparent
  );
}

.checkout-location-has-location .checkout-location-icon,
.checkout-location-card.is-success .checkout-location-icon{
  background:var(--business-success);

  box-shadow:0 8px 18px color-mix(
    in srgb,
    var(--business-success) 24%,
    transparent
  );
}

.checkout-location-has-location .checkout-location-title::after,
.checkout-location-card.is-success .checkout-location-title::after{
  content:" · Agregada";
  color:var(--business-success);
  font-size:.82rem;
  font-weight:850;
}


/* ============================================================
   CARGANDO UBICACION
   ============================================================ */

.checkout-location-loading .checkout-location-card,
.checkout-location-card.is-loading{
  border-color:color-mix(
    in srgb,
    var(--business-primary) 55%,
    var(--business-border)
  );
}

.checkout-location-loading .checkout-location-icon,
.checkout-location-card.is-loading .checkout-location-icon{
  animation:checkoutLocationPulse 1s ease-in-out infinite;
}

@keyframes checkoutLocationPulse{
  0%,100%{
    transform:scale(1);
    opacity:1
  }

  50%{
    transform:scale(.94);
    opacity:.72
  }
}


/* ============================================================
   CHECKOUT GENERAL
   ============================================================ */

.checkout-section{
  background:
    linear-gradient(
      180deg,
      color-mix(
        in srgb,
        var(--business-form) 96%,
        var(--business-surface)
      ),
      var(--business-form)
    );
}

.checkout-section .section-heading{
  margin-bottom:24px;
}

.checkout-form{
  gap:16px;
}

.checkout-form > .form-group:not(#checkout-address-group):not(.checkout-location-group){
  padding:16px 18px;
  margin-bottom:0;

  border:1px solid var(--business-border);
  border-radius:18px;

  background:var(--business-surface);
}

.checkout-form > .form-group:not(#checkout-address-group):not(.checkout-location-group) label{
  margin-bottom:2px;
  font-weight:850;
}

.checkout-form > .form-group:not(#checkout-address-group):not(.checkout-location-group) input,
.checkout-form > .form-group:not(#checkout-address-group):not(.checkout-location-group) textarea{
  min-height:50px;
  border-radius:13px;
}

.checkout-form > .form-group:not(#checkout-address-group):not(.checkout-location-group) textarea{
  min-height:105px;
}

.delivery-type-group{
  margin-bottom:2px;
  padding:16px 18px 18px;

  border:1px solid var(--business-border);
  border-radius:18px;

  background:var(--business-surface);
}

.delivery-type-group legend{
  padding:0 4px;
  color:var(--business-text);
  font-weight:850;
}

.delivery-option{
  min-height:58px;
  border-radius:14px;
}

.confirm-order-btn{
  min-height:56px;
  margin-top:4px;
  border-radius:16px;
  font-size:1rem;
  letter-spacing:.01em;
}


/* ============================================================
   MODO OSCURO
   ============================================================ */

body.theme-dark #checkout-address-group,
body.theme-dark .checkout-location-card,
body.theme-dark .checkout-form > .form-group:not(#checkout-address-group):not(.checkout-location-group),
body.theme-dark .delivery-type-group{
  background:var(--business-surface);
  border-color:var(--business-border);
}

body.theme-dark #checkout-address-group.checkout-address-has-location,
body.theme-dark .checkout-location-has-location .checkout-location-card,
body.theme-dark .checkout-location-card.is-success{
  border-color:color-mix(
    in srgb,
    var(--business-success) 55%,
    var(--business-border)
  );
}

body.theme-dark .checkout-location-group::before{
  background:var(--business-bg);
  border-color:var(--business-border);
}

body.theme-dark .checkout-location-status-success{
  color:#bbf7d0;
}

body.theme-dark .checkout-location-status-error{
  color:#fecaca;
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width:1050px){

  .products-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

}

@media (max-width:800px){

  .public-container{
    width:min(calc(100% - 28px),1280px)
  }

  .products-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .public-business-header-inner{
    flex-direction:column;
    padding:28px 20px
  }

  .checkout-section{
    padding:24px
  }

}

@media (max-width:700px){

  .order-success-header{
    padding:22px 16px;
    border-radius:20px
  }

  .order-success-icon{
    width:64px;
    height:64px;
    font-size:2rem
  }

  .order-success-card{
    padding:18px;
    border-radius:20px
  }

  .order-success-card .tracking-row{
    align-items:flex-start;
    gap:12px;
    padding:14px 0
  }

  .order-success-card .tracking-row strong{
    max-width:58%;
    overflow-wrap:anywhere
  }

  .order-success-actions{
    grid-template-columns:1fr
  }

  .order-success-actions button,
  .order-success-actions a{
    width:100%;
    min-height:50px
  }

  .order-success-section{
    padding-bottom:250px!important
  }

}

@media (max-width:600px){

  body{
    padding-bottom:95px
  }

  .public-container{
    width:calc(100% - 20px)
  }

  .business-header{
    margin-top:10px;
    border-radius:20px
  }

  .public-business-header-inner{
    min-height:auto;
    gap:14px;
    padding:24px 16px
  }

  .public-business-header-inner .business-logo{
    width:82px;
    height:82px
  }

  .public-business-header-info h1{
    font-size:2rem
  }

  .public-main{
    padding:28px 0 45px
  }

  .products-grid{
    grid-template-columns:1fr;
    gap:15px
  }

  .product-card{
    border-radius:18px
  }

  .product-image{
    aspect-ratio:16/10
  }

  .checkout-section{
    width:100%;
    margin-top:42px;
    padding:16px;
    border-radius:20px
  }

  .checkout-form{
    gap:13px
  }

  .checkout-form > .form-group:not(#checkout-address-group):not(.checkout-location-group),
  #checkout-address-group,
  .delivery-type-group{
    padding:15px;
    border-radius:17px
  }

  .delivery-type-group{
    grid-template-columns:1fr
  }

  #checkout-address-group::before{
    width:38px;
    height:38px;
    margin-bottom:10px;
    border-radius:12px
  }

  #checkout-address-group label{
    align-items:flex-start;
    flex-direction:column;
    gap:2px
  }

  #checkout-address-group label::after{
    font-size:.72rem
  }

  .checkout-location-group{
    padding-top:32px
  }

  .checkout-location-card{
    padding:16px;
    border-radius:17px
  }

  .checkout-location-heading{
    gap:11px
  }

  .checkout-location-icon{
    width:43px;
    height:43px;
    flex-basis:43px;
    border-radius:13px;
    font-size:1.12rem
  }

  .checkout-location-title{
    font-size:.95rem
  }

  .checkout-location-description{
    font-size:.82rem;
    line-height:1.5
  }

  .checkout-location-actions{
    flex-direction:column;
    align-items:stretch;
    gap:8px;
    margin-top:15px
  }

  .checkout-location-btn,
  .checkout-location-remove-btn{
    width:100%;
    min-height:49px;
    border-radius:13px
  }

  .checkout-location-status{
    margin-top:11px;
    padding:10px 11px;
    font-size:.79rem
  }

  .checkout-location-privacy{
    margin-top:11px;
    font-size:.72rem
  }

  .confirm-order-btn{
    min-height:54px;
    border-radius:15px
  }

  .floating-cart-btn{
    left:12px;
    right:12px;
    bottom:12px;
    width:auto;
    min-height:62px;
    justify-content:flex-start;
    padding:10px 18px
  }

  .floating-cart-info{
    flex:1
  }

  .floating-cart-count{
    position:static;
    margin-left:auto;
    border:0
  }

  .cart-drawer{
    top:auto;
    bottom:0;
    width:100%;
    height:min(88dvh,760px);
    border-left:0;
    border-top:1px solid var(--business-border);
    border-radius:24px 24px 0 0;
    transform:translateY(105%)
  }

  .cart-drawer-open{
    transform:translateY(0)
  }

  .cart-drawer-header{
    padding:18px
  }

  .cart-drawer .cart-content{
    padding:16px
  }

  .go-checkout-btn{
    margin:0 16px 16px
  }

  .cart-summary{
    padding:16px
  }

  .section-heading{
    margin-bottom:16px
  }

  .cart-item-controls button{
    width:46px;
    height:46px;
    font-size:1.45rem
  }

  .cart-item-qty{
    min-width:48px;
    height:46px;
    font-size:1.05rem
  }

  .cart-drawer .cart-item{
    grid-template-columns:68px minmax(0,1fr);
    column-gap:14px;
    row-gap:12px;
    padding:14px
  }

  .cart-drawer .cart-item-image{
    width:68px;
    height:68px
  }

  #tracking-status{
    min-width:100px;
    min-height:36px;
    padding:7px 13px;
    font-size:.82rem
  }

  .tracking-refresh-btn{
    width:100%;
    min-height:48px;
    padding:11px 16px;
    font-size:.95rem
  }

  .product-filters-section{
    margin-bottom:22px
  }

  .product-filters{
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    gap:8px;
    padding:2px 2px 8px;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch
  }

  .product-filter-btn{
    min-height:40px;
    padding:8px 15px;
    font-size:.9rem;
    scroll-snap-align:start
  }

}

@media (max-width:380px){

  .public-container{
    width:calc(100% - 14px)
  }

  .floating-cart-btn{
    left:8px;
    right:8px;
    bottom:8px
  }

  .floating-cart-label{
    display:none
  }

  .checkout-section{
    padding:13px
  }

  .checkout-location-card,
  #checkout-address-group,
  .checkout-form > .form-group:not(#checkout-address-group):not(.checkout-location-group),
  .delivery-type-group{
    padding:13px
  }

  .checkout-location-icon{
    width:40px;
    height:40px;
    flex-basis:40px
  }

  .checkout-location-title{
    font-size:.91rem
  }

  .checkout-location-description{
    font-size:.79rem
  }

  .product-filter-btn{
    min-height:38px;
    padding:7px 13px;
    font-size:.86rem
  }

}