:root{
  --sp-wc-bg: #f5f0e8;
  --sp-wc-card: #ffffff;
  --sp-wc-card-soft: rgba(255,255,255,.72);
  --sp-wc-ink: #2A2520;
  --sp-wc-muted: #6E6256;
  --sp-wc-accent: #8A3A2B;
  --sp-wc-accent-2: #B36A56;
  --sp-wc-line: rgba(42,37,32,.10);
  --sp-wc-line-strong: rgba(42,37,32,.16);
  --sp-wc-shadow-sm: 0 8px 20px rgba(42,37,32,.05);
  --sp-wc-shadow: 0 18px 38px rgba(42,37,32,.08);
  --sp-wc-shadow-lg: 0 24px 54px rgba(42,37,32,.12);
  --sp-wc-radius: 24px;
  --sp-wc-radius-md: 18px;
  --sp-wc-radius-sm: 14px;
}

/* -----------------------------------------
   CHECKOUT PAGE TIGHTENING
----------------------------------------- */

body.woocommerce-checkout{
  background: linear-gradient(180deg, #f8f4ee 0%, var(--sp-wc-bg) 100%) !important;
}

.wp-block-woocommerce-checkout{
  max-width: 1320px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  color: var(--sp-wc-ink) !important;
  background: transparent !important;
}

.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout{
  align-items: start !important;
}

@media (min-width: 992px){
  .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout{
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 460px !important;
    gap: 1.5rem !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-sidebar{
    position: sticky !important;
    top: 96px !important;
  }
}

/* Main content cards */
.wp-block-woocommerce-checkout .wc-block-components-main > *,
.wp-block-woocommerce-checkout .wc-block-components-sidebar > *{
  background: var(--sp-wc-card) !important;
  border: 1px solid var(--sp-wc-line) !important;
  border-radius: var(--sp-wc-radius) !important;
  box-shadow: var(--sp-wc-shadow-sm) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-main > *{
  margin-bottom: 1rem !important;
}

/* Hide stray empty shell blocks */
.wp-block-woocommerce-checkout .wc-block-checkout__sidebar > .is-layout-flow:empty,
.wp-block-woocommerce-checkout .wc-block-components-sidebar > .is-layout-flow:empty{
  display: none !important;
}

/* -----------------------------------------
   STEP HEADERS
----------------------------------------- */

.wp-block-woocommerce-checkout .wc-block-components-checkout-step{
  overflow: hidden !important;
  border-radius: var(--sp-wc-radius) !important;
  margin-bottom: 1rem !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading{
  padding: 1rem 1.25rem !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--sp-wc-line) !important;
  background: linear-gradient(180deg, rgba(248,244,238,.85), rgba(255,255,255,.98)) !important;
  display: flex !important;
  align-items: center !important;
  gap: .75rem !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__index{
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(138,58,43,.10) !important;
  color: var(--sp-wc-accent) !important;
  font-size: .76rem !important;
  font-weight: 800 !important;
  border: 1px solid rgba(138,58,43,.15) !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title{
  font-size: 1rem !important;
  font-weight: 850 !important;
  letter-spacing: -.01em !important;
  color: var(--sp-wc-ink) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__description{
  font-size: .88rem !important;
  color: var(--sp-wc-muted) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__container{
  padding: 1rem 1.25rem 1.15rem !important;
}

/* -----------------------------------------
   FORM FIELDS
----------------------------------------- */

.wp-block-woocommerce-checkout input[type="text"],
.wp-block-woocommerce-checkout input[type="email"],
.wp-block-woocommerce-checkout input[type="tel"],
.wp-block-woocommerce-checkout input[type="password"],
.wp-block-woocommerce-checkout input[type="number"],
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-country-input input,
.wp-block-woocommerce-checkout .wc-block-components-state-input input,
.wp-block-woocommerce-checkout .wc-block-components-combobox input,
.wp-block-woocommerce-checkout select,
.wp-block-woocommerce-checkout textarea{
  background: #fff !important;
  color: var(--sp-wc-ink) !important;
  border: 1px solid rgba(42,37,32,.14) !important;
  border-radius: 16px !important;
  min-height: 52px !important;
  padding: .85rem .95rem !important;
  font-size: .98rem !important;
  line-height: 1.3 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5) !important;
}

.wp-block-woocommerce-checkout textarea{
  min-height: 104px !important;
}

.wp-block-woocommerce-checkout input:focus,
.wp-block-woocommerce-checkout select:focus,
.wp-block-woocommerce-checkout textarea:focus{
  border-color: rgba(138,58,43,.45) !important;
  box-shadow: 0 0 0 4px rgba(138,58,43,.10) !important;
  outline: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-label,
.wp-block-woocommerce-checkout .wc-block-components-text-input label{
  font-size: .76rem !important;
  font-weight: 800 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: var(--sp-wc-muted) !important;
}

/* -----------------------------------------
   SHIPPING + PAYMENT OPTIONS
----------------------------------------- */

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option{
  background: #fff !important;
  border: 1px solid rgba(42,37,32,.12) !important;
  border-radius: 20px !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option{
  margin-bottom: .75rem !important;
  overflow: hidden !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option{
  min-height: auto !important;
  padding: .95rem 1rem !important;
  display: grid !important;
  grid-template-columns: 26px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: .85rem !important;
  text-align: left !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__input{
  margin: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__label,
.wp-block-woocommerce-checkout .wc-block-components-payment-method-label{
  font-size: .98rem !important;
  font-weight: 800 !important;
  color: var(--sp-wc-ink) !important;
  line-height: 1.25 !important;
  text-align: left !important;
  justify-self: start !important;
}

.wp-block-woocommerce-checkout .wc-block-components-shipping-rates-control__package,
.wp-block-woocommerce-checkout .wc-block-components-shipping-rates-control__package .wc-block-components-radio-control{
  margin: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__description,
.wp-block-woocommerce-checkout .wc-block-components-payment-method-description{
  color: var(--sp-wc-muted) !important;
  font-size: .88rem !important;
  line-height: 1.4 !important;
  margin-top: .25rem !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__secondary-label,
.wp-block-woocommerce-checkout .wc-block-components-shipping-rate__price,
.wp-block-woocommerce-checkout .wc-block-formatted-money-amount{
  font-size: 1rem !important;
  font-weight: 850 !important;
  color: var(--sp-wc-ink) !important;
  white-space: nowrap !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option:has(input:checked),
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option:has(input:checked){
  border-color: rgba(138,58,43,.45) !important;
  box-shadow: 0 0 0 3px rgba(138,58,43,.08) !important;
  background: linear-gradient(180deg, rgba(255,250,248,.98), rgba(255,255,255,1)) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content{
  padding: 1rem !important;
  border-top: 1px solid var(--sp-wc-line) !important;
  background: linear-gradient(180deg, rgba(248,244,238,.45), rgba(255,255,255,.98)) !important;
}

/* Stripe/payment inner fields */
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content iframe,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content .StripeElement{
  border-radius: 14px !important;
}

/* Stop giant centered payment logos/text */
.wp-block-woocommerce-checkout .wc-block-components-payment-method-label{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: .65rem !important;
  width: 100% !important;
}

.wp-block-woocommerce-checkout .wc-block-components-payment-method-label__brand-logo{
  max-height: 24px !important;
  width: auto !important;
  margin: 0 !important;
}

/* -----------------------------------------
   EXPRESS PAY
----------------------------------------- */

.wp-block-woocommerce-checkout .wc-block-checkout__express-payment-fieldset,
.wp-block-woocommerce-checkout .wc-block-components-express-payment,
.wp-block-woocommerce-checkout .wc-block-checkout__express-payment-block{
  border-radius: var(--sp-wc-radius) !important;
  padding: 1rem !important;
  margin-bottom: 1rem !important;
}

.wp-block-woocommerce-checkout .wc-block-components-express-payment__title,
.wp-block-woocommerce-checkout .wc-block-checkout__express-payment__title,
.wp-block-woocommerce-checkout .wc-block-components-express-payment-continue-rule{
  font-size: .88rem !important;
}

.wp-block-woocommerce-checkout .wc-block-components-express-payment__event-buttons{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: .75rem !important;
}

@media (min-width: 1200px){
  .wp-block-woocommerce-checkout .wc-block-components-express-payment__event-buttons{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

.wp-block-woocommerce-checkout .wc-block-components-express-payment__event-button{
  min-height: 52px !important;
  border-radius: 16px !important;
}

/* -----------------------------------------
   ORDER SUMMARY
----------------------------------------- */

.wp-block-woocommerce-checkout .wc-block-components-sidebar > *{
  padding: 1.25rem 1.3rem !important;
}

.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title,
.wp-block-woocommerce-checkout .wc-block-components-order-summary__button-text{
  font-size: 1.1rem !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: -.01em !important;
  color: var(--sp-wc-ink) !important;
  margin-bottom: .15rem !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item{
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) auto !important;
  gap: .85rem !important;
  align-items: start !important;
  padding: .95rem 0 !important;
  border-bottom: 1px solid var(--sp-wc-line) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image{
  position: relative !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img{
  width: 58px !important;
  height: 58px !important;
  border-radius: 16px !important;
  object-fit: cover !important;
  border: 1px solid rgba(42,37,32,.08) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__quantity{
  top: -7px !important;
  right: -7px !important;
  min-width: 24px !important;
  height: 24px !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description{
  min-width: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__full-name{
  font-size: .98rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  color: var(--sp-wc-ink) !important;
  margin-bottom: .2rem !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__individual-price{
  display: block !important;
  font-size: .92rem !important;
  font-weight: 800 !important;
  color: var(--sp-wc-ink) !important;
  margin-bottom: .15rem !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__total-price{
  align-self: center !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  color: var(--sp-wc-ink) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-product-metadata,
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-details{
  color: var(--sp-wc-muted) !important;
  font-size: .88rem !important;
  line-height: 1.4 !important;
}

/* Totals */
.wp-block-woocommerce-checkout .wc-block-components-totals-item{
  padding: .85rem 0 !important;
  border-top: 1px solid var(--sp-wc-line) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-item__label{
  font-size: .98rem !important;
  font-weight: 700 !important;
  color: var(--sp-wc-muted) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-item__value{
  font-size: .98rem !important;
  font-weight: 850 !important;
  color: var(--sp-wc-ink) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-footer-item{
  padding-top: 1rem !important;
  margin-top: .1rem !important;
  border-top: 1px solid var(--sp-wc-line-strong) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label{
  font-size: 1.02rem !important;
  font-weight: 850 !important;
  color: var(--sp-wc-ink) !important;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-size: 1.3rem !important;
  font-weight: 950 !important;
  color: var(--sp-wc-ink) !important;
}

/* Coupon box */
.wp-block-woocommerce-checkout .wc-block-components-totals-coupon{
  border: 1px solid var(--sp-wc-line) !important;
  border-radius: 18px !important;
  background: rgba(248,244,238,.55) !important;
  padding: .2rem .35rem !important;
  box-shadow: none !important;
  margin: .9rem 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-panel__button{
  min-height: 48px !important;
  padding: .7rem .9rem !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: transparent !important;
  color: var(--sp-wc-ink) !important;
  font-size: .98rem !important;
  font-weight: 750 !important;
  box-shadow: none !important;
}

/* -----------------------------------------
   CHECKBOXES
----------------------------------------- */

.wp-block-woocommerce-checkout .wc-block-components-checkbox label,
.wp-block-woocommerce-checkout .wc-block-components-checkbox__label{
  color: var(--sp-wc-muted) !important;
  font-size: .96rem !important;
  line-height: 1.45 !important;
}

/* -----------------------------------------
   PLACE ORDER BUTTON
----------------------------------------- */

.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout .wc-block-components-button{
  border-radius: 999px !important;
  min-height: 54px !important;
  padding: .95rem 1.35rem !important;
  font-size: .98rem !important;
  font-weight: 850 !important;
  letter-spacing: -.01em !important;
  box-shadow: 0 10px 24px rgba(42,37,32,.14) !important;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout .wc-block-components-button.is-primary{
  background: linear-gradient(90deg, #2A2520 0%, #3A312A 100%) !important;
  border: 1px solid #2A2520 !important;
  color: #fff !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
.wp-block-woocommerce-checkout .wc-block-components-button.is-primary:hover{
  background: linear-gradient(90deg, #8A3A2B 0%, #A34A38 100%) !important;
  border-color: #8A3A2B !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: var(--sp-wc-shadow-lg) !important;
}

/* -----------------------------------------
   MOBILE
----------------------------------------- */

@media (max-width: 991.98px){
  .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout{
    gap: 1rem !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading{
    padding: .95rem 1rem !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-checkout-step__container,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar > *{
    padding: 1rem !important;
  }
}

@media (max-width: 575.98px){
  .wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option,
  .wp-block-woocommerce-checkout .wc-block-components-radio-control__option{
    grid-template-columns: 24px minmax(0, 1fr) auto !important;
    gap: .7rem !important;
    padding: .85rem .9rem !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-order-summary-item{
    grid-template-columns: 50px minmax(0, 1fr) auto !important;
    gap: .7rem !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img{
    width: 50px !important;
    height: 50px !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-express-payment__event-buttons{
    grid-template-columns: 1fr 1fr !important;
  }
}