/* ==========================================================
   Cart Checkout Info View
   Guest checkout contact info + phone verification
   This is a full cart view, not a nested bottom sheet.
   ========================================================== */

#cartSheet .cartBody.rd-cartCheckoutInfo-active{
  overflow: hidden !important;
}

#cartCheckoutInfoView[hidden]{
  display: none !important;
}

#cartCheckoutInfoView{
  height: 100%;
  min-height: 0;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.cartCheckoutInfo{
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: #ffffff;
}

.cartCheckoutInfo__body{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 18px clamp(28px, 4vw, 36px) calc(28px + env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
}

.cartCheckoutInfo__hint{
  margin: 0 5px 18px;
  font-size: 15px;
  line-height: 1.35;
  color: #555;
}

.cartCheckoutInfo__fieldGroup{
  margin-bottom: 5px;
}

.cartCheckoutInfo__fieldGroup--float{
  margin-bottom: 10px;
}

.cartCheckoutInfo__label{
  display: block;
  margin: 6px 7px 3px;
  font-size: 14px;
  font-weight: 500;
  color: #000000;
}

.cartCheckoutInfo__phoneBox,
.cartCheckoutInfo__inputBox,
.cartCheckoutInfo__floatField{
  height: 50px;
  border-radius: 10px;
  background: #e9ebee;
  border: 0;
  box-shadow: none;
  box-sizing: border-box;
}

.cartCheckoutInfo__phoneBox{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 16px;
}

.cartCheckoutInfo__phonePrefix{
  flex: 0 0 auto;
  font-size: 17px;
  color: #000000;
}

.cartCheckoutInfo__phoneBox input,
.cartCheckoutInfo__inputBox input,
.cartCheckoutInfo__floatField input{
  width: 100%;
  height: 100%;
  min-width: 0;
  border: 0 !important;
  outline: 0 !important;
  background: transparent;
  color: #000000;
  font-size: 17px;
  font-weight: 400;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none !important;
}

.cartCheckoutInfo__phoneBox input::placeholder,
.cartCheckoutInfo__inputBox input::placeholder{
  color: #8a8f96;
  opacity: 1;
}

.cartCheckoutInfo__inputBox input{
  padding: 0 16px;
}

.cartCheckoutInfo__floatField{
  position: relative;
  padding: 4px 16px 6px;
}

.cartCheckoutInfo__floatField input{
  padding: 18px 0 0;
}

.cartCheckoutInfo__floatField label{
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #8a8f96;
  font-size: 18px;
  font-weight: 400;
  pointer-events: none;
  transition: top .16s ease, transform .16s ease, font-size .16s ease, color .16s ease;
}

.cartCheckoutInfo__floatField input:focus + label,
.cartCheckoutInfo__floatField input:not(:placeholder-shown) + label{
  top: 2px;
  transform: none;
  font-size: 13px;
  color: #086ee3;
}

.cartCheckoutInfo__phoneBox:focus-within,
.cartCheckoutInfo__inputBox:focus-within,
.cartCheckoutInfo__floatField:focus-within{
   border: 0;
   background: #e9ebee;
   box-shadow: none;
}

.cartCheckoutInfo__error{
   margin: 0px 6px 0;
   color: #d90000;
   font-size: 14px;
}

#cartCheckoutInfoStepVerify .cartCheckoutInfo__error{
   text-align: center;
   width: 100%;
   margin-left: 0;
   margin-right: 0;
}

.cartCheckoutInfo__error[hidden]{
   display: none !important;
}

.cartCheckoutInfo__primaryBtn,
.cartCheckoutInfo__secondaryBtn{
   width: 100%;
   min-height: 46px;
   border: 0;
   border-radius: 10px;
   font-size: 15px;
   font-weight: 500;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   box-sizing: border-box;
   -webkit-tap-highlight-color: transparent;
}

.cartCheckoutInfo__primaryBtn{
  margin-top: 14px;
  background: #1a1a1a;
  color: #ffffff;
}

.cartCheckoutInfo__secondaryBtn{
  margin-top: 12px;
  background: #f1f3f5;
  color: #000000;
}

.cartCheckoutInfo__primaryBtn:disabled,
.cartCheckoutInfo__secondaryBtn:disabled{
  opacity: 0.62;
  cursor: default;
}

.cartCheckoutInfo__spinner{
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.35);
  border-top-color: #ffffff;
  animation: rdCartCheckoutInfoSpin .75s linear infinite;
}

.cartCheckoutInfo__verifyBusy{
  width: 100%;
  min-height: 50px;          /* same vertical space as old black button */
  margin: 22px 0 0;          /* same top position as old black button */
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.cartCheckoutInfo__verifyBusy[hidden]{
  display: none !important;
}

.cartCheckoutInfo__spinner--dark{
  border-color: rgba(0,0,0,0.16);
  border-top-color: #000000;
}

@keyframes rdCartCheckoutInfoSpin{
  to{ transform: rotate(360deg); }
}

.cartCheckoutInfo__verifyText{
  margin: 0 0 20px;
  font-size: 15px;
  line-height: 1.35;
  color: #555;
  text-align: center;
}

.cartCheckoutInfo__pinWrap{
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 22px 0 12px;
}

.cartCheckoutInfo__pinWrap input{
  width: 58px;
  height: 62px;
  border-radius: 12px;
  border: 1px solid #d8dde3;
  background: #ffffff;
  text-align: center;
  font-size: 22px;
  font-weight: 400;
  color: #000000;
  outline: 0;
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
}

.cartCheckoutInfo__pinWrap input:focus{
  border: 2px solid #000000;
}

.cartCheckoutInfo__pinWrap input:disabled{
  opacity: 0.45;
  background: #f8f9fa;
}

.cartCheckoutInfo__busyText{
  margin: 18px 0 0;
  font-size: 15px;
  color: #4b5563;
  text-align: center;
}

/* Verification screen: make Resend / Edit look like links, not buttons */
#cartCheckoutInfoStepVerify .cartCheckoutInfo__secondaryBtn{
  width: auto;
  min-height: 0;
  margin: 40px auto 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #000000;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
}

#cartCheckoutInfoStepVerify .cartCheckoutInfo__secondaryBtn + .cartCheckoutInfo__secondaryBtn{
  margin-top: 18px;
}

#cartCheckoutInfoStepVerify .cartCheckoutInfo__secondaryBtn:disabled{
  opacity: 0.45;
  background: transparent;
}

@media (max-width: 500px){
  .cartCheckoutInfo__body{
    padding: 18px 18px calc(26px + env(safe-area-inset-bottom, 0px));
  }

  .cartCheckoutInfo__pinWrap{
    gap: 10px;
  }

  .cartCheckoutInfo__pinWrap input{
    width: 50px;
    height: 56px;
  }
}
