/* Store picker + cart chrome (MapLibre, in-panel when/method/info) */
#cb-store-picker{
  position:fixed; inset:0; z-index:99990; display:none;
  font-family: Libre Franklin, CommunityGothic, Arial, sans-serif;
  color:#2B1D10;
}
#cb-store-picker.cb-open{display:block;}
.cb-sp-backdrop{display:none;}
.cb-sp-shell{
  display:flex; width:100%; height:100%; background:#fff;
}
.cb-sp-map,
#cb-sp-map{
  flex:1 1 65%; min-width:0; height:100%; width:100%;
  background:#e8eef2; position:relative;
}
.maplibregl-map{width:100%; height:100%;}
.cb-sp-panel{
  flex:0 0 min(400px, 36vw); max-width:100%; height:100%;
  display:flex; flex-direction:column; border-left:1px solid #e5ddd3;
  background:#fff; position:relative; overflow:hidden;
}

/* Views swap inside the panel; map stays left */
.cb-sp-view{
  display:none; flex-direction:column; height:100%; min-height:0; position:relative;
}
.cb-sp-view.cb-sp-view-active,
.cb-sp-view:not([hidden]){
  display:flex;
}
.cb-sp-view[hidden]{display:none!important;}
.cb-sp-scroll{
  flex:1; overflow:auto; padding:8px 20px 120px; min-height:0;
}

.cb-sp-head{display:flex; align-items:center; justify-content:center; padding:20px 16px 10px; position:relative; flex-shrink:0;}
.cb-sp-head-left{justify-content:flex-start; padding-left:8px;}
.cb-sp-head h2{margin:0; font-size:20px; letter-spacing:.04em; font-weight:800; text-align:center;}
.cb-sp-close{
  position:absolute; right:12px; top:14px;
  border:0; background:transparent; font-size:26px; line-height:1; cursor:pointer; color:#2B1D10;
}
.cb-sp-back{
  border:0; background:transparent; font-size:28px; line-height:1; cursor:pointer;
  color:#2B1D10; width:40px; height:40px; border-radius:50%;
}
.cb-sp-back:hover{background:#f3ebe2;}

.cb-sp-search-wrap{position:relative; margin:8px 16px 4px; flex-shrink:0;}
.cb-sp-search-wrap input{
  width:100%; box-sizing:border-box; padding:12px 40px 12px 36px;
  border:1px solid #2B1D10; border-radius:10px; font-size:15px;
}
.cb-sp-search-ico{position:absolute; left:12px; top:50%; transform:translateY(-50%); opacity:.55; font-size:16px;}
.cb-sp-geo{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  border:0; background:transparent; font-size:18px; cursor:pointer;
}
.cb-sp-suggest{
  position:absolute; left:0; right:0; top:100%; z-index:5; margin:0; padding:0;
  list-style:none; background:#fff; border:1px solid #e5ddd3; border-radius:8px;
  max-height:220px; overflow:auto; box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.cb-sp-suggest li{padding:10px 12px; cursor:pointer; font-size:14px; border-bottom:1px solid #f3ebe2;}
.cb-sp-suggest li:hover{background:#fcf4e1;}
.cb-sp-tabs{display:flex; gap:22px; padding:10px 16px; border-bottom:1px solid #eee; flex-shrink:0;}
.cb-sp-tabs button{
  border:0; background:transparent; font-size:15px; padding:6px 0; cursor:pointer; color:#6b5a4a;
}
.cb-sp-tabs button.cb-active{color:#2B1D10; font-weight:800; box-shadow:inset 0 -3px 0 #2B1D10;}
.cb-sp-list{flex:1; overflow:auto; padding:8px 12px 120px; min-height:0;}
.cb-sp-card{
  display:block; width:100%; text-align:left; margin:0 0 10px; padding:14px 16px 14px 16px;
  border:1px solid #d9cfc3; border-radius:10px; background:#fff; cursor:pointer; position:relative;
  box-sizing:border-box;
}
.cb-sp-card strong{display:block; font-size:16px; margin-bottom:4px; padding-right:28px;}
.cb-sp-card > span:not(.cb-sp-info-btn){display:block; font-size:13px; color:#4a3b2f;}
.cb-sp-card em{display:block; font-style:normal; font-size:13px; margin-top:8px; color:#2B1D10; padding-right:36px;}
.cb-sp-card em b{font-weight:800;}
.cb-sp-card.cb-selected{border-color:#2B1D10; border-width:2px; padding:13px 15px;}
.cb-sp-card.cb-selected::after{
  content:""; position:absolute; top:0; right:0;
  width:0; height:0; border-style:solid; border-width:0 28px 28px 0;
  border-color:transparent #2B1D10 transparent transparent;
}
.cb-sp-card.cb-selected::before{
  content:"✓"; position:absolute; top:2px; right:3px; z-index:1;
  color:#fff; font-size:11px; font-weight:800; line-height:1;
}

/* Circular info button on store cards */
.cb-sp-info-btn{
  position:absolute; right:12px; bottom:12px;
  width:28px; height:28px; border-radius:50%;
  border:1.5px solid #2B1D10; background:#fff; color:#2B1D10;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; font-style:normal; line-height:1;
  cursor:pointer; z-index:2; padding:0; box-sizing:border-box;
}
.cb-sp-info-btn:hover{background:#fcf4e1;}

.cb-sp-empty{
  display:none; flex-direction:column; align-items:center; text-align:center;
  padding:32px 20px; color:#2B1D10; gap:8px;
}
.cb-sp-empty-ico{
  width:48px; height:48px; border-radius:50%; background:#2B1D10; color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:800; margin-bottom:8px;
}
.cb-sp-actions{
  position:absolute; left:0; right:0; bottom:0; padding:12px 16px 16px;
  background:linear-gradient(180deg, rgba(255,255,255,0), #fff 28%);
  display:flex; flex-direction:column; gap:10px; z-index:3;
}
.cb-sp-continue, .cb-sp-browse{
  width:100%; border-radius:999px; padding:14px 16px; font-weight:800; font-size:15px; cursor:pointer;
  letter-spacing:.02em;
}
.cb-sp-continue{border:0; background:#e8923a; color:#2B1D10;}
.cb-sp-continue:disabled{opacity:.45; cursor:not-allowed;}
.cb-sp-browse{border:1px solid #2B1D10; background:#fff; color:#2B1D10;}

/* Info view */
.cb-sp-info-body{flex:1; overflow:auto; padding:8px 20px 120px;}
.cb-sp-info-body h3{margin:0 0 10px; font-size:24px; font-weight:800;}
.cb-sp-info-body p{margin:0 0 8px; font-size:14px; color:#4a3b2f; line-height:1.4;}
.cb-sp-info-row a{color:#1a6bb5; text-decoration:underline; font-size:15px;}
.cb-sp-until{margin-top:6px!important; font-size:14px!important; color:#2B1D10!important;}
.cb-sp-until b{font-weight:800;}

/* Loc header on when/method */
.cb-sp-loc h3{margin:0 0 6px; font-size:22px; font-weight:800;}
.cb-sp-loc p{margin:0 0 4px; font-size:14px; color:#4a3b2f;}
.cb-sp-loc a{color:#1a6bb5; text-decoration:underline; cursor:pointer;}
.cb-sp-title{margin:18px 0 14px; font-size:20px; font-weight:800; letter-spacing:.02em;}

/* Option cards (when / method) */
.cb-sp-opt{
  display:block; width:100%; text-align:left; margin:0 0 12px; padding:16px;
  border:1px solid #d9cfc3; border-radius:10px; background:#fff; cursor:pointer; position:relative;
  box-sizing:border-box;
}
.cb-sp-opt.cb-selected{border:2px solid #2B1D10; padding:15px;}
.cb-sp-opt.cb-selected::after{
  content:""; position:absolute; top:0; right:0;
  border-style:solid; border-width:0 28px 28px 0; border-color:transparent #2B1D10 transparent transparent;
}
.cb-sp-opt.cb-selected::before{
  content:"✓"; position:absolute; top:2px; right:3px; z-index:1; color:#fff; font-size:11px; font-weight:800;
}
.cb-sp-opt strong{display:block; font-size:16px; margin-bottom:4px;}
.cb-sp-opt span{display:block; font-size:13px; color:#5a4a3c; line-height:1.35;}
.cb-sp-opt em{display:block; font-style:italic; font-size:12px; margin-top:8px; color:#5a4a3c;}
.cb-sp-ico{
  margin-bottom:10px; line-height:0; width:40px; height:40px;
  display:flex; align-items:center; justify-content:flex-start;
}
.cb-sp-ico-svg{display:block; width:40px; height:40px; object-fit:contain;}

.cb-sp-future-fields{display:flex; gap:10px; margin-top:12px;}
.cb-sp-future-fields label{
  flex:1; display:flex; flex-direction:column; gap:4px; font-size:12px; font-weight:700;
}
.cb-sp-future-fields input,
.cb-sp-future-fields select{
  padding:10px; border:1px solid #d9cfc3; border-radius:8px; font:inherit; font-weight:400;
  background:#fff; color:#2B1D10;
}

.cb-sp-delivery{margin-top:8px; display:none; position:relative;}
.cb-sp-delivery.cb-show{display:block;}
.cb-sp-delivery input{
  width:100%; box-sizing:border-box; padding:12px; border:1px solid #2B1D10; border-radius:10px; font-size:14px;
}
.cb-sp-delivery ul{
  list-style:none; margin:4px 0 0; padding:0; border:1px solid #e5ddd3; border-radius:8px;
  max-height:160px; overflow:auto; background:#fff;
}
.cb-sp-delivery li{padding:10px 12px; cursor:pointer; font-size:13px; border-bottom:1px solid #f3ebe2;}
.cb-sp-delivery li:hover{background:#fcf4e1;}

/* MapLibre CB pin */
.cb-map-pin{
  background:transparent!important; border:0!important;
  cursor:pointer; width:40px; height:40px;
}
.cb-map-pin-inner{
  width:40px; height:40px; border-radius:50%; background:#e07a2f;
  border:3px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.35);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; box-sizing:border-box;
}
.cb-map-pin-inner img{
  width:72%; height:72%; object-fit:contain; display:block;
  pointer-events:none;
}

/* Hide leftover full-screen order flow if present in DOM/CSS */
#cb-order-flow{display:none!important; visibility:hidden!important; pointer-events:none!important;}

@media (max-width: 900px){
  .cb-sp-shell{flex-direction:column;}
  .cb-sp-map,
  #cb-sp-map{flex:0 0 38vh; height:38vh; width:100%;}
  .cb-sp-panel{flex:1 1 auto; max-width:none; border-left:0; border-top:1px solid #e5ddd3;}
}

/* Cart page */
.cb-cart-page{max-width:1100px; margin:0 auto; padding:24px 16px 64px; color:#2B1D10;}
.cb-cart-page h1{font-size:28px; margin:0 0 16px;}
.cb-cart-grid{display:grid; grid-template-columns:1.4fr .9fr; gap:24px;}
@media (max-width: 860px){.cb-cart-grid{grid-template-columns:1fr;}}
.cb-cart-item{
  display:grid; grid-template-columns:96px 1fr auto; gap:14px; align-items:start;
  border:1px solid #dbc7b2; border-radius:12px; padding:14px; background:#fff; margin-bottom:12px;
}
.cb-cart-item img{width:96px; height:96px; object-fit:cover; border-radius:8px; background:#eee;}
.cb-cart-item h3{margin:0 0 6px; font-size:17px;}
.cb-cart-item p{margin:0; font-size:13px; color:#5a4a3c; line-height:1.35;}
.cb-cart-actions{display:flex; gap:10px; margin-top:10px;}
.cb-cart-actions button{
  border:1px solid #dbc7b2; background:#fff; border-radius:8px; width:36px; height:36px; cursor:pointer;
}
.cb-cart-price{font-weight:800; font-size:16px; white-space:nowrap;}
.cb-cart-summary{
  border:1px solid #dbc7b2; border-radius:12px; padding:16px; background:#fff; position:sticky; top:90px;
}
.cb-cart-summary .row{display:flex; justify-content:space-between; margin:8px 0; font-size:15px;}
.cb-cart-summary .total{font-weight:800; font-size:18px; margin-top:12px; padding-top:12px; border-top:1px solid #eee;}
.cb-cart-summary .cta{
  display:block; width:100%; margin-top:10px; border-radius:999px; padding:12px; font-weight:800; cursor:pointer; text-align:center; text-decoration:none; box-sizing:border-box;
}
.cb-cart-summary .cta-primary{background:#e8a05c; color:#fff; border:0;}
.cb-cart-summary .cta-ghost{background:#fff; color:#2B1D10; border:1px solid #2B1D10;}
.cb-cart-empty{padding:40px 16px; text-align:center;}
.cb-rewards-strip{
  background:#c45c26; color:#fff; border-radius:10px; padding:12px 14px; margin-bottom:14px; font-weight:700;
  background-image:repeating-linear-gradient(-45deg, transparent, transparent 12px, rgba(0,0,0,.06) 12px, rgba(0,0,0,.06) 24px);
}
.cb-silverware{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  font-weight:800; font-size:13px; margin-bottom:4px;
}
.cb-silverware-note{font-size:11px; color:#6b5a4a; margin:0 0 12px;}
.cb-toggle{position:relative; width:44px; height:24px; flex-shrink:0;}
.cb-toggle input{opacity:0; width:0; height:0;}
.cb-toggle span{
  position:absolute; inset:0; background:#cfc4b8; border-radius:999px; cursor:pointer; transition:.2s;
}
.cb-toggle span::after{
  content:""; position:absolute; width:18px; height:18px; left:3px; top:3px;
  background:#fff; border-radius:50%; transition:.2s;
}
.cb-toggle input:checked + span{background:#2B1D10;}
.cb-toggle input:checked + span::after{transform:translateX(20px);}
.cb-pegs-box{
  margin-top:14px; padding:12px; border:1px solid #dbc7b2; border-radius:10px; font-size:13px; background:#fcf4e1;
}

/* Checkout / payment */
.cb-checkout-grid{
  display:grid; grid-template-columns:1.35fr .9fr; gap:24px; align-items:start;
}
@media (max-width: 860px){.cb-checkout-grid{grid-template-columns:1fr;}}
.cb-checkout-pay{
  border:1px solid #dbc7b2; border-radius:12px; padding:20px; background:#fff;
}
.cb-checkout-pay h2{margin:0 0 6px; font-size:22px;}
.cb-checkout-hint{margin:0 0 18px; font-size:14px; color:#5a4a3c;}
.cb-pay-form{display:flex; flex-direction:column; gap:14px;}
.cb-pay-field{display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:700;}
.cb-pay-field input{
  font:inherit; font-weight:400; padding:12px 14px; border:1px solid #d9cfc3; border-radius:10px;
  color:#2B1D10; background:#fff;
}
.cb-pay-field input:focus{outline:2px solid #e8a05c; outline-offset:1px; border-color:#e8a05c;}
.cb-pay-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.cb-pay-note{margin:0; font-size:12px; color:#6b5a4a;}
.cb-pay-submit{
  margin-top:4px; border:0; border-radius:999px; padding:14px 18px;
  background:#e8a05c; color:#fff; font-weight:800; font-size:15px; cursor:pointer;
}
.cb-pay-submit:disabled{opacity:.5; cursor:not-allowed;}
.cb-checkout-line{
  display:flex; justify-content:space-between; gap:12px; font-size:14px;
  padding:8px 0; border-bottom:1px solid #f0e6da;
}
.cb-checkout-empty{font-size:14px; color:#5a4a3c;}
.cb-pay-done h2{margin:0 0 8px; font-size:26px;}
.cb-pay-done p{margin:0 0 8px; font-size:15px; color:#5a4a3c; line-height:1.4;}
.cb-pay-done-total{color:#2B1D10!important; font-size:16px!important;}

