/* Gourmet Flans — shared cart UI (matches glassmorphism theme via existing CSS variables) */
.gmf-overlay{display:none;position:fixed;inset:0;z-index:9999;background:rgba(43,33,26,0.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:flex-end;}
.gmf-overlay.open{display:flex;}
#gmf-modal-overlay.open{justify-content:center;}

.gmf-modal{background:rgba(251,246,239,0.92);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid rgba(255,255,255,0.72);border-radius:26px;box-shadow:0 30px 70px -20px rgba(80,45,15,0.4);max-width:440px;width:92%;max-height:90vh;overflow-y:auto;padding:32px 30px;position:relative;font-family:'Outfit',sans-serif;color:#2B211A;}

.gmf-close{position:absolute;top:14px;right:18px;background:none;border:none;font-size:1.3rem;cursor:pointer;color:#8a7a6a;line-height:1;padding:6px;}
.gmf-close:hover{color:#C8631B;}

.gmf-modal-img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:18px;margin-bottom:16px;}
.gmf-modal-title{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600;margin-bottom:6px;}
.gmf-modal-price{font-family:'Fraunces',serif;font-size:1.5rem;color:#A14A12;font-weight:600;margin-bottom:18px;}

.gmf-toppings-block{margin-bottom:22px;}
.gmf-toppings-hint{font-size:.86rem;color:#4A3D33;margin-bottom:10px;}
.gmf-toppings-hint strong{color:#A14A12;}
#gmf-toppings-list{display:flex;flex-direction:column;gap:8px;}
.gmf-topping-row{display:flex;align-items:center;gap:10px;font-size:.9rem;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,0.55);border:1px solid rgba(200,99,27,0.15);cursor:pointer;transition:background .15s;}
.gmf-topping-row:hover{background:rgba(255,255,255,0.8);}
.gmf-topping-row input[type=checkbox]{width:17px;height:17px;accent-color:#C8631B;flex-shrink:0;cursor:pointer;}
.gmf-topping-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.4;}
.gmf-toppings-count{font-size:.82rem;color:#A14A12;font-weight:600;margin-top:10px;}

.gmf-qty-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-weight:500;}
.gmf-stepper{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,0.6);border:1px solid rgba(200,99,27,0.25);border-radius:50px;padding:6px 16px;}
.gmf-stepper button{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#C8631B;width:24px;height:24px;line-height:1;}
.gmf-stepper span{min-width:20px;text-align:center;font-weight:600;}

.gmf-modal-subtotal{font-size:1rem;font-weight:600;margin-bottom:20px;color:#2B211A;}
.gmf-modal-subtotal span{color:#A14A12;}

.gmf-add-btn,.gmf-checkout-btn{width:100%;padding:15px;border-radius:50px;border:none;background:linear-gradient(135deg,#E8893F,#A14A12);color:#fff;font-family:'Outfit',sans-serif;font-size:1rem;font-weight:600;cursor:pointer;box-shadow:0 10px 24px -10px rgba(200,99,27,.8);transition:transform .2s,box-shadow .2s;}
.gmf-add-btn:hover,.gmf-checkout-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px -10px rgba(200,99,27,.9);}
.gmf-checkout-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;}

/* Cart drawer */
.gmf-drawer{background:rgba(251,246,239,0.95);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border-left:1px solid rgba(255,255,255,0.72);box-shadow:-20px 0 60px -20px rgba(80,45,15,0.4);height:100%;width:min(420px,92vw);display:flex;flex-direction:column;font-family:'Outfit',sans-serif;color:#2B211A;}
.gmf-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:26px 28px 18px;border-bottom:1px solid rgba(200,99,27,.15);position:relative;}
.gmf-drawer-head h2{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:600;}
.gmf-cart-items{flex:1;overflow-y:auto;padding:18px 28px;}
.gmf-cart-empty{color:#4A3D33;opacity:.7;text-align:center;padding:40px 0;}

.gmf-cart-item{display:flex;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid rgba(200,99,27,.12);}
.gmf-cart-item-name{font-weight:600;margin-bottom:4px;}
.gmf-cart-item-toppings{font-size:.82rem;color:#4A3D33;opacity:.8;margin-bottom:10px;line-height:1.4;}
.gmf-cart-item-qty{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,0.6);border:1px solid rgba(200,99,27,0.25);border-radius:50px;padding:4px 12px;width:fit-content;}
.gmf-cart-item-qty button{background:none;border:none;font-size:1.05rem;cursor:pointer;color:#C8631B;width:20px;}
.gmf-cart-item-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;}
.gmf-cart-item-price{font-family:'Fraunces',serif;font-weight:600;color:#A14A12;}
.gmf-cart-remove{background:none;border:none;color:#c0392b;font-size:.8rem;cursor:pointer;text-decoration:underline;padding:4px 0;}

.gmf-cart-foot{padding:18px 28px 28px;border-top:1px solid rgba(200,99,27,.15);}
.gmf-row{display:flex;justify-content:space-between;font-size:.94rem;margin-bottom:8px;color:#4A3D33;}
.gmf-total{font-size:1.15rem;font-weight:700;color:#2B211A;margin:12px 0 18px;}
.gmf-error{color:#c0392b;font-size:.85rem;margin-top:12px;text-align:center;}

/* Address + delivery ZIP fields (cart drawer) */
.gmf-address-block{margin-bottom:6px;}
.gmf-field{margin-bottom:10px;}
.gmf-field label{display:block;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#A14A12;font-weight:600;margin-bottom:6px;}
.gmf-field input{width:100%;padding:11px 16px;border:1.5px solid rgba(200,99,27,.35);border-radius:50px;font-size:.95rem;outline:none;font-family:'Outfit',sans-serif;background:rgba(255,255,255,.6);color:#2B211A;}
.gmf-field input:focus{border-color:#C8631B;}
.gmf-zip-status{color:#c0392b;font-size:.82rem;margin-bottom:12px;line-height:1.4;}

/* Cart icon in header */
.gmf-cart-icon{position:relative;background:none;border:none;cursor:pointer;color:#C8631B;padding:8px;border-radius:8px;transition:background .2s;display:inline-flex;align-items:center;}
.gmf-cart-icon:hover{background:rgba(200,99,27,.1);}
.gmf-cart-badge{position:absolute;top:0;right:0;background:#A14A12;color:#fff;font-size:.65rem;font-weight:700;min-width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 4px;font-family:'Outfit',sans-serif;}

@media(max-width:560px){
  .gmf-drawer{width:100vw;}
  .gmf-modal{padding:26px 20px;}
}

/* Drawer now only holds the item list + subtotal/checkout footer (address
   and delivery totals moved to the standalone order-review page). */
.gmf-drawer{max-height:100vh;}
.gmf-cart-items{flex:1 1 auto;overflow-y:auto;}
.gmf-cart-foot{flex:0 0 auto;}

/* ===== Order Review page (shared with order-review*.html) ===== */
.gmf-review-wrap{max-width:1180px;margin:0 auto;padding:56px 32px 90px;}
.gmf-review-back{display:inline-flex;align-items:center;gap:6px;color:#A14A12;font-weight:600;text-decoration:none;font-size:.92rem;margin-bottom:26px;}
.gmf-review-back:hover{text-decoration:underline;}
.gmf-review-title{font-family:'Fraunces',serif;font-size:clamp(1.9rem,3.4vw,2.6rem);font-weight:500;letter-spacing:-.02em;margin-bottom:34px;}
.gmf-review-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:34px;align-items:start;}
.gmf-review-panel{background:rgba(251,246,239,0.85);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid rgba(255,255,255,0.72);border-radius:26px;box-shadow:0 30px 70px -30px rgba(120,60,20,0.4);padding:36px 34px;font-family:'Outfit',sans-serif;color:#2B211A;}
.gmf-review-panel h2{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:600;margin-bottom:22px;}
.gmf-review-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.gmf-review-pay-btn{width:100%;padding:18px;font-size:1.08rem;margin-top:8px;}
.gmf-review-empty{text-align:center;padding:40px 0;color:#4A3D33;opacity:.7;}
@media(max-width:900px){
  .gmf-review-grid{grid-template-columns:1fr;}
  .gmf-review-wrap{padding:36px 20px 70px;}
}
@media(max-width:520px){
  .gmf-review-field-row{grid-template-columns:1fr;}
}
