/* ============================================================
   TFW WOOCOMMERCE — Cart + Checkout Styles
   "Less is Luxury" v5 — The Fragrance World UK
   ============================================================

   RULES:
   - Buttons: ALWAYS --ink background, --white text. No coloured CTAs.
   - Numbers/prices: ALWAYS var(--fb) (Outfit). Never Cormorant.
   - No opacity on text. Hierarchy via size/weight only.
   - Mobile-first. Clean. Luxury.
   ============================================================ */


/* ============================================================
   SHARED: TFW BUTTONS
   ============================================================ */

.tfw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  background: var(--ink);
  color: var(--white);
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid var(--ink);
  cursor: pointer;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), color 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  -webkit-appearance: none;
  appearance: none;
  line-height: 1;
  width: 100%;
  text-align: center;
}

.tfw-btn:hover {
  background: transparent;
  color: var(--ink);
}

.tfw-btn:active {
  transform: scale(0.97);
}

.tfw-btn--outline {
  background: transparent;
  color: var(--ink);
  border: 2px solid var(--ink);
}

.tfw-btn--outline:hover {
  background: var(--ink);
  color: var(--white);
}

.tfw-btn--sm {
  padding: 12px 20px;
  font-size: 11px;
  letter-spacing: 1.4px;
  min-height: 44px;
}


/* ============================================================
   CART PAGE — .woocommerce-cart
   ============================================================ */

.tfw-cart {
  max-width: 560px;
  margin: 0 auto;
  padding: 32px 20px 60px;
  background: var(--bg);
}

/* ── Free delivery nudge ── */
.tfw-cart-nudge {
  padding: 16px 20px;
  background: var(--card);
  border: 1px solid var(--bd);
  margin-bottom: 32px;
}

.tfw-cart-nudge__text {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 10px;
  text-align: center;
}

.tfw-cart-nudge__text strong {
  font-family: var(--fb);
  font-weight: 600;
}

.tfw-cart-nudge__text--unlocked strong {
  color: var(--ink);
}

.tfw-cart-nudge__bar {
  width: 100%;
  height: 3px;
  background: var(--bd);
  position: relative;
  overflow: hidden;
}

.tfw-cart-nudge__fill {
  height: 100%;
  background: var(--gold);
  transition: width 0.5s cubic-bezier(0.34,1.56,0.64,1);
}

/* ── Cart heading ── */
.tfw-cart__title {
  font-family: var(--fd);
  font-size: 32px;
  font-weight: 300;
  color: var(--ink);
  margin-bottom: 4px;
  line-height: 1.1;
}

.tfw-cart__count {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.5px;
  color: var(--ink);
  margin-bottom: 24px;
}

/* ── Cart items ── */
.tfw-cart__items {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Bundle group in cart ── */
.tfw-cart-bundle {
  border: 1px solid var(--bd);
  margin-bottom: 16px;
  background: var(--bg);
}
.tfw-cart-bundle__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 16px 8px;
  gap: 12px;
}
.tfw-cart-bundle__label {
  display: block;
  font-family: var(--fb);
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.tfw-cart-bundle__size {
  display: block;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 400;
  color: var(--ink);
  margin-top: 2px;
}
.tfw-cart-bundle__pricing {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-shrink: 0;
}
.tfw-cart-bundle__was {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 300;
  color: var(--ink);
  text-decoration: line-through;
}
.tfw-cart-bundle__now {
  font-family: var(--fb);
  font-size: 20px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.tfw-cart-bundle__saving {
  padding: 0 16px 12px;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  color: var(--bundle, #8B6E52);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.tfw-cart-item--bundle {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid var(--bd);
}
.tfw-cart-item--bundle .tfw-cart-item__img {
  width: 56px;
  height: 56px;
  flex-shrink: 0;
}
.tfw-cart-item--bundle .tfw-cart-item__img img {
  width: 56px;
  height: 56px;
  object-fit: cover;
}
.tfw-cart-item--bundle .tfw-cart-item__details {
  flex: 1;
  min-width: 0;
}
.tfw-cart-item--bundle .tfw-cart-item__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.tfw-cart-item--bundle .tfw-cart-item__name {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  display: block;
  line-height: 1.3;
}
.tfw-cart-item__inspired {
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 300;
  font-style: italic;
  color: var(--ink);
  display: block;
  margin-top: 2px;
}
.tfw-cart-item--bundle .tfw-cart-item__remove {
  font-size: 14px;
  width: 32px;
  height: 32px;
  min-width: 44px;
  min-height: 44px;
  margin: -8px -8px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tfw-cart-item {
  display: flex;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--bd);
}

.tfw-cart-item:first-child {
  border-top: 1px solid var(--bd);
}

/* Thumbnail */
.tfw-cart-item__img {
  width: 90px;
  flex: 0 0 90px;
  background: var(--bg2);
}

.tfw-cart-item__img a {
  display: block;
}

.tfw-cart-item__img img {
  width: 100%;
  height: auto;
  display: block;
  mix-blend-mode: multiply;
  object-fit: cover;
  background: var(--card);
}

/* Details column */
.tfw-cart-item__details {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.tfw-cart-item__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}

.tfw-cart-item__info {
  min-width: 0;
}

.tfw-cart-item__name {
  font-family: var(--fd);
  font-size: 16px;
  font-weight: 400;
  color: var(--ink);
  text-decoration: none;
  display: block;
  line-height: 1.3;
  margin-bottom: 4px;
}

.tfw-cart-item__name:hover {
  text-decoration: underline;
}

/* Variation data */
.tfw-cart-item__details dl.variation {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 8px;
  margin: 2px 0 4px;
}

.tfw-cart-item__details dl.variation dt {
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--ink);
}

.tfw-cart-item__details dl.variation dd {
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 400;
  color: var(--ink);
  margin: 0;
}

.tfw-cart-item__details dl.variation dd p {
  margin: 0;
}

.tfw-cart-item__price {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  display: block;
}

/* WooCommerce price HTML inside cart items */
.tfw-cart-item__price .woocommerce-Price-amount,
.tfw-cart-item__subtotal .woocommerce-Price-amount {
  font-family: var(--fb);
}

.tfw-cart-item__price del {
  font-weight: 300;
  color: var(--ink);
  font-size: 12px;
}

.tfw-cart-item__price ins {
  text-decoration: none;
  font-weight: 500;
}

/* Remove button */
.tfw-cart-item__remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  font-size: 20px;
  line-height: 1;
  color: var(--ink);
  text-decoration: none;
  transition: color 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  font-weight: 300;
}

.tfw-cart-item__remove:hover {
  color: var(--muted);
}

.tfw-cart-item__remove:active {
  transform: scale(0.9);
}

/* Bottom row: qty + subtotal */
.tfw-cart-item__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 12px;
}

/* Quantity controls */
.tfw-cart-item__qty {
  display: flex;
  align-items: center;
  border: 1px solid var(--bd);
}

.tfw-qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--fb);
  font-size: 16px;
  font-weight: 300;
  color: var(--ink);
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  -webkit-appearance: none;
  appearance: none;
}

.tfw-qty-btn:hover {
  background: var(--bg2);
}

.tfw-qty-btn:active {
  transform: scale(0.9);
}

.tfw-qty-input {
  width: 40px;
  height: 36px;
  text-align: center;
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  border: none;
  border-left: 1px solid var(--bd);
  border-right: 1px solid var(--bd);
  background: transparent;
  -moz-appearance: textfield;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
}

.tfw-qty-input::-webkit-outer-spin-button,
.tfw-qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.tfw-cart-item__qty-solo {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  padding: 0 12px;
}

.tfw-cart-item__subtotal {
  font-family: var(--fb);
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}

/* ── Update Cart button (hidden by default, shown on qty change) ── */
.tfw-cart__actions-row {
  padding: 16px 0;
}

.tfw-cart__update {
  display: none;
  width: auto;
  padding: 10px 20px;
  font-size: 11px;
  letter-spacing: 1.4px;
}

/* ── Coupon ── */
.tfw-cart-coupon {
  padding: 24px 0;
  border-bottom: 1px solid var(--bd);
}

.tfw-cart-coupon__label {
  display: block;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 8px;
}

.tfw-cart-coupon__row {
  display: flex;
  gap: 0;
}

.tfw-cart-coupon__input {
  flex: 1;
  padding: 12px 14px;
  border: 1px solid var(--bd);
  border-right: none;
  background: var(--card);
  font-family: var(--fb);
  font-size: 16px;
  color: var(--ink);
  outline: none;
  transition: border-color 0.22s cubic-bezier(0.34,1.56,0.64,1);
}

.tfw-cart-coupon__input:focus {
  border-color: var(--ink);
}

.tfw-cart-coupon__input::placeholder {
  color: var(--muted);
  font-weight: 300;
}

.tfw-cart-coupon__apply {
  padding: 12px 20px;
  width: auto;
  font-size: 11px;
  min-height: 44px;
}

/* ── Cart Totals / Order Summary ── */
.tfw-cart-totals {
  padding: 40px 0;
}

.tfw-cart-totals__title {
  font-family: var(--fd);
  font-size: 24px;
  font-weight: 300;
  color: var(--ink);
  margin-bottom: 20px;
}

.tfw-cart-totals__rows {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.tfw-cart-totals__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid var(--bd);
}

.tfw-cart-totals__row--total {
  border-bottom: 2px solid var(--ink);
  padding: 16px 0;
}

.tfw-cart-totals__label {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 400;
  color: var(--ink);
}

.tfw-cart-totals__value {
  font-family: var(--fb);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  text-align: right;
}

.tfw-cart-totals__row--total .tfw-cart-totals__label {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.tfw-cart-totals__row--total .tfw-cart-totals__value {
  font-size: 18px;
  font-weight: 600;
}

/* Coupon row in totals */
.tfw-cart-totals__row--coupon .tfw-cart-totals__value {
  color: var(--ink);
}

/* WooCommerce shipping rows inside totals */
.tfw-cart-totals .woocommerce-shipping-totals td,
.tfw-cart-totals .woocommerce-shipping-totals th {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 400;
  color: var(--ink);
  padding: 12px 0;
  border-bottom: 1px solid var(--bd);
  background: transparent;
  vertical-align: top;
}

.tfw-cart-totals .woocommerce-shipping-totals th {
  text-align: left;
  padding-right: 16px;
}

.tfw-cart-totals .woocommerce-shipping-totals td {
  text-align: right;
}

/* Shipping methods list */
.tfw-cart-totals .woocommerce-shipping-methods {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tfw-cart-totals .woocommerce-shipping-methods li {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  padding: 4px 0;
}

.tfw-cart-totals .woocommerce-shipping-methods label {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  cursor: pointer;
}

.tfw-cart-totals .woocommerce-shipping-methods .woocommerce-Price-amount {
  font-family: var(--fb);
}

/* CTA buttons */
.tfw-cart-totals__cta {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 24px;
}

.tfw-cart__checkout {
  font-size: 13px;
  padding: 16px 32px;
  letter-spacing: 2px;
}

.tfw-cart__continue {
  font-size: 12px;
  padding: 14px 32px;
}


/* ── WooCommerce notices on cart page ── */
.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-notices-wrapper {
  max-width: 560px;
  margin: 0 auto;
  padding: 16px 20px 0;
}

.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  background: var(--card);
  border: 1px solid var(--bd);
  border-left: 3px solid var(--ink);
  padding: 14px 18px;
  margin: 0 0 12px;
  list-style: none;
}

.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-error {
  border-left-color: #C0392B;
}

.woocommerce-cart .woocommerce-message a,
.woocommerce-cart .woocommerce-info a,
.woocommerce-checkout .woocommerce-message a,
.woocommerce-checkout .woocommerce-info a {
  color: var(--ink);
  font-weight: 500;
  text-decoration: underline;
}

/* ── Empty cart ── */
.woocommerce-cart .cart-empty {
  font-family: var(--fd);
  font-size: 24px;
  font-weight: 300;
  color: var(--ink);
  text-align: center;
  padding: 60px 20px 16px;
}

.woocommerce-cart .return-to-shop {
  text-align: center;
  padding: 0 20px 60px;
}

.woocommerce-cart .return-to-shop .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  background: var(--ink);
  color: var(--white);
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid var(--ink);
  cursor: pointer;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), color 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
}

.woocommerce-cart .return-to-shop .button:hover {
  background: transparent;
  color: var(--ink);
}

.woocommerce-cart .return-to-shop .button:active {
  transform: scale(0.97);
}


/* ── Cart page trust signals ── */
.tfw-cart-trust {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--bd);
  margin-top: 24px;
}

.tfw-cart-trust__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.3px;
  color: var(--ink);
  border-bottom: 1px solid var(--bd);
}

.tfw-cart-trust__item:nth-child(odd) {
  border-right: 1px solid var(--bd);
}

.tfw-cart-trust__item svg {
  flex-shrink: 0;
}

/* ── Cart page payment icons ── */
.tfw-cart-payments {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 0 0;
  flex-wrap: wrap;
}

.tfw-cart-payments img {
  height: 28px;
  width: auto;
}

/* ── Cart Klarna messaging ── */
.tfw-cart-klarna {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 300;
  color: var(--ink);
  text-align: right;
  padding: 8px 0 0;
}
.tfw-cart-klarna strong { font-weight: 500; }

/* ── Cart delivery estimate ── */
.tfw-cart-delivery {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 300;
  color: var(--ink);
  padding: 16px 0 0;
}
.tfw-cart-delivery strong { font-weight: 500; }

/* ── Cart cross-sell ── */
.tfw-cart-crosssell {
  max-width: 800px;
  margin: 40px auto 0;
  padding: 0 16px;
}
.tfw-cart-crosssell__title {
  font-family: var(--fd);
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 300;
  font-style: italic;
  color: var(--ink);
  margin-bottom: 20px;
}
.tfw-cart-crosssell__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.tfw-cart-crosssell__card {
  text-decoration: none;
  color: inherit;
  background: var(--white);
  border: 1px solid var(--bd);
}
.tfw-cart-crosssell__card img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  display: block;
}
.tfw-cart-crosssell__info {
  padding: 10px 12px 14px;
}
.tfw-cart-crosssell__inspired {
  display: block;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 300;
  color: var(--ink);
  margin-bottom: 2px;
}
.tfw-cart-crosssell__name {
  display: block;
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--ink);
  margin-bottom: 4px;
}
.tfw-cart-crosssell__price {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 400;
  color: var(--ink);
}
@media (min-width: 769px) {
  .tfw-cart-crosssell__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
  .tfw-cart-crosssell__card {
    transition: transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  }
  .tfw-cart-crosssell__card:hover { transform: translateY(-3px); }
}


/* ============================================================
   CHECKOUT PAGE — COMPLETE REWRITE
   ============================================================
   Shopify-style. Clean HTML, payment below form, order in sidebar.
   Mobile-first. "Less is Luxury" v5.
   ============================================================ */


/* ── Distraction-free checkout header ── */
.nav--checkout {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 24px; background: var(--card); border-bottom: 1px solid var(--bd);
}
.nav--checkout .nav-logo { position: absolute; left: 50%; transform: translateX(-50%); }
.nav-checkout-back {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--fb); font-size: 12px; color: var(--ink); text-decoration: none;
}
.nav-checkout-secure {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--fb); font-size: 11px; font-weight: 400; color: var(--ink);
  letter-spacing: 0.5px; text-transform: uppercase;
}
@media (min-width: 769px) { .nav--checkout { padding: 18px 48px; } }

/* Hide promo + full footer on checkout */
.woocommerce-checkout .promo { display: none; }
.woocommerce-checkout .footer .footer-top { display: none; }
.woocommerce-checkout .footer .footer-bot { padding: 20px 24px; }

/* ── Checkout background ── */
.woocommerce-checkout { background: var(--bg); }
.woocommerce-checkout .woocommerce { max-width: 1120px; margin: 0 auto; padding: 24px 20px 60px; }

/* Hide login/coupon banners */
.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle,
.woocommerce-form-login, .checkout_coupon { display: none !important; }


/* ═══ TWO-COLUMN LAYOUT — mobile-first ═══ */
.tfw-co {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 0;
}
/* Mobile: sidebar (order summary) first, form second */
.tfw-co-main { order: 2; }
.tfw-co-sidebar { order: 1; margin-bottom: 24px; }
@media (min-width: 769px) {
  .tfw-co {
    grid-template-columns: 1.15fr 0.85fr !important;
    gap: 48px !important;
    align-items: start;
  }
  .tfw-co-main { order: 1; }
  .tfw-co-sidebar { order: 2; position: sticky; top: 80px; height: fit-content; margin-bottom: 0; }
}


/* ═══ EXPRESS CHECKOUT ═══ */
.tfw-co-express {
  background: var(--card); border: 1px solid var(--bd); padding: 20px; margin-bottom: 0;
}
.tfw-co-express-label {
  font-family: var(--fb); font-size: 11px; font-weight: 500;
  letter-spacing: 1.2px; text-transform: uppercase; color: var(--ink);
  margin-bottom: 12px; text-align: center;
}
/* Hide if no express buttons rendered */
.tfw-co-express:not(:has(.wc-stripe-payment-request-button-wrapper, [id*="ppcp"], [id*="payment-request"], [class*="gpay"], [class*="apple-pay"])) {
  display: none;
}
.tfw-co-express:not(:has(.wc-stripe-payment-request-button-wrapper, [id*="ppcp"], [id*="payment-request"], [class*="gpay"], [class*="apple-pay"])) + .tfw-co-divider {
  display: none;
}

/* ── Divider ── */
.tfw-co-divider {
  display: flex; align-items: center; gap: 16px; margin: 24px 0;
}
.tfw-co-divider::before, .tfw-co-divider::after {
  content: ""; flex: 1; height: 1px; background: var(--bd);
}
.tfw-co-divider span {
  font-family: var(--fb); font-size: 12px; font-weight: 300; color: var(--ink);
  white-space: nowrap;
}

/* Hide Stripe/PayPal's own "— OR —" separator — we have our own */
#payment-request-separator,
.wc-stripe-payment-request-separator,
.ppcp-separator,
.woocommerce-checkout .or-separator { display: none !important; }


/* ═══ FORM FIELDS ═══ */
.tfw-co-fields { margin-bottom: 0; }

/* Billing heading — h3 rendered by WooCommerce, styled as section label */
.woocommerce-checkout h3,
.woocommerce-checkout .woocommerce-billing-fields h3 {
  font-family: var(--fb); font-size: 13px; font-weight: 600;
  letter-spacing: 1px; text-transform: uppercase; color: var(--ink);
  margin: 0 0 20px; padding: 0;
}
/* Visually hidden h1 for heading hierarchy — screen readers only */
.tfw-co-h1 {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}

/* Two-column grid for fields */
@media (min-width: 769px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px;
  }
  .woocommerce-checkout #billing_country_field,
  .woocommerce-checkout #billing_address_1_field,
  .woocommerce-checkout #billing_address_2_field,
  .woocommerce-checkout #billing_email_field,
  .woocommerce-checkout #billing_phone_field {
    grid-column: 1 / -1;
  }
}

/* Form rows */
.woocommerce-checkout .form-row {
  margin: 0 0 14px; padding: 0; position: relative;
}
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last { width: 100%; float: none; }

/* Labels */
.woocommerce-checkout label {
  display: block; font-family: var(--fb); font-size: 11px; font-weight: 500;
  letter-spacing: 0.8px; text-transform: uppercase; color: var(--ink); margin-bottom: 6px;
}
.woocommerce-checkout label .required { color: var(--ink); font-weight: 400; }
.woocommerce-checkout label .optional {
  font-size: 10px; font-weight: 300; text-transform: none; letter-spacing: 0; color: var(--ink);
}

/* Inputs */
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
  width: 100%; padding: 14px; min-height: 50px;
  border: 1px solid var(--bd); background: var(--card);
  font-family: var(--fb); font-size: 16px; color: var(--ink);
  outline: none; transition: border-color 0.22s cubic-bezier(0.34,1.56,0.64,1); border-radius: 0;
  -webkit-appearance: none; appearance: none; box-sizing: border-box;
}
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus { border-color: var(--ink); }
.woocommerce-checkout ::placeholder { color: var(--muted); font-weight: 300; }

/* Select2 */
.woocommerce-checkout .select2-container--default .select2-selection--single {
  height: auto; display: flex; align-items: center;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  font-family: var(--fb); font-size: 14px; color: var(--ink); padding: 0;
}
.select2-dropdown { border: 1px solid var(--bd); border-radius: 0; }
.select2-container--default .select2-results__option {
  font-family: var(--fb); font-size: 13px; color: var(--ink); padding: 10px 14px;
}
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
  background: var(--ink); color: var(--white);
}

/* Checkboxes */
.woocommerce-checkout input[type="checkbox"] {
  width: 20px; height: 20px; min-width: 20px;
  border: 1px solid var(--bd); background: var(--card);
  margin-right: 10px; vertical-align: middle; cursor: pointer; accent-color: var(--ink);
}


/* ═══ SECTIONS (Delivery info, Payment) ═══ */
.tfw-co-section {
  border-top: 1px solid var(--bd); padding-top: 32px; margin-top: 32px;
}
.tfw-co-section-head {
  display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
}
.tfw-co-section-head svg { flex-shrink: 0; }
.tfw-co-section-title {
  font-family: var(--fb); font-size: 13px; font-weight: 600;
  letter-spacing: 1px; text-transform: uppercase; color: var(--ink);
}

/* Delivery info — card treatment */
.tfw-co-shipping-info .tfw-co-delivery-grid {
  background: var(--card); border: 1px solid var(--bd); padding: 0;
}
.tfw-co-delivery-opt {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--fb); font-size: 13px; color: var(--ink);
  padding: 14px 18px; border-bottom: 1px solid var(--bd);
}
.tfw-co-delivery-opt:last-child { border-bottom: none; }
.tfw-co-delivery-date { font-weight: 500; }
.tfw-co-cutoff-inline {
  display: block; font-size: 11px; font-weight: 400; color: var(--ink); margin-top: 2px;
}

/* Payment section */
.tfw-co-payment-note {
  font-family: var(--fb); font-size: 12px; font-weight: 300; color: var(--ink);
  margin-bottom: 16px; display: flex; align-items: center; gap: 6px;
}
.tfw-co-payment-note::before {
  content: ""; display: inline-block; width: 12px; height: 12px;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23787F86' stroke-width='1.6' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0110 0v4'/%3E%3C/svg%3E") no-repeat center;
  background-size: contain; flex-shrink: 0;
}

/* Guarantee below Place Order */
.tfw-co-guarantee {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--fb); font-size: 12px; font-weight: 300; color: var(--ink);
  padding: 16px 0 0; margin-top: 8px;
}
.tfw-co-guarantee svg { flex-shrink: 0; }

/* Gift message section */
.tfw-co-gift-section { border-top: 1px solid var(--bd); padding-top: 32px; margin-top: 32px; }
.tfw-co-gift-toggle {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; background: none; border: 1px solid var(--bd);
  padding: 16px 20px; cursor: pointer; transition: border-color 0.22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-co-gift-toggle:hover { border-color: var(--ink); }
.tfw-co-gift-chevron { transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1); flex-shrink: 0; }
.tfw-co-gift-body { padding: 16px 0 0; }
.tfw-co-gift-note {
  font-family: var(--fb); font-size: 12px; font-weight: 300; color: var(--ink);
  margin-bottom: 10px; line-height: 1.5;
}
.tfw-co-gift-textarea {
  width: 100%; border: 1px solid var(--bd); padding: 12px; resize: vertical;
  font-family: var(--fb); font-size: 14px; color: var(--ink);
  background: var(--card); min-height: 80px; box-sizing: border-box;
}
.tfw-co-gift-textarea:focus { border-color: var(--ink); outline: none; }
.tfw-co-gift-count {
  display: block; text-align: right; font-family: var(--fb);
  font-size: 11px; color: var(--ink); margin-top: 4px;
}

/* Micro-testimonial at checkout */
.tfw-co-testimonial {
  text-align: center;
  padding: 20px 0 0;
  margin-top: 16px;
  border-top: 1px solid var(--bd);
}
.tfw-co-testimonial__stars {
  font-size: 14px;
  color: var(--gold);
  letter-spacing: 2px;
  margin-bottom: 6px;
}
.tfw-co-testimonial p {
  font-family: var(--fd);
  font-size: 15px;
  font-weight: 300;
  font-style: italic;
  color: var(--ink);
  line-height: 1.5;
  margin: 0 0 6px;
}
.tfw-co-testimonial__author {
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: 0.3px;
}


/* ═══ SIDEBAR ═══ */
.tfw-co-sidebar {
  background: var(--card); border: 1px solid var(--bd);
}

/* Mobile toggle */
.tfw-order-toggle {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 16px 20px; background: transparent; border: none;
  border-bottom: 1px solid var(--bd); cursor: pointer;
  font-family: var(--fb); font-size: 13px; font-weight: 500; color: var(--ink);
}
.tfw-order-toggle__left { display: flex; align-items: center; gap: 8px; }
.tfw-order-toggle__right { display: flex; align-items: center; gap: 8px; }
.tfw-order-toggle__total { font-weight: 600; font-size: 14px; }
.tfw-order-toggle__chevron { transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1); }
.tfw-order-toggle[aria-expanded="true"] .tfw-order-toggle__chevron { transform: rotate(180deg); }

/* Mobile: collapsed by default */
.tfw-order-details { display: none; padding: 0 20px 20px; }
.tfw-order-details.open { display: block; }
@media (min-width: 769px) { .tfw-order-toggle { display: none; } .tfw-order-details { display: block !important; } }

/* Order heading with edit link */
.tfw-order-heading {
  display: flex; align-items: baseline; justify-content: space-between; padding-top: 20px;
}
#order_review_heading {
  font-family: var(--fb); font-size: 13px; font-weight: 600;
  letter-spacing: 1px; text-transform: uppercase; color: var(--ink); margin: 0;
}
.tfw-edit-cart {
  font-family: var(--fb); font-size: 12px; color: var(--ink);
  text-decoration: underline; text-underline-offset: 3px;
}

/* Order review table */
.woocommerce-checkout .woocommerce-checkout-review-order-table {
  width: 100%; border-collapse: collapse; margin: 12px 0 0;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
  font-family: var(--fb); font-size: 13px; font-weight: 400; color: var(--ink);
  padding: 12px 0; border-bottom: 1px solid var(--bd); background: transparent;
  text-align: left; vertical-align: middle;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
  font-size: 11px; font-weight: 500; letter-spacing: 1px; text-transform: uppercase;
  padding-bottom: 8px;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child { text-align: right; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
  font-size: 16px; font-weight: 600; padding: 16px 0; border-bottom: none;
}

/* Product thumbnail row */
.tfw-checkout-product-row { display: flex; align-items: center; gap: 12px; }
.tfw-checkout-product-img { flex: 0 0 48px; width: 48px; height: 60px; overflow: hidden; background: var(--bg2); }
.tfw-checkout-product-img img.tfw-checkout-thumb { width: 100%; height: 100%; object-fit: cover; display: block; mix-blend-mode: multiply; }
.tfw-checkout-product-name { font-family: var(--fb); font-size: 13px; color: var(--ink); flex: 1; min-width: 0; }

/* Prices always Outfit */
.woocommerce-checkout .woocommerce-Price-amount { font-family: var(--fb); }

/* Shipping methods — card-style with inline delivery dates */
/* HIDE Delivery label */
.woocommerce-checkout .woocommerce-shipping-totals th { display: none !important;
  font-family: var(--fb); font-size: 11px; font-weight: 500; color: var(--ink);
  text-transform: uppercase; letter-spacing: 0.5px; 
}
.woocommerce-checkout .woocommerce-shipping-totals td { padding: 0; border-bottom: none; }
.woocommerce-checkout .woocommerce-shipping-methods {
  list-style: none; margin: 0; padding: 0;
}
.woocommerce-checkout .woocommerce-shipping-methods li {
  font-family: var(--fb); font-size: 13px; color: var(--ink);
  padding: 12px 14px; border: 1px solid var(--bd); margin-bottom: -1px;
  background: var(--card); transition: border-color 0.22s cubic-bezier(0.32,0.72,0,1), background 0.22s cubic-bezier(0.32,0.72,0,1);
}
.woocommerce-checkout .woocommerce-shipping-methods li:has(input:checked) {
  border-color: var(--ink); z-index: 1; position: relative; background: var(--bg);
}
.woocommerce-checkout .woocommerce-shipping-methods label {
  font-family: var(--fb); font-size: 13px; color: var(--ink);
  cursor: pointer; display: flex; align-items: center; gap: 10px;
  text-transform: none; letter-spacing: 0; font-weight: 400;
  margin: 0; padding: 0; line-height: 1.3;
}
.woocommerce-checkout .woocommerce-shipping-methods input[type="radio"] {
  accent-color: var(--ink); width: 16px; height: 16px; min-width: 16px; margin: 0; flex-shrink: 0;
}
/* Inline delivery date appended to shipping label */
.tfw-ship-date {
  display: block; font-size: 11px; font-weight: 300; color: var(--ink); margin-top: 2px;
}

/* Hide VAT text in total — UK B2C, all prices inc VAT, this text is noise */
.woocommerce-checkout .includes_tax,
.woocommerce-checkout .tax_label,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total small {
  display: none !important;
}

/* Total row — bold, clean */
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
  font-family: var(--fb); font-size: 18px; font-weight: 600; color: var(--ink);
  white-space: nowrap;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total th {
  font-family: var(--fb); font-size: 14px; font-weight: 600; color: var(--ink);
  text-transform: uppercase; letter-spacing: 0.5px;
}

/* Free shipping nudge */
/* Sidebar delivery estimate */
.tfw-co-sidebar-delivery {
  border-top: 1px solid var(--bd); margin-top: 12px; padding-top: 12px;
}
.tfw-co-sidebar-delivery-row {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--fb); font-size: 12px; color: var(--ink); padding: 4px 0;
}
.tfw-co-sidebar-delivery-row .tfw-co-delivery-date { font-weight: 500; font-size: 12px; }
.tfw-co-sidebar-cutoff {
  font-family: var(--fb); font-size: 11px; color: var(--ink); margin-top: 4px; font-weight: 300;
}

.tfw-co-ship-nudge { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--bd); }
.tfw-co-ship-bar { height: 3px; background: var(--bd); overflow: hidden; margin-bottom: 8px; }
.tfw-co-ship-fill { height: 100%; background: var(--gold); transition: width 0.5s cubic-bezier(0.34,1.56,0.64,1); }
.tfw-co-ship-text {
  font-family: var(--fb); font-size: 12px; color: var(--ink); text-align: center;
}
.tfw-co-ship-text strong { font-weight: 600; }
.tfw-co-ship-nudge--done .tfw-co-ship-text {
  display: flex; align-items: center; justify-content: center; gap: 6px; font-weight: 500;
}

/* Payment icons — mobile-first */
.tfw-co-pay-icons {
  display: flex; align-items: center; justify-content: center;
  gap: 6px; padding: 12px 16px; border-top: 1px solid var(--bd); flex-wrap: wrap;
}
.tfw-co-pay-icons img { height: 18px; width: auto; flex-shrink: 1; min-width: 0; }
@media (min-width: 769px) {
  .tfw-co-pay-icons { gap: 10px; padding: 14px 20px; }
  .tfw-co-pay-icons img { height: 22px; }
}

/* Trust signals */
.tfw-co-trust {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--bd);
}
.tfw-co-trust-item {
  display: flex; align-items: center; gap: 8px; padding: 12px 16px;
  font-family: var(--fb); font-size: 11px; font-weight: 400; color: var(--ink);
  border-bottom: 1px solid var(--bd);
}
.tfw-co-trust-item:nth-child(odd) { border-right: 1px solid var(--bd); }
.tfw-co-trust-item svg { flex-shrink: 0; }


/* ═══ VALIDATION ═══ */
.woocommerce-checkout .woocommerce-invalid .input-text,
.woocommerce-checkout .woocommerce-invalid input { border-color: #C0392B; }
.woocommerce-checkout .form-row.woocommerce-invalid label { color: #C0392B; }
.woocommerce-checkout .woocommerce-error { border-left-color: #C0392B; }

/* Notices — hide "added to cart" messages on checkout, only show errors */
.woocommerce-checkout .woocommerce-notices-wrapper { max-width: 100%; padding: 0; }
.woocommerce-checkout .woocommerce-message { display: none; }
.woocommerce-checkout .woocommerce-info { display: none; }
.woocommerce-checkout .woocommerce-error {
  font-family: var(--fb); font-size: 13px; color: var(--ink);
  background: var(--card); border: 1px solid var(--bd); border-left: 3px solid #C0392B;
  padding: 14px 18px; margin: 0 0 12px; list-style: none;
}

/* Terms */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  font-family: var(--fb); font-size: 11px; color: var(--ink); padding: 0 0 8px; font-weight: 300;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
  color: var(--ink); font-weight: 500; text-decoration: underline; text-underline-offset: 2px;
}
.woocommerce-checkout .woocommerce-privacy-policy-text p {
  font-family: var(--fb); font-size: 11px; color: var(--ink); line-height: 1.6; font-weight: 300;
}


/* ═══ RESPONSIVE ═══ */
@media (min-width: 769px) {
  .woocommerce-checkout .woocommerce { padding: 32px 48px 60px; }
}

/* ── Distraction-free checkout header ── */
.nav--checkout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  background: var(--card);
  border-bottom: 1px solid var(--bd);
}

.nav--checkout .nav-logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.nav-checkout-back {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 400;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: 0.3px;
  transition: color 0.22s cubic-bezier(0.32,0.72,0,1);
}

.nav-checkout-back:hover {
  color: var(--muted);
}

.nav-checkout-secure {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

/* Hide promo bar on checkout */
.woocommerce-checkout .promo { display: none; }

/* Hide full footer on checkout — show minimal version */
.woocommerce-checkout .footer .footer-top { display: none; }
.woocommerce-checkout .footer .footer-email { display: none; }
.woocommerce-checkout .footer .footer-trustpilot { display: none; }
.woocommerce-checkout .footer { padding: 0; }
.woocommerce-checkout .footer .footer-bot {
  padding: 20px 24px;
}

@media (min-width: 769px) {
  .nav--checkout {
    padding: 18px 48px;
  }
}

/* ── Two-column billing fields on desktop ── */
@media (min-width: 769px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
  }
}


/* ── Main checkout wrapper ── */
.woocommerce-checkout {
  background: var(--bg);
}

.woocommerce-checkout .woocommerce {
  max-width: 1120px;
  margin: 0 auto;
  padding: 24px 20px 60px;
}


/* ── EXPRESS CHECKOUT ── */
.tfw-express-checkout {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 20px;
}

.tfw-express-checkout__inner {
  background: var(--card);
  border: 1px solid var(--bd);
  padding: 20px;
  margin-bottom: 24px;
}

.tfw-express-label {
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 12px;
  text-align: center;
}

/* If no express buttons render, hide the section */
.tfw-express-checkout__inner:not(:has(.wc-stripe-payment-request-button-wrapper, #ppcp-hosted-fields, [id*="payment-request"], [class*="gpay"], [class*="apple-pay"])) {
  display: none;
}

/* Centre express pay buttons */
.tfw-express-checkout__inner .wc-stripe-payment-request-button-wrapper,
.tfw-express-checkout__inner #wc-stripe-payment-request-wrapper,
.tfw-express-checkout__inner #ppcp-hosted-fields,
.tfw-express-checkout__inner [id*="payment-request"] {
  max-width: 400px;
  margin: 0 auto;
}


/* ── Two-column checkout layout ── */
.tfw-checkout-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

@media (min-width: 769px) {
  .tfw-checkout-layout {
    grid-template-columns: 1.2fr 1fr;
    gap: 48px;
    align-items: start;
  }
}


/* ── SIDEBAR ── */
.tfw-checkout-sidebar {
  background: var(--card);
  border: 1px solid var(--bd);
  height: fit-content;
}

@media (min-width: 769px) {
  .tfw-checkout-sidebar {
    position: sticky;
    top: 80px;
  }

  /* On desktop, put sidebar first visually (right column) */
  .tfw-checkout-fields { order: 1; }
  .tfw-checkout-sidebar { order: 2; }
}

/* Mobile-first: sidebar above form */
.tfw-checkout-sidebar { margin-bottom: 24px; }
.tfw-checkout-fields { order: 2; }
.tfw-checkout-sidebar { order: 1; }
@media (min-width: 769px) {
  .tfw-checkout-sidebar { margin-bottom: 0; }
}

.tfw-order-details {
  padding: 0 24px 24px;
}


/* ── Mobile toggle button ── */
.tfw-order-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 24px;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--bd);
  cursor: pointer;
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  -webkit-appearance: none;
  appearance: none;
}

.tfw-order-toggle__left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tfw-order-toggle__left svg {
  flex-shrink: 0;
}

.tfw-order-toggle__right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tfw-order-toggle__total {
  font-family: var(--fb);
  font-weight: 600;
  font-size: 14px;
}

.tfw-order-toggle__chevron {
  transition: transform 0.2s var(--ease-out);
}

.tfw-order-toggle[aria-expanded="true"] .tfw-order-toggle__chevron {
  transform: rotate(180deg);
}

/* Desktop: hide toggle, always show details */
@media (min-width: 769px) {
  .tfw-order-toggle { display: none; }
  .tfw-order-details { display: block !important; }
}

/* Mobile-first: order details collapsed, express checkout tight */
.tfw-express-checkout__inner { padding: 16px; }
@media (min-width: 769px) {
  .tfw-express-checkout__inner { padding: 20px; }
}


/* ── Section titles ── */
.woocommerce-checkout h3,
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3,
.woocommerce-checkout #order_review_heading {
  font-family: var(--fd);
  font-size: 26px;
  font-weight: 300;
  color: var(--ink);
  margin: 0 0 20px;
  padding: 0;
  line-height: 1.2;
}

.woocommerce-checkout #order_review_heading {
  margin-top: 0;
  padding-top: 0;
}

/* Order heading with edit link */
.tfw-order-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding-top: 24px;
}

.tfw-edit-cart {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 400;
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  letter-spacing: 0.3px;
  transition: color 0.22s cubic-bezier(0.32,0.72,0,1);
}

.tfw-edit-cart:hover {
  color: var(--muted);
}


/* ── Legacy col2-set ── */
.woocommerce-checkout .col2-set {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}


/* ── Form rows ── */
.woocommerce-checkout .form-row {
  margin: 0 0 16px;
  padding: 0;
  position: relative;
}

.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  width: 100%;
  float: none;
}

.woocommerce-checkout .form-row::after {
  display: none;
}


/* ── Labels ── */
.woocommerce-checkout label {
  display: block;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 6px;
}

.woocommerce-checkout label .required {
  color: var(--ink);
  font-weight: 400;
}

.woocommerce-checkout label .optional {
  font-size: 10px;
  font-weight: 300;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink);
}


/* ── Inputs ── */
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="url"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--bd);
  background: var(--card);
  font-family: var(--fb);
  font-size: 16px;
  color: var(--ink);
  outline: none;
  transition: border-color 0.22s cubic-bezier(0.34,1.56,0.64,1);
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}

.woocommerce-checkout .input-text:focus,
.woocommerce-checkout input:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus {
  border-color: var(--ink);
}

.woocommerce-checkout textarea {
  min-height: 80px;
  resize: vertical;
}

.woocommerce-checkout ::placeholder {
  color: var(--muted);
  font-weight: 300;
}


/* ── Select2 overrides ── */
.woocommerce-checkout .select2-container--default .select2-selection--single {
  height: auto;
  min-height: 44px;
  display: flex;
  align-items: center;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  font-family: var(--fb);
  font-size: 14px;
  color: var(--ink);
  padding: 0;
  line-height: normal;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  right: 8px;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: var(--ink) transparent transparent transparent;
}

.woocommerce-checkout .select2-container--open .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent var(--ink) transparent;
}

/* Select2 dropdown */
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
  background: var(--ink);
  color: var(--white);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid var(--bd);
  font-family: var(--fb);
  font-size: 14px;
  padding: 8px 12px;
  outline: none;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--ink);
}

.select2-dropdown {
  border: 1px solid var(--bd);
  border-radius: 0;
}

.select2-container--default .select2-results__option {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  padding: 8px 12px;
}


/* ── Checkbox + radio ── */
.woocommerce-checkout input[type="checkbox"],
.woocommerce-checkout input[type="radio"] {
  width: 20px;
  height: 20px;
  min-width: 20px;
  border: 1px solid var(--bd);
  background: var(--card);
  margin-right: 10px;
  vertical-align: middle;
  cursor: pointer;
  accent-color: var(--ink);
  /* Expand touch target beyond visual bounds */
  padding: 0;
  position: relative;
}
/* Invisible expanded tap area for mobile (44px minimum) */
.woocommerce-checkout input[type="checkbox"]::before,
.woocommerce-checkout input[type="radio"]::before {
  content: "";
  position: absolute;
  inset: -12px;
}


/* ── "Ship to different address" toggle ── */
.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  margin-bottom: 16px;
}


/* ── Create account checkbox ── */
.woocommerce-checkout .woocommerce-account-fields {
  margin-top: 16px;
}

.woocommerce-checkout .create-account p {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  margin-bottom: 12px;
}


/* ── Validation errors ── */
.woocommerce-checkout .woocommerce-invalid .input-text,
.woocommerce-checkout .woocommerce-invalid input {
  border-color: #C0392B;
}

.woocommerce-checkout .form-row.woocommerce-invalid label {
  color: #C0392B;
}

.woocommerce-checkout .woocommerce-error {
  border-left-color: #C0392B;
}

.woocommerce-checkout .woocommerce-error li {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  padding: 4px 0;
}


/* ── ORDER REVIEW TABLE ── */
.woocommerce-checkout .woocommerce-checkout-review-order {
  margin-top: 0;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 0;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 400;
  color: var(--ink);
  padding: 12px 0;
  border-bottom: 1px solid var(--bd);
  background: transparent;
  text-align: left;
  vertical-align: middle;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--ink);
}

.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child {
  text-align: right;
}


/* ── Product thumbnail + name row in review ── */
.tfw-checkout-product-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.tfw-checkout-product-img {
  flex: 0 0 48px;
  width: 48px;
  height: 60px;
  overflow: hidden;
  background: var(--bg2);
}

.tfw-checkout-product-img img.tfw-checkout-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  mix-blend-mode: multiply;
}

.tfw-checkout-product-name {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  flex: 1;
  min-width: 0;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name .product-quantity {
  font-weight: 500;
  color: var(--ink);
}


/* Variation data in review */
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl.variation {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 6px;
  margin-top: 4px;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl.variation dt,
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl.variation dd {
  font-family: var(--fb);
  font-size: 11px;
  color: var(--ink);
  margin: 0;
  font-weight: 400;
}


/* Totals rows */
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th {
  font-size: 13px;
  font-weight: 400;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  font-weight: 500;
}

/* Order total row */
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
  font-size: 16px;
  font-weight: 600;
  padding: 16px 0;
  border-bottom: 2px solid var(--ink);
}

/* Prices always Outfit */
.woocommerce-checkout .woocommerce-Price-amount,
.woocommerce-cart .woocommerce-Price-amount {
  font-family: var(--fb);
}


/* ── DELIVERY ESTIMATE ── */
.tfw-checkout-delivery {
  padding: 20px 0 0;
}

.tfw-checkout-delivery__title {
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 10px;
}

.tfw-checkout-delivery__options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tfw-checkout-delivery__option {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.tfw-checkout-delivery__method {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 400;
  color: var(--ink);
}

.tfw-checkout-delivery__date {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
}

.tfw-checkout-delivery__cutoff {
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 400;
  color: var(--ink);
  margin-top: 8px;
  padding: 8px 12px;
  background: var(--bg);
  text-align: center;
}


/* ── FREE SHIPPING NUDGE ── */
.tfw-checkout-shipping-nudge {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--bd);
}

.tfw-checkout-shipping-nudge__bar {
  height: 3px;
  background: var(--bd);
  overflow: hidden;
  margin-bottom: 8px;
}

.tfw-checkout-shipping-nudge__fill {
  height: 100%;
  background: var(--gold);
  transition: width 0.5s cubic-bezier(0.34,1.56,0.64,1);
}

.tfw-checkout-shipping-nudge__text {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 400;
  color: var(--ink);
  text-align: center;
}

.tfw-checkout-shipping-nudge__text strong {
  font-weight: 600;
}

.tfw-checkout-shipping-nudge--unlocked .tfw-checkout-shipping-nudge__text {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-weight: 500;
}

.tfw-checkout-shipping-nudge--unlocked .tfw-checkout-shipping-nudge__text svg {
  flex-shrink: 0;
  color: var(--ink);
}


/* ── CHECKOUT PAYMENT ICONS — mobile-first ── */
.tfw-checkout-payments {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 16px;
  border-top: 1px solid var(--bd);
  flex-wrap: wrap;
}

.tfw-checkout-payments img {
  height: 20px;
  width: auto;
  flex-shrink: 1;
  min-width: 0;
}

@media (min-width: 769px) {
  .tfw-checkout-payments {
    gap: 10px;
    padding: 16px 24px;
  }
  .tfw-checkout-payments img {
    height: 24px;
  }
}


/* ── TRUST SIGNALS ── */
.tfw-checkout-trust {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--bd);
}

.tfw-checkout-trust__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.3px;
  color: var(--ink);
  border-bottom: 1px solid var(--bd);
}

.tfw-checkout-trust__item:nth-child(odd) {
  border-right: 1px solid var(--bd);
}

.tfw-checkout-trust__item svg {
  flex-shrink: 0;
}


/* ── PAYMENT METHODS ── */
/* ============================================================
   PAYMENT SECTION — Shopify-style accordion
   Force override gateway defaults with !important
   ============================================================ */

.woocommerce-checkout #payment {
  background: transparent !important;
  border: none !important;
  margin-top: 24px;
  box-shadow: none !important;
}

/* ── Payment method list ── */
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment .wc_payment_methods {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Each payment method = accordion card ── */
.woocommerce-checkout #payment ul.payment_methods li,
.woocommerce-checkout #payment .wc_payment_methods li {
  border: 1px solid var(--bd) !important;
  padding: 0 !important;
  margin: 0 0 -1px 0 !important;
  position: relative;
  transition: border-color 0.22s cubic-bezier(0.32,0.72,0,1), background 0.22s cubic-bezier(0.32,0.72,0,1);
  background: var(--card) !important;
  list-style: none !important;
}

/* ── Active/selected method ── */
.woocommerce-checkout #payment ul.payment_methods li:has(input[type="radio"]:checked) {
  border-color: var(--ink) !important;
  z-index: 2;
  background: var(--bg) !important;
}

.woocommerce-checkout #payment ul.payment_methods li.tfw-payment-active {
  border-color: var(--ink) !important;
  z-index: 2;
  background: var(--bg) !important;
}

/* ── Labels ── */
.woocommerce-checkout #payment ul.payment_methods li label,
.woocommerce-checkout #payment .wc_payment_methods li label {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 18px 20px !important;
  cursor: pointer !important;
  font-family: var(--fb) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
}

/* Payment method icons — pushed right */
.woocommerce-checkout #payment ul.payment_methods li label img,
.woocommerce-checkout #payment .wc_payment_methods li label img {
  max-height: 22px !important;
  margin-left: auto !important;
  width: auto !important;
}

/* ── Custom radio buttons ── */
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"],
.woocommerce-checkout #payment .wc_payment_methods li input[type="radio"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  max-width: 20px !important;
  border: 2px solid var(--bd) !important;
  border-radius: 50% !important;
  background: var(--card) !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0;
  cursor: pointer;
  position: relative;
  transition: border-color 0.22s cubic-bezier(0.34,1.56,0.64,1);
  accent-color: var(--ink);
  outline: none !important;
  box-shadow: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]:checked,
.woocommerce-checkout #payment .wc_payment_methods li input[type="radio"]:checked {
  border-color: var(--ink) !important;
  background: var(--card) !important;
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]:checked::after,
.woocommerce-checkout #payment .wc_payment_methods li input[type="radio"]:checked::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  background: var(--ink) !important;
}

/* ── Payment method body (card form, etc.) ── */
.woocommerce-checkout #payment .payment_methods .payment_box,
.woocommerce-checkout #payment .wc_payment_methods .payment_box {
  padding: 16px 20px 20px !important;
  font-family: var(--fb) !important;
  font-size: 13px !important;
  font-weight: 300;
  color: var(--ink) !important;
  background: transparent !important;
  line-height: 1.6;
  border-top: 1px solid var(--bd);
  margin: 0 !important;
}

.woocommerce-checkout #payment .payment_methods .payment_box p {
  margin: 0 0 8px !important;
  font-size: 12px !important;
}

.woocommerce-checkout #payment .payment_methods .payment_box::before {
  display: none !important;
}

/* Card form: fieldset + Stripe elements */
.woocommerce-checkout #payment .payment_box fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.woocommerce-checkout #payment .payment_box fieldset legend {
  display: none !important;
}

.woocommerce-checkout #payment .payment_box label {
  font-family: var(--fb) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  padding: 0 !important;
  margin-bottom: 6px !important;
  display: block !important;
}

.woocommerce-checkout #payment .payment_box .form-row {
  margin-bottom: 14px !important;
  padding: 0 !important;
}

/* Stripe iframe containers */
.woocommerce-checkout #payment .payment_box .wc-stripe-elements-field,
.woocommerce-checkout #payment .payment_box .stripe-elements-field,
.woocommerce-checkout #payment .payment_box .StripeElement {
  padding: 14px !important;
  border: 1px solid var(--bd) !important;
  background: var(--card) !important;
  transition: border-color 0.22s cubic-bezier(0.34,1.56,0.64,1);
  border-radius: 0 !important;
}

.woocommerce-checkout #payment .payment_box .wc-stripe-elements-field:focus,
.woocommerce-checkout #payment .payment_box .wc-stripe-elements-field.focused,
.woocommerce-checkout #payment .payment_box .StripeElement--focus {
  border-color: var(--ink) !important;
}

/* "Save payment" checkbox */
.woocommerce-checkout #payment .payment_box .woocommerce-SavedPaymentMethods-saveNew,
.woocommerce-checkout #payment .payment_box .wc-stripe-save-source,
.woocommerce-checkout #payment .payment_box p:has(input[type="checkbox"]) {
  display: flex !important;
  align-items: center !important;
  gap: 8px;
  font-family: var(--fb) !important;
  font-size: 12px !important;
  font-weight: 400;
  color: var(--ink) !important;
  margin-top: 8px !important;
}

.woocommerce-checkout #payment .payment_box input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  border: 1px solid var(--bd) !important;
  border-radius: 0 !important;
  accent-color: var(--ink) !important;
  margin: 0 !important;
  cursor: pointer;
}


/* ── Place Order ── */
.woocommerce-checkout #payment .place-order {
  padding: 24px 0 0 !important;
  background: transparent !important;
}

.woocommerce-checkout #payment #place_order {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px;
  width: 100% !important;
  padding: 20px 32px !important;
  background: var(--ink) !important;
  color: var(--white) !important;
  font-family: var(--fb) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  border: 2px solid var(--ink) !important;
  cursor: pointer;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  -webkit-appearance: none !important;
  appearance: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  line-height: 1 !important;
  min-height: 58px;
}

.woocommerce-checkout #payment #place_order:hover {
  background: transparent !important; color: var(--ink) !important; border: 1px solid var(--ink) !important;
}

.woocommerce-checkout #payment #place_order:active {
  transform: scale(0.97);
}

/* Lock icon + security note */
.woocommerce-checkout #payment .place-order::after {
  content: "Your payment is encrypted and secure";
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 400;
  color: var(--ink);
  text-align: center;
  margin-top: 14px;
  letter-spacing: 0.3px;
}


/* Terms and conditions */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  font-family: var(--fb);
  font-size: 11px;
  color: var(--ink);
  padding: 0 0 8px;
  font-weight: 300;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
  color: var(--ink);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.woocommerce-checkout .woocommerce-privacy-policy-text p {
  font-family: var(--fb);
  font-size: 11px;
  color: var(--ink);
  line-height: 1.6;
  font-weight: 300;
}


/* ── Login / Coupon toggles ── */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
  max-width: 1120px;
  margin: 0 auto 16px;
  padding: 0 20px;
}

.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  background: var(--card);
  border: 1px solid var(--bd);
  border-left: 3px solid var(--ink);
  padding: 14px 18px;
  margin: 0;
}

.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a {
  color: var(--ink);
  font-weight: 500;
  text-decoration: underline;
}

/* Checkout login form */
.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout .checkout_coupon {
  background: var(--card);
  border: 1px solid var(--bd);
  padding: 20px;
  margin-bottom: 24px;
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

.woocommerce-checkout .checkout_coupon .form-row {
  display: flex;
  gap: 0;
  margin: 0;
}

.woocommerce-checkout .checkout_coupon .form-row-first {
  flex: 1;
}

.woocommerce-checkout .checkout_coupon .form-row-last {
  flex: 0 0 auto;
}

.woocommerce-checkout .checkout_coupon .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  min-height: 44px;
  background: var(--ink);
  color: var(--white);
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  border: 2px solid var(--ink);
  cursor: pointer;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), color 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
}

.woocommerce-checkout .checkout_coupon .button:active {
  transform: scale(0.97);
}

.woocommerce-checkout .checkout_coupon .button:hover {
  background: transparent;
  color: var(--ink);
}

/* Checkout login form button */
.woocommerce-checkout .woocommerce-form-login .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  background: var(--ink);
  color: var(--white);
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  border: 2px solid var(--ink);
  cursor: pointer;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), color 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  border-radius: 0;
}

.woocommerce-checkout .woocommerce-form-login .button:active {
  transform: scale(0.97);
}

.woocommerce-checkout .woocommerce-form-login .button:hover {
  background: transparent;
  color: var(--ink);
}


/* ============================================================
   SHARED: WooCommerce table overrides
   (shipping calculator, order details, etc.)
   ============================================================ */

.woocommerce table.shop_table {
  border-collapse: collapse;
  width: 100%;
  border: none;
  border-radius: 0;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  padding: 12px 0;
  border-bottom: 1px solid var(--bd);
  background: transparent;
  text-align: left;
}

.woocommerce table.shop_table thead th {
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-bottom: 2px solid var(--ink);
}

/* Shipping calculator inside cart totals */
.woocommerce .shipping-calculator-button {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 500;
  color: var(--ink);
  text-decoration: underline;
  cursor: pointer;
}

.woocommerce .shipping-calculator-form {
  margin-top: 12px;
}

.woocommerce .shipping-calculator-form .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  min-height: 44px;
  background: var(--ink);
  color: var(--white);
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  border: 2px solid var(--ink);
  cursor: pointer;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), color 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  border-radius: 0;
  margin-top: 8px;
}

.woocommerce .shipping-calculator-form .button:active {
  transform: scale(0.97);
}

.woocommerce .shipping-calculator-form .button:hover {
  background: transparent;
  color: var(--ink);
}

.woocommerce .shipping-calculator-form select,
.woocommerce .shipping-calculator-form input {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--bd);
  background: var(--card);
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
  margin-bottom: 8px;
  border-radius: 0;
}


/* ============================================================
   ORDER RECEIVED / THANK YOU PAGE
   ============================================================ */

.woocommerce-order-received .tfw-wc-main {
  background: var(--bg);
}

.woocommerce-order-received .woocommerce {
  max-width: 680px;
  margin: 0 auto;
  padding: 40px 20px 60px;
}

.woocommerce-order-received .woocommerce-thankyou-order-received {
  font-family: var(--fd);
  font-size: 28px;
  font-weight: 300;
  color: var(--ink);
  text-align: center;
  margin-bottom: 32px;
}

.woocommerce-order-received .woocommerce-order-overview {
  list-style: none;
  padding: 20px;
  margin: 0 0 32px;
  background: var(--card);
  border: 1px solid var(--bd);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.woocommerce-order-received .woocommerce-order-overview li {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--ink);
}

.woocommerce-order-received .woocommerce-order-overview li strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-top: 2px;
}


/* ============================================================
   MY ACCOUNT PAGES
   ============================================================ */

.woocommerce-account .tfw-wc-main {
  background: var(--bg);
}

.woocommerce-account .woocommerce {
  max-width: 900px;
  margin: 0 auto;
  padding: 32px 20px 60px;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  margin-bottom: 32px;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 0;
  margin: 0;
  border-bottom: 2px solid var(--ink);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 12px 20px;
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--bg2);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--ink);
  color: var(--white);
}

.woocommerce-account .woocommerce-MyAccount-content {
  font-family: var(--fb);
  font-size: 14px;
  color: var(--ink);
  line-height: 1.7;
}

.woocommerce-account .woocommerce-MyAccount-content a {
  color: var(--ink);
  font-weight: 500;
  text-decoration: underline;
}

.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-Button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  min-height: 44px;
  background: var(--ink);
  color: var(--white);
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid var(--ink);
  cursor: pointer;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), color 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  border-radius: 0;
}

.woocommerce-account .woocommerce-MyAccount-content .button:active,
.woocommerce-account .woocommerce-Button:active {
  transform: scale(0.97);
}

.woocommerce-account .woocommerce-MyAccount-content .button:hover,
.woocommerce-account .woocommerce-Button:hover {
  background: transparent;
  color: var(--ink);
}

/* Account forms */
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
  max-width: 420px;
  margin: 0 auto;
  padding: 0;
}

.woocommerce-account .woocommerce-form label {
  display: block;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 6px;
}

.woocommerce-account .woocommerce-form input[type="text"],
.woocommerce-account .woocommerce-form input[type="email"],
.woocommerce-account .woocommerce-form input[type="password"] {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--bd);
  background: var(--card);
  font-family: var(--fb);
  font-size: 14px;
  color: var(--ink);
  border-radius: 0;
  outline: none;
  margin-bottom: 16px;
}

.woocommerce-account .woocommerce-form input:focus {
  border-color: var(--ink);
}

.woocommerce-account .woocommerce-form .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  background: var(--ink);
  color: var(--white);
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  border: 2px solid var(--ink);
  cursor: pointer;
  transition: background 0.22s cubic-bezier(0.32,0.72,0,1), color 0.22s cubic-bezier(0.32,0.72,0,1), transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
  border-radius: 0;
}

.woocommerce-account .woocommerce-form .button:active {
  transform: scale(0.97);
}

.woocommerce-account .woocommerce-form .button:hover {
  background: transparent;
  color: var(--ink);
}

/* ── TFW Dashboard — Baymard: simple, orders-first ── */
.tfw-dashboard__greeting {
  font-family: var(--fd);
  font-size: clamp(24px, 4vw, 32px);
  font-weight: 300;
  color: var(--ink);
  margin-bottom: 28px;
}

.tfw-dashboard__actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: 40px;
}

.tfw-dashboard__card {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  background: var(--white);
  border: 1px solid var(--bd);
  text-decoration: none;
  color: var(--ink);
  text-align: left;
  transition: all 0.22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-dashboard__card:hover {
  border-color: var(--ink);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(28,28,26,0.06);
}
.tfw-dashboard__card svg {
  stroke: var(--ink);
  flex-shrink: 0;
}
.tfw-dashboard__card-title {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}
.tfw-dashboard__card-desc {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 300;
}

.tfw-dashboard__section-title {
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--bd);
}

.tfw-dashboard__order {
  background: var(--white);
  border: 1px solid var(--bd);
  padding: 20px;
  margin-bottom: 12px;
}

.tfw-dashboard__order-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.tfw-dashboard__order-num {
  font-family: var(--fb);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  margin-right: 10px;
}
.tfw-dashboard__order-date {
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 300;
  color: var(--ink);
}
.tfw-dashboard__order-status {
  font-family: var(--fb);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 4px 10px;
  background: var(--bg2);
  color: var(--ink);
}
.tfw-dashboard__order-status--completed { background: var(--bg2); }
.tfw-dashboard__order-status--processing { background: rgba(193,127,36,0.1); color: var(--gold); }

.tfw-dashboard__order-items {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.tfw-dashboard__order-item {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tfw-dashboard__order-item img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border: 1px solid var(--bd);
  flex-shrink: 0;
}
.tfw-dashboard__item-name {
  display: block;
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 400;
  color: var(--ink);
}
.tfw-dashboard__item-qty {
  display: block;
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 300;
  color: var(--ink);
}

.tfw-dashboard__order-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.tfw-dashboard__order-link {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 400;
  color: var(--ink);
  text-decoration: underline;
}
.tfw-dashboard__reorder-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 12px 20px;
  min-height: 44px;
  background: var(--ink);
  color: var(--white);
  font-family: var(--fb);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--ink);
  transition: all 0.22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-dashboard__reorder-btn:hover {
  background: transparent;
  color: var(--ink);
}

@media (min-width: 769px) {
  .tfw-dashboard__actions {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  .tfw-dashboard__card {
    flex-direction: column;
    padding: 28px 16px;
    text-align: center;
    gap: 8px;
  }
  .tfw-dashboard__order-items {
    flex-direction: row;
    gap: 12px;
  }
  .tfw-dashboard__order-actions {
    flex-direction: row;
    align-items: center;
    gap: 12px;
  }
  .tfw-dashboard__reorder-btn {
    width: auto;
  }
}


/* ============================================================
   RESPONSIVE — DESKTOP (768px+)
   ============================================================ */

@media (min-width: 768px) {

  .tfw-cart {
    max-width: 640px;
    padding: 48px 32px 80px;
  }

  .tfw-cart__title {
    font-size: 38px;
  }

  .tfw-cart-item__img {
    width: 110px;
    flex: 0 0 110px;
  }

  .tfw-cart-item__name {
    font-size: 17px;
  }

  /* Checkout responsive */
  .woocommerce-checkout .woocommerce {
    padding: 32px 32px 80px;
  }

  .tfw-express-checkout {
    padding: 0 32px;
  }

  .woocommerce-checkout .col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 32px;
  }

  .woocommerce-checkout .form-row-first {
    width: 48%;
    float: left;
  }

  .woocommerce-checkout .form-row-last {
    width: 48%;
    float: right;
  }

  /* Coupon form side by side fix */
  .woocommerce-checkout .checkout_coupon .form-row {
    float: none;
    width: 100%;
  }

  /* Order received grid */
  .woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: repeat(4, 1fr);
  }
}


/* ============================================================
   RESPONSIVE — LARGE DESKTOP (1024px+)
   ============================================================ */

@media (min-width: 1024px) {

  .tfw-cart {
    max-width: 700px;
    padding: 48px 40px 80px;
  }

  .woocommerce-checkout .woocommerce {
    padding: 32px 48px 80px;
  }

  .tfw-express-checkout {
    padding: 0 48px;
  }
}


/* ============================================================
   KLARNA / STRIPE / PAYMENT GATEWAY OVERRIDES
   Keep gateway UI consistent with TFW design.
   ============================================================ */

/* Stripe elements */
.woocommerce-checkout #payment .stripe-elements-field,
.woocommerce-checkout #payment .wc-stripe-elements-field {
  padding: 12px 14px;
  border: 1px solid var(--bd);
  background: var(--card);
  transition: border-color 0.22s cubic-bezier(0.34,1.56,0.64,1);
}

.woocommerce-checkout #payment .stripe-elements-field:focus,
.woocommerce-checkout #payment .wc-stripe-elements-field.focused {
  border-color: var(--ink);
}

/* PayPal buttons container */
.woocommerce-checkout #payment .payment_box #paypal-button-container {
  margin-top: 8px;
}

/* Klarna messaging */
.woocommerce-checkout #payment .payment_box klarna-placement {
  margin-top: 8px;
}

/* Generic gateway iframe overrides */
.woocommerce-checkout #payment .payment_box iframe {
  max-width: 100%;
}

/* ============================================================
   CHECKOUT GATEWAY OVERRIDES
   Clean up third-party payment button styling
   ============================================================ */

/* Klarna promo banner — match site palette */
.woocommerce-checkout .klarna-banner,
.woocommerce-checkout [class*="klarna-top"],
.woocommerce-checkout .ppcp-messages,
#ppc-button-ppcp-gateway { max-width: 100%; }

/* GPay / Apple Pay / PayPal buttons in express section */
.tfw-express-checkout__inner .wc-stripe-payment-request-button-wrapper,
.tfw-express-checkout__inner #wc-stripe-payment-request-wrapper,
.tfw-express-checkout__inner #ppcp-hosted-fields,
.tfw-express-checkout__inner .ppcp-vaulted-paypal,
.tfw-express-checkout__inner #ppc-button-ppcp-gateway {
  max-width: 400px;
  margin: 0 auto 8px;
}

/* Buttons that render inside #payment (fallback) */
.woocommerce-checkout #wc-stripe-payment-request-wrapper,
.woocommerce-checkout .wc-stripe-payment-request-button-wrapper,
.woocommerce-checkout #ppcp-hosted-fields,
.woocommerce-checkout .ppcp-vaulted-paypal,
.woocommerce-checkout #ppc-button-ppcp-gateway {
  max-width: 100%;
  margin: 0 auto 12px;
}

/* "or" separator */
.woocommerce-checkout #payment-request-separator,
.woocommerce-checkout .wc-stripe-payment-request-separator,
.woocommerce-checkout .ppcp-separator {
  font-family: var(--fb);
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--ink);
  text-align: center;
  margin: 12px 0;
}

/* Two-column billing on desktop */
@media (min-width: 769px) {
  .woocommerce-checkout .col2-set {
    grid-template-columns: 1fr 1fr;
    gap: 0 32px;
  }
}


/* ============================================================
   SHIPPING METHOD OVERRIDES (appended last for specificity)
   ============================================================ */
.woocommerce-checkout .woocommerce-shipping-totals th { display: none !important; }
.woocommerce-checkout .woocommerce-shipping-totals td { padding: 0 !important; border-bottom: none !important; display: block !important; width: 100% !important; }
.woocommerce-checkout .woocommerce-shipping-totals { border-bottom: none !important; }
.woocommerce-checkout .woocommerce-shipping-methods { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.woocommerce-checkout .woocommerce-shipping-methods li {
  padding: 14px 16px !important; border: 1px solid var(--bd) !important; margin-bottom: -1px !important;
  background: var(--card) !important; font-family: var(--fb) !important; font-size: 13px !important; color: var(--ink) !important;
}
.woocommerce-checkout .woocommerce-shipping-methods li:has(input:checked) {
  border-color: var(--ink) !important; z-index: 1; position: relative; background: var(--bg) !important;
}
.woocommerce-checkout .woocommerce-shipping-methods label {
  display: grid !important; grid-template-columns: 20px 1fr !important; gap: 0 10px !important;
  align-items: start !important; font-family: var(--fb) !important; font-size: 13px !important;
  color: var(--ink) !important; cursor: pointer; text-transform: none !important;
  letter-spacing: 0 !important; font-weight: 400 !important; margin: 0 !important;
  padding: 0 !important; line-height: 1.4 !important;
}
.woocommerce-checkout .woocommerce-shipping-methods input[type="radio"] {
  accent-color: var(--ink); width: 16px !important; height: 16px !important;
  min-width: 16px; margin: 2px 0 0 !important; grid-row: 1 / 3;
}
.tfw-ship-date {
  grid-column: 2; font-family: var(--fb); font-size: 11px; font-weight: 300;
  color: var(--ink); margin-top: 1px;
}

/* Force shipping table to span full width of sidebar */
.woocommerce-checkout .woocommerce-shipping-totals {
  display: block !important; width: 100% !important;
}
.woocommerce-checkout .woocommerce-shipping-totals tbody,
.woocommerce-checkout .woocommerce-shipping-totals tr {
  display: block !important; width: 100% !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td {
  display: block !important; width: 100% !important; padding: 0 !important;
}
/* Remove table margins that constrain the shipping rows */
.woocommerce-checkout .woocommerce-shipping-methods li {
  margin-left: -1px !important; margin-right: -1px !important;
}

/* Klaviyo newsletter checkbox — tighter, inline */
.woocommerce-checkout .klaviyo_checkbox_wrapper,
.woocommerce-checkout .kl-checkbox-wrapper,
.woocommerce-checkout p:has(> input#kl_newsletter_checkbox),
.woocommerce-checkout .kl_checkout_email_optin {
  display: flex !important; align-items: flex-start !important; gap: 10px !important;
  font-family: var(--fb) !important; font-size: 12px !important; font-weight: 300 !important;
  color: var(--ink) !important; margin: 8px 0 !important; padding: 0 !important;
  text-transform: none !important; letter-spacing: 0 !important; line-height: 1.4 !important;
}
.woocommerce-checkout .klaviyo_checkbox_wrapper label,
.woocommerce-checkout .kl-checkbox-wrapper label,
.woocommerce-checkout .kl_checkout_email_optin label {
  display: flex !important; align-items: flex-start !important; gap: 10px !important;
  font-size: 12px !important; font-weight: 300 !important; text-transform: none !important;
  letter-spacing: 0 !important; cursor: pointer !important; margin: 0 !important; padding: 0 !important;
}
.woocommerce-checkout #kl_newsletter_checkbox,
.woocommerce-checkout .klaviyo_checkbox_wrapper input[type="checkbox"],
.woocommerce-checkout .kl_checkout_email_optin input[type="checkbox"] {
  width: 18px !important; height: 18px !important; min-width: 18px !important;
  margin: 1px 0 0 !important; flex-shrink: 0 !important; accent-color: var(--ink) !important;
  border: 1px solid var(--bd) !important; border-radius: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════
   PAYMENT OVERRIDES — extracted from functions.php wp_footer
   Loads LAST to beat all gateway CSS
   ═══════════════════════════════════════════════════════════════ */

/* Reset the #payment wrapper */
#payment { background:transparent!important; border:none!important; box-shadow:none!important; border-radius:0!important; }
#payment ul.payment_methods { border:none!important; margin:0!important; padding:0!important; list-style:none!important; }

/* Each payment method = bordered card */
#payment ul.payment_methods li {
  border:1px solid var(--bd)!important; margin:0 0 -1px!important; padding:0!important;
  background:var(--card)!important; list-style:none!important; position:relative;
  transition:border-color .15s, background .15s;
}

/* Active payment method */
#payment ul.payment_methods li.tfw-payment-active,
#payment ul.payment_methods li:has(input[type="radio"]:checked) {
  border-color:var(--ink)!important; z-index:2; background:var(--bg)!important;
}

/* HIDE native radio, use label::before as custom radio */
#payment ul.payment_methods li input[type="radio"] {
  position:absolute!important; opacity:0!important; width:0!important; height:0!important;
  margin:0!important; padding:0!important; pointer-events:none!important;
}

/* Label = the clickable row */
#payment ul.payment_methods li label {
  display:flex!important; align-items:center!important; gap:12px!important;
  padding:18px 20px!important; cursor:pointer!important;
  font-family:var(--fb)!important; font-size:14px!important; font-weight:500!important;
  color:var(--ink)!important; margin:0!important;
  text-transform:none!important; letter-spacing:0!important; line-height:1!important;
}

/* Custom radio circle via ::before */
#payment ul.payment_methods li label::before {
  content:""!important; display:block!important; flex-shrink:0!important;
  width:20px!important; height:20px!important; min-width:20px!important;
  border:2px solid var(--bd)!important; border-radius:50%!important;
  background:var(--card)!important; transition:border-color .15s, box-shadow .15s;
  box-sizing:border-box!important;
}

/* Checked state — filled dot via box-shadow inset */
#payment ul.payment_methods li input[type="radio"]:checked + label::before,
#payment ul.payment_methods li.tfw-payment-active label::before {
  border-color:var(--ink)!important;
  box-shadow:inset 0 0 0 4px var(--ink)!important;
  background:var(--card)!important;
}

/* Payment icons pushed right */
#payment ul.payment_methods li label img {
  max-height:22px!important; margin-left:auto!important; width:auto!important;
}

/* Payment box (card form, description) */
#payment .payment_box {
  padding:16px 20px 20px!important; background:transparent!important;
  border-top:1px solid var(--bd); margin:0!important;
  font-family:var(--fb)!important; font-size:13px!important; color:var(--ink)!important;
}
#payment .payment_box::before { display:none!important; }
#payment .payment_box p { font-size:12px!important; margin:0 0 8px!important; }
#payment .payment_box fieldset { border:none!important; padding:0!important; margin:0!important; }
#payment .payment_box fieldset legend { display:none!important; }

/* Labels inside payment box (card number, expiry, etc.) */
#payment .payment_box label {
  font-size:11px!important; font-weight:500!important; letter-spacing:0.8px!important;
  text-transform:uppercase!important; padding:0!important; margin:0 0 6px!important;
  display:block!important;
}
/* Remove the ::before custom radio from labels INSIDE payment_box */
#payment .payment_box label::before { display:none!important; }

/* Checkbox (save card) */
#payment .payment_box input[type="checkbox"] {
  width:18px!important; height:18px!important; border:1px solid var(--bd)!important;
  border-radius:0!important; accent-color:var(--ink)!important; margin:0 8px 0 0!important;
  vertical-align:middle; -webkit-appearance:auto!important; appearance:auto!important;
  position:static!important; opacity:1!important;
}

/* Stripe elements */
#payment .payment_box .wc-stripe-elements-field,
#payment .payment_box .StripeElement {
  padding:14px!important; border:1px solid var(--bd)!important;
  background:var(--card)!important; border-radius:0!important;
}
#payment .payment_box .StripeElement--focus { border-color:var(--ink)!important; }

/* Place Order */
#payment .place-order { padding:24px 0 0!important; background:transparent!important; }
#payment #place_order {
  width:100%!important; padding:20px 32px!important;
  background:var(--ink)!important; color:var(--white)!important;
  font-family:var(--fb)!important; font-size:14px!important; font-weight:500!important;
  letter-spacing:2px!important; text-transform:uppercase!important;
  border:2px solid var(--ink)!important; border-radius:0!important;
  cursor:pointer; -webkit-appearance:none!important; appearance:none!important;
  box-shadow:none!important; min-height:58px; display:flex!important;
  align-items:center!important; justify-content:center!important;
}
#payment #place_order:hover { background:transparent!important; color:var(--ink)!important; border:1px solid var(--ink)!important; }

/* Form field fixes — force grid */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  float:none!important; width:100%!important; clear:none!important;
}
.woocommerce-checkout .woocommerce-input-wrapper {
  display:block!important; width:100%!important;
}
.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper select {
  width:100%!important;
}

/* Hide unwanted gateway icons */
#payment ul.payment_methods li label img[src*="discover"],
#payment ul.payment_methods li label img[src*="jcb"],
#payment ul.payment_methods li label img[src*="unionpay"],
#payment ul.payment_methods li label img[src*="diners"] { display:none!important; }

/* Style gateway card icons */
#payment ul.payment_methods li label img {
  display:inline-block!important; min-width:32px!important; max-height:24px!important;
  margin-left:auto!important; width:auto!important; vertical-align:middle!important;
}
/* The +N counter badge */
#payment .payment-methods--logos-count {
  font-family:var(--fb)!important; font-size:11px!important; color:var(--ink)!important;
  font-weight:400!important;
}
/* Hide card types we don't accept */
#payment li label img[alt="discover"],
#payment li label img[alt="jcb"],
#payment li label img[alt="unionpay"],
#payment li label img[alt="diners"] { display:none!important; }

/* Hide login/coupon toggle banners */
.woocommerce-form-login-toggle,
.woocommerce-form-coupon-toggle,
.woocommerce-form-login,
.checkout_coupon { display:none!important; }

/* Form field layout fixes — City + Postcode side by side */
.woocommerce-checkout #billing_city_field { grid-column:1!important; }
.woocommerce-checkout #billing_postcode_field { grid-column:2!important; }

/* Full-width fields */
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #billing_address_1_field,
.woocommerce-checkout #billing_address_2_field,
.woocommerce-checkout #billing_email_field,
.woocommerce-checkout #billing_phone_field { grid-column:1 / -1!important; }

/* Consistent input styling */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
  width:100%!important; border:1px solid var(--bd)!important;
  padding:14px!important; font-size:16px!important; min-height:50px!important;
  font-family:var(--fb)!important; background:var(--card)!important;
  border-radius:0!important; color:var(--ink)!important;
  -webkit-appearance:none!important; appearance:none!important;
  box-sizing:border-box!important;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus {
  border-color:var(--ink)!important; outline:none!important;
}

/* Tighter form spacing */
.woocommerce-checkout .form-row { margin:0 0 14px!important; padding:0!important; }

/* Placeholder colour */
.woocommerce-checkout ::placeholder { color:var(--ink)!important; font-weight:300; }

/* Ship to different address — removed via filter, CSS fallback */
.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address { display:none!important; }

/* Checkbox styling (newsletter, create account) */
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout .klaviyo-checkbox-container label,
.woocommerce-checkout .kl-checkbox-container label {
  display:flex!important; align-items:flex-start!important; gap:10px!important;
  font-family:var(--fb)!important; font-size:12px!important; color:var(--ink)!important;
  cursor:pointer; margin:0 0 8px!important; font-weight:300; line-height:1.4!important;
  text-transform:none!important; letter-spacing:0!important;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"],
.woocommerce-checkout .klaviyo-checkbox-container input[type="checkbox"],
.woocommerce-checkout .kl-checkbox-container input[type="checkbox"] {
  margin-top:1px!important; flex-shrink:0!important;
}


/* ═══════════════════════════════════════════════════════════════
   CHECKOUT TRUST BADGES + PAYMENT LOGOS + DISPATCH
   extracted from functions.php wp_head
   ═══════════════════════════════════════════════════════════════ */

/* Trust badges — mobile-first base */
.tfw-checkout-trust{display:flex;flex-wrap:wrap;flex-direction:column;align-items:flex-start;gap:6px;justify-content:center;padding:16px 0;margin-top:12px;border-top:1px solid var(--bd,#E5E5E7)}
.tfw-checkout-trust__item{display:flex;align-items:center;gap:4px;font-family:'Outfit',sans-serif;font-size:11px;font-weight:400;color:var(--ink,#1C1C1A);white-space:nowrap}
.tfw-checkout-trust__item svg{flex-shrink:0}
/* Payment logos — mobile base */
.tfw-checkout-pay-logos{display:flex;align-items:center;justify-content:center;gap:4px;padding:12px 0;flex-wrap:wrap}
.tfw-checkout-pay-logos img{height:18px;width:auto}
/* Same-day dispatch badge on shipping */
.tfw-ship-dispatch{display:block;font-size:11px;font-weight:500;color:var(--gold,#C17F24);margin-top:2px}
/* Shipping date */
.tfw-ship-date{display:block;font-size:12px;font-weight:300;margin-top:2px}
/* Phone field description */
.woocommerce-checkout #billing_phone_field .description,
.cfw-checkout-page #billing_phone_field .description{font-family:'Outfit',sans-serif;font-size:11px;color:var(--ink,#1C1C1A);font-weight:300;margin-top:4px}

/* CheckoutWC — all styling moved to CheckoutWC > Appearance > Custom CSS */
/* Do NOT add CheckoutWC overrides here. Use the plugin's native Custom CSS. */

/* RESET: undo tfw-woocommerce.css label overrides that break CheckoutWC floating labels */
.checkout-wc label,
.checkout-wc .cfw-floatable-label,
.checkout-wc .woocommerce-checkout label{
  all:revert!important;
}


/* ═══════════════════════════════════════════════════════════════
   THANK YOU PAGE — extracted from functions.php woocommerce_thankyou
   ═══════════════════════════════════════════════════════════════ */

.tfw-ty-dispatch{background:var(--bg2,#F7F7F8);border:1px solid var(--bd,#E5E5E7);padding:20px 24px;margin:24px 0;font-family:var(--fb,'Outfit',sans-serif);font-size:14px;color:var(--ink,#1C1C1A)}
.tfw-ty-dispatch strong{font-weight:600}
.tfw-ty-dispatch-method{font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:500;margin-bottom:6px}
.tfw-ty-cross{margin:32px 0}
.tfw-ty-cross-title{font-family:var(--fd,'Cormorant Garamond',serif);font-size:clamp(20px,3vw,28px);font-weight:300;font-style:italic;color:var(--ink,#1C1C1A);margin-bottom:16px}
.tfw-ty-cross-grid{display:grid;grid-template-columns:1fr;gap:12px}
.tfw-ty-cross-card{text-decoration:none;color:inherit;background:var(--white,#fff);border:1px solid var(--bd,#E5E5E7);transition:all .22s cubic-bezier(0.32,0.72,0,1)}
.tfw-ty-cross-card:hover{border-color:var(--ink,#1C1C1A);transform:translateY(-2px)}
.tfw-ty-cross-card img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.tfw-ty-cross-info{padding:10px 12px}
.tfw-ty-cross-insp{font-family:var(--fb,'Outfit',sans-serif);font-size:11px;font-weight:300;color:var(--ink,#1C1C1A);display:block;margin-bottom:2px}
.tfw-ty-cross-name{font-family:var(--fb,'Outfit',sans-serif);font-size:13px;font-weight:500;text-transform:uppercase;color:var(--ink,#1C1C1A);display:block;margin-bottom:4px}
.tfw-ty-cross-price{font-family:var(--fb,'Outfit',sans-serif);font-size:13px;color:var(--ink,#1C1C1A)}
.tfw-ty-account{background:var(--bg2,#F7F7F8);border:1px solid var(--bd,#E5E5E7);padding:20px 24px;margin:24px 0;text-align:center}
.tfw-ty-account p{font-family:var(--fb,'Outfit',sans-serif);font-size:14px;color:var(--ink,#1C1C1A);margin-bottom:12px}
.tfw-ty-account a{display:inline-block;padding:12px 28px;background:var(--ink,#1C1C1A);color:var(--white,#fff);font-family:var(--fb,'Outfit',sans-serif);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink,#1C1C1A);transition:all .22s cubic-bezier(0.32,0.72,0,1)}
.tfw-ty-account a:hover{background:transparent;color:var(--ink,#1C1C1A)}
@media(min-width:481px){.tfw-ty-cross-grid{grid-template-columns:1fr 1fr;gap:10px}}
@media(min-width:769px){.tfw-ty-cross-grid{grid-template-columns:repeat(3,1fr);gap:12px}}
