.notice{width:min(1280px,calc(100% - 24px));margin:12px auto;padding:12px 14px;border-radius:14px;background:#fff3cd;color:#664d03;border:1px solid #ffecb5}.hidden{display:none!important}.loading-menu{padding:30px;color:#666}.toast-message{position:fixed;left:50%;bottom:90px;transform:translateX(-50%) translateY(30px);background:#111;color:#fff;padding:12px 18px;border-radius:999px;z-index:9999;opacity:0;transition:.22s;box-shadow:0 10px 24px rgba(0,0,0,.20)}.toast-message.show{opacity:1;transform:translateX(-50%) translateY(0)}.checkout-link.disabled{opacity:.55;pointer-events:none}.cart-options{font-size:12px;color:#666;line-height:1.35}.product-card{position:relative}.product-click-zone{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;z-index:1}.product-media,.product-info{position:relative;z-index:2}.product-info{pointer-events:none}.product-media img{pointer-events:none}.add-btn{pointer-events:auto}.product-category-pill{font-size:11px;color:#777;margin-bottom:4px}.modal-help{font-size:12px;color:#666;margin:4px 0 8px}.quantity-option-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.quantity-option-controls{display:flex;align-items:center;gap:8px}.quantity-option-controls button{width:30px;height:30px;border-radius:999px;border:1px solid #ddd;background:#fff}.qty-option-value{min-width:20px;text-align:center;font-weight:700}.option-line strong,.quantity-option-name strong{color:#111}.checkout-api-message{padding:12px;border-radius:12px;margin-top:10px}.checkout-api-message.ok{background:#e8f6ee;color:#0f5132}.checkout-api-message.err{background:#fdeaea;color:#842029}@media(max-width:900px){.toast-message{bottom:105px}}

.checkout-memory-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin:10px 0 14px}.checkout-memory-box .payment-line{margin:0}.checkout-memory-box button{min-height:42px;border:0;border-radius:12px;padding:0 12px;background:#f3f4f6;color:#111827;font-weight:900}@media(max-width:900px){.checkout-memory-box{grid-template-columns:1fr}.checkout-memory-box button{width:100%}}

.checkout-service-box{margin:14px 0}.checkout-service-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.checkout-service-toggle label{margin:0}.checkout-service-toggle input{position:absolute;opacity:0;pointer-events:none}.checkout-service-toggle span{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #e5e7eb;border-radius:14px;background:#f9fafb;color:#111827;font-weight:900}.checkout-service-toggle input:checked+span{background:#111827;color:#fff;border-color:#111827}.checkout-delivery-box{margin:12px 0 16px;padding:14px;border:1px solid #ead7f5;border-radius:16px;background:#fff7ff}.delivery-location-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.delivery-location-card strong{display:block;font-size:16px}.delivery-location-card .help-text{margin:3px 0 0}.delivery-location-card button{min-height:42px;border:0;border-radius:12px;padding:0 14px;background:#111827;color:#fff;font-weight:900}.delivery-address-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.delivery-address-grid label{display:block}.checkout-delivery-box textarea{min-height:86px}@media(max-width:900px){.checkout-service-toggle,.delivery-address-grid,.delivery-location-card{grid-template-columns:1fr}.delivery-location-card button{width:100%}}

.checkout-optional-details{margin:16px 0;border:1px solid #ece7e2;border-radius:16px;background:#fff;overflow:hidden}.checkout-optional-details summary{cursor:pointer;padding:14px 16px;font-weight:900;color:#111827;list-style:none}.checkout-optional-details summary::-webkit-details-marker{display:none}.checkout-optional-details summary::after{content:"+";float:right;font-size:20px;line-height:1}.checkout-optional-details[open] summary::after{content:"−"}.checkout-optional-details>label,.checkout-optional-details>.name-field,.checkout-optional-details>textarea,.checkout-optional-details>.checkout-memory-box{margin-left:16px;margin-right:16px}.checkout-optional-details .checkout-memory-box{margin-bottom:16px}.billing-section>label[for="pickup_date"]{margin-top:14px}.final-order-btn{font-size:17px;min-height:54px}

/* Checkout mobile hardening */
body.checkout-page{
  background:#fbf5fb;
  overflow-x:hidden;
}
body.checkout-page .top-header{
  min-height:72px;
  padding:8px max(16px,env(safe-area-inset-left)) 8px max(16px,env(safe-area-inset-right));
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(33,27,37,.08);
}
body.checkout-page .checkout-brand{
  min-width:0;
  gap:10px;
}
body.checkout-page .checkout-brand-logo{
  width:132px;
  height:auto;
  max-height:54px;
  object-fit:contain;
  flex:0 0 auto;
}
body.checkout-page .checkout-brand span{
  line-height:1.2;
}
.checkout-page-main{
  width:min(700px,calc(100% - 32px));
  max-width:700px;
  margin:18px auto 28px;
}
.checkout-layout-form{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  align-items:start;
}
.billing-section,
.order-section{
  width:100%;
  min-width:0;
  padding:20px;
  border:1px solid rgba(33,27,37,.08);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  box-shadow:0 14px 34px rgba(33,27,37,.08);
}
.order-section{
  position:static;
}
.billing-section h1,
.order-section h1{
  margin:0 0 20px;
  color:#17151d;
  font-size:clamp(26px,7vw,36px);
  line-height:1.05;
  letter-spacing:0;
}
.billing-section label,
.checkout-delivery-box label,
.checkout-optional-details label{
  display:block;
  width:100%;
  margin:14px 0 7px;
  color:#3f3946;
  font-size:14px;
  font-weight:850;
  line-height:1.25;
}
.billing-section input,
.billing-section select,
.billing-section textarea,
.checkout-delivery-box input,
.checkout-delivery-box textarea,
.checkout-optional-details input,
.checkout-optional-details textarea{
  display:block;
  width:100%;
  max-width:100%;
  min-height:50px;
  margin:7px 0 0;
  padding:12px 14px;
  border:1px solid #eadfd8;
  border-radius:14px;
  background:#fff;
  color:#17151d;
  font:inherit;
  line-height:1.3;
  box-sizing:border-box;
}
.billing-section textarea,
.checkout-delivery-box textarea,
.checkout-optional-details textarea{
  min-height:96px;
  resize:vertical;
}
.help-text{
  margin:8px 0 12px;
  color:#6f6674;
  line-height:1.45;
}
.checkout-service-box,
.checkout-delivery-box,
.checkout-optional-details,
.order-box,
.payment-box,
.privacy-box,
.order-options-box{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.checkout-service-toggle{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.checkout-service-toggle label{
  margin:0;
}
.checkout-service-toggle span{
  min-height:50px;
  padding:10px 12px;
  text-align:center;
}
.checkout-delivery-box{
  margin:14px 0 18px;
  padding:16px;
  border:1px solid #ead7f5;
  border-radius:18px;
  background:#fff7ff;
}
.delivery-location-card,
.delivery-address-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.delivery-location-card button{
  width:100%;
  min-height:46px;
}
.order-box,
.payment-box,
.privacy-box,
.order-options-box{
  padding:18px;
  margin:0 0 16px;
  border:1px solid rgba(33,27,37,.08);
  border-radius:20px;
  background:#fff;
  box-shadow:none;
}
.order-head,
.checkout-order-line,
.order-total-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
}
.order-head{
  padding:0 0 10px;
  border-bottom:1px solid #efe7ed;
}
.checkout-order-line{
  padding:14px 0;
  border-bottom:1px solid #f2ece7;
}
.checkout-order-line p{
  margin:0 0 5px;
  color:#111827;
  font-weight:900;
  line-height:1.25;
}
.checkout-order-line strong{
  display:block;
  color:#3f3946;
  font-size:14px;
  line-height:1.3;
}
.checkout-order-line small{
  display:block;
  margin-top:5px;
  color:#5f5866;
  line-height:1.4;
}
.checkout-order-line>span{
  white-space:nowrap;
  color:#111827;
  font-weight:900;
}
.order-total-grid{
  padding-top:14px;
  row-gap:10px;
}
.payment-line{
  display:flex;
  align-items:flex-start;
  gap:12px;
  width:100%;
  min-height:52px;
  margin:10px 0;
  padding:12px;
  border:1px solid #efe6df;
  border-radius:15px;
  background:#fff;
  cursor:pointer;
  box-sizing:border-box;
}
.billing-section label.payment-line,
.order-section label.payment-line,
.checkout-optional-details label.payment-line{
  display:flex;
  align-items:flex-start;
  margin:10px 0;
}
.payment-line input{
  flex:0 0 auto;
  width:22px;
  height:22px;
  margin:1px 0 0;
}
.payment-line span{
  min-width:0;
  line-height:1.35;
}
.couverts-qty{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:space-between;
  margin-top:12px;
}
.privacy-box{
  margin-bottom:0;
}
.privacy-box p{
  margin:0 0 20px;
  color:#5f5866;
  line-height:1.45;
}
.final-order-btn{
  width:100%;
  min-height:52px;
  margin-top:4px;
  border:0;
  border-radius:16px;
  background:#111;
  color:#fff;
  font-size:17px;
  font-weight:950;
}
.footer{
  padding:10px 0 34px;
}
.footer-inner{
  width:min(700px,calc(100% - 32px));
  max-width:700px;
  margin:0 auto;
  padding:18px;
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  border-radius:22px;
}
.footer-separator{
  display:none;
}
.footer-block{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.footer-block span{
  display:block;
  max-width:100%;
  line-height:1.45;
}
.legal-footer{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 14px;
  width:min(700px,calc(100% - 32px));
  margin:14px auto 0;
  padding:0;
}
.legal-footer a,
.legal-footer span{
  line-height:1.4;
}
@media(min-width:960px){
  .checkout-page-main{
    width:min(1160px,calc(100% - 48px));
    max-width:1160px;
  }
  .checkout-layout-form{
    grid-template-columns:minmax(0,1fr) 400px;
    gap:22px;
  }
  .order-section{
    position:sticky;
    top:92px;
  }
  .delivery-address-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .footer-inner{
    width:min(1160px,calc(100% - 48px));
    max-width:1160px;
    grid-template-columns:1fr auto 1fr auto 1fr;
  }
  .footer-separator{
    display:block;
  }
}
@media(max-width:520px){
  .checkout-page-main{
    width:calc(100% - 32px);
    margin-top:14px;
  }
  .billing-section,
  .order-section{
    padding:18px;
    border-radius:22px;
  }
  body.checkout-page .checkout-brand-logo{
    width:118px;
    max-height:50px;
  }
  body.checkout-page .checkout-brand span{
    display:none;
  }
  .search-btn{
    width:44px;
    height:44px;
  }
  .checkout-service-toggle{
    grid-template-columns:1fr;
  }
  .order-box,
  .payment-box,
  .privacy-box,
  .order-options-box{
    padding:16px;
    border-radius:18px;
  }
}
