.mdn-delivery-row select,
select[name="mdn_delivery_scenario"]{
  min-width: 280px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
}

.woocommerce-account-fields,
.woocommerce-shipping-fields{
  margin-top: 18px;
}

/* CHECKOUT */
.woocommerce-checkout #customer_details{
  width: 100%;
  margin: 0;
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{
  float: none;
  width: 100%;
}

.woocommerce-checkout #customer_details .col-2{
  display: none;
}

.mdn-checkout-steps{
  margin: 0 0 24px;
}

.mdn-step-nav{
  display: flex;
  gap: 12px;
  margin-bottom: 18px;
}

.mdn-step-tab{
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
  border-radius: 999px;
  padding: 10px 16px;
  cursor: pointer;
  font-weight: 700;
  transition: .2s ease;
}

.mdn-step-tab.is-active{
  background: #D00000;
  color: #fff;
  border-color: #D00000;
}

.mdn-step-panel{
  display: none;
}

.mdn-step-panel.is-active{
  display: block;
}

.mdn-step-card{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 10px 28px rgba(0,0,0,.06);
}

.mdn-step-title{
  margin: 0 0 18px;
  font-size: 20px;
  line-height: 1.2;
}

.woocommerce form .form-row.mdn-card-field{
  margin-bottom: 16px;
}

.woocommerce form .form-row.mdn-card-field input.input-text,
.woocommerce form .form-row.mdn-card-field select,
.woocommerce form .form-row.mdn-card-field textarea{
  border-radius: 12px;
  min-height: 48px;
  padding: 12px 14px;
}

.mdn-next-step,
.mdn-back-step{
  margin-top: 18px !important;
  border-radius: 12px !important;
  padding: 12px 18px !important;
}

.mdn-address-field.is-hidden{
  display: none !important;
}

/* CART CLEANUP */
.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-cart .coupon,
.woocommerce-cart .actions .coupon,
.woocommerce-cart .actions > .button[name="update_cart"],
.woocommerce-cart .actions > button[name="update_cart"],
.woocommerce-cart input[name="update_cart"],
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart .shipping-calculator-button,
.woocommerce-cart .woocommerce-shipping-calculator,
.woocommerce-cart .shipping-calculator-form,
.woocommerce-cart .woocommerce-shipping-destination{
  display: none !important;
}

/* FORCE CART INTO CARD LAYOUT */
.woocommerce-cart .woocommerce{
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 24px;
  align-items: start;
}

.woocommerce-cart form.woocommerce-cart-form{
  margin: 0 !important;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 20px;
  box-shadow: 0 14px 30px rgba(0,0,0,.06);
  padding: 20px;
}

.woocommerce-cart .cart-collaterals{
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart_totals{
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 20px;
  box-shadow: 0 14px 30px rgba(0,0,0,.06);
  padding: 20px;
}

.woocommerce-cart table.shop_table{
  border: 0 !important;
  margin: 0 !important;
}

.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td{
  border-color: rgba(0,0,0,.07) !important;
  vertical-align: middle;
}

.woocommerce-cart .product-remove a{
  color: #D00000 !important;
  font-weight: 700;
}

.woocommerce-cart .product-thumbnail img{
  border-radius: 12px;
}

.woocommerce-cart .quantity .qty{
  min-height: 42px;
  border-radius: 10px;
}

/* UPSELL CARD */
.mdn-cart-card{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 20px;
  box-shadow: 0 14px 30px rgba(0,0,0,.06);
  padding: 18px;
  margin-bottom: 20px;
}

.mdn-cart-upsell-card{
  background: linear-gradient(180deg, #fff 0%, #fff8ef 100%);
  border: 1px solid rgba(208,0,0,.10);
}

.mdn-cart-upsell-card__content{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.mdn-cart-upsell-card__eyebrow{
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #D00000;
  margin-bottom: 6px;
}

.mdn-cart-upsell-card h3{
  margin: 0 0 6px;
  font-size: 22px;
  line-height: 1.15;
}

.mdn-cart-upsell-card p{
  margin: 0;
  opacity: .75;
}

.mdn-cart-upsell-card__action{
  min-width: 220px;
  text-align: right;
  position: relative;
}

.mdn-cart-upsell-card__price{
  font-weight: 800;
  margin-bottom: 10px;
}

.mdn-cart-upsell-card__action .button,
.mdn-add-fries-button{
  min-width: 180px;
  border-radius: 12px !important;
  padding: 12px 16px !important;
}

.mdn-inline-spinner{
  width: 22px;
  height: 22px;
  border: 3px solid rgba(208,0,0,.18);
  border-top-color: #D00000;
  border-radius: 50%;
  animation: mdnSpin .8s linear infinite;
  display: none;
  margin-left: auto;
  margin-top: 10px;
}

.mdn-cart-upsell-card.is-loading .mdn-inline-spinner{
  display: block;
}

.mdn-cart-upsell-card.is-added{
  border-color: rgba(24,138,59,.25);
  background: linear-gradient(180deg, #fff 0%, #f5fff7 100%);
}

/* CART LOADING STATE */
.mdn-cart-is-loading .woocommerce-cart-form,
.mdn-cart-is-loading .cart_totals,
.mdn-cart-is-loading .mdn-cart-card{
  position: relative;
  overflow: hidden;
}

.mdn-cart-is-loading .woocommerce-cart-form::after,
.mdn-cart-is-loading .cart_totals::after,
.mdn-cart-is-loading .mdn-cart-card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(2px);
  z-index: 5;
}

.mdn-cart-is-loading .woocommerce-cart-form::before,
.mdn-cart-is-loading .cart_totals::before,
.mdn-cart-is-loading .mdn-cart-card::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  border: 4px solid rgba(208,0,0,.15);
  border-top-color: #D00000;
  border-radius: 50%;
  animation: mdnSpin .75s linear infinite;
  z-index: 6;
}

@keyframes mdnSpin{
  to { transform: rotate(360deg); }
}

/* MOBILE */
@media (max-width: 980px){
  .woocommerce-cart .woocommerce{
    grid-template-columns: 1fr;
  }

  .mdn-cart-upsell-card__content{
    flex-direction: column;
    align-items: flex-start;
  }

  .mdn-cart-upsell-card__action{
    width: 100%;
    min-width: 0;
    text-align: left;
  }
}

@media (max-width: 768px){
  .mdn-step-nav{
    flex-direction: column;
  }

  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals .cart_totals,
  .woocommerce-cart .cart_totals,
  .mdn-cart-card{
    padding: 16px;
  }

  .woocommerce-cart table.shop_table th,
  .woocommerce-cart table.shop_table td{
    font-size: 14px;
  }
}

.mdn-delivery-row td{
  vertical-align: top;
}

.mdn-delivery-zones{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  width:100%;
}

.mdn-zone-btn{
  appearance:none;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  color:#111;
  padding:12px 14px;
  border-radius:14px;
  font-size:14px;
  line-height:1.25;
  font-weight:800;
  cursor:pointer;
  box-sizing:border-box;
  transition:
    background-color .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    transform .08s ease;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
}

.mdn-zone-btn:hover{
  border-color:rgba(0,0,0,.16);
  box-shadow:0 4px 14px rgba(0,0,0,.08);
}

.mdn-zone-btn:active{
  transform:scale(.98);
}

.mdn-zone-btn.is-active{
  background:#111;
  color:#fff;
  border-color:#111;
  box-shadow:0 8px 18px rgba(0,0,0,.14);
}

.mdn-zone-btn.is-pickup.is-active{
  background:#0f7a35;
  border-color:#0f7a35;
}

.mdn-zone-btn.is-delivery.is-active{
  background:#d00000;
  border-color:#d00000;
}

.mdn-delivery-select-hidden{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
}

@media (max-width: 767px){
  .mdn-delivery-zones{
    gap:8px;
  }

  .mdn-zone-btn{
    width:100%;
    text-align:left;
    padding:12px 13px;
    border-radius:12px;
    font-size:13.5px;
  }
}


.mdn-delivery-page-loader{
  position:fixed;
  inset:0;
  z-index:999999;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, visibility .2s ease;
}

html.mdn-delivery-loading .mdn-delivery-page-loader,
body.mdn-delivery-loading .mdn-delivery-page-loader{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.mdn-delivery-page-loader__backdrop{
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.68);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}

.mdn-delivery-page-loader__card{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:min(220px, calc(100vw - 40px));
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 50px rgba(0,0,0,.14);
  padding:22px 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:12px;
}

.mdn-delivery-page-loader__spinner{
  width:46px;
  height:46px;
  border-radius:50%;
  border:4px solid rgba(208,0,0,.14);
  border-top-color:#d00000;
  animation:mdnDeliverySpin .75s linear infinite;
}

.mdn-delivery-page-loader__title{
  font-size:16px;
  font-weight:800;
  line-height:1.2;
  color:#111;
}

.mdn-delivery-page-loader__text{
  font-size:13px;
  line-height:1.35;
  color:rgba(0,0,0,.66);
}

@keyframes mdnDeliverySpin{
  to{ transform:rotate(360deg); }
}